美文网首页666区块链程序员
88/666 EOS发币过程记录

88/666 EOS发币过程记录

作者: 红叔笔记 | 来源:发表于2018-11-29 06:47 被阅读2次

    这是666计划的第88篇笔记

    参考: medium

    创建钱包

    cleos wallet create -n alex-wallet --to-console
    

    输出:

    Creating wallet: alex-wallet
    Save password to use in the future to unlock this wallet.
    Without password imported keys will not be retrievable.
    "PW5KbQdy5YxYyKgcUMvbxk82tjm5xMEF67qvKCeDohvpiJFwb5hgV"
    

    查看钱包

    cleos wallet list
    

    输出:

    
    Wallets:
    [
      "alex-wallet *"
    ]
    
    

    创建密钥

    cleos create key --to-console
    

    输出:

    Private key: 5KM58X55iTQiKamSszmCPQRXS1CvA3hMw3h96u6KnX2mrR8e7qj
    Public key: EOS7tmDEWoc6qJHAvkbffod7kpXPaJTazNY2uJcVAfYg9QiQ5pmyM

    Private key: 5J8esD5uZsrJ72gunW5TfPQTzJyAeY262YPtPZxMDZEBsaimDEg
    Public key: EOS7bxXDrUAZoYTR6udrcWEYndDHeV5sHJju6M6opy9qvibc8w8H6

    
    ## 密钥导入钱包
    

    cleos wallet import -n alex-wallet --private-key 5KM58X55iTQiKamSszmCPQRXS1CvA3hMw3h96u6KnX2mrR8e7qj

    cleos wallet import -n alex-wallet --private-key 5J8esD5uZsrJ72gunW5TfPQTzJyAeY262YPtPZxMDZEBsaimDEg

    
    > 另外还要导入EOSIO的私钥
    ```bash
    cleos wallet import -n alex-wallet --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
    

    创建账户

    cleos create account eosio eosio.token EOS7bxXDrUAZoYTR6udrcWEYndDHeV5sHJju6M6opy9qvibc8w8H6 EOS7tmDEWoc6qJHAvkbffod7kpXPaJTazNY2uJcVAfYg9QiQ5pmyM
    

    输出:

    executed transaction: 968224dd6b597e598430d960ffd30c07834cd23201a4ea655be57977781bc187  200 bytes  28129 us
    #         eosio <= eosio::newaccount            {"creator":"eosio","name":"eosio.token","owner":{"threshold":1,"keys":[{"key":"EOS7bxXDrUAZoYTR6udrc...
    warning: transaction executed locally, but may not be confirmed by the network yet         ]
    

    对应owner key: 5J8esD5uZsrJ72gunW5TfPQTzJyAeY262YPtPZxMDZEBsaimDEg
    active key: 5KM58X55iTQiKamSszmCPQRXS1CvA3hMw3h96u6KnX2mrR8e7qj

    再创建另外两个账户usera userb , 用于转账

    简单点, 直接用相同的key了

    cleos create account eosio usera EOS7bxXDrUAZoYTR6udrcWEYndDHeV5sHJju6M6opy9qvibc8w8H6 EOS7tmDEWoc6qJHAvkbffod7kpXPaJTazNY2uJcVAfYg9QiQ5pmyM
    
    cleos create account eosio userb EOS7bxXDrUAZoYTR6udrcWEYndDHeV5sHJju6M6opy9qvibc8w8H6 EOS7tmDEWoc6qJHAvkbffod7kpXPaJTazNY2uJcVAfYg9QiQ5pmyM
    
    

    生成合约

    eosiocpp -n eosio.token
    

    输出:

    created eosio.token from skeleton
    

    发现生成的合约里面内容居然是helloworld的内容, 所以拷贝过去了

    编译

    eosiocpp -o eosio.token.wast eosio.token.cpp
    
    eosiocpp -g eosio.token.abi eosio.token.cpp
    

    部署

    cleos set contract eosio.token /eosio.token
    

    输出:

    Reading WASM from /eosio.token/eosio.token.wasm...
    Publishing contract...
    executed transaction: 0b9ff9c12794b6a52cdf310b21fb0aaef03428616d8222ba1e9978105de89d2e  8144 bytes  32370 us
    #         eosio <= eosio::setcode               {"account":"eosio.token","vmtype":0,"vmversion":0,"code":"0061736d01000000017e1560037f7e7f0060057f7e...
    #         eosio <= eosio::setabi                {"account":"eosio.token","abi":"0e656f73696f3a3a6162692f312e300007076163636f756e7400010762616c616e63..
    
    

    检查下是否部署成功:

    cleos get code eosio.token
    

    输出:

    code hash: 373148ead5436184456da0f048d45afdded95e8276c1454619ddf87c65a70a05
    

    调用合约, 执行create

    cleos push action eosio.token create '["usera","21000000.0000 DEMO"]' -p eosio.token
    

    查询状态:

    cleos get table eosio.token DEMO stat
    

    输出:

    {
      "rows": [{
          "supply": "0.0000 DEMO",
          "max_supply": "21000000.0000 DEMO",
          "issuer": "usera"
        }
      ],
      "more": false
    }
    
    cleos get table eosio.token usera accounts
    

    输出:

    {
      "rows": [],
      "more": false
    }
    

    调用合约, 执行issue

    cleos push action eosio.token issue '["usera","21000000.0000 DEMO","issuance"]' -p usera
    

    输出:

    executed transaction: 820c1aa07b55536e3ff11bd0e8f2cb3b4c1d79c18a8df1ecbed7d25ad5fae115  128 bytes  3401 us
    #   eosio.token <= eosio.token::issue           {"to":"usera","quantity":"21000000.0000 DEMO","memo":"issuance"
    

    issue后查询状态

    cleos get table eosio.token DEMO stat
    

    输出:

    {
      "rows": [{
          "supply": "21000000.0000 DEMO",
          "max_supply": "21000000.0000 DEMO",
          "issuer": "usera"
        }
      ],
      "more": false
    }
    

    issue之后supply变了

    cleos get table eosio.token usera accounts
    

    输出:

    {
      "rows": [{
          "balance": "21000000.0000 DEMO"
        }
      ],
      "more": false
    }
    

    issue 之后usera的accounts信息里的balance有余额了

    调用合约, 执行转账

    cleos push action eosio.token transfer '["usera","userb","1000000.0000 DEMO","here you go"]' -p usera
    

    输出:

    executed transaction: c4b79a6a8ab89b59075e3dbe4fc126bcc8991ef54a2e42b1c98ee729bca228af  136 bytes  2012 us
    #   eosio.token <= eosio.token::transfer        {"from":"usera","to":"userb","quantity":"1000000.0000 DEMO","memo":"here you go"}
    #         usera <= eosio.token::transfer        {"from":"usera","to":"userb","quantity":"1000000.0000 DEMO","memo":"here you go"}
    #         userb <= eosio.token::transfer        {"from":"usera","to":"userb","quantity":"1000000.0000 DEMO","memo":"here you go"}
    

    调用转账后查询状态

    cleos get table eosio.token DEMO stat
    

    输出:

    {
      "rows": [{
          "supply": "21000000.0000 DEMO",
          "max_supply": "21000000.0000 DEMO",
          "issuer": "usera"
        }
      ],
      "more": false
    }
    

    没有变化

    查询usera账户余额:

    cleos get table eosio.token usera accounts
    

    输出:
    {
    "rows": [{
    "balance": "20000000.0000 DEMO"
    }
    ],
    "more": false
    }

    > usera 少了100万
    
    查询userb账户余额:
    ```bash
    cleos get table eosio.token userb accounts
    

    输出:

    {
      "rows": [{
          "balance": "1000000.0000 DEMO"
        }
      ],
      "more": false
    }
    

    userb 已经有了100万余额

    相关文章

      网友评论

        本文标题:88/666 EOS发币过程记录

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