Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 53 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Burn And Collect... | 11973039 | 1382 days ago | IN | 0 ETH | 0.00571228 | ||||
Burn And Collect... | 11966346 | 1383 days ago | IN | 0 ETH | 0.00563209 | ||||
Burn And Collect... | 11966346 | 1383 days ago | IN | 0 ETH | 0.00838113 | ||||
Burn And Collect... | 11966255 | 1383 days ago | IN | 0 ETH | 0.00543932 | ||||
Burn And Collect... | 11966167 | 1383 days ago | IN | 0 ETH | 0.0185321 | ||||
Lock Shards And ... | 11875144 | 1397 days ago | IN | 9.68417931 ETH | 0.2494586 | ||||
Transfer | 11874861 | 1397 days ago | IN | 0 ETH | 0.00376548 | ||||
Transfer | 11869685 | 1398 days ago | IN | 0 ETH | 0.00233698 | ||||
Transfer | 11869538 | 1398 days ago | IN | 0 ETH | 0.0026694 | ||||
Transfer | 11869538 | 1398 days ago | IN | 0 ETH | 0.00267084 | ||||
Transfer | 11869522 | 1398 days ago | IN | 0 ETH | 0.00399777 | ||||
Transfer | 11869518 | 1398 days ago | IN | 0 ETH | 0.00494689 | ||||
Transfer | 11869516 | 1398 days ago | IN | 0 ETH | 0.00494689 | ||||
Approve | 11746133 | 1417 days ago | IN | 0 ETH | 0.00258854 | ||||
Lock Shards And ... | 11678012 | 1427 days ago | IN | 0.09999 ETH | 0.0610919 | ||||
Burn And Collect... | 11653003 | 1431 days ago | IN | 0 ETH | 0.0030613 | ||||
Lock Shards And ... | 11650545 | 1432 days ago | IN | 0.499995 ETH | 0.04462724 | ||||
Transfer | 11650446 | 1432 days ago | IN | 0 ETH | 0.00156429 | ||||
Approve | 11543423 | 1448 days ago | IN | 0 ETH | 0.01098994 | ||||
Approve | 11451298 | 1462 days ago | IN | 0 ETH | 0.00304267 | ||||
Transfer | 11433580 | 1465 days ago | IN | 0 ETH | 0.00224653 | ||||
Approve | 11432725 | 1465 days ago | IN | 0 ETH | 0.00413258 | ||||
Approve | 11413545 | 1468 days ago | IN | 0 ETH | 0.00163486 | ||||
Approve | 11350046 | 1478 days ago | IN | 0 ETH | 0.00061761 | ||||
Approve | 11251304 | 1493 days ago | IN | 0 ETH | 0.00090826 |
Loading...
Loading
Contract Name:
ShardRegistry
Compiler Version
v0.5.15+commit.6a57276f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-11 */ /* solhint-disable no-mix-tabs-and-spaces */ /* solhint-disable indent */ pragma solidity 0.5.15; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ 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); } /** * @dev Optional functions from the ERC20 standard. */ contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of * these values are immutable: they can only be set once during * construction. */ constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view returns (uint8) { return _decimals; } } /* * @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 GSN 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. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20Mintable}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}; * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for `sender`'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. * * This is internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Destroys `amount` tokens from `account`.`amount` is then deducted * from the caller's allowance. * * See {_burn} and {_approve}. */ function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance")); } } /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev Give an account access to this role. */ function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } /** * @dev Remove an account's access to this role. */ function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } /** * @dev Check if an account has this role. * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract MinterRole is Context { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); Roles.Role private _minters; constructor () internal { _addMinter(_msgSender()); } modifier onlyMinter() { require(isMinter(_msgSender()), "MinterRole: caller does not have the Minter role"); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function addMinter(address account) public onlyMinter { _addMinter(account); } function renounceMinter() public { _removeMinter(_msgSender()); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } } /** * @dev Extension of {ERC20} that adds a set of accounts with the {MinterRole}, * which have permission to mint (create) new tokens as they see fit. * * At construction, the deployer of the contract is the only minter. */ contract ERC20Mintable is ERC20, MinterRole { /** * @dev See {ERC20-_mint}. * * Requirements: * * - the caller must have the {MinterRole}. */ function mint(address account, uint256 amount) public onlyMinter returns (bool) { _mint(account, amount); return true; } } /** * @dev Extension of {ERC20Mintable} that adds a cap to the supply of tokens. */ contract ERC20Capped is ERC20Mintable { uint256 private _cap; /** * @dev Sets the value of the `cap`. This value is immutable, it can only be * set once during construction. */ constructor (uint256 cap) public { require(cap > 0, "ERC20Capped: cap is 0"); _cap = cap; } /** * @dev Returns the cap on the token's total supply. */ function cap() public view returns (uint256) { return _cap; } /** * @dev See {ERC20Mintable-mint}. * * Requirements: * * - `value` must not cause the total supply to go over the cap. */ function _mint(address account, uint256 value) internal { require(totalSupply().add(value) <= _cap, "ERC20Capped: cap exceeded"); super._mint(account, value); } } /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public { _burn(_msgSender(), amount); } /** * @dev See {ERC20-_burnFrom}. */ function burnFrom(address account, uint256 amount) public { _burnFrom(account, amount); } } contract PauserRole is Context { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(_msgSender()); } modifier onlyPauser() { require(isPauser(_msgSender()), "PauserRole: caller does not have the Pauser role"); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function renouncePauser() public { _removePauser(_msgSender()); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ contract Pausable is Context, PauserRole { /** * @dev Emitted when the pause is triggered by a pauser (`account`). */ event Paused(address account); /** * @dev Emitted when the pause is lifted by a pauser (`account`). */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. Assigns the Pauser role * to the deployer. */ constructor () internal { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!_paused, "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(_paused, "Pausable: not paused"); _; } /** * @dev Called by a pauser to pause, triggers stopped state. */ function pause() public onlyPauser whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Called by a pauser to unpause, returns to normal state. */ function unpause() public onlyPauser whenPaused { _paused = false; emit Unpaused(_msgSender()); } } /** * @title Pausable token * @dev ERC20 with pausable transfers and allowances. * * Useful if you want to stop trades until the end of a crowdsale, or have * an emergency switch for freezing all token transfers in the event of a large * bug. */ contract ERC20Pausable is ERC20, Pausable { function transfer(address to, uint256 value) public whenNotPaused returns (bool) { return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) { return super.transferFrom(from, to, value); } function approve(address spender, uint256 value) public whenNotPaused returns (bool) { return super.approve(spender, value); } function increaseAllowance(address spender, uint256 addedValue) public whenNotPaused returns (bool) { return super.increaseAllowance(spender, addedValue); } function decreaseAllowance(address spender, uint256 subtractedValue) public whenNotPaused returns (bool) { return super.decreaseAllowance(spender, subtractedValue); } } /* solhint-disable no-mix-tabs-and-spaces */ /* solhint-disable indent */ interface IShardGovernor { function claimInitialShotgun( address payable initialClaimantAddress, uint initialClaimantBalance ) external payable returns (bool); function transferShards( address recipient, uint amount ) external; function enactShotgun() external; function offererAddress() external view returns (address); function checkLock() external view returns (bool); function checkShotgunState() external view returns (bool); function getNftRegistryAddress() external view returns (address); function getNftTokenIds() external view returns (uint256[] memory); function getOwner() external view returns (address); } /* solhint-disable no-mix-tabs-and-spaces */ /* solhint-disable indent */ interface IShotgunClause { enum ClaimWinner { None, Claimant, Counterclaimant } function counterCommitEther() external payable; function collectEtherProceeds( uint balance, address payable caller ) external; function collectShardProceeds() external; function enactShotgun() external; function deadlineTimestamp() external view returns (uint256); function shotgunEnacted() external view returns (bool); function initialClaimantAddress() external view returns (address); function initialClaimantBalance() external view returns (uint); function initialOfferInWei() external view returns (uint256); function pricePerShardInWei() external view returns (uint256); function claimWinner() external view returns (ClaimWinner); function counterclaimants() external view returns (address[] memory); function getCounterclaimantContribution( address counterclaimant ) external view returns (uint); function counterWeiContributed() external view returns (uint); function getContractBalance() external view returns (uint); function shardGovernor() external view returns (address); function getRequiredWeiForCounterclaim() external view returns (uint); } /** * @title ERC20 base for Shards with additional methods related to governance * @author Joel Hubert (Metalith.io) * @dev OpenZeppelin contracts are not ready for 0.6.0 yet, using 0.5.16. */ contract ShardRegistry is ERC20Detailed, ERC20Capped, ERC20Burnable, ERC20Pausable { IShardGovernor private _shardGovernor; enum ClaimWinner { None, Claimant, Counterclaimant } bool private _shotgunDisabled; constructor ( uint256 cap, string memory name, string memory symbol, bool shotgunDisabled, address shardGovernorAddress ) ERC20Detailed(name, symbol, 18) ERC20Capped(cap) public { _shardGovernor = IShardGovernor(shardGovernorAddress); _shotgunDisabled = shotgunDisabled; } /** * @notice Called to initiate Shotgun claim. Requires Ether. * @dev Transfers claimant's Shards into Governor contract's custody until claim is resolved. * @dev Forwards Ether to Shotgun contract through Governor contract. */ function lockShardsAndClaim() external payable { require( !_shotgunDisabled, "[lockShardsAndClaim] Shotgun disabled" ); require( _shardGovernor.checkLock(), "[lockShardsAndClaim] NFT not locked, Shotgun cannot be triggered" ); require( _shardGovernor.checkShotgunState(), "[lockShardsAndClaim] Shotgun already in progress" ); require( msg.value > 0, "[lockShardsAndClaim] Transaction must send ether to activate Shotgun Clause" ); uint initialClaimantBalance = balanceOf(msg.sender); require( initialClaimantBalance > 0, "[lockShardsAndClaim] Account does not own Shards" ); require( initialClaimantBalance < cap(), "[lockShardsAndClaim] Account owns all Shards" ); transfer(address(_shardGovernor), balanceOf(msg.sender)); (bool success) = _shardGovernor.claimInitialShotgun.value(msg.value)( msg.sender, initialClaimantBalance ); require( success, "[lockShards] Ether forwarding unsuccessful" ); } /** * @notice Called to collect Ether from Shotgun proceeds. Burns Shard holdings. * @dev can be called in both Shotgun outcome scenarios by: - Initial claimant, if they lose the claim to counterclaimants and their Shards are bought out - Counterclaimants, bought out if initial claimant is successful. * @dev initial claimant does not own Shards at this point because they have been custodied in Governor contract at start of Shotgun. * @param shotgunClause address of the relevant Shotgun contract. */ function burnAndCollectEther(address shotgunClause) external { IShotgunClause _shotgunClause = IShotgunClause(shotgunClause); bool enacted = _shotgunClause.shotgunEnacted(); if (!enacted) { _shotgunClause.enactShotgun(); } require( enacted || _shotgunClause.shotgunEnacted(), "[burnAndCollectEther] Shotgun Clause not enacted" ); uint balance = balanceOf(msg.sender); require( balance > 0 || msg.sender == _shotgunClause.initialClaimantAddress(), "[burnAndCollectEther] Account does not own Shards" ); require( uint(_shotgunClause.claimWinner()) == uint(ClaimWinner.Claimant) && msg.sender != _shotgunClause.initialClaimantAddress() || uint(_shotgunClause.claimWinner()) == uint(ClaimWinner.Counterclaimant) && msg.sender == _shotgunClause.initialClaimantAddress(), "[burnAndCollectEther] Account does not have right to collect ether" ); burn(balance); _shotgunClause.collectEtherProceeds(balance, msg.sender); } function shotgunDisabled() external view returns (bool) { return _shotgunDisabled; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"shotgunDisabled","type":"bool"},{"internalType":"address","name":"shardGovernorAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"shotgunClause","type":"address"}],"name":"burnAndCollectEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPauser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lockShardsAndClaim","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"shotgunDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162003c8738038062003c87833981810160405260a08110156200003757600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006257600080fd5b838201915060208201858111156200007957600080fd5b82518660018202830111640100000000821117156200009757600080fd5b8083526020830192505050908051906020019080838360005b83811015620000cd578082015181840152602081019050620000b0565b50505050905090810190601f168015620000fb5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011f57600080fd5b838201915060208201858111156200013657600080fd5b82518660018202830111640100000000821117156200015457600080fd5b8083526020830192505050908051906020019080838360005b838110156200018a5780820151818401526020810190506200016d565b50505050905090810190601f168015620001b85780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919050505084848460128260009080519060200190620001f3929190620005f9565b5081600190805190602001906200020c929190620005f9565b5080600260006101000a81548160ff021916908360ff1602179055505050506200024b6200023f6200036b60201b60201c565b6200037360201b60201c565b60008111620002c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332304361707065643a206361702069732030000000000000000000000081525060200191505060405180910390fd5b8060078190555050620002ea620002de6200036b60201b60201c565b620003d460201b60201c565b6000600960006101000a81548160ff02191690831515021790555080600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600960156101000a81548160ff0219169083151502179055505050505050620006a8565b600033905090565b6200038e8160066200043560201b620030891790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b620003ef8160086200043560201b620030891790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6200044782826200051960201b60201c565b15620004bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620005a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062003c656022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200063c57805160ff19168380011785556200066d565b828001600101855582156200066d579182015b828111156200066c5782518255916020019190600101906200064f565b5b5090506200067c919062000680565b5090565b620006a591905b80821115620006a157600081600090555060010162000687565b5090565b90565b6135ad80620006b86000396000f3fe60806040526004361061019c5760003560e01c806370a08231116100ec578063986502751161008a578063aa271e1a11610064578063aa271e1a146108da578063d54f9d0914610943578063dd62ed3e1461094d578063e6b9e897146109d25761019c565b806398650275146107dd578063a457c2d7146107f4578063a9059cbb146108675761019c565b8063841815ef116100c6578063841815ef146106b65780638456cb59146106e557806395d89b41146106fc578063983b2d561461078c5761019c565b806370a08231146105a557806379cc67901461060a57806382dc1ec4146106655761019c565b8063395093511161015957806342966c681161013357806342966c68146104bb57806346fbf68e146104f65780635c975abb1461055f5780636ef8d66d1461058e5761019c565b806339509351146103be5780633f4ba83a1461043157806340c10f19146104485761019c565b806306fdde03146101a1578063095ea7b31461023157806318160ddd146102a457806323b872dd146102cf578063313ce56714610362578063355274ea14610393575b600080fd5b3480156101ad57600080fd5b506101b6610a23565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b5061028a6004803603604081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac5565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b506102b9610b5c565b6040518082815260200191505060405180910390f35b3480156102db57600080fd5b50610348600480360360608110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b66565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377610bff565b604051808260ff1660ff16815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610c16565b6040518082815260200191505060405180910390f35b3480156103ca57600080fd5b50610417600480360360408110156103e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c20565b604051808215151515815260200191505060405180910390f35b34801561043d57600080fd5b50610446610cb7565b005b34801561045457600080fd5b506104a16004803603604081101561046b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e25565b604051808215151515815260200191505060405180910390f35b3480156104c757600080fd5b506104f4600480360360208110156104de57600080fd5b8101908080359060200190929190505050610ea0565b005b34801561050257600080fd5b506105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb4565b604051808215151515815260200191505060405180910390f35b34801561056b57600080fd5b50610574610ed1565b604051808215151515815260200191505060405180910390f35b34801561059a57600080fd5b506105a3610ee8565b005b3480156105b157600080fd5b506105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610efa565b6040518082815260200191505060405180910390f35b34801561061657600080fd5b506106636004803603604081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f43565b005b34801561067157600080fd5b506106b46004803603602081101561068857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f51565b005b3480156106c257600080fd5b506106cb610fc2565b604051808215151515815260200191505060405180910390f35b3480156106f157600080fd5b506106fa610fd9565b005b34801561070857600080fd5b50610711611148565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610751578082015181840152602081019050610736565b50505050905090810190601f16801561077e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561079857600080fd5b506107db600480360360208110156107af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ea565b005b3480156107e957600080fd5b506107f261125b565b005b34801561080057600080fd5b5061084d6004803603604081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061126d565b604051808215151515815260200191505060405180910390f35b34801561087357600080fd5b506108c06004803603604081101561088a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611304565b604051808215151515815260200191505060405180910390f35b3480156108e657600080fd5b50610929600480360360208110156108fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139b565b604051808215151515815260200191505060405180910390f35b61094b6113b8565b005b34801561095957600080fd5b506109bc6004803603604081101561097057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118a4565b6040518082815260200191505060405180910390f35b3480156109de57600080fd5b50610a21600480360360208110156109f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192b565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050905090565b6000600960009054906101000a900460ff1615610b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610b548383611fc1565b905092915050565b6000600554905090565b6000600960009054906101000a900460ff1615610beb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bf6848484611fdf565b90509392505050565b6000600260009054906101000a900460ff16905090565b6000600754905090565b6000600960009054906101000a900460ff1615610ca5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610caf83836120b8565b905092915050565b610cc7610cc261216b565b610eb4565b610d1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061321c6030913960400191505060405180910390fd5b600960009054906101000a900460ff16610d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610de261216b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610e37610e3261216b565b61139b565b610e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061334a6030913960400191505060405180910390fd5b610e968383612173565b6001905092915050565b610eb1610eab61216b565b82612212565b50565b6000610eca8260086123cc90919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b610ef8610ef361216b565b6124aa565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f4d8282612504565b5050565b610f61610f5c61216b565b610eb4565b610fb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061321c6030913960400191505060405180910390fd5b610fbf816125d3565b50565b6000600960159054906101000a900460ff16905090565b610fe9610fe461216b565b610eb4565b61103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061321c6030913960400191505060405180910390fd5b600960009054906101000a900460ff16156110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861110561216b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111e05780601f106111b5576101008083540402835291602001916111e0565b820191906000526020600020905b8154815290600101906020018083116111c357829003601f168201915b5050505050905090565b6111fa6111f561216b565b61139b565b61124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061334a6030913960400191505060405180910390fd5b6112588161262d565b50565b61126b61126661216b565b612687565b565b6000600960009054906101000a900460ff16156112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6112fc83836126e1565b905092915050565b6000600960009054906101000a900460ff1615611389576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61139383836127ae565b905092915050565b60006113b18260066123cc90919063ffffffff16565b9050919050565b600960159054906101000a900460ff161561141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061329f6025913960400191505060405180910390fd5b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7a97c7f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148657600080fd5b505afa15801561149a573d6000803e3d6000fd5b505050506040513d60208110156114b057600080fd5b8101908080519060200190929190505050611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061339b6040913960400191505060405180910390fd5b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b871a57e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561157e57600080fd5b505afa158015611592573d6000803e3d6000fd5b505050506040513d60208110156115a857600080fd5b810190808051906020019092919050505061160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061331a6030913960400191505060405180910390fd5b60003411611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604b8152602001806134dd604b913960600191505060405180910390fd5b600061167233610efa565b9050600081116116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806131ca6030913960400191505060405180910390fd5b6116d5610c16565b811061172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613528602c913960400191505060405180910390fd5b611760600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175b33610efa565b611304565b506000600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cdc34013433856040518463ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506020604051808303818588803b15801561180c57600080fd5b505af1158015611820573d6000803e3d6000fd5b50505050506040513d602081101561183757600080fd5b81019080805190602001909291905050509050806118a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061346a602a913960400191505060405180910390fd5b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16634faf28386040518163ffffffff1660e01b815260040160206040518083038186803b15801561197857600080fd5b505afa15801561198c573d6000803e3d6000fd5b505050506040513d60208110156119a257600080fd5b8101908080519060200190929190505050905080611a1b578173ffffffffffffffffffffffffffffffffffffffff1663767c56a26040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a0257600080fd5b505af1158015611a16573d6000803e3d6000fd5b505050505b8080611aa457508173ffffffffffffffffffffffffffffffffffffffff16634faf28386040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6857600080fd5b505afa158015611a7c573d6000803e3d6000fd5b505050506040513d6020811015611a9257600080fd5b81019080805190602001909291905050505b611af9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806132ea6030913960400191505060405180910390fd5b6000611b0433610efa565b90506000811180611bc057508273ffffffffffffffffffffffffffffffffffffffff16636dce6c5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d6020811015611b8057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603181526020018061326e6031913960400191505060405180910390fd5b60016002811115611c2257fe5b8373ffffffffffffffffffffffffffffffffffffffff1663237297a46040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6857600080fd5b505afa158015611c7c573d6000803e3d6000fd5b505050506040513d6020811015611c9257600080fd5b81019080805190602001909291905050506002811115611cae57fe5b148015611d6757508273ffffffffffffffffffffffffffffffffffffffff16636dce6c5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cfc57600080fd5b505afa158015611d10573d6000803e3d6000fd5b505050506040513d6020811015611d2657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80611ebe5750600280811115611d7957fe5b8373ffffffffffffffffffffffffffffffffffffffff1663237297a46040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbf57600080fd5b505afa158015611dd3573d6000803e3d6000fd5b505050506040513d6020811015611de957600080fd5b81019080805190602001909291905050506002811115611e0557fe5b148015611ebd57508273ffffffffffffffffffffffffffffffffffffffff16636dce6c5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5357600080fd5b505afa158015611e67573d6000803e3d6000fd5b505050506040513d6020811015611e7d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b5b611f13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806131656042913960600191505060405180910390fd5b611f1c81610ea0565b8273ffffffffffffffffffffffffffffffffffffffff16632012517682336040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015611fa357600080fd5b505af1158015611fb7573d6000803e3d6000fd5b5050505050505050565b6000611fd5611fce61216b565b84846127cc565b6001905092915050565b6000611fec8484846129c3565b6120ad84611ff861216b565b6120a8856040518060600160405280602881526020016133db60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061205e61216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b6127cc565b600190509392505050565b60006121616120c561216b565b8461215c85600460006120d661216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3d90919063ffffffff16565b6127cc565b6001905092915050565b600033905090565b60075461219082612182610b5c565b612d3d90919063ffffffff16565b1115612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b61220e8282612dc5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612298576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134496021913960400191505060405180910390fd5b612304816040518060600160405280602281526020016131fa60229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061235c81600554612f8290919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134036022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6124be816008612fcc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61250e8282612212565b6125cf8261251a61216b565b6125ca8460405180606001604052806024815260200161342560249139600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061258061216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b6127cc565b5050565b6125e781600861308990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b61264181600661308990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61269b816006612fcc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60006127a46126ee61216b565b8461279f85604051806060016040528060258152602001613554602591396004600061271861216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b6127cc565b6001905092915050565b60006127c26127bb61216b565b84846129c3565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612852576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134b96024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061324c6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134946025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806131a76023913960400191505060405180910390fd5b612b3b816040518060600160405280602681526020016132c460269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bd081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cef578082015181840152602081019050612cd4565b50505050905090810190601f168015612d1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612dbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612e7d81600554612d3d90919063ffffffff16565b600581905550612ed581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000612fc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c7d565b905092915050565b612fd682826123cc565b61302b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061337a6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61309382826123cc565b15613106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe5b6275726e416e64436f6c6c65637445746865725d204163636f756e7420646f6573206e6f74206861766520726967687420746f20636f6c6c65637420657468657245524332303a207472616e7366657220746f20746865207a65726f20616464726573735b6c6f636b536861726473416e64436c61696d5d204163636f756e7420646f6573206e6f74206f776e2053686172647345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6545524332303a20617070726f766520746f20746865207a65726f20616464726573735b6275726e416e64436f6c6c65637445746865725d204163636f756e7420646f6573206e6f74206f776e205368617264735b6c6f636b536861726473416e64436c61696d5d2053686f7467756e2064697361626c656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655b6275726e416e64436f6c6c65637445746865725d2053686f7467756e20436c61757365206e6f7420656e61637465645b6c6f636b536861726473416e64436c61696d5d2053686f7467756e20616c726561647920696e2070726f67726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c655b6c6f636b536861726473416e64436c61696d5d204e4654206e6f74206c6f636b65642c2053686f7467756e2063616e6e6f742062652074726967676572656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f20616464726573735b6c6f636b5368617264735d20457468657220666f7277617264696e6720756e7375636365737366756c45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735b6c6f636b536861726473416e64436c61696d5d205472616e73616374696f6e206d7573742073656e6420657468657220746f2061637469766174652053686f7467756e20436c617573655b6c6f636b536861726473416e64436c61696d5d204163636f756e74206f776e7320616c6c2053686172647345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582068264ae2faa90a4ab1026f44d3a36ca9e19386202c1d1faf34cd7917e6a8b5fb64736f6c634300050f0032526f6c65733a206163636f756e7420697320746865207a65726f206164647265737300000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e14f3c4368771212b13faf9996c10ee478bafb1000000000000000000000000000000000000000000000000000000000000000f4a4f59574f524c44202d20444f4e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004444f4e4b00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061019c5760003560e01c806370a08231116100ec578063986502751161008a578063aa271e1a11610064578063aa271e1a146108da578063d54f9d0914610943578063dd62ed3e1461094d578063e6b9e897146109d25761019c565b806398650275146107dd578063a457c2d7146107f4578063a9059cbb146108675761019c565b8063841815ef116100c6578063841815ef146106b65780638456cb59146106e557806395d89b41146106fc578063983b2d561461078c5761019c565b806370a08231146105a557806379cc67901461060a57806382dc1ec4146106655761019c565b8063395093511161015957806342966c681161013357806342966c68146104bb57806346fbf68e146104f65780635c975abb1461055f5780636ef8d66d1461058e5761019c565b806339509351146103be5780633f4ba83a1461043157806340c10f19146104485761019c565b806306fdde03146101a1578063095ea7b31461023157806318160ddd146102a457806323b872dd146102cf578063313ce56714610362578063355274ea14610393575b600080fd5b3480156101ad57600080fd5b506101b6610a23565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b5061028a6004803603604081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac5565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b506102b9610b5c565b6040518082815260200191505060405180910390f35b3480156102db57600080fd5b50610348600480360360608110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b66565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377610bff565b604051808260ff1660ff16815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610c16565b6040518082815260200191505060405180910390f35b3480156103ca57600080fd5b50610417600480360360408110156103e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c20565b604051808215151515815260200191505060405180910390f35b34801561043d57600080fd5b50610446610cb7565b005b34801561045457600080fd5b506104a16004803603604081101561046b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e25565b604051808215151515815260200191505060405180910390f35b3480156104c757600080fd5b506104f4600480360360208110156104de57600080fd5b8101908080359060200190929190505050610ea0565b005b34801561050257600080fd5b506105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb4565b604051808215151515815260200191505060405180910390f35b34801561056b57600080fd5b50610574610ed1565b604051808215151515815260200191505060405180910390f35b34801561059a57600080fd5b506105a3610ee8565b005b3480156105b157600080fd5b506105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610efa565b6040518082815260200191505060405180910390f35b34801561061657600080fd5b506106636004803603604081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f43565b005b34801561067157600080fd5b506106b46004803603602081101561068857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f51565b005b3480156106c257600080fd5b506106cb610fc2565b604051808215151515815260200191505060405180910390f35b3480156106f157600080fd5b506106fa610fd9565b005b34801561070857600080fd5b50610711611148565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610751578082015181840152602081019050610736565b50505050905090810190601f16801561077e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561079857600080fd5b506107db600480360360208110156107af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ea565b005b3480156107e957600080fd5b506107f261125b565b005b34801561080057600080fd5b5061084d6004803603604081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061126d565b604051808215151515815260200191505060405180910390f35b34801561087357600080fd5b506108c06004803603604081101561088a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611304565b604051808215151515815260200191505060405180910390f35b3480156108e657600080fd5b50610929600480360360208110156108fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139b565b604051808215151515815260200191505060405180910390f35b61094b6113b8565b005b34801561095957600080fd5b506109bc6004803603604081101561097057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118a4565b6040518082815260200191505060405180910390f35b3480156109de57600080fd5b50610a21600480360360208110156109f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192b565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050905090565b6000600960009054906101000a900460ff1615610b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610b548383611fc1565b905092915050565b6000600554905090565b6000600960009054906101000a900460ff1615610beb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bf6848484611fdf565b90509392505050565b6000600260009054906101000a900460ff16905090565b6000600754905090565b6000600960009054906101000a900460ff1615610ca5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610caf83836120b8565b905092915050565b610cc7610cc261216b565b610eb4565b610d1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061321c6030913960400191505060405180910390fd5b600960009054906101000a900460ff16610d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610de261216b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610e37610e3261216b565b61139b565b610e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061334a6030913960400191505060405180910390fd5b610e968383612173565b6001905092915050565b610eb1610eab61216b565b82612212565b50565b6000610eca8260086123cc90919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b610ef8610ef361216b565b6124aa565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f4d8282612504565b5050565b610f61610f5c61216b565b610eb4565b610fb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061321c6030913960400191505060405180910390fd5b610fbf816125d3565b50565b6000600960159054906101000a900460ff16905090565b610fe9610fe461216b565b610eb4565b61103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061321c6030913960400191505060405180910390fd5b600960009054906101000a900460ff16156110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861110561216b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111e05780601f106111b5576101008083540402835291602001916111e0565b820191906000526020600020905b8154815290600101906020018083116111c357829003601f168201915b5050505050905090565b6111fa6111f561216b565b61139b565b61124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061334a6030913960400191505060405180910390fd5b6112588161262d565b50565b61126b61126661216b565b612687565b565b6000600960009054906101000a900460ff16156112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6112fc83836126e1565b905092915050565b6000600960009054906101000a900460ff1615611389576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61139383836127ae565b905092915050565b60006113b18260066123cc90919063ffffffff16565b9050919050565b600960159054906101000a900460ff161561141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061329f6025913960400191505060405180910390fd5b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7a97c7f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148657600080fd5b505afa15801561149a573d6000803e3d6000fd5b505050506040513d60208110156114b057600080fd5b8101908080519060200190929190505050611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061339b6040913960400191505060405180910390fd5b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b871a57e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561157e57600080fd5b505afa158015611592573d6000803e3d6000fd5b505050506040513d60208110156115a857600080fd5b810190808051906020019092919050505061160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061331a6030913960400191505060405180910390fd5b60003411611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604b8152602001806134dd604b913960600191505060405180910390fd5b600061167233610efa565b9050600081116116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806131ca6030913960400191505060405180910390fd5b6116d5610c16565b811061172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613528602c913960400191505060405180910390fd5b611760600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661175b33610efa565b611304565b506000600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cdc34013433856040518463ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506020604051808303818588803b15801561180c57600080fd5b505af1158015611820573d6000803e3d6000fd5b50505050506040513d602081101561183757600080fd5b81019080805190602001909291905050509050806118a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061346a602a913960400191505060405180910390fd5b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16634faf28386040518163ffffffff1660e01b815260040160206040518083038186803b15801561197857600080fd5b505afa15801561198c573d6000803e3d6000fd5b505050506040513d60208110156119a257600080fd5b8101908080519060200190929190505050905080611a1b578173ffffffffffffffffffffffffffffffffffffffff1663767c56a26040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a0257600080fd5b505af1158015611a16573d6000803e3d6000fd5b505050505b8080611aa457508173ffffffffffffffffffffffffffffffffffffffff16634faf28386040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6857600080fd5b505afa158015611a7c573d6000803e3d6000fd5b505050506040513d6020811015611a9257600080fd5b81019080805190602001909291905050505b611af9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806132ea6030913960400191505060405180910390fd5b6000611b0433610efa565b90506000811180611bc057508273ffffffffffffffffffffffffffffffffffffffff16636dce6c5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d6020811015611b8057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603181526020018061326e6031913960400191505060405180910390fd5b60016002811115611c2257fe5b8373ffffffffffffffffffffffffffffffffffffffff1663237297a46040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6857600080fd5b505afa158015611c7c573d6000803e3d6000fd5b505050506040513d6020811015611c9257600080fd5b81019080805190602001909291905050506002811115611cae57fe5b148015611d6757508273ffffffffffffffffffffffffffffffffffffffff16636dce6c5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cfc57600080fd5b505afa158015611d10573d6000803e3d6000fd5b505050506040513d6020811015611d2657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80611ebe5750600280811115611d7957fe5b8373ffffffffffffffffffffffffffffffffffffffff1663237297a46040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbf57600080fd5b505afa158015611dd3573d6000803e3d6000fd5b505050506040513d6020811015611de957600080fd5b81019080805190602001909291905050506002811115611e0557fe5b148015611ebd57508273ffffffffffffffffffffffffffffffffffffffff16636dce6c5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5357600080fd5b505afa158015611e67573d6000803e3d6000fd5b505050506040513d6020811015611e7d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b5b611f13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806131656042913960600191505060405180910390fd5b611f1c81610ea0565b8273ffffffffffffffffffffffffffffffffffffffff16632012517682336040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015611fa357600080fd5b505af1158015611fb7573d6000803e3d6000fd5b5050505050505050565b6000611fd5611fce61216b565b84846127cc565b6001905092915050565b6000611fec8484846129c3565b6120ad84611ff861216b565b6120a8856040518060600160405280602881526020016133db60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061205e61216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b6127cc565b600190509392505050565b60006121616120c561216b565b8461215c85600460006120d661216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3d90919063ffffffff16565b6127cc565b6001905092915050565b600033905090565b60075461219082612182610b5c565b612d3d90919063ffffffff16565b1115612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b61220e8282612dc5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612298576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134496021913960400191505060405180910390fd5b612304816040518060600160405280602281526020016131fa60229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061235c81600554612f8290919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134036022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6124be816008612fcc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61250e8282612212565b6125cf8261251a61216b565b6125ca8460405180606001604052806024815260200161342560249139600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061258061216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b6127cc565b5050565b6125e781600861308990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b61264181600661308990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61269b816006612fcc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60006127a46126ee61216b565b8461279f85604051806060016040528060258152602001613554602591396004600061271861216b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b6127cc565b6001905092915050565b60006127c26127bb61216b565b84846129c3565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612852576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134b96024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061324c6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134946025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806131a76023913960400191505060405180910390fd5b612b3b816040518060600160405280602681526020016132c460269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c7d9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bd081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cef578082015181840152602081019050612cd4565b50505050905090810190601f168015612d1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612dbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612e7d81600554612d3d90919063ffffffff16565b600581905550612ed581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000612fc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c7d565b905092915050565b612fd682826123cc565b61302b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061337a6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61309382826123cc565b15613106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe5b6275726e416e64436f6c6c65637445746865725d204163636f756e7420646f6573206e6f74206861766520726967687420746f20636f6c6c65637420657468657245524332303a207472616e7366657220746f20746865207a65726f20616464726573735b6c6f636b536861726473416e64436c61696d5d204163636f756e7420646f6573206e6f74206f776e2053686172647345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6545524332303a20617070726f766520746f20746865207a65726f20616464726573735b6275726e416e64436f6c6c65637445746865725d204163636f756e7420646f6573206e6f74206f776e205368617264735b6c6f636b536861726473416e64436c61696d5d2053686f7467756e2064697361626c656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655b6275726e416e64436f6c6c65637445746865725d2053686f7467756e20436c61757365206e6f7420656e61637465645b6c6f636b536861726473416e64436c61696d5d2053686f7467756e20616c726561647920696e2070726f67726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c655b6c6f636b536861726473416e64436c61696d5d204e4654206e6f74206c6f636b65642c2053686f7467756e2063616e6e6f742062652074726967676572656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f20616464726573735b6c6f636b5368617264735d20457468657220666f7277617264696e6720756e7375636365737366756c45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735b6c6f636b536861726473416e64436c61696d5d205472616e73616374696f6e206d7573742073656e6420657468657220746f2061637469766174652053686f7467756e20436c617573655b6c6f636b536861726473416e64436c61696d5d204163636f756e74206f776e7320616c6c2053686172647345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582068264ae2faa90a4ab1026f44d3a36ca9e19386202c1d1faf34cd7917e6a8b5fb64736f6c634300050f0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e14f3c4368771212b13faf9996c10ee478bafb1000000000000000000000000000000000000000000000000000000000000000f4a4f59574f524c44202d20444f4e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004444f4e4b00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : cap (uint256): 100000000000000000000000
Arg [1] : name (string): JOYWORLD - DONK
Arg [2] : symbol (string): DONK
Arg [3] : shotgunDisabled (bool): False
Arg [4] : shardGovernorAddress (address): 0x4E14f3c4368771212b13Faf9996c10Ee478BaFB1
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000152d02c7e14af6800000
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000004e14f3c4368771212b13faf9996c10ee478bafb1
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [6] : 4a4f59574f524c44202d20444f4e4b0000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 444f4e4b00000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
29702:3413:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3520:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3520:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3520:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26963:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26963:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26963:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12494:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12494:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26795:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26795:160:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26795:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4372:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4372:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22286:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22286:75:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27111:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27111:170:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27111:170:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;26218:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26218:120:0;;;:::i;:::-;;21637:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21637:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21637:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23096:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23096:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23096:83:0;;;;;;;;;;;;;;;;;:::i;:::-;;23787:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23787:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23787:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25425:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25425:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;24004:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24004:79:0;;;:::i;:::-;;12648:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12648:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12648:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23241:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23241:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23241:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23904:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23904:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23904:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;33023:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33023:89:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;26005:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26005:118:0;;;:::i;:::-;;3722:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3722:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3722:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20759:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20759:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20759:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;20859:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20859:79:0;;;:::i;:::-;;27289:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27289:180:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27289:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;26655:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26655:132:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26655:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20642:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20642:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20642:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;30470:1017;;;:::i;:::-;;13192:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13192:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13192:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32025:993;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32025:993:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32025:993:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3520:83;3557:13;3590:5;3583:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3520:83;:::o;26963:140::-;27042:4;25662:7;;;;;;;;;;;25661:8;25653:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27066:29;27080:7;27089:5;27066:13;:29::i;:::-;27059:36;;26963:140;;;;:::o;12494:91::-;12538:7;12565:12;;12558:19;;12494:91;:::o;26795:160::-;26888:4;25662:7;;;;;;;;;;;25661:8;25653:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26912:35;26931:4;26937:2;26941:5;26912:18;:35::i;:::-;26905:42;;26795:160;;;;;:::o;4372:83::-;4413:5;4438:9;;;;;;;;;;;4431:16;;4372:83;:::o;22286:75::-;22322:7;22349:4;;22342:11;;22286:75;:::o;27111:170::-;27205:4;25662:7;;;;;;;;;;;25661:8;25653:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27229:44;27253:7;27262:10;27229:23;:44::i;:::-;27222:51;;27111:170;;;;:::o;26218:120::-;23684:22;23693:12;:10;:12::i;:::-;23684:8;:22::i;:::-;23676:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25861:7;;;;;;;;;;;25853:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26287:5;26277:7;;:15;;;;;;;;;;;;;;;;;;26308:22;26317:12;:10;:12::i;:::-;26308:22;;;;;;;;;;;;;;;;;;;;;;26218:120::o;21637:143::-;21711:4;20539:22;20548:12;:10;:12::i;:::-;20539:8;:22::i;:::-;20531:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21728:22;21734:7;21743:6;21728:5;:22::i;:::-;21768:4;21761:11;;21637:143;;;;:::o;23096:83::-;23144:27;23150:12;:10;:12::i;:::-;23164:6;23144:5;:27::i;:::-;23096:83;:::o;23787:109::-;23843:4;23867:21;23880:7;23867:8;:12;;:21;;;;:::i;:::-;23860:28;;23787:109;;;:::o;25425:78::-;25464:4;25488:7;;;;;;;;;;;25481:14;;25425:78;:::o;24004:79::-;24048:27;24062:12;:10;:12::i;:::-;24048:13;:27::i;:::-;24004:79::o;12648:110::-;12705:7;12732:9;:18;12742:7;12732:18;;;;;;;;;;;;;;;;12725:25;;12648:110;;;:::o;23241:103::-;23310:26;23320:7;23329:6;23310:9;:26::i;:::-;23241:103;;:::o;23904:92::-;23684:22;23693:12;:10;:12::i;:::-;23684:8;:22::i;:::-;23676:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23969:19;23980:7;23969:10;:19::i;:::-;23904:92;:::o;33023:89::-;33073:4;33091:16;;;;;;;;;;;33084:23;;33023:89;:::o;26005:118::-;23684:22;23693:12;:10;:12::i;:::-;23684:8;:22::i;:::-;23676:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25662:7;;;;;;;;;;;25661:8;25653:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26075:4;26065:7;;:14;;;;;;;;;;;;;;;;;;26095:20;26102:12;:10;:12::i;:::-;26095:20;;;;;;;;;;;;;;;;;;;;;;26005:118::o;3722:87::-;3761:13;3794:7;3787:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3722:87;:::o;20759:92::-;20539:22;20548:12;:10;:12::i;:::-;20539:8;:22::i;:::-;20531:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20824:19;20835:7;20824:10;:19::i;:::-;20759:92;:::o;20859:79::-;20903:27;20917:12;:10;:12::i;:::-;20903:13;:27::i;:::-;20859:79::o;27289:180::-;27388:4;25662:7;;;;;;;;;;;25661:8;25653:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27412:49;27436:7;27445:15;27412:23;:49::i;:::-;27405:56;;27289:180;;;;:::o;26655:132::-;26730:4;25662:7;;;;;;;;;;;25661:8;25653:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26754:25;26769:2;26773:5;26754:14;:25::i;:::-;26747:32;;26655:132;;;;:::o;20642:109::-;20698:4;20722:21;20735:7;20722:8;:12;;:21;;;;:::i;:::-;20715:28;;20642:109;;;:::o;30470:1017::-;30537:16;;;;;;;;;;;30536:17;30522:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30622:14;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30622:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30622:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;30622:26:0;;;;;;;;;;;;;;;;30609:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30743:14;;;;;;;;;;;:32;;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30743:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30743:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;30743:34:0;;;;;;;;;;;;;;;;30730:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30868:1;30856:9;:13;30843:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30962:27;30992:21;31002:10;30992:9;:21::i;:::-;30962:51;;31056:1;31031:22;:26;31018:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31161:5;:3;:5::i;:::-;31136:22;:30;31123:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31228:56;31245:14;;;;;;;;;;;31262:21;31272:10;31262:9;:21::i;:::-;31228:8;:56::i;:::-;;31290:12;31306:14;;;;;;;;;;;:34;;;31347:9;31363:10;31375:22;31306:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31306:96:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31306:96:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;31306:96:0;;;;;;;;;;;;;;;;31289:113;;31420:7;31407:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30470:1017;;:::o;13192:134::-;13264:7;13291:11;:18;13303:5;13291:18;;;;;;;;;;;;;;;:27;13310:7;13291:27;;;;;;;;;;;;;;;;13284:34;;13192:134;;;;:::o;32025:993::-;32091:29;32138:13;32091:61;;32157:12;32172:14;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32172:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32172:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32172:31:0;;;;;;;;;;;;;;;;32157:46;;32213:7;32208:55;;32228:14;:27;;;:29;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32228:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32228:29:0;;;;32208:55;32280:7;:42;;;;32291:14;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32291:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32291:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32291:31:0;;;;;;;;;;;;;;;;32280:42;32267:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32388:12;32403:21;32413:10;32403:9;:21::i;:::-;32388:36;;32452:1;32442:7;:11;:68;;;;32471:14;:37;;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32471:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32471:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32471:39:0;;;;;;;;;;;;;;;;32457:53;;:10;:53;;;32442:68;32429:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32633:20;32628:26;;;;;;;;32595:14;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32595:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32595:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32595:28:0;;;;;;;;;;;;;;;;32590:34;;;;;;;;:64;:125;;;;;32676:14;:37;;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32676:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32676:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32676:39:0;;;;;;;;;;;;;;;;32662:53;;:10;:53;;;;32590:125;:265;;;;32766:27;32761:33;;;;;;;;32728:14;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32728:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32728:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32728:28:0;;;;;;;;;;;;;;;;32723:34;;;;;;;;:71;:132;;;;;32816:14;:37;;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32816:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32816:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32816:39:0;;;;;;;;;;;;;;;;32802:53;;:10;:53;;;32723:132;32590:265;32577:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32939:13;32944:7;32939:4;:13::i;:::-;32957:14;:35;;;32993:7;33002:10;32957:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32957:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32957:56:0;;;;32025:993;;;;:::o;13473:152::-;13539:4;13556:39;13565:12;:10;:12::i;:::-;13579:7;13588:6;13556:8;:39::i;:::-;13613:4;13606:11;;13473:152;;;;:::o;14097:304::-;14186:4;14203:36;14213:6;14221:9;14232:6;14203:9;:36::i;:::-;14250:121;14259:6;14267:12;:10;:12::i;:::-;14281:89;14319:6;14281:89;;;;;;;;;;;;;;;;;:11;:19;14293:6;14281:19;;;;;;;;;;;;;;;:33;14301:12;:10;:12::i;:::-;14281:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14250:8;:121::i;:::-;14389:4;14382:11;;14097:304;;;;;:::o;14810:210::-;14890:4;14907:83;14916:12;:10;:12::i;:::-;14930:7;14939:50;14978:10;14939:11;:25;14951:12;:10;:12::i;:::-;14939:25;;;;;;;;;;;;;;;:34;14965:7;14939:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;14907:8;:83::i;:::-;15008:4;15001:11;;14810:210;;;;:::o;5247:98::-;5292:15;5327:10;5320:17;;5247:98;:::o;22534:183::-;22637:4;;22609:24;22627:5;22609:13;:11;:13::i;:::-;:17;;:24;;;;:::i;:::-;:32;;22601:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22682:27;22694:7;22703:5;22682:11;:27::i;:::-;22534:183;;:::o;17666:348::-;17761:1;17742:21;;:7;:21;;;;17734:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17835:68;17858:6;17835:68;;;;;;;;;;;;;;;;;:9;:18;17845:7;17835:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;17814:9;:18;17824:7;17814:18;;;;;;;;;;;;;;;:89;;;;17929:24;17946:6;17929:12;;:16;;:24;;;;:::i;:::-;17914:12;:39;;;;17995:1;17969:37;;17978:7;17969:37;;;17999:6;17969:37;;;;;;;;;;;;;;;;;;17666:348;;:::o;20002:203::-;20074:4;20118:1;20099:21;;:7;:21;;;;20091:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20177:4;:11;;:20;20189:7;20177:20;;;;;;;;;;;;;;;;;;;;;;;;;20170:27;;20002:203;;;;:::o;24221:130::-;24281:24;24297:7;24281:8;:15;;:24;;;;:::i;:::-;24335:7;24321:22;;;;;;;;;;;;24221:130;:::o;18978:232::-;19050:22;19056:7;19065:6;19050:5;:22::i;:::-;19083:119;19092:7;19101:12;:10;:12::i;:::-;19115:86;19154:6;19115:86;;;;;;;;;;;;;;;;;:11;:20;19127:7;19115:20;;;;;;;;;;;;;;;:34;19136:12;:10;:12::i;:::-;19115:34;;;;;;;;;;;;;;;;:38;;:86;;;;;:::i;:::-;19083:8;:119::i;:::-;18978:232;;:::o;24091:122::-;24148:21;24161:7;24148:8;:12;;:21;;;;:::i;:::-;24197:7;24185:20;;;;;;;;;;;;24091:122;:::o;20946:::-;21003:21;21016:7;21003:8;:12;;:21;;;;:::i;:::-;21052:7;21040:20;;;;;;;;;;;;20946:122;:::o;21076:130::-;21136:24;21152:7;21136:8;:15;;:24;;;;:::i;:::-;21190:7;21176:22;;;;;;;;;;;;21076:130;:::o;15523:261::-;15608:4;15625:129;15634:12;:10;:12::i;:::-;15648:7;15657:96;15696:15;15657:96;;;;;;;;;;;;;;;;;:11;:25;15669:12;:10;:12::i;:::-;15657:25;;;;;;;;;;;;;;;:34;15683:7;15657:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15625:8;:129::i;:::-;15772:4;15765:11;;15523:261;;;;:::o;12971:158::-;13040:4;13057:42;13067:12;:10;:12::i;:::-;13081:9;13092:6;13057:9;:42::i;:::-;13117:4;13110:11;;12971:158;;;;:::o;18454:338::-;18565:1;18548:19;;:5;:19;;;;18540:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18646:1;18627:21;;:7;:21;;;;18619:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18730:6;18700:11;:18;18712:5;18700:18;;;;;;;;;;;;;;;:27;18719:7;18700:27;;;;;;;;;;;;;;;:36;;;;18768:7;18752:32;;18761:5;18752:32;;;18777:6;18752:32;;;;;;;;;;;;;;;;;;18454:338;;;:::o;16274:471::-;16390:1;16372:20;;:6;:20;;;;16364:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16474:1;16453:23;;:9;:23;;;;16445:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16549;16571:6;16549:71;;;;;;;;;;;;;;;;;:9;:17;16559:6;16549:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;16529:9;:17;16539:6;16529:17;;;;;;;;;;;;;;;:91;;;;16654:32;16679:6;16654:9;:20;16664:9;16654:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16631:9;:20;16641:9;16631:20;;;;;;;;;;;;;;;:55;;;;16719:9;16702:35;;16711:6;16702:35;;;16730:6;16702:35;;;;;;;;;;;;;;;;;;16274:471;;;:::o;7346:192::-;7432:7;7465:1;7460;:6;;7468:12;7452:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7452:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7492:9;7508:1;7504;:5;7492:17;;7529:1;7522:8;;;7346:192;;;;;:::o;6417:181::-;6475:7;6495:9;6511:1;6507;:5;6495:17;;6536:1;6531;:6;;6523:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6589:1;6582:8;;;6417:181;;;;:::o;17026:308::-;17121:1;17102:21;;:7;:21;;;;17094:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17187:24;17204:6;17187:12;;:16;;:24;;;;:::i;:::-;17172:12;:39;;;;17243:30;17266:6;17243:9;:18;17253:7;17243:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;17222:9;:18;17232:7;17222:18;;;;;;;;;;;;;;;:51;;;;17310:7;17289:37;;17306:1;17289:37;;;17319:6;17289:37;;;;;;;;;;;;;;;;;;17026:308;;:::o;6873:136::-;6931:7;6958:43;6962:1;6965;6958:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6951:50;;6873:136;;;;:::o;19724:183::-;19804:18;19808:4;19814:7;19804:3;:18::i;:::-;19796:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19894:5;19871:4;:11;;:20;19883:7;19871:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19724:183;;:::o;19466:178::-;19544:18;19548:4;19554:7;19544:3;:18::i;:::-;19543:19;19535:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19632:4;19609;:11;;:20;19621:7;19609:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19466:178;;:::o
Swarm Source
bzzr://68264ae2faa90a4ab1026f44d3a36ca9e19386202c1d1faf34cd7917e6a8b5fb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.