Básicamente, no estoy muy seguro de cómo puedo obtener mis parámetros de mi código de solidez y pasarlos en la función de implementación del implementador para mi segunda migración con Truffle.
Este es el constructor de mi código 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; }Entonces este es mi código de migración de javascript:
const tokenstaking = artifacts.require("TokenStaking"); module.exports = function(deployer) { deployer.deploy(tokenstaking, stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp);};Cada vez que recibo el mismo error para todos los parámetros:
ReferenceError: stakeToken is not defined¿Cómo puedo hacer referencia a mis parámetros? ayuda
para los parámetros tienes que pasar valores. Definiste constructor antes con parámetros. stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp . Ahora está inicializando el contrato, por lo que debe pasar argumentos que signifiquen que los valores iniciales.
Por lo tanto, debe obtener valores de stakeToken, rewardToken, rewardPerSecond, startTimestamp, bonusEndTimestamp y pasarlo
deployer.deploy(tokenstaking, "getStakeToken", // stakeToken "getRewardToken", //rewardToken, "1", // 1 reward per second "92389424982",//startTimestamp "99239323232"//bonusEndTimestamp