我现在遇到了一个问题,我不能在我的智能合约中调用外部函数。
例如,我的函数f()包含内联汇编代码,我想从其中调用g()函数,该函数也在智能合约中。
这有可能吗?如果是,是否也可以在程序集中使用接口?
谢谢您抽时间见我。
发布于 2021-10-10 21:02:17
不能,目前不能从内联装配中调用实体化函数。您只能调用在同一assembly
块中声明的Yul函数。There are plans to allow calling functions defined in other assembly blocks,但这些仍然是Yul函数,而不是实心函数。
至于接口,从内联组装的角度来看,接口只是一个地址。您可以从汇编块进行低级调用,因此从技术上讲,您可以使用接口,但这与仅使用地址变量没有什么不同,并且您不会获得任何您在实体化级别拥有的高级语法。例如,您必须手动编码函数选择器和参数,然后处理结果。
https://stackoverflow.com/questions/69514295
复制相似问题