美文网首页eos
2.4 cleos-commands-contracts

2.4 cleos-commands-contracts

作者: furnace | 来源:发表于2019-07-24 15:10 被阅读0次

    合约相关命令

    1. 获取合约 code

    获取指定合约账户的代码和 ABI。使用方式 cleos get code [OPTIONS] name。

    $ cleos get code eosio.token
    code hash: b15e7bfddbad150158d1d3c3156f6357b7e27af0b5a20107784ba8b3a77b34e0
    

    其中:

    • eosio.token 是智能合约的名称
    $ cleos get code eosio --abi eosio.token.abi
    

    2. 获取合约 ABI

    获取指定合约账户的 ABI。使用方式 cleos get abi [OPTIONS] name。

    $ cleos get abi eosio.token
    
    $ cleos get abi eosio.token --file eosio.token.abi
    $ cleos get abi eosio.token -f eosio.token.abi
    

    3. 获取合约中的表内容

    获取数据库表的内容。使用方式 cleos get table [OPTIONS] account scope table。

    $ cleos get table eosio.token eosio accounts
    {
      "rows": [{
          "balance": "0.0050 EOS"
        }
      ],
      "more": false
    }
    

    其中:

    • eosio.token 表示合约名称
    • eosio 表示 scope 名称
    • accounts 表示表名称
    $ cleos get table eosio.token eosio accounts
    {
      "rows": [{
          "data": {
            "balance": "0.0050 EOS"
          },
          "payer": "eosio"
        }
      ],
      "more": false
    }
    
    $ cleos get table eosio eosio producers
    
    $ cleos get table eosio eosio voters
    
    $ cleos get table eosio eosio users
    {
      "rows": [{
          "from": "alice",
          "to": "alice",
          "net_weight": "1.0000 EOS",
          "cpu_weight": "1.0000 EOS"
        }
      ],
      "more": false
    }
    
    $ cleos get table eosio alice delband
    

    4. 获取合约中 scope 的内容

    $ cleos get scope eosio.token
    {
      "rows": [{
          "code": "eosio.token",
          "scope": "........ehbo5",
          "table": "stat",
          "payer": "eosio.token",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "alice",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio.ram",
          "table": "accounts",
          "payer": "eosio.ram",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio.ramfee",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio.stake",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "inita",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "node1",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "node2",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "node3",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        }
      ],
      "more": ""
    }
    
    $ cleos get scope eosio.token --table accounts --reverse
    {
      "rows": [{
          "code": "eosio.token",
          "scope": "node3",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "node2",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "node1",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "inita",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio.stake",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio.ramfee",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio.ram",
          "table": "accounts",
          "payer": "eosio.ram",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "eosio",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        },{
          "code": "eosio.token",
          "scope": "alice",
          "table": "accounts",
          "payer": "eosio",
          "count": 1
        }
      ],
      "more": ""
    }
    

    其中:

    • eosio.token 表示智能合约 eosio.token
    • accounts 表示表名
    • reverse 表示逆序

    5. 部署合约

    创建或更新合约账户对应的合约。使用方式 cleos set contract [OPTIONS] account [contract-dir] [wasm-file] [abi-file]。

    $ cleos set contract eosio.token ~/bitbucket/zblockchain/eoscodes/contracts/eosio.contracts/eosio.token --abi eosio.token.abi -p eosio.token@active
    

    其中:

    • eosio.toke 是合约账户名称
    $ cleos get scope eosio
    

    其中:

    • eosio 表示智能合约 eosio.system (也有可能是 eosio.bios),具体的根据创建时名称 eosio 对应的具体合约

    项目源代码

    项目源代码会逐步上传到 Github,地址为 https://github.com/windstamp/blockchain

    Contributor

    1. Windstamp, https://github.com/windstamp

    相关文章

      网友评论

        本文标题:2.4 cleos-commands-contracts

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