Source Code
Overview
APE Balance
APE Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Multichain Info
N/A
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UserInfo
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/**
*Submitted for verification at apescan.io on 2025-07-16
*/
//SPDX-License-Identifier: MIT
pragma solidity 0.8.28;
// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
function safeApprove(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('approve(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::safeApprove: approve failed'
);
}
function safeTransfer(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transfer(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::safeTransfer: transfer failed'
);
}
function safeTransferFrom(
address token,
address from,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::transferFrom: transferFrom failed'
);
}
function safeTransferETH(address to, uint256 value) internal {
(bool success, ) = to.call{value: value}(new bytes(0));
require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');
}
}
contract ApeOwnable {
// Governance Manager
IGovernanceManager public constant manager = IGovernanceManager(0x8632f22e5A921C751CFbBFF92F058A3b11E96b8a);
modifier onlyOwner() {
require(
msg.sender == manager.owner(),
'Only Owner'
);
_;
}
modifier onlyGame() {
require(
manager.isGame(msg.sender),
'UnAuthorized'
);
_;
}
modifier onlyRNG() {
require(
msg.sender == manager.RNG(),
'Only RNG Contract'
);
_;
}
modifier validatePlayer(address player) {
if (player != msg.sender) {
require(
manager.canPlayForOthers(msg.sender),
'UnAuthorized To Play For Others'
);
}
_;
}
modifier notPaused() {
require(
manager.paused() == false,
'All Games Paused'
);
_;
}
modifier onlyAdmin() {
require(
manager.isAdmin(msg.sender),
'UnAuthorized'
);
_;
}
}
interface IRNG {
function requestRandom(bytes32 userRandomNumber, uint8 numWords) external payable returns (uint64);
function getFee() external view returns (uint256);
}
interface IGovernanceManager {
function RNG() external view returns (address);
function owner() external view returns (address);
function referralManager() external view returns (address);
function feeReceiver() external view returns (address);
function claimManager() external view returns (address);
function house() external view returns (address);
function isGame(address game) external view returns (bool);
function userInfoTracker() external view returns (address);
function canPlayForOthers(address addr) external view returns (bool);
function paused() external view returns (bool);
function isAdmin(address admin) external view returns (bool);
}
interface IUserInfoTracker {
function wagered(address user, uint256 amount, uint256 GAME_ID) external;
}
contract UserInfo is IUserInfoTracker, ApeOwnable {
// Name + Symbol for wallet support
string public constant name = "APE Wagered";
string public constant symbol = "wAPE";
// Game Data Structure
struct GameData {
uint256 totalWagered;
uint256 numGamesPlayed;
}
// User Info Structure
struct UserInfoStruct {
uint256 totalWagered;
mapping ( uint256 => GameData ) gameData;
}
// Mapping From User To Total WETH Wagered
mapping ( address => UserInfoStruct ) private userInfo;
// List Of All Unique Users
address[] public allUsers;
// Total Wagered
uint256 public totalWagered;
// Transfer Event
event Transfer(address indexed from, address indexed to, uint256 value);
function balanceOf(address user) external view returns (uint256) {
return userInfo[user].totalWagered;
}
function totalSupply() external view returns (uint256) {
return totalWagered;
}
function decimals() external pure returns (uint8) {
return 18;
}
function wagered(address user, uint256 amount, uint256 GAME_ID) external override onlyGame {
// add to list if new user
if (userInfo[user].totalWagered == 0 && amount > 0) {
allUsers.push(user);
}
// increment total native Spent
unchecked {
// increment values by the amount of native spent
totalWagered += amount;
userInfo[user].totalWagered += amount;
userInfo[user].gameData[GAME_ID].totalWagered += amount;
// increment total wagers placed
++userInfo[user].gameData[GAME_ID].numGamesPlayed;
}
// emit events for tracking
emit Transfer(address(0), user, amount);
}
function listAllUsers() external view returns (address[] memory) {
return allUsers;
}
function numUsers() external view returns (uint256) {
return allUsers.length;
}
function getTotalWagered(address user) external view returns (uint256) {
return userInfo[user].totalWagered;
}
function getGameData(address user, uint256 GAME_ID) external view returns (uint256 _totalWagered, uint256 numGamesPlayed) {
return (userInfo[user].gameData[GAME_ID].totalWagered, userInfo[user].gameData[GAME_ID].numGamesPlayed);
}
function batchGameData(address user, uint256[] calldata GAME_IDs) external view returns (uint256[] memory _totalWagered, uint256[] memory numGamesPlayed) {
uint256 len = GAME_IDs.length;
_totalWagered = new uint256[](len);
numGamesPlayed = new uint256[](len);
for (uint i = 0; i < len;) {
_totalWagered[i] = userInfo[user].gameData[GAME_IDs[i]].totalWagered;
numGamesPlayed[i] = userInfo[user].gameData[GAME_IDs[i]].numGamesPlayed;
unchecked { ++i; }
}
}
function getListOfTotalWagered(address[] calldata users) external view returns (uint256[] memory) {
uint256 len = users.length;
uint256[] memory list = new uint256[](len);
for (uint i = 0; i < len;) {
list[i] = userInfo[users[i]].totalWagered;
unchecked { ++i; }
}
return list;
}
function getListOfTotalWageredPaginated(uint256 startIndex, uint256 endIndex) external view returns (uint256[] memory) {
if (endIndex > allUsers.length) {
endIndex = allUsers.length;
}
uint256[] memory list = new uint256[](endIndex - startIndex);
uint256 count;
for (uint256 i = startIndex; i < endIndex;) {
list[count] = userInfo[allUsers[i]].totalWagered;
unchecked { ++i; ++count; }
}
return list;
}
function paginateAllUsers(uint256 startIndex, uint256 endIndex) public view returns (address[] memory) {
if (endIndex > allUsers.length) {
endIndex = allUsers.length;
}
address[] memory list = new address[](endIndex - startIndex);
uint256 count;
for (uint256 i = startIndex; i < endIndex;) {
list[count] = allUsers[i];
unchecked { ++i; ++count; }
}
return list;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allUsers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256[]","name":"GAME_IDs","type":"uint256[]"}],"name":"batchGameData","outputs":[{"internalType":"uint256[]","name":"_totalWagered","type":"uint256[]"},{"internalType":"uint256[]","name":"numGamesPlayed","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"GAME_ID","type":"uint256"}],"name":"getGameData","outputs":[{"internalType":"uint256","name":"_totalWagered","type":"uint256"},{"internalType":"uint256","name":"numGamesPlayed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"}],"name":"getListOfTotalWagered","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startIndex","type":"uint256"},{"internalType":"uint256","name":"endIndex","type":"uint256"}],"name":"getListOfTotalWageredPaginated","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalWagered","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"listAllUsers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"contract IGovernanceManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startIndex","type":"uint256"},{"internalType":"uint256","name":"endIndex","type":"uint256"}],"name":"paginateAllUsers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWagered","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"GAME_ID","type":"uint256"}],"name":"wagered","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052348015600f57600080fd5b50610ca18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806394ca5c9c1161007157806394ca5c9c1461025c57806395d89b411461026f578063a2bdedf414610292578063b5ee937b146102a5578063eb3d9bea146102b857600080fd5b806370a08231146101e957806380538e2714610212578063832c205d146102335780638a14f12c1461025357600080fd5b8063313ce567116100de578063313ce5671461017f578063328343ec1461018e578063481c6a75146101b65780635ad1df6a146101e957600080fd5b806306fdde03146101105780630d7087e91461015057806318160ddd1461016557806319a50f4914610177575b600080fd5b61013a6040518060400160405280600b81526020016a1054114815d859d95c995960aa1b81525081565b6040516101479190610935565b60405180910390f35b6101586102cd565b6040516101479190610983565b6002545b604051908152602001610147565b600154610169565b60405160128152602001610147565b6101a161019c3660046109eb565b61032f565b60408051928352602083019190915201610147565b6101d1738632f22e5a921c751cfbbff92f058a3b11e96b8a81565b6040516001600160a01b039091168152602001610147565b6101696101f7366004610a15565b6001600160a01b031660009081526020819052604090205490565b610225610220366004610a7c565b610363565b604051610147929190610b0b565b610246610241366004610b39565b6104e4565b6040516101479190610b5b565b61016960025481565b61024661026a366004610b6e565b6105c5565b61013a604051806040016040528060048152602001637741504560e01b81525081565b6101d16102a0366004610bb0565b610696565b6101586102b3366004610b39565b6106c0565b6102cb6102c6366004610bc9565b610796565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561032557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610307575b5050505050905090565b6001600160a01b038216600090815260208181526040808320848452600190810190925290912080549101545b9250929050565b606080828067ffffffffffffffff81111561038057610380610bfc565b6040519080825280602002602001820160405280156103a9578160200160208202803683370190505b5092508067ffffffffffffffff8111156103c5576103c5610bfc565b6040519080825280602002602001820160405280156103ee578160200160208202803683370190505b50915060005b818110156104da576001600160a01b03871660009081526020819052604081206001019087878481811061042a5761042a610c12565b9050602002013581526020019081526020016000206000015484828151811061045557610455610c12565b602002602001018181525050600080886001600160a01b03166001600160a01b03168152602001908152602001600020600101600087878481811061049c5761049c610c12565b905060200201358152602001908152602001600020600101548382815181106104c7576104c7610c12565b60209081029190910101526001016103f4565b5050935093915050565b6001546060908211156104f75760015491505b60006105038484610c28565b67ffffffffffffffff81111561051b5761051b610bfc565b604051908082528060200260200182016040528015610544578160200160208202803683370190505b5090506000845b848110156105b9576000806001838154811061056957610569610c12565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483518490849081106105a2576105a2610c12565b60209081029190910101526001918201910161054b565b50909150505b92915050565b60608160008167ffffffffffffffff8111156105e3576105e3610bfc565b60405190808252806020026020018201604052801561060c578160200160208202803683370190505b50905060005b8281101561068d5760008087878481811061062f5761062f610c12565b90506020020160208101906106449190610a15565b6001600160a01b03166001600160a01b031681526020019081526020016000206000015482828151811061067a5761067a610c12565b6020908102919091010152600101610612565b50949350505050565b600181815481106106a657600080fd5b6000918252602090912001546001600160a01b0316905081565b6001546060908211156106d35760015491505b60006106df8484610c28565b67ffffffffffffffff8111156106f7576106f7610bfc565b604051908082528060200260200182016040528015610720578160200160208202803683370190505b5090506000845b848110156105b9576001818154811061074257610742610c12565b9060005260206000200160009054906101000a90046001600160a01b031683838151811061077257610772610c12565b6001600160a01b039092166020928302919091019091015260019182019101610727565b604051636313629760e11b8152336004820152738632f22e5a921c751cfbbff92f058a3b11e96b8a9063c626c52e90602401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610c49565b6108485760405162461bcd60e51b815260206004820152600c60248201526b155b905d5d1a1bdc9a5e995960a21b604482015260640160405180910390fd5b6001600160a01b03831660009081526020819052604090205415801561086e5750600082115b156108be576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0385161790555b60028054830190556001600160a01b03831660008181526020818152604080832080548701815585845260019081018352818420805488018155810180549091019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b602081526000825180602084015260005b818110156109635760208186018101516040868401015201610946565b506000604082850101526040601f19601f83011684010191505092915050565b602080825282518282018190526000918401906040840190835b818110156109c45783516001600160a01b031683526020938401939092019160010161099d565b509095945050505050565b80356001600160a01b03811681146109e657600080fd5b919050565b600080604083850312156109fe57600080fd5b610a07836109cf565b946020939093013593505050565b600060208284031215610a2757600080fd5b610a30826109cf565b9392505050565b60008083601f840112610a4957600080fd5b50813567ffffffffffffffff811115610a6157600080fd5b6020830191508360208260051b850101111561035c57600080fd5b600080600060408486031215610a9157600080fd5b610a9a846109cf565b9250602084013567ffffffffffffffff811115610ab657600080fd5b610ac286828701610a37565b9497909650939450505050565b600081518084526020840193506020830160005b82811015610b01578151865260209586019590910190600101610ae3565b5093949350505050565b604081526000610b1e6040830185610acf565b8281036020840152610b308185610acf565b95945050505050565b60008060408385031215610b4c57600080fd5b50508035926020909101359150565b602081526000610a306020830184610acf565b60008060208385031215610b8157600080fd5b823567ffffffffffffffff811115610b9857600080fd5b610ba485828601610a37565b90969095509350505050565b600060208284031215610bc257600080fd5b5035919050565b600080600060608486031215610bde57600080fd5b610be7846109cf565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b818103818111156105bf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610c5b57600080fd5b81518015158114610a3057600080fdfea264697066735822122076798a2ba8fe1bbcf2ec0a6a22c638a521c75c61a467dfefa0abdd748785d9ac64736f6c634300081c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806394ca5c9c1161007157806394ca5c9c1461025c57806395d89b411461026f578063a2bdedf414610292578063b5ee937b146102a5578063eb3d9bea146102b857600080fd5b806370a08231146101e957806380538e2714610212578063832c205d146102335780638a14f12c1461025357600080fd5b8063313ce567116100de578063313ce5671461017f578063328343ec1461018e578063481c6a75146101b65780635ad1df6a146101e957600080fd5b806306fdde03146101105780630d7087e91461015057806318160ddd1461016557806319a50f4914610177575b600080fd5b61013a6040518060400160405280600b81526020016a1054114815d859d95c995960aa1b81525081565b6040516101479190610935565b60405180910390f35b6101586102cd565b6040516101479190610983565b6002545b604051908152602001610147565b600154610169565b60405160128152602001610147565b6101a161019c3660046109eb565b61032f565b60408051928352602083019190915201610147565b6101d1738632f22e5a921c751cfbbff92f058a3b11e96b8a81565b6040516001600160a01b039091168152602001610147565b6101696101f7366004610a15565b6001600160a01b031660009081526020819052604090205490565b610225610220366004610a7c565b610363565b604051610147929190610b0b565b610246610241366004610b39565b6104e4565b6040516101479190610b5b565b61016960025481565b61024661026a366004610b6e565b6105c5565b61013a604051806040016040528060048152602001637741504560e01b81525081565b6101d16102a0366004610bb0565b610696565b6101586102b3366004610b39565b6106c0565b6102cb6102c6366004610bc9565b610796565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561032557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610307575b5050505050905090565b6001600160a01b038216600090815260208181526040808320848452600190810190925290912080549101545b9250929050565b606080828067ffffffffffffffff81111561038057610380610bfc565b6040519080825280602002602001820160405280156103a9578160200160208202803683370190505b5092508067ffffffffffffffff8111156103c5576103c5610bfc565b6040519080825280602002602001820160405280156103ee578160200160208202803683370190505b50915060005b818110156104da576001600160a01b03871660009081526020819052604081206001019087878481811061042a5761042a610c12565b9050602002013581526020019081526020016000206000015484828151811061045557610455610c12565b602002602001018181525050600080886001600160a01b03166001600160a01b03168152602001908152602001600020600101600087878481811061049c5761049c610c12565b905060200201358152602001908152602001600020600101548382815181106104c7576104c7610c12565b60209081029190910101526001016103f4565b5050935093915050565b6001546060908211156104f75760015491505b60006105038484610c28565b67ffffffffffffffff81111561051b5761051b610bfc565b604051908082528060200260200182016040528015610544578160200160208202803683370190505b5090506000845b848110156105b9576000806001838154811061056957610569610c12565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483518490849081106105a2576105a2610c12565b60209081029190910101526001918201910161054b565b50909150505b92915050565b60608160008167ffffffffffffffff8111156105e3576105e3610bfc565b60405190808252806020026020018201604052801561060c578160200160208202803683370190505b50905060005b8281101561068d5760008087878481811061062f5761062f610c12565b90506020020160208101906106449190610a15565b6001600160a01b03166001600160a01b031681526020019081526020016000206000015482828151811061067a5761067a610c12565b6020908102919091010152600101610612565b50949350505050565b600181815481106106a657600080fd5b6000918252602090912001546001600160a01b0316905081565b6001546060908211156106d35760015491505b60006106df8484610c28565b67ffffffffffffffff8111156106f7576106f7610bfc565b604051908082528060200260200182016040528015610720578160200160208202803683370190505b5090506000845b848110156105b9576001818154811061074257610742610c12565b9060005260206000200160009054906101000a90046001600160a01b031683838151811061077257610772610c12565b6001600160a01b039092166020928302919091019091015260019182019101610727565b604051636313629760e11b8152336004820152738632f22e5a921c751cfbbff92f058a3b11e96b8a9063c626c52e90602401602060405180830381865afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190610c49565b6108485760405162461bcd60e51b815260206004820152600c60248201526b155b905d5d1a1bdc9a5e995960a21b604482015260640160405180910390fd5b6001600160a01b03831660009081526020819052604090205415801561086e5750600082115b156108be576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0385161790555b60028054830190556001600160a01b03831660008181526020818152604080832080548701815585845260019081018352818420805488018155810180549091019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b602081526000825180602084015260005b818110156109635760208186018101516040868401015201610946565b506000604082850101526040601f19601f83011684010191505092915050565b602080825282518282018190526000918401906040840190835b818110156109c45783516001600160a01b031683526020938401939092019160010161099d565b509095945050505050565b80356001600160a01b03811681146109e657600080fd5b919050565b600080604083850312156109fe57600080fd5b610a07836109cf565b946020939093013593505050565b600060208284031215610a2757600080fd5b610a30826109cf565b9392505050565b60008083601f840112610a4957600080fd5b50813567ffffffffffffffff811115610a6157600080fd5b6020830191508360208260051b850101111561035c57600080fd5b600080600060408486031215610a9157600080fd5b610a9a846109cf565b9250602084013567ffffffffffffffff811115610ab657600080fd5b610ac286828701610a37565b9497909650939450505050565b600081518084526020840193506020830160005b82811015610b01578151865260209586019590910190600101610ae3565b5093949350505050565b604081526000610b1e6040830185610acf565b8281036020840152610b308185610acf565b95945050505050565b60008060408385031215610b4c57600080fd5b50508035926020909101359150565b602081526000610a306020830184610acf565b60008060208385031215610b8157600080fd5b823567ffffffffffffffff811115610b9857600080fd5b610ba485828601610a37565b90969095509350505050565b600060208284031215610bc257600080fd5b5035919050565b600080600060608486031215610bde57600080fd5b610be7846109cf565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b818103818111156105bf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610c5b57600080fd5b81518015158114610a3057600080fdfea264697066735822122076798a2ba8fe1bbcf2ec0a6a22c638a521c75c61a467dfefa0abdd748785d9ac64736f6c634300081c0033
Deployed Bytecode Sourcemap
4033:4391:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4133:43;;;;;;;;;;;;;;;-1:-1:-1;;;4133:43:0;;;;;;;;;;;;:::i;:::-;;;;;;;;5928:99;;;:::i;:::-;;;;;;;:::i;4967:93::-;5040:12;;4967:93;;;1334:25:1;;;1322:2;1307:18;4967:93:0;1188:177:1;6035:93:0;6105:8;:15;6035:93;;5068:78;;;5136:2;1512:36:1;;1500:2;1485:18;5068:78:0;1370:184:1;6268:244:0;;;;;;:::i;:::-;;:::i;:::-;;;;2216:25:1;;;2272:2;2257:18;;2250:34;;;;2189:18;6268:244:0;2042:248:1;1899:107:0;;1963:42;1899:107;;;;;-1:-1:-1;;;;;2485:32:1;;;2467:51;;2455:2;2440:18;1899:107:0;2295:229:1;6136:124:0;;;;;;:::i;:::-;-1:-1:-1;;;;;6225:14:0;6198:7;6225:14;;;;;;;;;;:27;;6136:124;6520:543;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;7434:509::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4702:27::-;;;;;;7071:355;;;;;;:::i;:::-;;:::i;4183:38::-;;;;;;;;;;;;;;;-1:-1:-1;;;4183:38:0;;;;;4646:25;;;;;;:::i;:::-;;:::i;7951:470::-;;;;;;:::i;:::-;;:::i;5154:766::-;;;;;;:::i;:::-;;:::i;:::-;;5928:99;5975:16;6011:8;6004:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6004:15:0;;;;;;;;;;;;;;;;;;;;;;;5928:99;:::o;6268:244::-;-1:-1:-1;;;;;6409:14:0;;6343:21;6409:14;;;;;;;;;;;:32;;;:23;;;;:32;;;;;;:45;;6456:47;;;6268:244;;;;;;:::o;6520:543::-;6609:30;;6699:8;;6741:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6741:18:0;;6725:34;;6801:3;6787:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6787:18:0;;6770:35;;6821:6;6816:240;6837:3;6833:1;:7;6816:240;;;-1:-1:-1;;;;;6877:14:0;;:8;:14;;;;;;;;;;:23;;;6901:8;;6910:1;6901:11;;;;;;;:::i;:::-;;;;;;;6877:36;;;;;;;;;;;:49;;;6858:13;6872:1;6858:16;;;;;;;;:::i;:::-;;;;;;:68;;;;;6961:8;:14;6970:4;-1:-1:-1;;;;;6961:14:0;-1:-1:-1;;;;;6961:14:0;;;;;;;;;;;;:23;;:36;6985:8;;6994:1;6985:11;;;;;;;:::i;:::-;;;;;;;6961:36;;;;;;;;;;;:51;;;6941:14;6956:1;6941:17;;;;;;;;:::i;:::-;;;;;;;;;;:71;7039:3;;6816:240;;;;6674:389;6520:543;;;;;;:::o;7434:509::-;7579:8;:15;7535:16;;7568:26;;7564:85;;;7622:8;:15;;-1:-1:-1;7564:85:0;7659:21;7697;7708:10;7697:8;:21;:::i;:::-;7683:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7683:36:0;-1:-1:-1;7659:60:0;-1:-1:-1;7730:13:0;7771:10;7754:160;7787:8;7783:1;:12;7754:160;;;7827:8;:21;7836:8;7845:1;7836:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7836:11:0;7827:21;;;;;;;;;;;;:34;7813:11;;:4;;7818:5;;7813:11;;;;;;:::i;:::-;;;;;;;;;;:48;7888:3;7893:7;;;;7888:3;7754:160;;;-1:-1:-1;7931:4:0;;-1:-1:-1;;7434:509:0;;;;;:::o;7071:355::-;7151:16;7194:5;7180:11;7194:5;7241:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7241:18:0;;7217:42;;7275:6;7270:127;7291:3;7287:1;:7;7270:127;;;7322:8;:18;7331:5;;7337:1;7331:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7322:18:0;-1:-1:-1;;;;;7322:18:0;;;;;;;;;;;;:31;;;7312:4;7317:1;7312:7;;;;;;;;:::i;:::-;;;;;;;;;;:41;7380:3;;7270:127;;;-1:-1:-1;7414:4:0;7071:355;-1:-1:-1;;;;7071:355:0:o;4646:25::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4646:25:0;;-1:-1:-1;4646:25:0;:::o;7951:470::-;8080:8;:15;8036:16;;8069:26;;8065:85;;;8123:8;:15;;-1:-1:-1;8065:85:0;8160:21;8198;8209:10;8198:8;:21;:::i;:::-;8184:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8184:36:0;-1:-1:-1;8160:60:0;-1:-1:-1;8231:13:0;8272:10;8255:137;8288:8;8284:1;:12;8255:137;;;8328:8;8337:1;8328:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8328:11:0;8314:4;8319:5;8314:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8314:25:0;;;:11;;;;;;;;;;;:25;8366:3;8371:7;;;;8366:3;8255:137;;5154:766;2217:26;;-1:-1:-1;;;2217:26:0;;2232:10;2217:26;;;2467:51:1;1963:42:0;;2217:14;;2440:18:1;;2217:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2195:88;;;;-1:-1:-1;;;2195:88:0;;7404:2:1;2195:88:0;;;7386:21:1;7443:2;7423:18;;;7416:30;-1:-1:-1;;;7462:18:1;;;7455:42;7514:18;;2195:88:0;;;;;;;;-1:-1:-1;;;;;5298:14:0;::::1;:8;:14:::0;;;::::1;::::0;;;;;;:27;:32;:46;::::1;;;;5343:1;5334:6;:10;5298:46;5294:98;;;5361:8;:19:::0;;;;::::1;::::0;;-1:-1:-1;5361:19:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;5361:19:0::1;-1:-1:-1::0;;;;;5361:19:0;::::1;;::::0;;5294:98:::1;5556:12;:22:::0;;;::::1;::::0;;-1:-1:-1;;;;;5593:14:0;::::1;-1:-1:-1::0;5593:14:0;;;::::1;::::0;;;;;;;:37;;;::::1;::::0;;5645:32;;;-1:-1:-1;5645:23:0;;::::1;:32:::0;;;;;:55;;;::::1;::::0;;5765:47;::::1;5763:49:::0;;;;::::1;::::0;;5878:34;1334:25:1;;;5878:34:0::1;::::0;1307:18:1;5878:34:0::1;;;;;;;5154:766:::0;;;:::o;14:527:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;263:1;273:140;287:6;284:1;281:13;273:140;;;398:2;382:14;;;378:23;;372:30;367:2;348:17;;;344:26;337:66;302:10;273:140;;;277:3;462:1;457:2;448:6;437:9;433:22;429:31;422:42;532:2;525;521:7;516:2;508:6;504:15;500:29;489:9;485:45;481:54;473:62;;;14:527;;;;:::o;546:637::-;736:2;748:21;;;818:13;;721:18;;;840:22;;;688:4;;919:15;;;893:2;878:18;;;688:4;962:195;976:6;973:1;970:13;962:195;;;1041:13;;-1:-1:-1;;;;;1037:39:1;1025:52;;1106:2;1132:15;;;;1097:12;;;;1073:1;991:9;962:195;;;-1:-1:-1;1174:3:1;;546:637;-1:-1:-1;;;;;546:637:1:o;1559:173::-;1627:20;;-1:-1:-1;;;;;1676:31:1;;1666:42;;1656:70;;1722:1;1719;1712:12;1656:70;1559:173;;;:::o;1737:300::-;1805:6;1813;1866:2;1854:9;1845:7;1841:23;1837:32;1834:52;;;1882:1;1879;1872:12;1834:52;1905:29;1924:9;1905:29;:::i;:::-;1895:39;2003:2;1988:18;;;;1975:32;;-1:-1:-1;;;1737:300:1:o;2529:186::-;2588:6;2641:2;2629:9;2620:7;2616:23;2612:32;2609:52;;;2657:1;2654;2647:12;2609:52;2680:29;2699:9;2680:29;:::i;:::-;2670:39;2529:186;-1:-1:-1;;;2529:186:1:o;2720:367::-;2783:8;2793:6;2847:3;2840:4;2832:6;2828:17;2824:27;2814:55;;2865:1;2862;2855:12;2814:55;-1:-1:-1;2888:20:1;;2931:18;2920:30;;2917:50;;;2963:1;2960;2953:12;2917:50;3000:4;2992:6;2988:17;2976:29;;3060:3;3053:4;3043:6;3040:1;3036:14;3028:6;3024:27;3020:38;3017:47;3014:67;;;3077:1;3074;3067:12;3092:511;3187:6;3195;3203;3256:2;3244:9;3235:7;3231:23;3227:32;3224:52;;;3272:1;3269;3262:12;3224:52;3295:29;3314:9;3295:29;:::i;:::-;3285:39;;3375:2;3364:9;3360:18;3347:32;3402:18;3394:6;3391:30;3388:50;;;3434:1;3431;3424:12;3388:50;3473:70;3535:7;3526:6;3515:9;3511:22;3473:70;:::i;:::-;3092:511;;3562:8;;-1:-1:-1;3447:96:1;;-1:-1:-1;;;;3092:511:1:o;3608:420::-;3661:3;3699:5;3693:12;3726:6;3721:3;3714:19;3758:4;3753:3;3749:14;3742:21;;3797:4;3790:5;3786:16;3820:1;3830:173;3844:6;3841:1;3838:13;3830:173;;;3905:13;;3893:26;;3948:4;3939:14;;;;3976:17;;;;3866:1;3859:9;3830:173;;;-1:-1:-1;4019:3:1;;3608:420;-1:-1:-1;;;;3608:420:1:o;4033:465::-;4290:2;4279:9;4272:21;4253:4;4316:56;4368:2;4357:9;4353:18;4345:6;4316:56;:::i;:::-;4420:9;4412:6;4408:22;4403:2;4392:9;4388:18;4381:50;4448:44;4485:6;4477;4448:44;:::i;:::-;4440:52;4033:465;-1:-1:-1;;;;;4033:465:1:o;4503:346::-;4571:6;4579;4632:2;4620:9;4611:7;4607:23;4603:32;4600:52;;;4648:1;4645;4638:12;4600:52;-1:-1:-1;;4693:23:1;;;4813:2;4798:18;;;4785:32;;-1:-1:-1;4503:346:1:o;4854:261::-;5033:2;5022:9;5015:21;4996:4;5053:56;5105:2;5094:9;5090:18;5082:6;5053:56;:::i;5120:437::-;5206:6;5214;5267:2;5255:9;5246:7;5242:23;5238:32;5235:52;;;5283:1;5280;5273:12;5235:52;5323:9;5310:23;5356:18;5348:6;5345:30;5342:50;;;5388:1;5385;5378:12;5342:50;5427:70;5489:7;5480:6;5469:9;5465:22;5427:70;:::i;:::-;5516:8;;5401:96;;-1:-1:-1;5120:437:1;-1:-1:-1;;;;5120:437:1:o;5562:226::-;5621:6;5674:2;5662:9;5653:7;5649:23;5645:32;5642:52;;;5690:1;5687;5680:12;5642:52;-1:-1:-1;5735:23:1;;5562:226;-1:-1:-1;5562:226:1:o;6001:420::-;6078:6;6086;6094;6147:2;6135:9;6126:7;6122:23;6118:32;6115:52;;;6163:1;6160;6153:12;6115:52;6186:29;6205:9;6186:29;:::i;:::-;6176:39;6284:2;6269:18;;6256:32;;-1:-1:-1;6385:2:1;6370:18;;;6357:32;;6001:420;-1:-1:-1;;;6001:420:1:o;6426:127::-;6487:10;6482:3;6478:20;6475:1;6468:31;6518:4;6515:1;6508:15;6542:4;6539:1;6532:15;6558:127;6619:10;6614:3;6610:20;6607:1;6600:31;6650:4;6647:1;6640:15;6674:4;6671:1;6664:15;6690:225;6757:9;;;6778:11;;;6775:134;;;6831:10;6826:3;6822:20;6819:1;6812:31;6866:4;6863:1;6856:15;6894:4;6891:1;6884:15;6920:277;6987:6;7040:2;7028:9;7019:7;7015:23;7011:32;7008:52;;;7056:1;7053;7046:12;7008:52;7088:9;7082:16;7141:5;7134:13;7127:21;7120:5;7117:32;7107:60;;7163:1;7160;7153:12
Swarm Source
ipfs://76798a2ba8fe1bbcf2ec0a6a22c638a521c75c61a467dfefa0abdd748785d9ac
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.