1703877815
1703877816
1703877817
上述代码直到由seed生成地址的部分都无须解释。然后给ks的passwordProvider属性分配一个回调函数。该回调函数在签署交易时被调用,以获取密码解码私钥。如果不提供,LightWallet就会提示用户输入密码。此时,通过传送keystore作为交易签署者创建一个HookedWeb3Provider实例。当自定义服务提供方想签署交易时,它调用ks的hasAddress方法和signTransactions方法。如果要签署的地址不在生成的地址之中,ks将向自定义服务提供方返回错误。最后使用web3.eth.sendTransaction方法发送一些以太币。
1703877818
1703877819
1703877820
1703877821
1703877823
区块链项目开发指南 5.6.5 测试
1703877824
1703877825
钱包服务的创建已经完成了,让我们测试一下,确保它像预想的那样工作。首先,在Initial目录中运行node app.js,然后在浏览器中访问http://localhost:8080,运行界面如图5-11所示。
1703877826
1703877827
1703877828
1703877829
1703877830
图 5-1
1703877831
1703877832
单击Generate New Seed按钮,生成一个新的seed。提示输入一个数字,代表要生成地址的数量。可以输入任何数字,但是为了实现测试目的,给出一个大于1的数。运行界面如图5-2所示。
1703877833
1703877834
1703877835
1703877836
1703877837
图 5-2
1703877838
1703877839
现在测试发送以太币,需要发送一些以太币到从coinbase账户中生成的地址之一。一旦发送一些以太币到生成的地址之一,即单击Generate Details按钮更新用户界面(UI),尽管并不需要测试使用钱包服务发送以太币。确保再次生成同一个地址。此时的运行界面如图5-3所示。
1703877840
1703877841
1703877842
1703877843
1703877844
图 5-3
1703877845
1703877846
在From address栏中输入列表中有余额的账户的地址,然后在To address栏输入另一个地址。为了进行测试,可以输入显示的任意其他地址。接着输入一个以太币数量,该值要小于等于地址账户中以太币的余额。运行界面如图5-4所示。
1703877847
1703877848
1703877849
1703877850
1703877851
图 5-4
1703877852
1703877853
单击Send Ether按钮,即可在信息框中看到交易哈希。等待挖出交易。同时在很短的时间内,可以单击Generate Details按钮查询交易是否被挖出。如果交易被挖出,则运行界面如图5-5所示。
1703877854
1703877855
如果每件事都和刚才解释的一样,那么钱包服务就已经就绪了。实际上,可以把该服务部署到一个自定义域名,让公众使用它。
1703877856
1703877857
1703877858
1703877859
1703877860
图 5-5
1703877861
1703877862
1703877863
1703877864
[
上一页 ]
[ :1.703877815e+09 ]
[
下一页 ]