More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 351,841 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute Meta Tra... | 50888914 | 407 days ago | IN | 0 POL | 0.28378402 | ||||
Execute Meta Tra... | 50888822 | 407 days ago | IN | 0 POL | 0.22897326 | ||||
Execute Meta Tra... | 50888483 | 407 days ago | IN | 0 POL | 0.03033538 | ||||
Execute Meta Tra... | 50888321 | 407 days ago | IN | 0 POL | 0.03176957 | ||||
Execute Meta Tra... | 50888321 | 407 days ago | IN | 0 POL | 0.03184582 | ||||
Execute Meta Tra... | 50888281 | 407 days ago | IN | 0 POL | 0.03027614 | ||||
Execute Meta Tra... | 50888266 | 407 days ago | IN | 0 POL | 0.02937201 | ||||
Execute Meta Tra... | 50888252 | 407 days ago | IN | 0 POL | 0.02973261 | ||||
Execute Meta Tra... | 50888249 | 407 days ago | IN | 0 POL | 0.02962438 | ||||
Execute Meta Tra... | 50888237 | 407 days ago | IN | 0 POL | 0.0295435 | ||||
Execute Meta Tra... | 50888233 | 407 days ago | IN | 0 POL | 0.0303115 | ||||
Execute Meta Tra... | 50888229 | 407 days ago | IN | 0 POL | 0.03207535 | ||||
Execute Meta Tra... | 50888225 | 407 days ago | IN | 0 POL | 0.03228195 | ||||
Execute Meta Tra... | 50888186 | 407 days ago | IN | 0 POL | 0.37838968 | ||||
Execute Meta Tra... | 50888167 | 407 days ago | IN | 0 POL | 0.03301832 | ||||
Execute Meta Tra... | 50888146 | 407 days ago | IN | 0 POL | 0.0383642 | ||||
Execute Meta Tra... | 50888137 | 407 days ago | IN | 0 POL | 0.03698488 | ||||
Execute Meta Tra... | 50888108 | 407 days ago | IN | 0 POL | 0.40239919 | ||||
Execute Meta Tra... | 50888080 | 407 days ago | IN | 0 POL | 0.04161401 | ||||
Execute Meta Tra... | 50887906 | 407 days ago | IN | 0 POL | 0.32528882 | ||||
Execute Meta Tra... | 50887874 | 407 days ago | IN | 0 POL | 0.04507413 | ||||
Execute Meta Tra... | 50887815 | 407 days ago | IN | 0 POL | 0.04052646 | ||||
Execute Meta Tra... | 50887809 | 407 days ago | IN | 0 POL | 0.04080974 | ||||
Execute Meta Tra... | 50887777 | 407 days ago | IN | 0 POL | 0.0409157 | ||||
Execute Meta Tra... | 50887726 | 407 days ago | IN | 0 POL | 0.04050348 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
50888914 | 407 days ago | 1.00999835 POL | ||||
50888914 | 407 days ago | 1.00999835 POL | ||||
50888822 | 407 days ago | 14.1266655 POL | ||||
50888822 | 407 days ago | 14.1266655 POL | ||||
50888186 | 407 days ago | 5.05284431 POL | ||||
50888186 | 407 days ago | 5.05284431 POL | ||||
50888108 | 407 days ago | 5.04999833 POL | ||||
50888108 | 407 days ago | 5.04999833 POL | ||||
50887906 | 407 days ago | 5.04231646 POL | ||||
50887906 | 407 days ago | 5.04231646 POL | ||||
50887687 | 407 days ago | 5.02154265 POL | ||||
50887687 | 407 days ago | 5.02154265 POL | ||||
50887676 | 407 days ago | 1.00336096 POL | ||||
50887676 | 407 days ago | 1.00336096 POL | ||||
50887452 | 407 days ago | 1.00735587 POL | ||||
50887452 | 407 days ago | 1.00735587 POL | ||||
50887417 | 407 days ago | 1.00999836 POL | ||||
50887417 | 407 days ago | 1.00999836 POL | ||||
50887370 | 407 days ago | 1.00824117 POL | ||||
50887370 | 407 days ago | 1.00824117 POL | ||||
50887224 | 407 days ago | 5.04106387 POL | ||||
50887224 | 407 days ago | 5.04106387 POL | ||||
50882595 | 407 days ago | 5.04954915 POL | ||||
50882595 | 407 days ago | 5.04954915 POL | ||||
50879959 | 407 days ago | 5.04999803 POL |
Loading...
Loading
Contract Name:
GasSwap
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.6; import "./EIP712MetaTransaction.sol"; struct Transformation { uint32 _uint32; bytes _bytes; } interface IERC20 { function approve(address spender, uint256 amount) external returns (bool); function transfer(address to, uint256 amount) external returns (bool); function transferFrom(address from, address to, uint256 amount) external returns (bool); } contract GasSwap is EIP712MetaTransaction("GasSwap", "2") { address public owner; address public authorizedTarget; constructor() { owner = msg.sender; authorizedTarget = 0xDef1C0ded9bec7F1a1670819833240f027b25EfF; } modifier onlyOwner() { require(msg.sender == owner, "ONLY_OWNER"); _; } receive() external payable { require(isContract(msgSender()), "REVERT_EOA_DEPOSIT"); } function changeOwner(address newOwner) external onlyOwner { owner = newOwner; } function changeTarget(address newTarget) external onlyOwner { require(isContract(newTarget), "NO_CONTRACT_AT_ADDRESS"); authorizedTarget = newTarget; } function withdrawToken(IERC20 token, uint256 amount) external onlyOwner { require(token.transfer(msg.sender, amount)); } // Transfer ETH held by this contract to the sender/owner. function withdrawETH(uint256 amount) external onlyOwner { payable(msg.sender).transfer(amount); } // Swaps ERC20->MATIC tokens held by this contract using a 0x-API quote. function fillQuote(address spender, bytes calldata swapCallData) external returns (uint256) { (address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,) = abi.decode(swapCallData[4:], (address,address,uint256,uint256,Transformation[])); require(outputToken == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, "INVALID_OUTPUT_TOKEN"); IERC20 sellToken = IERC20(inputToken); require(sellToken.transferFrom(msgSender(), address(this), inputAmount), "TRANSFER_FAILED"); require(sellToken.approve(spender, uint256(0)), "APPROVAL_WIPE_FAILED"); require(sellToken.approve(spender, inputAmount), "REAPPROVAL_FAILED"); (bool success, bytes memory res) = authorizedTarget.call(swapCallData); require(success, string(concat(bytes("SWAP_FAILED: "),bytes(getRevertMsg(res))))); uint256 outputTokenAmount = abi.decode(res, (uint256)); require(outputTokenAmount >= minOutputAmount, "SWAP_VALUE_MISMATCH"); payable(msgSender()).transfer(outputTokenAmount); return outputTokenAmount; } function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function concat(bytes memory a, bytes memory b) internal pure returns (bytes memory) { return abi.encodePacked(a, b); } function getRevertMsg(bytes memory _returnData) internal pure returns (string memory) { if (_returnData.length < 68) return "Transaction reverted silently"; assembly { _returnData := add(_returnData, 0x04) } return abi.decode(_returnData, (string)); } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.6; contract EIP712Base { struct EIP712Domain { string name; string version; address verifyingContract; bytes32 salt; } bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(bytes("EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)")); bytes32 internal domainSeparator; constructor(string memory name, string memory version) { domainSeparator = keccak256(abi.encode( EIP712_DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes(version)), address(this), bytes32(getChainID()) )); } function getChainID() internal view returns (uint256 id) { assembly { id := chainid() } } function getDomainSeparator() private view returns(bytes32) { return domainSeparator; } /** * Accept message hash and returns hash message in EIP712 compatible form * So that it can be used to recover signer from signature signed using EIP712 formatted data * https://eips.ethereum.org/EIPS/eip-712 * "\\x19" makes the encoding deterministic * "\\x01" is the version byte to make it compatible to EIP-191 */ function toTypedMessageHash(bytes32 messageHash) internal view returns(bytes32) { return keccak256(abi.encodePacked("\x19\x01", getDomainSeparator(), messageHash)); } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.6; import "./EIP712Base.sol"; contract EIP712MetaTransaction is EIP712Base { bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256(bytes("MetaTransaction(uint256 nonce,address from,bytes functionSignature)")); event MetaTransactionExecuted(address userAddress, address payable relayerAddress, bytes functionSignature); mapping(address => uint256) private nonces; /* * Meta transaction structure. * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas * He should call the desired function directly in that case. */ struct MetaTransaction { uint256 nonce; address from; bytes functionSignature; } constructor(string memory name, string memory version) EIP712Base(name, version) {} function convertBytesToBytes4(bytes memory inBytes) internal pure returns (bytes4 outBytes4) { if (inBytes.length == 0) { return 0x0; } assembly { outBytes4 := mload(add(inBytes, 32)) } } function executeMetaTransaction(address userAddress, bytes memory functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV) public payable returns(bytes memory) { bytes4 destinationFunctionSig = convertBytesToBytes4(functionSignature); require(destinationFunctionSig != msg.sig, "functionSignature can not be of executeMetaTransaction method"); MetaTransaction memory metaTx = MetaTransaction({ nonce: nonces[userAddress], from: userAddress, functionSignature: functionSignature }); require(verify(userAddress, metaTx, sigR, sigS, sigV), "Signer and signature do not match"); nonces[userAddress] += 1; // Append userAddress at the end to extract it from calling context (bool success, bytes memory returnData) = address(this).call(abi.encodePacked(functionSignature, userAddress)); require(success, "Function call not successful"); emit MetaTransactionExecuted(userAddress, payable(msg.sender), functionSignature); return returnData; } function hashMetaTransaction(MetaTransaction memory metaTx) internal pure returns (bytes32) { return keccak256(abi.encode( META_TRANSACTION_TYPEHASH, metaTx.nonce, metaTx.from, keccak256(metaTx.functionSignature) )); } function getNonce(address user) external view returns(uint256 nonce) { nonce = nonces[user]; } function verify(address user, MetaTransaction memory metaTx, bytes32 sigR, bytes32 sigS, uint8 sigV) internal view returns (bool) { address signer = ecrecover(toTypedMessageHash(hashMetaTransaction(metaTx)), sigV, sigR, sigS); require(signer != address(0), "Invalid signature"); return signer == user; } function msgSender() internal view returns(address sender) { if(msg.sender == address(this)) { bytes memory array = msg.data; uint256 index = msg.data.length; assembly { // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those. sender := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff) } } else { sender = msg.sender; } return sender; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"inputs":[],"name":"authorizedTarget","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTarget","type":"address"}],"name":"changeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"}],"name":"fillQuote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051806040016040528060078152602001660476173537761760cc1b815250604051806040016040528060018152602001601960f91b81525081816040518060800160405280604f81526020016116db604f913980519060200120828051906020012082805190602001203061008c61011560201b60201c565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206000555050600280546001600160a01b031990811633179091556003805490911673def1c0ded9bec7f1a1670819833240f027b25eff179055506101199050565b4690565b6115b3806101286000396000f3fe60806040526004361061009a5760003560e01c80638da5cb5b11610069578063a6f9dae11161004e578063a6f9dae114610209578063dcf7bb5c14610229578063f14210a61461024957600080fd5b80638da5cb5b146101c95780639e281a98146101e957600080fd5b806303e7c56b146101085780630c53c51c146101455780632d0335ab1461016557806370ca1d14146101a957600080fd5b36610103576100b06100aa610269565b3b151590565b6101015760405162461bcd60e51b815260206004820152601260248201527f5245564552545f454f415f4445504f534954000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561011457600080fd5b50600354610128906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610158610153366004611198565b6102c6565b60405161013c91906113f7565b34801561017157600080fd5b5061019b610180366004610f6f565b6001600160a01b031660009081526001602052604090205490565b60405190815260200161013c565b3480156101b557600080fd5b5061019b6101c4366004611113565b610562565b3480156101d557600080fd5b50600254610128906001600160a01b031681565b3480156101f557600080fd5b50610101610204366004611238565b610a28565b34801561021557600080fd5b50610101610224366004610f6f565b610b15565b34801561023557600080fd5b50610101610244366004610f6f565b610b8b565b34801561025557600080fd5b506101016102643660046112db565b610c4f565b6000333014156102c057600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506102c39050565b50335b90565b606060006102d386610cc3565b90506000357fffffffff0000000000000000000000000000000000000000000000000000000090811690821614156103735760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016100f8565b604080516060810182526001600160a01b038916600081815260016020908152908490205483528201529081018790526103b08882888888610cdf565b6104225760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f680000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b6001600160a01b0388166000908152600160208190526040822080549192909161044d9084906114b6565b90915550506040516000908190309061046c908b908d90602001611365565b60408051601f198184030181529082905261048691611349565b6000604051808303816000865af19150503d80600081146104c3576040519150601f19603f3d011682016040523d82523d6000602084013e6104c8565b606091505b50915091508161051a5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016100f8565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b60405161054d939291906113cb565b60405180910390a19998505050505050505050565b600080808080610575866004818a61148c565b8101906105829190610f93565b509350935093509350826001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146106005760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4f55545055545f544f4b454e00000000000000000000000060448201526064016100f8565b836001600160a01b0381166323b872dd610618610269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015230602482015260448101869052606401602060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611216565b6107025760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190611216565b6107d05760405162461bcd60e51b815260206004820152601460248201527f415050524f56414c5f574950455f4641494c454400000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611216565b61089e5760405162461bcd60e51b815260206004820152601160248201527f5245415050524f56414c5f4641494c454400000000000000000000000000000060448201526064016100f8565b60035460405160009182916001600160a01b03909116906108c2908c908c90611339565b6000604051808303816000865af19150503d80600081146108ff576040519150601f19603f3d011682016040523d82523d6000602084013e610904565b606091505b5091509150816109516040518060400160405280600d81526020017f535741505f4641494c45443a200000000000000000000000000000000000000081525061094c84610dc7565b610e2c565b9061096f5760405162461bcd60e51b81526004016100f891906113f7565b5060008180602001905181019061098691906112f4565b9050848110156109d85760405162461bcd60e51b815260206004820152601360248201527f535741505f56414c55455f4d49534d415443480000000000000000000000000060448201526064016100f8565b6109e0610269565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a18573d6000803e3d6000fd5b509b9a5050505050505050505050565b6002546001600160a01b03163314610a6f5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611216565b610b1157600080fd5b5050565b6002546001600160a01b03163314610b5c5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610bd25760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b803b610c205760405162461bcd60e51b815260206004820152601660248201527f4e4f5f434f4e54524143545f41545f414444524553530000000000000000000060448201526064016100f8565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610c965760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b604051339082156108fc029083906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b6000815160001415610cd757506000919050565b506020015190565b6000806001610cf5610cf088610e58565b610ed5565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610d43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610da65760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016100f8565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6060604482511015610e0c57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b60048201915081806020019051810190610e269190611264565b92915050565b60608282604051602001610e4192919061139c565b604051602081830303815290604052905092915050565b600060405180608001604052806043815260200161153b6043913980516020918201208351848301516040808701518051908601209051610eb8950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600080546040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201610eb8565b600082601f830112610f2a57600080fd5b8135610f3d610f3882611464565b611433565b818152846020838601011115610f5257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610f8157600080fd5b8135610f8c81611522565b9392505050565b600080600080600060a08688031215610fab57600080fd5b610fb58635611522565b85359450610fc66020870135611522565b60208601359350604086013592506060860135915067ffffffffffffffff60808701351115610ff457600080fd5b6080860135860187601f82011261100a57600080fd5b67ffffffffffffffff813511156110235761102361150c565b6110336020823560051b01611433565b8082358252602082019150602083018a6020853560051b860101111561105857600080fd5b60005b84358110156111015767ffffffffffffffff8235111561107a57600080fd5b813585016040818e03601f1901121561109257600080fd5b61109a61140a565b602082013563ffffffff8116146110b057600080fd5b6020820135815267ffffffffffffffff604083013511156110d057600080fd5b6110e38e60206040850135850101610f19565b6020828101919091529086529485019492909201915060010161105b565b50508093505050509295509295909350565b60008060006040848603121561112857600080fd5b833561113381611522565b9250602084013567ffffffffffffffff8082111561115057600080fd5b818601915086601f83011261116457600080fd5b81358181111561117357600080fd5b87602082850101111561118557600080fd5b6020830194508093505050509250925092565b600080600080600060a086880312156111b057600080fd5b85356111bb81611522565b9450602086013567ffffffffffffffff8111156111d757600080fd5b6111e388828901610f19565b9450506040860135925060608601359150608086013560ff8116811461120857600080fd5b809150509295509295909350565b60006020828403121561122857600080fd5b81518015158114610f8c57600080fd5b6000806040838503121561124b57600080fd5b823561125681611522565b946020939093013593505050565b60006020828403121561127657600080fd5b815167ffffffffffffffff81111561128d57600080fd5b8201601f8101841361129e57600080fd5b80516112ac610f3882611464565b8181528560208385010111156112c157600080fd5b6112d28260208301602086016114dc565b95945050505050565b6000602082840312156112ed57600080fd5b5035919050565b60006020828403121561130657600080fd5b5051919050565b600081518084526113258160208601602086016114dc565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161135b8184602087016114dc565b9190910192915050565b600083516113778184602088016114dc565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600083516113ae8184602088016114dc565b8351908301906113c28183602088016114dc565b01949350505050565b60006001600160a01b038086168352808516602084015250606060408301526112d2606083018461130d565b602081526000610f8c602083018461130d565b6040805190810167ffffffffffffffff8111828210171561142d5761142d61150c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145c5761145c61150c565b604052919050565b600067ffffffffffffffff82111561147e5761147e61150c565b50601f01601f191660200190565b6000808585111561149c57600080fd5b838611156114a957600080fd5b5050820193919092039150565b600082198211156114d757634e487b7160e01b600052601160045260246000fd5b500190565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461153757600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a264697066735822122071ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db437464736f6c63430008060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429
Deployed Bytecode
0x60806040526004361061009a5760003560e01c80638da5cb5b11610069578063a6f9dae11161004e578063a6f9dae114610209578063dcf7bb5c14610229578063f14210a61461024957600080fd5b80638da5cb5b146101c95780639e281a98146101e957600080fd5b806303e7c56b146101085780630c53c51c146101455780632d0335ab1461016557806370ca1d14146101a957600080fd5b36610103576100b06100aa610269565b3b151590565b6101015760405162461bcd60e51b815260206004820152601260248201527f5245564552545f454f415f4445504f534954000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561011457600080fd5b50600354610128906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610158610153366004611198565b6102c6565b60405161013c91906113f7565b34801561017157600080fd5b5061019b610180366004610f6f565b6001600160a01b031660009081526001602052604090205490565b60405190815260200161013c565b3480156101b557600080fd5b5061019b6101c4366004611113565b610562565b3480156101d557600080fd5b50600254610128906001600160a01b031681565b3480156101f557600080fd5b50610101610204366004611238565b610a28565b34801561021557600080fd5b50610101610224366004610f6f565b610b15565b34801561023557600080fd5b50610101610244366004610f6f565b610b8b565b34801561025557600080fd5b506101016102643660046112db565b610c4f565b6000333014156102c057600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506102c39050565b50335b90565b606060006102d386610cc3565b90506000357fffffffff0000000000000000000000000000000000000000000000000000000090811690821614156103735760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016100f8565b604080516060810182526001600160a01b038916600081815260016020908152908490205483528201529081018790526103b08882888888610cdf565b6104225760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f680000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b6001600160a01b0388166000908152600160208190526040822080549192909161044d9084906114b6565b90915550506040516000908190309061046c908b908d90602001611365565b60408051601f198184030181529082905261048691611349565b6000604051808303816000865af19150503d80600081146104c3576040519150601f19603f3d011682016040523d82523d6000602084013e6104c8565b606091505b50915091508161051a5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016100f8565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b60405161054d939291906113cb565b60405180910390a19998505050505050505050565b600080808080610575866004818a61148c565b8101906105829190610f93565b509350935093509350826001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146106005760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4f55545055545f544f4b454e00000000000000000000000060448201526064016100f8565b836001600160a01b0381166323b872dd610618610269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015230602482015260448101869052606401602060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611216565b6107025760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190611216565b6107d05760405162461bcd60e51b815260206004820152601460248201527f415050524f56414c5f574950455f4641494c454400000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611216565b61089e5760405162461bcd60e51b815260206004820152601160248201527f5245415050524f56414c5f4641494c454400000000000000000000000000000060448201526064016100f8565b60035460405160009182916001600160a01b03909116906108c2908c908c90611339565b6000604051808303816000865af19150503d80600081146108ff576040519150601f19603f3d011682016040523d82523d6000602084013e610904565b606091505b5091509150816109516040518060400160405280600d81526020017f535741505f4641494c45443a200000000000000000000000000000000000000081525061094c84610dc7565b610e2c565b9061096f5760405162461bcd60e51b81526004016100f891906113f7565b5060008180602001905181019061098691906112f4565b9050848110156109d85760405162461bcd60e51b815260206004820152601360248201527f535741505f56414c55455f4d49534d415443480000000000000000000000000060448201526064016100f8565b6109e0610269565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a18573d6000803e3d6000fd5b509b9a5050505050505050505050565b6002546001600160a01b03163314610a6f5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611216565b610b1157600080fd5b5050565b6002546001600160a01b03163314610b5c5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610bd25760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b803b610c205760405162461bcd60e51b815260206004820152601660248201527f4e4f5f434f4e54524143545f41545f414444524553530000000000000000000060448201526064016100f8565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610c965760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b604051339082156108fc029083906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b6000815160001415610cd757506000919050565b506020015190565b6000806001610cf5610cf088610e58565b610ed5565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610d43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610da65760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016100f8565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6060604482511015610e0c57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b60048201915081806020019051810190610e269190611264565b92915050565b60608282604051602001610e4192919061139c565b604051602081830303815290604052905092915050565b600060405180608001604052806043815260200161153b6043913980516020918201208351848301516040808701518051908601209051610eb8950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600080546040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201610eb8565b600082601f830112610f2a57600080fd5b8135610f3d610f3882611464565b611433565b818152846020838601011115610f5257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610f8157600080fd5b8135610f8c81611522565b9392505050565b600080600080600060a08688031215610fab57600080fd5b610fb58635611522565b85359450610fc66020870135611522565b60208601359350604086013592506060860135915067ffffffffffffffff60808701351115610ff457600080fd5b6080860135860187601f82011261100a57600080fd5b67ffffffffffffffff813511156110235761102361150c565b6110336020823560051b01611433565b8082358252602082019150602083018a6020853560051b860101111561105857600080fd5b60005b84358110156111015767ffffffffffffffff8235111561107a57600080fd5b813585016040818e03601f1901121561109257600080fd5b61109a61140a565b602082013563ffffffff8116146110b057600080fd5b6020820135815267ffffffffffffffff604083013511156110d057600080fd5b6110e38e60206040850135850101610f19565b6020828101919091529086529485019492909201915060010161105b565b50508093505050509295509295909350565b60008060006040848603121561112857600080fd5b833561113381611522565b9250602084013567ffffffffffffffff8082111561115057600080fd5b818601915086601f83011261116457600080fd5b81358181111561117357600080fd5b87602082850101111561118557600080fd5b6020830194508093505050509250925092565b600080600080600060a086880312156111b057600080fd5b85356111bb81611522565b9450602086013567ffffffffffffffff8111156111d757600080fd5b6111e388828901610f19565b9450506040860135925060608601359150608086013560ff8116811461120857600080fd5b809150509295509295909350565b60006020828403121561122857600080fd5b81518015158114610f8c57600080fd5b6000806040838503121561124b57600080fd5b823561125681611522565b946020939093013593505050565b60006020828403121561127657600080fd5b815167ffffffffffffffff81111561128d57600080fd5b8201601f8101841361129e57600080fd5b80516112ac610f3882611464565b8181528560208385010111156112c157600080fd5b6112d28260208301602086016114dc565b95945050505050565b6000602082840312156112ed57600080fd5b5035919050565b60006020828403121561130657600080fd5b5051919050565b600081518084526113258160208601602086016114dc565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161135b8184602087016114dc565b9190910192915050565b600083516113778184602088016114dc565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600083516113ae8184602088016114dc565b8351908301906113c28183602088016114dc565b01949350505050565b60006001600160a01b038086168352808516602084015250606060408301526112d2606083018461130d565b602081526000610f8c602083018461130d565b6040805190810167ffffffffffffffff8111828210171561142d5761142d61150c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145c5761145c61150c565b604052919050565b600067ffffffffffffffff82111561147e5761147e61150c565b50601f01601f191660200190565b6000808585111561149c57600080fd5b838611156114a957600080fd5b5050820193919092039150565b600082198211156114d757634e487b7160e01b600052601160045260246000fd5b500190565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461153757600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a264697066735822122071ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db437464736f6c63430008060033
Deployed Bytecode Sourcemap
430:2950:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:23;837:11;:9;:11::i;:::-;2861:20;2907:8;;;2732:190;826:23;818:54;;;;-1:-1:-1;;;818:54:2;;14170:2:3;818:54:2;;;14152:21:3;14209:2;14189:18;;;14182:30;14248:20;14228:18;;;14221:48;14286:18;;818:54:2;;;;;;;;;430:2950;;;;;520:31;;;;;;;;;;-1:-1:-1;520:31:2;;;;-1:-1:-1;;;;;520:31:2;;;;;;-1:-1:-1;;;;;8167:55:3;;;8149:74;;8137:2;8122:18;520:31:2;;;;;;;;1135:1073:1;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2506:106::-;;;;;;;;;;-1:-1:-1;2506:106:1;;;;;:::i;:::-;-1:-1:-1;;;;;2593:12:1;2560:13;2593:12;;;:6;:12;;;;;;;2506:106;;;;15146:25:3;;;15134:2;15119:18;2506:106:1;15101:76:3;1632:1094:2;;;;;;;;;;-1:-1:-1;1632:1094:2;;;;;:::i;:::-;;:::i;494:20::-;;;;;;;;;;-1:-1:-1;494:20:2;;;;-1:-1:-1;;;;;494:20:2;;;1199:152;;;;;;;;;;-1:-1:-1;1199:152:2;;;;;:::i;:::-;;:::i;885:111::-;;;;;;;;;;-1:-1:-1;885:111:2;;;;;:::i;:::-;;:::i;1002:191::-;;;;;;;;;;-1:-1:-1;1002:191:2;;;;;:::i;:::-;;:::i;1420:129::-;;;;;;;;;;-1:-1:-1;1420:129:2;;;;;:::i;:::-;;:::i;2955:526:1:-;2998:14;3027:10;3049:4;3027:27;3024:428;;;3070:18;3091:8;;3070:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3129:8:1;3315:17;3309:24;-1:-1:-1;;;;;3305:73:1;;-1:-1:-1;3024:428:1;;-1:-1:-1;3024:428:1;;-1:-1:-1;3431:10:1;3024:428;2955:526;:::o;1135:1073::-;1291:12;1315:29;1347:39;1368:17;1347:20;:39::i;:::-;1315:71;-1:-1:-1;1430:7:1;;;;;;1404:33;;;;;1396:107;;;;-1:-1:-1;;;1396:107:1;;11251:2:3;1396:107:1;;;11233:21:3;11290:2;11270:18;;;11263:30;11329:34;11309:18;;;11302:62;11400:31;11380:18;;;11373:59;11449:19;;1396:107:1;11223:251:3;1396:107:1;1545:148;;;;;;;;-1:-1:-1;;;;;1582:19:1;;1513:29;1582:19;;;:6;:19;;;;;;;;;1545:148;;;;;;;;;;;1711:45;1589:11;1545:148;1739:4;1745;1751;1711:6;:45::i;:::-;1703:91;;;;-1:-1:-1;;;1703:91:1;;13768:2:3;1703:91:1;;;13750:21:3;13807:2;13787:18;;;13780:30;13846:34;13826:18;;;13819:62;13917:3;13897:18;;;13890:31;13938:19;;1703:91:1;13740:223:3;1703:91:1;-1:-1:-1;;;;;1804:19:1;;;;;;1827:1;1804:19;;;;;;;:24;;1827:1;;1804:19;;:24;;1827:1;;1804:24;:::i;:::-;;;;-1:-1:-1;;1975:48:1;;1915:12;;;;1964:4;;1975:48;;1992:17;;2011:11;;1975:48;;;:::i;:::-;;;;-1:-1:-1;;1975:48:1;;;;;;;;;;1956:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:110;;;;2043:7;2035:48;;;;-1:-1:-1;;;2035:48:1;;10894:2:3;2035:48:1;;;10876:21:3;10933:2;10913:18;;;10906:30;10972;10952:18;;;10945:58;11020:18;;2035:48:1;10866:178:3;2035:48:1;2098:76;2122:11;2143:10;2156:17;2098:76;;;;;;;;:::i;:::-;;;;;;;;2191:10;1135:1073;-1:-1:-1;;;;;;;;;1135:1073:1:o;1632:1094:2:-;1715:7;;;;;1837:16;:12;1850:1;1837:12;;:16;:::i;:::-;1826:80;;;;;;;:::i;:::-;1738:168;;;;;;;;;1924:11;-1:-1:-1;;;;;1924:57:2;1939:42;-1:-1:-1;;;;;1924:57:2;;1916:90;;;;-1:-1:-1;;;1916:90:2;;11681:2:3;1916:90:2;;;11663:21:3;11720:2;11700:18;;;11693:30;11759:22;11739:18;;;11732:50;11799:18;;1916:90:2;11653:170:3;1916:90:2;2042:10;-1:-1:-1;;;;;2071:22:2;;;2094:11;:9;:11::i;:::-;2071:63;;;;;;;;;;-1:-1:-1;;;;;8974:15:3;;;2071:63:2;;;8956:34:3;2115:4:2;9006:18:3;;;8999:43;9058:18;;;9051:34;;;8868:18;;2071:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2063:91;;;;-1:-1:-1;;;2063:91:2;;13424:2:3;2063:91:2;;;13406:21:3;13463:2;13443:18;;;13436:30;13502:17;13482:18;;;13475:45;13537:18;;2063:91:2;13396:165:3;2063:91:2;2172:38;;-1:-1:-1;;;2172:38:2;;-1:-1:-1;;;;;9288:55:3;;;2172:38:2;;;9270:74:3;2207:1:2;9360:18:3;;;9353:34;2172:17:2;;;;;9243:18:3;;2172:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2164:71;;;;-1:-1:-1;;;2164:71:2;;13075:2:3;2164:71:2;;;13057:21:3;13114:2;13094:18;;;13087:30;13153:22;13133:18;;;13126:50;13193:18;;2164:71:2;13047:170:3;2164:71:2;2253:39;;-1:-1:-1;;;2253:39:2;;-1:-1:-1;;;;;9288:55:3;;;2253:39:2;;;9270:74:3;9360:18;;;9353:34;;;2253:17:2;;;;;9243:18:3;;2253:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2245:69;;;;-1:-1:-1;;;2245:69:2;;14517:2:3;2245:69:2;;;14499:21:3;14556:2;14536:18;;;14529:30;14595:19;14575:18;;;14568:47;14632:18;;2245:69:2;14489:167:3;2245:69:2;2359:16;;:35;;2325:12;;;;-1:-1:-1;;;;;2359:16:2;;;;:35;;2381:12;;;;2359:35;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:70;;;;2412:7;2428:55;2435:22;;;;;;;;;;;;;;;;;2464:17;2477:3;2464:12;:17::i;:::-;2428:6;:55::i;:::-;2404:81;;;;;-1:-1:-1;;;2404:81:2;;;;;;;;:::i;:::-;;2495:25;2534:3;2523:26;;;;;;;;;;;;:::i;:::-;2495:54;;2588:15;2567:17;:36;;2559:68;;;;-1:-1:-1;;;2559:68:2;;12376:2:3;2559:68:2;;;12358:21:3;12415:2;12395:18;;;12388:30;12454:21;12434:18;;;12427:49;12493:18;;2559:68:2;12348:169:3;2559:68:2;2645:11;:9;:11::i;:::-;-1:-1:-1;;;;;2637:29:2;:48;2667:17;2637:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2702:17:2;1632:1094;-1:-1:-1;;;;;;;;;;;1632:1094:2:o;1199:152::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;1309:34:::1;::::0;;;;1324:10:::1;1309:34;::::0;::::1;9270:74:3::0;9360:18;;;9353:34;;;-1:-1:-1;;;;;1309:14:2;::::1;::::0;::::1;::::0;9243:18:3;;1309:34:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1301:43;;;::::0;::::1;;1199:152:::0;;:::o;885:111::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;973:5:::1;:16:::0;;-1:-1:-1;;973:16:2::1;-1:-1:-1::0;;;;;973:16:2;;;::::1;::::0;;;::::1;::::0;;885:111::o;1002:191::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;2861:20;;1092:56:::1;;;::::0;-1:-1:-1;;;1092:56:2;;12724:2:3;1092:56:2::1;::::0;::::1;12706:21:3::0;12763:2;12743:18;;;12736:30;12802:24;12782:18;;;12775:52;12844:18;;1092:56:2::1;12696:172:3::0;1092:56:2::1;1158:16;:28:::0;;-1:-1:-1;;1158:28:2::1;-1:-1:-1::0;;;;;1158:28:2;;;::::1;::::0;;;::::1;::::0;;1002:191::o;1420:129::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;1506:36:::1;::::0;1514:10:::1;::::0;1506:36;::::1;;;::::0;1535:6;;1506:36:::1;::::0;;;1535:6;1514:10;1506:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;881:248:1::0;956:16;988:7;:14;1006:1;988:19;984:60;;;-1:-1:-1;1030:3:1;;881:248;-1:-1:-1;881:248:1:o;984:60::-;-1:-1:-1;1109:2:1;1096:16;1090:23;;881:248::o;2618:331::-;2742:4;2758:14;2775:76;2785:47;2804:27;2824:6;2804:19;:27::i;:::-;2785:18;:47::i;:::-;2775:76;;;;;;;;;;;;10070:25:3;;;;10143:4;10131:17;;10111:18;;;10104:45;10165:18;;;10158:34;;;10208:18;;;10201:34;;;10042:19;;2775:76:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2775:76:1;;-1:-1:-1;;2775:76:1;;;-1:-1:-1;;;;;;;2869:20:1;;2861:50;;;;-1:-1:-1;;;2861:50:1;;12030:2:3;2861:50:1;;;12012:21:3;12069:2;12049:18;;;12042:30;12108:19;12088:18;;;12081:47;12145:18;;2861:50:1;12002:167:3;2861:50:1;2938:4;-1:-1:-1;;;;;2928:14:1;:6;-1:-1:-1;;;;;2928:14:1;;2921:21;;;2618:331;;;;;;;:::o;3065:313:2:-;3136:13;3186:2;3165:11;:18;:23;3161:79;;;-1:-1:-1;;3202:38:2;;;;;;;;;;;;;;;;;;3065:313::o;3161:79::-;3306:4;3293:11;3289:22;3274:37;;3349:11;3338:33;;;;;;;;;;;;:::i;:::-;3331:40;3065:313;-1:-1:-1;;3065:313:2:o;2928:131::-;2999:12;3047:1;3050;3030:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3023:29;;2928:131;;;;:::o;2214:286:1:-;2297:7;198:76;;;;;;;;;;;;;;;;;188:87;;;;;;;2396:12;;2422:11;;;;2457:24;;;;;2447:35;;;;;;2333:159;;;;;9629:25:3;;;9685:2;9670:18;;9663:34;;;;-1:-1:-1;;;;;9733:55:3;9728:2;9713:18;;9706:83;9820:2;9805:18;;9798:34;9616:3;9601:19;;9583:255;2333:159:1;;;;;;;;;;;;;2323:170;;;;;;2316:177;;2214:286;;;:::o;1294:178:0:-;1365:7;918:15;;1401:63;;7824:66:3;1401:63:0;;;7812:79:3;7907:11;;;7900:27;;;;7943:12;;;7936:28;;;7980:12;;1401:63:0;7802:196:3;14:462;56:5;109:3;102:4;94:6;90:17;86:27;76:2;;127:1;124;117:12;76:2;163:6;150:20;194:48;210:31;238:2;210:31;:::i;:::-;194:48;:::i;:::-;267:2;258:7;251:19;313:3;306:4;301:2;293:6;289:15;285:26;282:35;279:2;;;330:1;327;320:12;279:2;395;388:4;380:6;376:17;369:4;360:7;356:18;343:55;443:1;418:16;;;436:4;414:27;407:38;;;;422:7;66:410;-1:-1:-1;;;66:410:3:o;481:247::-;540:6;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;648:9;635:23;667:31;692:5;667:31;:::i;:::-;717:5;551:177;-1:-1:-1;;;551:177:3:o;733:1984::-;900:6;908;916;924;932;985:3;973:9;964:7;960:23;956:33;953:2;;;1002:1;999;992:12;953:2;1015:49;1053:9;1040:23;1015:49;:::i;:::-;1096:9;1083:23;1073:33;;1115:58;1168:2;1157:9;1153:18;1140:32;1115:58;:::i;:::-;1220:2;1209:9;1205:18;1192:32;1182:42;;1271:2;1260:9;1256:18;1243:32;1233:42;;1322:2;1311:9;1307:18;1294:32;1284:42;;1376:18;1369:3;1358:9;1354:19;1341:33;1338:57;1335:2;;;1408:1;1405;1398:12;1335:2;1474:3;1463:9;1459:19;1446:33;1435:9;1431:49;1518:7;1511:4;1507:2;1503:13;1499:27;1489:2;;1540:1;1537;1530:12;1489:2;1577:18;1572:2;1559:16;1556:40;1553:2;;;1599:18;;:::i;:::-;1639:50;1685:2;1679;1666:16;1663:1;1659:24;1655:33;1639:50;:::i;:::-;1711:3;1748:2;1735:16;1730:3;1723:29;1777:2;1772:3;1768:12;1761:19;;1808:2;1804;1800:11;1870:7;1865:2;1858;1845:16;1842:1;1838:24;1834:2;1830:33;1826:42;1823:55;1820:2;;;1891:1;1888;1881:12;1820:2;1913:1;1923:764;1950:2;1937:16;1934:1;1931:23;1923:764;;;2021:18;2015:3;2002:17;1999:41;1996:2;;;2053:1;2050;2043:12;1996:2;2088:17;;2080:26;;2158:2;2130:16;;;-1:-1:-1;;2126:30:3;2122:39;2119:2;;;2174:1;2171;2164:12;2119:2;2204:22;;:::i;:::-;2304:2;2296:11;;2283:25;2310:10;2279:42;;2249:73;2239:2;;2336:1;2333;2326:12;2239:2;2388;2384;2380:11;2367:25;2360:5;2353:40;2439:18;2433:2;2429;2425:11;2412:25;2409:49;2406:2;;;2471:1;2468;2461:12;2406:2;2511:70;2573:7;2568:2;2561;2557;2553:11;2540:25;2536:2;2532:34;2528:43;2511:70;:::i;:::-;2506:2;2495:14;;;2488:94;;;;2595:18;;;2633:12;;;;2665;;;;;-1:-1:-1;1969:1:3;1962:9;1923:764;;;1927:3;;2706:5;2696:15;;;;;943:1774;;;;;;;;:::o;2722:726::-;2801:6;2809;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:2;;;2886:1;2883;2876:12;2838:2;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3050:2:3;3035:18;;3022:32;3073:18;3103:14;;;3100:2;;;3130:1;3127;3120:12;3100:2;3168:6;3157:9;3153:22;3143:32;;3213:7;3206:4;3202:2;3198:13;3194:27;3184:2;;3235:1;3232;3225:12;3184:2;3275;3262:16;3301:2;3293:6;3290:14;3287:2;;;3317:1;3314;3307:12;3287:2;3362:7;3357:2;3348:6;3344:2;3340:15;3336:24;3333:37;3330:2;;;3383:1;3380;3373:12;3330:2;3414;3410;3406:11;3396:21;;3436:6;3426:16;;;;;2828:620;;;;;:::o;3453:758::-;3555:6;3563;3571;3579;3587;3640:3;3628:9;3619:7;3615:23;3611:33;3608:2;;;3657:1;3654;3647:12;3608:2;3696:9;3683:23;3715:31;3740:5;3715:31;:::i;:::-;3765:5;-1:-1:-1;3821:2:3;3806:18;;3793:32;3848:18;3837:30;;3834:2;;;3880:1;3877;3870:12;3834:2;3903:49;3944:7;3935:6;3924:9;3920:22;3903:49;:::i;:::-;3893:59;;;3999:2;3988:9;3984:18;3971:32;3961:42;;4050:2;4039:9;4035:18;4022:32;4012:42;;4106:3;4095:9;4091:19;4078:33;4155:4;4146:7;4142:18;4133:7;4130:31;4120:2;;4175:1;4172;4165:12;4120:2;4198:7;4188:17;;;3598:613;;;;;;;;:::o;4216:277::-;4283:6;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4352:1;4349;4342:12;4304:2;4384:9;4378:16;4437:5;4430:13;4423:21;4416:5;4413:32;4403:2;;4459:1;4456;4449:12;4498:329;4580:6;4588;4641:2;4629:9;4620:7;4616:23;4612:32;4609:2;;;4657:1;4654;4647:12;4609:2;4696:9;4683:23;4715:31;4740:5;4715:31;:::i;:::-;4765:5;4817:2;4802:18;;;;4789:32;;-1:-1:-1;;;4599:228:3:o;4832:635::-;4912:6;4965:2;4953:9;4944:7;4940:23;4936:32;4933:2;;;4981:1;4978;4971:12;4933:2;5014:9;5008:16;5047:18;5039:6;5036:30;5033:2;;;5079:1;5076;5069:12;5033:2;5102:22;;5155:4;5147:13;;5143:27;-1:-1:-1;5133:2:3;;5184:1;5181;5174:12;5133:2;5213;5207:9;5238:48;5254:31;5282:2;5254:31;:::i;5238:48::-;5309:2;5302:5;5295:17;5349:7;5344:2;5339;5335;5331:11;5327:20;5324:33;5321:2;;;5370:1;5367;5360:12;5321:2;5383:54;5434:2;5429;5422:5;5418:14;5413:2;5409;5405:11;5383:54;:::i;:::-;5456:5;4923:544;-1:-1:-1;;;;;4923:544:3:o;5472:180::-;5531:6;5584:2;5572:9;5563:7;5559:23;5555:32;5552:2;;;5600:1;5597;5590:12;5552:2;-1:-1:-1;5623:23:3;;5542:110;-1:-1:-1;5542:110:3:o;5657:184::-;5727:6;5780:2;5768:9;5759:7;5755:23;5751:32;5748:2;;;5796:1;5793;5786:12;5748:2;-1:-1:-1;5819:16:3;;5738:103;-1:-1:-1;5738:103:3:o;5846:257::-;5887:3;5925:5;5919:12;5952:6;5947:3;5940:19;5968:63;6024:6;6017:4;6012:3;6008:14;6001:4;5994:5;5990:16;5968:63;:::i;:::-;6085:2;6064:15;-1:-1:-1;;6060:29:3;6051:39;;;;6092:4;6047:50;;5895:208;-1:-1:-1;;5895:208:3:o;6108:271::-;6291:6;6283;6278:3;6265:33;6247:3;6317:16;;6342:13;;;6317:16;6255:124;-1:-1:-1;6255:124:3:o;6384:274::-;6513:3;6551:6;6545:13;6567:53;6613:6;6608:3;6601:4;6593:6;6589:17;6567:53;:::i;:::-;6636:16;;;;;6521:137;-1:-1:-1;;6521:137:3:o;6663:415::-;6820:3;6858:6;6852:13;6874:53;6920:6;6915:3;6908:4;6900:6;6896:17;6874:53;:::i;:::-;6996:2;6992:15;;;;-1:-1:-1;;6988:53:3;6949:16;;;;6974:68;;;7069:2;7058:14;;6828:250;-1:-1:-1;;6828:250:3:o;7083:466::-;7258:3;7296:6;7290:13;7312:53;7358:6;7353:3;7346:4;7338:6;7334:17;7312:53;:::i;:::-;7428:13;;7387:16;;;;7450:57;7428:13;7387:16;7484:4;7472:17;;7450:57;:::i;:::-;7523:20;;7266:283;-1:-1:-1;;;;7266:283:3:o;8234:454::-;8416:4;-1:-1:-1;;;;;8526:2:3;8518:6;8514:15;8503:9;8496:34;8578:2;8570:6;8566:15;8561:2;8550:9;8546:18;8539:43;;8618:2;8613;8602:9;8598:18;8591:30;8638:44;8678:2;8667:9;8663:18;8655:6;8638:44;:::i;10246:217::-;10393:2;10382:9;10375:21;10356:4;10413:44;10453:2;10442:9;10438:18;10430:6;10413:44;:::i;15182:251::-;15254:2;15248:9;;;15284:15;;15329:18;15314:34;;15350:22;;;15311:62;15308:2;;;15376:18;;:::i;:::-;15412:2;15405:22;15228:205;:::o;15438:275::-;15509:2;15503:9;15574:2;15555:13;;-1:-1:-1;;15551:27:3;15539:40;;15609:18;15594:34;;15630:22;;;15591:62;15588:2;;;15656:18;;:::i;:::-;15692:2;15685:22;15483:230;;-1:-1:-1;15483:230:3:o;15718:186::-;15766:4;15799:18;15791:6;15788:30;15785:2;;;15821:18;;:::i;:::-;-1:-1:-1;15887:2:3;15866:15;-1:-1:-1;;15862:29:3;15893:4;15858:40;;15775:129::o;15909:331::-;16014:9;16025;16067:8;16055:10;16052:24;16049:2;;;16089:1;16086;16079:12;16049:2;16118:6;16108:8;16105:20;16102:2;;;16138:1;16135;16128:12;16102:2;-1:-1:-1;;16164:23:3;;;16209:25;;;;;-1:-1:-1;16039:201:3:o;16245:282::-;16285:3;16316:1;16312:6;16309:1;16306:13;16303:2;;;-1:-1:-1;;;16349:1:3;16342:88;16453:4;16450:1;16443:15;16481:4;16478:1;16471:15;16303:2;-1:-1:-1;16512:9:3;;16293:234::o;16532:258::-;16604:1;16614:113;16628:6;16625:1;16622:13;16614:113;;;16704:11;;;16698:18;16685:11;;;16678:39;16650:2;16643:10;16614:113;;;16745:6;16742:1;16739:13;16736:2;;;16780:1;16771:6;16766:3;16762:16;16755:27;16736:2;;16585:205;;;:::o;16795:184::-;-1:-1:-1;;;16844:1:3;16837:88;16944:4;16941:1;16934:15;16968:4;16965:1;16958:15;16984:154;-1:-1:-1;;;;;17063:5:3;17059:54;17052:5;17049:65;17039:2;;17128:1;17125;17118:12;17039:2;17029:109;:::o
Swarm Source
ipfs://71ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db4374
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
POL | 19.16% | $3,272.58 | 0.00062058 | $2.03 | |
POL | 18.48% | $0.371807 | 5.2671 | $1.96 | |
POL | 11.34% | $310.83 | 0.00386713 | $1.2 | |
POL | 11.01% | $14.02 | 0.0832 | $1.17 | |
POL | 9.80% | $0.000023 | 46,009.0576 | $1.04 | |
POL | 5.28% | $0.903422 | 0.619 | $0.5591 | |
POL | 4.74% | $103,745 | 0.00000484 | $0.5021 | |
POL | 4.30% | $0.242654 | 1.8784 | $0.4558 | |
POL | 4.06% | $0.561836 | 0.7667 | $0.4307 | |
POL | 4.05% | $23.73 | 0.0181 | $0.4295 | |
POL | 3.34% | $0.000468 | 756.4307 | $0.3542 | |
POL | 2.96% | $0.516918 | 0.6059 | $0.3132 | |
POL | 1.48% | $0.120773 | 1.2983 | $0.1568 |
[ 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.