sun4.0阿凡達Avatar系統開發技術詳細丨阿凡達Avatar系統原始碼

kaifa873發表於2023-05-05
pragma solidity ^0.4.21;contract TransactionFee {// (1)uint public fee;// (2)address public receiver;// (3)mapping (address => uint) public balances;// (4)event Sent(address from, address to, uint amount, bool sent);// (5)constructor(address _receiver, uint _fee) public {receiver = _receiver;fee = _fee;}// (6)function getReceiverBalance() public view returns(uint) {return receiver.balance;}// (7)function sendTrx() public payable {uint value = msg.value * fee / 100;bool sent = receiver.send(value);balances[receiver] += (value);emit Sent(msg.sender, receiver, value, sent);}}

一旦我們建立了一個合約,我們必須編譯並且建立原始碼,這樣我們才能夠在我們的應用中部署合約並呼叫它的函式。

  1. 編譯合約並建立原始碼

Solidity 為編譯器提供了新的 映象,正式版本標記為stable,來自於開發分支的不穩定版本標記為nightly。但是,Docker 映象只包含編譯器可執行檔案,因此我們必須將 Solidity 合約輸入檔案進行持久化卷掛載。假設這些檔案在我們執行 Docker 機器的目錄 /home/docker 下,我們可以使用以下命令進行編譯。這個命令建立了兩個檔案:一個二進位制檔案 .bin,是 EVM 可以解釋的智慧合約程式碼,另外一個是應用程式二進位制介面檔案.abi,裡面定義了智慧合約方法。

編譯輸出檔案在容器的/build目錄下,並且持久化儲存在/home/docker目錄下。在編譯結束後,該容器被刪除,因為現在不需要它。我們可以使用 web3j 庫來從編譯後的智慧合約檔案中建立原始碼。web3j 的可執行檔案在${WEB3J_HOME}/bin目錄下,在建立原始碼時,需要指定.bin 和 .abi檔案的路徑,並且設定目標包名和目錄。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69988445/viewspace-2950099/,如需轉載,請註明出處,否則將追究法律責任。

相關文章