一文了解以太坊的MethodID

一、什么是MethodID?

以太坊依靠一个唯一标识符(称为MethodID或函数选择器function selector)来区分智能合约中的不同函数或方法。

MethodID 是函数签名的 Keccak-256 哈希的前 4 个字节(8 个字符,包括0x也就是取前10个字符),用于指定要调用哪些函数。函数签名包括函数名称及其参数类型,它们之间用逗号分隔,中间没有空格。

接下来以transfer函数为例,进行说明:

const { keccak256 } = require("ethers/lib/utils");

// 函数签名
const functionSignature = "transfer(address,uint256)";

// 计算 Keccak256 哈希
const hash = keccak256(Buffer.from(functionSignature));

// 获取前 4 字节(8 个字符)
const methodID = hash.slice(0, 10);

console.log(methodID); // 输出: 0xa9059cbb

 在

你可能感兴趣的:(区块链教程,区块链,Method,ID,ethers,以太坊)