web3.eth.signを非同期処理にしたい

truffleとInfura - Scalable Blockchain InfrastructureとMetamaskでコントラクトをテストする時に,web3.eth.signでエラーが出たのでメモ.

 

  • infuraとMetamaskを用いて,testnetでテストするとtruffleHDwalletProviderではweb3@0.0.2を使用しているためエラー
  • なぜかというと,web3@0.0.2のweb3.eth.signはpromiseで返っていない.
  • truffleHDwalletProviderでは非同期的な処理しか認めていなく,弾かれる. 
  • web3.eth.signをdocumentにしたがってcallbackするように変更

 

 

<?JavaScript
web3.eth.sign(organizer,hash, function(error, result){
if(!error)
console.log(JSON.stringify(result));
else
console.error(error);
}) ?>

 

参考

JavaScript API · ethereum/wiki Wiki · GitHub