UNPKG

arnacon-sdk

Version:

A comprehensive SDK for deploying and managing Arnacon smart contracts across multiple networks

865 lines (864 loc) 44.9 kB
{ "_format": "hh-sol-artifact-1", "contractName": "BaseRegistrarImplementation", "sourceName": "contracts/ethregistrar/BaseRegistrarImplementation.sol", "abi": [ { "inputs": [ { "internalType": "contract ENS", "name": "_ens", "type": "address" }, { "internalType": "bytes32", "name": "_baseNode", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "controller", "type": "address" } ], "name": "ControllerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "controller", "type": "address" } ], "name": "ControllerRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "expires", "type": "uint256" } ], "name": "NameMigrated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "expires", "type": "uint256" } ], "name": "NameRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "expires", "type": "uint256" } ], "name": "NameRenewed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "GRACE_PERIOD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "controller", "type": "address" } ], "name": "addController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "available", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseNode", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "controllers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ens", "outputs": [ { "internalType": "contract ENS", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "nameExpires", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "reclaim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "register", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "registerOnly", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "controller", "type": "address" } ], "name": "removeController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "renew", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "resolver", "type": "address" } ], "name": "setResolver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523461039f57611c5b6040813803918261001c816103a4565b93849283398101031261039f5780516001600160a01b038116919082900361039f576020015161004c60206103a4565b916000835261005b60206103a4565b6000815283519092906001600160401b0381116102aa57600054600181811c91168015610395575b602082101461028a57601f8111610331575b50602094601f82116001146102cb579481929394956000926102c0575b50508160011b916000199060031b1c1916176000555b82516001600160401b0381116102aa57600154600181811c911680156102a0575b602082101461028a57601f8111610225575b506020601f82116001146101be57819293946000926101b3575b50508160011b916000199060031b1c1916176001555b331561019d5760068054336001600160a01b0319821681179092556040519391906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3600880546001600160a01b03191691909117905560095561189190816103ca8239f35b631e4fbdf760e01b600052600060045260246000fd5b015190503880610115565b601f198216906001600052806000209160005b81811061020d575095836001959697106101f4575b505050811b0160015561012b565b015160001960f88460031b161c191690553880806101e6565b9192602060018192868b0151815501940192016101d1565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610280575b601f0160051c01905b81811061027457506100fb565b60008155600101610267565b909150819061025e565b634e487b7160e01b600052602260045260246000fd5b90607f16906100e9565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b2565b601f1982169560008052806000209160005b88811061031957508360019596979810610300575b505050811b016000556100c8565b015160001960f88460031b161c191690553880806102f2565b919260206001819286850151815501940192016102dd565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c8101916020841061038b575b601f0160051c01905b81811061037f5750610095565b60008155600101610372565b9091508190610369565b90607f1690610083565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102aa5760405256fe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146111515750806306fdde0314611096578063081812fc14611077578063095ea7b314610f8f5780630e297b4514610dfa57806323b872dd14610de257806328ed4f6c14610c805780633f15457f14610c5757806342842e0e14610c2d5780634e543b2614610b9a5780636352211e14610b6957806370a0823114610b16578063715018a614610ab95780638da5cb5b14610a9057806395d89b411461098357806396e494e81461095a578063a22cb465146108ba578063a7fc7a0714610851578063b88d4fde146107bc578063c1a287e21461079e578063c475abff14610618578063c87b56dd146105bd578063d6e4fa8614610593578063da8c229e14610554578063ddf7fcb014610536578063e985e9c5146104dc578063f2fde38b14610452578063f6a74ed7146103ec5763fca247ac1461016057600080fd5b346103875761016e36611230565b9260018060a09493941b036008541660206009546024604051809481936302571be360e01b835260048301525afa9081156103e15782916103b2575b50306001600160a01b039091160361038757338152600a60205260ff60408220541615610387576101da8261152c565b15610387576101e98442611509565b6276a700810180911161039e576276a70042019081421161038a571115610387576102148442611509565b82825260076020526040822055818152600260205260018060a01b0360408220541661035f575b6001600160a01b03831692831561034b576001600160a01b0361025e8483611764565b16610337576008546009546040516306ab592360e01b81526004810191909152602481018590526001600160a01b0392831660448201529291602091849160649183918691165af190811561032b5760206102f687878787876102fe575b507fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9856102e98542611509565b604051908152a342611509565b604051908152f35b61031d90863d8811610324575b6103158183611294565b8101906114d8565b50856102bc565b503d61030b565b604051903d90823e3d90fd5b6339e3563760e11b82526004829052602482fd5b633250574960e11b82526004829052602482fd5b6001600160a01b03610370836116ca565b1661023b57602491637e27328960e01b8252600452fd5b80fd5b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b82526011600452602482fd5b6103d4915060203d6020116103da575b6103cc8183611294565b8101906114b9565b386101aa565b503d6103c2565b6040513d84823e3d90fd5b5034610387576020366003190112610387576104066111ff565b61040e611832565b6001600160a01b0316808252600a60205260408220805460ff191690557f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811138280a280f35b50346103875760203660031901126103875761046c6111ff565b610474611832565b6001600160a01b031680156104c857600680546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b631e4fbdf760e01b82526004829052602482fd5b50346103875760403660031901126103875760406104f86111ff565b9161050161121a565b9260018060a01b031681526005602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103875780600319360112610387576020600954604051908152f35b50346103875760203660031901126103875760209060ff906040906001600160a01b0361057f6111ff565b168152600a84522054166040519015158152f35b50346103875760203660031901126103875760406020916004358152600783522054604051908152f35b5034610387576020366003190112610387576105da600435611693565b50602090806040516105ec8482611294565b5250604051906105fc8183611294565b600082526106146040519282849384528301906111be565b0390f35b50346103875760403660031901126103875760043560243560018060a01b036008541660206009546024604051809481936302571be360e01b835260048301525afa908115610793578491610774575b50306001600160a01b039091160361074857338352600a60205260ff6040842054161561074857818352600760205260408320546276a70081018091116107605742116107485781835260076020526106c5816040852054611509565b6276a7008101809111610760576276a70082019081831161074c571115610748579181602093604093835260078552610702848420918254611509565b905580825260078452807f9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd685858520548651908152a28152600783522054604051908152f35b8280fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b61078d915060203d6020116103da576103cc8183611294565b38610668565b6040513d86823e3d90fd5b503461038757806003193601126103875760206040516276a7008152f35b5034610387576080366003190112610387576107d66111ff565b6107de61121a565b906064359067ffffffffffffffff821161084d573660238301121561084d578160040135928461080d856112cc565b9361081b6040519586611294565b858552366024878301011161084957856108469660246020930183880137850101526044359161154c565b80f35b5080fd5b8380fd5b50346103875760203660031901126103875761086b6111ff565b610873611832565b6001600160a01b0316808252600a60205260408220805460ff191660011790557f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d74748280a280f35b5034610387576040366003190112610387576108d46111ff565b60243590811515809203610748576001600160a01b03169081156109465733835260056020526040832082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b630b61174360e31b83526004829052602483fd5b503461038757602036600319011261038757602061097960043561152c565b6040519015158152f35b50346103875780600319360112610387576040519080600154908160011c91600181168015610a86575b602084108114610a7257838652908115610a4b57506001146109ee575b610614846109da81860382611294565b6040519182916020835260208301906111be565b600181527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610a31575090915081016020016109da826109ca565b919260018160209254838588010152019101909291610a18565b60ff191660208087019190915292151560051b850190920192506109da91508390506109ca565b634e487b7160e01b83526022600452602483fd5b92607f16926109ad565b50346103875780600319360112610387576006546040516001600160a01b039091168152602090f35b5034610387578060031936011261038757610ad2611832565b600680546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610387576020366003190112610387576001600160a01b03610b386111ff565b168015610b55578160409160209352600383522054604051908152f35b6322718ad960e21b82526004829052602482fd5b5034610387576020366003190112610387576020610b886004356114e7565b6040516001600160a01b039091168152f35b503461038757602036600319011261038757610bb46111ff565b610bbc611832565b8160018060a01b03600854169160095490833b1561074857604051630c4b7b8560e11b815260048101929092526001600160a01b031660248201529181908390604490829084905af18015610c2057610c125780f35b610c1b91611294565b388180f35b50604051903d90823e3d90fd5b503461038757610846610c3f3661125a565b9060405192610c4f602085611294565b85845261154c565b50346103875780600319360112610387576008546040516001600160a01b039091168152602090f35b50346103875760403660031901126103875780600435610c9e61121a565b60018060a01b0360085416600954926040516302571be360e01b8152846004820152602081602481865afa908115610dd7578691610db8575b50306001600160a01b0390911603610d77576001600160a01b03610cfa826114e7565b16803314908115610d9c575b8115610d7b575b5015610d77576040516306ab592360e01b8152600481019490945260248401526001600160a01b03919091166044830152909160209183916064918391905af180156103e157610d5b575080f35b610d739060203d602011610324576103158183611294565b5080f35b8480fd5b86525060056020908152604080872033885290915285205460ff1638610d0d565b9050336001600160a01b03610db0846112e8565b161490610d06565b610dd1915060203d6020116103da576103cc8183611294565b38610cd7565b6040513d88823e3d90fd5b503461038757610846610df43661125a565b9161130d565b503461038757610e0936611230565b9260018060a09493941b036008541660206009546024604051809481936302571be360e01b835260048301525afa9081156103e1578291610f70575b50306001600160a01b039091160361038757338152600a60205260ff6040822054161561038757610e758261152c565b1561038757610e848442611509565b6276a700810180911161039e576276a70042019081421161038a57111561038757610eaf8442611509565b82825260076020526040822055818152600260205260018060a01b03604082205416610f48575b6001600160a01b03831692831561034b576001600160a01b0390610efb908490611764565b16610f345760206102f68585857fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9856102e98542611509565b6339e3563760e11b81526004819052602490fd5b6001600160a01b03610f59836116ca565b16610ed657602491637e27328960e01b8252600452fd5b610f89915060203d6020116103da576103cc8183611294565b38610e45565b503461038757604036600319011261038757610fa96111ff565b602435610fb581611693565b33151580611064575b80611039575b6110265781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258680a4825260046020526040822080546001600160a01b0319166001600160a01b0390921691909117905580f35b63a9fbf51f60e01b845233600452602484fd5b506001600160a01b038116845260056020908152604080862033875290915284205460ff1615610fc4565b506001600160a01b038116331415610fbe565b5034610387576020366003190112610387576020610b886004356112e8565b503461038757806003193601126103875760405190808054908160011c91600181168015611147575b602084108114610a7257838652908115610a4b57506001146110eb57610614846109da81860382611294565b8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b80821061112d575090915081016020016109da826109ca565b919260018160209254838588010152019101909291611114565b92607f16926110bf565b9050346108495760203660031901126108495760043563ffffffff60e01b811680910361074857602092506301ffc9a760e01b81149081156111ad575b811561119c575b5015158152f35b630a3b53db60e21b14905038611195565b6380ac58cd60e01b8114915061118e565b919082519283825260005b8481106111ea575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016111c9565b600435906001600160a01b038216820361121557565b600080fd5b602435906001600160a01b038216820361121557565b606090600319011261121557600435906024356001600160a01b0381168103611215579060443590565b6060906003190112611215576004356001600160a01b038116810361121557906024356001600160a01b0381168103611215579060443590565b90601f8019910116810190811067ffffffffffffffff8211176112b657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116112b657601f01601f191660200190565b6112f181611693565b506000908152600460205260409020546001600160a01b031690565b6001600160a01b03909116919082156114a3576000828152600260205260408120546001600160a01b031693839185903315158061140b575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90826113d6575b83815260036020526040812060018154019055848152600260205260408120846bffffffffffffffffffffffff60a01b82541617905580a46001600160a01b03168083036113bc57505050565b6364283d7b60e01b60005260045260245260445260646000fd5b600085815260046020526040902080546001600160a01b0319169055828152600360205260408120805460001901905561136f565b915091925080611454575b15611425579084849238611346565b83908561143e57602491637e27328960e01b8252600452fd5b60449163177e802f60e01b825233600452602452fd5b503385148015611482575b806114165750838152600460205260408120546001600160a01b03163314611416565b5084815260056020908152604080832033845290915281205460ff1661145f565b633250574960e11b600052600060045260246000fd5b9081602091031261121557516001600160a01b03811681036112155790565b90816020910312611215575190565b8060005260076020526040600020544210156112155761150690611693565b90565b9190820180921161151657565b634e487b7160e01b600052601160045260246000fd5b60005260076020526040600020546276a700810180911161151657421190565b929161155981838661130d565b813b611566575b50505050565b604051630a85bd0160e11b81523360048201526001600160a01b03948516602482015260448101919091526080606482015292169190602090829081906115b19060848301906111be565b03816000865af18091600091611650575b509061161b57503d15611614573d6115d9816112cc565b906115e76040519283611294565b81523d6000602083013e5b8051908161160f5782633250574960e11b60005260045260246000fd5b602001fd5b60606115f2565b6001600160e01b03191663757a42ff60e11b0161163c575038808080611560565b633250574960e11b60005260045260246000fd5b6020813d60201161168b575b8161166960209383611294565b810103126108495751906001600160e01b0319821682036103875750386115c2565b3d915061165c565b6000818152600260205260409020546001600160a01b03169081156116b6575090565b637e27328960e01b60005260045260246000fd5b6000818152600260205260409020546001600160a01b0316908161172d575b600081815260026020526040812080546001600160a01b0319169055827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a490565b600081815260046020526040902080546001600160a01b0319169055816000526003602052604060002060001981540190556116e9565b6000828152600260205260409020546001600160a01b03169190826117fb575b6001600160a01b0316806117e1575b8160005260026020526040600020816bffffffffffffffffffffffff60a01b825416179055827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a490565b806000526003602052604060002060018154019055611793565b600082815260046020526040902080546001600160a01b031916905582600052600360205260406000206000198154019055611784565b6006546001600160a01b0316330361184657565b63118cdaa760e01b6000523360045260246000fdfea2646970667358221220dd9243da2c3bc4b3bb793bb03b701336c71fb98166032071d8c83546c17fdc3264736f6c634300081a0033", "deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a7146111515750806306fdde0314611096578063081812fc14611077578063095ea7b314610f8f5780630e297b4514610dfa57806323b872dd14610de257806328ed4f6c14610c805780633f15457f14610c5757806342842e0e14610c2d5780634e543b2614610b9a5780636352211e14610b6957806370a0823114610b16578063715018a614610ab95780638da5cb5b14610a9057806395d89b411461098357806396e494e81461095a578063a22cb465146108ba578063a7fc7a0714610851578063b88d4fde146107bc578063c1a287e21461079e578063c475abff14610618578063c87b56dd146105bd578063d6e4fa8614610593578063da8c229e14610554578063ddf7fcb014610536578063e985e9c5146104dc578063f2fde38b14610452578063f6a74ed7146103ec5763fca247ac1461016057600080fd5b346103875761016e36611230565b9260018060a09493941b036008541660206009546024604051809481936302571be360e01b835260048301525afa9081156103e15782916103b2575b50306001600160a01b039091160361038757338152600a60205260ff60408220541615610387576101da8261152c565b15610387576101e98442611509565b6276a700810180911161039e576276a70042019081421161038a571115610387576102148442611509565b82825260076020526040822055818152600260205260018060a01b0360408220541661035f575b6001600160a01b03831692831561034b576001600160a01b0361025e8483611764565b16610337576008546009546040516306ab592360e01b81526004810191909152602481018590526001600160a01b0392831660448201529291602091849160649183918691165af190811561032b5760206102f687878787876102fe575b507fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9856102e98542611509565b604051908152a342611509565b604051908152f35b61031d90863d8811610324575b6103158183611294565b8101906114d8565b50856102bc565b503d61030b565b604051903d90823e3d90fd5b6339e3563760e11b82526004829052602482fd5b633250574960e11b82526004829052602482fd5b6001600160a01b03610370836116ca565b1661023b57602491637e27328960e01b8252600452fd5b80fd5b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b82526011600452602482fd5b6103d4915060203d6020116103da575b6103cc8183611294565b8101906114b9565b386101aa565b503d6103c2565b6040513d84823e3d90fd5b5034610387576020366003190112610387576104066111ff565b61040e611832565b6001600160a01b0316808252600a60205260408220805460ff191690557f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811138280a280f35b50346103875760203660031901126103875761046c6111ff565b610474611832565b6001600160a01b031680156104c857600680546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b631e4fbdf760e01b82526004829052602482fd5b50346103875760403660031901126103875760406104f86111ff565b9161050161121a565b9260018060a01b031681526005602052209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b50346103875780600319360112610387576020600954604051908152f35b50346103875760203660031901126103875760209060ff906040906001600160a01b0361057f6111ff565b168152600a84522054166040519015158152f35b50346103875760203660031901126103875760406020916004358152600783522054604051908152f35b5034610387576020366003190112610387576105da600435611693565b50602090806040516105ec8482611294565b5250604051906105fc8183611294565b600082526106146040519282849384528301906111be565b0390f35b50346103875760403660031901126103875760043560243560018060a01b036008541660206009546024604051809481936302571be360e01b835260048301525afa908115610793578491610774575b50306001600160a01b039091160361074857338352600a60205260ff6040842054161561074857818352600760205260408320546276a70081018091116107605742116107485781835260076020526106c5816040852054611509565b6276a7008101809111610760576276a70082019081831161074c571115610748579181602093604093835260078552610702848420918254611509565b905580825260078452807f9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd685858520548651908152a28152600783522054604051908152f35b8280fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b61078d915060203d6020116103da576103cc8183611294565b38610668565b6040513d86823e3d90fd5b503461038757806003193601126103875760206040516276a7008152f35b5034610387576080366003190112610387576107d66111ff565b6107de61121a565b906064359067ffffffffffffffff821161084d573660238301121561084d578160040135928461080d856112cc565b9361081b6040519586611294565b858552366024878301011161084957856108469660246020930183880137850101526044359161154c565b80f35b5080fd5b8380fd5b50346103875760203660031901126103875761086b6111ff565b610873611832565b6001600160a01b0316808252600a60205260408220805460ff191660011790557f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d74748280a280f35b5034610387576040366003190112610387576108d46111ff565b60243590811515809203610748576001600160a01b03169081156109465733835260056020526040832082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b630b61174360e31b83526004829052602483fd5b503461038757602036600319011261038757602061097960043561152c565b6040519015158152f35b50346103875780600319360112610387576040519080600154908160011c91600181168015610a86575b602084108114610a7257838652908115610a4b57506001146109ee575b610614846109da81860382611294565b6040519182916020835260208301906111be565b600181527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610a31575090915081016020016109da826109ca565b919260018160209254838588010152019101909291610a18565b60ff191660208087019190915292151560051b850190920192506109da91508390506109ca565b634e487b7160e01b83526022600452602483fd5b92607f16926109ad565b50346103875780600319360112610387576006546040516001600160a01b039091168152602090f35b5034610387578060031936011261038757610ad2611832565b600680546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610387576020366003190112610387576001600160a01b03610b386111ff565b168015610b55578160409160209352600383522054604051908152f35b6322718ad960e21b82526004829052602482fd5b5034610387576020366003190112610387576020610b886004356114e7565b6040516001600160a01b039091168152f35b503461038757602036600319011261038757610bb46111ff565b610bbc611832565b8160018060a01b03600854169160095490833b1561074857604051630c4b7b8560e11b815260048101929092526001600160a01b031660248201529181908390604490829084905af18015610c2057610c125780f35b610c1b91611294565b388180f35b50604051903d90823e3d90fd5b503461038757610846610c3f3661125a565b9060405192610c4f602085611294565b85845261154c565b50346103875780600319360112610387576008546040516001600160a01b039091168152602090f35b50346103875760403660031901126103875780600435610c9e61121a565b60018060a01b0360085416600954926040516302571be360e01b8152846004820152602081602481865afa908115610dd7578691610db8575b50306001600160a01b0390911603610d77576001600160a01b03610cfa826114e7565b16803314908115610d9c575b8115610d7b575b5015610d77576040516306ab592360e01b8152600481019490945260248401526001600160a01b03919091166044830152909160209183916064918391905af180156103e157610d5b575080f35b610d739060203d602011610324576103158183611294565b5080f35b8480fd5b86525060056020908152604080872033885290915285205460ff1638610d0d565b9050336001600160a01b03610db0846112e8565b161490610d06565b610dd1915060203d6020116103da576103cc8183611294565b38610cd7565b6040513d88823e3d90fd5b503461038757610846610df43661125a565b9161130d565b503461038757610e0936611230565b9260018060a09493941b036008541660206009546024604051809481936302571be360e01b835260048301525afa9081156103e1578291610f70575b50306001600160a01b039091160361038757338152600a60205260ff6040822054161561038757610e758261152c565b1561038757610e848442611509565b6276a700810180911161039e576276a70042019081421161038a57111561038757610eaf8442611509565b82825260076020526040822055818152600260205260018060a01b03604082205416610f48575b6001600160a01b03831692831561034b576001600160a01b0390610efb908490611764565b16610f345760206102f68585857fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9856102e98542611509565b6339e3563760e11b81526004819052602490fd5b6001600160a01b03610f59836116ca565b16610ed657602491637e27328960e01b8252600452fd5b610f89915060203d6020116103da576103cc8183611294565b38610e45565b503461038757604036600319011261038757610fa96111ff565b602435610fb581611693565b33151580611064575b80611039575b6110265781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258680a4825260046020526040822080546001600160a01b0319166001600160a01b0390921691909117905580f35b63a9fbf51f60e01b845233600452602484fd5b506001600160a01b038116845260056020908152604080862033875290915284205460ff1615610fc4565b506001600160a01b038116331415610fbe565b5034610387576020366003190112610387576020610b886004356112e8565b503461038757806003193601126103875760405190808054908160011c91600181168015611147575b602084108114610a7257838652908115610a4b57506001146110eb57610614846109da81860382611294565b8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b80821061112d575090915081016020016109da826109ca565b919260018160209254838588010152019101909291611114565b92607f16926110bf565b9050346108495760203660031901126108495760043563ffffffff60e01b811680910361074857602092506301ffc9a760e01b81149081156111ad575b811561119c575b5015158152f35b630a3b53db60e21b14905038611195565b6380ac58cd60e01b8114915061118e565b919082519283825260005b8481106111ea575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016111c9565b600435906001600160a01b038216820361121557565b600080fd5b602435906001600160a01b038216820361121557565b606090600319011261121557600435906024356001600160a01b0381168103611215579060443590565b6060906003190112611215576004356001600160a01b038116810361121557906024356001600160a01b0381168103611215579060443590565b90601f8019910116810190811067ffffffffffffffff8211176112b657604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116112b657601f01601f191660200190565b6112f181611693565b506000908152600460205260409020546001600160a01b031690565b6001600160a01b03909116919082156114a3576000828152600260205260408120546001600160a01b031693839185903315158061140b575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90826113d6575b83815260036020526040812060018154019055848152600260205260408120846bffffffffffffffffffffffff60a01b82541617905580a46001600160a01b03168083036113bc57505050565b6364283d7b60e01b60005260045260245260445260646000fd5b600085815260046020526040902080546001600160a01b0319169055828152600360205260408120805460001901905561136f565b915091925080611454575b15611425579084849238611346565b83908561143e57602491637e27328960e01b8252600452fd5b60449163177e802f60e01b825233600452602452fd5b503385148015611482575b806114165750838152600460205260408120546001600160a01b03163314611416565b5084815260056020908152604080832033845290915281205460ff1661145f565b633250574960e11b600052600060045260246000fd5b9081602091031261121557516001600160a01b03811681036112155790565b90816020910312611215575190565b8060005260076020526040600020544210156112155761150690611693565b90565b9190820180921161151657565b634e487b7160e01b600052601160045260246000fd5b60005260076020526040600020546276a700810180911161151657421190565b929161155981838661130d565b813b611566575b50505050565b604051630a85bd0160e11b81523360048201526001600160a01b03948516602482015260448101919091526080606482015292169190602090829081906115b19060848301906111be565b03816000865af18091600091611650575b509061161b57503d15611614573d6115d9816112cc565b906115e76040519283611294565b81523d6000602083013e5b8051908161160f5782633250574960e11b60005260045260246000fd5b602001fd5b60606115f2565b6001600160e01b03191663757a42ff60e11b0161163c575038808080611560565b633250574960e11b60005260045260246000fd5b6020813d60201161168b575b8161166960209383611294565b810103126108495751906001600160e01b0319821682036103875750386115c2565b3d915061165c565b6000818152600260205260409020546001600160a01b03169081156116b6575090565b637e27328960e01b60005260045260246000fd5b6000818152600260205260409020546001600160a01b0316908161172d575b600081815260026020526040812080546001600160a01b0319169055827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a490565b600081815260046020526040902080546001600160a01b0319169055816000526003602052604060002060001981540190556116e9565b6000828152600260205260409020546001600160a01b03169190826117fb575b6001600160a01b0316806117e1575b8160005260026020526040600020816bffffffffffffffffffffffff60a01b825416179055827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a490565b806000526003602052604060002060018154019055611793565b600082815260046020526040902080546001600160a01b031916905582600052600360205260406000206000198154019055611784565b6006546001600160a01b0316330361184657565b63118cdaa760e01b6000523360045260246000fdfea2646970667358221220dd9243da2c3bc4b3bb793bb03b701336c71fb98166032071d8c83546c17fdc3264736f6c634300081a0033", "linkReferences": {}, "deployedLinkReferences": {} }