利用EOS发币

一、准备

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发币_第1张图片
图片发自App


QYB(屈原币)地址:

QPA9RhmH5NVRFXARWex9hkyoZMVypLqqYR


利用EOS发币_第2张图片
图片发自App

你可能感兴趣的:(利用EOS发币)