forked from mico/idle_moloch
sacrifice
This commit is contained in:
parent
9e15e0eb2a
commit
98913323f8
@ -12,7 +12,7 @@ contract RaidGeldScript is Script, Constants {
|
|||||||
|
|
||||||
function run() public {
|
function run() public {
|
||||||
vm.startBroadcast();
|
vm.startBroadcast();
|
||||||
raidgeld = new RaidGeld(DAO_TOKEN, POOL);
|
raidgeld = new RaidGeld(DAO_TOKEN, POOL, BAAL);
|
||||||
vm.stopBroadcast();
|
vm.stopBroadcast();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ contract Constants {
|
|||||||
//base addresses
|
//base addresses
|
||||||
address public constant DAO_TOKEN = 0x11dC980faf34A1D082Ae8A6a883db3A950a3c6E8;
|
address public constant DAO_TOKEN = 0x11dC980faf34A1D082Ae8A6a883db3A950a3c6E8;
|
||||||
address public constant POOL = 0x27004f6d0c1bB7979367D32Ba9d6DF6d61A18926;
|
address public constant POOL = 0x27004f6d0c1bB7979367D32Ba9d6DF6d61A18926;
|
||||||
|
address public constant BAAL = 0x4d5A5B4a679b10038e1677C84Cb675d10d29fFFD;
|
||||||
address public constant WETH = 0x4200000000000000000000000000000000000006;
|
address public constant WETH = 0x4200000000000000000000000000000000000006;
|
||||||
address public constant SWAP_ROUTER = 0x2626664c2603336E57B271c5C0b26F421741e481;
|
address public constant SWAP_ROUTER = 0x2626664c2603336E57B271c5C0b26F421741e481;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ pragma solidity ^0.8.13;
|
|||||||
|
|
||||||
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
||||||
import "@openzeppelin/contracts/access/Ownable.sol";
|
import "@openzeppelin/contracts/access/Ownable.sol";
|
||||||
|
import {IBaal} from "lib/Baal/contracts/interfaces/IBaal.sol";
|
||||||
|
|
||||||
import {RaidGeldUtils} from "../src/RaidGeldUtils.sol";
|
import {RaidGeldUtils} from "../src/RaidGeldUtils.sol";
|
||||||
import {Army, Player, Raider, Boss} from "../src/RaidGeldStructs.sol";
|
import {Army, Player, Raider, Boss} from "../src/RaidGeldStructs.sol";
|
||||||
@ -13,6 +14,7 @@ contract RaidGeld is ERC20, Ownable, Constants {
|
|||||||
uint256 public constant BUY_IN_AMOUNT = 0.00005 ether;
|
uint256 public constant BUY_IN_AMOUNT = 0.00005 ether;
|
||||||
uint256 public BUY_IN_DAO_TOKEN_AMOUNT;
|
uint256 public BUY_IN_DAO_TOKEN_AMOUNT;
|
||||||
uint256 public constant INITIAL_GELD = 50 * MANTISSA;
|
uint256 public constant INITIAL_GELD = 50 * MANTISSA;
|
||||||
|
uint256 public constant SACRIFICE_SHARE = 1e3; // 10%
|
||||||
mapping(address => Player) private players;
|
mapping(address => Player) private players;
|
||||||
mapping(address => Army) private armies;
|
mapping(address => Army) private armies;
|
||||||
mapping(address => Boss) private bosses;
|
mapping(address => Boss) private bosses;
|
||||||
@ -21,6 +23,7 @@ contract RaidGeld is ERC20, Ownable, Constants {
|
|||||||
IWETH public immutable weth = IWETH(WETH);
|
IWETH public immutable weth = IWETH(WETH);
|
||||||
// RGCVII token
|
// RGCVII token
|
||||||
ERC20 public daoToken;
|
ERC20 public daoToken;
|
||||||
|
IBaal public baal;
|
||||||
// RGCVII pool
|
// RGCVII pool
|
||||||
address public pool;
|
address public pool;
|
||||||
// Uniswap
|
// Uniswap
|
||||||
@ -62,9 +65,10 @@ contract RaidGeld is ERC20, Ownable, Constants {
|
|||||||
_;
|
_;
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(address _daoToken, address _pool) ERC20("Raid Geld", "GELD") Ownable(msg.sender) {
|
constructor(address _daoToken, address _pool, address _baal) ERC20("Raid Geld", "GELD") Ownable(msg.sender) {
|
||||||
daoToken = ERC20(_daoToken);
|
daoToken = ERC20(_daoToken);
|
||||||
pool = _pool;
|
pool = _pool;
|
||||||
|
baal = IBaal(_baal);
|
||||||
BUY_IN_DAO_TOKEN_AMOUNT = 500 * 10 ** daoToken.decimals();
|
BUY_IN_DAO_TOKEN_AMOUNT = 500 * 10 ** daoToken.decimals();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,6 +138,11 @@ contract RaidGeld is ERC20, Ownable, Constants {
|
|||||||
);
|
);
|
||||||
start_game(msg.sender);
|
start_game(msg.sender);
|
||||||
}
|
}
|
||||||
|
function sacrificeToDao(uint256 _baseAmount) private {
|
||||||
|
uint256 amount = _baseAmount * SACRIFICE_SHARE / MANTIASSA;
|
||||||
|
address[] memory tokens = new address[](0);
|
||||||
|
baal.ragequite(address(this), amount, 0, tokens);
|
||||||
|
}
|
||||||
|
|
||||||
// Override for default number of decimals
|
// Override for default number of decimals
|
||||||
function decimals() public view virtual override returns (uint8) {
|
function decimals() public view virtual override returns (uint8) {
|
||||||
|
|||||||
@ -36,7 +36,7 @@ contract raid_geldTest is Test, Constants {
|
|||||||
vm.deal(owner, 10 ether);
|
vm.deal(owner, 10 ether);
|
||||||
fundAccount(player1);
|
fundAccount(player1);
|
||||||
vm.prank(owner);
|
vm.prank(owner);
|
||||||
raid_geld = new RaidGeld(DAO_TOKEN, POOL);
|
raid_geld = new RaidGeld(DAO_TOKEN, POOL, BAAL);
|
||||||
raid_geld.weth().deposit{value: 5 ether}();
|
raid_geld.weth().deposit{value: 5 ether}();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user