ETH Price: $2,111.98 (-0.96%)

Contract

0x537A7F9D551da3C2800cB11ca17f2946D21029AF

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

TokenRateOracle

Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled
Yes with 100000 runs
Other Settings
default evmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"messenger_","type":"address"},{"internalType":"address","name":"l2ERC20TokenBridge_","type":"address"},{"internalType":"address","name":"l1TokenRatePusher_","type":"address"},{"internalType":"uint256","name":"tokenRateOutdatedDelay_","type":"uint256"},{"internalType":"uint256","name":"maxAllowedL2ToL1ClockLag_","type":"uint256"},{"internalType":"uint256","name":"maxAllowedTokenRateDeviationPerDayBp_","type":"uint256"},{"internalType":"uint256","name":"oldestRateAllowedInPauseTimeSpan_","type":"uint256"},{"internalType":"uint256","name":"minTimeBetweenTokenRateUpdates_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ErrorAlreadyPaused","type":"error"},{"inputs":[],"name":"ErrorAlreadyResumed","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"ErrorL1TimestampExceededAllowedClockLag","type":"error"},{"inputs":[{"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"ErrorL1TimestampExceededMaxAllowedClockLag","type":"error"},{"inputs":[{"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"ErrorL1TimestampOlderThanPrevious","type":"error"},{"inputs":[],"name":"ErrorMaxTokenRateDeviationIsOutOfRange","type":"error"},{"inputs":[],"name":"ErrorNotBridgeOrTokenRatePusher","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"ErrorTokenRateIsOutOfRange","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenRate_","type":"uint256"}],"name":"ErrorTokenRateIsOutOfSaneRange","type":"error"},{"inputs":[],"name":"ErrorTokenRateUpdateTooOld","type":"error"},{"inputs":[],"name":"ErrorUnauthorizedMessenger","type":"error"},{"inputs":[],"name":"ErrorWrongCrossDomainSender","type":"error"},{"inputs":[],"name":"ErrorWrongTokenRateIndex","type":"error"},{"inputs":[],"name":"ErrorZeroAddressAdmin","type":"error"},{"inputs":[],"name":"ErrorZeroAddressL1TokenRatePusher","type":"error"},{"inputs":[],"name":"ErrorZeroAddressL2ERC20TokenBridge","type":"error"},{"inputs":[],"name":"ErrorZeroAddressMessenger","type":"error"},{"inputs":[],"name":"InvalidContractVersionIncrement","type":"error"},{"inputs":[],"name":"NonZeroContractVersionOnInit","type":"error"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"name":"UnexpectedContractVersion","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"version","type":"uint256"}],"name":"ContractVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newRateL1Timestamp_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"currentRateL1Timestamp_","type":"uint256"}],"name":"DormantTokenRateUpdateIgnored","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rateReceivedL2Timestamp","type":"uint256"}],"name":"RateReceivedTimestampUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"RateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"TokenRateL1TimestampIsInFuture","type":"event"},{"anonymous":false,"inputs":[],"name":"TokenRateUpdateAttemptDuringPause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"TokenRateUpdatesPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"rateL1Timestamp_","type":"uint256"}],"name":"TokenRateUpdatesResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newRateL1Timestamp_","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"currentRateL1Timestamp_","type":"uint256"}],"name":"UpdateRateIsTooOften","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"L1_TOKEN_RATE_PUSHER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"L2_ERC20_TOKEN_BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ALLOWED_L2_TO_L1_CLOCK_LAG","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ALLOWED_TOKEN_RATE_DEVIATION_PER_DAY_BP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SANE_TOKEN_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MESSENGER","outputs":[{"internalType":"contract ICrossDomainMessenger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_SANE_TOKEN_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_TIME_BETWEEN_TOKEN_RATE_UPDATES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OLDEST_RATE_ALLOWED_IN_PAUSE_TIME_SPAN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_UPDATE_DISABLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_UPDATE_ENABLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN_RATE_OUTDATED_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenRateIndex_","type":"uint256"}],"name":"getTokenRateByIndex","outputs":[{"components":[{"internalType":"uint128","name":"tokenRate","type":"uint128"},{"internalType":"uint64","name":"rateUpdatedL1Timestamp","type":"uint64"},{"internalType":"uint64","name":"rateReceivedL2Timestamp","type":"uint64"}],"internalType":"struct TokenRateOracle.TokenRateData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenRatesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"internalType":"uint256","name":"rateUpdatedL1Timestamp_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLikelyOutdated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTokenRateUpdatesPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId_","type":"uint80"},{"internalType":"int256","name":"answer_","type":"int256"},{"internalType":"uint256","name":"startedAt_","type":"uint256"},{"internalType":"uint256","name":"updatedAt_","type":"uint256"},{"internalType":"uint80","name":"answeredInRound_","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenRateIndex_","type":"uint256"}],"name":"pauseTokenRateUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"internalType":"uint256","name":"rateUpdatedL1Timestamp_","type":"uint256"}],"name":"resumeTokenRateUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","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":[{"internalType":"uint256","name":"tokenRate_","type":"uint256"},{"internalType":"uint256","name":"rateUpdatedL1Timestamp_","type":"uint256"}],"name":"updateRate","outputs":[],"stateMutability":"nonpayable","type":"function"}]
6101806040523480156200001257600080fd5b506040516200291b3803806200291b833981016040819052620000359162000178565b876001600160a01b0381166200005e57604051635d4339db60e01b815260040160405180910390fd5b6001600160a01b0316608052620000a47f4dd0f6662ba1d6b081f08b350f5e9a6a7b15cf586926ba66f753594928fa64a660001962000157602090811b6200163c17901c565b6001600160a01b038716620000cc5760405163bac34ad960e01b815260040160405180910390fd5b6001600160a01b038616620000f4576040516311d4a29b60e01b815260040160405180910390fd5b82158062000103575061271083115b1562000122576040516318adb27160e01b815260040160405180910390fd5b6001600160a01b0396871660a0529490951660c05260e0929092526101005261012052610140919091526101605250620001f3565b9055565b80516001600160a01b03811681146200017357600080fd5b919050565b600080600080600080600080610100898b0312156200019657600080fd5b620001a1896200015b565b9750620001b160208a016200015b565b9650620001c160408a016200015b565b9550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b60805160a05160c05160e05161010051610120516101405161016051612675620002a66000396000818161051a0152610d1c01526000818161022201526111570152600081816104f30152611d240152600081816105410152818161077401528181610b92015261135501526000818161040501526109e801526000818161057b01526119350152600081816104c40152611883015260008181610478015281816118df015261196c01526126756000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637a1ac61e1161010f578063a14a3a24116100a2578063ccac043411610071578063ccac04341461053c578063d547741f14610563578063fbe939a014610576578063feaf968c1461059d57600080fd5b8063a14a3a24146104bf578063a217fddf146104e6578063bc180be8146104ee578063bfd290a41461051557600080fd5b8063882bd77d116100de578063882bd77d146104005780638aa104351461042757806391d148541461042f578063927ede2d1461047357600080fd5b80637a1ac61e1461036557806380416b88146103785780638076f9e8146103d1578063842170f7146103f857600080fd5b80632fd39d64116101875780634aab251a116101565780634aab251a1461031b57806350d25bcd146103425780635dd6b3701461034a578063673489b11461035257600080fd5b80632fd39d64146102e6578063313ce567146102ee57806336568abe146102f5578063405abb411461030857600080fd5b806316cd0362116101c357806316cd036214610281578063248a9ca3146102965780632e0f2625146102b95780632f2ff15d146102d357600080fd5b806301ffc9a7146101f55780630d42a7d61461021d5780630e43df141461025257806311b5811214610279575b600080fd5b6102086102033660046120d8565b6105dc565b60405190151581526020015b60405180910390f35b6102447f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610214565b6102447f1e8b59162351029dd98a93e3f40b9a963abf5ee753e69105079697f8cb505af381565b610244610675565b61029461028f36600461211a565b61068f565b005b6102446102a436600461213c565b60009081526020819052604090206001015490565b6102c1601b81565b60405160ff9091168152602001610214565b6102946102e1366004612177565b6109ba565b6102086109e4565b601b6102c1565b610294610303366004612177565b610a55565b61029461031636600461211a565b610b08565b6102447f5a883d2caeb13c05f1649a05c9c61c1deb622a06bff8d94d071d35c5ad8c2c9481565b610244610fac565b61024461102b565b61029461036036600461213c565b611037565b6102946103733660046121a7565b611286565b61038b61038636600461213c565b6114c0565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff908116918301919091529282015190921690820152606001610214565b7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d2654610244565b610208611553565b6102447f000000000000000000000000000000000000000000000000000000000000000081565b61024461155d565b61020861043d366004612177565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61049a7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610214565b61049a7f000000000000000000000000000000000000000000000000000000000000000081565b610244600081565b6102447f000000000000000000000000000000000000000000000000000000000000000081565b6102447f000000000000000000000000000000000000000000000000000000000000000081565b6102447f000000000000000000000000000000000000000000000000000000000000000081565b610294610571366004612177565b611587565b61049a7f000000000000000000000000000000000000000000000000000000000000000081565b6105a56115ac565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610214565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061066f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6106816002601b61220b565b61068c90600a61234e565b81565b7f5a883d2caeb13c05f1649a05c9c61c1deb622a06bff8d94d071d35c5ad8c2c946106b981611640565b6106c161164d565b6106f7576040517ffef4699300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107036002601b61220b565b61070e90600a61234e565b8310806107305750610722601b600261235d565b61072d90600a61234e565b83115b1561076f576040517fd86902a5000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b6107997f000000000000000000000000000000000000000000000000000000000000000042612382565b8211156107d5576040517f106c81b100000000000000000000000000000000000000000000000000000000815260048101839052602401610766565b6107dd611677565b54700100000000000000000000000000000000900467ffffffffffffffff16821015610838576040517f8716566200000000000000000000000000000000000000000000000000000000815260048101839052602401610766565b6109378383427fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26604080516060810182526fffffffffffffffffffffffffffffffff958616815267ffffffffffffffff9485166020808301918252948616928201928352835460018101855560009485529490932090519301805492519151851678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff92909516700100000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931693909516929092171716179055565b61094160006116af565b817f74c329375918146936c6defccdbabd509023d6839ce07218ed589158568eb4de8460405161097391815260200190565b60405180910390a2817fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d1916846040516109ad91815260200190565b60405180910390a2505050565b6000828152602081905260409020600101546109d581611640565b6109df83836116d8565b505050565b60007f0000000000000000000000000000000000000000000000000000000000000000610a0f611677565b54610a4091907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16612382565b421180610a505750610a5061164d565b905090565b73ffffffffffffffffffffffffffffffffffffffff81163314610afa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610766565b610b0482826117c8565b5050565b610b113361187f565b610b47576040517fa97b330100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4f61164d565b15610b81576040517fb2060185a4d2afae65ae653883a35989c4a457d46be023d7ca17f5f09b124fd990600090a15050565b6000610b8b611677565b9050610bb77f000000000000000000000000000000000000000000000000000000000000000042612382565b821115610bfa576040517fd73b40ae0000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610766565b8054700100000000000000000000000000000000900467ffffffffffffffff16821015610c7357805460405170010000000000000000000000000000000090910467ffffffffffffffff169083907ffaa0ce015a4ea00d0246bd2e8280972df2297522b812fcb5b47eae66ff19537a90600090a3505050565b8054700100000000000000000000000000000000900467ffffffffffffffff16821415610d1457805467ffffffffffffffff4290811678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9092169190911782556040517f2a546807251eae099f8c990bb960ef40de2d3fbc5b51dde7a04b1837f40d3a2890600090a2505050565b8054610d5f907f000000000000000000000000000000000000000000000000000000000000000090700100000000000000000000000000000000900467ffffffffffffffff16612382565b821015610db857805460405170010000000000000000000000000000000090910467ffffffffffffffff169083907f6efe9409e7f5944320a82e8b08ac78c38cb7c2ba9aa20885be2768c542017df190600090a3505050565b8054610df8906fffffffffffffffffffffffffffffffff8116908590700100000000000000000000000000000000900467ffffffffffffffff1685611a26565b610e38576040517f6403c1c70000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610766565b42821115610e7b57817f6aca59d565c890fc85031b9461c3abc72c6d82e696ca27dc6906ab5bfaf477c584604051610e7291815260200190565b60405180910390a25b610f7a8383427fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26604080516060810182526fffffffffffffffffffffffffffffffff958616815267ffffffffffffffff9485166020808301918252948616928201928352835460018101855560009485529490932090519301805492519151851678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff92909516700100000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931693909516929092171716179055565b817fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d1916846040516109ad91815260200190565b600080610fb7611677565b6040805160608101825291546fffffffffffffffffffffffffffffffff811680845267ffffffffffffffff7001000000000000000000000000000000008304811660208601527801000000000000000000000000000000000000000000000000909204909116929091019190915292915050565b610681601b600261235d565b7f1e8b59162351029dd98a93e3f40b9a963abf5ee753e69105079697f8cb505af361106181611640565b61106961164d565b156110a0576040517f73e939ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110ab83611a61565b6040805160608101825291546fffffffffffffffffffffffffffffffff8116835267ffffffffffffffff700100000000000000000000000000000000820481166020850152780100000000000000000000000000000000000000000000000090910416908201529050600161113d7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d2690565b54611148919061239a565b831415801561118d575061117c7f00000000000000000000000000000000000000000000000000000000000000004261239a565b816040015167ffffffffffffffff16105b156111c4576040517fa070ddee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111cd83611b00565b6111d760016116af565b60208082015182516040516fffffffffffffffffffffffffffffffff909116815267ffffffffffffffff909116917f8c09dc8e7131bdaafd6dfac4a3c44132e89051217c79a65c72829b5172e9e9a6910160405180910390a260208082015182516040516fffffffffffffffffffffffffffffffff909116815267ffffffffffffffff909116917fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d191691016109ad565b6112906001611bd0565b73ffffffffffffffffffffffffffffffffffffffff83166112dd576040517fc6ab211700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e96002601b61220b565b6112f490600a61234e565b8210806113165750611308601b600261235d565b61131390600a61234e565b82115b15611350576040517fd86902a500000000000000000000000000000000000000000000000000000000815260048101839052602401610766565b61137a7f000000000000000000000000000000000000000000000000000000000000000042612382565b8111156113b6576040517f106c81b100000000000000000000000000000000000000000000000000000000815260048101829052602401610766565b6113c16000846116d8565b6109df8282427fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26604080516060810182526fffffffffffffffffffffffffffffffff958616815267ffffffffffffffff9485166020808301918252948616928201928352835460018101855560009485529490932090519301805492519151851678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff92909516700100000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931693909516929092171716179055565b60408051606081018252600080825260208201819052918101919091526114e682611a61565b6040805160608101825291546fffffffffffffffffffffffffffffffff8116835267ffffffffffffffff7001000000000000000000000000000000008204811660208501527801000000000000000000000000000000000000000000000000909104169082015292915050565b6000610a5061164d565b6000610a507f4dd0f6662ba1d6b081f08b350f5e9a6a7b15cf586926ba66f753594928fa64a65490565b6000828152602081905260409020600101546115a281611640565b6109df83836117c8565b6000806000806000806115bd611677565b6040805160608101825291546fffffffffffffffffffffffffffffffff811680845267ffffffffffffffff70010000000000000000000000000000000083048116602086018190527801000000000000000000000000000000000000000000000000909304169390920183905298909750889650909450859350915050565b9055565b61164a8133611c18565b50565b6000610a507f0133fe49a9684f44ae5928d6aef02b435a3b70175343dba35a4548c3da48ac565490565b6000610a5060017fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26546116aa919061239a565b611a61565b61164a7f0133fe49a9684f44ae5928d6aef02b435a3b70175343dba35a4548c3da48ac56829055565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b045760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561176a3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610b045760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118dd57506001919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a1157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906123b1565b73ffffffffffffffffffffffffffffffffffffffff16145b15611a1e57506001919050565b506000919050565b600080611a338385611ce8565b9050611a3f8682611d52565b8511158015611a575750611a538682611da0565b8510155b9695505050505050565b60007fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26548210611abd576040517f7e936eca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d268281548110611aef57611aef6123ce565b906000526020600020019050919050565b7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d2654808210611b2d575050565b60006001611b3b848461239a565b611b45919061239a565b905060005b81811015611bca577fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26805480611b8257611b826123fd565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081019190915501905580611bc28161242c565b915050611b4a565b50505050565b611bd861155d565b15611c0f576040517f61394a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61164a81611e09565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b0457611c6e8173ffffffffffffffffffffffffffffffffffffffff166014611e68565b611c79836020611e68565b604051602001611c8a929190612491565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261076691600401612512565b600080611cf5838561239a565b90506000620151806001611d098285612382565b611d13919061239a565b611d1d9190612563565b9050611d497f00000000000000000000000000000000000000000000000000000000000000008261259e565b95945050505050565b600080612710611d628482612382565b611d6c908661259e565b611d769190612563565b9050611d9881611d88601b600261235d565b611d9390600a61234e565b6120b2565b949350505050565b600080611daf6002601b61220b565b611dba90600a61234e565b90506127108311611de957612710611dd2848261239a565b611ddc908661259e565b611de69190612563565b90505b611d9881611df96002601b61220b565b611e0490600a61234e565b6120c8565b611e327f4dd0f6662ba1d6b081f08b350f5e9a6a7b15cf586926ba66f753594928fa64a6829055565b6040518181527ffddcded6b4f4730c226821172046b48372d3cd963c159701ae1b7c3bcac541bb9060200160405180910390a150565b60606000611e7783600261259e565b611e82906002612382565b67ffffffffffffffff811115611e9a57611e9a6125db565b6040519080825280601f01601f191660200182016040528015611ec4576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611efb57611efb6123ce565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f5e57611f5e6123ce565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611f9a84600261259e565b611fa5906001612382565b90505b6001811115612042577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611fe657611fe66123ce565b1a60f81b828281518110611ffc57611ffc6123ce565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361203b8161260a565b9050611fa8565b5083156120ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610766565b9392505050565b60008183106120c157816120ab565b5090919050565b6000818310156120c157816120ab565b6000602082840312156120ea57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146120ab57600080fd5b6000806040838503121561212d57600080fd5b50508035926020909101359150565b60006020828403121561214e57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461164a57600080fd5b6000806040838503121561218a57600080fd5b82359150602083013561219c81612155565b809150509250929050565b6000806000606084860312156121bc57600080fd5b83356121c781612155565b95602085013595506040909401359392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff841680821015612225576122256121dc565b90039392505050565b600181815b8085111561228757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561226d5761226d6121dc565b8085161561227a57918102915b93841c9390800290612233565b509250929050565b60008261229e5750600161066f565b816122ab5750600061066f565b81600181146122c157600281146122cb576122e7565b600191505061066f565b60ff8411156122dc576122dc6121dc565b50506001821b61066f565b5060208310610133831016604e8410600b841016171561230a575081810a61066f565b612314838361222e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612346576123466121dc565b029392505050565b60006120ab60ff84168361228f565b600060ff821660ff84168060ff0382111561237a5761237a6121dc565b019392505050565b60008219821115612395576123956121dc565b500190565b6000828210156123ac576123ac6121dc565b500390565b6000602082840312156123c357600080fd5b81516120ab81612155565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561245e5761245e6121dc565b5060010190565b60005b83811015612480578181015183820152602001612468565b83811115611bca5750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516124c9816017850160208801612465565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612506816028840160208801612465565b01602801949350505050565b6020815260008251806020840152612531816040850160208701612465565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082612599577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125d6576125d66121dc565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081612619576126196121dc565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220092491d5189b5cf74f329d7721dddff9623a0541f01b93d31ef18e0d6d627bf464736f6c634300080a003300000000000000000000000042000000000000000000000000000000000000070000000000000000000000001a513e9b6434a12c7bb5b9af3b21963308dee3720000000000000000000000003f9600439ad97fc6f55c2ac7c118f8fd0595eb740000000000000000000000000000000000000000000000000000000000016da0000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000e10
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637a1ac61e1161010f578063a14a3a24116100a2578063ccac043411610071578063ccac04341461053c578063d547741f14610563578063fbe939a014610576578063feaf968c1461059d57600080fd5b8063a14a3a24146104bf578063a217fddf146104e6578063bc180be8146104ee578063bfd290a41461051557600080fd5b8063882bd77d116100de578063882bd77d146104005780638aa104351461042757806391d148541461042f578063927ede2d1461047357600080fd5b80637a1ac61e1461036557806380416b88146103785780638076f9e8146103d1578063842170f7146103f857600080fd5b80632fd39d64116101875780634aab251a116101565780634aab251a1461031b57806350d25bcd146103425780635dd6b3701461034a578063673489b11461035257600080fd5b80632fd39d64146102e6578063313ce567146102ee57806336568abe146102f5578063405abb411461030857600080fd5b806316cd0362116101c357806316cd036214610281578063248a9ca3146102965780632e0f2625146102b95780632f2ff15d146102d357600080fd5b806301ffc9a7146101f55780630d42a7d61461021d5780630e43df141461025257806311b5811214610279575b600080fd5b6102086102033660046120d8565b6105dc565b60405190151581526020015b60405180910390f35b6102447f000000000000000000000000000000000000000000000000000000000001518081565b604051908152602001610214565b6102447f1e8b59162351029dd98a93e3f40b9a963abf5ee753e69105079697f8cb505af381565b610244610675565b61029461028f36600461211a565b61068f565b005b6102446102a436600461213c565b60009081526020819052604090206001015490565b6102c1601b81565b60405160ff9091168152602001610214565b6102946102e1366004612177565b6109ba565b6102086109e4565b601b6102c1565b610294610303366004612177565b610a55565b61029461031636600461211a565b610b08565b6102447f5a883d2caeb13c05f1649a05c9c61c1deb622a06bff8d94d071d35c5ad8c2c9481565b610244610fac565b61024461102b565b61029461036036600461213c565b611037565b6102946103733660046121a7565b611286565b61038b61038636600461213c565b6114c0565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff908116918301919091529282015190921690820152606001610214565b7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d2654610244565b610208611553565b6102447f0000000000000000000000000000000000000000000000000000000000016da081565b61024461155d565b61020861043d366004612177565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61049a7f000000000000000000000000420000000000000000000000000000000000000781565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610214565b61049a7f0000000000000000000000001a513e9b6434a12c7bb5b9af3b21963308dee37281565b610244600081565b6102447f00000000000000000000000000000000000000000000000000000000000001f481565b6102447f0000000000000000000000000000000000000000000000000000000000000e1081565b6102447f000000000000000000000000000000000000000000000000000000000001518081565b610294610571366004612177565b611587565b61049a7f0000000000000000000000003f9600439ad97fc6f55c2ac7c118f8fd0595eb7481565b6105a56115ac565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610214565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061066f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6106816002601b61220b565b61068c90600a61234e565b81565b7f5a883d2caeb13c05f1649a05c9c61c1deb622a06bff8d94d071d35c5ad8c2c946106b981611640565b6106c161164d565b6106f7576040517ffef4699300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107036002601b61220b565b61070e90600a61234e565b8310806107305750610722601b600261235d565b61072d90600a61234e565b83115b1561076f576040517fd86902a5000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b6107997f000000000000000000000000000000000000000000000000000000000001518042612382565b8211156107d5576040517f106c81b100000000000000000000000000000000000000000000000000000000815260048101839052602401610766565b6107dd611677565b54700100000000000000000000000000000000900467ffffffffffffffff16821015610838576040517f8716566200000000000000000000000000000000000000000000000000000000815260048101839052602401610766565b6109378383427fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26604080516060810182526fffffffffffffffffffffffffffffffff958616815267ffffffffffffffff9485166020808301918252948616928201928352835460018101855560009485529490932090519301805492519151851678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff92909516700100000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931693909516929092171716179055565b61094160006116af565b817f74c329375918146936c6defccdbabd509023d6839ce07218ed589158568eb4de8460405161097391815260200190565b60405180910390a2817fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d1916846040516109ad91815260200190565b60405180910390a2505050565b6000828152602081905260409020600101546109d581611640565b6109df83836116d8565b505050565b60007f0000000000000000000000000000000000000000000000000000000000016da0610a0f611677565b54610a4091907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16612382565b421180610a505750610a5061164d565b905090565b73ffffffffffffffffffffffffffffffffffffffff81163314610afa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610766565b610b0482826117c8565b5050565b610b113361187f565b610b47576040517fa97b330100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4f61164d565b15610b81576040517fb2060185a4d2afae65ae653883a35989c4a457d46be023d7ca17f5f09b124fd990600090a15050565b6000610b8b611677565b9050610bb77f000000000000000000000000000000000000000000000000000000000001518042612382565b821115610bfa576040517fd73b40ae0000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610766565b8054700100000000000000000000000000000000900467ffffffffffffffff16821015610c7357805460405170010000000000000000000000000000000090910467ffffffffffffffff169083907ffaa0ce015a4ea00d0246bd2e8280972df2297522b812fcb5b47eae66ff19537a90600090a3505050565b8054700100000000000000000000000000000000900467ffffffffffffffff16821415610d1457805467ffffffffffffffff4290811678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9092169190911782556040517f2a546807251eae099f8c990bb960ef40de2d3fbc5b51dde7a04b1837f40d3a2890600090a2505050565b8054610d5f907f0000000000000000000000000000000000000000000000000000000000000e1090700100000000000000000000000000000000900467ffffffffffffffff16612382565b821015610db857805460405170010000000000000000000000000000000090910467ffffffffffffffff169083907f6efe9409e7f5944320a82e8b08ac78c38cb7c2ba9aa20885be2768c542017df190600090a3505050565b8054610df8906fffffffffffffffffffffffffffffffff8116908590700100000000000000000000000000000000900467ffffffffffffffff1685611a26565b610e38576040517f6403c1c70000000000000000000000000000000000000000000000000000000081526004810184905260248101839052604401610766565b42821115610e7b57817f6aca59d565c890fc85031b9461c3abc72c6d82e696ca27dc6906ab5bfaf477c584604051610e7291815260200190565b60405180910390a25b610f7a8383427fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26604080516060810182526fffffffffffffffffffffffffffffffff958616815267ffffffffffffffff9485166020808301918252948616928201928352835460018101855560009485529490932090519301805492519151851678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff92909516700100000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931693909516929092171716179055565b817fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d1916846040516109ad91815260200190565b600080610fb7611677565b6040805160608101825291546fffffffffffffffffffffffffffffffff811680845267ffffffffffffffff7001000000000000000000000000000000008304811660208601527801000000000000000000000000000000000000000000000000909204909116929091019190915292915050565b610681601b600261235d565b7f1e8b59162351029dd98a93e3f40b9a963abf5ee753e69105079697f8cb505af361106181611640565b61106961164d565b156110a0576040517f73e939ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110ab83611a61565b6040805160608101825291546fffffffffffffffffffffffffffffffff8116835267ffffffffffffffff700100000000000000000000000000000000820481166020850152780100000000000000000000000000000000000000000000000090910416908201529050600161113d7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d2690565b54611148919061239a565b831415801561118d575061117c7f00000000000000000000000000000000000000000000000000000000000151804261239a565b816040015167ffffffffffffffff16105b156111c4576040517fa070ddee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111cd83611b00565b6111d760016116af565b60208082015182516040516fffffffffffffffffffffffffffffffff909116815267ffffffffffffffff909116917f8c09dc8e7131bdaafd6dfac4a3c44132e89051217c79a65c72829b5172e9e9a6910160405180910390a260208082015182516040516fffffffffffffffffffffffffffffffff909116815267ffffffffffffffff909116917fb38780ddde1f073d91c150de2696f3f7085883648ba21cc5ef01029cb21d191691016109ad565b6112906001611bd0565b73ffffffffffffffffffffffffffffffffffffffff83166112dd576040517fc6ab211700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e96002601b61220b565b6112f490600a61234e565b8210806113165750611308601b600261235d565b61131390600a61234e565b82115b15611350576040517fd86902a500000000000000000000000000000000000000000000000000000000815260048101839052602401610766565b61137a7f000000000000000000000000000000000000000000000000000000000001518042612382565b8111156113b6576040517f106c81b100000000000000000000000000000000000000000000000000000000815260048101829052602401610766565b6113c16000846116d8565b6109df8282427fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26604080516060810182526fffffffffffffffffffffffffffffffff958616815267ffffffffffffffff9485166020808301918252948616928201928352835460018101855560009485529490932090519301805492519151851678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff92909516700100000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931693909516929092171716179055565b60408051606081018252600080825260208201819052918101919091526114e682611a61565b6040805160608101825291546fffffffffffffffffffffffffffffffff8116835267ffffffffffffffff7001000000000000000000000000000000008204811660208501527801000000000000000000000000000000000000000000000000909104169082015292915050565b6000610a5061164d565b6000610a507f4dd0f6662ba1d6b081f08b350f5e9a6a7b15cf586926ba66f753594928fa64a65490565b6000828152602081905260409020600101546115a281611640565b6109df83836117c8565b6000806000806000806115bd611677565b6040805160608101825291546fffffffffffffffffffffffffffffffff811680845267ffffffffffffffff70010000000000000000000000000000000083048116602086018190527801000000000000000000000000000000000000000000000000909304169390920183905298909750889650909450859350915050565b9055565b61164a8133611c18565b50565b6000610a507f0133fe49a9684f44ae5928d6aef02b435a3b70175343dba35a4548c3da48ac565490565b6000610a5060017fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26546116aa919061239a565b611a61565b61164a7f0133fe49a9684f44ae5928d6aef02b435a3b70175343dba35a4548c3da48ac56829055565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b045760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561176a3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610b045760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60007f0000000000000000000000001a513e9b6434a12c7bb5b9af3b21963308dee37273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118dd57506001919050565b7f000000000000000000000000420000000000000000000000000000000000000773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a1157507f0000000000000000000000003f9600439ad97fc6f55c2ac7c118f8fd0595eb7473ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000420000000000000000000000000000000000000773ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f991906123b1565b73ffffffffffffffffffffffffffffffffffffffff16145b15611a1e57506001919050565b506000919050565b600080611a338385611ce8565b9050611a3f8682611d52565b8511158015611a575750611a538682611da0565b8510155b9695505050505050565b60007fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26548210611abd576040517f7e936eca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d268281548110611aef57611aef6123ce565b906000526020600020019050919050565b7fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d2654808210611b2d575050565b60006001611b3b848461239a565b611b45919061239a565b905060005b81811015611bca577fbe5dcc93fa7a9bf03faca37ef40993af4ba6b2eb195bd06f5a670ee5f2970d26805480611b8257611b826123fd565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081019190915501905580611bc28161242c565b915050611b4a565b50505050565b611bd861155d565b15611c0f576040517f61394a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61164a81611e09565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b0457611c6e8173ffffffffffffffffffffffffffffffffffffffff166014611e68565b611c79836020611e68565b604051602001611c8a929190612491565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261076691600401612512565b600080611cf5838561239a565b90506000620151806001611d098285612382565b611d13919061239a565b611d1d9190612563565b9050611d497f00000000000000000000000000000000000000000000000000000000000001f48261259e565b95945050505050565b600080612710611d628482612382565b611d6c908661259e565b611d769190612563565b9050611d9881611d88601b600261235d565b611d9390600a61234e565b6120b2565b949350505050565b600080611daf6002601b61220b565b611dba90600a61234e565b90506127108311611de957612710611dd2848261239a565b611ddc908661259e565b611de69190612563565b90505b611d9881611df96002601b61220b565b611e0490600a61234e565b6120c8565b611e327f4dd0f6662ba1d6b081f08b350f5e9a6a7b15cf586926ba66f753594928fa64a6829055565b6040518181527ffddcded6b4f4730c226821172046b48372d3cd963c159701ae1b7c3bcac541bb9060200160405180910390a150565b60606000611e7783600261259e565b611e82906002612382565b67ffffffffffffffff811115611e9a57611e9a6125db565b6040519080825280601f01601f191660200182016040528015611ec4576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611efb57611efb6123ce565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f5e57611f5e6123ce565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611f9a84600261259e565b611fa5906001612382565b90505b6001811115612042577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611fe657611fe66123ce565b1a60f81b828281518110611ffc57611ffc6123ce565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361203b8161260a565b9050611fa8565b5083156120ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610766565b9392505050565b60008183106120c157816120ab565b5090919050565b6000818310156120c157816120ab565b6000602082840312156120ea57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146120ab57600080fd5b6000806040838503121561212d57600080fd5b50508035926020909101359150565b60006020828403121561214e57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461164a57600080fd5b6000806040838503121561218a57600080fd5b82359150602083013561219c81612155565b809150509250929050565b6000806000606084860312156121bc57600080fd5b83356121c781612155565b95602085013595506040909401359392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff841680821015612225576122256121dc565b90039392505050565b600181815b8085111561228757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561226d5761226d6121dc565b8085161561227a57918102915b93841c9390800290612233565b509250929050565b60008261229e5750600161066f565b816122ab5750600061066f565b81600181146122c157600281146122cb576122e7565b600191505061066f565b60ff8411156122dc576122dc6121dc565b50506001821b61066f565b5060208310610133831016604e8410600b841016171561230a575081810a61066f565b612314838361222e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612346576123466121dc565b029392505050565b60006120ab60ff84168361228f565b600060ff821660ff84168060ff0382111561237a5761237a6121dc565b019392505050565b60008219821115612395576123956121dc565b500190565b6000828210156123ac576123ac6121dc565b500390565b6000602082840312156123c357600080fd5b81516120ab81612155565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561245e5761245e6121dc565b5060010190565b60005b83811015612480578181015183820152602001612468565b83811115611bca5750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516124c9816017850160208801612465565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612506816028840160208801612465565b01602801949350505050565b6020815260008251806020840152612531816040850160208701612465565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082612599577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125d6576125d66121dc565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081612619576126196121dc565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220092491d5189b5cf74f329d7721dddff9623a0541f01b93d31ef18e0d6d627bf464736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000042000000000000000000000000000000000000070000000000000000000000001a513e9b6434a12c7bb5b9af3b21963308dee3720000000000000000000000003f9600439ad97fc6f55c2ac7c118f8fd0595eb740000000000000000000000000000000000000000000000000000000000016da0000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000e10

-----Decoded View---------------
Arg [0] : messenger_ (address): 0x4200000000000000000000000000000000000007
Arg [1] : l2ERC20TokenBridge_ (address): 0x1A513e9B6434a12C7bB5B9AF3B21963308DEE372
Arg [2] : l1TokenRatePusher_ (address): 0x3F9600439Ad97fC6f55C2AC7C118f8Fd0595eB74
Arg [3] : tokenRateOutdatedDelay_ (uint256): 93600
Arg [4] : maxAllowedL2ToL1ClockLag_ (uint256): 86400
Arg [5] : maxAllowedTokenRateDeviationPerDayBp_ (uint256): 500
Arg [6] : oldestRateAllowedInPauseTimeSpan_ (uint256): 86400
Arg [7] : minTimeBetweenTokenRateUpdates_ (uint256): 3600

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000004200000000000000000000000000000000000007
Arg [1] : 0000000000000000000000001a513e9b6434a12c7bb5b9af3b21963308dee372
Arg [2] : 0000000000000000000000003f9600439ad97fc6f55c2ac7c118f8fd0595eb74
Arg [3] : 0000000000000000000000000000000000000000000000000000000000016da0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [5] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [6] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000e10

🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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.