美文网首页
使用Parity钱包做EOS主网映射

使用Parity钱包做EOS主网映射

作者: logz2020 | 来源:发表于2018-05-10 17:24 被阅读129次

    EOS主网映射

    EOS主网映射,就是将一个以太坊地址和一个EOS主网地址进行绑定,并将这种绑定记录到EOS的众筹合约中。
    这样,以太坊地址所持有的EOS代币,在主网启动后, 对应的EOS主网地址,也会拥有相同数量的EOS。

    如何生成EOS主网地址

    1. 通过社区开发的工具

    https://nadejde.github.io/eos-token-sale/

    • 点击Generate EOS key
      image.png
      这个工具是从EOS官方的众筹合约精简过来的,删除了一些依赖库。代码托管在github上,可以review。
      下面是作者在steem上的介绍文章,BM点过赞。
      https://steemit.com/eos/@nadejde/eos-key-generator
    1. 通过EOS官方提供的脚本工具
      https://github.com/EOSIO/eosjs-ecc
    import ecc from 'eosjs-ecc'
    ecc.randomKey().then(privateKey => {
      console.log('Private Key:\t', privateKey) // wif
      console.log('Public Key:\t', ecc.privateToPublic(privateKey)) 
    })
    

    注意保管好好生成的Private Key。

    如何使用Parity钱包做映射

    所谓的映射,实际上是调用EOS合约的register()方法。
    下面演示,在Parity钱包中如何操作。

    1. 在Setting中,勾选Contracts


      image.png
    2. 打开Contracts,点击 WATCH,选择 Custom Contract,添加EOS众筹合约。


      image.png
    image.png

    EOS合约的信息,可以在etherscan查询
    https://etherscan.io/address/0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf#code

    需要填写的信息如下:

    network address:
    0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf

    contract name:
    EOSSale

    contract abi:

    [{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"claimed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"time","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint128"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundersAllocation","outputs":[{"name":"","type":"uint128"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"day","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundersKey","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"userBuys","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"day","type":"uint256"}],"name":"createOnDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"freeze","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"keys","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"dailyTotals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"openTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"EOS","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"today","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"eos","type":"address"}],"name":"initialize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"createFirstDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claimAll","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"timestamp","type":"uint256"}],"name":"dayFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"day","type":"uint256"},{"name":"limit","type":"uint256"}],"name":"buyWithLimit","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfDays","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"key","type":"string"}],"name":"register","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"createPerDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_numberOfDays","type":"uint256"},{"name":"_totalSupply","type":"uint128"},{"name":"_openTime","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_foundersAllocation","type":"uint128"},{"name":"_foundersKey","type":"string"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"window","type":"uint256"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"window","type":"uint256"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"key","type":"string"}],"name":"LogRegister","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogCollect","type":"event"},{"anonymous":false,"inputs":[],"name":"LogFreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]
    
    image.png

    点击 Add Contract, 这样 就可以在Contracts页面看到EOS合约了。

    1. 打开刚刚添加的合约, 点击Execute。


      image.png
    image.png
    • 选择需要绑定的eth账户
    • 选择 ' register' function
    • 填写 EOS主网地址 ( Public key)

    验证参数正确后,发送交易。

    如何查询绑定

    https://etherscan.io/address/0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf#readContract
    在8. keys 中,输入eth地址,点击Query

    image.png

    如何重新绑定

    检查register() 合约代码,可以看到,
    在EOS众筹结束后的一天内,都可以执行register,意味着在这期间可以重新绑定。
    如果EOS密钥丢失等情况发生,重新生成地址并执行绑定,就可以了。

        // Value should be a public key.  Read full key import policy.
        // Manually registering requires a base58
        // encoded using the STEEM, BTS, or EOS public key format.
        function register(string key) {
            assert(today() <=  numberOfDays + 1);
            assert(bytes(key).length <= 64);
    
            keys[msg.sender] = key;
    
            LogRegister(msg.sender, key);
        }
    

    参考:
    https://www.reddit.com/r/eos/comments/88585f/the_exhaustive_eos_faq/
    https://steemit.com/eos/@sandwich/contributing-to-eos-token-sale-with-myetherwallet-and-contract-inner-workings

    相关文章

      网友评论

          本文标题:使用Parity钱包做EOS主网映射

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