以太坊钱包开发

引用

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

https://etherscan.io/tokens


例如:

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、获取以太坊交易记录

如:https://api.trustwalletapp.com/transactions/0x6fe689a6668f3ebe9693e6497d781d6bc6ffe2fb85ddba64f53816e4eb51dbed



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

我是一名小小程序员,如果您有以太坊代币或者钱包开发需求,可以联系!


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2011年12月5日 小雨 星期一 上周一至周四我到荆门去学习,你的监督卡上数学表现差,上课说话,语文也是差,...
    听雨聆声阅读 1,657评论 0 1
  • 我与夜同睡,归于夜中,寂于夜色。
    范范子诗阅读 1,157评论 0 0
  • 2018.6.27@华联costa。会议:闫总讨论医疗大数据上链项目。2小时(10:00-12:00) @咖啡库。...
    hmisty阅读 929评论 0 0
  • 养成良好习惯 我们不断塑造习惯,而后习惯反过来作用于我们。不断的伪造方能成真。 我们的大脑无法分辨真实和假想的东西...
    大怪兽啊啊啊阅读 1,241评论 0 0