Remix Geth 實現智慧型合約部署和呼叫詳解

2022-08-31 15:42:19 字數 2146 閱讀 2531

geth實現私有鏈部署合約和呼叫介面

記得在setting裡選擇對應版本

點選run, create, 實現部署

在部署完之後會出現下面介面, 包括合約名字

如何呼叫介面?

只需要在對應的介面上輸入引數, 呼叫的話,點選前面的介面名就能在下面看到輸出

經過以上兩步 我們應該已經除錯好合約, 下面就是部署在私有鏈上了

首先在ubantu安裝好geth環境, 配置好私有鏈,具體可參考此部落格

然後我們開啟web3命令列

然後在remix的complies介面點選detail

找到remix為我們自動生成的部署合約**

複製此段** 然後放到web3命令列

注意 生成的預設是第乙個賬戶發起的

from: web3.eth.accounts[0]

需要解鎖此使用者才可以

personal.unlockaccount(eth.accounts[0])
然後挖礦確認 部署合約

顯示已經部署成功, 而且顯示了合約的位址,位址需要複製下來後面需要用

方法1:

其實當你在web3命令列執行remix賦值的命令語句時,此時已經是有乙個例項了, 對於我上面的例子,此時的例項就是fitbody, 注意不是fitbodycontract , fitbodycontract 相當於乙個類, 而fitbody是合約類生成的合約例項, 我們用的就是合約例項。這時的fitbody相當於下文的mycontract

這是方法2:

呼叫合約首先需要獲得合約的例項,通過例項呼叫

var ac0 = web3.eth.accounts[0];

var mycontract = web3.eth.contract(《合約abi>).at(《合約位址》);

合約abi 通過編譯本地合約**獲得把remix的合約放到ubantu裡 儲存為code.sol

solc --abi code.tol
需要自行安裝solidity編譯器而合約位址剛才已經儲存。

獲得例項mycontract後可以通過下面方法呼叫

一般是需要先unlock呼叫的位址賬戶的

這種是對內容進行修改,或者合約需要傳送以太幣時的呼叫方式,執行完可獲得交易的hash

mycontract.《你的合約介面, 這裡一般會自動補全》.sendtransaction(《引數列表》, );
這種是進行查詢時的介面呼叫方式

mycontract.《介面名》.call(《引數》);

編寫智慧型合約

1.安裝node.js 2.安裝truffle npm install g truffle 3.啟動testrpc以太坊環境 testrpc 4.另開終端視窗新建專案 mkdir demo cd demo 5.初始化專案目錄 truffle init 6.建立合約檔案 truffle create ...

積分智慧型合約

pragma solidity 0.4.22 title safemath dev math operations with safety checks that throw on error library safemath function div uint256 a,uint256 b int...

部署智慧型合約

合約部署需要挖礦才能成功,我們新開乙個視窗用與挖礦,新開乙個控制台,輸入命令 geth attach 連線到控制台,執行miner.start 1 開始挖礦。合約demo如下 pragma solidity 0.4.0 contract infocontract function getinfo p...