利用EOS发币

作者: 钟晓宏 | 来源:发表于2018-02-28 14:43 被阅读1042次

    一、准备

    1、运行环境

    我使用的是ubuntu-16.04操作系统,按照eos GitHub上的步骤安装,如果安装中遇到问题,也可以参考我的上一篇文章《搭建EOS测试环境》

    另外,我使用的是Dawn 2.0的代码。由于EOS还在紧张开发中,版本之间差别较大,如果使用的是其它版本的代码,请读者自行适配。

    2、创建钱包

    钱包用来管理账户,签署交易。

    钱包创建后,默认就是unlock的(注意,钱包密码需要记录下来,后面还会用到)。

    $ eosc wallet create

    3、创建账户

    部署智能合约需要一个账户。

    首先,创建两个秘钥对(注意,秘钥对需要记录下来,后面还会用到)。

    $ eosc create key    #owner_key

    $ eosc create key    #active_key

    然后使用系统默认的账户(inita)授权创建新账户(比如currency),将上面创建的私钥分别作为新账户的owner和active的公钥。

    $ eosc create account inita currency OWNER_PUBLIC_KEY ACTIVE_PUBLIC_KEY

    4、将账户导入钱包

    账户导入钱包,方便钱包管理账户。

    将账户的active的私钥导入钱包。

    $ eosc wallet import XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    二、部署智能合约

    接下来我们使用currency账户作为智能合约的创建账户。

    首先,我们先查看currency账户是否已经部署智能合约。

    $ eosc get code currency

    code hash: 0000000000000000000000000000000000000000000000000000000000000000

    code hash全是0表示currency账户还没有部署智能合约(因为currency是新创建的账户)。

    然后,我们部署智能合约,这里使用eos自带的currency智能合约。

    $ eosc set contract currency ../contracts/currency.wast ../contracts/currency.abi

    最后,我们再查看一下currency账户的关联智能合约。

    $ eosc get code currency

    code hash: 9b9db1a7940503a88535517049e64467a6e8f4e9e03af15e9968ec89dd794975

    此时,currency账户已经有关联的智能合约,表明智能合约部署成功了,currency token也就创建成功了。

    三、调用智能合约

    eos自带的currency智能合约只有转账的功能,我们这里就使用转账来示例。

    首先,查看currency账户的余额。

    $ eosc get table currency currency account

    {

        "rows": [{

            "key":"account",

            "balance": 1000000000

            }

        ],

        "more":false

    }

    从上面可以看到,此时,currency账户拥有1000000000个新创建的currency token。

    再查看inita账户的余额。

    $ eosc get table inita currency account

    {

        "rows": [{

            "key":"account",

            "balance": 0

            }

        ],

        "more":false

    }

    现在,我们从currency账户,给inita账户转50个currency token。

    $ eosc push message currency transfer '{"from":"currency","to":"inita","quantity":50}' --scope currency,inita --permission currency@active

    请注意,这个时候钱包必须是unlock,否则会报错。

    现在我们再来看看currency账户和inita账户的余额。

    $ eosc get table currency currency account

    {

        "rows": [{

            "key":"account",

            "balance": 999999950

            }

        ],

        "more":false

    }

    $ eosc get table inita currency account

    {

        "rows": [{

            "key":"account",

            "balance": 50

            }

        ],

        "more":false

    }

    从上面可以看到,转账后,currency账户少了50个 currency token,inita账户多了50个currency token,表明转账成功。

    小tips:

    如果因为突然断电或者无意中关机,没来得及同步数据,导致eosd运行有问题,可以删除区块数据和钱包数据,再运行eosd。

    本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击区块链研习社

    下面是不脸打赏地址:

    ERC20代币地址:0xdeF092bca8d9E093EAD79c967b11D5cA7b0f7a4A

    利用EOS发币

    QYB(屈原币)地址:

    QPA9RhmH5NVRFXARWex9hkyoZMVypLqqYR

    利用EOS发币

    相关文章

      网友评论

      • e2aa3ecd4a1f:发币成本高吗
        钟晓宏:@剪刀手爱翔哥 以现在的币价,发币的成本蛮低的
      • Jfchris:你好 目前有支持钱包发币的App么

      本文标题:利用EOS发币

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