论FISCO BCOS智能合约与Ethereum智能合约关于view的区别

  • chain
  • 更新于 2024-03-23 21:56
  • 阅读 261

FISCO BCOS的Solidity合约中的view与Ethereum智能合约具有明显的区别。

view是Solidity智能合约中的一种修饰符,但是在不同的区块链底层平台中,也会具有不同的作用。FISCO BCOS平台支持Solidity智能合约以及预编译合约。而FISCO BCOS的Solidity合约中的view与Ethereum智能合约具有明显的区别,下面进行演示。 首先,为FISCO BCOS平台配置账户:0x294d2e4d2144dfaef34a555a2b07a610c718dd96 image.png 然后编写测试代码如图所示:

image.png 然后保存编译并部署合约,基于配置的账户调用getAddress接口:

image.png 此时,返回值本应该是账户的地址,即0x294d2e4d2144dfaef34a555a2b07a610c718dd96,但是点击确定后,执行结果如图所示,发现是address(0),这是为什么呢?

image.png 原因就在于view的使用,下面去掉view,测试一下:

image.png

如图所示,发现可以正确返回执行交易用户的地址。 image.png 根据笔者的经验,在开发FISCO BCOS的Solidity智能合约时,在view和pure的使用上需要慎重,一旦出现这种错误,将很难debug。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
chain
chain
0xc0a3...D042
FISCO BCOS 年度MVP,中国密码学会会员,南京大学普惠三农金融科技创新研究中心特聘助理研究员,区块链金融开发深研社联合创始人兼CTO,主要研究智能合约安全、智能合约逆向技术、跨链技术、后量子密码