智能合约编译器Remix IDE
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                智能合约编译器Remix IDE
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            Error: The method eth_getCompilers does not exist/is not available
? ? at web3.js:3143:20
? ? at web3.js:6347:15
? ? at web3.js:5081:36
? ? at <anonymous>:1:1
========》
廢棄eth_compile函數族
動機:
eth_compile* RPC調用不在eth API負責范圍內,而eth API應該是只包含以太網節點的核心功能。由于以太坊只在底層EVM字節處理,所以API層不應該暴露任何與高級語言相關的事情。管理,未獲和升級編譯器版本,標志和產生的ABI都會對實現增加額外的復雜因素。
此外,通過給Solidity,Serpent和LLL語言提高地位來限制其他基于EVM語言開發的使用會潛在地扼殺新方案的開發和采用。最后,eth_compile*函數族無法滿足DApp應用程序某些使用場景,因為它們不允許固定到特定的編譯器版本。所以在geth 1.6版之后就廢棄了這個函數。
動作:
在文檔中標記eth_compileSolidity, eth_compileSerpent和eth_compileLLL方法無效,同時建議改用恰當的開發工具替代。
編譯器功能可能仍然會提供,但是只在特定節點RPC名字空間內。
進行編譯。
先安裝npm和node.js,然后再:
由于Remix-ide已經發布成一個npm模塊,所以:
npm install remix-ide -g
再啟動remix-ide:
2.從github上clone代碼倉庫:
git clone https://github.com/ethereum/remix-ide.git
cd remix-ide
npm install
npm run setupremix? # this will clone https://github.com/ethereum/remix for you and link it to remix-ide
npm start
開發:
運行npm start(離線方式的第一種就是啟動remix-ide即可),在本地瀏覽器打開http://127.0.0.1:8080。
這就可以開始編輯開發合約了,而大多數浪費在其他模塊比如debuger等上的時間就可以省掉了。
每次在當前文件有改變或者其他文件被選中時,Remix默認觸發編譯指令,若當合約有許多依賴或者耗時要很長時,可能會禁止
編譯錯誤和提示會在合約區下方顯示出來,每一次的編譯,靜態分析標簽會創建一個報告,即使編譯器不編譯在定位報告問題時
這也很有價值。點擊它可看到,它跳轉到Analysis條目:
這里會給出最后的編譯信息,它給出了合約代碼的詳細信息,可幫助避免代碼錯誤和執行最佳做法。
運行:
Run標簽可將交易發送到當前環境。
Run配置解釋:
下面的設置會直接影響交易執行:
1.Environment:
JavaScript VM:表示所有的交易會在瀏覽器內的一個沙盒區塊鏈內執行,也就是在上面做任何執行操作都不會寫到真實的系統中去,意味著當重新加載一頁時會重啟一個新的區塊鏈,舊的不會被保存。
Injected Provider:表示Remix會連接到一個注入的web3提供者。Mist和Metamask就是注入web3提供者的實例,因此可使用該選項。
Web3 Provider:表示Remix會連接到一個遠程節點,必須提供URL地址給被選中的提供者:geth,parity或任何其他以太坊客戶端。
2.Account:
和當前環境相關的賬戶列表(和它們相關的余額)
3.Gas Limit:
用來給所有在Remix中創建的交易設置gas的最大值。
4.Value:下一個被創建交易的值的數量(在每個交易執行后該值總會被重置為0)
初始化實例:
該區域包含被編譯的合約和2個操作:
At Address: 表示假設給定地址是選中合約的一個實例,隨后它可能會和一個已經部署的合約交互。關于這個問題點這里沒有做檢查,所以當使用這個功能時要特別小心,要確定這個地址的合約是可信任的。
Create: 表示發送一個交易部署選中的合約,當交易被挖礦時,新創建的實例將會被添加(這可能會耗時幾秒),需要注意如果constructor帶有參數,這里也必須指定這些參數。
掛起實例:
驗證一個交易需要耗時幾秒種,在這期間,GUI顯示的是處于掛起模式,當交易被挖礦時,掛起交易的數量會更新同時該交易也會被添加進log中,在終端可看到,如下:
3.它顯示當前上下文中被挖礦的交易。還能夠選擇顯示所有的交易或者只顯示Remix所知道的合約交易(比如,從Remix IDE創建的交易)
? 4.它允許從終端搜索數據和清除日志。
實例列表:
該部分包含要交互的實例列表。
? 1.被調用函數在solidity用constant或pure聲明的。該動作具有藍色背景,點擊它不會創建新的交易。因為點擊它不會發生狀態改變,所以沒有
? 必要去點擊它,但是它會更新該函數的返回值。
? 2.被調用函數無特殊關鍵字的。這種動作背景色為淺紅色,點擊它會創建一個新的交易,但是交易不能接受任意數量的以太幣。
? 3.被調用函數在solidity中用payable聲明的。這種動作背景色為紅色,點擊它會創建一個新的交易并且該交易能夠接受以太幣。
更多的關于Solidity修改器,可參考地址:
https://solidity.readthedocs.io/en/develop/miscellaneous.html?highlight=pure#modifiers
使用Create或At Address是Remix的經典用法。但是通過使用它的ABI也是可以與合約交互的,ABI是一個描述它的接口的JSON數組。
若要通過ABI和合約交易,則可在Remix內創建一個擴展名為*.abi的文件,再把ABI內容拷貝進去。然后在At Address旁邊的輸入框內輸入想要于它交易的合約地址。點擊At Address,在下面就會彈出一個新的與合約產生的連接。
可參考網址:
https://blog.csdn.net/ddffr/article/details/76549320
記錄器有許多用途,比如:
1.在一個受限環境內編碼和測試合約后(比如在JavaScript VM模式),可能會更想要將它更容易地重新部署到一個更為永久的環境(比如一個Geth節點)以便檢測在一個傳統環境內所有事情表現的是否正常。
2.部署合約常要求不止創建一個交易
3.在一個dev環境工作常首要的要求就是配置狀態。
保存的記錄需要創建以下類型的內容:
在該記錄中,執行了三個交易
第一個對應的的是庫testLib的部署。
第二個對應的是合約test的部署,構造函數的第一個參數被設置為11,該合約依賴一個庫,該使用屬性linkReferences來做鏈接。
在這種情況下,使用之前創建的庫的地址:created{1512830014773}number就是交易id(時間戳)它使得庫被創建。第三個參數對應著合約test的函數set的調用(屬性被設置為:created{1512830015080}),輸入參數為1和0xca35b7d915458ef540ade6068dfe2f44e8fa733c。通過賬戶account[0]的值來創建這些交易:
? {
"accounts": {
? ? "account{0}": "0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
},
"linkReferences": {
? ? "testLib": "created{1512830014773}"
},
"transactions": [
? ? {
? ? "timestamp": 1512830014773,
? ? "record": {
? ? ? ? "value": "0",
? ? ? ? "parameters": [],
? ? ? ? "abi": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a",
? ? ? ? "contractName": "testLib",
? ? ? ? "bytecode": "60606040523415600e57600080fd5b60968061001c6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d4ce63c146044575b600080fd5b604a6060565b6040518082815260200191505060405180910390f35b6000610d809050905600a165627a7a7230582022d123b15248b8176151f8d45c2dc132063bcc9bb8d5cd652aea7efae362c8050029",
? ? ? ? "linkReferences": {},
? ? ? ? "type": "constructor",
? ? ? ? "from": "account{0}"
? ? }
? ? },
? ? {
? ? "timestamp": 1512830015080,
? ? "record": {
? ? ? ? "value": "100",
? ? ? ? "parameters": [
? ? ? ? 11
? ? ? ? ],
? ? ? ? "abi": "0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec",
? ? ? ? "contractName": "test",
? ? ? ? "bytecode": "60606040526040516020806102b183398101604052808051906020019091905050806000819055505061027a806100376000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f30c6f61461006757806338cc48311461009e57806362738998146100f357806387cc10e11461011c575b600080fd5b61009c600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610145565b005b34156100a957600080fd5b6100b1610191565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100fe57600080fd5b6101066101bb565b6040518082815260200191505060405180910390f35b341561012757600080fd5b61012f6101c4565b6040518082815260200191505060405180910390f35b8160008190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054905090565b600073__browser/ballot.sol:testLib____________636d4ce63c6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b151561022e57600080fd5b6102c65a03f4151561023f57600080fd5b505050604051805190509050905600a165627a7a72305820e0b2510bb2890a0334bfe5613d96db3e72442e63b514cdeaee8fc2c6bbd19d3a0029",
? ? ? ? "linkReferences": {
? ? ? ? "browser/ballot.sol": {
? ? ? ? ? ? "testLib": [
? ? ? ? ? ? {
? ? ? ? ? ? ? ? "length": 20,
? ? ? ? ? ? ? ? "start": 511
? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? }
? ? ? ? },
? ? ? ? "name": "",
? ? ? ? "type": "constructor",
? ? ? ? "from": "account{0}"
? ? }
? ? },
? ? {
? ? "timestamp": 1512830034180,
? ? "record": {
? ? ? ? "value": "1000000000000000000",
? ? ? ? "parameters": [
? ? ? ? 1,
? ? ? ? "0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
? ? ? ? ],
? ? ? ? "to": "created{1512830015080}",
? ? ? ? "abi": "0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec",
? ? ? ? "name": "set",
? ? ? ? "type": "function",
? ? ? ? "from": "account{0}"
? ? }
? ? }
],
"abis": {
? ? "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a": [
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "get",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? }
? ? ],
? ? "0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec": [
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "getInt",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "getFromLib",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "getAddress",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "address"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "constant": false,
? ? ? ? "inputs": [
? ? ? ? {
? ? ? ? ? ? "name": "_t",
? ? ? ? ? ? "type": "uint256"
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "name": "_add",
? ? ? ? ? ? "type": "address"
? ? ? ? }
? ? ? ? ],
? ? ? ? "name": "set",
? ? ? ? "outputs": [],
? ? ? ? "payable": true,
? ? ? ? "stateMutability": "payable",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "inputs": [
? ? ? ? {
? ? ? ? ? ? "name": "_r",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": true,
? ? ? ? "stateMutability": "payable",
? ? ? ? "type": "constructor"
? ? }
? ? ]
}
}
                        
                        
                        ? ? at web3.js:3143:20
? ? at web3.js:6347:15
? ? at web3.js:5081:36
? ? at <anonymous>:1:1
========》
廢棄eth_compile函數族
動機:
eth_compile* RPC調用不在eth API負責范圍內,而eth API應該是只包含以太網節點的核心功能。由于以太坊只在底層EVM字節處理,所以API層不應該暴露任何與高級語言相關的事情。管理,未獲和升級編譯器版本,標志和產生的ABI都會對實現增加額外的復雜因素。
此外,通過給Solidity,Serpent和LLL語言提高地位來限制其他基于EVM語言開發的使用會潛在地扼殺新方案的開發和采用。最后,eth_compile*函數族無法滿足DApp應用程序某些使用場景,因為它們不允許固定到特定的編譯器版本。所以在geth 1.6版之后就廢棄了這個函數。
動作:
在文檔中標記eth_compileSolidity, eth_compileSerpent和eth_compileLLL方法無效,同時建議改用恰當的開發工具替代。
編譯器功能可能仍然會提供,但是只在特定節點RPC名字空間內。
所以可通過在線或離線方式來編譯合約:
在線方式是直接進入網址:
https://remix.ethereum.org進行編譯。
離線方式有兩種,如下:
1.離線安裝remix-ide:先安裝npm和node.js,然后再:
由于Remix-ide已經發布成一個npm模塊,所以:
npm install remix-ide -g
再啟動remix-ide:
2.從github上clone代碼倉庫:
git clone https://github.com/ethereum/remix-ide.git
cd remix-ide
npm install
npm run setupremix? # this will clone https://github.com/ethereum/remix for you and link it to remix-ide
npm start
開發:
運行npm start(離線方式的第一種就是啟動remix-ide即可),在本地瀏覽器打開http://127.0.0.1:8080。
這就可以開始編輯開發合約了,而大多數浪費在其他模塊比如debuger等上的時間就可以省掉了。
編譯:
直接點擊編譯如下:
每次在當前文件有改變或者其他文件被選中時,Remix默認觸發編譯指令,若當合約有許多依賴或者耗時要很長時,可能會禁止
自動編譯autocompile。
在每次編譯過后,合約會更新到一個全新的被編譯過的狀態。
Details詳細模塊對話框顯示的是當前被選中合約的詳細信息。從這個標簽還可以將合約發布到Swarm(只有非抽象智能合約才可以發布到Swarm),Swarm是一個去中心化文件服務。發布的數據特別地包含abi和solidity源碼。
在合約發布后,可點擊details通過bzz URL方式查看找到它的元數據信息。編譯錯誤和提示會在合約區下方顯示出來,每一次的編譯,靜態分析標簽會創建一個報告,即使編譯器不編譯在定位報告問題時
這也很有價值。點擊它可看到,它跳轉到Analysis條目:
這里會給出最后的編譯信息,它給出了合約代碼的詳細信息,可幫助避免代碼錯誤和執行最佳做法。
運行:
Run標簽可將交易發送到當前環境。
Run配置解釋:
下面的設置會直接影響交易執行:
1.Environment:
JavaScript VM:表示所有的交易會在瀏覽器內的一個沙盒區塊鏈內執行,也就是在上面做任何執行操作都不會寫到真實的系統中去,意味著當重新加載一頁時會重啟一個新的區塊鏈,舊的不會被保存。
Injected Provider:表示Remix會連接到一個注入的web3提供者。Mist和Metamask就是注入web3提供者的實例,因此可使用該選項。
Web3 Provider:表示Remix會連接到一個遠程節點,必須提供URL地址給被選中的提供者:geth,parity或任何其他以太坊客戶端。
2.Account:
和當前環境相關的賬戶列表(和它們相關的余額)
3.Gas Limit:
用來給所有在Remix中創建的交易設置gas的最大值。
4.Value:下一個被創建交易的值的數量(在每個交易執行后該值總會被重置為0)
初始化實例:
該區域包含被編譯的合約和2個操作:
At Address: 表示假設給定地址是選中合約的一個實例,隨后它可能會和一個已經部署的合約交互。關于這個問題點這里沒有做檢查,所以當使用這個功能時要特別小心,要確定這個地址的合約是可信任的。
Create: 表示發送一個交易部署選中的合約,當交易被挖礦時,新創建的實例將會被添加(這可能會耗時幾秒),需要注意如果constructor帶有參數,這里也必須指定這些參數。
掛起實例:
驗證一個交易需要耗時幾秒種,在這期間,GUI顯示的是處于掛起模式,當交易被挖礦時,掛起交易的數量會更新同時該交易也會被添加進log中,在終端可看到,如下:
終端中有以下功能:
1.它集成一個JavaScript解釋器和web3對象。它能讓JS腳本執行并且與當前上下文交互。(注意web3只有在web provider和injected provider模式才有效)
2.它顯示當和Remix IDE交互時所做出的重要動作(比如,發送一個新的交易)3.它顯示當前上下文中被挖礦的交易。還能夠選擇顯示所有的交易或者只顯示Remix所知道的合約交易(比如,從Remix IDE創建的交易)
? 4.它允許從終端搜索數據和清除日志。
實例列表:
該部分包含要交互的實例列表。
? 1.被調用函數在solidity用constant或pure聲明的。該動作具有藍色背景,點擊它不會創建新的交易。因為點擊它不會發生狀態改變,所以沒有
? 必要去點擊它,但是它會更新該函數的返回值。
? 2.被調用函數無特殊關鍵字的。這種動作背景色為淺紅色,點擊它會創建一個新的交易,但是交易不能接受任意數量的以太幣。
? 3.被調用函數在solidity中用payable聲明的。這種動作背景色為紅色,點擊它會創建一個新的交易并且該交易能夠接受以太幣。
更多的關于Solidity修改器,可參考地址:
https://solidity.readthedocs.io/en/develop/miscellaneous.html?highlight=pure#modifiers
若一個函數需要輸入參數,則必須指定輸入參數。
使用ABI:使用Create或At Address是Remix的經典用法。但是通過使用它的ABI也是可以與合約交互的,ABI是一個描述它的接口的JSON數組。
若要通過ABI和合約交易,則可在Remix內創建一個擴展名為*.abi的文件,再把ABI內容拷貝進去。然后在At Address旁邊的輸入框內輸入想要于它交易的合約地址。點擊At Address,在下面就會彈出一個新的與合約產生的連接。
可參考網址:
https://blog.csdn.net/ddffr/article/details/76549320
使用記錄器:
記錄器允許以JSON文本形式保存交易并在隨后可以在同樣的環境或者另外一個環境來重新運行這些交易。
保存到JSON過程運行簡單地檢查交易列表,調整輸入參數,改變鏈接庫等。記錄器有許多用途,比如:
1.在一個受限環境內編碼和測試合約后(比如在JavaScript VM模式),可能會更想要將它更容易地重新部署到一個更為永久的環境(比如一個Geth節點)以便檢測在一個傳統環境內所有事情表現的是否正常。
2.部署合約常要求不止創建一個交易
3.在一個dev環境工作常首要的要求就是配置狀態。
保存的記錄需要創建以下類型的內容:
在該記錄中,執行了三個交易
第一個對應的的是庫testLib的部署。
第二個對應的是合約test的部署,構造函數的第一個參數被設置為11,該合約依賴一個庫,該使用屬性linkReferences來做鏈接。
在這種情況下,使用之前創建的庫的地址:created{1512830014773}number就是交易id(時間戳)它使得庫被創建。第三個參數對應著合約test的函數set的調用(屬性被設置為:created{1512830015080}),輸入參數為1和0xca35b7d915458ef540ade6068dfe2f44e8fa733c。通過賬戶account[0]的值來創建這些交易:
? {
"accounts": {
? ? "account{0}": "0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
},
"linkReferences": {
? ? "testLib": "created{1512830014773}"
},
"transactions": [
? ? {
? ? "timestamp": 1512830014773,
? ? "record": {
? ? ? ? "value": "0",
? ? ? ? "parameters": [],
? ? ? ? "abi": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a",
? ? ? ? "contractName": "testLib",
? ? ? ? "bytecode": "60606040523415600e57600080fd5b60968061001c6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d4ce63c146044575b600080fd5b604a6060565b6040518082815260200191505060405180910390f35b6000610d809050905600a165627a7a7230582022d123b15248b8176151f8d45c2dc132063bcc9bb8d5cd652aea7efae362c8050029",
? ? ? ? "linkReferences": {},
? ? ? ? "type": "constructor",
? ? ? ? "from": "account{0}"
? ? }
? ? },
? ? {
? ? "timestamp": 1512830015080,
? ? "record": {
? ? ? ? "value": "100",
? ? ? ? "parameters": [
? ? ? ? 11
? ? ? ? ],
? ? ? ? "abi": "0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec",
? ? ? ? "contractName": "test",
? ? ? ? "bytecode": "60606040526040516020806102b183398101604052808051906020019091905050806000819055505061027a806100376000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f30c6f61461006757806338cc48311461009e57806362738998146100f357806387cc10e11461011c575b600080fd5b61009c600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610145565b005b34156100a957600080fd5b6100b1610191565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100fe57600080fd5b6101066101bb565b6040518082815260200191505060405180910390f35b341561012757600080fd5b61012f6101c4565b6040518082815260200191505060405180910390f35b8160008190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054905090565b600073__browser/ballot.sol:testLib____________636d4ce63c6000604051602001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b151561022e57600080fd5b6102c65a03f4151561023f57600080fd5b505050604051805190509050905600a165627a7a72305820e0b2510bb2890a0334bfe5613d96db3e72442e63b514cdeaee8fc2c6bbd19d3a0029",
? ? ? ? "linkReferences": {
? ? ? ? "browser/ballot.sol": {
? ? ? ? ? ? "testLib": [
? ? ? ? ? ? {
? ? ? ? ? ? ? ? "length": 20,
? ? ? ? ? ? ? ? "start": 511
? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? }
? ? ? ? },
? ? ? ? "name": "",
? ? ? ? "type": "constructor",
? ? ? ? "from": "account{0}"
? ? }
? ? },
? ? {
? ? "timestamp": 1512830034180,
? ? "record": {
? ? ? ? "value": "1000000000000000000",
? ? ? ? "parameters": [
? ? ? ? 1,
? ? ? ? "0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
? ? ? ? ],
? ? ? ? "to": "created{1512830015080}",
? ? ? ? "abi": "0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec",
? ? ? ? "name": "set",
? ? ? ? "type": "function",
? ? ? ? "from": "account{0}"
? ? }
? ? }
],
"abis": {
? ? "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a": [
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "get",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? }
? ? ],
? ? "0xc41589e7559804ea4a2080dad19d876a024ccb05117835447d72ce08c1d020ec": [
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "getInt",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "getFromLib",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "constant": true,
? ? ? ? "inputs": [],
? ? ? ? "name": "getAddress",
? ? ? ? "outputs": [
? ? ? ? {
? ? ? ? ? ? "name": "",
? ? ? ? ? ? "type": "address"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": false,
? ? ? ? "stateMutability": "view",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "constant": false,
? ? ? ? "inputs": [
? ? ? ? {
? ? ? ? ? ? "name": "_t",
? ? ? ? ? ? "type": "uint256"
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "name": "_add",
? ? ? ? ? ? "type": "address"
? ? ? ? }
? ? ? ? ],
? ? ? ? "name": "set",
? ? ? ? "outputs": [],
? ? ? ? "payable": true,
? ? ? ? "stateMutability": "payable",
? ? ? ? "type": "function"
? ? },
? ? {
? ? ? ? "inputs": [
? ? ? ? {
? ? ? ? ? ? "name": "_r",
? ? ? ? ? ? "type": "uint256"
? ? ? ? }
? ? ? ? ],
? ? ? ? "payable": true,
? ? ? ? "stateMutability": "payable",
? ? ? ? "type": "constructor"
? ? }
? ? ]
}
}
參考網址:https://remix.readthedocs.io/en/latest/
總結
以上是生活随笔為你收集整理的智能合约编译器Remix IDE的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 计算机表格单元格合并,excel表格数据
- 下一篇: remix-ide,windows开发环
