UNPKG

@lightlink-network/ll-sdk

Version:

[LightLink] Tools for working with LightLink

825 lines 136 kB
{ "abi": [ { "type": "function", "name": "UPGRADE_INTERFACE_VERSION", "inputs": [], "outputs": [ { "name": "", "type": "string", "internalType": "string" } ], "stateMutability": "view" }, { "type": "function", "name": "calculateHeaderHash", "inputs": [ { "name": "_header", "type": "tuple", "internalType": "struct CanonicalStateChain.Header", "components": [ { "name": "epoch", "type": "uint64", "internalType": "uint64" }, { "name": "l2Height", "type": "uint64", "internalType": "uint64" }, { "name": "prevHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "celestiaPointers", "type": "tuple[]", "internalType": "struct CanonicalStateChain.CelestiaPointer[]", "components": [ { "name": "height", "type": "uint64", "internalType": "uint64" }, { "name": "shareStart", "type": "uint24", "internalType": "uint24" }, { "name": "shareLen", "type": "uint16", "internalType": "uint16" } ] } ] } ], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "pure" }, { "type": "function", "name": "chain", "inputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "chainHead", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "challenge", "inputs": [], "outputs": [ { "name": "", "type": "address", "internalType": "address" } ], "stateMutability": "view" }, { "type": "function", "name": "getHead", "inputs": [], "outputs": [ { "name": "", "type": "tuple", "internalType": "struct CanonicalStateChain.Header", "components": [ { "name": "epoch", "type": "uint64", "internalType": "uint64" }, { "name": "l2Height", "type": "uint64", "internalType": "uint64" }, { "name": "prevHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "celestiaPointers", "type": "tuple[]", "internalType": "struct CanonicalStateChain.CelestiaPointer[]", "components": [ { "name": "height", "type": "uint64", "internalType": "uint64" }, { "name": "shareStart", "type": "uint24", "internalType": "uint24" }, { "name": "shareLen", "type": "uint16", "internalType": "uint16" } ] } ] } ], "stateMutability": "view" }, { "type": "function", "name": "getHeaderByHash", "inputs": [ { "name": "_hash", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "", "type": "tuple", "internalType": "struct CanonicalStateChain.Header", "components": [ { "name": "epoch", "type": "uint64", "internalType": "uint64" }, { "name": "l2Height", "type": "uint64", "internalType": "uint64" }, { "name": "prevHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "celestiaPointers", "type": "tuple[]", "internalType": "struct CanonicalStateChain.CelestiaPointer[]", "components": [ { "name": "height", "type": "uint64", "internalType": "uint64" }, { "name": "shareStart", "type": "uint24", "internalType": "uint24" }, { "name": "shareLen", "type": "uint16", "internalType": "uint16" } ] } ] } ], "stateMutability": "view" }, { "type": "function", "name": "getHeaderByNum", "inputs": [ { "name": "_index", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "tuple", "internalType": "struct CanonicalStateChain.Header", "components": [ { "name": "epoch", "type": "uint64", "internalType": "uint64" }, { "name": "l2Height", "type": "uint64", "internalType": "uint64" }, { "name": "prevHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "celestiaPointers", "type": "tuple[]", "internalType": "struct CanonicalStateChain.CelestiaPointer[]", "components": [ { "name": "height", "type": "uint64", "internalType": "uint64" }, { "name": "shareStart", "type": "uint24", "internalType": "uint24" }, { "name": "shareLen", "type": "uint16", "internalType": "uint16" } ] } ] } ], "stateMutability": "view" }, { "type": "function", "name": "getL2Output", "inputs": [ { "name": "_index", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "tuple", "internalType": "struct CanonicalStateChain.Output", "components": [ { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "timestamp", "type": "uint64", "internalType": "uint64" } ] } ], "stateMutability": "view" }, { "type": "function", "name": "headerMetadata", "inputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "timestamp", "type": "uint64", "internalType": "uint64" }, { "name": "publisher", "type": "address", "internalType": "address" } ], "stateMutability": "view" }, { "type": "function", "name": "initialize", "inputs": [ { "name": "_publisher", "type": "address", "internalType": "address" }, { "name": "_header", "type": "tuple", "internalType": "struct CanonicalStateChain.Header", "components": [ { "name": "epoch", "type": "uint64", "internalType": "uint64" }, { "name": "l2Height", "type": "uint64", "internalType": "uint64" }, { "name": "prevHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "celestiaPointers", "type": "tuple[]", "internalType": "struct CanonicalStateChain.CelestiaPointer[]", "components": [ { "name": "height", "type": "uint64", "internalType": "uint64" }, { "name": "shareStart", "type": "uint24", "internalType": "uint24" }, { "name": "shareLen", "type": "uint16", "internalType": "uint16" } ] } ] } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "maxPointers", "inputs": [], "outputs": [ { "name": "", "type": "uint8", "internalType": "uint8" } ], "stateMutability": "view" }, { "type": "function", "name": "owner", "inputs": [], "outputs": [ { "name": "", "type": "address", "internalType": "address" } ], "stateMutability": "view" }, { "type": "function", "name": "proxiableUUID", "inputs": [], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "publisher", "inputs": [], "outputs": [ { "name": "", "type": "address", "internalType": "address" } ], "stateMutability": "view" }, { "type": "function", "name": "pushBlock", "inputs": [ { "name": "_header", "type": "tuple", "internalType": "struct CanonicalStateChain.Header", "components": [ { "name": "epoch", "type": "uint64", "internalType": "uint64" }, { "name": "l2Height", "type": "uint64", "internalType": "uint64" }, { "name": "prevHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "outputRoot", "type": "bytes32", "internalType": "bytes32" }, { "name": "celestiaPointers", "type": "tuple[]", "internalType": "struct CanonicalStateChain.CelestiaPointer[]", "components": [ { "name": "height", "type": "uint64", "internalType": "uint64" }, { "name": "shareStart", "type": "uint24", "internalType": "uint24" }, { "name": "shareLen", "type": "uint16", "internalType": "uint16" } ] } ] } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "renounceOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "rollback", "inputs": [ { "name": "_blockNumber", "type": "uint256", "internalType": "uint256" }, { "name": "_blockHash", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setChallengeContract", "inputs": [ { "name": "_challenge", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setMaxPointers", "inputs": [ { "name": "_maxPointers", "type": "uint8", "internalType": "uint8" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setPublisher", "inputs": [ { "name": "_publisher", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "startingTimestamp", "inputs": [], "outputs": [ { "name": "", "type": "uint64", "internalType": "uint64" } ], "stateMutability": "view" }, { "type": "function", "name": "transferOwnership", "inputs": [ { "name": "newOwner", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "upgradeToAndCall", "inputs": [ { "name": "newImplementation", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" } ], "outputs": [], "stateMutability": "payable" }, { "type": "event", "name": "BlockAdded", "inputs": [ { "name": "blockNumber", "type": "uint256", "indexed": true, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "ChallengeChanged", "inputs": [ { "name": "challenge", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "Initialized", "inputs": [ { "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" } ], "anonymous": false }, { "type": "event", "name": "OwnershipTransferred", "inputs": [ { "name": "previousOwner", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newOwner", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "PublisherChanged", "inputs": [ { "name": "publisher", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "RolledBack", "inputs": [ { "name": "blockNumber", "type": "uint256", "indexed": true, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "Upgraded", "inputs": [ { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "error", "name": "AddressEmptyCode", "inputs": [ { "name": "target", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "ERC1967InvalidImplementation", "inputs": [ { "name": "implementation", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, { "type": "error", "name": "FailedInnerCall", "inputs": [] }, { "type": "error", "name": "InvalidInitialization", "inputs": [] }, { "type": "error", "name": "NotInitializing", "inputs": [] }, { "type": "error", "name": "OwnableInvalidOwner", "inputs": [ { "name": "owner", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "OwnableUnauthorizedAccount", "inputs": [ { "name": "account", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, { "type": "error", "name": "UUPSUnsupportedProxiableUUID", "inputs": [ { "name": "slot", "type": "bytes32", "internalType": "bytes32" } ] } ], "bytecode": { "object": "0x60a0806040523461002a57306080526119af90816100308239608051818181610c1f0152610cfe0152f35b600080fdfe608060409080825260048036101561001657600080fd5b600092833560e01c9283628f51c6146114705750826328a8d0e41461142f57826334c9bca5146111f557826341d3ecd814610f265782634411470314610ee95782634f1ef28614610c8357826352d1902d14610c0b5782635852cc0c14610be3578263691bc74a14610bc15782636d1005c514610b8c578263715018a614610b225782637255f37e14610a2e57826388786272146109f55782638c72c54e146109cd5782638da5cb5b146109975782638f74b7391461052d578263a25ae557146104bb578263ad3cb1cc14610441578263b37256b9146103d9578263b76971ce146102eb578263cab6366114610285578263d2ef739814610258578263dc281aff1461015c57505063f2fde38b1461012d57600080fd5b346101595760203660031901126101595761015661014961148c565b6101516118a5565b611831565b80f35b80fd5b9091503461025457826003193601126102545782906101796117ba565b5060025482526020926006845281832054835283528082209281519261019e846114d8565b8454916001600160401b0383818095168752851c168186015260036001966001810154868801526002810154606088015201908154926101dd84611543565b946101ea8751968761150e565b84865282860193825282822091935b85851061021857608089018790528751806102148b82611682565b0390f35b898481928a51610227816114f3565b61ffff8c62ffffff895480928a821686521c168584015260581c168c8201528152019301940193916101f9565b8280fd5b83903461028157816003193601126102815760015490516001600160a01b039091168152602090f35b5080fd5b83346101595760203660031901126101595761029f61148c565b6102a76118a5565b81546001600160a01b0319166001600160a01b039190911690811782557f55eb99d77b0e1ed261c0a8d11f026f811b8af01455a2b45189bcc87b93dfbbb78280a280f35b9091503461025457602091826003193601126103d55761030c9392936117ba565b5080358352835280822092815192610323846114d8565b8454916001600160401b0383818095168752851c1681860152600360019660018101548688015260028101546060880152019081549261036284611543565b9461036f8751968761150e565b84865282860193825282822091935b85851061039957608089018790528751806102148b82611682565b898481928a516103a8816114f3565b61ffff8c62ffffff895480928a821686521c168584015260581c168c82015281520193019401939161037e565b8380fd5b8334610159576020366003190112610159576103f361148c565b6103fb6118a5565b600180546001600160a01b0319166001600160a01b039290921691821790557fe06eac444661557e3ac16a5251a66b82c3f985c3e3b15eac7ea4b4fac6eeac2c8280a280f35b839034610281578160031936011261028157805161045e816114a7565b60058152602090640352e302e360dc1b6020820152825193849260208452825192836020860152825b8481106104a557505050828201840152601f01601f19168101030190f35b8181018301518882018801528795508201610487565b838234610281576020908160031936011261025457828285516104dd816114a7565b828152015280358352600682528383205483528152826002818420015492600583526001600160401b03918291205416828551610519816114a7565b858152019081528451938452511690820152f35b90915034610254576020916003198381360112610993578135916001600160401b039182841161098f5760a084830191853603011261098f5786546001600160a01b0316330361094c57610580816117e8565b9360025494858952600688528689205489528388528480888b205416911611156108f757604481013592858952600688528689205484036108a35760848201906105ca82856117fc565b90501561084b576105db82856117fc565b905060ff60035416106107fc576105fa6105f5368661155a565b611791565b96878b52818a5286898c2054166107c2579061061c61069a9392959495611722565b600255878b5289526003888b20606488610635876117e8565b16966001600160401b03199788845416178355610684610657602483016117e8565b84546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16178455565b60019860018401550135600282015501926117fc565b92906106a68484611747565b9189528789209089925b84841061073c57505050505050600254855260068452818386205560058351946106d9866114a7565b428316865233818701908152938752528285209351845492516001600160e01b0319909316911617911b600160401b600160e01b03161790556002547fa37f9fb2f8e66e6e5746e84c33d55fc62d920182d22358f2adc6855d3ac4d4378280a280f35b86610746826117e8565b16828454161783558981013562ffffff811681036107be5783546affffff0000000000000000191660409190911b62ffffff60401b16178355888101359061ffff821682036107be57835461ffff60581b191660589290921b61ffff60581b16919091178355859081906060019301930192916106b0565b8b80fd5b885162461bcd60e51b81528083018b90526014602482015273626c6f636b20616c72656164792065786973747360601b6044820152606490fd5b875162461bcd60e51b81529081018990526024808201527f626c6f636b2068617320746f6f206d616e792063656c657374696120706f696e6044820152637465727360e01b6064820152608490fd5b875162461bcd60e51b8152908101899052602c60248201527f626c6f636b206d75737420686176652061746c65617374206f6e652063656c6560448201526b39ba34b0903837b4b73a32b960a11b6064820152608490fd5b865162461bcd60e51b8152908101889052602860248201527f7072657648617368206d757374206265207468652070726576696f757320626c6044820152670dec6d640d0c2e6d60c31b6064820152608490fd5b855162461bcd60e51b8152808401889052602960248201527f65706f6368206d7573742062652067726561746572207468616e2070726576696044820152680deeae640cae0dec6d60bb1b6064820152608490fd5b845162461bcd60e51b8152808301879052601d60248201527f6f6e6c79207075626c69736865722063616e2061646420626c6f636b730000006044820152606490fd5b8680fd5b8480fd5b8390346102815781600319360112610281576000805160206119838339815191525490516001600160a01b039091168152602090f35b839034610281578160031936011261028157905490516001600160a01b039091168152602090f35b8390346102815781600319360112610281576001600160401b038183806020955260068552818120548152600585522054169051908152f35b9091503461025457602091826003193601126103d557610a4f9392936117ba565b508035835260068452818320548352835280822092815192610a70846114d8565b8454916001600160401b0383818095168752851c16818601526003600196600181015486880152600281015460608801520190815492610aaf84611543565b94610abc8751968761150e565b84865282860193825282822091935b858510610ae657608089018790528751806102148b82611682565b898481928a51610af5816114f3565b61ffff8c62ffffff895480928a821686521c168584015260581c168c820152815201930194019391610acb565b8334610159578060031936011261015957610b3b6118a5565b60008051602061198383398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b838234610281576020366003190112610281573560ff811680910361028157610bb36118a5565b60ff19600354161760035580f35b83903461028157816003193601126102815760209060ff600354169051908152f35b9150346102545760203660031901126102545760209282913581526006845220549051908152f35b8334610159578060031936011261015957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c7657602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b8091925060031936011261025457610c9961148c565b9060249384356001600160401b03811161028157366023820112156102815780850135610cc581611667565b94610cd28551968761150e565b81865260209182870193368a8383010111610ee5578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610eb7575b50610ea757610d376118a5565b81169585516352d1902d60e01b815283818a818b5afa869181610e78575b50610d71575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610e635750853b15610e4f575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610e31575050610e239582915190845af4913d15610e27573d610e15610e0c82611667565b9251928361150e565b81528581943d92013e61191f565b5080f35b506060925061191f565b955095505050505034610e4357505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311610ea0575b610e90818361150e565b8101031261098f57519038610d55565b503d610e86565b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610d2a565b8580fd5b8334610159576020366003190112610159578235906001600160401b03821161015957506105f5602093610f1f9236910161155a565b9051908152f35b915034610254578160031936011261025457610f4061148c565b6001600160401b0392602435848111610ee557610f60903690850161155a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0094855460ff81851c161592828216958615806111ee575b600180981490816111e4575b1590816111db575b506111cb5767ffffffffffffffff1983811688178a5592856111ac575b50610fd59291926118de565b610fdd6118de565b610fe633611831565b89546001600160a01b0319166001600160a01b039190911617895561100a82611791565b91828a52602097885260806003878c208684511685825416178155611057878c86015116829067ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b888401518a8201556060840151600282015501910151918883519361107c8585611747565b01918b52888b2090888c935b8b86861061114057505050505050508780526006865280848920558351916110af836114a7565b428116835233878401908152918952600587528489209251835492516001600160e01b031990931691161790841b600160401b600160e01b03161790556003805460ff19166015179055611101578480f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29368ff000000000000000019815416905551908152a1388080808480f35b8161119e61ffff8d8695518d815116898b5416178a5561118162ffffff87830151168b9062ffffff60401b82549160401b169062ffffff60401b1916179055565b0151885461ffff60581b1916911660581b61ffff60581b16178755565b019301930192918990611088565b68ffffffffffffffffff19166801000000000000000117895538610fc9565b855163f92ee8a960e01b81528890fd5b90501538610fac565b303b159150610fa4565b5084610f98565b83903461028157806003193601126102815760018054843592906001600160a01b031633036113da5760028054841015611385576001840195868511611372578686526006916020916006835260243585892054036113115785969798955b611286575b8888806002557fbd56a1ce5e71ef906a2c86c43372d012f8ab2422ff19bfdba9b686ac0936f86f8280a280f35b8154861161130c578587968a52848452858a20548a528184526003868b208b81558b898201558b85820155018054908b8155816112ef575b5050806112e9918b52858552868b20548b52600585528a87812055808b528585528a87812055611722565b95611254565b8b52848b20908101905b818110156112be578b81558998016112f9565b611259565b845162461bcd60e51b8152908101839052603560248201527f626c6f636b2068617368206d757374206d6174636820626c6f636b206e756d626044820152740cae4e640e0c2e4cadce840c4d8dec6d640d0c2e6d605b1b6064820152608490fd5b634e487b7160e01b865260119052602485fd5b815162461bcd60e51b8152602081880152602960248201527f626c6f636b206e756d626572206d757374206265206c657373207468616e20636044820152681a185a5b881a19585960ba1b6064820152608490fd5b5162461bcd60e51b8152602081860152602a60248201527f6f6e6c79206368616c6c656e676520636f6e74726163742063616e20726f6c6c6044820152693130b1b59031b430b4b760b11b6064820152608490fd5b91503461025457602036600319011261025457918192358152600560205220548151906001600160401b038116825260018060a01b0390831c166020820152f35b8490346102815781600319360112610281576020906002548152f35b600435906001600160a01b03821682036114a257565b600080fd5b604081019081106001600160401b038211176114c257604052565b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b038211176114c257604052565b606081019081106001600160401b038211176114c257604052565b90601f801991011681019081106001600160401b038211176114c257604052565b35906001600160401b03821682036114a257565b6001600160401b0381116114c25760051b60200190565b919060a0838203126114a257604092835190611575826114d8565b81946115808261152f565b8352602061158f81840161152f565b818501528183013582850152606092606081013560608601526080810135906001600160401b0382116114a257019185601f840112156114a2578235906115d582611543565b966115e28251988961150e565b828852836060818a019402860101948186116114a2578401925b858410611610575050505050505060800152565b86848303126114a257825190611625826114f3565b61162e8561152f565b82528585013562ffffff811681036114a25786830152838501359061ffff821682036114a257828792868b9501528152019301926115fc565b6001600160401b0381116114c257601f01601f191660200190565b90602080835260c08301906001600160401b0380845116828601528184015193816040951660408701528260e0608060408401519360609460608b01526060810151828b015201519760a0808201528851809752019601946000925b8584106116ef575050505050505090565b86518051821689528086015162ffffff168987015282015161ffff168883015296820196958401956001909301926116de565b60001981146117315760010190565b634e487b7160e01b600052601160045260246000fd5b6801000000000000000082116114c25780549180825582811061176957505050565b600091600052602060002092830192015b82811061178657505050565b81815560010161177a565b6040516117b4816117a6602082019485611682565b03601f19810183528261150e565b51902090565b604051906117c7826114d8565b60606080836000815260006020820152600060408201526000838201520152565b356001600160401b03811681036114a25790565b903590601e19813603018212156114a257018035906001600160401b0382116114a2576020019160608202360383136114a257565b6001600160a01b0390811690811561188c5760008051602061198383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020611983833981519152546001600160a01b031633036118c657565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561190d57565b604051631afcd79f60e31b8152600490fd5b90611946575080511561193457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611979575b611957575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561194f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a164736f6c6343000816000a", "sourceMap": "939:9493:0:-:0;;;;;;;1171:4:83;1163:13;;939:9493:0;;;;;;1163:13:83;939:9493:0;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060409080825260048036101561001657600080fd5b600092833560e01c9283628f51c6146114705750826328a8d0e41461142f57826334c9bca5146111f557826341d3ecd814610f265782634411470314610ee95782634f1ef28614610c8357826352d1902d14610c0b5782635852cc0c14610be3578263691bc74a14610bc15782636d1005c514610b8c578263715018a614610b225782637255f37e14610a2e57826388786272146109f55782638c72c54e146109cd5782638da5cb5b146109975782638f74b7391461052d578263a25ae557146104bb578263ad3cb1cc14610441578263b37256b9146103d9578263b76971ce146102eb578263cab6366114610285578263d2ef739814610258578263dc281aff1461015c57505063f2fde38b1461012d57600080fd5b346101595760203660031901126101595761015661014961148c565b6101516118a5565b611831565b80f35b80fd5b9091503461025457826003193601126102545782906101796117ba565b5060025482526020926006845281832054835283528082209281519261019e846114d8565b8454916001600160401b0383818095168752851c168186015260036001966001810154868801526002810154606088015201908154926101dd84611543565b946101ea8751968761150e565b84865282860193825282822091935b85851061021857608089018790528751806102148b82611682565b0390f35b898481928a51610227816114f3565b61ffff8c62ffffff895480928a821686521c168584015260581c168c8201528152019301940193916101f9565b8280fd5b83903461028157816003193601126102815760015490516001600160a01b039091168152602090f35b5080fd5b83346101595760203660031901126101595761029f61148c565b6102a76118a5565b81546001600160a01b0319166001600160a01b039190911690811782557f55eb99d77b0e1ed261c0a8d11f026f811b8af01455a2b45189bcc87b93dfbbb78280a280f35b9091503461025457602091826003193601126103d55761030c9392936117ba565b5080358352835280822092815192610323846114d8565b8454916001600160401b0383818095168752851c1681860152600360019660018101548688015260028101546060880152019081549261036284611543565b9461036f8751968761150e565b84865282860193825282822091935b85851061039957608089018790528751806102148b82611682565b898481928a516103a8816114f3565b61ffff8c62ffffff895480928a821686521c168584015260581c168c82015281520193019401939161037e565b8380fd5b8334610159576020366003190112610159576103f361148c565b6103fb6118a5565b600180546001600160a01b0319166001600160a01b039290921691821790557fe06eac444661557e3ac16a5251a66b82c3f985c3e3b15eac7ea4b4fac6eeac2c8280a280f35b839034610281578160031936011261028157805161045e816114a7565b60058152602090640352e302e360dc1b6020820152825193849260208452825192836020860152825b8481106104a557505050828201840152601f01601f19168101030190f35b8181018301518882018801528795508201610487565b838234610281576020908160031936011261025457828285516104dd816114a7565b828152015280358352600682528383205483528152826002818420015492600583526001600160401b03918291205416828551610519816114a7565b858152019081528451938452511690820152f35b90915034610254576020916003198381360112610993578135916001600160401b039182841161098f5760a084830191853603011261098f5786546001600160a01b0316330361094c57610580816117e8565b9360025494858952600688528689205489528388528480888b205416911611156108f757604481013592858952600688528689205484036108a35760848201906105ca82856117fc565b90501561084b576105db82856117fc565b905060ff60035416106107fc576105fa6105f5368661155a565b611791565b96878b52818a5286898c2054166107c2579061061c61069a9392959495611722565b600255878b5289526003888b20606488610635876117e8565b16966001600160401b03199788845416178355610684610657602483016117e8565b84546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16178455565b60019860018401550135600282015501926117fc565b92906106a68484611747565b9189528789209089925b84841061073c57505050505050600254855260068452818386205560058351946106d9866114a7565b428316865233818701908152938752528285209351845492516001600160e01b0319909316911617911b600160401b600160e01b03161790556002547fa37f9fb2f8e66e6e5746e84c33d55fc62d920182d22358f2adc6855d3ac4d4378280a280f35b86610746826117e8565b16828454161783558981013562ffffff811681036107be5783546affffff0000000000000000191660409190911b62ffffff60401b16178355888101359061ffff821682036107be57835461ffff60581b191660589290921b61ffff60581b16919091178355859081906060019301930192916106b0565b8b80fd5b885162461bcd60e51b81528083018b90526014602482015273626c6f636b20616c72656164792065786973747360601b6044820152606490fd5b875162461bcd60e51b81529081018990526024808201527f626c6f636b2068617320746f6f206d616e792063656c657374696120706f696e6044820152637465727360e01b6064820152608490fd5b875162461bcd60e51b8152908101899052602c60248201527f626c6f636b206d75737420686176652061746c65617374206f6e652063656c6560448201526b39ba34b0903837b4b73a32b960a11b6064820152608490fd5b865162461bcd60e51b8152908101889052602860248201527f7072657648617368206d757374206265207468652070726576696f757320626c6044820152670dec6d640d0c2e6d60c31b6064820152608490fd5b855162461bcd60e51b8152808401889052602960248201527f65706f6368206d7573742062652067726561746572207468616e2070726576696044820152680deeae640cae0dec6d60bb1b6064820152608490fd5b845162461bcd60e51b8152808301879052601d60248201527f6f6e6c79207075626c69736865722063616e2061646420626c6f636b730000006044820152606490fd5b8680fd5b8480fd5b8390346102815781600319360112610281576000805160206119838339815191525490516001600160a01b039091168152602090f35b839034610281578160031936011261028157905490516001600160a01b039091168152602090f35b8390346102815781600319360112610281576001600160401b038183806020955260068552818120548152600585522054169051908152f35b9091503461025457602091826003193601126103d557610a4f9392936117ba565b508035835260068452818320548352835280822092815192610a70846114d8565b8454916001600160401b0383818095168752851c16818601526003600196600181015486880152600281015460608801520190815492610aaf84611543565b94610abc8751968761150e565b84865282860193825282822091935b858510610ae657608089018790528751806102148b82611682565b898481928a51610af5816114f3565b61ffff8c62ffffff895480928a821686521c168584015260581c168c820152815201930194019391610acb565b8334610159578060031936011261015957610b3b6118a5565b60008051602061198383398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b838234610281576020366003190112610281573560ff811680910361028157610bb36118a5565b60ff19600354161760035580f35b83903461028157816003193601126102815760209060ff600354169051908152f35b9150346102545760203660031901126102545760209282913581526006845220549051908152f35b8334610159578060031936011261015957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c7657602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b8091925060031936011261025457610c9961148c565b9060249384356001600160401b03811161028157366023820112156102815780850135610cc581611667565b94610cd28551968761150e565b81865260209182870193368a8383010111610ee5578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610eb7575b50610ea757610d376118a5565b81169585516352d1902d60e01b815283818a818b5afa869181610e78575b50610d71575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610e635750853b15610e4f575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610e31575050610e239582915190845af4913d15610e27573d610e15610e0c82611667565b9251928361150e565b81528581943d92013e61191f565b5080f35b506060925061191f565b955095505050505034610e4357505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311610ea0575b610e90818361150e565b8101031261098f57519038610d55565b503d610e86565b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610d2a565b8580fd5b8334610159576020366003190112610159578235906001600160401b03821161015957506105f5602093610f1f9236910161155a565b9051908152f35b915034610254578160031936011261025457610f4061148c565b6001600160401b0392602435848111610ee557610f60903690850161155a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0094855460ff81851c161592828216958615806111ee575b600180981490816111e4575b1590816111db575b506111cb5767ffffffffffffffff1983811688178a5592856111ac575b50610fd59291926118de565b610fdd6118de565b610fe633611831565b89546001600160a01b0319166001600160a01b039190911617895561100a82611791565b91828a52602097885260806003878c208684511685825416178155611057878c86015116829067ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b888401518a8201556060840151600282015501910151918883519361107c8585611747565b01918b52888b2090888c935b8b86861061114057505050505050508780526006865280848920558351916110af836114a7565b428116835233878401908152918952600587528489209251835492516001600160e01b031990931691161790841b600160401b600160e01b03161790556003805460ff19166015179055611101578480f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29368ff000000000000000019815416905551908152a1388080808480f35b8161119e61ffff8d8695518d815116898b5416178a5561118162ffffff87830151168b9062ffffff60401b82549160401b169062ffffff60401b1916179055565b0151885461ffff60581b1916911660581b61ffff60581b16178755565b019301930192918990611088565b68ffffffffffffffffff19166801000000000000000117895538610fc9565b855163f92ee8a960e01b81528890fd5b90501538610fac565b303b159150610fa4565b5084610f98565b83903461028157806003193601126102815760018054843592906001600160a01b031633036113da5760028054841015611385576001840195868511611372578686526006916020916006835260243585892054036113115785969798955b611286575b8888806002557fbd56a1ce5e71ef906a2c86c43372d012f8ab2422ff19bfdba9b686ac0936f86f8280a280f35b8154861161130c578587968a52848452858a20548a528184526003868b208b81558b898201558b85820155018054908b8155816112ef575b5050806112e9918b52858552868b20548b52600585528a87812055808b528585528a87812055611722565b95611254565b8b52848b20908101905b818110156112be