阅读(1448)
赞(12)
类型信息
2022-05-12 11:09:53 更新
该表达式type(X)可用于检索有关类型的信息 X。目前,对该功能的支持有限(X可以是合约或整数类型),但将来可能会扩展。
以下属性可用于合同类型C:
type(C).name
-
合同的名称。
type(C).creationCode
-
包含合约创建字节码的内存字节数组。这可以在内联汇编中用于构建自定义创建例程,尤其是通过使用
create2
操作码。此属性不能在合约本身或任何派生合约中访问。它导致字节码包含在调用站点的字节码中,因此不可能进行这样的循环引用。 type(C).runtimeCode
-
包含合约运行时字节码的内存字节数组。这是通常由 的构造函数部署的代码
C
。如果C
有一个使用内联汇编的构造函数,这可能与实际部署的字节码不同。另请注意,库在部署时会修改其运行时字节码以防止常规调用。与 相同的限制.creationCode
也适用于此属性。
除了上述属性之外,接口类型还可以使用以下属性I:
type(I).interfaceId
:-
bytes4
包含给定接口的EIP-165 接口标识符的值I
。此标识符被定义为XOR
接口本身内定义的所有函数选择器中的一个 - 不包括所有继承的函数。
以下属性可用于整数类型T:
type(T).min
-
type 可表示的最小值
T
。 type(T).max
-
type 可表示的最大值
T
。
← 合约相关