引用
https://docs.qq.com/doc/BKHJCx0rBNeN4bJaSU2Zdl6Y4RhnYP25v1yT2
https://github.com/TrustWallet/trust-wallet-ios
https://www.jianshu.com/p/099b520ba7a8
ETH基本概念
https://blog.csdn.net/wo541075754/article/details/79042558
1、创建ETH钱包
调用Keystore的createAccount创建eth 钱包地址
然后调用Keystore的export方法 导出keystore file (一段json数据)
该keystore file 可以导入到其它类型(网页、App)的钱包
2、导入钱包
导入钱包有三种方式
第一种 keystore file(json)导入
第二种 私钥导入
第三种 助记词导入
分别调用Keystore的importWallet方法
并设置密码,密码通过aes加密存储在手机的keychain中
后面如果导出钱包的私钥或keystore file or 转账 输入密码验证
3、钱包管理
钱包创建或导入好之后,显示钱包的一些信息 如余额及该钱包下的ERC20 token
https://theethereum.wiki/w/index.php/ERC20_Token_Standard
https://blog.csdn.net/diandianxiyu_geek/article/details/78082551
ERC20 token和 以太坊 使用同样的地址
ERC20 token 部署在以太坊上需要Contract
以太坊也是一个特殊的token 它的合约地址为:
0x0000000000000000000000000000000000000000
例如:
0x627306090abaB3A6e1400e9345bC60c78a8BEf57
不同的是他们的合约地址(Contract Address)
可以查看ERC20 token合约的源码
https://etherscan.io/address/0xB8c77482e45F1F44dE1745F52C74426C631bDD52 - code
一个以太坊的地址理论上 可以有N个ERC 20 token
如果ERC20 token需要转账,和以太坊的转账类似,只是多了一个合约地址的参数
用来区分不同的token
4、获取以太坊的余额(Balance)及价格
与以太坊链的交互我们一般使用infura 这个服务提供商
它提供了正式链及测试链
文档:https://infura.io/docs/gettingStarted/chooseaNetwork
通过JSON-RPC发请求到infura ,然后就可以返回想要的结果
例如获取ETH的余额
TokensBalanceService
EtherServiceRequest
BalanceRequest
也可以直接通过HTTP请求直接在 Etherscan 获取token余额
https://etherscan.io/apis - tokens
5、获取token对应的货币价格
TrustAPI
https://github.com/TrustWallet/trust-ray/wiki/API
如https://api.trustwalletapp.com/prices?currency=USD&symbols=ETH,OMG
6、获取某个以太坊地址下的 token list
如:https://api.trustwalletapp.com/tokens?address=0x33923a7888c0b885768b3ed578f4d243b17182ee
7、获取以太坊交易记录
8、以太坊转账
分为ETH转账和 ERC20 转账
用Contract Address区别
9、交易失败的可能情况
https://blog.csdn.net/wo541075754/article/details/79054937
10、与服务端交互的接口汇总
EtherServiceRequest
1)获取Gas Limit eth_estimateGas
2)获取Gas Price eth_gasPrice
3)获取最新的区块号 eth_blockNumber
4)获取交易收据 getTransactionReceipt
5)以太坊转账 eth_sendRawTransaction
6)获取交易的Nonce值 eth_getTransactionCount
7)获取token余额 eth_getBalance
TrustAPI
1)获取token价格
TrustService
1)获取token list
2)获取交易记录
3)搜索token
我是一名小小程序员,如果您有以太坊代币或者钱包开发需求,可以联系!