簡體   English   中英

在 Truffle 中使用構造函數參數遷移

[英]Migrate with constructor parameters in Truffle

所以基本上我不太確定如何從我的solidity代碼中獲取我的參數並將它們傳遞到部署者的部署function中,以便我使用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

如何引用我的參數? 幫助

對於參數,您必須傳遞值。 您之前使用參數定義了構造函數。 stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp 現在你正在初始化合約,所以你必須通過 arguments 表示初始值。

所以你必須得到stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp的值並通過它

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM