智能合約在線讀取方法
具體問題可以咨詢city.of.beijing@gmail.com
-
HTTP請(qǐng)求(支持ajax)
-
直接curl或者js ajax請(qǐng)求
curl http://www.ethheyue.com/api/contracts
{ "yellowpage": { "c_addr": "0x3b58331ffb2d246838185f8df90ecf2956a4dce1", "owner": "0xc713ad7305ec2eb9d8d7654190ac359293a22968", "url": "www.ethheyue.com", "set": true } }
-
-
通過eth-yellowpage npm包從ethereum blockchain上讀取
讀取信息不需要花費(fèi)eth
npm包詳細(xì)信息和高級(jí)用法參見npm包地址-
安裝
npm install eth-yellowpage -
使用
//首先連接到ethereum blockchain Web3 = require("web3"); //如果rpc server運(yùn)行在本地8545端口 var web = new Web3(new Web3.providers.HttpProviders("http://localhost:8545")); YellowPage = require("eth-yellowpage").EthYellowPage; var yp = new YellowPage(web3); yp.TotalCount(); //當(dāng)前注冊(cè)的合約總數(shù) var name = yp.GetName(0); //獲取注冊(cè)的第一個(gè)合約的名稱 if(name){ yp.ReadByName(name); //獲取智能合約信息 }
-
-
直接通過web3.js讀取
不建議新手直接這樣用
獲取智能合約黃頁(yè)的abi文件
拷貝當(dāng)前黃頁(yè)所在的地址 0x3b58331FFB2D246838185f8DF90eCF2956A4dce1
-
使用
//建立連接,同上述,跳過 var abi = JSON.parse(fs.readFileSync("剛剛下載的abi文件路徑")); //創(chuàng)建合約的代理 var contract = web.eth.contract(abi); //獲取合約實(shí)例 var instance = contract.at("0x3b58331FFB2D246838185f8DF90eCF2956A4dce1"); //獲取當(dāng)前注冊(cè)合約總數(shù) instance.NamesCount(); //獲取指定名稱"yellowpage"的合約信息 //這里獲取的是hash后的值, instance.pages.call("yellowpage");