More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,632 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unlock | 19069502 | 202 days ago | IN | 0 ETH | 0.00086355 | ||||
Unlock | 12527884 | 1171 days ago | IN | 0 ETH | 0.00093488 | ||||
Lock | 12527317 | 1171 days ago | IN | 0 ETH | 0.00049562 | ||||
Withdraw | 12087720 | 1239 days ago | IN | 0 ETH | 0.00378078 | ||||
Withdraw | 12087706 | 1239 days ago | IN | 0 ETH | 0.00369799 | ||||
Withdraw | 12081788 | 1240 days ago | IN | 0 ETH | 0.00237334 | ||||
Unlock | 12073728 | 1241 days ago | IN | 0 ETH | 0.0028344 | ||||
Unlock | 12068948 | 1242 days ago | IN | 0 ETH | 0.003543 | ||||
Unlock | 12068787 | 1242 days ago | IN | 0 ETH | 0.00589478 | ||||
Unlock | 12068675 | 1242 days ago | IN | 0 ETH | 0.005418 | ||||
Unlock | 12068606 | 1242 days ago | IN | 0 ETH | 0.005418 | ||||
Withdraw | 11961034 | 1258 days ago | IN | 0 ETH | 0.00184899 | ||||
Withdraw | 11960838 | 1258 days ago | IN | 0 ETH | 0.00583908 | ||||
Unlock | 11947199 | 1260 days ago | IN | 0 ETH | 0.00498456 | ||||
Withdraw | 11336606 | 1354 days ago | IN | 0 ETH | 0.00055194 | ||||
Unlock | 11295481 | 1361 days ago | IN | 0 ETH | 0.00086688 | ||||
Lock | 11251301 | 1367 days ago | IN | 0 ETH | 0.00046762 | ||||
Withdraw | 11095561 | 1391 days ago | IN | 0 ETH | 0.00055194 | ||||
Lock | 11063127 | 1396 days ago | IN | 0 ETH | 0.00046762 | ||||
Lock | 11063127 | 1396 days ago | IN | 0 ETH | 0.00046762 | ||||
Lock | 11063125 | 1396 days ago | IN | 0 ETH | 0.00027582 | ||||
Unlock | 11063125 | 1396 days ago | IN | 0 ETH | 0.00086688 | ||||
Lock | 11062859 | 1396 days ago | IN | 0 ETH | 0.00046762 | ||||
Lock | 11062848 | 1396 days ago | IN | 0 ETH | 0.00046762 | ||||
Unlock | 11062848 | 1396 days ago | IN | 0 ETH | 0.00086688 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
GNTDeposit
Compiler Version
v0.5.11+commit.c082d0b4
Contract Source Code (Solidity Multiple files format)
pragma solidity 0.5.11; import "./Ownable.sol"; import "./GolemNetworkTokenBatching.sol"; import "./ReceivingContract.sol"; contract GNTDeposit is ReceivingContract, Ownable { using SafeMath for uint256; address public concent; address public coldwallet; // Deposit will be locked for this much longer after unlocking and before // it's possible to withdraw. uint256 public withdrawal_delay; // Contract will not accept new deposits if the total amount of tokens it // holds would exceed this amount. uint256 public maximum_deposits_total; // Maximum deposit value per user. uint256 public maximum_deposit_amount; // Limit amount of tokens Concent can reimburse within a single day. uint256 public daily_reimbursement_limit; uint256 private current_reimbursement_day; uint256 private current_reimbursement_sum; GolemNetworkTokenBatching public token; // owner => amount mapping (address => uint256) public balances; // owner => timestamp after which withdraw is possible // | 0 if locked mapping (address => uint256) public locked_until; event ConcentTransferred(address indexed _previousConcent, address indexed _newConcent); event ColdwalletTransferred(address indexed _previousColdwallet, address indexed _newColdwallet); event Deposit(address indexed _owner, uint256 _amount); event Withdraw(address indexed _from, address indexed _to, uint256 _amount); event Lock(address indexed _owner); event Unlock(address indexed _owner); event Burn(address indexed _who, uint256 _amount); event ReimburseForSubtask(address indexed _requestor, address indexed _provider, uint256 _amount, bytes32 _subtask_id); event ReimburseForNoPayment(address indexed _requestor, address indexed _provider, uint256 _amount, uint256 _closure_time); event ReimburseForVerificationCosts(address indexed _from, uint256 _amount, bytes32 _subtask_id); event ReimburseForCommunication(address indexed _from, uint256 _amount); constructor( GolemNetworkTokenBatching _token, address _concent, address _coldwallet, uint256 _withdrawal_delay ) public { token = _token; concent = _concent; coldwallet = _coldwallet; withdrawal_delay = _withdrawal_delay; } // modifiers modifier onlyUnlocked() { require(isUnlocked(msg.sender), "Deposit is not unlocked"); _; } modifier onlyConcent() { require(msg.sender == concent, "Concent only method"); _; } modifier onlyToken() { require(msg.sender == address(token), "Token only method"); _; } // views function balanceOf(address _owner) external view returns (uint256) { return balances[_owner]; } function isLocked(address _owner) external view returns (bool) { return locked_until[_owner] == 0; } function isTimeLocked(address _owner) external view returns (bool) { return locked_until[_owner] > block.timestamp; } function isUnlocked(address _owner) public view returns (bool) { return locked_until[_owner] != 0 && locked_until[_owner] < block.timestamp; } function getTimelock(address _owner) external view returns (uint256) { return locked_until[_owner]; } function isDepositPossible(address _owner, uint256 _amount) external view returns (bool) { return !_isTotalDepositsLimitHit(_amount) && !_isMaximumDepositLimitHit(_owner, _amount); } // management function transferConcent(address _newConcent) onlyOwner external { require(_newConcent != address(0), "New concent address cannot be 0"); emit ConcentTransferred(concent, _newConcent); concent = _newConcent; } function transferColdwallet(address _newColdwallet) onlyOwner external { require(_newColdwallet != address(0), "New coldwallet address cannot be 0"); emit ColdwalletTransferred(coldwallet, _newColdwallet); coldwallet = _newColdwallet; } function setMaximumDepositsTotal(uint256 _value) onlyOwner external { maximum_deposits_total = _value; } function setMaximumDepositAmount(uint256 _value) onlyOwner external { maximum_deposit_amount = _value; } function setDailyReimbursementLimit(uint256 _value) onlyOwner external { daily_reimbursement_limit = _value; } // deposit API function unlock() external { locked_until[msg.sender] = block.timestamp + withdrawal_delay; emit Unlock(msg.sender); } function lock() external { locked_until[msg.sender] = 0; emit Lock(msg.sender); } function onTokenReceived(address _from, uint256 _amount, bytes calldata /* _data */) external onlyToken { // Pass 0 as the amount since this check happens post transfer, thus // amount is already accounted for in the balance require(!_isTotalDepositsLimitHit(0), "Total deposits limit hit"); require(!_isMaximumDepositLimitHit(_from, _amount), "Maximum deposit limit hit"); balances[_from] += _amount; locked_until[_from] = 0; emit Deposit(_from, _amount); } function withdraw(address _to) onlyUnlocked external { uint256 _amount = balances[msg.sender]; balances[msg.sender] = 0; locked_until[msg.sender] = 0; require(token.transfer(_to, _amount)); emit Withdraw(msg.sender, _to, _amount); } function burn(address _whom, uint256 _amount) onlyConcent external { require(balances[_whom] >= _amount, "Not enough funds to burn"); balances[_whom] -= _amount; if (balances[_whom] == 0) { locked_until[_whom] = 0; } token.burn(_amount); emit Burn(_whom, _amount); } function reimburseForSubtask( address _requestor, address _provider, uint256 _amount, bytes32 _subtask_id, uint8 _v, bytes32 _r, bytes32 _s, uint256 _reimburse_amount ) onlyConcent external { require(_isValidSignature(_requestor, _provider, _amount, _subtask_id, _v, _r, _s), "Invalid signature"); require(_reimburse_amount <= _amount, "Reimburse amount exceeds allowed"); _reimburse(_requestor, _provider, _reimburse_amount); emit ReimburseForSubtask(_requestor, _provider, _reimburse_amount, _subtask_id); } function reimburseForNoPayment( address _requestor, address _provider, uint256[] calldata _amount, bytes32[] calldata _subtask_id, uint8[] calldata _v, bytes32[] calldata _r, bytes32[] calldata _s, uint256 _reimburse_amount, uint256 _closure_time ) onlyConcent external { require(_amount.length == _subtask_id.length); require(_amount.length == _v.length); require(_amount.length == _r.length); require(_amount.length == _s.length); // Can't merge the following two loops as we exceed the number of veriables on the stack // and the compiler gives: CompilerError: Stack too deep, try removing local variables. for (uint256 i = 0; i < _amount.length; i++) { require(_isValidSignature(_requestor, _provider, _amount[i], _subtask_id[i], _v[i], _r[i], _s[i]), "Invalid signature"); } uint256 total_amount = 0; for (uint256 i = 0; i < _amount.length; i++) { total_amount += _amount[i]; } require(_reimburse_amount <= total_amount, "Reimburse amount exceeds total"); _reimburse(_requestor, _provider, _reimburse_amount); emit ReimburseForNoPayment(_requestor, _provider, _reimburse_amount, _closure_time); } function reimburseForVerificationCosts( address _from, uint256 _amount, bytes32 _subtask_id, uint8 _v, bytes32 _r, bytes32 _s, uint256 _reimburse_amount ) onlyConcent external { require(_isValidSignature(_from, address(this), _amount, _subtask_id, _v, _r, _s), "Invalid signature"); require(_reimburse_amount <= _amount, "Reimburse amount exceeds allowed"); _reimburse(_from, coldwallet, _reimburse_amount); emit ReimburseForVerificationCosts(_from, _reimburse_amount, _subtask_id); } function reimburseForCommunication( address _from, uint256 _amount ) onlyConcent external { _reimburse(_from, coldwallet, _amount); emit ReimburseForCommunication(_from, _amount); } // internals function _reimburse(address _from, address _to, uint256 _amount) private { require(balances[_from] >= _amount, "Not enough funds to reimburse"); if (daily_reimbursement_limit != 0) { if (current_reimbursement_day != block.timestamp / 1 days) { current_reimbursement_day = block.timestamp / 1 days; current_reimbursement_sum = 0; } require(current_reimbursement_sum + _amount <= daily_reimbursement_limit, "Daily reimbursement limit hit"); current_reimbursement_sum += _amount; } balances[_from] -= _amount; if (balances[_from] == 0) { locked_until[_from] = 0; } require(token.transfer(_to, _amount)); } function _isTotalDepositsLimitHit(uint256 _amount) private view returns (bool) { if (maximum_deposits_total == 0) { return false; } return token.balanceOf(address(this)).add(_amount) > maximum_deposits_total; } function _isMaximumDepositLimitHit(address _owner, uint256 _amount) private view returns (bool) { if (maximum_deposit_amount == 0) { return false; } return balances[_owner].add(_amount) > maximum_deposit_amount; } function _isValidSignature( address _from, address _to, uint256 _amount, bytes32 _subtask_id, uint8 _v, bytes32 _r, bytes32 _s ) public view returns (bool) { // Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf) // describes what constitutes a valid signature. if (uint256(_s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return false; } if (_v != 27 && _v != 28) { return false; } return _from == ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n124", address(this), _from, _to, _amount, _subtask_id)), _v, _r, _s); } }
pragma solidity ^0.5.3; import "./ERC20Basic.sol"; import "./SafeMath.sol"; /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } }
pragma solidity ^0.5.3; import "./BasicToken.sol"; /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is BasicToken { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { require(_value <= balances[msg.sender]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure address burner = msg.sender; balances[burner] = balances[burner].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(burner, _value); emit Transfer(burner, address(0), _value); } }
pragma solidity ^0.5.3; import "./ERC20Basic.sol"; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); }
pragma solidity ^0.5.3; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); }
// Copyright 2018 Golem Factory // Licensed under the GNU General Public License v3. See the LICENSE file. pragma solidity ^0.5.3; import "./ReceivingContract.sol"; import "./TokenProxy.sol"; /// GolemNetworkTokenBatching can be treated as an upgraded GolemNetworkToken. /// 1. It is fully ERC20 compliant (GNT is missing approve and transferFrom) /// 2. It implements slightly modified ERC677 (transferAndCall method) /// 3. It provides batchTransfer method - an optimized way of executing multiple transfers /// /// On how to convert between GNT and GNTB see TokenProxy documentation. contract GolemNetworkTokenBatching is TokenProxy { string public constant name = "Golem Network Token Batching"; string public constant symbol = "GNTB"; uint8 public constant decimals = 18; event BatchTransfer(address indexed from, address indexed to, uint256 value, uint64 closureTime); constructor(ERC20Basic _gntToken) TokenProxy(_gntToken) public { } function batchTransfer(bytes32[] calldata payments, uint64 closureTime) external { require(block.timestamp >= closureTime); uint balance = balances[msg.sender]; for (uint i = 0; i < payments.length; ++i) { // A payment contains compressed data: // first 96 bits (12 bytes) is a value, // following 160 bits (20 bytes) is an address. bytes32 payment = payments[i]; address addr = address(uint256(payment)); require(addr != address(0) && addr != msg.sender); uint v = uint(payment) / 2**160; require(v <= balance); balances[addr] += v; balance -= v; emit BatchTransfer(msg.sender, addr, v, closureTime); } balances[msg.sender] = balance; } function transferAndCall(address to, uint256 value, bytes calldata data) external { // Transfer always returns true so no need to check return value transfer(to, value); // No need to check whether recipient is a contract, this method is // supposed to used only with contract recipients ReceivingContract(to).onTokenReceived(msg.sender, value, data); } }
pragma solidity ^0.5.3; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @return the address of the owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Owner only method"); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return msg.sender == _owner; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity 0.5.11; /// Contracts implementing this interface are compatible with /// GolemNetworkTokenBatching's transferAndCall method contract ReceivingContract { function onTokenReceived(address _from, uint _value, bytes calldata _data) external; }
pragma solidity ^0.5.3; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
pragma solidity ^0.5.3; import "./BasicToken.sol"; import "./ERC20.sol"; /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * 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 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { require(allowed[msg.sender][_spender] == 0); allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } }
// Copyright 2018 Golem Factory // Licensed under the GNU General Public License v3. See the LICENSE file. pragma solidity ^0.5.3; import "./BurnableToken.sol"; import "./StandardToken.sol"; /// The Gate is a contract with unique address to allow a token holder /// (called "User") to transfer tokens from original Token to the Proxy. /// /// The Gate does not know who its User is. The User-Gate relationship is /// managed by the Proxy. contract Gate { ERC20Basic private TOKEN; address private PROXY; /// Gates are to be created by the TokenProxy. constructor(ERC20Basic _token, address _proxy) public { TOKEN = _token; PROXY = _proxy; } /// Transfer requested amount of tokens from Gate to Proxy address. /// Only the Proxy can request this and should request transfer of all /// tokens. function transferToProxy(uint256 _value) public { require(msg.sender == PROXY); require(TOKEN.transfer(PROXY, _value)); } } /// The Proxy for existing tokens implementing a subset of ERC20 interface. /// /// This contract creates a token Proxy contract to extend the original Token /// contract interface. The Proxy requires only transfer() and balanceOf() /// methods from ERC20 to be implemented in the original Token contract. /// /// All migrated tokens are in Proxy's account on the Token side and distributed /// among Users on the Proxy side. /// /// For an user to migrate some amount of ones tokens from Token to Proxy /// the procedure is as follows. /// /// 1. Create an individual Gate for migration. The Gate address will be /// reported with the GateOpened event and accessible by getGateAddress(). /// 2. Transfer tokens to be migrated to the Gate address. /// 3. Execute Proxy.transferFromGate() to finalize the migration. /// /// In the step 3 the User's tokens are going to be moved from the Gate to /// the User's balance in the Proxy. contract TokenProxy is StandardToken, BurnableToken { ERC20Basic public TOKEN; mapping(address => address) private gates; event GateOpened(address indexed gate, address indexed user); event Mint(address indexed to, uint256 amount); constructor(ERC20Basic _token) public { TOKEN = _token; } function getGateAddress(address _user) external view returns (address) { return gates[_user]; } /// Create a new migration Gate for the User. function openGate() external { address user = msg.sender; // Do not allow creating more than one Gate per User. require(gates[user] == address(0)); // Create new Gate. address gate = address(new Gate(TOKEN, address(this))); // Remember User - Gate relationship. gates[user] = gate; emit GateOpened(gate, user); } function transferFromGate() external { address user = msg.sender; address gate = gates[user]; // Make sure the User's Gate exists. require(gate != address(0)); uint256 value = TOKEN.balanceOf(gate); Gate(gate).transferToProxy(value); // Handle the information about the amount of migrated tokens. // This is a trusted information becase it comes from the Gate. totalSupply_ += value; balances[user] += value; emit Mint(user, value); } function withdraw(uint256 _value) external { withdrawTo(_value, msg.sender); } function withdrawTo(uint256 _value, address _destination) public { require(_value > 0 && _destination != address(0)); burn(_value); TOKEN.transfer(_destination, _value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coldwallet","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"isUnlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setDailyReimbursementLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"concent","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newColdwallet","type":"address"}],"name":"transferColdwallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_subtask_id","type":"bytes32"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"name":"_isValidSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_requestor","type":"address"},{"internalType":"address","name":"_provider","type":"address"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"},{"internalType":"bytes32[]","name":"_subtask_id","type":"bytes32[]"},{"internalType":"uint8[]","name":"_v","type":"uint8[]"},{"internalType":"bytes32[]","name":"_r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"_s","type":"bytes32[]"},{"internalType":"uint256","name":"_reimburse_amount","type":"uint256"},{"internalType":"uint256","name":"_closure_time","type":"uint256"}],"name":"reimburseForNoPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_requestor","type":"address"},{"internalType":"address","name":"_provider","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_subtask_id","type":"bytes32"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"},{"internalType":"uint256","name":"_reimburse_amount","type":"uint256"}],"name":"reimburseForSubtask","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"reimburseForCommunication","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maximum_deposit_amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_whom","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"daily_reimbursement_limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_subtask_id","type":"bytes32"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"},{"internalType":"uint256","name":"_reimburse_amount","type":"uint256"}],"name":"reimburseForVerificationCosts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"isTimeLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onTokenReceived","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getTimelock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"locked_until","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximum_deposits_total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaximumDepositAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"isDepositPossible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newConcent","type":"address"}],"name":"transferConcent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawal_delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaximumDepositsTotal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract GolemNetworkTokenBatching","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract GolemNetworkTokenBatching","name":"_token","type":"address"},{"internalType":"address","name":"_concent","type":"address"},{"internalType":"address","name":"_coldwallet","type":"address"},{"internalType":"uint256","name":"_withdrawal_delay","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_previousConcent","type":"address"},{"indexed":true,"internalType":"address","name":"_newConcent","type":"address"}],"name":"ConcentTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_previousColdwallet","type":"address"},{"indexed":true,"internalType":"address","name":"_newColdwallet","type":"address"}],"name":"ColdwalletTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Deposit","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":"_amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_who","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_requestor","type":"address"},{"indexed":true,"internalType":"address","name":"_provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_subtask_id","type":"bytes32"}],"name":"ReimburseForSubtask","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_requestor","type":"address"},{"indexed":true,"internalType":"address","name":"_provider","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_closure_time","type":"uint256"}],"name":"ReimburseForNoPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_subtask_id","type":"bytes32"}],"name":"ReimburseForVerificationCosts","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReimburseForCommunication","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161345b38038061345b8339818101604052608081101561003357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a383600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060038190555050505050613260806101fb6000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80639dc29fac1161011a578063d2fcbc86116100ad578063eaa26f0f1161007c578063eaa26f0f14610cb4578063f0c2993514610cd2578063f2fde38b14610d00578063f83d08ba14610d44578063fc0c546a14610d4e57610206565b8063d2fcbc8614610bbe578063d70a6f3114610bdc578063d750663a14610c0a578063da4339fb14610c7057610206565b8063b8cc2751116100e9578063b8cc275114610a0f578063bed2554214610a6b578063bf1e799b14610b0e578063c8c36d9114610b6657610206565b80639dc29fac14610916578063a69df4b514610964578063a74fba351461096e578063ab89083e1461098c57610206565b80636b5bc1d91161019d578063720140f71161016c578063720140f71461079a5780638da5cb5b1461083e5780638f32d59b14610888578063959347f9146108aa5780639a0654af146108f857610206565b80636b5bc1d9146104655780636d38e1941461051657806370a0823114610738578063715018a61461079057610206565b806341b98c76116101d957806341b98c761461033757806349d71d64146103815780634a4fbeec146103c557806351cff8d91461042157610206565b806327e235e31461020b5780632812d4a7146102635780632bbf532a146102ad57806333024f2f14610309575b600080fd5b61024d6004803603602081101561022157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d98565b6040518082815260200191505060405180910390f35b61026b610db0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ef600480360360208110156102c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd6565b604051808215151515815260200191505060405180910390f35b6103356004803603602081101561031f57600080fd5b8101908080359060200190929190505050610e6c565b005b61033f610ef0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c36004803603602081101561039757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f16565b005b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b6104636004803603602081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611121565b005b6104fc600480360360e081101561047b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506113c0565b604051808215151515815260200191505060405180910390f35b610736600480360361012081101561052d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561058a57600080fd5b82018360208201111561059c57600080fd5b803590602001918460208302840111640100000000831117156105be57600080fd5b9091929391929390803590602001906401000000008111156105df57600080fd5b8201836020820111156105f157600080fd5b8035906020019184602083028401116401000000008311171561061357600080fd5b90919293919293908035906020019064010000000081111561063457600080fd5b82018360208201111561064657600080fd5b8035906020019184602083028401116401000000008311171561066857600080fd5b90919293919293908035906020019064010000000081111561068957600080fd5b82018360208201111561069b57600080fd5b803590602001918460208302840111640100000000831117156106bd57600080fd5b9091929391929390803590602001906401000000008111156106de57600080fd5b8201836020820111156106f057600080fd5b8035906020019184602083028401116401000000008311171561071257600080fd5b909192939192939080359060200190929190803590602001909291905050506115ba565b005b61077a6004803603602081101561074e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118fc565b6040518082815260200191505060405180910390f35b610798611945565b005b61083c60048036036101008110156107b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611a7e565b005b610846611cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610890611ce3565b604051808215151515815260200191505060405180910390f35b6108f6600480360360408110156108c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d3a565b005b610900611e7c565b6040518082815260200191505060405180910390f35b6109626004803603604081101561092c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e82565b005b61096c6121b4565b005b610976612241565b6040518082815260200191505060405180910390f35b610a0d600480360360e08110156109a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612247565b005b610a5160048036036020811015610a2557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061248d565b604051808215151515815260200191505060405180910390f35b610b0c60048036036060811015610a8157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ac857600080fd5b820183602082011115610ada57600080fd5b80359060200191846001830284011164010000000083111715610afc57600080fd5b90919293919293905050506124d8565b005b610b5060048036036020811015610b2457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061277b565b6040518082815260200191505060405180910390f35b610ba860048036036020811015610b7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127c4565b6040518082815260200191505060405180910390f35b610bc66127dc565b6040518082815260200191505060405180910390f35b610c0860048036036020811015610bf257600080fd5b81019080803590602001909291905050506127e2565b005b610c5660048036036040811015610c2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612866565b604051808215151515815260200191505060405180910390f35b610cb260048036036020811015610c8657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061288d565b005b610cbc612a6a565b6040518082815260200191505060405180910390f35b610cfe60048036036020811015610ce857600080fd5b8101908080359060200190929190505050612a70565b005b610d4260048036036020811015610d1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612af4565b005b610d4c612b7a565b005b610d56612c04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600a6020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015610e65575042600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b9050919050565b610e74611ce3565b610ee6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b8060068190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f1e611ce3565b610f90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061320a6022913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd481b54ec9e3303e3da2afeb2c846617b7323310964d978697eb7103a4931a3960405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054149050919050565b61112a33610dd6565b61119c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4465706f736974206973206e6f7420756e6c6f636b656400000000000000000081525060200191505060405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b505050506040513d602081101561133d57600080fd5b810190808051906020019092919050505061135757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040518082815260200191505060405180910390a35050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c11156113f657600090506115af565b601b8460ff161415801561140e5750601c8460ff1614155b1561141c57600090506115af565b6001308989898960405160200180807f19457468657265756d205369676e6564204d6573736167653a0a313234000000815250601d018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001955050505050506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611574573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161490505b979650505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461167d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b898990508c8c90501461168f57600080fd5b878790508c8c9050146116a157600080fd5b858590508c8c9050146116b357600080fd5b838390508c8c9050146116c557600080fd5b60008090505b8c8c90508110156117c1576117428f8f8f8f858181106116e757fe5b905060200201358e8e868181106116fa57fe5b905060200201358d8d8781811061170d57fe5b9050602002013560ff168c8c8881811061172357fe5b905060200201358b8b8981811061173657fe5b905060200201356113c0565b6117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b80806001019150506116cb565b50600080905060008090505b8d8d90508110156117fc578d8d828181106117e457fe5b905060200201358201915080806001019150506117cd565b5080831115611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5265696d627572736520616d6f756e74206578636565647320746f74616c000081525060200191505060405180910390fd5b61187e8f8f85612c2a565b8d73ffffffffffffffffffffffffffffffffffffffff168f73ffffffffffffffffffffffffffffffffffffffff167f6433c762be670c059832a954094d4df564def570aeb0e06ccd4afc421e4a28e98585604051808381526020018281526020019250505060405180910390a3505050505050505050505050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61194d611ce3565b6119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b611b50888888888888886113c0565b611bc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b85811115611c38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5265696d627572736520616d6f756e74206578636565647320616c6c6f77656481525060200191505060405180910390fd5b611c43888883612c2a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f5e73339b88b13a2882423746a5db6cbef7a80b5cfc43dfeaf6a54ff944f6a9988388604051808381526020018281526020019250505060405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b611e2a82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612c2a565b8173ffffffffffffffffffffffffffffffffffffffff167fcf75897e335ee7cbbb77a9f74363c795656ae55bf4b942935c84f78bf1944367826040518082815260200191505060405180910390a25050565b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ffa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f7567682066756e647320746f206275726e000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156120d5576000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561214a57600080fd5b505af115801561215e573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b6003544201600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057260405160405180910390a2565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461230a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b612319873088888888886113c0565b61238b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b85811115612401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5265696d627572736520616d6f756e74206578636565647320616c6c6f77656481525060200191505060405180910390fd5b61242e87600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612c2a565b8673ffffffffffffffffffffffffffffffffffffffff167fd87ab4af3bd64a3a6c4b8396a3a2aaad6419190934db64d5b7be20a81a5eaab18287604051808381526020018281526020019250505060405180910390a250505050505050565b600042600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461259b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f546f6b656e206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b6125a56000612f74565b15612618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f546f74616c206465706f73697473206c696d697420686974000000000000000081525060200191505060405180910390fd5b6126228484613081565b15612695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d6178696d756d206465706f736974206c696d6974206869740000000000000081525060200191505060405180910390fd5b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040518082815260200191505060405180910390a250505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b6020528060005260406000206000915090505481565b60045481565b6127ea611ce3565b61285c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b8060058190555050565b600061287182612f74565b15801561288557506128838383613081565b155b905092915050565b612895611ce3565b612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4e657720636f6e63656e7420616464726573732063616e6e6f7420626520300081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f292b497b32d3eb12f29f3c91da4a94d9f1089689e94283fd458149503598d68060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b612a78611ce3565b612aea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b8060048190555050565b612afc611ce3565b612b6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b612b77816130f5565b50565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91360405160405180910390a2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6f7420656e6f7567682066756e647320746f207265696d627572736500000081525060200191505060405180910390fd5b600060065414612da757620151804281612cf557fe5b0460075414612d1a57620151804281612d0a57fe5b0460078190555060006008819055505b60065481600854011115612d96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4461696c79207265696d62757273656d656e74206c696d69742068697400000081525060200191505060405180910390fd5b806008600082825401925050819055505b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612e82576000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612f2b57600080fd5b505af1158015612f3f573d6000803e3d6000fd5b505050506040513d6020811015612f5557600080fd5b8101908080519060200190929190505050612f6f57600080fd5b505050565b6000806004541415612f89576000905061307c565b60045461307883600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561302f57600080fd5b505afa158015613043573d6000803e3d6000fd5b505050506040513d602081101561305957600080fd5b81019080805190602001909291905050506131ed90919063ffffffff16565b1190505b919050565b600080600554141561309657600090506130ef565b6005546130eb83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131ed90919063ffffffff16565b1190505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561312f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156131ff57fe5b809150509291505056fe4e657720636f6c6477616c6c657420616464726573732063616e6e6f742062652030a265627a7a723158200965dca43c7991cc404282cc15449c1fc29cb7645ebc2733f6e362e9512533ff64736f6c634300050b0032000000000000000000000000a7dfb33234098c66fde44907e918dad70a3f211c0000000000000000000000009a7dcf55e2caaa85026cf65e5375a89d430f48e70000000000000000000000009a7dcf55e2caaa85026cf65e5375a89d430f48e7000000000000000000000000000000000000000000000000000000000002a300
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102065760003560e01c80639dc29fac1161011a578063d2fcbc86116100ad578063eaa26f0f1161007c578063eaa26f0f14610cb4578063f0c2993514610cd2578063f2fde38b14610d00578063f83d08ba14610d44578063fc0c546a14610d4e57610206565b8063d2fcbc8614610bbe578063d70a6f3114610bdc578063d750663a14610c0a578063da4339fb14610c7057610206565b8063b8cc2751116100e9578063b8cc275114610a0f578063bed2554214610a6b578063bf1e799b14610b0e578063c8c36d9114610b6657610206565b80639dc29fac14610916578063a69df4b514610964578063a74fba351461096e578063ab89083e1461098c57610206565b80636b5bc1d91161019d578063720140f71161016c578063720140f71461079a5780638da5cb5b1461083e5780638f32d59b14610888578063959347f9146108aa5780639a0654af146108f857610206565b80636b5bc1d9146104655780636d38e1941461051657806370a0823114610738578063715018a61461079057610206565b806341b98c76116101d957806341b98c761461033757806349d71d64146103815780634a4fbeec146103c557806351cff8d91461042157610206565b806327e235e31461020b5780632812d4a7146102635780632bbf532a146102ad57806333024f2f14610309575b600080fd5b61024d6004803603602081101561022157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d98565b6040518082815260200191505060405180910390f35b61026b610db0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ef600480360360208110156102c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd6565b604051808215151515815260200191505060405180910390f35b6103356004803603602081101561031f57600080fd5b8101908080359060200190929190505050610e6c565b005b61033f610ef0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c36004803603602081101561039757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f16565b005b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b6104636004803603602081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611121565b005b6104fc600480360360e081101561047b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506113c0565b604051808215151515815260200191505060405180910390f35b610736600480360361012081101561052d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561058a57600080fd5b82018360208201111561059c57600080fd5b803590602001918460208302840111640100000000831117156105be57600080fd5b9091929391929390803590602001906401000000008111156105df57600080fd5b8201836020820111156105f157600080fd5b8035906020019184602083028401116401000000008311171561061357600080fd5b90919293919293908035906020019064010000000081111561063457600080fd5b82018360208201111561064657600080fd5b8035906020019184602083028401116401000000008311171561066857600080fd5b90919293919293908035906020019064010000000081111561068957600080fd5b82018360208201111561069b57600080fd5b803590602001918460208302840111640100000000831117156106bd57600080fd5b9091929391929390803590602001906401000000008111156106de57600080fd5b8201836020820111156106f057600080fd5b8035906020019184602083028401116401000000008311171561071257600080fd5b909192939192939080359060200190929190803590602001909291905050506115ba565b005b61077a6004803603602081101561074e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118fc565b6040518082815260200191505060405180910390f35b610798611945565b005b61083c60048036036101008110156107b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611a7e565b005b610846611cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610890611ce3565b604051808215151515815260200191505060405180910390f35b6108f6600480360360408110156108c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d3a565b005b610900611e7c565b6040518082815260200191505060405180910390f35b6109626004803603604081101561092c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e82565b005b61096c6121b4565b005b610976612241565b6040518082815260200191505060405180910390f35b610a0d600480360360e08110156109a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612247565b005b610a5160048036036020811015610a2557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061248d565b604051808215151515815260200191505060405180910390f35b610b0c60048036036060811015610a8157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ac857600080fd5b820183602082011115610ada57600080fd5b80359060200191846001830284011164010000000083111715610afc57600080fd5b90919293919293905050506124d8565b005b610b5060048036036020811015610b2457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061277b565b6040518082815260200191505060405180910390f35b610ba860048036036020811015610b7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127c4565b6040518082815260200191505060405180910390f35b610bc66127dc565b6040518082815260200191505060405180910390f35b610c0860048036036020811015610bf257600080fd5b81019080803590602001909291905050506127e2565b005b610c5660048036036040811015610c2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612866565b604051808215151515815260200191505060405180910390f35b610cb260048036036020811015610c8657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061288d565b005b610cbc612a6a565b6040518082815260200191505060405180910390f35b610cfe60048036036020811015610ce857600080fd5b8101908080359060200190929190505050612a70565b005b610d4260048036036020811015610d1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612af4565b005b610d4c612b7a565b005b610d56612c04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600a6020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015610e65575042600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b9050919050565b610e74611ce3565b610ee6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b8060068190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f1e611ce3565b610f90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061320a6022913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd481b54ec9e3303e3da2afeb2c846617b7323310964d978697eb7103a4931a3960405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054149050919050565b61112a33610dd6565b61119c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4465706f736974206973206e6f7420756e6c6f636b656400000000000000000081525060200191505060405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b505050506040513d602081101561133d57600080fd5b810190808051906020019092919050505061135757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040518082815260200191505060405180910390a35050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c11156113f657600090506115af565b601b8460ff161415801561140e5750601c8460ff1614155b1561141c57600090506115af565b6001308989898960405160200180807f19457468657265756d205369676e6564204d6573736167653a0a313234000000815250601d018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001955050505050506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611574573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161490505b979650505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461167d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b898990508c8c90501461168f57600080fd5b878790508c8c9050146116a157600080fd5b858590508c8c9050146116b357600080fd5b838390508c8c9050146116c557600080fd5b60008090505b8c8c90508110156117c1576117428f8f8f8f858181106116e757fe5b905060200201358e8e868181106116fa57fe5b905060200201358d8d8781811061170d57fe5b9050602002013560ff168c8c8881811061172357fe5b905060200201358b8b8981811061173657fe5b905060200201356113c0565b6117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b80806001019150506116cb565b50600080905060008090505b8d8d90508110156117fc578d8d828181106117e457fe5b905060200201358201915080806001019150506117cd565b5080831115611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5265696d627572736520616d6f756e74206578636565647320746f74616c000081525060200191505060405180910390fd5b61187e8f8f85612c2a565b8d73ffffffffffffffffffffffffffffffffffffffff168f73ffffffffffffffffffffffffffffffffffffffff167f6433c762be670c059832a954094d4df564def570aeb0e06ccd4afc421e4a28e98585604051808381526020018281526020019250505060405180910390a3505050505050505050505050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61194d611ce3565b6119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b611b50888888888888886113c0565b611bc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b85811115611c38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5265696d627572736520616d6f756e74206578636565647320616c6c6f77656481525060200191505060405180910390fd5b611c43888883612c2a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f5e73339b88b13a2882423746a5db6cbef7a80b5cfc43dfeaf6a54ff944f6a9988388604051808381526020018281526020019250505060405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b611e2a82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612c2a565b8173ffffffffffffffffffffffffffffffffffffffff167fcf75897e335ee7cbbb77a9f74363c795656ae55bf4b942935c84f78bf1944367826040518082815260200191505060405180910390a25050565b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ffa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f7567682066756e647320746f206275726e000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156120d5576000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561214a57600080fd5b505af115801561215e573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b6003544201600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057260405160405180910390a2565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461230a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e63656e74206f6e6c79206d6574686f640000000000000000000000000081525060200191505060405180910390fd5b612319873088888888886113c0565b61238b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b85811115612401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5265696d627572736520616d6f756e74206578636565647320616c6c6f77656481525060200191505060405180910390fd5b61242e87600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612c2a565b8673ffffffffffffffffffffffffffffffffffffffff167fd87ab4af3bd64a3a6c4b8396a3a2aaad6419190934db64d5b7be20a81a5eaab18287604051808381526020018281526020019250505060405180910390a250505050505050565b600042600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461259b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f546f6b656e206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b6125a56000612f74565b15612618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f546f74616c206465706f73697473206c696d697420686974000000000000000081525060200191505060405180910390fd5b6126228484613081565b15612695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d6178696d756d206465706f736974206c696d6974206869740000000000000081525060200191505060405180910390fd5b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040518082815260200191505060405180910390a250505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b6020528060005260406000206000915090505481565b60045481565b6127ea611ce3565b61285c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b8060058190555050565b600061287182612f74565b15801561288557506128838383613081565b155b905092915050565b612895611ce3565b612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4e657720636f6e63656e7420616464726573732063616e6e6f7420626520300081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f292b497b32d3eb12f29f3c91da4a94d9f1089689e94283fd458149503598d68060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b612a78611ce3565b612aea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b8060048190555050565b612afc611ce3565b612b6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4f776e6572206f6e6c79206d6574686f6400000000000000000000000000000081525060200191505060405180910390fd5b612b77816130f5565b50565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91360405160405180910390a2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6f7420656e6f7567682066756e647320746f207265696d627572736500000081525060200191505060405180910390fd5b600060065414612da757620151804281612cf557fe5b0460075414612d1a57620151804281612d0a57fe5b0460078190555060006008819055505b60065481600854011115612d96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4461696c79207265696d62757273656d656e74206c696d69742068697400000081525060200191505060405180910390fd5b806008600082825401925050819055505b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612e82576000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612f2b57600080fd5b505af1158015612f3f573d6000803e3d6000fd5b505050506040513d6020811015612f5557600080fd5b8101908080519060200190929190505050612f6f57600080fd5b505050565b6000806004541415612f89576000905061307c565b60045461307883600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561302f57600080fd5b505afa158015613043573d6000803e3d6000fd5b505050506040513d602081101561305957600080fd5b81019080805190602001909291905050506131ed90919063ffffffff16565b1190505b919050565b600080600554141561309657600090506130ef565b6005546130eb83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131ed90919063ffffffff16565b1190505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561312f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156131ff57fe5b809150509291505056fe4e657720636f6c6477616c6c657420616464726573732063616e6e6f742062652030a265627a7a723158200965dca43c7991cc404282cc15449c1fc29cb7645ebc2733f6e362e9512533ff64736f6c634300050b0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a7dfb33234098c66fde44907e918dad70a3f211c0000000000000000000000009a7dcf55e2caaa85026cf65e5375a89d430f48e70000000000000000000000009a7dcf55e2caaa85026cf65e5375a89d430f48e7000000000000000000000000000000000000000000000000000000000002a300
-----Decoded View---------------
Arg [0] : _token (address): 0xA7dfb33234098c66FdE44907e918DAD70a3f211c
Arg [1] : _concent (address): 0x9A7dCF55e2CaAa85026Cf65e5375a89D430F48E7
Arg [2] : _coldwallet (address): 0x9A7dCF55e2CaAa85026Cf65e5375a89D430F48E7
Arg [3] : _withdrawal_delay (uint256): 172800
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000a7dfb33234098c66fde44907e918dad70a3f211c
Arg [1] : 0000000000000000000000009a7dcf55e2caaa85026cf65e5375a89d430f48e7
Arg [2] : 0000000000000000000000009a7dcf55e2caaa85026cf65e5375a89d430f48e7
Arg [3] : 000000000000000000000000000000000000000000000000000000000002a300
Deployed Bytecode Sourcemap
126:10642:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;126:10642:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;949:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;949:44:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;243:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3097:154;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3097:154:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4352:122;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4352:122:4;;;;;;;;;;;;;;;;;:::i;:::-;;215:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3838:264;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3838:264:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;2844:112;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2844:112:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5275:276;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5275:276:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;10017:748;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;10017:748:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6532:1333;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6532:1333:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6532:1333:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6532:1333:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6532:1333:4;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6532:1333:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6532:1333:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6532:1333:4;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6532:1333:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6532:1333:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6532:1333:4;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6532:1333:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6532:1333:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6532:1333:4;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6532:1333:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6532:1333:4;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6532:1333:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2731:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2731:107:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1368:137:6;;;:::i;:::-;;5893:633:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5893:633:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;659:77:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1000:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8477:241:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8477:241:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;624:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5557:330;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5557:330:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4500:138;;;:::i;:::-;;741:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7871:600;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7871:600:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2962:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2962:129:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4751:518;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4751:518:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4751:518:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4751:518:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4751:518:4;;;;;;;;;;;;:::i;:::-;;3257:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3257:113:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1086:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1086:48:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;542:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4230:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4230:116:4;;;;;;;;;;;;;;;;;:::i;:::-;;3376:194;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3376:194:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3595:237;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3595:237:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;387:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4108:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4108:116:4;;;;;;;;;;;;;;;;;:::i;:::-;;1676:107:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1676:107:6;;;;;;;;;;;;;;;;;;;:::i;:::-;;4644:101:4;;;:::i;:::-;;882:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;949:44;;;;;;;;;;;;;;;;;:::o;243:25::-;;;;;;;;;;;;;:::o;3097:154::-;3154:4;3201:1;3177:12;:20;3190:6;3177:20;;;;;;;;;;;;;;;;:25;;:67;;;;;3229:15;3206:12;:20;3219:6;3206:20;;;;;;;;;;;;;;;;:38;3177:67;3170:74;;3097:154;;;:::o;4352:122::-;863:9:6;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:6:4;4433:25;:34;;;;4352:122;:::o;215:22::-;;;;;;;;;;;;;:::o;3838:264::-;863:9:6;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:1:4;3927:28;;:14;:28;;;;3919:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4043:14;4009:49;;4031:10;;;;;;;;;;;4009:49;;;;;;;;;;;;4081:14;4068:10;;:27;;;;;;;;;;;;;;;;;;3838:264;:::o;2844:112::-;2901:4;2948:1;2924:12;:20;2937:6;2924:20;;;;;;;;;;;;;;;;:25;2917:32;;2844:112;;;:::o;5275:276::-;2420:22;2431:10;2420;:22::i;:::-;2412:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5338:15;5356:8;:20;5365:10;5356:20;;;;;;;;;;;;;;;;5338:38;;5409:1;5386:8;:20;5395:10;5386:20;;;;;;;;;;;;;;;:24;;;;5447:1;5420:12;:24;5433:10;5420:24;;;;;;;;;;;;;;;:28;;;;5466:5;;;;;;;;;;;:14;;;5481:3;5486:7;5466:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5466:28:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5466:28:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5466:28:4;;;;;;;;;;;;;;;;5458:37;;;;;;5531:3;5510:34;;5519:10;5510:34;;;5536:7;5510:34;;;;;;;;;;;;;;;;;;2480:1;5275:276;:::o;10017:748::-;10227:4;10420:66;10414:2;10406:11;;:80;10402:123;;;10509:5;10502:12;;;;10402:123;10544:2;10538;:8;;;;:20;;;;;10556:2;10550;:8;;;;10538:20;10534:63;;;10581:5;10574:12;;;;10534:63;10622:136;10704:4;10711:5;10718:3;10723:7;10732:11;10642:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10642:102:4;;;10632:113;;;;;;10747:2;10751;10755;10622:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10622:136:4;;;;;;;;10613:145;;:5;:145;;;10606:152;;10017:748;;;;;;;;;;:::o;6532:1333::-;2549:7;;;;;;;;;;;2535:21;;:10;:21;;;2527:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6934:11;;:18;;6916:7;;:14;;:36;6908:45;;;;;;6989:2;;:9;;6971:7;;:14;;:27;6963:36;;;;;;7035:2;;:9;;7017:7;;:14;;:27;7009:36;;;;;;7081:2;;:9;;7063:7;;:14;;:27;7055:36;;;;;;7299:9;7311:1;7299:13;;7294:187;7318:7;;:14;;7314:1;:18;7294:187;;;7359:89;7377:10;7389:9;7400:7;;7408:1;7400:10;;;;;;;;;;;;;7412:11;;7424:1;7412:14;;;;;;;;;;;;;7428:2;;7431:1;7428:5;;;;;;;;;;;;;;;7435:2;;7438:1;7435:5;;;;;;;;;;;;;7442:2;;7445:1;7442:5;;;;;;;;;;;;;7359:17;:89::i;:::-;7351:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7334:3;;;;;;;7294:187;;;;7490:20;7513:1;7490:24;;7529:9;7541:1;7529:13;;7524:94;7548:7;;:14;;7544:1;:18;7524:94;;;7597:7;;7605:1;7597:10;;;;;;;;;;;;;7581:26;;;;7564:3;;;;;;;7524:94;;;;7656:12;7635:17;:33;;7627:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7713:52;7724:10;7736:9;7747:17;7713:10;:52::i;:::-;7814:9;7780:78;;7802:10;7780:78;;;7825:17;7844:13;7780:78;;;;;;;;;;;;;;;;;;;;;;;;2590:1;6532:1333;;;;;;;;;;;;;;:::o;2731:107::-;2789:7;2815:8;:16;2824:6;2815:16;;;;;;;;;;;;;;;;2808:23;;2731:107;;;:::o;1368:137:6:-;863:9;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1;1429:40;;1450:6;;;;;;;;;;;1429:40;;;;;;;;;;;;1496:1;1479:6;;:19;;;;;;;;;;;;;;;;;;1368:137::o;5893:633:4:-;2549:7;;;;;;;;;;;2535:21;;:10;:21;;;2527:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:74;6207:10;6219:9;6230:7;6239:11;6252:2;6256;6260;6189:17;:74::i;:::-;6181:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6324:7;6303:17;:28;;6295:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6378:52;6389:10;6401:9;6412:17;6378:10;:52::i;:::-;6477:9;6445:74;;6465:10;6445:74;;;6488:17;6507:11;6445:74;;;;;;;;;;;;;;;;;;;;;;;;5893:633;;;;;;;;:::o;659:77:6:-;697:7;723:6;;;;;;;;;;;716:13;;659:77;:::o;1000:90::-;1040:4;1077:6;;;;;;;;;;;1063:20;;:10;:20;;;1056:27;;1000:90;:::o;8477:241:4:-;2549:7;;;;;;;;;;;2535:21;;:10;:21;;;2527:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:38;8628:5;8635:10;;;;;;;;;;;8647:7;8617:10;:38::i;:::-;8696:5;8670:41;;;8703:7;8670:41;;;;;;;;;;;;;;;;;;8477:241;;:::o;624:37::-;;;;:::o;5557:330::-;2549:7;;;;;;;;;;;2535:21;;:10;:21;;;2527:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5661:7;5642:8;:15;5651:5;5642:15;;;;;;;;;;;;;;;;:26;;5634:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5726:7;5707:8;:15;5716:5;5707:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;5766:1;5747:8;:15;5756:5;5747:15;;;;;;;;;;;;;;;;:20;5743:74;;;5805:1;5783:12;:19;5796:5;5783:19;;;;;;;;;;;;;;;:23;;;;5743:74;5826:5;;;;;;;;;;;:10;;;5837:7;5826:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5826:19:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5826:19:4;;;;5865:5;5860:20;;;5872:7;5860:20;;;;;;;;;;;;;;;;;;5557:330;;:::o;4500:138::-;4582:16;;4564:15;:34;4537:12;:24;4550:10;4537:24;;;;;;;;;;;;;;;:61;;;;4620:10;4613:18;;;;;;;;;;;;4500:138::o;741:40::-;;;;:::o;7871:600::-;2549:7;;;;;;;;;;;2535:21;;:10;:21;;;2527:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8145:73;8163:5;8178:4;8185:7;8194:11;8207:2;8211;8215;8145:17;:73::i;:::-;8137:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8279:7;8258:17;:28;;8250:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8333:48;8344:5;8351:10;;;;;;;;;;;8363:17;8333:10;:48::i;:::-;8426:5;8396:68;;;8433:17;8452:11;8396:68;;;;;;;;;;;;;;;;;;;;;;;;7871:600;;;;;;;:::o;2962:129::-;3023:4;3069:15;3046:12;:20;3059:6;3046:20;;;;;;;;;;;;;;;;:38;3039:45;;2962:129;;;:::o;4751:518::-;2665:5;;;;;;;;;;;2643:28;;:10;:28;;;2635:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5009:27;5034:1;5009:24;:27::i;:::-;5008:28;5000:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5084:41;5110:5;5117:7;5084:25;:41::i;:::-;5083:42;5075:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5184:7;5165:8;:15;5174:5;5165:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;5223:1;5201:12;:19;5214:5;5201:19;;;;;;;;;;;;;;;:23;;;;5247:5;5239:23;;;5254:7;5239:23;;;;;;;;;;;;;;;;;;4751:518;;;;:::o;3257:113::-;3317:7;3343:12;:20;3356:6;3343:20;;;;;;;;;;;;;;;;3336:27;;3257:113;;;:::o;1086:48::-;;;;;;;;;;;;;;;;;:::o;542:37::-;;;;:::o;4230:116::-;863:9:6;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4333:6:4;4308:22;:31;;;;4230:116;:::o;3376:194::-;3459:4;3483:33;3508:7;3483:24;:33::i;:::-;3482:34;:81;;;;;3521:42;3547:6;3555:7;3521:25;:42::i;:::-;3520:43;3482:81;3475:88;;3376:194;;;;:::o;3595:237::-;863:9:6;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:1:4;3678:25;;:11;:25;;;;3670:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3782:11;3754:40;;3773:7;;;;;;;;;;;3754:40;;;;;;;;;;;;3814:11;3804:7;;:21;;;;;;;;;;;;;;;;;;3595:237;:::o;387:31::-;;;;:::o;4108:116::-;863:9:6;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4211:6:4;4186:22;:31;;;;4108:116;:::o;1676:107:6:-;863:9;:7;:9::i;:::-;855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1748:28;1767:8;1748:18;:28::i;:::-;1676:107;:::o;4644:101:4:-;4706:1;4679:12;:24;4692:10;4679:24;;;;;;;;;;;;;;;:28;;;;4727:10;4722:16;;;;;;;;;;;;4644:101::o;882:38::-;;;;;;;;;;;;;:::o;8742:754::-;8852:7;8833:8;:15;8842:5;8833:15;;;;;;;;;;;;;;;;:26;;8825:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8936:1;8907:25;;:30;8903:421;;9004:6;8986:15;:24;;;;;;8957:25;;:53;8953:191;;9076:6;9058:15;:24;;;;;;9030:25;:52;;;;9128:1;9100:25;:29;;;;8953:191;9204:25;;9193:7;9165:25;;:35;:64;;9157:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9306:7;9277:25;;:36;;;;;;;;;;;8903:421;9352:7;9333:8;:15;9342:5;9333:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;9392:1;9373:8;:15;9382:5;9373:15;;;;;;;;;;;;;;;;:20;9369:74;;;9431:1;9409:12;:19;9422:5;9409:19;;;;;;;;;;;;;;;:23;;;;9369:74;9460:5;;;;;;;;;;;:14;;;9475:3;9480:7;9460:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9460:28:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9460:28:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9460:28:4;;;;;;;;;;;;;;;;9452:37;;;;;;8742:754;;;:::o;9502:250::-;9575:4;9621:1;9595:22;;:27;9591:70;;;9645:5;9638:12;;;;9591:70;9723:22;;9677:43;9712:7;9677:5;;;;;;;;;;;:15;;;9701:4;9677:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9677:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9677:30:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9677:30:4;;;;;;;;;;;;;;;;:34;;:43;;;;:::i;:::-;:68;9670:75;;9502:250;;;;:::o;9758:253::-;9848:4;9894:1;9868:22;;:27;9864:70;;;9918:5;9911:12;;;;9864:70;9982:22;;9950:29;9971:7;9950:8;:16;9959:6;9950:16;;;;;;;;;;;;;;;;:20;;:29;;;;:::i;:::-;:54;9943:61;;9758:253;;;;;:::o;1927:183:6:-;2020:1;2000:22;;:8;:22;;;;1992:31;;;;;;2067:8;2038:38;;2059:6;;;;;;;;;;;2038:38;;;;;;;;;;;;2095:8;2086:6;;:17;;;;;;;;;;;;;;;;;;1927:183;:::o;1007:129:8:-;1065:7;1080:9;1096:1;1092;:5;1080:17;;1115:1;1110;:6;;1103:14;;;;1130:1;1123:8;;;1007:129;;;;:::o
Swarm Source
bzzr://0965dca43c7991cc404282cc15449c1fc29cb7645ebc2733f6e362e9512533ff
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.