美文网首页
ERC20以太网主网部署

ERC20以太网主网部署

作者: 08f1b6c52d2a | 来源:发表于2018-06-20 09:51 被阅读0次

    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以太网主网部署

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