gpt4 book ai didi

ethereum - 减少契约(Contract)规模的最简单方法

转载 作者:行者123 更新时间:2023-12-05 03:36:28 26 4
gpt4 key购买 nike

我几乎完成了我的契约(Contract),但我已经(几乎)完成了所有减少契约(Contract)字节大小的工作,但我仍然缺少两个功能。这就是为什么我需要拆分契约(Contract)以进一步减小尺寸的原因。我已经将部分代码提取到另外两个契约(Contract)中。 Bar 是抽象的,将由我的主合约进行扩展,而 Baz 将被初始化并从主合约调用。示例:

contract Foo extends Bar {
Baz baz;

constructor() {
baz = new Baz();
}
}

虽然成功了,但我的契约(Contract)规模并没有真正减少。我应该注入(inject) Baz 而不是在主合约上初始化它吗?既然这样,我该怎么做

contract Foo extends Bar {
Baz baz;

constructor(address barAdress) {
baz = address;
}
}

将抛出 Type address is not implicitly conversion to expected type contract Baz. 显然。

扩展的抽象合约是否会减少字节码,或者它会在编译中合并并产生相同的大小?

最佳答案

Does an extended abstract contract even reduce the byte code or will it be combined in compilation and result in the same size?

编译器仍然需要包含抽象契约,因此它不会减少最终字节码的大小。

减少字节码大小的有效方法是使用编译器优化选项。该值指定它应该优化的契约(Contract)运行次数(而不是优化迭代次数)。因此,较低的值会导致字节码更小,但每次执行函数时也会产生更高的 gas 费用。

关于ethereum - 减少契约(Contract)规模的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69602515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com