美文网首页
Ethereum智能合约黄页

Ethereum智能合约黄页

作者: 泡沫与周期_白羊Jerry | 来源:发表于2017-08-22 12:38 被阅读82次

    智能合约在线读取方法

    具体问题可以咨询city.of.beijing@gmail.com

    1. HTTP请求(支持ajax)

      • 直接curl或者js ajax请求

        curl http://www.ethheyue.com/api/contracts


          {
              "yellowpage": {
                  "c_addr": "0x3b58331ffb2d246838185f8df90ecf2956a4dce1",
                  "owner": "0xc713ad7305ec2eb9d8d7654190ac359293a22968",
                  "url": "www.ethheyue.com",
                  "set": true
              }
          }
        
    2. 通过eth-yellowpage npm包从ethereum blockchain上读取

      读取信息不需要花费eth
      npm包详细信息和高级用法参见npm包地址

      • 安装

          npm install eth-yellowpage
        
      • 使用

          //首先连接到ethereum blockchain
          Web3 = require("web3");
          //如果rpc server运行在本地8545端口
          var web = new Web3(new Web3.providers.HttpProviders("http://localhost:8545"));
          
          YellowPage = require("eth-yellowpage").EthYellowPage;
          var yp = new YellowPage(web3);
          
          yp.TotalCount(); //当前注册的合约总数
          var name = yp.GetName(0);   //获取注册的第一个合约的名称
          if(name){
              yp.ReadByName(name);    //获取智能合约信息
          }
        
    3. 直接通过web3.js读取

      不建议新手直接这样用

      • 获取智能合约黄页的abi文件

      • 拷贝当前黄页所在的地址 0x3b58331FFB2D246838185f8DF90eCF2956A4dce1

      • 使用

          //建立连接,同上述,跳过
          var abi = JSON.parse(fs.readFileSync("刚刚下载的abi文件路径"));
          //创建合约的代理
          var contract = web.eth.contract(abi);  
          //获取合约实例
          var instance = contract.at("0x3b58331FFB2D246838185f8DF90eCF2956A4dce1");
          
          //获取当前注册合约总数
          instance.NamesCount();
          
          //获取指定名称"yellowpage"的合约信息
          //这里获取的是hash后的值,
          instance.pages.call("yellowpage");
        

    相关文章

      网友评论

          本文标题:Ethereum智能合约黄页

          本文链接:https://www.haomeiwen.com/subject/ylxldxtx.html