function startLottery(
uint256 _endTime,
uint256 _priceTicketInCake,
uint256 _discountDivisor,
uint256[6] calldata _rewardsBreakdown,
uint256 _treasuryFee
) external override onlyOperator {
require(
(currentLotteryId == 0) || (_lotteries[currentLotteryId].status == Status.Claimable),
"Not time to start lottery"
);
require(
((_endTime - block.timestamp) > MIN_LENGTH_LOTTERY) && ((_endTime - block.timestamp) < MAX_LENGTH_LOTTERY),
"Lottery length outside of range"
);
require(
(_priceTicketInCake >= minPriceTicketInCake) && (_priceTicketInCake <= maxPriceTicketInCake),
"Outside of limits"
);
require(_discountDivisor >= MIN_DISCOUNT_DIVISOR, "Discount divisor too low");
require(_treasuryFee <= MAX_TREASURY_FEE, "Treasury fee too high");
require(
(_rewardsBreakdown[0] +
_rewardsBreakdown[1] +
_rewardsBreakdown[2] +
_rewardsBreakdown[3] +
_rewardsBreakdown[4] +
_rewardsBreakdown[5]) == 10000,
"Rewards must equal 10000"
);
我按照 Pancakeswap Lottery 的说明(https://bscscan.com/address/0x5af6d33de2ccec94efb1bdf8f92bd58085432d2c#code)写“startLottery”。但是写这个函数是错误的。我使用元掩码。我还将 ChainLink 的随机数生成器用于我的彩票。
我正在使用 The Graph 作为我的彩票数据。但我的实体是空的。我认为原因是我不能写“startLottery”。
图表1
我填写的“startLottery” 2