FISCO BCOS的Solidity合约中的view与Ethereum智能合约具有明显的区别。
view是Solidity智能合约中的一种修饰符,但是在不同的区块链底层平台中,也会具有不同的作用。FISCO BCOS平台支持Solidity智能合约以及预编译合约。而FISCO BCOS的Solidity合约中的view与Ethereum智能合约具有明显的区别,下面进行演示。 首先,为FISCO BCOS平台配置账户:0x294d2e4d2144dfaef34a555a2b07a610c718dd96 然后编写测试代码如图所示:
然后保存编译并部署合约,基于配置的账户调用getAddress接口:
此时,返回值本应该是账户的地址,即0x294d2e4d2144dfaef34a555a2b07a610c718dd96,但是点击确定后,执行结果如图所示,发现是address(0),这是为什么呢?
原因就在于view的使用,下面去掉view,测试一下:
如图所示,发现可以正确返回执行交易用户的地址。 根据笔者的经验,在开发FISCO BCOS的Solidity智能合约时,在view和pure的使用上需要慎重,一旦出现这种错误,将很难debug。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!