ERC20以太网主网部署

ERC20智能合约锁仓与解锁主网发布过程:

[if !supportLists]1、  [endif]Solidity发布合约

智能合约代码拷贝到” https://ethereum.github.io/browser-solidity”

[if !vml]

[endif]

图1.1

[if !supportLists]2、  [endif]发布合约Remix设置

发布” ZHRTEST”智能合约,MetaMask网络选择”Main Network”, Account为Account1的地址,刷新浏览器自动显示。”2”中的选择“ZHRTEST”合约;先点击“Run”切换到运行中,Enviroment选择”Injected Web3”,点击Create.

[if !vml]

[endif]

图2.1

[if !vml]

[endif]

图2.2

[if !supportLists]3、  [endif]发布合约Gas Price与Meta Mask选择

发布的时候Gas Price可以根据当前行情选择”https://etherscan.io/txs”,一般设置7-14即可。打开“Meta Mask”,点击0 ETH,即可看到合约创建信息,如图3.1所示。(默认Gas Limit不用管,若是提示Gas Limit to low,适当加大limit)。注意:这里面代码是现在修改过的,在主网发布时采用的是symbol=”ZHR”。


[if !vml]

[endif]

图3.1


[if !vml]

[endif]

图3.2

其中“1”为success时,代表合约创建成功;“2”中地址即为合约地址;“4”为设置的gas价格;“5”为实际消耗的gas量。若出现失败图3.3所示则表示Gas limit小了。

[if !vml]

[endif]

图3.3

4、生成5个锁仓钱包地址(初始发行时,其他不用考虑)

打开”MyEtherWallet”(https://www.myetherwallet.com),先生成5个钱包地址,用于存储放仓后的代币。生成钱包地址的如图4.1所示(若已经有5个地址,则不需要再生成):

[if !vml]

[endif]

图4.1

5、拷贝“ABI”(MyEtherWallet运行合约时的ABI)

在图5.1中“Compile”中选择”ZHRTEST”,点击”Details”,,在弹出的框里面图5.2中找到”ABI”, 点击“1”,即可看到拷贝”ABI”成功。

[if !vml]

[endif]

图5.1

[if !vml]

[endif]

图5.2

6、运行“ZHRTEST”合约

图6.1中点击合同(contract), 输入“ZHRTEST”合约地址和” ZHRTEST”发布时对应的“ABI”。把“1”中Gas Price 设置为当前交易行情,一般6-14即可。“2”中网络一定要选择ETH的主网。若要在测试网发布则选择如图6.2所示的“Ropsten”。输入刚才拷贝的ABI,即可查看“ZHRTEST”合约的内容。

[if !vml]

[endif]

图6.1

[if !vml]

[endif]

图6.2

7、查看“ZHRTEST”合约信息。注意:一定要查看一下该合约的变量,查看该合约所有变量是否都正常。

点击“ACCESS”, 即可根据函数或者变量查看合约相关信息。

[if !vml]

[endif]

图7.1

8、发布锁仓解锁的“ZHRTokenVault”合约

在“ZHRTEST”下发布锁仓解锁的“ZHRTokenVault”合约,与Create同一行的输入框填上“ZHRTEST”合约地址,其地址为“0x80104364386e764a0c25467f13a9f40b7931834a”,如图8.1所示。点击Create,创建该合约。若Gas

limit太小创建会提示出现“2”的情况。此时调大Gas limit,例如:5000000。注意:此时“1”的地址一定要是“ZHRTEST”的地址,否则后面所有的操作都将无效,还有网络一定要在主网络下哦!发布完成后一定要在MyEtherWallet下运行该合约,并查看相关变量信息,看看该合约所有变量是否都正常(尤其是token是否为“ZHRTokenVault”合约地址)。

[if !vml]

[endif]

图8.1

9、初始发行转账给5个账户(若要锁的币已在原先的5个地址中,则不需要此步骤)

用发行智能合约的账户(即” ZHRTEST”的“owner”)给5个锁定地址转账。若新发布合约中owner账户中没有ZHR币,则按照图9.2点击Add,填写合约地址,代币符号,位数;添加后如图9.3所示(这里面ZHR的量是给5个地址转过后的量。)转账完成后,查询每一个账户的代币数量,如图9.4所示。(若是在原有的合约上面锁仓的话,直接用原先的账户给5个地址发币,然后5个地址再发给合约;如果要锁的币原先就在5个不同的地址,则直接用5个账户转账给该合约。)

[if !vml]

[endif]

图9.1


[if !vml]

[endif]

图9.2

[if !vml]

[endif]

图9.3

[if !vml]

[endif]

图9.4

10、将要锁仓money转到锁仓合约

将5个锁仓账号的代币发到智能合约“ZHRTokenVault”,其合约地址为“0x8495de357c9c5daf33ee388cf0deb62e855bcce5”。注意:转账时一定要注意地址和数量哦,数量对不住的话,锁仓将失败,耗费更多money。

11、执行与操作“ZHRTokenVault”合约

在MyEtherWallet中运行“ZHRTokenVault”合约,填写合约地址和对应的“ABI”。

[if !vml]

[endif]

图11.1

[if !vml]

[endif]

图11.2

12、查看“ZHRTokenVault”合约信息

通过getTotalBanlance查看” ZHRTokenVault”合约的总金额(注意:有一部分金额已经放仓)。也可以查询其他信息。对比totalAllocation是否等于getTotalBanlance得到的金额,若不等,则锁仓将要失败。

[if !vml]

[endif]

图12.1

13、锁仓操作。

选择“allocate”函数,将出现如图13.1所示。输入当前账号的秘钥,出现图13.2所示。点击” WRITE”,如图13.3所示,若Gas limit 没有默认的则可填写300000-910000,这个要根据具体情况。注意:一定要注意是否在主网和Gas Price,还有使用allocate时一定要有让你输入自己私钥方式的哦,要是没有就刷新一下,重新进行步骤12和13操作。

注明:一旦出错是合约错误,首先比对要锁仓数量是否与自定义的要锁定数量相等。

[if !vml]

[endif]

图13.1

[if !vml]

[endif]

图13.2

[if !vml]

[endif]

图13.3

14、查看锁仓

   ①、查询开始锁定时间如图14.1所示。

②、查询未放仓的总金额,如图14.2所示。

③、查询” claimed”变量的值,输入每个钱包的地址查看每个地址下claimed对应的值,为0时代表该地址对应的金额处于锁定状态。

[if !vml]

[endif]

图14.1

[if !vml]

[endif]

图14.2

[if !vml]

[endif]

图14.3

15、解仓操作。输入5个锁仓地址对应的私钥,然后运行该地址对应合约的函数。注意:一旦出错合约出错,不是Gas被消耗完,首先查看地址对应的函数是否正确。

[if !vml]

[endif]

图15.1

16、查询解仓信息。


[if !vml]

[endif]

图16.1


17、常见错误:

[if !supportLists]①  [endif]、Gas问题

Gas Price 设置太大,Gas

limit较小,Gas耗尽后仍然没有执行完该合约。在MyEtherWallet里面一定要改Gas Price,要不然默认就是41 Gwei。

[if !vml]

[endif]

[if !supportLists]②  [endif]、合约执行问题

  合约中某个函数执行失败。

[if !vml]

[endif]

你可能感兴趣的:(ERC20以太网主网部署)