More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,684 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake | 66701329 | 8 days ago | IN | 0 POL | 0.0023514 | ||||
Stake | 66698768 | 8 days ago | IN | 0 POL | 0.00361113 | ||||
Stake | 66343809 | 17 days ago | IN | 0 POL | 0.00242907 | ||||
Stake | 66263464 | 19 days ago | IN | 0 POL | 0.01027631 | ||||
Stake | 66235765 | 19 days ago | IN | 0 POL | 0.00242907 | ||||
Stake | 65008723 | 50 days ago | IN | 0 POL | 0.0037371 | ||||
Stake | 64894074 | 53 days ago | IN | 0 POL | 0.00255609 | ||||
Unstake | 64503445 | 63 days ago | IN | 0 POL | 0.00271296 | ||||
Unstake | 64262232 | 69 days ago | IN | 0 POL | 0.0022004 | ||||
Stake | 64197920 | 71 days ago | IN | 0 POL | 0.01117458 | ||||
Stake | 63321969 | 93 days ago | IN | 0 POL | 0.00228435 | ||||
Stake | 63216032 | 95 days ago | IN | 0 POL | 0.002474 | ||||
Stake | 63203175 | 96 days ago | IN | 0 POL | 0.00228435 | ||||
Unstake | 63193857 | 96 days ago | IN | 0 POL | 0.00264462 | ||||
Stake | 63160323 | 97 days ago | IN | 0 POL | 0.00228435 | ||||
Unstake | 63160031 | 97 days ago | IN | 0 POL | 0.00184473 | ||||
Stake | 63160018 | 97 days ago | IN | 0 POL | 0.00228435 | ||||
Unstake | 63117959 | 98 days ago | IN | 0 POL | 0.00184547 | ||||
Stake | 63117948 | 98 days ago | IN | 0 POL | 0.00228545 | ||||
Unstake | 63102511 | 98 days ago | IN | 0 POL | 0.00261621 | ||||
Stake | 63102489 | 98 days ago | IN | 0 POL | 0.00498269 | ||||
Unstake | 63078667 | 99 days ago | IN | 0 POL | 0.00184437 | ||||
Stake | 63078612 | 99 days ago | IN | 0 POL | 0.00228435 | ||||
Unstake | 63072737 | 99 days ago | IN | 0 POL | 0.01130833 | ||||
Unstake | 63072721 | 99 days ago | IN | 0 POL | 0.01309704 |
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 Name:
CommonsEasyStake
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-06-18 */ // File: contracts/pos-portal/Initializable.sol // SPDX-License-Identifier: MIT pragma solidity 0.8.1; contract Initializable { bool inited = false; modifier initializer() { require(!inited, "already inited"); _; inited = true; } } // File: contracts/pos-portal/EIP712Base.sol pragma solidity 0.8.1; contract EIP712Base is Initializable { struct EIP712Domain { string name; string version; address verifyingContract; bytes32 salt; } string constant public ERC712_VERSION = "1"; bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256( bytes( "EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)" ) ); bytes32 internal domainSeperator; // supposed to be called once while initializing. // one of the contractsa that inherits this contract follows proxy pattern // so it is not possible to do this in a constructor function _initializeEIP712( string memory name ) internal initializer { _setDomainSeperator(name); } function _setDomainSeperator(string memory name) internal { domainSeperator = keccak256( abi.encode( EIP712_DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes(ERC712_VERSION)), address(this), bytes32(getChainId()) ) ); } function getDomainSeperator() public view returns (bytes32) { return domainSeperator; } function getChainId() public view returns (uint256) { uint256 id; assembly { id := chainid() } return id; } /** * Accept message hash and returns hash message in EIP712 compatible form * So that it can be used to recover signer from signature signed using EIP712 formatted data * https://eips.ethereum.org/EIPS/eip-712 * "\\x19" makes the encoding deterministic * "\\x01" is the version byte to make it compatible to EIP-191 */ function toTypedMessageHash(bytes32 messageHash) internal view returns (bytes32) { return keccak256( abi.encodePacked("\x19\x01", getDomainSeperator(), messageHash) ); } } // File: contracts/pos-portal/NativeMetaTransaction.sol pragma solidity 0.8.1; contract NativeMetaTransaction is EIP712Base { bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256( bytes( "MetaTransaction(uint256 nonce,address from,bytes functionSignature)" ) ); event MetaTransactionExecuted( address userAddress, address payable relayerAddress, bytes functionSignature ); mapping(address => uint256) nonces; /* * Meta transaction structure. * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas * He should call the desired function directly in that case. */ struct MetaTransaction { uint256 nonce; address from; bytes functionSignature; } function executeMetaTransaction( address userAddress, bytes memory functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV ) public payable returns (bytes memory) { MetaTransaction memory metaTx = MetaTransaction({ nonce: nonces[userAddress], from: userAddress, functionSignature: functionSignature }); require( verify(userAddress, metaTx, sigR, sigS, sigV), "Signer and signature do not match" ); // increase nonce for user (to avoid re-use) nonces[userAddress] = nonces[userAddress] + 1; emit MetaTransactionExecuted( userAddress, payable(msg.sender), functionSignature ); // Append userAddress and relayer address at the end to extract it from calling context (bool success, bytes memory returnData) = address(this).call( abi.encodePacked(functionSignature, userAddress) ); require(success, "Function call not successful"); return returnData; } function hashMetaTransaction(MetaTransaction memory metaTx) internal pure returns (bytes32) { return keccak256( abi.encode( META_TRANSACTION_TYPEHASH, metaTx.nonce, metaTx.from, keccak256(metaTx.functionSignature) ) ); } function getNonce(address user) public view returns (uint256 nonce) { nonce = nonces[user]; } function verify( address signer, MetaTransaction memory metaTx, bytes32 sigR, bytes32 sigS, uint8 sigV ) internal view returns (bool) { require(signer != address(0), "NativeMetaTransaction: INVALID_SIGNER"); return signer == ecrecover( toTypedMessageHash(hashMetaTransaction(metaTx)), sigV, sigR, sigS ); } } // File: contracts/CommonsEasyStake.sol pragma solidity 0.8.1; /* * @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 payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @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 () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool); /** * @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); } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } interface ICommonsWhiteList { function isWhitelisted(address _staker) external view returns (bool); } contract CommonsEasyStake is Ownable, NativeMetaTransaction { using SafeERC20 for IERC20; // ** GLOBAL VARIABLES ** address public stakeToken; //WORK address address public whitelist; // reference for Commons Whitelist uint256 public minStake; // min required to stake string public desc; //description for contract bool public paused; //used for pausing stakes bytes32 public constant PERMIT_TYPEHASH = keccak256( "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)" ); // ** EVENTS ** event Stake(address staker, uint256 amountStaked, uint256 totalStaked); event unStake(address unstaker, uint256 amountUnstaked, uint256 totalStaked); // ** ACCOUNTING ** uint256 public totalStaked; //total WORK staked mapping(address => uint256) public stakes; //mapping to track stakes address[] public stakers; //list of staker addresses constructor( address _stakeToken, address _whitelist, uint256 _minStake, string memory _desc ) { require(_minStake >= 1 * 10**18, "STAKING :: minStake must be at least 1 WORK"); require(_whitelist != address(0), "STAKING :: Bad whitelist address"); stakeToken = _stakeToken; whitelist = _whitelist; minStake = _minStake; desc = _desc; paused = false; } function stake(uint256 amount) external { require(!paused, "STAKING :: Staking is paused"); require(amount >= minStake, "STAKING :: Amount less than stake"); require( ICommonsWhiteList(whitelist).isWhitelisted(_msgSender()), "STAKING :: staker not whitelsited" ); /** * @dev Increments stakes for exising stakers, creates stake for new staker */ if (stakes[_msgSender()] == 0) { stakes[_msgSender()] = amount; stakers.push(_msgSender()); } else { stakes[_msgSender()] += amount; } IERC20(address(stakeToken)).safeTransferFrom( _msgSender(), address(this), amount ); totalStaked += amount; // increments totalStaked emit Stake(msg.sender, amount, totalStaked); } function unstake(uint256 amount) public { require(amount <= stakes[_msgSender()], "STAKING :: Amount greater than stake"); require(stakes[_msgSender()] - amount >= minStake || stakes[_msgSender()] - amount == 0, "STAKING :: Too little stake left"); IERC20(address(stakeToken)).safeTransfer(_msgSender(), amount); stakes[_msgSender()] = stakes[_msgSender()] - amount; // decrements user stake totalStaked = totalStaked - amount; // decrements totalStaked emit unStake(_msgSender(), amount, totalStaked); } function rewardsPercentage(address staker) public view returns (uint256) { require(stakes[staker] > 0, "STAKING :: Nothing staked"); /** * @dev View only function in case one wants to use an interface. */ return stakes[staker] * 10000 / totalStaked; // percentage of totalStaked in bps } function pause() external onlyOwner { paused = true; } function _msgSender() internal view override returns (address payable sender) { if (msg.sender == address(this)) { bytes memory array = msg.data; uint256 index = msg.data.length; assembly { // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those. sender := and( mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff ) } } else { sender = payable(msg.sender); } return sender; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stakeToken","type":"address"},{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"uint256","name":"_minStake","type":"uint256"},{"internalType":"string","name":"_desc","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","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":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountStaked","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalStaked","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"unstaker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountUnstaked","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalStaked","type":"uint256"}],"name":"unStake","type":"event"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"desc","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"rewardsPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526000805460ff60a01b191690553480156200001e57600080fd5b5060405162001c3a38038062001c3a833981016040819052620000419162000276565b60006200004d62000154565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350670de0b6b3a7640000821015620000cb5760405162461bcd60e51b8152600401620000c2906200037c565b60405180910390fd5b6001600160a01b038316620000f45760405162461bcd60e51b8152600401620000c290620003c7565b600380546001600160a01b038087166001600160a01b0319928316179092556004805492861692909116919091179055600582905580516200013e906006906020840190620001b3565b50506007805460ff19169055506200044f915050565b600033301415620001ad57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150620001b09050565b50335b90565b828054620001c190620003fc565b90600052602060002090601f016020900481019282620001e5576000855562000230565b82601f106200020057805160ff191683800117855562000230565b8280016001018555821562000230579182015b828111156200023057825182559160200191906001019062000213565b506200023e92915062000242565b5090565b5b808211156200023e576000815560010162000243565b80516001600160a01b03811681146200027157600080fd5b919050565b600080600080608085870312156200028c578384fd5b620002978562000259565b93506020620002a881870162000259565b6040870151606088015191955093506001600160401b0380821115620002cc578384fd5b818801915088601f830112620002e0578384fd5b815181811115620002f557620002f562000439565b604051601f8201601f19908116603f0116810190838211818310171562000320576200032062000439565b816040528281528b8684870101111562000338578687fd5b8693505b828410156200035b57848401860151818501870152928501926200033c565b828411156200036c57868684830101525b989b979a50959850505050505050565b6020808252602b908201527f5354414b494e47203a3a206d696e5374616b65206d757374206265206174206c60408201526a65617374203120574f524b60a81b606082015260800190565b6020808252818101527f5354414b494e47203a3a204261642077686974656c6973742061646472657373604082015260600190565b6002810460018216806200041157607f821691505b602082108114156200043357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6117db806200045f6000396000f3fe60806040526004361061012a5760003560e01c806355f150f1116100ab5780638456cb591161006f5780638456cb59146102d35780638da5cb5b146102e857806393e59dc1146102fd578063a694fc3a14610312578063f2fde38b14610332578063fd5e6dd1146103525761012a565b806355f150f1146102525780635985f597146102675780635c975abb14610287578063715018a6146102a9578063817b1cd2146102be5761012a565b80632e17de78116100f25780632e17de78146101cf57806330adf81f146101f15780633408e47014610206578063375b3c0a1461021b57806351ed6a30146102305761012a565b80630c53c51c1461012f5780630f7e59701461015857806316934fc41461016d57806320379ee51461019a5780632d0335ab146101af575b600080fd5b61014261013d366004611038565b610372565b60405161014f91906112e6565b60405180910390f35b34801561016457600080fd5b506101426104fb565b34801561017957600080fd5b5061018d61018836600461101e565b610518565b60405161014f919061129b565b3480156101a657600080fd5b5061018d61052a565b3480156101bb57600080fd5b5061018d6101ca36600461101e565b610531565b3480156101db57600080fd5b506101ef6101ea366004611137565b61054c565b005b3480156101fd57600080fd5b5061018d610704565b34801561021257600080fd5b5061018d610728565b34801561022757600080fd5b5061018d61072c565b34801561023c57600080fd5b50610245610732565b60405161014f91906111e9565b34801561025e57600080fd5b50610142610741565b34801561027357600080fd5b5061018d61028236600461101e565b6107cf565b34801561029357600080fd5b5061029c61083e565b60405161014f9190611290565b3480156102b557600080fd5b506101ef610847565b3480156102ca57600080fd5b5061018d6108d0565b3480156102df57600080fd5b506101ef6108d6565b3480156102f457600080fd5b50610245610924565b34801561030957600080fd5b50610245610933565b34801561031e57600080fd5b506101ef61032d366004611137565b610942565b34801561033e57600080fd5b506101ef61034d36600461101e565b610b67565b34801561035e57600080fd5b5061024561036d366004611137565b610c27565b60408051606081810183526001600160a01b038816600081815260026020908152908590205484528301529181018690526103b08782878787610c51565b6103d55760405162461bcd60e51b81526004016103cc906114f2565b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546103f9906001611661565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061044990899033908a9061121e565b60405180910390a1600080306001600160a01b0316888a604051602001610471929190611197565b60408051601f198184030181529082905261048b9161117b565b6000604051808303816000865af19150503d80600081146104c8576040519150601f19603f3d011682016040523d82523d6000602084013e6104cd565b606091505b5091509150816104ef5760405162461bcd60e51b81526004016103cc90611383565b98975050505050505050565b604051806040016040528060018152602001603160f81b81525081565b60096020526000908152604090205481565b6001545b90565b6001600160a01b031660009081526002602052604090205490565b60096000610558610cf7565b6001600160a01b03166001600160a01b03168152602001908152602001600020548111156105985760405162461bcd60e51b81526004016103cc906112f9565b60055481600960006105a8610cf7565b6001600160a01b03166001600160a01b03168152602001908152602001600020546105d391906116b8565b101580610615575080600960006105e8610cf7565b6001600160a01b03166001600160a01b031681526020019081526020016000205461061391906116b8565b155b6106315760405162461bcd60e51b81526004016103cc90611533565b61064f61063c610cf7565b6003546001600160a01b03169083610d53565b806009600061065c610cf7565b6001600160a01b03166001600160a01b031681526020019081526020016000205461068791906116b8565b60096000610693610cf7565b6001600160a01b031681526020810191909152604001600020556008546106bb9082906116b8565b6008557f3e23388db0f60f9a0363a90592a6e33f2446a86ebf3fbabd9777ead168697a7b6106e7610cf7565b6008546040516106f9929185916111fd565b60405180910390a150565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b4690565b60055481565b6003546001600160a01b031681565b6006805461074e906116fb565b80601f016020809104026020016040519081016040528092919081815260200182805461077a906116fb565b80156107c75780601f1061079c576101008083540402835291602001916107c7565b820191906000526020600020905b8154815290600101906020018083116107aa57829003601f168201915b505050505081565b6001600160a01b0381166000908152600960205260408120546108045760405162461bcd60e51b81526004016103cc906113ba565b6008546001600160a01b03831660009081526009602052604090205461082c90612710611699565b6108369190611679565b90505b919050565b60075460ff1681565b61084f610cf7565b6001600160a01b0316610860610924565b6001600160a01b0316146108865760405162461bcd60e51b81526004016103cc906114bd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b6108de610cf7565b6001600160a01b03166108ef610924565b6001600160a01b0316146109155760405162461bcd60e51b81526004016103cc906114bd565b6007805460ff19166001179055565b6000546001600160a01b031690565b6004546001600160a01b031681565b60075460ff16156109655760405162461bcd60e51b81526004016103cc906115e0565b6005548110156109875760405162461bcd60e51b81526004016103cc9061147c565b6004546001600160a01b0316633af32abf6109a0610cf7565b6040518263ffffffff1660e01b81526004016109bc91906111e9565b60206040518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190611117565b610a285760405162461bcd60e51b81526004016103cc90611568565b60096000610a34610cf7565b6001600160a01b03168152602081019190915260400160002054610aba578060096000610a5f610cf7565b6001600160a01b03168152602081019190915260400160002055600a610a83610cf7565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055610afc565b8060096000610ac7610cf7565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610af69190611661565b90915550505b610b1b610b07610cf7565b6003546001600160a01b0316903084610dae565b8060086000828254610b2d9190611661565b90915550506008546040517f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6916106f991339185916111fd565b610b6f610cf7565b6001600160a01b0316610b80610924565b6001600160a01b031614610ba65760405162461bcd60e51b81526004016103cc906114bd565b6001600160a01b038116610bcc5760405162461bcd60e51b81526004016103cc9061133d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600a8181548110610c3757600080fd5b6000918252602090912001546001600160a01b0316905081565b60006001600160a01b038616610c795760405162461bcd60e51b81526004016103cc90611437565b6001610c8c610c8787610dd5565b610e33565b83868660405160008152602001604052604051610cac94939291906112c8565b6020604051602081039080840390855afa158015610cce573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b600033301415610d4e57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061052e9050565b503390565b610da98363a9059cbb60e01b8484604051602401610d72929190611277565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610e4f565b505050565b610dcf846323b872dd60e01b858585604051602401610d7293929190611253565b50505050565b60006040518060800160405280604381526020016117636043913980516020918201208351848301516040808701518051908601209051610e1695016112a4565b604051602081830303815290604052805190602001209050919050565b6000610e3d61052a565b82604051602001610e169291906111ce565b6000610ea4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ede9092919063ffffffff16565b805190915015610da95780806020019051810190610ec29190611117565b610da95760405162461bcd60e51b81526004016103cc90611617565b6060610eed8484600085610ef7565b90505b9392505050565b606082471015610f195760405162461bcd60e51b81526004016103cc906113f1565b610f2285610fb7565b610f3e5760405162461bcd60e51b81526004016103cc906115a9565b600080866001600160a01b03168587604051610f5a919061117b565b60006040518083038185875af1925050503d8060008114610f97576040519150601f19603f3d011682016040523d82523d6000602084013e610f9c565b606091505b5091509150610fac828286610fbd565b979650505050505050565b3b151590565b60608315610fcc575081610ef0565b825115610fdc5782518084602001fd5b8160405162461bcd60e51b81526004016103cc91906112e6565b80356001600160a01b038116811461083957600080fd5b803560ff8116811461083957600080fd5b60006020828403121561102f578081fd5b610ef082610ff6565b600080600080600060a0868803121561104f578081fd5b61105886610ff6565b9450602086013567ffffffffffffffff80821115611074578283fd5b818801915088601f830112611087578283fd5b8135818111156110995761109961174c565b604051601f8201601f19908116603f011681019083821181831017156110c1576110c161174c565b816040528281528b60208487010111156110d9578586fd5b826020860160208301379182016020018590525095505050604086013592506060860135915061110b6080870161100d565b90509295509295909350565b600060208284031215611128578081fd5b81518015158114610ef0578182fd5b600060208284031215611148578081fd5b5035919050565b600081518084526111678160208601602086016116cf565b601f01601f19169290920160200192915050565b6000825161118d8184602087016116cf565b9190910192915050565b600083516111a98184602088016116cf565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0384811682528316602082015260606040820181905260009061124a9083018461114f565b95945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b93845260208401929092526001600160a01b03166040830152606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b600060208252610ef0602083018461114f565b60208082526024908201527f5354414b494e47203a3a20416d6f756e742067726561746572207468616e207360408201526374616b6560e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000604082015260600190565b60208082526019908201527f5354414b494e47203a3a204e6f7468696e67207374616b656400000000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b60208082526025908201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360408201526424a3a722a960d91b606082015260800190565b60208082526021908201527f5354414b494e47203a3a20416d6f756e74206c657373207468616e207374616b6040820152606560f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636040820152600d60fb1b606082015260800190565b6020808252818101527f5354414b494e47203a3a20546f6f206c6974746c65207374616b65206c656674604082015260600190565b60208082526021908201527f5354414b494e47203a3a207374616b6572206e6f742077686974656c736974656040820152601960fa1b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252601c908201527f5354414b494e47203a3a205374616b696e672069732070617573656400000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6000821982111561167457611674611736565b500190565b60008261169457634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116b3576116b3611736565b500290565b6000828210156116ca576116ca611736565b500390565b60005b838110156116ea5781810151838201526020016116d2565b83811115610dcf5750506000910152565b60028104600182168061170f57607f821691505b6020821081141561173057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c25d4c3e90494cd89b38744c4510e5da6d4a21dec7710e1fe79acf74fa6631cc64736f6c634300080100330000000000000000000000006002410dda2fb88b4d0dc3c1d562f7761191ea8000000000000000000000000044a0487656420fdc15f9ca76dd95f3b8a2ef0baa0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000015506f6c79676f6e2024574f524b205374616b696e670000000000000000000000
Deployed Bytecode
0x60806040526004361061012a5760003560e01c806355f150f1116100ab5780638456cb591161006f5780638456cb59146102d35780638da5cb5b146102e857806393e59dc1146102fd578063a694fc3a14610312578063f2fde38b14610332578063fd5e6dd1146103525761012a565b806355f150f1146102525780635985f597146102675780635c975abb14610287578063715018a6146102a9578063817b1cd2146102be5761012a565b80632e17de78116100f25780632e17de78146101cf57806330adf81f146101f15780633408e47014610206578063375b3c0a1461021b57806351ed6a30146102305761012a565b80630c53c51c1461012f5780630f7e59701461015857806316934fc41461016d57806320379ee51461019a5780632d0335ab146101af575b600080fd5b61014261013d366004611038565b610372565b60405161014f91906112e6565b60405180910390f35b34801561016457600080fd5b506101426104fb565b34801561017957600080fd5b5061018d61018836600461101e565b610518565b60405161014f919061129b565b3480156101a657600080fd5b5061018d61052a565b3480156101bb57600080fd5b5061018d6101ca36600461101e565b610531565b3480156101db57600080fd5b506101ef6101ea366004611137565b61054c565b005b3480156101fd57600080fd5b5061018d610704565b34801561021257600080fd5b5061018d610728565b34801561022757600080fd5b5061018d61072c565b34801561023c57600080fd5b50610245610732565b60405161014f91906111e9565b34801561025e57600080fd5b50610142610741565b34801561027357600080fd5b5061018d61028236600461101e565b6107cf565b34801561029357600080fd5b5061029c61083e565b60405161014f9190611290565b3480156102b557600080fd5b506101ef610847565b3480156102ca57600080fd5b5061018d6108d0565b3480156102df57600080fd5b506101ef6108d6565b3480156102f457600080fd5b50610245610924565b34801561030957600080fd5b50610245610933565b34801561031e57600080fd5b506101ef61032d366004611137565b610942565b34801561033e57600080fd5b506101ef61034d36600461101e565b610b67565b34801561035e57600080fd5b5061024561036d366004611137565b610c27565b60408051606081810183526001600160a01b038816600081815260026020908152908590205484528301529181018690526103b08782878787610c51565b6103d55760405162461bcd60e51b81526004016103cc906114f2565b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546103f9906001611661565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061044990899033908a9061121e565b60405180910390a1600080306001600160a01b0316888a604051602001610471929190611197565b60408051601f198184030181529082905261048b9161117b565b6000604051808303816000865af19150503d80600081146104c8576040519150601f19603f3d011682016040523d82523d6000602084013e6104cd565b606091505b5091509150816104ef5760405162461bcd60e51b81526004016103cc90611383565b98975050505050505050565b604051806040016040528060018152602001603160f81b81525081565b60096020526000908152604090205481565b6001545b90565b6001600160a01b031660009081526002602052604090205490565b60096000610558610cf7565b6001600160a01b03166001600160a01b03168152602001908152602001600020548111156105985760405162461bcd60e51b81526004016103cc906112f9565b60055481600960006105a8610cf7565b6001600160a01b03166001600160a01b03168152602001908152602001600020546105d391906116b8565b101580610615575080600960006105e8610cf7565b6001600160a01b03166001600160a01b031681526020019081526020016000205461061391906116b8565b155b6106315760405162461bcd60e51b81526004016103cc90611533565b61064f61063c610cf7565b6003546001600160a01b03169083610d53565b806009600061065c610cf7565b6001600160a01b03166001600160a01b031681526020019081526020016000205461068791906116b8565b60096000610693610cf7565b6001600160a01b031681526020810191909152604001600020556008546106bb9082906116b8565b6008557f3e23388db0f60f9a0363a90592a6e33f2446a86ebf3fbabd9777ead168697a7b6106e7610cf7565b6008546040516106f9929185916111fd565b60405180910390a150565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b4690565b60055481565b6003546001600160a01b031681565b6006805461074e906116fb565b80601f016020809104026020016040519081016040528092919081815260200182805461077a906116fb565b80156107c75780601f1061079c576101008083540402835291602001916107c7565b820191906000526020600020905b8154815290600101906020018083116107aa57829003601f168201915b505050505081565b6001600160a01b0381166000908152600960205260408120546108045760405162461bcd60e51b81526004016103cc906113ba565b6008546001600160a01b03831660009081526009602052604090205461082c90612710611699565b6108369190611679565b90505b919050565b60075460ff1681565b61084f610cf7565b6001600160a01b0316610860610924565b6001600160a01b0316146108865760405162461bcd60e51b81526004016103cc906114bd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b6108de610cf7565b6001600160a01b03166108ef610924565b6001600160a01b0316146109155760405162461bcd60e51b81526004016103cc906114bd565b6007805460ff19166001179055565b6000546001600160a01b031690565b6004546001600160a01b031681565b60075460ff16156109655760405162461bcd60e51b81526004016103cc906115e0565b6005548110156109875760405162461bcd60e51b81526004016103cc9061147c565b6004546001600160a01b0316633af32abf6109a0610cf7565b6040518263ffffffff1660e01b81526004016109bc91906111e9565b60206040518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190611117565b610a285760405162461bcd60e51b81526004016103cc90611568565b60096000610a34610cf7565b6001600160a01b03168152602081019190915260400160002054610aba578060096000610a5f610cf7565b6001600160a01b03168152602081019190915260400160002055600a610a83610cf7565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055610afc565b8060096000610ac7610cf7565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610af69190611661565b90915550505b610b1b610b07610cf7565b6003546001600160a01b0316903084610dae565b8060086000828254610b2d9190611661565b90915550506008546040517f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6916106f991339185916111fd565b610b6f610cf7565b6001600160a01b0316610b80610924565b6001600160a01b031614610ba65760405162461bcd60e51b81526004016103cc906114bd565b6001600160a01b038116610bcc5760405162461bcd60e51b81526004016103cc9061133d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600a8181548110610c3757600080fd5b6000918252602090912001546001600160a01b0316905081565b60006001600160a01b038616610c795760405162461bcd60e51b81526004016103cc90611437565b6001610c8c610c8787610dd5565b610e33565b83868660405160008152602001604052604051610cac94939291906112c8565b6020604051602081039080840390855afa158015610cce573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b600033301415610d4e57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061052e9050565b503390565b610da98363a9059cbb60e01b8484604051602401610d72929190611277565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610e4f565b505050565b610dcf846323b872dd60e01b858585604051602401610d7293929190611253565b50505050565b60006040518060800160405280604381526020016117636043913980516020918201208351848301516040808701518051908601209051610e1695016112a4565b604051602081830303815290604052805190602001209050919050565b6000610e3d61052a565b82604051602001610e169291906111ce565b6000610ea4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ede9092919063ffffffff16565b805190915015610da95780806020019051810190610ec29190611117565b610da95760405162461bcd60e51b81526004016103cc90611617565b6060610eed8484600085610ef7565b90505b9392505050565b606082471015610f195760405162461bcd60e51b81526004016103cc906113f1565b610f2285610fb7565b610f3e5760405162461bcd60e51b81526004016103cc906115a9565b600080866001600160a01b03168587604051610f5a919061117b565b60006040518083038185875af1925050503d8060008114610f97576040519150601f19603f3d011682016040523d82523d6000602084013e610f9c565b606091505b5091509150610fac828286610fbd565b979650505050505050565b3b151590565b60608315610fcc575081610ef0565b825115610fdc5782518084602001fd5b8160405162461bcd60e51b81526004016103cc91906112e6565b80356001600160a01b038116811461083957600080fd5b803560ff8116811461083957600080fd5b60006020828403121561102f578081fd5b610ef082610ff6565b600080600080600060a0868803121561104f578081fd5b61105886610ff6565b9450602086013567ffffffffffffffff80821115611074578283fd5b818801915088601f830112611087578283fd5b8135818111156110995761109961174c565b604051601f8201601f19908116603f011681019083821181831017156110c1576110c161174c565b816040528281528b60208487010111156110d9578586fd5b826020860160208301379182016020018590525095505050604086013592506060860135915061110b6080870161100d565b90509295509295909350565b600060208284031215611128578081fd5b81518015158114610ef0578182fd5b600060208284031215611148578081fd5b5035919050565b600081518084526111678160208601602086016116cf565b601f01601f19169290920160200192915050565b6000825161118d8184602087016116cf565b9190910192915050565b600083516111a98184602088016116cf565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0384811682528316602082015260606040820181905260009061124a9083018461114f565b95945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b93845260208401929092526001600160a01b03166040830152606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b600060208252610ef0602083018461114f565b60208082526024908201527f5354414b494e47203a3a20416d6f756e742067726561746572207468616e207360408201526374616b6560e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000604082015260600190565b60208082526019908201527f5354414b494e47203a3a204e6f7468696e67207374616b656400000000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b60208082526025908201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360408201526424a3a722a960d91b606082015260800190565b60208082526021908201527f5354414b494e47203a3a20416d6f756e74206c657373207468616e207374616b6040820152606560f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636040820152600d60fb1b606082015260800190565b6020808252818101527f5354414b494e47203a3a20546f6f206c6974746c65207374616b65206c656674604082015260600190565b60208082526021908201527f5354414b494e47203a3a207374616b6572206e6f742077686974656c736974656040820152601960fa1b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252601c908201527f5354414b494e47203a3a205374616b696e672069732070617573656400000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6000821982111561167457611674611736565b500190565b60008261169457634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116b3576116b3611736565b500290565b6000828210156116ca576116ca611736565b500390565b60005b838110156116ea5781810151838201526020016116d2565b83811115610dcf5750506000910152565b60028104600182168061170f57607f821691505b6020821081141561173057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c25d4c3e90494cd89b38744c4510e5da6d4a21dec7710e1fe79acf74fa6631cc64736f6c63430008010033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006002410dda2fb88b4d0dc3c1d562f7761191ea8000000000000000000000000044a0487656420fdc15f9ca76dd95f3b8a2ef0baa0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000015506f6c79676f6e2024574f524b205374616b696e670000000000000000000000
-----Decoded View---------------
Arg [0] : _stakeToken (address): 0x6002410dDA2Fb88b4D0dc3c1D562F7761191eA80
Arg [1] : _whitelist (address): 0x44a0487656420FDc15f9CA76dd95F3b8a2ef0Baa
Arg [2] : _minStake (uint256): 1000000000000000000
Arg [3] : _desc (string): Polygon $WORK Staking
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000006002410dda2fb88b4d0dc3c1d562f7761191ea80
Arg [1] : 00000000000000000000000044a0487656420fdc15f9ca76dd95f3b8a2ef0baa
Arg [2] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000015
Arg [5] : 506f6c79676f6e2024574f524b205374616b696e670000000000000000000000
Deployed Bytecode Sourcemap
23212:3996:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3346:1148;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;551:43;;;;;;;;;;;;;:::i;24045:41::-;;;;;;;;;;-1:-1:-1;24045:41:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1561:101::-;;;;;;;;;;;;;:::i;4920:107::-;;;;;;;;;;-1:-1:-1;4920:107:0;;;;;:::i;:::-;;:::i;25565:575::-;;;;;;;;;;-1:-1:-1;25565:575:0;;;;;:::i;:::-;;:::i;:::-;;23622:153;;;;;;;;;;;;;:::i;1670:161::-;;;;;;;;;;;;;:::i;23458:23::-;;;;;;;;;;;;;:::i;23345:25::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;23513:18::-;;;;;;;;;;;;;:::i;26148:339::-;;;;;;;;;;-1:-1:-1;26148:339:0;;;;;:::i;:::-;;:::i;23565:18::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16102:148::-;;;;;;;;;;;;;:::i;23992:26::-;;;;;;;;;;;;;:::i;26497:68::-;;;;;;;;;;;;;:::i;15451:87::-;;;;;;;;;;;;;:::i;23392:24::-;;;;;;;;;;;;;:::i;24649:908::-;;;;;;;;;;-1:-1:-1;24649:908:0;;;;;:::i;:::-;;:::i;16405:244::-;;;;;;;;;;-1:-1:-1;16405:244:0;;;;;:::i;:::-;;:::i;24119:24::-;;;;;;;;;;-1:-1:-1;24119:24:0;;;;;:::i;:::-;;:::i;3346:1148::-;3604:152;;;3547:12;3604:152;;;;;-1:-1:-1;;;;;3642:19:0;;3572:29;3642:19;;;:6;:19;;;;;;;;;3604:152;;;;;;;;;;;3791:45;3649:11;3604:152;3819:4;3825;3831;3791:6;:45::i;:::-;3769:128;;;;-1:-1:-1;;;3769:128:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3986:19:0;;;;;;:6;:19;;;;;;:23;;4008:1;3986:23;:::i;:::-;-1:-1:-1;;;;;3964:19:0;;;;;;:6;:19;;;;;;;:45;;;;4027:126;;;;;3971:11;;4099:10;;4125:17;;4027:126;:::i;:::-;;;;;;;;4264:12;4278:23;4313:4;-1:-1:-1;;;;;4305:18:0;4355:17;4374:11;4338:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4338:48:0;;;;;;;;;;4305:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:134;;;;4416:7;4408:48;;;;-1:-1:-1;;;4408:48:0;;;;;;;:::i;:::-;4476:10;3346:1148;-1:-1:-1;;;;;;;;3346:1148:0:o;551:43::-;;;;;;;;;;;;;;-1:-1:-1;;;551:43:0;;;;:::o;24045:41::-;;;;;;;;;;;;;:::o;1561:101::-;1639:15;;1561:101;;:::o;4920:107::-;-1:-1:-1;;;;;5007:12:0;4973:13;5007:12;;;:6;:12;;;;;;;4920:107::o;25565:575::-;25634:6;:20;25641:12;:10;:12::i;:::-;-1:-1:-1;;;;;25634:20:0;-1:-1:-1;;;;;25634:20:0;;;;;;;;;;;;;25624:6;:30;;25616:79;;;;-1:-1:-1;;;25616:79:0;;;;;;;:::i;:::-;25747:8;;25737:6;25714;:20;25721:12;:10;:12::i;:::-;-1:-1:-1;;;;;25714:20:0;-1:-1:-1;;;;;25714:20:0;;;;;;;;;;;;;:29;;;;:::i;:::-;:41;;:79;;;;25782:6;25759;:20;25766:12;:10;:12::i;:::-;-1:-1:-1;;;;;25759:20:0;-1:-1:-1;;;;;25759:20:0;;;;;;;;;;;;;:29;;;;:::i;:::-;:34;25714:79;25706:124;;;;-1:-1:-1;;;25706:124:0;;;;;;;:::i;:::-;25841:62;25882:12;:10;:12::i;:::-;25856:10;;-1:-1:-1;;;;;25856:10:0;;25896:6;25841:40;:62::i;:::-;25970:6;25947;:20;25954:12;:10;:12::i;:::-;-1:-1:-1;;;;;25947:20:0;-1:-1:-1;;;;;25947:20:0;;;;;;;;;;;;;:29;;;;:::i;:::-;25924:6;:20;25931:12;:10;:12::i;:::-;-1:-1:-1;;;;;25924:20:0;;;;;;;;;;;;-1:-1:-1;25924:20:0;:52;26026:11;;:20;;26040:6;;26026:20;:::i;:::-;26012:11;:34;26090:42;26098:12;:10;:12::i;:::-;26120:11;;26090:42;;;;;26112:6;;26090:42;:::i;:::-;;;;;;;;25565:575;:::o;23622:153::-;23664:111;23622:153;:::o;1670:161::-;1784:9;1670:161;:::o;23458:23::-;;;;:::o;23345:25::-;;;-1:-1:-1;;;;;23345:25:0;;:::o;23513:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26148:339::-;-1:-1:-1;;;;;26240:14:0;;26212:7;26240:14;;;:6;:14;;;;;;26232:56;;;;-1:-1:-1;;;26232:56:0;;;;;;;:::i;:::-;26432:11;;-1:-1:-1;;;;;26407:14:0;;;;;;:6;:14;;;;;;:22;;26424:5;26407:22;:::i;:::-;:36;;;;:::i;:::-;26400:43;;26148:339;;;;:::o;23565:18::-;;;;;;:::o;16102:148::-;15682:12;:10;:12::i;:::-;-1:-1:-1;;;;;15671:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;15671:23:0;;15663:68;;;;-1:-1:-1;;;15663:68:0;;;;;;;:::i;:::-;16209:1:::1;16193:6:::0;;16172:40:::1;::::0;-1:-1:-1;;;;;16193:6:0;;::::1;::::0;16172:40:::1;::::0;16209:1;;16172:40:::1;16240:1;16223:19:::0;;-1:-1:-1;;;;;;16223:19:0::1;::::0;;16102:148::o;23992:26::-;;;;:::o;26497:68::-;15682:12;:10;:12::i;:::-;-1:-1:-1;;;;;15671:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;15671:23:0;;15663:68;;;;-1:-1:-1;;;15663:68:0;;;;;;;:::i;:::-;26544:6:::1;:13:::0;;-1:-1:-1;;26544:13:0::1;26553:4;26544:13;::::0;;26497:68::o;15451:87::-;15497:7;15524:6;-1:-1:-1;;;;;15524:6:0;15451:87;:::o;23392:24::-;;;-1:-1:-1;;;;;23392:24:0;;:::o;24649:908::-;24709:6;;;;24708:7;24700:48;;;;-1:-1:-1;;;24700:48:0;;;;;;;:::i;:::-;24777:8;;24767:6;:18;;24759:64;;;;-1:-1:-1;;;24759:64:0;;;;;;;:::i;:::-;24874:9;;-1:-1:-1;;;;;24874:9:0;24856:42;24899:12;:10;:12::i;:::-;24856:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24834:139;;;;-1:-1:-1;;;24834:139:0;;;;;;;:::i;:::-;25103:6;:20;25110:12;:10;:12::i;:::-;-1:-1:-1;;;;;25103:20:0;;;;;;;;;;;;-1:-1:-1;25103:20:0;;25099:191;;25168:6;25145;:20;25152:12;:10;:12::i;:::-;-1:-1:-1;;;;;25145:20:0;;;;;;;;;;;;-1:-1:-1;25145:20:0;:29;25189:7;25202:12;:10;:12::i;:::-;25189:26;;;;;;;-1:-1:-1;25189:26:0;;;;;;;;;;;;-1:-1:-1;;;;;;25189:26:0;-1:-1:-1;;;;;25189:26:0;;;;;;;;;25099:191;;;25272:6;25248;:20;25255:12;:10;:12::i;:::-;-1:-1:-1;;;;;25248:20:0;-1:-1:-1;;;;;25248:20:0;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;25099:191:0;25302:131;25361:12;:10;:12::i;:::-;25317:10;;-1:-1:-1;;;;;25317:10:0;;25396:4;25416:6;25302:44;:131::i;:::-;25461:6;25446:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;25537:11:0;;25511:38;;;;;;25517:10;;25529:6;;25511:38;:::i;16405:244::-;15682:12;:10;:12::i;:::-;-1:-1:-1;;;;;15671:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;15671:23:0;;15663:68;;;;-1:-1:-1;;;15663:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16494:22:0;::::1;16486:73;;;;-1:-1:-1::0;;;16486:73:0::1;;;;;;;:::i;:::-;16596:6;::::0;;16575:38:::1;::::0;-1:-1:-1;;;;;16575:38:0;;::::1;::::0;16596:6;::::1;::::0;16575:38:::1;::::0;::::1;16624:6;:17:::0;;-1:-1:-1;;;;;;16624:17:0::1;-1:-1:-1::0;;;;;16624:17:0;;;::::1;::::0;;;::::1;::::0;;16405:244::o;24119:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24119:24:0;;-1:-1:-1;24119:24:0;:::o;5035:486::-;5213:4;-1:-1:-1;;;;;5238:20:0;;5230:70;;;;-1:-1:-1;;;5230:70:0;;;;;;;:::i;:::-;5354:159;5382:47;5401:27;5421:6;5401:19;:27::i;:::-;5382:18;:47::i;:::-;5448:4;5471;5494;5354:159;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5331:182:0;:6;-1:-1:-1;;;;;5331:182:0;;5311:202;;5035:486;;;;;;;:::o;26577:628::-;26631:22;26670:10;26692:4;26670:27;26666:508;;;26714:18;26735:8;;26714:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;26774:8:0;26985:17;26979:24;-1:-1:-1;;;;;26953:134:0;;-1:-1:-1;26813:289:0;;-1:-1:-1;26813:289:0;;-1:-1:-1;27151:10:0;26577:628;:::o;19897:177::-;19980:86;20000:5;20030:23;;;20055:2;20059:5;20007:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20007:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;20007:58:0;-1:-1:-1;;;;;;20007:58:0;;;;;;;;;;19980:19;:86::i;:::-;19897:177;;;:::o;20082:205::-;20183:96;20203:5;20233:27;;;20262:4;20268:2;20272:5;20210:68;;;;;;;;;;:::i;20183:96::-;20082:205;;;;:::o;4502:410::-;4612:7;2682:100;;;;;;;;;;;;;;;;;2662:127;;;;;;;4766:12;;4801:11;;;;4845:24;;;;;4835:35;;;;;;4685:204;;;;;;:::i;:::-;;;;;;;;;;;;;4657:247;;;;;;4637:267;;4502:410;;;:::o;2200:258::-;2299:7;2401:20;:18;:20::i;:::-;2423:11;2372:63;;;;;;;;;:::i;22331:761::-;22755:23;22781:69;22809:4;22781:69;;;;;;;;;;;;;;;;;22789:5;-1:-1:-1;;;;;22781:27:0;;;:69;;;;;:::i;:::-;22865:17;;22755:95;;-1:-1:-1;22865:21:0;22861:224;;23007:10;22996:30;;;;;;;;;;;;:::i;:::-;22988:85;;;;-1:-1:-1;;;22988:85:0;;;;;;;:::i;10100:195::-;10203:12;10235:52;10257:6;10265:4;10271:1;10274:12;10235:21;:52::i;:::-;10228:59;;10100:195;;;;;;:::o;11152:530::-;11279:12;11337:5;11312:21;:30;;11304:81;;;;-1:-1:-1;;;11304:81:0;;;;;;;:::i;:::-;11404:18;11415:6;11404:10;:18::i;:::-;11396:60;;;;-1:-1:-1;;;11396:60:0;;;;;;;:::i;:::-;11530:12;11544:23;11571:6;-1:-1:-1;;;;;11571:11:0;11591:5;11599:4;11571:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11529:75;;;;11622:52;11640:7;11649:10;11661:12;11622:17;:52::i;:::-;11615:59;11152:530;-1:-1:-1;;;;;;;11152:530:0:o;7182:422::-;7549:20;7588:8;;;7182:422::o;13692:742::-;13807:12;13836:7;13832:595;;;-1:-1:-1;13867:10:0;13860:17;;13832:595;13981:17;;:21;13977:439;;14244:10;14238:17;14305:15;14292:10;14288:2;14284:19;14277:44;14192:148;14387:12;14380:20;;-1:-1:-1;;;14380:20:0;;;;;;;;:::i;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:158;262:20;;322:4;311:16;;301:27;;291:2;;342:1;339;332:12;357:198;;469:2;457:9;448:7;444:23;440:32;437:2;;;490:6;482;475:22;437:2;518:31;539:9;518:31;:::i;560:1252::-;;;;;;747:3;735:9;726:7;722:23;718:33;715:2;;;769:6;761;754:22;715:2;797:31;818:9;797:31;:::i;:::-;787:41;;879:2;868:9;864:18;851:32;902:18;943:2;935:6;932:14;929:2;;;964:6;956;949:22;929:2;1007:6;996:9;992:22;982:32;;1052:7;1045:4;1041:2;1037:13;1033:27;1023:2;;1079:6;1071;1064:22;1023:2;1120;1107:16;1142:2;1138;1135:10;1132:2;;;1148:18;;:::i;:::-;1223:2;1217:9;1191:2;1277:13;;-1:-1:-1;;1273:22:1;;;1297:2;1269:31;1265:40;1253:53;;;1321:18;;;1341:22;;;1318:46;1315:2;;;1367:18;;:::i;:::-;1407:10;1403:2;1396:22;1442:2;1434:6;1427:18;1482:7;1477:2;1472;1468;1464:11;1460:20;1457:33;1454:2;;;1508:6;1500;1493:22;1454:2;1569;1564;1560;1556:11;1551:2;1543:6;1539:15;1526:46;1592:15;;;1609:2;1588:24;1581:40;;;-1:-1:-1;1596:6:1;-1:-1:-1;;;1693:2:1;1678:18;;1665:32;;-1:-1:-1;1744:2:1;1729:18;;1716:32;;-1:-1:-1;1767:39:1;1801:3;1786:19;;1767:39;:::i;:::-;1757:49;;705:1107;;;;;;;;:::o;1817:297::-;;1937:2;1925:9;1916:7;1912:23;1908:32;1905:2;;;1958:6;1950;1943:22;1905:2;1995:9;1989:16;2048:5;2041:13;2034:21;2027:5;2024:32;2014:2;;2075:6;2067;2060:22;2119:190;;2231:2;2219:9;2210:7;2206:23;2202:32;2199:2;;;2252:6;2244;2237:22;2199:2;-1:-1:-1;2280:23:1;;2189:120;-1:-1:-1;2189:120:1:o;2314:259::-;;2395:5;2389:12;2422:6;2417:3;2410:19;2438:63;2494:6;2487:4;2482:3;2478:14;2471:4;2464:5;2460:16;2438:63;:::i;:::-;2555:2;2534:15;-1:-1:-1;;2530:29:1;2521:39;;;;2562:4;2517:50;;2365:208;-1:-1:-1;;2365:208:1:o;2578:274::-;;2745:6;2739:13;2761:53;2807:6;2802:3;2795:4;2787:6;2783:17;2761:53;:::i;:::-;2830:16;;;;;2715:137;-1:-1:-1;;2715:137:1:o;2857:415::-;;3052:6;3046:13;3068:53;3114:6;3109:3;3102:4;3094:6;3090:17;3068:53;:::i;:::-;3190:2;3186:15;;;;-1:-1:-1;;3182:53:1;3143:16;;;;3168:68;;;3263:2;3252:14;;3022:250;-1:-1:-1;;3022:250:1:o;3277:392::-;-1:-1:-1;;;3535:27:1;;3587:1;3578:11;;3571:27;;;;3623:2;3614:12;;3607:28;3660:2;3651:12;;3525:144::o;3674:203::-;-1:-1:-1;;;;;3838:32:1;;;;3820:51;;3808:2;3793:18;;3775:102::o;4098:353::-;-1:-1:-1;;;;;4326:32:1;;;;4308:51;;4390:2;4375:18;;4368:34;;;;4433:2;4418:18;;4411:34;4296:2;4281:18;;4263:188::o;4456:433::-;-1:-1:-1;;;;;4713:15:1;;;4695:34;;4765:15;;4760:2;4745:18;;4738:43;4817:2;4812;4797:18;;4790:30;;;4456:433;;4837:46;;4864:18;;4856:6;4837:46;:::i;:::-;4829:54;4647:242;-1:-1:-1;;;;;4647:242:1:o;4894:375::-;-1:-1:-1;;;;;5152:15:1;;;5134:34;;5204:15;;;;5199:2;5184:18;;5177:43;5251:2;5236:18;;5229:34;;;;5084:2;5069:18;;5051:218::o;5274:274::-;-1:-1:-1;;;;;5466:32:1;;;;5448:51;;5530:2;5515:18;;5508:34;5436:2;5421:18;;5403:145::o;5903:187::-;6068:14;;6061:22;6043:41;;6031:2;6016:18;;5998:92::o;6095:177::-;6241:25;;;6229:2;6214:18;;6196:76::o;6277:417::-;6508:25;;;6564:2;6549:18;;6542:34;;;;-1:-1:-1;;;;;6612:32:1;6607:2;6592:18;;6585:60;6676:2;6661:18;;6654:34;6495:3;6480:19;;6462:232::o;6699:398::-;6926:25;;;6999:4;6987:17;;;;6982:2;6967:18;;6960:45;7036:2;7021:18;;7014:34;7079:2;7064:18;;7057:34;6913:3;6898:19;;6880:217::o;7102:219::-;;7249:2;7238:9;7231:21;7269:46;7311:2;7300:9;7296:18;7288:6;7269:46;:::i;7552:400::-;7754:2;7736:21;;;7793:2;7773:18;;;7766:30;7832:34;7827:2;7812:18;;7805:62;-1:-1:-1;;;7898:2:1;7883:18;;7876:34;7942:3;7927:19;;7726:226::o;7957:402::-;8159:2;8141:21;;;8198:2;8178:18;;;8171:30;8237:34;8232:2;8217:18;;8210:62;-1:-1:-1;;;8303:2:1;8288:18;;8281:36;8349:3;8334:19;;8131:228::o;8364:352::-;8566:2;8548:21;;;8605:2;8585:18;;;8578:30;8644;8639:2;8624:18;;8617:58;8707:2;8692:18;;8538:178::o;8721:349::-;8923:2;8905:21;;;8962:2;8942:18;;;8935:30;9001:27;8996:2;8981:18;;8974:55;9061:2;9046:18;;8895:175::o;9075:402::-;9277:2;9259:21;;;9316:2;9296:18;;;9289:30;9355:34;9350:2;9335:18;;9328:62;-1:-1:-1;;;9421:2:1;9406:18;;9399:36;9467:3;9452:19;;9249:228::o;9482:401::-;9684:2;9666:21;;;9723:2;9703:18;;;9696:30;9762:34;9757:2;9742:18;;9735:62;-1:-1:-1;;;9828:2:1;9813:18;;9806:35;9873:3;9858:19;;9656:227::o;9888:397::-;10090:2;10072:21;;;10129:2;10109:18;;;10102:30;10168:34;10163:2;10148:18;;10141:62;-1:-1:-1;;;10234:2:1;10219:18;;10212:31;10275:3;10260:19;;10062:223::o;10290:356::-;10492:2;10474:21;;;10511:18;;;10504:30;10570:34;10565:2;10550:18;;10543:62;10637:2;10622:18;;10464:182::o;10651:397::-;10853:2;10835:21;;;10892:2;10872:18;;;10865:30;10931:34;10926:2;10911:18;;10904:62;-1:-1:-1;;;10997:2:1;10982:18;;10975:31;11038:3;11023:19;;10825:223::o;11053:356::-;11255:2;11237:21;;;11274:18;;;11267:30;11333:34;11328:2;11313:18;;11306:62;11400:2;11385:18;;11227:182::o;11414:397::-;11616:2;11598:21;;;11655:2;11635:18;;;11628:30;11694:34;11689:2;11674:18;;11667:62;-1:-1:-1;;;11760:2:1;11745:18;;11738:31;11801:3;11786:19;;11588:223::o;11816:353::-;12018:2;12000:21;;;12057:2;12037:18;;;12030:30;12096:31;12091:2;12076:18;;12069:59;12160:2;12145:18;;11990:179::o;12174:352::-;12376:2;12358:21;;;12415:2;12395:18;;;12388:30;12454;12449:2;12434:18;;12427:58;12517:2;12502:18;;12348:178::o;12531:406::-;12733:2;12715:21;;;12772:2;12752:18;;;12745:30;12811:34;12806:2;12791:18;;12784:62;-1:-1:-1;;;12877:2:1;12862:18;;12855:40;12927:3;12912:19;;12705:232::o;13124:128::-;;13195:1;13191:6;13188:1;13185:13;13182:2;;;13201:18;;:::i;:::-;-1:-1:-1;13237:9:1;;13172:80::o;13257:217::-;;13323:1;13313:2;;-1:-1:-1;;;13348:31:1;;13402:4;13399:1;13392:15;13430:4;13355:1;13420:15;13313:2;-1:-1:-1;13459:9:1;;13303:171::o;13479:168::-;;13585:1;13581;13577:6;13573:14;13570:1;13567:21;13562:1;13555:9;13548:17;13544:45;13541:2;;;13592:18;;:::i;:::-;-1:-1:-1;13632:9:1;;13531:116::o;13652:125::-;;13720:1;13717;13714:8;13711:2;;;13725:18;;:::i;:::-;-1:-1:-1;13762:9:1;;13701:76::o;13782:258::-;13854:1;13864:113;13878:6;13875:1;13872:13;13864:113;;;13954:11;;;13948:18;13935:11;;;13928:39;13900:2;13893:10;13864:113;;;13995:6;13992:1;13989:13;13986:2;;;-1:-1:-1;;14030:1:1;14012:16;;14005:27;13835:205::o;14045:380::-;14130:1;14120:12;;14177:1;14167:12;;;14188:2;;14242:4;14234:6;14230:17;14220:27;;14188:2;14295;14287:6;14284:14;14264:18;14261:38;14258:2;;;14341:10;14336:3;14332:20;14329:1;14322:31;14376:4;14373:1;14366:15;14404:4;14401:1;14394:15;14258:2;;14100:325;;;:::o;14430:127::-;14491:10;14486:3;14482:20;14479:1;14472:31;14522:4;14519:1;14512:15;14546:4;14543:1;14536:15;14562:127;14623:10;14618:3;14614:20;14611:1;14604:31;14654:4;14651:1;14644:15;14678:4;14675:1;14668:15
Swarm Source
ipfs://c25d4c3e90494cd89b38744c4510e5da6d4a21dec7710e1fe79acf74fa6631cc
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.