Solidity
從合約部署合約
我嘗試這樣的事情:
孩子.sol
pragma solidity ^0.4.6; contract Child { address owner; function Child() { owner = msg.sender; } }
父.sol
pragma solidity ^0.4.6; import "./Child.sol" contract Parent { address owner; function Parent(){ owner = msg.sender; } function createChild() { Child child = new Child() } }
然後我部署 Parent.sol。我可以在 etherscan 上找到這筆交易。然後我呼叫 createChild() 函式,但合約沒有部署,因為我找不到任何新交易。
所以問題是,我應該如何正確地做到這一點。謝謝你。
或者我應該只在父契約中存檔子契約的所有地址?那麼父母契約可能真的很重。
您可能沒有看到 Child 契約,因為它在內部交易中。查看 etherscan 上的“內部交易”選項卡(在父合約頁面上)進行檢查。
在我看來,這是一個好的開始,但家長確實說了任何關於孩子的事情,所以它沒有用。
一些想法。
pragma solidity ^0.4.6; contract Child { address public owner; // public, so you can see it when you find the child function Child() { owner = msg.sender; } }
和 …
pragma solidity ^0.4.6; import "./Child.sol" contract Parent { address owner; address[] public children; // public, list, get a child address at row # event LogCreatedChild(address child); // maybe listen for events function Parent(){ owner = msg.sender; } function createChild() { Child child = new Child(); LogChildCreated(child); // emit an event - another way to monitor this children.push(child); // you can use the getter to fetch child addresses } }
我剛剛在 SE 中做到了這一點,所以我希望我沒有在你身上弄錯語法。
希望能幫助到你。