Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 216 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00249947 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00466039 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.0028738 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00287233 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00287686 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00286931 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00287686 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00286876 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00351337 | ||||
Execute | 15826759 | 712 days ago | IN | 0 ETH | 0.00603581 | ||||
Execute | 15792341 | 717 days ago | IN | 0 ETH | 0.00244661 | ||||
Execute | 15744803 | 723 days ago | IN | 0 ETH | 0.0013382 | ||||
Execute | 15744754 | 723 days ago | IN | 0 ETH | 0.00114076 | ||||
Execute | 15733603 | 725 days ago | IN | 0 ETH | 0.00315525 | ||||
Execute | 15733599 | 725 days ago | IN | 0 ETH | 0.0031713 | ||||
Execute | 15716936 | 727 days ago | IN | 0 ETH | 0.01025332 | ||||
Execute | 15687386 | 731 days ago | IN | 0 ETH | 0.00081208 | ||||
Execute | 15687384 | 731 days ago | IN | 0 ETH | 0.00078144 | ||||
Execute | 15666012 | 734 days ago | IN | 0 ETH | 0.00133856 | ||||
Execute | 15630407 | 739 days ago | IN | 0 ETH | 0.00177811 | ||||
Execute | 15594311 | 744 days ago | IN | 0 ETH | 0.00234873 | ||||
Execute | 15580180 | 746 days ago | IN | 0 ETH | 0.00172927 | ||||
Execute | 15545275 | 751 days ago | IN | 0 ETH | 0.00149911 | ||||
Execute | 15538109 | 752 days ago | IN | 0 ETH | 0.00223858 | ||||
Execute | 15520139 | 755 days ago | IN | 0 ETH | 0.00137024 |
Latest 10 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15826759 | 712 days ago | 18.45 ETH | ||||
15792341 | 717 days ago | 1 ETH | ||||
15744803 | 723 days ago | 0.15 ETH | ||||
15744754 | 723 days ago | 0.3 ETH | ||||
15237528 | 800 days ago | 1 ETH | ||||
15029746 | 833 days ago | 1 ETH | ||||
15018062 | 835 days ago | 0.1 ETH | ||||
14973897 | 843 days ago | 2 ETH | ||||
14741082 | 881 days ago | 20 ETH | ||||
11193145 | 1432 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
MultiSig
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity Multiple files format)
/** * SPDX-License-Identifier: MIT */ pragma solidity >=0.7; import "./Address.sol"; import "./RLPEncode.sol"; import "./Nonce.sol"; contract MultiSig is Nonce { mapping (address => uint8) public signers; // The addresses that can co-sign transactions and the number of signatures needed uint16 public signerCount; bytes public contractId; // most likely unique id of this contract event SignerChange( address indexed signer, uint8 cosignaturesNeeded ); event Transacted( address indexed toAddress, // The address the transaction was sent to bytes4 selector, // selected operation address[] signers // Addresses of the signers used to initiate the transaction ); constructor (address owner) { // We use the gas price to get a unique id into our transactions. // Note that 32 bits do not guarantee that no one can generate a contract with the // same id, but it practically rules out that someone accidentally creates two // two multisig contracts with the same id, and that's all we need to prevent // replay-attacks. contractId = toBytes(uint32(address(this))); _setSigner(owner, 1); // set initial owner } /** * It should be possible to store ether on this address. */ receive() external payable { } /** * Checks if the provided signatures suffice to sign the transaction and if the nonce is correct. */ function checkSignatures(uint128 nonce, address to, uint value, bytes calldata data, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) public view returns (address[] memory) { bytes32 transactionHash = calculateTransactionHash(nonce, contractId, to, value, data); return verifySignatures(transactionHash, v, r, s); } /** * Checks if the execution of a transaction would succeed if it was properly signed. */ function checkExecution(address to, uint value, bytes calldata data) public { Address.functionCallWithValue(to, data, value); require(false, "Test passed. Reverting."); } function execute(uint128 nonce, address to, uint value, bytes calldata data, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) public returns (bytes memory) { bytes32 transactionHash = calculateTransactionHash(nonce, contractId, to, value, data); address[] memory found = verifySignatures(transactionHash, v, r, s); bytes memory returndata = Address.functionCallWithValue(to, data, value); flagUsed(nonce); emit Transacted(to, extractSelector(data), found); return returndata; } function extractSelector(bytes calldata data) private pure returns (bytes4){ if (data.length < 4){ return bytes4(0); } else { return bytes4(data[0]) | (bytes4(data[1]) >> 8) | (bytes4(data[2]) >> 16) | (bytes4(data[3]) >> 24); } } function toBytes(uint number) internal pure returns (bytes memory){ uint len = 0; uint temp = 1; while (number >= temp){ temp = temp << 8; len++; } temp = number; bytes memory data = new bytes(len); for (uint i = len; i>0; i--) { data[i-1] = bytes1(uint8(temp)); temp = temp >> 8; } return data; } // Note: does not work with contract creation function calculateTransactionHash(uint128 sequence, bytes storage id, address to, uint value, bytes calldata data) private pure returns (bytes32){ bytes[] memory all = new bytes[](9); all[0] = toBytes(sequence); // sequence number instead of nonce all[1] = id; // contract id instead of gas price all[2] = toBytes(21000); // gas limit all[3] = abi.encodePacked(to); all[4] = toBytes(value); all[5] = data; all[6] = toBytes(1); all[7] = toBytes(0); for (uint i = 0; i<8; i++){ all[i] = RLPEncode.encodeBytes(all[i]); } all[8] = all[7]; return keccak256(RLPEncode.encodeList(all)); } function verifySignatures(bytes32 transactionHash, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) private view returns (address[] memory) { address[] memory found = new address[](r.length); for (uint i = 0; i < r.length; i++) { address signer = ecrecover(transactionHash, v[i], r[i], s[i]); uint8 cosignaturesNeeded = signers[signer]; require(cosignaturesNeeded > 0 && cosignaturesNeeded <= r.length, "cosigner error"); found[i] = signer; } requireNoDuplicates(found); return found; } function requireNoDuplicates(address[] memory found) private pure { for (uint i = 0; i < found.length; i++) { for (uint j = i+1; j < found.length; j++) { require(found[i] != found[j], "duplicate signature"); } } } /** * Call this method through execute */ function setSigner(address signer, uint8 cosignaturesNeeded) public authorized { _setSigner(signer, cosignaturesNeeded); require(signerCount > 0); } function migrate(address destination) public { _migrate(msg.sender, destination); } function migrate(address source, address destination) public authorized { _migrate(source, destination); } function _migrate(address source, address destination) private { require(signers[destination] == 0); // do not overwrite existing signer! _setSigner(destination, signers[source]); _setSigner(source, 0); } function _setSigner(address signer, uint8 cosignaturesNeeded) private { require(!Address.isContract(signer), "signer cannot be a contract"); uint8 prevValue = signers[signer]; signers[signer] = cosignaturesNeeded; if (prevValue > 0 && cosignaturesNeeded == 0){ signerCount--; } else if (prevValue == 0 && cosignaturesNeeded > 0){ signerCount++; } emit SignerChange(signer, cosignaturesNeeded); } modifier authorized() { require(address(this) == msg.sender || signers[msg.sender] == 1, "not authorized"); _; } }
// SPDX-License-Identifier: MIT // Copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol // and modified it. pragma solidity >=0.7; library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function functionCallWithValue(address target, bytes memory data, uint256 weiValue) internal returns (bytes memory) { // solhint-disable-next-line avoid-low-level-calls require(data.length == 0 || isContract(target)); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { revert(string(returndata)); } } }
/** * SPDX-License-Identifier: MIT */ pragma solidity >=0.7; import "./MultiSig.sol"; contract MultiSigFactory { event ContractCreated(address contractAddress, string typeName); function create(address owner) public returns (address) { address instance = address(new MultiSig(owner)); emit ContractCreated(instance, "MultiSig"); return instance; } function predict(address owner, bytes32 salt) public view returns (address) { return address(uint(keccak256(abi.encodePacked(byte(0xff), address(this), salt, keccak256(abi.encodePacked(type(MultiSig).creationCode, owner)) )))); } function create(address owner, bytes32 salt) public returns (address) { address instance = address(new MultiSig{salt: salt}(owner)); emit ContractCreated(instance, "MultiSig"); return instance; } }
/** * SPDX-License-Identifier: LicenseRef-Aktionariat * * MIT License with Automated License Fee Payments * * Copyright (c) 2020 Aktionariat AG (aktionariat.com) * * Permission is hereby granted to any person obtaining a copy of this software * and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies of the * Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * - The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * - All automated license fee payments integrated into this and related Software * are preserved. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ pragma solidity 0.7.4; contract Nonce { uint256 public constant MAX_INCREASE = 100; uint256 private compound; constructor(){ setBoth(128, 0); } /** * The next recommended nonce, which is the highest nonce ever used plus one. */ function nextNonce() public view returns (uint256){ return getMax() + 1; } /** * Returns whether the provided nonce can be used. * For the 100 nonces in the interval [nextNonce(), nextNonce + 99], this is always true. * For the nonces in the interval [nextNonce() - 129, nextNonce() - 1], this is true for the nonces that have not been used yet. */ function isFree(uint128 nonce) public view returns (bool){ uint128 max = getMax(); return isValidHighNonce(max, nonce) || isValidLowNonce(max, getRegister(), nonce); } /** * Flags the given nonce as used. * Reverts if the provided nonce is not free. */ function flagUsed(uint128 nonce) public { uint256 comp = compound; uint128 max = uint128(comp); uint128 reg = uint128(comp >> 128); if (isValidHighNonce(max, nonce)){ setBoth(nonce, ((reg << 1) | 0x1) << (nonce - max - 1)); } else if (isValidLowNonce(max, reg, nonce)){ setBoth(max, uint128(reg | 0x1 << (max - nonce - 1))); } else { require(false); } } function getMax() private view returns (uint128) { return uint128(compound); } function getRegister() private view returns (uint128) { return uint128(compound >> 128); } function setBoth(uint128 max, uint128 reg) private { compound = uint256(reg) << 128 | max; } function isValidHighNonce(uint128 max, uint128 nonce) private pure returns (bool){ return nonce > max && nonce <= max + MAX_INCREASE; } function isValidLowNonce(uint128 max, uint128 reg, uint256 nonce) private pure returns (bool){ uint256 diff = max - nonce; return diff > 0 && diff <= 128 && ((0x1 << (diff - 1)) & reg == 0); } }
/// SPDX-License-Identifier: MIT /// @title RLP Encoding Library for Solidity /// @author Sam Mayo ([email protected]) /// @dev Library for rlp encoding arbitrary bytes or lists. pragma solidity >=0.7; library RLPEncode { uint8 constant STRING_SHORT_PREFIX = 0x80; uint8 constant STRING_LONG_PREFIX = 0xb7; uint8 constant LIST_SHORT_PREFIX = 0xc0; uint8 constant LIST_LONG_PREFIX = 0xf7; /// @dev Rlp encodes a bytes /// @param self The bytes to be encoded /// @return The rlp encoded bytes function encodeBytes(bytes memory self) internal pure returns (bytes memory) { if(self.length == 1 && self[0] < 0x80) { return self; } else { return encode(self, STRING_SHORT_PREFIX, STRING_LONG_PREFIX); } } /// @dev Rlp encodes a bytes[]. Note that the items in the bytes[] will not automatically be rlp encoded. /// @param self The bytes[] to be encoded /// @return The rlp encoded bytes[] function encodeList(bytes[] memory self) internal pure returns (bytes memory) { bytes memory list = flatten(self); return encode(list, LIST_SHORT_PREFIX, LIST_LONG_PREFIX); } function encode(bytes memory self, uint8 prefix1, uint8 prefix2) private pure returns (bytes memory) { uint selfPtr; assembly { selfPtr := add(self, 0x20) } uint len = self.length; if(len <= 55) { bytes memory encoded = new bytes(len+1); uint8 lenshort = uint8(len); // length encoding byte encoded[0] = byte(prefix1+lenshort); // string/list contents uint encodedPtr; assembly { encodedPtr := add(encoded, 0x21) } memcpy(encodedPtr, selfPtr, len); return encoded; } else { uint8 lenLen; uint i = 0x1; while(len/i != 0) { lenLen++; i *= 0x100; } // 1 is the length of the length of the length bytes memory encoded = new bytes(1+lenLen+len); // length of the length encoding byte encoded[0] = byte(prefix2+lenLen); // length bytes for(i=1; i<=lenLen; i++) { encoded[i] = byte(uint8((len/(0x100**(lenLen-i)))%0x100)); } // string/list contents uint encodedPtr; assembly { encodedPtr := add(add(encoded, 0x21), lenLen) } memcpy(encodedPtr, selfPtr, len); return encoded; } } function flatten(bytes[] memory self) private pure returns (bytes memory) { if(self.length == 0) { return new bytes(0); } uint len; for(uint i=0; i<self.length; i++) { len += self[i].length; } bytes memory flattened = new bytes(len); uint flattenedPtr; assembly { flattenedPtr := add(flattened, 0x20) } for(uint i=0; i<self.length; i++) { bytes memory item = self[i]; uint selfPtr; assembly { selfPtr := add(item, 0x20)} memcpy(flattenedPtr, selfPtr, item.length); flattenedPtr += self[i].length; } return flattened; } /// This function is from Nick Johnson's string utils library function memcpy(uint dest, uint src, uint len) private pure { // Copy word-length chunks while possible for(; len >= 32; len -= 32) { assembly { mstore(dest, mload(src)) } dest += 32; src += 32; } // Copy remaining bytes uint mask = 256 ** (32 - len) - 1; assembly { let srcpart := and(mload(src), not(mask)) let destpart := and(mload(dest), mask) mstore(dest, or(destpart, srcpart)) } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint8","name":"cosignaturesNeeded","type":"uint8"}],"name":"SignerChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"address[]","name":"signers","type":"address[]"}],"name":"Transacted","type":"event"},{"inputs":[],"name":"MAX_INCREASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"checkExecution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"checkSignatures","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"execute","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"}],"name":"flagUsed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"}],"name":"isFree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"address","name":"destination","type":"address"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint8","name":"cosignaturesNeeded","type":"uint8"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signerCount","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001d4338038062001d43833981810160405260208110156200003757600080fd5b5051620000476080600062000083565b6200005863ffffffff3016620000a4565b80516200006e91600391602090910190620002db565b506200007c8160016200015a565b5062000387565b6001600160801b031960809190911b166001600160801b0390911617600055565b6060600060015b808410620000c25760019091019060081b620000ab565b50826060826001600160401b0381118015620000dd57600080fd5b506040519080825280601f01601f19166020018201604052801562000109576020820181803683370190505b509050825b801562000151578260f81b8260018303815181106200012957fe5b60200101906001600160f81b031916908160001a90535060089290921c91600019016200010e565b50949350505050565b62000170826200029e60201b62000bc81760201c565b15620001c3576040805162461bcd60e51b815260206004820152601b60248201527f7369676e65722063616e6e6f74206265206120636f6e74726163740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020805460ff83811660ff19831617909255168015801590620001fd575060ff8216155b1562000223576002805461ffff19811661ffff9182166000190190911617905562000257565b60ff811615801562000238575060008260ff16115b1562000257576002805461ffff8082166001011661ffff199091161790555b6040805160ff8416815290516001600160a01b038516917f7f00bf87056fc9622b70d830cce34aa24d6c12881ebbc71d3bf22d0c5ae295b7919081900360200190a2505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590620002d357508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200031357600085556200035e565b82601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b5b808211156200036c576000815560010162000371565b6119ac80620003976000396000f3fe6080604052600436106100c65760003560e01c80638291286c1161007f578063c1e38e8d11610059578063c1e38e8d146104d8578063ce5494bb1461050b578063d69c3d301461053e578063ecec0dfd14610553576100cd565b80638291286c146103ec578063b5fe516314610401578063b6e404de14610448576100cd565b80630f43d678146100d25780631068361f1461011057806348753d001461014b578063736c0d5b146103505780637ca548c6146103995780637cedbb80146103c5576100cd565b366100cd57005b600080fd5b3480156100de57600080fd5b5061010e600480360360408110156100f557600080fd5b5080356001600160a01b0316906020013560ff16610733565b005b34801561011c57600080fd5b5061010e6004803603604081101561013357600080fd5b506001600160a01b03813581169160200135166107b4565b34801561015757600080fd5b506102db600480360360e081101561016e57600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156101ad57600080fd5b8201836020820111156101bf57600080fd5b803590602001918460018302840111600160201b831117156101e057600080fd5b919390929091602081019035600160201b8111156101fd57600080fd5b82018360208201111561020f57600080fd5b803590602001918460208302840111600160201b8311171561023057600080fd5b919390929091602081019035600160201b81111561024d57600080fd5b82018360208201111561025f57600080fd5b803590602001918460208302840111600160201b8311171561028057600080fd5b919390929091602081019035600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460208302840111600160201b831117156102d057600080fd5b509092509050610821565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035c57600080fd5b506103836004803603602081101561037357600080fd5b50356001600160a01b0316610951565b6040805160ff9092168252519081900360200190f35b3480156103a557600080fd5b506103ae610966565b6040805161ffff9092168252519081900360200190f35b3480156103d157600080fd5b506103da610970565b60408051918252519081900360200190f35b3480156103f857600080fd5b506102db610975565b34801561040d57600080fd5b506104346004803603602081101561042457600080fd5b50356001600160801b0316610a03565b604080519115158252519081900360200190f35b34801561045457600080fd5b5061010e6004803603606081101561046b57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561049a57600080fd5b8201836020820111156104ac57600080fd5b803590602001918460018302840111600160201b831117156104cd57600080fd5b509092509050610a44565b3480156104e457600080fd5b5061010e600480360360208110156104fb57600080fd5b50356001600160801b0316610ada565b34801561051757600080fd5b5061010e6004803603602081101561052e57600080fd5b50356001600160a01b0316610b6b565b34801561054a57600080fd5b506103da610b78565b34801561055f57600080fd5b506106e3600480360360e081101561057657600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156105b557600080fd5b8201836020820111156105c757600080fd5b803590602001918460018302840111600160201b831117156105e857600080fd5b919390929091602081019035600160201b81111561060557600080fd5b82018360208201111561061757600080fd5b803590602001918460208302840111600160201b8311171561063857600080fd5b919390929091602081019035600160201b81111561065557600080fd5b82018360208201111561066757600080fd5b803590602001918460208302840111600160201b8311171561068857600080fd5b919390929091602081019035600160201b8111156106a557600080fd5b8201836020820111156106b757600080fd5b803590602001918460208302840111600160201b831117156106d857600080fd5b509092509050610b93565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561071f578181015183820152602001610707565b505050509050019250505060405180910390f35b3033148061075457503360009081526001602081905260409091205460ff16145b610796576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107a08282610c04565b60025461ffff166107b057600080fd5b5050565b303314806107d557503360009081526001602081905260409091205460ff16145b610817576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107b08282610d35565b606060006108348d60038e8e8e8e610d8d565b90506060610847828a8a8a8a8a8a61103f565b9050606061089a8e8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508f6111eb565b90506108a58f610ada565b8d6001600160a01b03167f64ada3f9bcd41ebd407b399dc401184273a19bc294825172626af05a15c95d256108da8e8e611350565b8460405180836001600160e01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561092b578181015183820152602001610913565b50505050905001935050505060405180910390a29e9d5050505050505050505050505050565b60016020526000908152604090205460ff1681565b60025461ffff1681565b606481565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b505050505081565b600080610a0e6113f4565b9050610a1a81846113fa565b80610a3b5750610a3b81610a2c61142e565b856001600160801b0316611437565b9150505b919050565b610a868483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506111eb915050565b506040805162461bcd60e51b815260206004820152601760248201527f54657374207061737365642e20526576657274696e672e000000000000000000604482015290519081900360640190fd5b50505050565b60005480608081901c610aed82856113fa565b15610b2b57610b26846001848703036001600160801b03166001846001600160801b0316901b6001176001600160801b0316901b61147b565b610ad4565b610b3f8282866001600160801b0316611437565b156100cd57610b26826001868503036001600160801b03166001901b836001600160801b03161761147b565b610b753382610d35565b50565b6000610b826113f4565b6001016001600160801b0316905090565b60606000610ba68d60038e8e8e8e610d8d565b9050610bb78189898989898961103f565b9d9c50505050505050505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bfc57508115155b949350505050565b610c0d82610bc8565b15610c5f576040805162461bcd60e51b815260206004820152601b60248201527f7369676e65722063616e6e6f74206265206120636f6e74726163740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020805460ff83811660ff19831617909255168015801590610c98575060ff8216155b15610cbc576002805461ffff19811661ffff91821660001901909116179055610cee565b60ff8116158015610cd0575060008260ff16115b15610cee576002805461ffff8082166001011661ffff199091161790555b6040805160ff8416815290516001600160a01b038516917f7f00bf87056fc9622b70d830cce34aa24d6c12881ebbc71d3bf22d0c5ae295b7919081900360200190a2505050565b6001600160a01b03811660009081526001602052604090205460ff1615610d5b57600080fd5b6001600160a01b038216600090815260016020526040902054610d8290829060ff16610c04565b6107b0826000610c04565b604080516009808252610140820190925260009160609190816020015b6060815260200190600190039081610daa579050509050610dd3886001600160801b03166114a5565b81600081518110610de057fe5b602090810291909101810191909152875460408051601f6002600019610100600187161502019094169390930492830184900484028101840190915281815291899190830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b505050505081600181518110610e8657fe5b6020026020010181905250610e9c6152086114a5565b81600281518110610ea957fe5b60200260200101819052508560405160200180826001600160a01b031660601b815260140191505060405160208183030381529060405281600381518110610eed57fe5b6020026020010181905250610f01856114a5565b81600481518110610f0e57fe5b602002602001018190525083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508351849250600591508110610f5e57fe5b6020026020010181905250610f7360016114a5565b81600681518110610f8057fe5b6020026020010181905250610f9560006114a5565b81600781518110610fa257fe5b602002602001018190525060005b6008811015610ff457610fd5828281518110610fc857fe5b6020026020010151611555565b828281518110610fe157fe5b6020908102919091010152600101610fb0565b508060078151811061100257fe5b60200260200101518160088151811061101757fe5b602002602001018190525061102b816115a6565b805190602001209150509695505050505050565b6060808467ffffffffffffffff8111801561105957600080fd5b50604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b858110156111d557600060018b8b8b858181106110a257fe5b9050602002013560ff168a8a868181106110b857fe5b905060200201358989878181106110cb57fe5b9050602002013560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611126573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526001602052919091205490925060ff1690508015801590611164575060ff81168810155b6111a6576040805162461bcd60e51b815260206004820152600e60248201526d31b7b9b4b3b732b91032b93937b960911b604482015290519081900360640190fd5b818484815181106111b357fe5b6001600160a01b03909216602092830291909101909101525050600101611089565b506111df816115c1565b98975050505050505050565b6060825160001480611201575061120184610bc8565b61120a57600080fd5b60006060856001600160a01b031684866040518082805190602001908083835b602083106112495780518252601f19909201916020918201910161122a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146112ab576040519150601f19603f3d011682016040523d82523d6000602084013e6112b0565b606091505b509150915081156112c45791506113499050565b8060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561130e5781810151838201526020016112f6565b50505050905090810190601f16801561133b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b60006004821015611363575060006113ee565b60188383600381811061137257fe5b909101356001600160f81b03191690911c905060108484600281811061139457fe5b909101356001600160f81b03191690911c90506008858560018181106113b657fe5b909101356001600160f81b03191690911c905085856000816113d457fe5b9050013560f81c60f81b6001600160f81b03191617171790505b92915050565b60005490565b6000826001600160801b0316826001600160801b03161180156113495750506001600160801b039182166064019116111590565b60005460801c90565b60006001600160801b0384168290038015801590611456575060808111155b80156114725750600160001982011b84166001600160801b0316155b95945050505050565b6fffffffffffffffffffffffffffffffff1960809190911b166001600160801b0390911617600055565b6060600060015b8084106114c15760019091019060081b6114ac565b508260608267ffffffffffffffff811180156114dc57600080fd5b506040519080825280601f01601f191660200182016040528015611507576020820181803683370190505b509050825b801561154c578260f81b82600183038151811061152557fe5b60200101906001600160f81b031916908160001a90535060089290921c916000190161150c565b50949350505050565b6060815160011480156115865750608060f81b8260008151811061157557fe5b01602001516001600160f81b031916105b15611592575080610a3f565b61159f82608060b761166f565b9050610a3f565b6060806115b28361182e565b9050610a3b8160c060f761166f565b60005b81518110156107b057600181015b8251811015611666578281815181106115e757fe5b60200260200101516001600160a01b031683838151811061160457fe5b60200260200101516001600160a01b0316141561165e576040805162461bcd60e51b81526020600482015260136024820152726475706c6963617465207369676e617475726560681b604482015290519081900360640190fd5b6001016115d2565b506001016115c4565b82516060906020850190603781116117165760608160010167ffffffffffffffff8111801561169d57600080fd5b506040519080825280601f01601f1916602001820160405280156116c8576020820181803683370190505b509050600082905080870160f81b826000815181106116e357fe5b60200101906001600160f81b031916908160001a90535060218201611709818686611938565b8295505050505050611349565b600060015b80838161172457fe5b0415611739576001909101906101000261171b565b6060838360010160ff160167ffffffffffffffff8111801561175a57600080fd5b506040519080825280601f01601f191660200182016040528015611785576020820181803683370190505b50905082870160f81b8160008151811061179b57fe5b60200101906001600160f81b031916908160001a905350600191505b8260ff16821161181057610100828460ff16036101000a85816117d657fe5b04816117de57fe5b0660f81b8183815181106117ee57fe5b60200101906001600160f81b031916908160001a9053506001909101906117b7565b808301602101611821818787611938565b5094506113499350505050565b606081516000141561184f5750604080516000815260208101909152610a3f565b6000805b83518110156118825783818151811061186857fe5b602002602001015151820191508080600101915050611853565b5060608167ffffffffffffffff8111801561189c57600080fd5b506040519080825280601f01601f1916602001820160405280156118c7576020820181803683370190505b5090506020810160005b855181101561192e5760608682815181106118e857fe5b60200260200101519050600060208201905061190684828451611938565b87838151811061191257fe5b60200260200101515184019350505080806001019150506118d1565b5090949350505050565b5b60208110611958578151835260209283019290910190601f1901611939565b905182516020929092036101000a600019018019909116911617905256fea26469706673582212209469361f0335e52310c37059766104d2dc4c55fa72972b7172fcbbcc974cfdc164736f6c634300070400330000000000000000000000005a57dd9c623e1403af1d810673183d89724a4e0c
Deployed Bytecode
0x6080604052600436106100c65760003560e01c80638291286c1161007f578063c1e38e8d11610059578063c1e38e8d146104d8578063ce5494bb1461050b578063d69c3d301461053e578063ecec0dfd14610553576100cd565b80638291286c146103ec578063b5fe516314610401578063b6e404de14610448576100cd565b80630f43d678146100d25780631068361f1461011057806348753d001461014b578063736c0d5b146103505780637ca548c6146103995780637cedbb80146103c5576100cd565b366100cd57005b600080fd5b3480156100de57600080fd5b5061010e600480360360408110156100f557600080fd5b5080356001600160a01b0316906020013560ff16610733565b005b34801561011c57600080fd5b5061010e6004803603604081101561013357600080fd5b506001600160a01b03813581169160200135166107b4565b34801561015757600080fd5b506102db600480360360e081101561016e57600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156101ad57600080fd5b8201836020820111156101bf57600080fd5b803590602001918460018302840111600160201b831117156101e057600080fd5b919390929091602081019035600160201b8111156101fd57600080fd5b82018360208201111561020f57600080fd5b803590602001918460208302840111600160201b8311171561023057600080fd5b919390929091602081019035600160201b81111561024d57600080fd5b82018360208201111561025f57600080fd5b803590602001918460208302840111600160201b8311171561028057600080fd5b919390929091602081019035600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460208302840111600160201b831117156102d057600080fd5b509092509050610821565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035c57600080fd5b506103836004803603602081101561037357600080fd5b50356001600160a01b0316610951565b6040805160ff9092168252519081900360200190f35b3480156103a557600080fd5b506103ae610966565b6040805161ffff9092168252519081900360200190f35b3480156103d157600080fd5b506103da610970565b60408051918252519081900360200190f35b3480156103f857600080fd5b506102db610975565b34801561040d57600080fd5b506104346004803603602081101561042457600080fd5b50356001600160801b0316610a03565b604080519115158252519081900360200190f35b34801561045457600080fd5b5061010e6004803603606081101561046b57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561049a57600080fd5b8201836020820111156104ac57600080fd5b803590602001918460018302840111600160201b831117156104cd57600080fd5b509092509050610a44565b3480156104e457600080fd5b5061010e600480360360208110156104fb57600080fd5b50356001600160801b0316610ada565b34801561051757600080fd5b5061010e6004803603602081101561052e57600080fd5b50356001600160a01b0316610b6b565b34801561054a57600080fd5b506103da610b78565b34801561055f57600080fd5b506106e3600480360360e081101561057657600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156105b557600080fd5b8201836020820111156105c757600080fd5b803590602001918460018302840111600160201b831117156105e857600080fd5b919390929091602081019035600160201b81111561060557600080fd5b82018360208201111561061757600080fd5b803590602001918460208302840111600160201b8311171561063857600080fd5b919390929091602081019035600160201b81111561065557600080fd5b82018360208201111561066757600080fd5b803590602001918460208302840111600160201b8311171561068857600080fd5b919390929091602081019035600160201b8111156106a557600080fd5b8201836020820111156106b757600080fd5b803590602001918460208302840111600160201b831117156106d857600080fd5b509092509050610b93565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561071f578181015183820152602001610707565b505050509050019250505060405180910390f35b3033148061075457503360009081526001602081905260409091205460ff16145b610796576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107a08282610c04565b60025461ffff166107b057600080fd5b5050565b303314806107d557503360009081526001602081905260409091205460ff16145b610817576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107b08282610d35565b606060006108348d60038e8e8e8e610d8d565b90506060610847828a8a8a8a8a8a61103f565b9050606061089a8e8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508f6111eb565b90506108a58f610ada565b8d6001600160a01b03167f64ada3f9bcd41ebd407b399dc401184273a19bc294825172626af05a15c95d256108da8e8e611350565b8460405180836001600160e01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561092b578181015183820152602001610913565b50505050905001935050505060405180910390a29e9d5050505050505050505050505050565b60016020526000908152604090205460ff1681565b60025461ffff1681565b606481565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b505050505081565b600080610a0e6113f4565b9050610a1a81846113fa565b80610a3b5750610a3b81610a2c61142e565b856001600160801b0316611437565b9150505b919050565b610a868483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506111eb915050565b506040805162461bcd60e51b815260206004820152601760248201527f54657374207061737365642e20526576657274696e672e000000000000000000604482015290519081900360640190fd5b50505050565b60005480608081901c610aed82856113fa565b15610b2b57610b26846001848703036001600160801b03166001846001600160801b0316901b6001176001600160801b0316901b61147b565b610ad4565b610b3f8282866001600160801b0316611437565b156100cd57610b26826001868503036001600160801b03166001901b836001600160801b03161761147b565b610b753382610d35565b50565b6000610b826113f4565b6001016001600160801b0316905090565b60606000610ba68d60038e8e8e8e610d8d565b9050610bb78189898989898961103f565b9d9c50505050505050505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bfc57508115155b949350505050565b610c0d82610bc8565b15610c5f576040805162461bcd60e51b815260206004820152601b60248201527f7369676e65722063616e6e6f74206265206120636f6e74726163740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020805460ff83811660ff19831617909255168015801590610c98575060ff8216155b15610cbc576002805461ffff19811661ffff91821660001901909116179055610cee565b60ff8116158015610cd0575060008260ff16115b15610cee576002805461ffff8082166001011661ffff199091161790555b6040805160ff8416815290516001600160a01b038516917f7f00bf87056fc9622b70d830cce34aa24d6c12881ebbc71d3bf22d0c5ae295b7919081900360200190a2505050565b6001600160a01b03811660009081526001602052604090205460ff1615610d5b57600080fd5b6001600160a01b038216600090815260016020526040902054610d8290829060ff16610c04565b6107b0826000610c04565b604080516009808252610140820190925260009160609190816020015b6060815260200190600190039081610daa579050509050610dd3886001600160801b03166114a5565b81600081518110610de057fe5b602090810291909101810191909152875460408051601f6002600019610100600187161502019094169390930492830184900484028101840190915281815291899190830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b505050505081600181518110610e8657fe5b6020026020010181905250610e9c6152086114a5565b81600281518110610ea957fe5b60200260200101819052508560405160200180826001600160a01b031660601b815260140191505060405160208183030381529060405281600381518110610eed57fe5b6020026020010181905250610f01856114a5565b81600481518110610f0e57fe5b602002602001018190525083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508351849250600591508110610f5e57fe5b6020026020010181905250610f7360016114a5565b81600681518110610f8057fe5b6020026020010181905250610f9560006114a5565b81600781518110610fa257fe5b602002602001018190525060005b6008811015610ff457610fd5828281518110610fc857fe5b6020026020010151611555565b828281518110610fe157fe5b6020908102919091010152600101610fb0565b508060078151811061100257fe5b60200260200101518160088151811061101757fe5b602002602001018190525061102b816115a6565b805190602001209150509695505050505050565b6060808467ffffffffffffffff8111801561105957600080fd5b50604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b858110156111d557600060018b8b8b858181106110a257fe5b9050602002013560ff168a8a868181106110b857fe5b905060200201358989878181106110cb57fe5b9050602002013560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611126573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526001602052919091205490925060ff1690508015801590611164575060ff81168810155b6111a6576040805162461bcd60e51b815260206004820152600e60248201526d31b7b9b4b3b732b91032b93937b960911b604482015290519081900360640190fd5b818484815181106111b357fe5b6001600160a01b03909216602092830291909101909101525050600101611089565b506111df816115c1565b98975050505050505050565b6060825160001480611201575061120184610bc8565b61120a57600080fd5b60006060856001600160a01b031684866040518082805190602001908083835b602083106112495780518252601f19909201916020918201910161122a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146112ab576040519150601f19603f3d011682016040523d82523d6000602084013e6112b0565b606091505b509150915081156112c45791506113499050565b8060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561130e5781810151838201526020016112f6565b50505050905090810190601f16801561133b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b60006004821015611363575060006113ee565b60188383600381811061137257fe5b909101356001600160f81b03191690911c905060108484600281811061139457fe5b909101356001600160f81b03191690911c90506008858560018181106113b657fe5b909101356001600160f81b03191690911c905085856000816113d457fe5b9050013560f81c60f81b6001600160f81b03191617171790505b92915050565b60005490565b6000826001600160801b0316826001600160801b03161180156113495750506001600160801b039182166064019116111590565b60005460801c90565b60006001600160801b0384168290038015801590611456575060808111155b80156114725750600160001982011b84166001600160801b0316155b95945050505050565b6fffffffffffffffffffffffffffffffff1960809190911b166001600160801b0390911617600055565b6060600060015b8084106114c15760019091019060081b6114ac565b508260608267ffffffffffffffff811180156114dc57600080fd5b506040519080825280601f01601f191660200182016040528015611507576020820181803683370190505b509050825b801561154c578260f81b82600183038151811061152557fe5b60200101906001600160f81b031916908160001a90535060089290921c916000190161150c565b50949350505050565b6060815160011480156115865750608060f81b8260008151811061157557fe5b01602001516001600160f81b031916105b15611592575080610a3f565b61159f82608060b761166f565b9050610a3f565b6060806115b28361182e565b9050610a3b8160c060f761166f565b60005b81518110156107b057600181015b8251811015611666578281815181106115e757fe5b60200260200101516001600160a01b031683838151811061160457fe5b60200260200101516001600160a01b0316141561165e576040805162461bcd60e51b81526020600482015260136024820152726475706c6963617465207369676e617475726560681b604482015290519081900360640190fd5b6001016115d2565b506001016115c4565b82516060906020850190603781116117165760608160010167ffffffffffffffff8111801561169d57600080fd5b506040519080825280601f01601f1916602001820160405280156116c8576020820181803683370190505b509050600082905080870160f81b826000815181106116e357fe5b60200101906001600160f81b031916908160001a90535060218201611709818686611938565b8295505050505050611349565b600060015b80838161172457fe5b0415611739576001909101906101000261171b565b6060838360010160ff160167ffffffffffffffff8111801561175a57600080fd5b506040519080825280601f01601f191660200182016040528015611785576020820181803683370190505b50905082870160f81b8160008151811061179b57fe5b60200101906001600160f81b031916908160001a905350600191505b8260ff16821161181057610100828460ff16036101000a85816117d657fe5b04816117de57fe5b0660f81b8183815181106117ee57fe5b60200101906001600160f81b031916908160001a9053506001909101906117b7565b808301602101611821818787611938565b5094506113499350505050565b606081516000141561184f5750604080516000815260208101909152610a3f565b6000805b83518110156118825783818151811061186857fe5b602002602001015151820191508080600101915050611853565b5060608167ffffffffffffffff8111801561189c57600080fd5b506040519080825280601f01601f1916602001820160405280156118c7576020820181803683370190505b5090506020810160005b855181101561192e5760608682815181106118e857fe5b60200260200101519050600060208201905061190684828451611938565b87838151811061191257fe5b60200260200101515184019350505080806001019150506118d1565b5090949350505050565b5b60208110611958578151835260209283019290910190601f1901611939565b905182516020929092036101000a600019018019909116911617905256fea26469706673582212209469361f0335e52310c37059766104d2dc4c55fa72972b7172fcbbcc974cfdc164736f6c63430007040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005a57dd9c623e1403af1d810673183d89724a4e0c
-----Decoded View---------------
Arg [0] : owner (address): 0x5a57dD9C623e1403AF1D810673183D89724a4e0c
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005a57dd9c623e1403af1d810673183d89724a4e0c
Deployed Bytecode Sourcemap
148:5916:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4869:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4869:161:1;;-1:-1:-1;;;;;4869:161:1;;;;;;;;:::i;:::-;;5133:114;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5133:114:1;;;;;;;;;;:::i;2099:525::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:525:1;;;;;;-1:-1:-1;;;;;2099:525:1;;;;;;;;;;;-1:-1:-1;2099:525:1;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;-1:-1:-1;2099:525:1;;-1:-1:-1;2099:525:1;-1:-1:-1;2099:525:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;182:41;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;182:41:1;-1:-1:-1;;;;;182:41:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;313:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1388:42:3;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;343:23:1;;;;;;;;;;;;;:::i;2040:190:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2040:190:3;-1:-1:-1;;;;;2040:190:3;;:::i;:::-;;;;;;;;;;;;;;;;;;1910:183:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1910:183:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:183:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:183:1;;;;;;;;;;-1:-1:-1;1910:183:1;;-1:-1:-1;1910:183:1;-1:-1:-1;1910:183:1;:::i;2346:460:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2346:460:3;-1:-1:-1;;;;;2346:460:3;;:::i;5036:91:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5036:91:1;-1:-1:-1;;;;;5036:91:1;;:::i;1640:88:3:-;;;;;;;;;;;;;:::i;1454:348:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1454:348:1;;;;;;-1:-1:-1;;;;;1454:348:1;;;;;;;;;;;-1:-1:-1;1454:348:1;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;-1:-1:-1;1454:348:1;;-1:-1:-1;1454:348:1;-1:-1:-1;1454:348:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4869:161;5979:4;5988:10;5971:27;;:55;;-1:-1:-1;6010:10:1;6002:19;;;;:7;:19;;;;;;;;;;;:24;5971:55;5963:82;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;;;;4955:38:::1;4966:6;4974:18;4955:10;:38::i;:::-;5008:11;::::0;::::1;;5000:24;;;::::0;::::1;;4869:161:::0;;:::o;5133:114::-;5979:4;5988:10;5971:27;;:55;;-1:-1:-1;6010:10:1;6002:19;;;;:7;:19;;;;;;;;;;;:24;5971:55;5963:82;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;;;;5212:29:::1;5221:6;5229:11;5212:8;:29::i;2099:525::-:0;2256:12;2277:23;2303:60;2328:5;2335:10;2347:2;2351:5;2358:4;;2303:24;:60::i;:::-;2277:86;;2370:22;2395:42;2412:15;2429:1;;2432;;2435;;2395:16;:42::i;:::-;2370:67;;2444:23;2470:46;2500:2;2504:4;;2470:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:5;2470:29;:46::i;:::-;2444:72;;2523:15;2532:5;2523:8;:15::i;:::-;-1:-1:-1;;;;;2550:44:1;;;2565:21;2581:4;;2565:15;:21::i;:::-;2550:44;;;-1:-1:-1;;;;;;2550:44:1;;;;;;;;;;;;;;;;;;;;;;2588:5;;2550:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2608:10;2099:525;-1:-1:-1;;;;;;;;;;;;;;2099:525:1:o;182:41::-;;;;;;;;;;;;;;;:::o;313:25::-;;;;;;:::o;1388:42:3:-;1427:3;1388:42;:::o;343:23:1:-;;;;;;;;;;;;;;;-1:-1:-1;;343:23:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2040:190:3:-;2092:4;2108:11;2122:8;:6;:8::i;:::-;2108:22;;2148:28;2165:3;2170:5;2148:16;:28::i;:::-;:74;;;;2180:42;2196:3;2201:13;:11;:13::i;:::-;-1:-1:-1;;;;;2180:42:3;;:15;:42::i;:::-;2141:81;;;2040:190;;;;:::o;1910:183:1:-;1993:46;2023:2;2027:4;;1993:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2033:5:1;;-1:-1:-1;1993:29:1;;-1:-1:-1;;1993:46:1:i;:::-;-1:-1:-1;2046:41:1;;;-1:-1:-1;;;2046:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:183;;;;:::o;2346:460:3:-;2397:12;2412:8;;2499:3;2491:11;;;2518:28;2412:8;2540:5;2518:16;:28::i;:::-;2514:285;;;2562:55;2570:5;-1:-1:-1;;;;;2614:1:3;2579:8;;;;;2578:16;2577:39;;2600:11;;;-1:-1:-1;;2600:15:3;2577:39;;;;2562:7;:55::i;:::-;2514:285;;;2639:32;2655:3;2660;-1:-1:-1;;;;;2639:32:3;;:15;:32::i;:::-;2635:164;;;2687:53;2695:3;2736:1;2722:11;;;-1:-1:-1;;2722:15:3;-1:-1:-1;;;;;2714:24:3;;;;;;;2708:30;;;;2687:7;:53::i;5036:91:1:-;5088:33;5097:10;5109:11;5088:8;:33::i;:::-;5036:91;:::o;1640:88:3:-;1682:7;1708:8;:6;:8::i;:::-;1719:1;1708:12;-1:-1:-1;;;;;1701:19:3;;;-1:-1:-1;1640:88:3:o;1454:348:1:-;1629:16;1654:23;1680:60;1705:5;1712:10;1724:2;1728:5;1735:4;;1680:24;:60::i;:::-;1654:86;;1754:42;1771:15;1788:1;;1791;;1794;;1754:16;:42::i;:::-;1747:49;1454:348;-1:-1:-1;;;;;;;;;;;;;1454:348:1:o;803:619:0:-;863:4;1331:20;;1174:66;1371:23;;;;;;:42;;-1:-1:-1;1398:15:0;;;1371:42;1363:51;803:619;-1:-1:-1;;;;803:619:0:o;5481:447:1:-;5567:26;5586:6;5567:18;:26::i;:::-;5566:27;5558:67;;;;;-1:-1:-1;;;5558:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5650:15:1;;5632;5650;;;-1:-1:-1;5650:15:1;;;;;;;;5672:36;;;-1:-1:-1;;5672:36:1;;;;;;5650:15;5719:13;;;;;:40;;-1:-1:-1;5736:23:1;;;;5719:40;5715:156;;;5769:11;:13;;-1:-1:-1;;5769:13:1;;;;;;-1:-1:-1;;5769:13:1;;;;;;;5715:156;;;5800:14;;;;:40;;;;;5839:1;5818:18;:22;;;5800:40;5796:75;;;5850:11;:13;;;;;;;;;-1:-1:-1;;5850:13:1;;;;;;5796:75;5882:40;;;;;;;;;;-1:-1:-1;;;;;5882:40:1;;;;;;;;;;;;;5481:447;;;:::o;5253:222::-;-1:-1:-1;;;;;5331:20:1;;;;;;-1:-1:-1;5331:20:1;;;;;;;;:25;5323:34;;;;;;-1:-1:-1;;;;;5425:15:1;;;;;;-1:-1:-1;5425:15:1;;;;;;5401:40;;5412:11;;5425:15;;5401:10;:40::i;:::-;5448:21;5459:6;5467:1;5448:10;:21::i;3326:661::-;3504:14;;;3516:1;3504:14;;;;;;;;;3468:7;;3483:18;;3504:14;;;;;;;;;;;;;;;;;;-1:-1:-1;3483:35:1;;-1:-1:-1;3534:17:1;;-1:-1:-1;;;;;;3534:17:1;;:7;:17::i;:::-;3525:3;3529:1;3525:6;;;;;;;;;;;;;;;;;;:26;;;;3594:11;;;;;;;;;;;;-1:-1:-1;;3594:11:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;3598:1;3594:6;;;;;;;;;;;;;:11;;;;3657:14;3665:5;3657:7;:14::i;:::-;3648:3;3652:1;3648:6;;;;;;;;;;;;;:23;;;;3717:2;3700:20;;;;;;-1:-1:-1;;;;;3700:20:1;;;;;;;;;;;;;;;;;;;;;;3691:3;3695:1;3691:6;;;;;;;;;;;;;:29;;;;3736:14;3744:5;3736:7;:14::i;:::-;3727:3;3731:1;3727:6;;;;;;;;;;;;;:23;;;;3766:4;;3757:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3757:6:1;;:3;;-1:-1:-1;3761:1:1;;-1:-1:-1;3757:6:1;;;;;;;;;;;:13;;;;3786:10;3794:1;3786:7;:10::i;:::-;3777:3;3781:1;3777:6;;;;;;;;;;;;;:19;;;;3812:10;3820:1;3812:7;:10::i;:::-;3803:3;3807:1;3803:6;;;;;;;;;;;;;:19;;;;3834:6;3829:81;3848:1;3846;:3;3829:81;;;3873:29;3895:3;3899:1;3895:6;;;;;;;;;;;;;;3873:21;:29::i;:::-;3864:3;3868:1;3864:6;;;;;;;;;;;;;;;;;:38;3851:3;;3829:81;;;;3925:3;3929:1;3925:6;;;;;;;;;;;;;;3916:3;3920:1;3916:6;;;;;;;;;;;;;:15;;;;3955:25;3976:3;3955:20;:25::i;:::-;3945:36;;;;;;3938:43;;;3326:661;;;;;;;;:::o;3993:562::-;4135:16;;4199:1;4185:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4185:23:1;;4160:48;;4220:6;4215:283;4232:12;;;4215:283;;;4260:14;4277:44;4287:15;4304:1;;4306;4304:4;;;;;;;;;;;;;;;4310:1;;4312;4310:4;;;;;;;;;;;;;4316:1;;4318;4316:4;;;;;;;;;;;;;4277:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4277:44:1;;;-1:-1:-1;;4277:44:1;;-1:-1:-1;;;;;4357:15:1;;4330:24;4357:15;;;-1:-1:-1;4277:44:1;4357:15;;;;;;4277:44;;-1:-1:-1;4357:15:1;;;-1:-1:-1;4389:22:1;;;;;:56;;-1:-1:-1;4415:30:1;;;;-1:-1:-1;4415:30:1;4389:56;4381:83;;;;;-1:-1:-1;;;4381:83:1;;;;;;;;;;;;-1:-1:-1;;;4381:83:1;;;;;;;;;;;;;;;4484:6;4473:5;4479:1;4473:8;;;;;;;;-1:-1:-1;;;;;4473:17:1;;;;:8;;;;;;;;;;;:17;-1:-1:-1;;;4246:3:1;4215:283;;;;4504:26;4524:5;4504:19;:26::i;:::-;4544:5;3993:562;-1:-1:-1;;;;;;;;3993:562:1:o;1430:457:0:-;1532:12;1625:4;:11;1640:1;1625:16;:38;;;;1645:18;1656:6;1645:10;:18::i;:::-;1617:47;;;;;;1676:12;1690:23;1717:6;-1:-1:-1;;;;;1717:11:0;1737:8;1748:4;1717:36;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1717:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:78;;;;1768:7;1764:116;;;1799:10;-1:-1:-1;1792:17:0;;-1:-1:-1;1792:17:0;1764:116;1842:26;;-1:-1:-1;;;1842:26:0;;;;;;;;;;;;;;;;;1856:10;;1842:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:457;;;;;;:::o;2630:262:1:-;2698:6;2730:1;2716:15;;2712:175;;;-1:-1:-1;2755:1:1;2741:16;;2712:175;2876:2;2864:4;;2869:1;2864:7;;;;;;;;;;;-1:-1:-1;;;;;;2864:7:1;2857:21;;;;-1:-1:-1;2850:2:1;2838:4;;2843:1;2838:7;;;;;;;;;;;-1:-1:-1;;;;;;2838:7:1;2831:21;;;;-1:-1:-1;2825:1:1;2813:4;;-1:-1:-1;2813:7:1;;;;;;;;;;;-1:-1:-1;;;;;;2813:7:1;2806:20;;;;-1:-1:-1;2794:4:1;;2799:1;2794:4;:7;;;;;;;;;;;;-1:-1:-1;;;;;2787:15:1;;:40;:66;:92;2780:99;;2712:175;2630:262;;;;:::o;2818:92:3:-;2858:7;2893:8;2818:92;:::o;3152:149::-;3228:4;-1:-1:-1;;;;;3251:11:3;;;;;;;:42;;;;-1:-1:-1;;1427:3:3;-1:-1:-1;;;;;3275:18:3;;;;3266:27;;;;;3152:149::o;2922:104::-;2967:7;3002:8;3014:3;3002:15;2922:104;:::o;3309:215::-;3397:4;-1:-1:-1;;;;;3428:11:3;;;;;3457:8;;;;;:23;;;3477:3;3469:4;:11;;3457:23;:59;;;;-1:-1:-1;;;;;;3501:1:3;-1:-1:-1;;3494:8:3;;3486:17;3485:25;;;:30;3457:59;3450:66;3309:215;-1:-1:-1;;;;;3309:215:3:o;3038:106::-;-1:-1:-1;;;;;3111:25:3;;;;3127:3;3111:19;;;;-1:-1:-1;;3111:19:3;:25;3100:8;:36;3038:106::o;2898:373:1:-;2951:12;2971:8;3002:1;3010:69;3027:4;3017:6;:14;3010:69;;3066:5;;;;;3056:1;3048:9;3010:69;;;-1:-1:-1;3092:6:1;3105:17;3135:3;3125:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3125:14:1;-1:-1:-1;3105:34:1;-1:-1:-1;3160:3:1;3146:102;3165:3;;3146:102;;3209:4;3196:19;;3184:4;3191:1;3189;:3;3184:9;;;;;;;;-1:-1:-1;;;;;;3184:31:1;;;;;;;;;:9;;;:31;-1:-1:-1;3239:1:1;3231:9;;;;;-1:-1:-1;;3170:3:1;3146:102;;;-1:-1:-1;3261:4:1;2898:373;-1:-1:-1;;;;2898:373:1:o;545:265:4:-;608:12;636:4;:11;651:1;636:16;:34;;;;;666:4;656:14;;:4;661:1;656:7;;;;;;;;;;;;-1:-1:-1;;;;;;656:7:4;:14;636:34;633:170;;;-1:-1:-1;694:4:4;687:11;;633:170;738:53;745:4;276;323;738:6;:53::i;:::-;731:60;;;;1021:197;1085:12;1110:17;1130:13;1138:4;1130:7;:13::i;:::-;1110:33;;1161:49;1168:4;369;414;1161:6;:49::i;4561:249:1:-;4639:6;4634:171;4655:5;:12;4651:1;:16;4634:171;;;4699:1;4697:3;;4683:115;4706:5;:12;4702:1;:16;4683:115;;;4756:5;4762:1;4756:8;;;;;;;;;;;;;;-1:-1:-1;;;;;4744:20:1;:5;4750:1;4744:8;;;;;;;;;;;;;;-1:-1:-1;;;;;4744:20:1;;;4736:52;;;;;-1:-1:-1;;;4736:52:1;;;;;;;;;;;;-1:-1:-1;;;4736:52:1;;;;;;;;;;;;;;;4720:3;;4683:115;;;-1:-1:-1;4669:3:1;;4634:171;;1226:1417:4;1423:11;;1313:12;;1393:4;1383:15;;;1455:2;1448:9;;1445:1191;;1474:20;1507:3;1511:1;1507:5;1497:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1497:16:4;;1474:39;;1528:14;1551:3;1528:27;;1633:8;1625:7;:16;1620:22;;1607:7;1615:1;1607:10;;;;;;;;-1:-1:-1;;;;;;1607:35:4;;;;;;;;;:10;;;:35;-1:-1:-1;1764:4:4;1751:18;;1785:32;1751:18;1804:7;1813:3;1785:6;:32::i;:::-;1839:7;1832:14;;;;;;;;;1445:1191;1879:12;1915:3;1933:90;1943:1;1939:3;:5;;;;;;:10;1933:90;;1970:8;;;;;2002:5;1997:10;1933:90;;;2098:20;2140:3;2133:6;2131:1;:8;:12;;;2121:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2121:23:4;;2098:46;;2238:6;2230:7;:14;2225:20;;2212:7;2220:1;2212:10;;;;;;;;-1:-1:-1;;;;;;2212:33:4;;;;;;;;;:10;;;:33;;2297:1;2295:3;;2291:117;2303:6;2300:9;;:1;:9;2291:117;;2385:5;2380:1;2373:6;:8;;;2365:5;:17;2360:3;:23;;;;;;2359:31;;;;;;2348:44;;2335:7;2343:1;2335:10;;;;;;;;-1:-1:-1;;;;;;2335:57:4;;;;;;;;;:10;;;:57;-1:-1:-1;2311:3:4;;;;;2291:117;;;2516:31;;;2533:4;2516:31;2563:32;2516:31;2582:7;2591:3;2563:6;:32::i;:::-;-1:-1:-1;2617:7:4;-1:-1:-1;2610:14:4;;-1:-1:-1;;;;2610:14:4;2655:737;2715:12;2743:4;:11;2758:1;2743:16;2740:67;;;-1:-1:-1;2783:12:4;;;2793:1;2783:12;;;;;;;;2776:19;;2740:67;2819:8;;2838:82;2854:4;:11;2852:1;:13;2838:82;;;2894:4;2899:1;2894:7;;;;;;;;;;;;;;:14;2887:21;;;;2867:3;;;;;;;2838:82;;;;2932:22;2967:3;2957:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2957:14:4;-1:-1:-1;2932:39:4;-1:-1:-1;3052:4:4;3037:20;;2982:17;3071:285;3087:4;:11;3085:1;:13;3071:285;;;3120:17;3140:4;3145:1;3140:7;;;;;;;;;;;;;;3120:27;;3176:12;3235:4;3229;3225:15;3214:26;;3257:42;3264:12;3278:7;3287:4;:11;3257:6;:42::i;:::-;3330:4;3335:1;3330:7;;;;;;;;;;;;;;:14;3314:30;;;;3071:285;;3100:3;;;;;;;3071:285;;;-1:-1:-1;3375:9:4;;2655:737;-1:-1:-1;;;;2655:737:4:o;3467:565::-;3589:170;3602:2;3595:3;:9;3589:170;;3673:10;;3660:24;;3721:2;3713:10;;;;3738:9;;;;-1:-1:-1;;3606:9:4;3589:170;;;3891:10;;3947:11;;3824:2;:8;;;;3816:3;:17;-1:-1:-1;;3816:21:4;3903:9;;3887:26;;;3943:22;;3992:21;3979:35;;3857:168::o
Swarm Source
ipfs://9469361f0335e52310c37059766104d2dc4c55fa72972b7172fcbbcc974cfdc1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.