使用truffle-hd-wallet部署Ropsten的默认帐户

时间:2019-07-08 12:22:22

标签: ethereum solidity truffle

我正在尝试使用truffle-hd-wallet将自定义ERC20令牌部署到Ropsten网络。交易进行得很好,但是,奇怪的是新部署的自定义ERC20代币主要持有人帐户,这不是我想要的帐户,而是一个未知帐户。当我将令牌添加到我自己的Ropsten帐户时,其金额为零,应该具有初始值。有什么方法可以将我的期望部署合同地址设置为松露?请指教。 谢谢。

  

期望地址:0xd61794624e9542495A72Cfac7Cc10B4275b8f8E5

     

实际地址:0xEDD4C3676c8579D25463040fd196626a9B7C60a2

 ropsten: {
      provider: function() {
        return new HDWalletProvider(MNEMONIC, "https://ropsten.infura.io/v3/" + INFURA_API_KEY, 0);
      },
      network_id: 3,
      gas: 4700000
    }
  },



module.exports = function(deployer) {
  deployer.deploy(CToken).then(function () {
    let walletA = walletAaddr;
    let walletB = walletBaddr;

    return deployer.deploy(
      CTokenSale,
      CToken.address,
      walletA,
      walletB
    ).then(function () {
        // token ownership setting
        CToken.deployed().then(function(instance) {
          let fptc = instance;
          return fptc.transferOwnership(CTokenSale.address, {gas:1000000});
        }).then(function(result) {
          console.log("transferOwnership successful!")
        }).catch(function(e) {
            console.log("Ownership Transfer failed!")
        });     


        CToken.deployed().then(function(instance) {
          let fptc = instance;
          return fptc.transfer(CTokenSale.address, 100, {gas:1000000});
        }).then(function(result) {
          console.log("Sales Token Ready!")
        }).catch(function(e) {
            console.log("Sales Token failed to deploy!")
        });


    }); 
  });
};

1 个答案:

答案 0 :(得分:0)

您尚未包含令牌智能合约代码。我假设部署令牌的帐户要么已获得初始供应,要么具有铸造者角色。

我建议您确认从12个单词的种子短语(助记词)派生的第一个帐户是您想要的地址: 0xd61794624e9542495A72Cfac7Cc10B4275b8f8E5。 您正在将第一个0帐户指定为address_index

如果您使用的不是默认值,则可以使用Truffle HDWallet Provider指定派生路径。 https://github.com/trufflesuite/truffle/tree/develop/packages/truffle-hdwallet-provider

我建议您阅读以下内容的OpenZeppelin文档(如果尚未阅读的话):

您也可以在以下位置提问: