錢包應用

使用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;

}

})

}

  });

});

}

執行測試結果:


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章