The scheduler is composed of multiple scripts used to call startLottery, closeLottery, and drawFinalNumberAndMakeLotteryClaimable functions, trigger events; and monitor lottery results.
LotteryAddress of AstroSwapLottery contract.TicketTicket Price (denominated in USD) and Precision.DiscountDivisor to compute discount magnitude for bulk ticket purchase.RewardsReward breakdown per bracket (total must be equal to 10,000).TreasuryFee (denominated as percentage) to 2 decimals (e.g. 100 => 1%).
Configuration can be overwritten by editing config.ts file.
# Export operator private key to be used on Hardhat Network Config.
$ export OPERATOR_PRIVATE_KEY=OPERATOR_PRIVATE_KEY
$ yarn execute:[command]:[network]startStart a new lottery; for a given network.closeClose a lottery, based oncurrentLotteryId; for a given network.drawDraw winning numbers, based oncurrentLotteryId; for a given network.
-
mainnetChainId106 -
testnetChainId111
# Close lottery.
0 0,12 * * * cd ~/pancake-lottery-scheduler && yarn execute:close:mainnet
# Draw lottery.
3 0,12 * * * cd ~/pancake-lottery-scheduler && yarn execute:draw:mainnet
# Start lottery.
5 0,12 * * * cd ~/pancake-lottery-scheduler && yarn execute:start:mainnetLogs will be generated at logs/lottery-YYYY-MM-DD.log and will be archived (.gz) with a daily rotation.
Examples of success logs:
{"message":"[1970-01-01T06:05:00.000Z] network=testnet block=10000000 message='Started lottery' hash=0x... signer=0x...","level":"info"}
{"message":"[1970-01-01T18:00:00.000Z] network=testnet block=10010010 message='Closed lottery #123' hash=0x... signer=0x...","level":"info"}
{"message":"[1970-01-01T18:03:00.000Z] network=testnet block=10100100 message='Drawed lottery #123' hash=0x... signer=0x...","level":"info"}
{"message":"[1970-01-01T18:05:00.000Z] network=testnet block=11001000 message='Started lottery' hash=0x... signer=0x...","level":"info"}
Examples of error logs:
{"message":"[1970-01-01T00:00:00.000Z] network=testnet message='Unsupported network' signer=0x...","level":"error"}
{"message":"[1970-01-01T12:00:00.000Z] network=testnet message='Invalid JSON RPC response' signer=0x...","level":"error"}
{"message":"[1970-01-02T00:00:00.000Z] network=testnet message='Invalid keyHash on RandomGenerator contract' signer=0x...","level":"error"}