LoginSignup
1
1

More than 5 years have passed since last update.

Ethereum スマートコントラクトのエンコードされた関数シグネチャを得る

Last updated at Posted at 2018-05-21
  • Ethereum スマートコントラクトのエンコードされた関数シグネチャを得る方法のメモです。

エンコードされた関数シグネチャとは

  • スマートコントラクトの関数を call するコードをローレベルで書いたり、マルチシグウォレットからスマートコントラクトの関数を call する際に必要となります。
  • functionName(type1,type2,...) という関数のプロトタイプ文字列を、Keccak256 でハッシュ化したあとの最初の4バイトがエンコードされた関数シグネチャになります。
  • たとえば、sendMessage(string message, address to) という関数の場合、エンコードされた関数シグネチャはsendMessage(string,address) を Keccak256 でハッシュ化した最初の4バイト 0xc48d6d5e です。

Web3 を使用して関数シグネチャを得る

  • Web3 1.0.0 では、エンコードされた関数シグネチャを簡単に得ることのできる関数が用意されています。
let encodedFunctionSignature = web3.eth.abi.encodeFunctionSignature('sendMessage(string,address)');
 console.log(encodedFunctionSignature);
 // => 0xc48d6d5e

デモ

関連

参考

Note

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1