项目作者: everFinance

项目描述 :
A rollup token issued on Arweave.
高级语言: Go
项目地址: git://github.com/everFinance/token-demo.git
创建时间: 2020-11-12T02:29:17Z
项目社区:https://github.com/everFinance/token-demo

开源协议:

下载


token-demo

中文

demo

A rollup token issued on Arweave.

  • Three-party verification
  • Fast as traditional Internet applications
  • Very cheap
  • Support MetaMask, compatible with Ethereum

Architecture

arch

Module

Application Modules

issuer

Token issuance program, provide the WEB of Token, and token API.

API:
  • balanceOf: query user’s balance
  • txsByAddress: query user’s transactions
  • txs: query all transactions
  • submitTx: user signature and submit transaction

detector

detector program automatically loads the data on Arweave after running, and provide API to query token transactions.

API:
  • balanceOf: query user’s balance
  • txsByAddress: query user’s transactions
  • txs: query all transactions

Other modules

token

token core module, providing ExecuteTx to execute transactions

tracker

Arweave data tracking program, parse the data into tx for output

web

Application front-end page

cache

Save the off-chain calculation state, convenient for API query and output

Build & Run

After the build is completed, a build folder will be created, containing two applications, issuer and detector.

  1. make all

issuer

Run the program when the operator issues tokens on its own

Prepare:

  1. An AR private key with a certain AR balance, such as 0.1 AR
  2. The name of the token
  3. The address of the creator who issued the token, which is the AR wallet address in 1 step

Run:

  1. Place the keyfile in the application root directory
    1. ./test-keyfile.json
  2. Run
    1. GIN_MODE=release \
    2. TOKEN_SYMBOL={{Your token name}} \
    3. TOKEN_OWNER={{Token creator address}} \
    4. KEY_PATH={{Keyfile path}} \
    5. PORT={{HTTP port}} ./build/issuer
    eg: (Note!!! You need to add : before the PORT. The correct writing is :80, not 80)
    1. GIN_MODE=release \
    2. TOKEN_SYMBOL=ROL \
    3. TOKEN_OWNER=dQzTM9hXV5MD1fRniOKI3MvPF_-8b2XDLmpfcMN9hi8 \
    4. KEY_PATH='./test-keyfile.json' \
    5. PORT=:80 ./build/issuer
  3. Click on Connect Wallet, use MetaMask for Claim and Transfer
    1. http://127.0.0.1/token/

demo-1

detector

Transactions from issuer can be checked through the detector.

Prepare:

  1. token name
  2. The address of the creator who issued the token

Run the program:

  1. TOKEN_SYMBOL=ROL \
  2. TOKEN_OWNER=dQzTM9hXV5MD1fRniOKI3MvPF_-8b2XDLmpfcMN9hi8 \
  3. PORT=:80 ./build/detector

Wait for the program to complete sync, use the following command to query the data:

  1. curl 'http://127.0.0.1/balanceOf/{{wallet address}}' # Query wallet balance
  2. curl 'http://127.0.0.1/txs/{{wallet address}}' # Query all transactions of the wallet
  3. curl 'http://127.0.0.1/txs' # Query all historical transactions

Development

test

  1. make test