Solidity函数选择器与ABI编码原理,是何原理?🤔

2026-06-03 18:554阅读0评论SEO优化
  • 内容介绍
  • 文章标签
  • 相关推荐

说实话, 你有没有好奇过当我们调用智能合约中的某 差点意思。 个函数时EVM是怎么知道我们要调用哪个函数的?🤔

哈哈,其实这背后全靠函数选择器和ABI编码的功劳! 我天... 咱就是说今天咱们就来好好聊聊这个。

《纸上谈兵·solidity》第 12 课:Solidity 函数选择器与 ABI 编码原理

函数选择器:干啥用的?

函数选择器是啥?简单它就是一个函数的“身份证”😂,或者说是用来标识你到底要调用哪个函数的。

是不是? 它的生成方式是:对函数的签名进行keccak256哈希运算,然后取前4个字节。你可能会问,那为啥是前4个字节呢?害,这主要是为了节省空间,一边也够用了。

selector = keccak256") 前 4 个字节

举个例子, 比如transfer这个函数的选择器,就是0xa9059cbb。你可以用Solidity内置的keccak256函数自己算算看,到时候…..。

阅读全文

说实话, 你有没有好奇过当我们调用智能合约中的某 差点意思。 个函数时EVM是怎么知道我们要调用哪个函数的?🤔

哈哈,其实这背后全靠函数选择器和ABI编码的功劳! 我天... 咱就是说今天咱们就来好好聊聊这个。

《纸上谈兵·solidity》第 12 课:Solidity 函数选择器与 ABI 编码原理

函数选择器:干啥用的?

函数选择器是啥?简单它就是一个函数的“身份证”😂,或者说是用来标识你到底要调用哪个函数的。

是不是? 它的生成方式是:对函数的签名进行keccak256哈希运算,然后取前4个字节。你可能会问,那为啥是前4个字节呢?害,这主要是为了节省空间,一边也够用了。

selector = keccak256") 前 4 个字节

举个例子, 比如transfer这个函数的选择器,就是0xa9059cbb。你可以用Solidity内置的keccak256函数自己算算看,到时候…..。

阅读全文