• Сигнатуры функций необходимы при написании кода для вызова функций смарт-контракта примитивным способом или при вызове функций контракта из кошельков с несколькими подписями.
  • Чтобы получить сигнатуру функции, вам нужно хешировать строку прототипа функции, например functionName(type1,type2,...), с помощью Keccak256. Затем извлеките первые 4 байта.
  • Например, если вы хотите получить закодированную сигнатуру функции sendMessage(string message, address to), хешируйте строку прототипа функции sendMessage(string,address) с помощью Keccak256. Затем извлеките первые 4 байта «0xc48d6d5e».

Получите закодированные сигнатуры функций с помощью Web3.js

В Web3.js 1.0.0 закодированные сигнатуры функций могут быть получены служебной функцией.

Пример кода

let encodedFunctionSignature = web3.eth.abi.encodeFunctionSignature('sendMessage(string,address)');
 console.log(encodedFunctionSignature);
 // => 0xc48d6d5e

Рабочая демонстрация

Связанная статья

Ссылка