Contract-Development

可以將 ETH 轉移到其他 ETH 錢包的智能合約(智能合約的所有者)

  • January 28, 2022

實際上,我的合作夥伴創建了一個智能合約,它能夠創建一個新的智能合約並發送收益。我對 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);
   }
}

該契約利用了兩個關鍵概念:

  1. 構造函式
  2. 備份功能

您應該花時間通過Cryptozombies等官方文件和教程了解更多關於 Solidity 的知識

引用自:https://ethereum.stackexchange.com/questions/59911