Contract-Development

如何在我的合約中使用 DAI

  • August 26, 2019

我熟悉智能合約開發。雖然,每次我開發一些東西時,我都會使用傳統的乙太幣。為了簡單起見,讓我們假設這個契約。

pragma solidity ^0.5.0;

contract  Example {

   constructor () public {}

   function () external payable {}

   function getBalance() public view returns (uint256) {
       return address(this).balance;
   }

   function withdraw() public {
       msg.sender.transfer(address(this).balance);
   }
}

我如何接受這個確切的契約並簡單地允許它做同樣的事情,但使用 DAI 代替?請實用,我已經閱讀了很多理論資料,我只是在尋找有關如何執行此操作的實際程式碼。

       pragma solidity ^0.5.0;

       //import ERC20 functionality ...

       contract  Example {

           ERC20   public token;

           //@param _token the address of the DAI smart contract
           constructor(ERC20 _token) public {
               token = ERC20(_token);
           }

           function () external payable {}

           function getBalance() public view returns (uint256) {
               return token.balanceOf(address(this));
           }

           function withdraw() public {
               token.transfer(msg.sender, getBalance());
           }
       }

您已經閱讀了很多理論,所以這裡有一個您的確切程式碼的實際範例,但使用 DAI 而不是 ether,希望對您有所幫助。

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