我正在尝试使用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!")
});
});
});
};
答案 0 :(得分:0)
您尚未包含令牌智能合约代码。我假设部署令牌的帐户要么已获得初始供应,要么具有铸造者角色。
我建议您确认从12个单词的种子短语(助记词)派生的第一个帐户是您想要的地址: 0xd61794624e9542495A72Cfac7Cc10B4275b8f8E5。
您正在将第一个0帐户指定为address_index
。
如果您使用的不是默认值,则可以使用Truffle HDWallet Provider指定派生路径。 https://github.com/trufflesuite/truffle/tree/develop/packages/truffle-hdwallet-provider
我建议您阅读以下内容的OpenZeppelin文档(如果尚未阅读的话):
您也可以在以下位置提问: