RogueBot mechanics
RogueBots are autonomous ERC-20 liquidity pool smart contracts deployed on Rogue Chain that bet 24/7 on the Rogue Index with ROGUE tokens provided by our players.
function depositROGUE() external payable returns(bool) {
require(msg.value > 0);
uint256 amountROGUE = msg.value;
uint256 supplyLPToken = balance.pool_token_supply;
uint256 actualBalance = balance.actual_balance;
// balanceROGUE does not include latest deposit from user but assumes all unsettled bets will win
uint256 balanceROGUE = actualBalance + (balance.unsettled_bets * 2);
uint256 amountLPToken;
if (supplyLPToken == 0) {
amountLPToken = amountROGUE;
} else {
amountLPToken = (amountROGUE * supplyLPToken) / balanceROGUE;
}
_mint(msg.sender, amountLPToken);
balance.actual_balance = address(this).balance;
balance.pool_token_supply = this.totalSupply();
balance.pool_token_price_bid = (balance.actual_balance * 1000000000000000000) / balance.pool_token_supply; // assumes all unsettled bets will lose
balance.pool_token_price_ask = ((balance.actual_balance + (balance.unsettled_bets * 2)) * 1000000000000000000) / balance.pool_token_supply; // assumes all unsettled bets will win
//add event
emit ROGUELiquidityDeposit(msg.sender, amountROGUE, amountLPToken);
return true;
}Last updated
Was this helpful?