智能合約 與 外部賬號之間轉賬,智能合約與智能合約之間轉賬

從外部賬戶向智能合約賬戶轉賬以太幣

外部賬戶給部署智能合約時給合約初始轉賬:

使用remix 測試環境

pragma solidity >=0.4.0 <0.7.0;


contract Test{
    
    uint256 public test1;   //保存指定地址的合約的餘額
    address payable owner;  //保存合約的所有者,即爲部署合約的外部賬戶,設置payable 屬性
    
    constructor()public payable{      // 合約構造函數
        owner = msg.sender;           // 設定智能合約的所有者
        test1 = 0;                    // 初始化爲0
        msg.value;   //外部賬戶在部署時給合約賬戶轉賬msg.value以太幣
    }
    
    function svalue(address payable addr)public payable{
        //輸入地址,給相應地址轉賬5 個以太幣,這裏是的單位是Gwei
        addr.transfer(5* 10**18);
    }
       //輸入地址,獲取整個地址的餘額
    function getblance(address payable addr)public payable{
        test1 = addr.balance;
    }
      //設置fallback 函數,爲payable屬性,如果不設置這個函數,智能合約則不能接受其他合約和賬戶的轉賬 
    fallback() external payable{}
    
}

選擇賬戶地址1:0x4658C20652f24a07cB714148600F3c2390f61d6e
部署合約地址1:0xC9c97A300086210df2Fc4373dA6f75cCAF7f12aC
設置VALUE爲30以太幣,部署結果如下圖所示:
在這裏插入圖片描述
可以看到圖中accounts 旁邊的餘額變成了69.999 以太幣,查詢當前合約地址賬戶餘額:
在這裏插入圖片描述
輸入查詢地址,然後點擊變量test1,可見餘額爲30以太幣。

智能合約向外部賬戶轉賬

依然是上文的部署合約,我們將轉賬函數接受地址設定爲部署合約的外部地址,結果如下:
在這裏插入圖片描述
當前合約剩餘以太幣爲25以太幣,向外部賬戶轉移了5個以太幣。
在這裏插入圖片描述
可見外部賬戶,多出5個以太幣。

智能合約之間轉賬

智能合約之間也可以按照以上方式轉賬

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章