钱包应用

使用LightWallet和Hooked-Web3-Provider创建钱包服务。

1.运行geth实例挖矿并启动HTTP-RPC服务器,允许来自任何域名客户端请求,解锁账户0

 geth --dev --rpc --rpccorsdomain "*" --rpcaddr "0.0.0.0" --rpcport "8545" --mine --unlock=0

2.创建后端

"/var express = require("express");

var app =express( );

app.use(express.static("public"));

app.get("/",function(req,res){

 res.sendFile(_dirname + "/public/html/index.html");

})

app.listen(8080);

3.创建前端

前端主要功能包括生成种子,显示种子地址和发送以太币

4.实现HTML代码调用函数保存到main.js

function generate_seed()

{

  var new_seed = lightwallet.keystore.generateRandomSeed();

  document.getElementById("seed").value = new_seed;

generate_addresses(new_seed);

}

var totalAddresses=0;

function gernerate_address(seed)

{

  if(seed == undefined)

{seed = docunment.getElementById("seed").value;

}

if(!lightwallet.keystore.isSeedValid(seed))

{

  document.getElementById("info").innerHTML="Pleese enter a valid seed";

return;

}

totalAddresses = prompt("How many addresses do you want to generate");

if(!Number,isInteger(parseInt(totalAddresses)))

{

   document.getElementById("info").innerHTML="Please enter valid number of address";

return ;

}

var password = Math.random().toString();

lightwallet.keystore.createVault({

password: password,

  seedPhrase:seed

},function (err,ks) {

ks.keyFromPassword(password,function (err,pwDeriverKey) {

if(err)

{document.getElementById("info").innerHTML = err;

}

else

{

 ks.generateNewAddress(pwDerivedKey,totalAddresses);

 ks.passwordProvider = function (callback) {

 callback(null,password);

};

 var provider = new HookedWeb3Provider({

 host: "http://localhost:8545",

 transaction_signer:ks

});

 var web3 =new Web3(provider);

 var from = document.getElementById("address1").value;

 var to = document.getElementById("address2").value;

var value = web3.toWei(document.getElementById("ether").value,"ether");

 web3.eth.sendTransaction({

 from:from,

 to:to,

value:value,

gas:21000

 },function(error,result){

if(error)

{document.getElementById("info").innerHTML =  error;

}

 else

{

 document.getElementById("info").innerHTML = "Txn hash: " + result;

}

})

}

  });

});

}

执行测试结果:


 

猜你喜欢

转载自blog.csdn.net/xinsuiqingfeng/article/details/81194946