Contract-Development
可以將 ETH 轉移到其他 ETH 錢包的智能合約(智能合約的所有者)
實際上,我的合作夥伴創建了一個智能合約,它能夠創建一個新的智能合約並發送收益。我對 Solidity 很陌生,無法想出一種方法來修改智能合約以接受來自發件人的 ETH,將其儲存或直接發送給智能合約的所有者。這是程式碼,將不勝感激!
pragma solidity ^0.4.0; contract EtherTransferTo { function () public payable { } function getBalance() public returns (uint) { return address(this).balance; } } contract EtherTransferFrom { EtherTransferTo private _instance; function EtherTransferFrom() public { // _instance = EtherTransferTo(address(this)); _instance = new EtherTransferTo(); } function getBalance() public returns (uint) { return address(this).balance; } function getBalanceOfInstance() public returns (uint) { //return address(_instance).balance; return _instance.getBalance(); } function () public payable { //msg.sender.send(msg.value); address(_instance).send(msg.value); } }
如果你想製作一份簡單地將任何 ETH 轉發給合約所有者的合約,你將需要:
- 在契約創建時定義契約的所有者
- 在合約上創建一個應付函式
- 讓該應付功能將資金轉發給該所有者
這是一個非常簡單的入門範例(未經測試且尚未準備好投入生產):
pragma solidity 0.4.24; contract EthForward { address _owner; constructor() public { _owner = msg.sender; } function() public payable { _owner.transfer(msg.value); } }
該契約利用了兩個關鍵概念:
您應該花時間通過Cryptozombies等官方文件和教程了解更多關於 Solidity 的知識