【问题标题】:Migrate with constructor parameters in Truffle在 Truffle 中使用构造函数参数迁移
【发布时间】:2022-01-05 17:26:13
【问题描述】:

所以基本上我不太确定如何从我的 Solidity 代码中获取我的参数并将它们传递到部署器的部署函数中,以便我使用 Truffle 进行第二次迁移。

这是我的 Solidity 代码的构造函数:

constructor(
    IBEP20 _stakeToken,
    IBEP20 _rewardToken,
    uint256 _rewardPerSecond,
    uint256 _startTimestamp,
    uint256 _bonusEndTimestamp
) public {
    stakeToken = _stakeToken;
    rewardToken = _rewardToken;
    rewardPerSecond = _rewardPerSecond;
    startTimestamp = _startTimestamp;
    bonusEndTimestamp = _bonusEndTimestamp;
    // staking pool
    poolInfo.push(PoolInfo({
    lpToken: _stakeToken,
    allocPoint: 1000,
    lastRewardTimestamp: startTimestamp,
    accRewardTokenPerShare: 0
    }));
    totalAllocPoint = 1000;
}

那么这是我的 javascript 迁移代码:

const tokenstaking = artifacts.require("TokenStaking");
module.exports = function(deployer) {
deployer.deploy(tokenstaking, stakeToken, rewardToken, rewardPerSecond, startTimestamp, 
bonusEndTimestamp);};

每次我收到所有参数的相同错误时:

ReferenceError: stakeToken is not defined

如何引用我的参数?帮助

【问题讨论】:

    标签: javascript blockchain ethereum solidity truffle


    【解决方案1】:

    对于参数,您必须传递值。您之前使用参数定义了构造函数。 stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp。现在您正在初始化合同,因此您必须传递表示初始值的参数。

    所以你必须获取stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp 的值并传递它

    deployer.deploy(tokenstaking, 
       "getStakeToken",  // stakeToken 
       "getRewardToken", //rewardToken, 
       "1", // 1 reward per second
       "92389424982",//startTimestamp 
        "99239323232"//bonusEndTimestamp
    

    【讨论】:

      猜你喜欢
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2017-04-01
      • 2022-07-08
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多