Token Distributor
The Token Distributor contract handles the distribution of Basis Cash and Basis Shares to token stakers.
Contract | Mainnet Address | Testnet Address |
BACDAIPool.sol | [0xcontract_address] | [0xcontract_address] |
BACSUSDPool.sol | [0xcontract_address] | [0xcontract_address] |
BACUSDCPool.sol | [0xcontract_address] | [0xcontract_address] |
BACUSDTPool.sol | [0xcontract_address] | [0xcontract_address] |
BACyCRVPool.sol | [0xcontract_address] | [0xcontract_address] |
DAIBACLPTokenSharePool.sol | [0xcontract_address] | [0xcontract_address] |
DAIBASLPTokenSharePool.sol | [0xcontract_address] | [0xcontract_address] |
This contract is yet to be deployed.
Config
uint256 public DURATION = 5 days;
uint256 public starttime = 1600831965;
uint256 public periodFinish = 0;
uint256 public rewardRate = 0;
Stores protocol parameters
DURATIONis the duration of token distribution.starttimeis the time when token distribution starts.periodFinishis the time when token distribution ends.rewardRateis
uint256 public lastUpdateTime;
uint256 public rewardPerTokenStored;
mapping(address => uint256) public userRewardPerTokenPaid;
addressisuint256is
mapping(address => uint256) public rewards;
addressisuint256is
mapping(address => uint256) public deposits;
addressisuint256is
event RewardAdded(uint256 reward);
Emitted when rewards a
event Staked(address indexed user, uint256 amount);
Emitted when tokens are staked via
stake.event Withdrawn(address indexed user, uint256 amount);
Emitted when staked tokens are withdrawn via
withdraw.event RewardPaid(address indexed user, uint reward);
Emitted when
modifier checkStart()
Checks whether distribution of tokens have started.
modifier updateReward(address account)
Updates the amount of rewards accrued by
account.function lastTimeRewardApplicable() public view returns (uint256)
function rewardPerToken() public view returns (uint256)
function earned(address account) public view returns (uint256)
accountis
function getReward() public updateReward(msg.sender) checkStart
function notifyRewardAmount(uint256 reward) external overrid onlyRewardDistribution updateReward(address(0))
rewardis
function stake(uint256 amount) public override updateReward(msg.sender) checkStart
Stakes
amount stablecoins to the distribution contract. Emits Staked.amountis the amount of stablecoins being staked.
function stake(uint256 amount) public virtual
Performs staking by transferring stablecoins from the staker to the distribution contract.
amountis the amount of stablecoins being staked.
function withdraw(uint256 amount) public override updateReward(msg.sender) checkStart
Withdraws
amount stablecoins from the distribution contract. Emits Withdrawn.function withdraw(uint256 amount) public virtual
Performs withdrawal by transferring stablecoins from the distribution contract to the withdrawer.
amountis the amount of stablecoins being withdrawn.
function exit() external
WIthdraws all staked stablecoins to the
sender.Last modified 2yr ago