web3.eth.signのwrap
truffleを用いて開発しているときに,詰まったのでメモ
truffleHDwalletProviderを使って,testnetでテストするとtruffleHDwalletProviderはweb3(v0.0.2)でweb3(v1.0.0)にはなっていない.
web3(v0.0.2)のweb3.eth.signはpromiseで返っていないので,同期的処理になりtruffleHDwalletProviderでは非同期的な処理しか認めていなく,エラーとなる.
web3.eth.signをdocumentにしたがってcallbackするように書くと以下のようになる.
// wrap
web3.eth.sign(organizer,hash, function(error, result){
if(!error)
console.log(JSON.stringify(result));
else
console.error(error);
})
実際にwrapしたものを利用してテスト
test.js
it("create hashs and signature",async() => {
const organizer = await accounts[0]
const hash = await web3.sha3("0x11")
web3.eth.sign(organizer,hash, function(error, result){
if(!error)
console.log(JSON.stringify(result));
else
console.error(error);
})
})
参考
web3ドキュメント
https://web3js.readthedocs.io/en/1.0/
https://github.com/ethereum/wiki/wiki/JavaScript-API