是否有任何方法可以自动从父契约创建多个子契约(其中包含特定的逻辑)?
我的用例是供应链管理和区块链上的身份管理。考虑到这些情况的规模,我不倾向于在单个合同中使用结构或映射,而是希望创建可以单独处理的单个合同。
从技术的角度来看,我们怎样才能实现这样的逻辑:创造一种“母亲”合同,根据某些商业条件产生“孩子”合同,然后这些“孩子”合同就自己起作用了?
发布于 2018-02-21 17:01:34
您可以使用新关键字从另一个契约中实例化一个合同。
然后,您可以使用数组或理想情况下的映射来跟踪这些新子类。
必须将Child.sol源代码导入到Parent.sol文件(即import './Child.sol';)中。
例如,您可以将它封装在一个函数中,例如
import './Child.sol';
mapping(bytes32 => Child) childList;
function spawnChild(bytes32 childId) {
Child current = new Child();
childList[childId] = current;
}当您调用函数时,它将创建一个新的子契约。
然后,您可以从父契约中调用子合同上的函数,如下所示
function callChildFunction(bytes32 childId) {
childList[childId].theChildfunction();
}https://ethereum.stackexchange.com/questions/40447
复制相似问题