繁体   English   中英

Solidity inline-assembly:在一个合约中调用其他函数并使用接口

[英]Solidity inline-assembly: Calling other functions within one contract and using interfaces

我目前遇到无法在我的智能合约中调用外部 function 的问题。

因此,例如,我的 function f() 包括内联汇编代码,我想从中调用也在智能合约中的 function g()。

这可能吗? 如果是,是否也可以在程序集中使用接口?

感谢您的时间。

不,目前无法从内联汇编调用 Solidity 函数。 您只能调用在同一assembly块中声明的 Yul 函数。 有计划允许调用在其他汇编块中定义的函数,但这些仍然是 Yul 函数而不是 Solidity 函数。

至于接口,从内联汇编的角度来看,接口就是一个地址。 您可以从汇编块进行低级调用,因此从技术上讲,您可以使用接口,但这与仅使用地址变量没有什么不同,并且您不会获得 Solidity 级别的任何高级语法。 例如,您必须手动对 function 选择器和 arguments 进行编码,然后处理结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM