Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
BlocksRewardsManager4
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.8.24; //SPDX-License-Identifier: MIT import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; // import "./BlocksStaking.sol"; // Exclusive space rewards manager contract which handles distribution of custom tokens to owners of blocks on space contract BlocksRewardsManager4 is Ownable { // Info of each user. struct UserInfo { uint256 amount; // How many blocks user owns currently. uint256 pendingRewards; // Rewards assigned, but not yet claimed uint256 rewardsDebt; } // Info of each blocks.space struct SpaceInfo { uint256 spaceId; uint256 amountOfBlocksBought; // Number of all blocks bought on this space address contractAddress; // Address of space contract. uint256 blsPerBlockAreaPerBlock; // Start with 830000000000000 wei (approx 24 BLS/block.area/day) uint256 blsRewardsAcc; uint256 blsRewardsAccLastUpdated; } // Management of splitting rewards uint256 constant MAX_TREASURY_FEE = 15; uint256 constant MAX_LIQUIDITY_FEE = 30; uint256 constant MAX_PREVIOUS_OWNER_FEE = 50; uint256 public treasuryFee = 15; uint256 public liquidityFee = 30; address payable public treasury; IERC20 public erc20Token; // BlocksStaking public blocksStaking; SpaceInfo[] public spaceInfo; mapping(uint256 => mapping(address => UserInfo)) public userInfo; mapping(address => uint256) public spaceIdMapping; // Not 0 based, but starts with id = 1 // Variables that support calculation of proper bls rewards distributions uint256 public blsPerBlock; uint256 public blsLastRewardsBlock; uint256 public blsSpacesRewardsDebt; // bls rewards debt accumulated uint256 public blsSpacesDebtLastUpdatedBlock; uint256 public blsSpacesRewardsClaimed; event SpaceAdded(uint256 indexed spaceId, address indexed space, address indexed addedBy); event Claim(address indexed user, uint256 amount); event BlsPerBlockAreaPerBlockUpdated(uint256 spaceId, uint256 newAmount); event TreasuryFeeSet(uint256 newFee); event LiquidityFeeSet(uint256 newFee); // event BlocksStakingContractUpdated(address add); event TreasuryWalletUpdated(address newWallet); event BlsRewardsForDistributionDeposited(uint256 amount); event EmergencySweepWithdraw(address indexed user, IERC20 indexed token, uint256 amount); constructor(IERC20 blsAddress_, /*address blocksStakingAddress_,*/ address treasury_) { erc20Token = IERC20(blsAddress_); // blocksStaking = BlocksStaking(blocksStakingAddress_); treasury = payable(treasury_); } function spacesLength() external view returns (uint256) { return spaceInfo.length; } function addSpace(address spaceContract_, uint256 blsPerBlockAreaPerBlock_) external onlyOwner { require(spaceIdMapping[spaceContract_] == 0, "Space is already added."); require(spaceInfo.length < 20, "Max spaces limit reached."); uint256 spaceId = spaceInfo.length; spaceIdMapping[spaceContract_] = spaceId + 1; // Only here numbering is not 0 indexed, because of check above SpaceInfo storage newSpace = spaceInfo.push(); newSpace.contractAddress = spaceContract_; newSpace.spaceId = spaceId; newSpace.blsPerBlockAreaPerBlock = blsPerBlockAreaPerBlock_; emit SpaceAdded(spaceId, spaceContract_, msg.sender); } function updateBlsPerBlockAreaPerBlock(uint256 spaceId_, uint256 newAmount_) external onlyOwner { SpaceInfo storage space = spaceInfo[spaceId_]; require(space.contractAddress != address(0), "SpaceInfo does not exist"); massUpdateSpaces(); uint256 oldSpaceBlsPerBlock = space.blsPerBlockAreaPerBlock * space.amountOfBlocksBought; uint256 newSpaceBlsPerBlock = newAmount_ * space.amountOfBlocksBought; blsPerBlock = blsPerBlock + newSpaceBlsPerBlock - oldSpaceBlsPerBlock; space.blsPerBlockAreaPerBlock = newAmount_; recalculateLastRewardBlock(); emit BlsPerBlockAreaPerBlockUpdated(spaceId_, newAmount_); } function pendingBlsTokens(uint256 spaceId_, address user_) public view returns (uint256) { SpaceInfo storage space = spaceInfo[spaceId_]; UserInfo storage user = userInfo[spaceId_][user_]; uint256 rewards; if (user.amount > 0 && space.blsRewardsAccLastUpdated < block.number) { uint256 multiplier = getMultiplier(space.blsRewardsAccLastUpdated); uint256 blsRewards = multiplier * space.blsPerBlockAreaPerBlock; rewards = user.amount * blsRewards; } return user.amount * space.blsRewardsAcc + rewards + user.pendingRewards - user.rewardsDebt; } function getMultiplier(uint256 lastRewardCalcBlock) internal view returns (uint256) { if (block.number > blsLastRewardsBlock) { if(blsLastRewardsBlock >= lastRewardCalcBlock){ return blsLastRewardsBlock - lastRewardCalcBlock; }else{ return 0; } } else { return block.number - lastRewardCalcBlock; } } function massUpdateSpaces() public { uint256 length = spaceInfo.length; for (uint256 spaceId = 0; spaceId < length; ++spaceId) { updateSpace(spaceId); } updateManagerState(); } function updateManagerState() internal { blsSpacesRewardsDebt = blsSpacesRewardsDebt + getMultiplier(blsSpacesDebtLastUpdatedBlock) * blsPerBlock; blsSpacesDebtLastUpdatedBlock = block.number; } function updateSpace(uint256 spaceId_) internal { // If space was not yet updated, update rewards accumulated SpaceInfo storage space = spaceInfo[spaceId_]; if (block.number <= space.blsRewardsAccLastUpdated) { return; } if (space.amountOfBlocksBought == 0) { space.blsRewardsAccLastUpdated = block.number; return; } if (block.number > space.blsRewardsAccLastUpdated) { uint256 multiplierSpace = getMultiplier(space.blsRewardsAccLastUpdated); space.blsRewardsAcc = space.blsRewardsAcc + multiplierSpace * space.blsPerBlockAreaPerBlock; space.blsRewardsAccLastUpdated = block.number; } } function blocksAreaBoughtOnSpace(address buyer_, address[] calldata previousBlockOwners_) external payable { // Here calling contract should be space and noone else uint256 spaceId_ = spaceIdMapping[msg.sender]; require(spaceId_ > 0, "Call not from BlocksSpace"); spaceId_ = spaceId_ - 1; // because this is now index updateSpace(spaceId_); SpaceInfo storage space = spaceInfo[spaceId_]; UserInfo storage user = userInfo[spaceId_][buyer_]; uint256 spaceBlsRewardsAcc = space.blsRewardsAcc; // If user already had some block.areas then calculate all rewards pending if (user.amount > 0) { user.pendingRewards = pendingBlsTokens(spaceId_, buyer_); } uint256 numberOfBlocksAddedToSpace; { // Stack too deep scoping //remove blocks from previous owners that this guy took over. Max 42 loops uint256 numberOfBlocksBought = previousBlockOwners_.length; uint256 numberOfBlocksToRemove; for (uint256 i = 0; i < numberOfBlocksBought; ++i) { // If previous owners of block are non zero address, means we need to take block from them if (previousBlockOwners_[i] != address(0)) { // Calculate previous users pending BLS rewards UserInfo storage prevUser = userInfo[spaceId_][previousBlockOwners_[i]]; prevUser.pendingRewards = pendingBlsTokens(spaceId_, previousBlockOwners_[i]); // Remove his ownership of block --prevUser.amount; prevUser.rewardsDebt = prevUser.amount * spaceBlsRewardsAcc; ++numberOfBlocksToRemove; } } numberOfBlocksAddedToSpace = numberOfBlocksBought - numberOfBlocksToRemove; // Set user data user.amount = user.amount + numberOfBlocksBought; user.rewardsDebt = user.amount * spaceBlsRewardsAcc; // Reset debt, because at top we gave him rewards already } // If amount of blocks on space changed, we need to update space and global state if (numberOfBlocksAddedToSpace > 0) { updateManagerState(); blsPerBlock = blsPerBlock + space.blsPerBlockAreaPerBlock * numberOfBlocksAddedToSpace; space.amountOfBlocksBought = space.amountOfBlocksBought + numberOfBlocksAddedToSpace; // Recalculate what is last block eligible for BLS rewards recalculateLastRewardBlock(); } // Calculate and subtract fees in first part // In second part, calculate how much rewards are being rewarded to previous block owners // uint256 rewardToForward = calculateAndDistributeFees(msg.value); // Send to distribution part // blocksStaking.distributeRewards{value: rewardToForward}(new address[](0), new uint256[](0)); } function calculateAndDistributeFees(uint256 rewardReceived_) internal returns (uint256) { uint256 feesTaken; // Can be max 5% if (treasuryFee > 0) { uint256 treasuryFeeValue = (rewardReceived_ * treasuryFee) / 100; if (treasuryFeeValue > 0) { feesTaken = feesTaken + treasuryFeeValue; } } // Can be max 10% if (liquidityFee > 0) { uint256 liquidityFeeValue = (rewardReceived_ * liquidityFee) / 100; if (liquidityFeeValue > 0) { feesTaken = feesTaken + liquidityFeeValue; } } // Send fees to treasury. Max together 15%. We use call, because it enables auto liqudity provisioning on DEX in future when token is trading if (feesTaken > 0) { (bool sent,) = treasury.call{value: feesTaken}(""); require(sent, "Failed to send moneyz"); } return (rewardReceived_ - feesTaken); } function claim(uint256 spaceId_) external { updateSpace(spaceId_); UserInfo storage user = userInfo[spaceId_][msg.sender]; uint256 toClaimAmount = pendingBlsTokens(spaceId_, msg.sender); if (toClaimAmount > 0) { uint256 claimedAmount = safeBlsTransfer(msg.sender, toClaimAmount); emit Claim(msg.sender, claimedAmount); // This is also kinda check, since if user claims more than eligible, this will revert user.pendingRewards = toClaimAmount - claimedAmount; user.rewardsDebt = spaceInfo[spaceId_].blsRewardsAcc * user.amount; blsSpacesRewardsClaimed = blsSpacesRewardsClaimed + claimedAmount; // Globally claimed rewards, for proper end distribution calc } } // Safe BLS transfer function, just in case if rounding error causes pool to not have enough BLSs. function safeBlsTransfer(address to_, uint256 amount_) internal returns (uint256) { uint256 blsBalance = erc20Token.balanceOf(address(this)); if (amount_ > blsBalance) { erc20Token.transfer(to_, blsBalance); return blsBalance; } else { erc20Token.transfer(to_, amount_); return amount_; } } function setTreasuryFee(uint256 newFee_) external onlyOwner { require(newFee_ <= MAX_TREASURY_FEE); treasuryFee = newFee_; emit TreasuryFeeSet(newFee_); } function setLiquidityFee(uint256 newFee_) external onlyOwner { require(newFee_ <= MAX_LIQUIDITY_FEE); liquidityFee = newFee_; emit LiquidityFeeSet(newFee_); } // function updateBlocksStakingContract(address address_) external onlyOwner { // blocksStaking = BlocksStaking(address_); // emit BlocksStakingContractUpdated(address_); // } function updateTreasuryWallet(address newWallet_) external onlyOwner { treasury = payable(newWallet_); emit TreasuryWalletUpdated(newWallet_); } function depositBlsRewardsForDistribution(uint256 amount_) external onlyOwner { erc20Token.transferFrom(address(msg.sender), address(this), amount_); massUpdateSpaces(); recalculateLastRewardBlock(); emit BlsRewardsForDistributionDeposited(amount_); } function recalculateLastRewardBlock() internal { uint256 blsBalance = erc20Token.balanceOf(address(this)); if (blsBalance + blsSpacesRewardsClaimed >= blsSpacesRewardsDebt && blsPerBlock > 0) { uint256 blocksTillBlsRunOut = (blsBalance + blsSpacesRewardsClaimed - blsSpacesRewardsDebt) / blsPerBlock; blsLastRewardsBlock = block.number + blocksTillBlsRunOut; } } /// @notice A public function to sweep accidental BEP20 transfers to this contract. Emergency only! /// Tokens are sent to owner /// @param token The address of the BEP20 token to sweep function sweepToken(IERC20 token) external onlyOwner { uint256 balance = token.balanceOf(address(this)); token.transfer(msg.sender, balance); emit EmergencySweepWithdraw(msg.sender, token, balance); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "mode": "3" }, "viaIR": true, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": true, "libraries": {} }
[{"inputs":[{"internalType":"contract IERC20","name":"blsAddress_","type":"address"},{"internalType":"address","name":"treasury_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"spaceId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"BlsPerBlockAreaPerBlockUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BlsRewardsForDistributionDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencySweepWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"LiquidityFeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"spaceId","type":"uint256"},{"indexed":true,"internalType":"address","name":"space","type":"address"},{"indexed":true,"internalType":"address","name":"addedBy","type":"address"}],"name":"SpaceAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"TreasuryFeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"}],"name":"TreasuryWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"spaceContract_","type":"address"},{"internalType":"uint256","name":"blsPerBlockAreaPerBlock_","type":"uint256"}],"name":"addSpace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"buyer_","type":"address"},{"internalType":"address[]","name":"previousBlockOwners_","type":"address[]"}],"name":"blocksAreaBoughtOnSpace","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"blsLastRewardsBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blsPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blsSpacesDebtLastUpdatedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blsSpacesRewardsClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blsSpacesRewardsDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"spaceId_","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"depositBlsRewardsForDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"erc20Token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdateSpaces","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"spaceId_","type":"uint256"},{"internalType":"address","name":"user_","type":"address"}],"name":"pendingBlsTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee_","type":"uint256"}],"name":"setLiquidityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee_","type":"uint256"}],"name":"setTreasuryFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"spaceIdMapping","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"spaceInfo","outputs":[{"internalType":"uint256","name":"spaceId","type":"uint256"},{"internalType":"uint256","name":"amountOfBlocksBought","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"blsPerBlockAreaPerBlock","type":"uint256"},{"internalType":"uint256","name":"blsRewardsAcc","type":"uint256"},{"internalType":"uint256","name":"blsRewardsAccLastUpdated","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spacesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"sweepToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"spaceId_","type":"uint256"},{"internalType":"uint256","name":"newAmount_","type":"uint256"}],"name":"updateBlsPerBlockAreaPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet_","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"pendingRewards","type":"uint256"},{"internalType":"uint256","name":"rewardsDebt","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010002ad41d711217507c612c52c16a599e7345e40d9ea79ac079a10e2e9442700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000a43ba1f50c2c2a7299c369452252dbd5358a46a0000000000000000000000000a1d683ea3ee7a00b03eeda621f6b95274ac92ac8
Deployed Bytecode
0x0002000000000002001000000000000200010000000103550000006003100270000002550330019700000001002001900000001e0000c13d0000008002000039000000400020043f000000040030008c000006aa0000413d000000000201043b000000e0022002700000025d0020009c0000006d0000a13d0000025e0020009c000000940000213d000002680020009c000000c30000a13d000002690020009c000001110000213d0000026c0020009c000001470000613d0000026d0020009c000006aa0000c13d0000000001000416000000000001004b000006aa0000c13d0000000201000039000002a30000013d0000000002000416000000000002004b000006aa0000c13d0000001f0230003900000256022001970000008002200039000000400020043f0000001f0430018f000002570530019800000080025000390000002f0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b0000002b0000c13d000000000004004b0000003c0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000400030008c000006aa0000413d000000800400043d000002580040009c000006aa0000213d000000a00100043d001000000001001d000002580010009c000006aa0000213d000000000100041a00000259021001970000000006000411000000000262019f000000000020041b00000000020004140000025805100197000002550020009c0000025502008041000000c0012002100000025a011001c70000800d020000390000000303000039000f00000004001d0000025b04000041095009460000040f0000000f030000290000000100200190000006aa0000613d0000000f010000390000000102000039000000000012041b0000001e010000390000000202000039000000000012041b0000000401000039000000000201041a0000025902200197000000000232019f000000000021041b0000000303000039000000000103041a000002590110019700000010011001af000000000013041b0000002001000039000001000010044300000120000004430000025c01000041000009510001042e000002710020009c000000a10000a13d000002720020009c000000ce0000a13d000002730020009c000001330000213d000002760020009c000001650000613d000002770020009c000006aa0000c13d000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b000002580010009c000006aa0000213d000000000200041a00000258022001970000000003000411000000000032004b000002c30000c13d0000000302000039000000000302041a0000025903300197000000000313019f000000000032041b000000800010043f0000000001000414000002550010009c0000025501008041000000c0011002100000028e011001c70000800d0200003900000001030000390000028f040000410000037d0000013d0000025f0020009c000000ed0000a13d000002600020009c0000013d0000213d000002630020009c000001730000613d000002640020009c000006aa0000c13d0000000001000416000000000001004b000006aa0000c13d0000000501000039000002a30000013d0000027b0020009c000001060000213d0000027f0020009c0000019c0000613d000002800020009c000001b80000613d000002810020009c000006aa0000c13d000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b000000000200041a00000258022001970000000003000411000000000032004b000002c30000c13d0000001e0010008c000006aa0000213d0000000202000039000000000012041b000000800010043f0000000001000414000002550010009c0000025501008041000000c0011002100000028e011001c70000800d020000390000000103000039000002a6040000410000037d0000013d0000026e0020009c000001da0000613d0000026f0020009c000001df0000613d000002700020009c000006aa0000c13d0000000001000416000000000001004b000006aa0000c13d0000000801000039000002a30000013d000002780020009c000001e70000613d000002790020009c0000020f0000613d0000027a0020009c000006aa0000c13d000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b000000000200041a00000258022001970000000003000411000000000032004b000002c30000c13d0000000f0010008c000006aa0000213d0000000103000039000000000013041b000000800010043f0000000001000414000002550010009c0000025501008041000000c0011002100000028e011001c70000800d0200003900000290040000410000037d0000013d000002650020009c000002230000613d000002660020009c000002280000613d000002670020009c000006aa0000c13d000000440030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000002402100370000000000202043b000002580020009c000006aa0000213d0000000401100370000000000101043b095007030000040f000000400200043d0000000000120435000002550020009c0000025502008041000000400120021000000288011001c7000009510001042e0000027c0020009c0000022d0000613d0000027d0020009c0000026a0000613d0000027e0020009c000006aa0000c13d0000000001000416000000000001004b000006aa0000c13d00000003010000390000013b0000013d0000026a0020009c0000029a0000613d0000026b0020009c000006aa0000c13d000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000401043b000000000100041a00000258021001970000000001000411000000000012004b000002c30000c13d0000000402000039000000000202041a0000028903000041000000800030043f000000840010043f0000000001000410000000a40010043f001000000004001d000000c40040043f00000000010004140000025802200197000000040020008c000002cc0000c13d0000000003000031000000200030008c00000020040000390000000004034019000002f00000013d000002740020009c0000029f0000613d000002750020009c000006aa0000c13d0000000001000416000000000001004b000006aa0000c13d0000000401000039000000000101041a000001e30000013d000002610020009c000002a70000613d000002620020009c000006aa0000c13d0000000001000416000000000001004b000006aa0000c13d095007950000040f0000000001000019000009510001042e000000440030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000002402100370000000000202043b001000000002001d000002580020009c000006aa0000213d0000000401100370000000000101043b000000000010043f0000000601000039000000200010043f095009390000040f0000001002000029000000000020043f000000200010043f095009390000040f0000000202100039000000000202041a0000000103100039000000000303041a000000000101041a000000800010043f000000a00030043f000000c00020043f0000028d01000041000009510001042e000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b000002580010009c000006aa0000213d000000000010043f0000000701000039000000200010043f095009390000040f000002a30000013d000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b0000000502000039000000000202041a000000000021004b000006aa0000813d095006f50000040f0000000202100039000000000202041a0000000503100039000000000303041a0000000404100039000000000404041a0000000305100039000000000505041a000000000601041a0000000101100039000000000101041a000000400700043d000000200870003900000000001804350000006001700039000000000051043500000080017000390000000000410435000000a00170003900000000003104350000025801200197000000400270003900000000001204350000000000670435000002550070009c0000025507008041000000400170021000000287011001c7000009510001042e000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b000002580010009c000006aa0000213d000000000200041a00000258022001970000000003000411000000000032004b000002c30000c13d0000025802100197000002a001000041000000800010043f0000000001000410000000840010043f0000000001000414000000040020008c000f00000002001d0000030e0000c13d0000000003000031000000200030008c00000020040000390000000004034019000003320000013d000000440030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000002402100370000000000302043b0000000401100370000000000401043b000000000100041a00000258011001970000000002000411000000000021004b000002c30000c13d0000000501000039000000000201041a000000000042004b000006ac0000a13d000000000010043f00000006024000c9000002950120009a000000000101041a00000258001001980000034b0000c13d0000028201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f000002a801000041000000c40010043f0000028a0100004100000952000104300000000001000416000000000001004b000006aa0000c13d0000000b01000039000002a30000013d0000000001000416000000000001004b000006aa0000c13d000000000100041a0000025801100197000000800010043f0000028601000041000009510001042e000000440030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b001000000001001d000002580010009c000006aa0000213d000000000100041a00000258011001970000000002000411000000000021004b000002c30000c13d0000001001000029000000000010043f0000000701000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b000000000101041a000000000001004b0000039a0000c13d0000000501000039000000000101041a000000140010008c0000047f0000413d000000400100043d00000044021000390000029903000041000002960000013d0000000001000416000000000001004b000006aa0000c13d000000000100041a00000258021001970000000005000411000000000052004b000002c30000c13d0000025901100197000000000010041b0000000001000414000002550010009c0000025501008041000000c0011002100000025a011001c70000800d0200003900000003030000390000025b0400004100000000060000190000037d0000013d0000000001000416000000000001004b000006aa0000c13d0000000c01000039000002a30000013d0000000001000416000000000001004b000006aa0000c13d0000000101000039000002a30000013d000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000101043b001000000001001d095008db0000040f0000001001000029000000000010043f0000000601000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b0000000002000411000000000020043f000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b000e00000001001d00000010010000290000000002000411095007030000040f000f00000001001d000000000001004b000003800000613d0000000401000039000000000201041a000000400b00043d000002a00100004100000000001b04350000000401b000390000000003000410000000000031043500000000010004140000025802200197000000040020008c000d00000002001d000003ab0000c13d0000000003000031000000200030008c00000020040000390000000004034019000003d60000013d000000440030008c000006aa0000413d0000000402100370000000000202043b001000000002001d000002580020009c000006aa0000213d0000002402100370000000000202043b000002940020009c000006aa0000213d0000002304200039000000000034004b000006aa0000813d000f00040020003d0000000f01100360000000000101043b000002940010009c000006aa0000213d000900240020003d00000005011002100000000901100029000000000031004b000006aa0000213d0000000001000411000000000010043f0000000701000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b000000000101041a000000000001004b000004df0000c13d000000400100043d00000044021000390000029f03000041000000000032043500000024021000390000001903000039000003a00000013d0000000001000416000000000001004b000006aa0000c13d0000000901000039000002a30000013d0000000001000416000000000001004b000006aa0000c13d0000000a01000039000000000101041a000000800010043f0000028601000041000009510001042e000000240030008c000006aa0000413d0000000002000416000000000002004b000006aa0000c13d0000000401100370000000000601043b000002580060009c000006aa0000213d000000000100041a00000258021001970000000005000411000000000052004b000002c30000c13d000000000006004b000003820000c13d0000028201000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000028301000041000000c40010043f0000028401000041000000e40010043f000002850100004100000952000104300000028201000041000000800010043f0000002001000039000000840010043f000000a40010043f000002a901000041000000c40010043f0000028a010000410000095200010430000002550010009c0000025501008041000000c0011002100000028a011001c7095009460000040f000000800a00003900000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000002e00000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000002dc0000c13d000000000006004b000002ed0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000038e0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000006aa0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000006aa0000c13d095007950000040f095008400000040f000000400100043d00000010020000290000000000210435000002550010009c000002550100804100000040011002100000000002000414000002550020009c0000025502008041000000c002200210000000000112019f0000028b011001c70000800d0200003900000001030000390000028c040000410000037d0000013d000002550010009c0000025501008041000000c001100210000002aa011001c70950094b0000040f00000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000003220000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000031e0000c13d000000000006004b0000032f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000004300000613d0000001f01400039000000600110018f00000080021001bf001000000002001d000000400020043f000000200030008c000006aa0000413d000000800400043d000002a202000041000000100500002900000000002504350000000002000411000002580220019700000084031001bf0000000000230435000000a402100039000e00000004001d000000000042043500000000030004140000000f02000029000000040020008c0000043c0000c13d0000000001150019000000400010043f000004690000013d000e00000004001d001000000003001d000f00000002001d095007950000040f00000010060000290000000f020000290000029e0120009a000000000301041a000002970120009a000000000401041a00000000024300a9000000000004004b0000035b0000613d00000000044200d9000000000034004b000006ef0000c13d00000000046300a9000000000006004b000003610000613d00000000056400d9000000000035004b000006ef0000c13d0000000803000039000000000503041a000000000045001a000006ef0000413d0000000004450019000000000224004b000006ef0000413d000000000023041b000000000061041b095008400000040f000000400100043d0000002002100039000000100300002900000000003204350000000e020000290000000000210435000002550010009c000002550100804100000040011002100000000002000414000002550020009c0000025502008041000000c002200210000000000112019f00000291011001c70000800d020000390000000103000039000002a704000041095009460000040f0000000100200190000006aa0000613d0000000001000019000009510001042e0000025901100197000000000161019f000000000010041b0000000001000414000002550010009c0000025501008041000000c0011002100000025a011001c70000800d0200003900000003030000390000025b040000410000037d0000013d0000001f0530018f0000025706300198000000400200043d0000000004620019000004cc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003950000c13d000004cc0000013d000000400100043d00000044021000390000029203000041000000000032043500000024021000390000001703000039000000000032043500000282020000410000000000210435000000040210003900000020030000390000000000320435000002550010009c0000025501008041000000400110021000000293011001c700000952000104300000025500b0009c000002550300004100000000030b40190000004003300210000002550010009c0000025501008041000000c001100210000000000131019f000002a1011001c7000c0000000b001d0950094b0000040f0000000c0b00002900000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000003c60000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000003c20000c13d000000000006004b000003d30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000004b50000613d0000001f01400039000000600110018f0000000004b10019000000000014004b00000000020000390000000102004039000002940040009c0000057c0000213d00000001002001900000057c0000c13d000c00000004001d000000400040043f000000200030008c000006aa0000413d00000000060b0433000002a2020000410000000c050000290000000000250435000000000200041100000258022001970000000404500039000000000024043500000024025000390000000f0060006c000005470000813d0000000404000039000000000504041a000d00000006001d000000000062043500000000040004140000025802500197000000040020008c000004220000613d0000000c01000029000002550010009c00000255010080410000004001100210000002550040009c0000025504008041000000c003400210000000000113019f000002a3011001c7095009460000040f00000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c05700029000004100000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b0000040c0000c13d000000000006004b0000041d0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000005c00000613d0000001f01400039000000600110018f0000000c01100029000002940010009c0000057c0000213d000000400010043f000000200030008c000006aa0000413d0000000c020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000058d0000613d000006aa0000013d0000001f0530018f0000025706300198000000400200043d0000000004620019000004cc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000004370000c13d000004cc0000013d000002550030009c0000025503008041000000c0013002100000004003500210000000000131019f000002a3011001c7095009460000040f000000100b00002900000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000004530000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000044f0000c13d000000000006004b000004600000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000004c10000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000006aa0000413d00000010020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b000006aa0000c13d0000000e02000029000000000021043500000040011002100000000002000414000002550020009c0000025502008041000000c002200210000000000121019f0000028b011001c70000800d020000390000000303000039000002ab0400004100000000050004110000000f060000290000037d0000013d000f00000001001d0000001001000029000000000010043f0000000701000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b0000000f020000290000000102200039000000000021041b0000000501000039000000000101041a000002940010009c0000057c0000213d00000001021000390000000503000039000000000023041b000000000030043f00000006011000c9000002950210009a000000000302041a00000259033001970000001006000029000000000363019f000000000032041b000002960210009a0000000f05000029000000000052041b000002970110009a00000024020000390000000102200367000000000202043b000000000021041b0000000001000414000002550010009c0000025501008041000000c0011002100000025a011001c70000800d02000039000000040300003900000298040000410000000007000411095009460000040f0000000100200190000006aa0000613d000003800000013d0000001f0530018f0000025706300198000000400200043d0000000004620019000004cc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000004bc0000c13d000004cc0000013d0000001f0530018f0000025706300198000000400200043d0000000004620019000004cc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000004c80000c13d000000000005004b000004d90000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000002550020009c00000255020080410000004002200210000000000112019f0000095200010430000000010110008a000d00000001001d095008db0000040f0000000501000039000000000101041a0000000d0010006c000006ac0000a13d0000000d01000029000000000010043f0000000601000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b0000001002000029000000000020043f000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d0000000d0200002900000006022000c9000100000002001d0000029a0220009a000500000002001d000000000202041a000a00000002001d000000000101043b000200000001001d000000000101041a000000000001004b000005120000613d0000000d010000290000001002000029095007030000040f00000002020000290000000102200039000000000012041b00000001010003670000000f02100360000000000202043b000000000002004b001000000000001d000b00000000001d000005d80000c13d0000000201000029000000000101041a000000100010002a000006ef0000413d000000100210002a0000000201000029000000000021041b0000000a012000b9000005250000613d00000000022100d90000000a0020006c000006ef0000c13d00000002020000290000000202200039000000000012041b00000010020000290000000b0020006c000003800000613d0000000901000039000000000101041a000f00000001001d0000000b01000039000000000101041a000e00000001001d0000000a01000039000000000101041a000d00000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000006eb0000613d000000000201043b0000000f0020006c000006b20000a13d0000000f020000290000000e0020006c0000000001000019000006b40000813d000006bd0000013d0000000f04000029000000000042043500000000020004140000000d04000029000000040040008c000005790000613d0000000c01000029000002550010009c00000255010080410000004001100210000002550020009c0000025502008041000000c002200210000000000112019f000002a3011001c70000000d02000029095009460000040f00000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c05700029000005670000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b000005630000c13d000000000006004b000005740000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000005cc0000613d0000001f01400039000000600110018f0000000c01100029000002940010009c000005820000a13d000002a501000041000000000010043f0000004101000039000000040010043f000002a1010000410000095200010430000000400010043f000000200030008c000006aa0000413d0000000c020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b000d000f0000002d000006aa0000c13d0000000d020000290000000000210435000002550010009c000002550100804100000040011002100000000002000414000002550020009c0000025502008041000000c002200210000000000112019f0000028b011001c70000800d020000390000000203000039000002a4040000410000000005000411095009460000040f0000000100200190000006aa0000613d0000000d020000290000000f012000690000000e020000290000000102200039000000000012041b0000000501000039000000000201041a000000100020006c000006ac0000a13d000000000010043f0000000e01000029000000000201041a000000100100002900000006011000c90000029a0110009a000000000301041a00000000013200a9000000000003004b000005b50000613d00000000033100d9000000000023004b000006ef0000c13d0000000e020000290000000202200039000000000012041b0000000c01000039000000000201041a0000000d0020002a000006ef0000413d0000000d02200029000000000021041b0000000001000019000009510001042e0000001f0530018f0000025706300198000000400200043d0000000004620019000004cc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005c70000c13d000004cc0000013d0000001f0530018f0000025706300198000000400200043d0000000004620019000004cc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005d30000c13d000004cc0000013d000000010200002900030297002000a20006029b002000a20000000002000019000b00000000001d000005e40000013d0000000f02100360000000000302043b00000010020000290000000102200039000000000032004b000006ec0000813d001000000002001d0000000502200210000e00090020002d0000000e02100360000000000202043b000002580020009c000006aa0000213d000000000002004b000005de0000613d0000000d01000029000000000010043f0000000601000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d00000001020003670000000f03200360000000000101043b000000000303043b000000100030006b000006ac0000813d0000000e02200360000000000202043b000002580020009c000006aa0000213d000000000020043f000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d00000001020003670000000f03200360000000000101043b000c00000001001d000000000103043b000000100010006b000006ac0000813d0000000e01200360000000000101043b000e00000001001d000002580010009c000006aa0000213d0000000501000039000000000101041a0000000d0010006c000006ac0000a13d0000000d01000029000000000010043f0000000601000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000101043b0000000e02000029000000000020043f000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000006aa0000613d000000000601043b000000000106041a000000000001004b000006700000613d000800000001001d000e00000006001d0000000601000029000000000101041a000700000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000006eb0000613d000000000101043b000000070010006b00000000010000190000000c050000290000000e06000029000006850000813d0000000901000039000000000101041a000700000001001d0000000601000029000000000101041a000400000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000006eb0000613d000000000101043b0000000702000029000000000021004b0000000c05000029000006740000a13d0000000403000029000000000032004b000000000102001900000000020000190000000e06000029000006780000813d000006810000013d0000000101600039000000000101041a0000000c05000029000006930000013d0000000403000029000000000031004b0000000e06000029000006ef0000413d000000000131004b0000000002000019000006810000613d0000000302000029000000000302041a00000000021300a900000000011200d9000000000031004b000006ef0000c13d00000008012000b900000008031000fa000000000023004b000006ef0000c13d0000000502000029000000000302041a00000008023000b900000008042000fa000000000034004b000006ef0000c13d000000000012001a000006ef0000413d00000000011200190000000102600039000000000202041a000000000012001a000006ef0000413d00000000011200190000000202600039000000000202041a000000000121004b000006ef0000413d0000000102500039000000000012041b000000000105041a000000000001004b000006ef0000613d000000010210008c000000000025041b0000000a012000b9000006a30000613d00000000022100d90000000a0020006c000006ef0000c13d0000000202500039000000000012041b0000000b01000029000b00010010003e000006ef0000613d0000000101000367000005de0000013d00000000010000190000095200010430000002a501000041000000000010043f0000003201000039000000040010043f000002a10100004100000952000104300000000e0020006c000006ef0000413d0000000e0220006c0000000001000019000006bd0000613d0000000801000039000000000301041a00000000012300a900000000022100d9000000000032004b000006ef0000c13d0000000d0010002a000006ef0000413d0000000d011000290000000a02000039000000000012041b0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000006eb0000613d00000010030000290000000b0230006a000000000101043b0000000b03000039000000000013041b0000000801000039000000000301041a0000000104000029000002970440009a000000000504041a00000000042500a9000000000005004b000006dd0000613d00000000055400d9000000000025004b000006ef0000c13d000000000034001a000006ef0000413d0000000003340019000000000031041b00000001010000290000029e0110009a000000000301041a000000000023001a000006ef0000413d0000000002230019000000000021041b095008400000040f0000000001000019000009510001042e000000000001042f001000000003001d0000000b0030006b000005190000a13d000002a501000041000000000010043f0000001101000039000000040010043f000002a10100004100000952000104300000000502000039000000000302041a000000000013004b000006fd0000a13d000000000020043f00000006011000c9000002960110009a000000000001042d000002a501000041000000000010043f0000003201000039000000040010043f000002a10100004100000952000104300006000000000002000600000002001d0000000502000039000000000202041a000000000012004b0000078e0000a13d000500000001001d000000000010043f0000000601000039000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f00000001002001900000078c0000613d000000000101043b00000006020000290000025802200197000000000020043f000000200010043f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f00000001002001900000078c0000613d000000000501043b000000000105041a000000000001004b0000075d0000613d000400000001001d000600000005001d000000050100002900000006011000c9000500000001001d0000029b0110009a000200000001001d000000000101041a000300000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000007940000613d000000000101043b000000030010006b00000000010000190000000605000029000007720000813d0000000901000039000000000101041a000100000001001d0000000201000029000000000101041a000300000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000007940000613d000000000101043b0000000102000029000000000021004b000007600000a13d0000000303000029000000000032004b000000000102001900000000020000190000000605000029000007640000813d0000076e0000013d0000000101500039000000000101041a000007810000013d0000000303000029000000000031004b0000000605000029000007860000413d000000000131004b00000000020000190000076e0000613d0000000502000029000002970220009a000000000302041a00000000021300a900000000011200d9000000000031004b000007860000c13d00000004012000b900000004031000fa000000000023004b000007860000c13d00000005020000290000029a0220009a000000000302041a00000004023000b900000004042000fa000000000034004b000007860000c13d000000000021001a000007860000413d00000000012100190000000102500039000000000202041a000000000012001a000007860000413d00000000011200190000000202500039000000000202041a000000000121004b000007860000413d000000000001042d000002a501000041000000000010043f0000001101000039000000040010043f000002a101000041000009520001043000000000010000190000095200010430000002a501000041000000000010043f0000003201000039000000040010043f000002a1010000410000095200010430000000000001042f00070000000000020000000502000039000000000102041a000300000001001d000000000001004b000007f30000613d0000000003000019000007a20000013d0000000501000029000000000041041b0000000103300039000000030030006c000007f30000813d000000000102041a000000000031004b000008340000a13d000000000020043f000700000003001d00000006013000c9000400000001001d0000029b0110009a000500000001001d000000000101041a000600000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000008330000613d000000000401043b000000060040006c000000050200003900000007030000290000079f0000a13d00000004010000290000029e0110009a000000000101041a000000000001004b0000079d0000613d0000000501000029000000000101041a000000000014004b0000079f0000a13d000600000001001d000100000004001d0000000901000039000000000101041a000200000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000008330000613d000000000101043b0000000202000029000000000021004b000007de0000a13d000000060220006c00000000010000190000000001028019000007e00000013d000000060110006c0000083a0000413d00000004040000290000029a0240009a000000000302041a000002970440009a000000000504041a00000000041500a9000000000001004b000007eb0000613d00000000011400d9000000000051004b0000083a0000c13d000000000034001a0000083a0000413d0000000001340019000000000012041b0000000502000039000000070300002900000001040000290000079d0000013d0000000901000039000000000101041a000700000001001d0000000b01000039000000000101041a000500000001001d0000000a01000039000000000101041a000600000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000008330000613d000000000201043b0000000701000029000000000012004b000008120000a13d0000000503000029000000000031004b000000000201001900000000010000190000000604000029000008160000813d0000081f0000013d0000000503000029000000000032004b00000006040000290000083a0000413d000000000232004b00000000010000190000081f0000613d0000000801000039000000000301041a00000000012300a900000000022100d9000000000032004b0000083a0000c13d000000000041001a0000083a0000413d00000000014100190000000a02000039000000000012041b0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000008330000613d000000000101043b0000000b02000039000000000012041b000000000001042d000000000001042f000002a501000041000000000010043f0000003201000039000000040010043f000002a1010000410000095200010430000002a501000041000000000010043f0000001101000039000000040010043f000002a101000041000009520001043000020000000000020000000401000039000000000201041a000000400b00043d000002a00100004100000000001b04350000000401b000390000000003000410000000000031043500000000010004140000025802200197000000040020008c000008520000c13d0000000003000031000000200030008c000000200400003900000000040340190000087d0000013d0000025500b0009c000002550300004100000000030b40190000004003300210000002550010009c0000025501008041000000c001100210000000000131019f000002a1011001c700020000000b001d0950094b0000040f000000020b00002900000060031002700000025503300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000086d0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000008690000c13d000000000006004b0000087a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000008b60000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000002940010009c000008ae0000213d0000000100200190000008ae0000c13d000000400010043f0000001f0030008c000008b40000a13d00000000010b04330000000c02000039000000000202041a000000000012001a000008d50000413d00000000011200190000000a02000039000000000202041a000000000221004b000008ad0000413d0000000801000039000000000101041a000000000001004b000008ad0000613d000100000001001d000200000002001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f0000000100200190000008d40000613d000000010300002900000002023000f9000000000101043b000000000021001a000008d50000413d00000000012100190000000902000039000000000012041b000000000001042d000002a501000041000000000010043f0000004101000039000000040010043f000002a1010000410000095200010430000000000100001900000952000104300000001f0530018f0000025706300198000000400200043d0000000004620019000008c10000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008bd0000c13d000000000005004b000008ce0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000002550020009c00000255020080410000004002200210000000000112019f0000095200010430000000000001042f000002a501000041000000000010043f0000001101000039000000040010043f000002a101000041000009520001043000050000000000020000000502000039000000000302041a000000000013004b0000092c0000a13d000000000020043f00000006011000c9000300000001001d0000029b0110009a000400000001001d000000000101041a000500000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f00000001002001900000092b0000613d000000000201043b000000050020006c0000092a0000a13d00000003010000290000029e0110009a000000000101041a000000000001004b000009280000613d0000000401000029000000000101041a000000000012004b0000092a0000a13d000500000001001d000100000002001d0000000901000039000000000101041a000200000001001d0000029c0100004100000000001004430000000001000414000002550010009c0000025501008041000000c0011002100000029d011001c70000800b020000390950094b0000040f00000001002001900000092b0000613d000000000101043b0000000202000029000000000021004b000009160000a13d000000050220006c00000000010000190000000001028019000009180000013d000000050110006c000009320000413d00000003040000290000029a0240009a000000000302041a000002970440009a000000000504041a00000000041500a9000000000001004b000009230000613d00000000011400d9000000000051004b000009320000c13d000000000034001a000009320000413d0000000001340019000000000012041b00000001020000290000000401000029000000000021041b000000000001042d000000000001042f000002a501000041000000000010043f0000003201000039000000040010043f000002a1010000410000095200010430000002a501000041000000000010043f0000001101000039000000040010043f000002a1010000410000095200010430000000000001042f0000000001000414000002550010009c0000025501008041000000c00110021000000291011001c700008010020000390950094b0000040f0000000100200190000009440000613d000000000101043b000000000001042d0000000001000019000009520001043000000949002104210000000102000039000000000001042d0000000002000019000000000001042d0000094e002104230000000102000039000000000001042d0000000002000019000000000001042d0000095000000432000009510001042e0000095200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e00000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008d94ecf000000000000000000000000000000000000000000000000000000000caef5b9a00000000000000000000000000000000000000000000000000000000eb4215e700000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000ffabe7db00000000000000000000000000000000000000000000000000000000eb4215e800000000000000000000000000000000000000000000000000000000f089a7a400000000000000000000000000000000000000000000000000000000caef5b9b00000000000000000000000000000000000000000000000000000000cc32d17600000000000000000000000000000000000000000000000000000000d71c04ef0000000000000000000000000000000000000000000000000000000093f1a40a00000000000000000000000000000000000000000000000000000000a091305b00000000000000000000000000000000000000000000000000000000a091305c00000000000000000000000000000000000000000000000000000000c02d580d0000000000000000000000000000000000000000000000000000000093f1a40b0000000000000000000000000000000000000000000000000000000098118cb4000000000000000000000000000000000000000000000000000000008d94ecf1000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008e32e269000000000000000000000000000000000000000000000000000000006aed0c19000000000000000000000000000000000000000000000000000000007e916d180000000000000000000000000000000000000000000000000000000083aef19a0000000000000000000000000000000000000000000000000000000083aef19b000000000000000000000000000000000000000000000000000000008a13eea7000000000000000000000000000000000000000000000000000000007e916d1900000000000000000000000000000000000000000000000000000000809d458d000000000000000000000000000000000000000000000000000000006aed0c1a00000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000077e741c700000000000000000000000000000000000000000000000000000000379607f400000000000000000000000000000000000000000000000000000000379607f5000000000000000000000000000000000000000000000000000000004ede3b490000000000000000000000000000000000000000000000000000000061d027b3000000000000000000000000000000000000000000000000000000001be1956000000000000000000000000000000000000000000000000000000000236e0c6400000000000000000000000000000000000000000000000000000000357bf15c08c379a0000000000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000020000000000000000000000000000000000002000000000000000000000000047da7012b5fd2f381b36f1f81e6c210117c6c7604deade5d6fc0c338f2cc76ae0000000000000000000000000000000000000060000000800000000000000000020000000000000000000000000000000000002000000080000000000000000097c79b3848e51f57983ac89e4403452655c8d83ceba8199011de63a74f60d1a77ae4ff850ae87b1faf8802289db8178416310c104cf519cbf7c2e1516d2d122b0200000000000000000000000000000000000040000000000000000000000000537061636520697320616c72656164792061646465642e0000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c24efc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c250fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c24d3cb350a3fe760dde460e7f2ecf1329f3d9d4193abc311b65d4a5138829260ffa4d617820737061636573206c696d697420726561636865642e00000000000000fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c24cfc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c24b42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd10200000200000000000000000000000000000004000000000000000000000000fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c24f43616c6c206e6f742066726f6d20426c6f636b7353706163650000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000047cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d44e487b7100000000000000000000000000000000000000000000000000000000315604c15bceb9e9581eeca57b94093314cf145a891afcd72a5f6f247e9bd5187fb5d7d6da02276d96d43983a6b6a9174eda2349ab792ca3a428055974ecec475370616365496e666f20646f6573206e6f7420657869737400000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000240000008000000000000000009186304ffe50c568e430e57234122976c83522da68345954bb5485cbab39571382148ad05d433276e376bd6d7e8656d9d627fb7cd0f18395193f8355af1b331d
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a43ba1f50c2c2a7299c369452252dbd5358a46a0000000000000000000000000a1d683ea3ee7a00b03eeda621f6b95274ac92ac8
-----Decoded View---------------
Arg [0] : blsAddress_ (address): 0xA43Ba1F50c2C2a7299c369452252DBd5358A46A0
Arg [1] : treasury_ (address): 0xa1D683Ea3EE7A00B03eeda621F6b95274ac92aC8
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a43ba1f50c2c2a7299c369452252dbd5358a46a0
Arg [1] : 000000000000000000000000a1d683ea3ee7a00b03eeda621f6b95274ac92ac8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.