Goals:
- Add token by address
- Get token info: name (optional), symbol (optional), decimals, totalSupply
- Query balance of an address
- Add token balance, transfer and approval to account API
Goals:
R11 Ethereum Web Wallet | |||
R11:36d60bddb3a0 add token list and remove API | |||
R11:dd5e40cfc401 make tokens ownable by users | |||
R11:366fc6121078 add token approve and transferFrom to account API | |||
R11:a28b30e5bf14 token API phase 1/2 | |||
R11:0f3f2f9acae7 add ERC-20 token API: /api/token |
Add token: POST /api/token with {"address":"0x..."} (optional: "name", "symbol", "decimals")
Token info: GET /api/token/<address> returns {"address":"0x...", "name":"...", "symbol":"...", "decimals":..., "totalSupply":...}
Query balance: GET /api/token/<address>/balance/<address> returns {"address":"0x...", "balance":..., "balanceDecimal":...}
GET /api/account/<address>/token/<contract_address>/balance
POST /api/account/<address>/token/<contract_address>/transfer
POST /api/account/<address>/token/<contract_address>/approve
GET /api/account/<address>/token/<contract_address>/allowance/<spender_address>
GET /api/account/<owner_address>/token/<contract_address>/allowance/<spender_address>
redirects to:
GET /api/token/<contract_address>/allowance/<owner_address>/<spender_address>
returns:
{"contract_address":"0x...", "owner_address":"0x...", "spender_address:0x...", "allowance":...}
GET /api/account/<address>/token/<contract_address>/balance
redirects to:
GET /api/token/<contract_address>/balance/<address>
POST /api/account/{address}/token/{contractAddress}/transfer
with: {"to": "0x...", "amount":...}
results: 400, or 201 with header "Location": /api/tx/{hash}
POST /api/account/{address}/token/{contractAddress}/approve
with: {"spender": "0x...", "amount":..., "gasPrice"(optional):..., "gasLimit"(optional):...}
results: 400, or 201 with header "Location": /api/tx/{hash} and data: {"contract":"0x...", "owner":"0x...", "spender":"0x...", allowance:...}
update token transfer to support transferFrom:
POST /api/account/{address}/token/{contractAddress}/transfer
with: {"owner"(optional): "0x...", "to": "0x...", "amount":...}
Add user to tokens:
System token: token with name, symbol, decimals in chain
User token: without ... in chain