@ubk-labs/ubk-oracle 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/contracts/constants/Constants.sol/Constants.dbg.json +1 -1
- package/artifacts/contracts/constants/Constants.sol/Constants.json +2 -2
- package/artifacts/contracts/core/UBKOracle.sol/UBKOracle.dbg.json +1 -1
- package/artifacts/contracts/core/UBKOracle.sol/UBKOracle.json +2 -2
- package/artifacts/contracts/mocks/MockAggregatorV3.sol/MockAggregatorV3.dbg.json +1 -1
- package/artifacts/contracts/mocks/MockERC20.sol/MockERC20.dbg.json +1 -1
- package/artifacts/contracts/mocks/MockERC4626.sol/Mock4626.dbg.json +1 -1
- package/artifacts/contracts/mocks/MockIERC4626.sol/MockIERC4626.dbg.json +1 -1
- package/artifacts/interfaces/IUBKOracle.sol/IUBKOracle.dbg.json +1 -1
- package/artifacts/interfaces/IUBKOracle.sol/IUBKOracle.json +48 -0
- package/contracts/constants/Constants.sol +12 -8
- package/contracts/core/UBKOracle.sol +3 -3
- package/contracts/errors/Errors.sol +5 -1
- package/interfaces/IUBKOracle.sol +8 -0
- package/package.json +4 -3
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
"type": "function"
|
|
135
135
|
}
|
|
136
136
|
],
|
|
137
|
-
"bytecode": "
|
|
138
|
-
"deployedBytecode": "
|
|
137
|
+
"bytecode": "0x61016861003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063730513511161007057806373051351146101015780639a1b2c43146100ad578063afb9888514610112578063d160ed4d14610121578063f3f7de781461012957600080fd5b80634e9331ef146100ad5780635c94d0f9146100c85780636a146024146100d75780636bae86bb146100e65780636c0d5b36146100f2575b600080fd5b6100b6610e1081565b60405190815260200160405180910390f35b6100b667016345785d8a000081565b6100b6670de0b6b3a764000081565b6100b66402540be40081565b6100b66729a2241af62c000081565b6100b669d3c21bcecceda100000081565b6100b66702c68af0bb14000081565b6100b6600581565b6100b6612a308156fea2646970667358221220fc119d5143d6a571f8dab8bde95a47efdbad04c9eee68a7292ade134cd2ce55364736f6c63430008150033",
|
|
138
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063730513511161007057806373051351146101015780639a1b2c43146100ad578063afb9888514610112578063d160ed4d14610121578063f3f7de781461012957600080fd5b80634e9331ef146100ad5780635c94d0f9146100c85780636a146024146100d75780636bae86bb146100e65780636c0d5b36146100f2575b600080fd5b6100b6610e1081565b60405190815260200160405180910390f35b6100b667016345785d8a000081565b6100b6670de0b6b3a764000081565b6100b66402540be40081565b6100b66729a2241af62c000081565b6100b669d3c21bcecceda100000081565b6100b66702c68af0bb14000081565b6100b6600581565b6100b6612a308156fea2646970667358221220fc119d5143d6a571f8dab8bde95a47efdbad04c9eee68a7292ade134cd2ce55364736f6c63430008150033",
|
|
139
139
|
"linkReferences": {},
|
|
140
140
|
"deployedLinkReferences": {}
|
|
141
141
|
}
|
|
@@ -1021,8 +1021,8 @@
|
|
|
1021
1021
|
"type": "function"
|
|
1022
1022
|
}
|
|
1023
1023
|
],
|
|
1024
|
-
"bytecode": "0x6080604052610e10600755610e1060026200001b919062000158565b6008556009805460ff191690553480156200003557600080fd5b506040516200251c3803806200251c833981016040819052620000589162000184565b806001600160a01b0381166200008957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000948162000108565b506001600160a01b0381166200010157604080516374b58fcf60e01b81526004810191909152601260448201527127b930b1b6329d31b7b739ba393ab1ba37b960711b606482015260806024820152600560848201526437bbb732b960d91b60a482015260c40162000080565b50620001b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80820281158282048414176200017e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200019757600080fd5b81516001600160a01b0381168114620001af57600080fd5b9392505050565b61235680620001c66000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638fef24a311610104578063cfa3d593116100a2578063e8c1650011610071578063e8c1650014610461578063ed06a12d1461048a578063f04c98ca1461049d578063f2fde38b146104bd57600080fd5b8063cfa3d593146103e9578063d3c7c2c7146103fc578063d979303314610411578063e310bd2a1461043a57600080fd5b8063a95121b5116100de578063a95121b51461039d578063c6255626146103b0578063cd4f4a9c146103c3578063ced663b0146103d657600080fd5b80638fef24a31461036e578063a5b36a3614610381578063a6f4ab2e1461038a57600080fd5b806348c87c511161017c57806371e8023c1161014b57806371e8023c146102e75780637f33780a146102fa57806387ef186a146103365780638da5cb5b1461034957600080fd5b806348c87c51146102965780634f129c53146102a957806369ef32d2146102cc578063715018a6146102df57600080fd5b8063295a5212116101b8578063295a5212146102415780633b82fdeb1461025b57806341976e09146102705780634316b5a21461028357600080fd5b80630af1a39f146101df5780630f5d559d14610207578063260f9a8b1461022a575b600080fd5b6101f26101ed366004611d10565b6104d0565b60405190151581526020015b60405180910390f35b6101f2610215366004611d10565b60046020526000908152604090205460ff1681565b61023360085481565b6040519081526020016101fe565b60095461024e9060ff1681565b6040516101fe9190611d65565b61026e610269366004611d73565b610527565b005b61023361027e366004611d10565b610593565b61026e610291366004611d94565b6105a4565b6102336102a4366004611d10565b610613565b6101f26102b7366004611d10565b600c6020526000908152604090205460ff1681565b61026e6102da366004611dad565b610664565b61026e6108cd565b61026e6102f5366004611dad565b6108e1565b610321610308366004611d10565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152016101fe565b610233610344366004611de6565b610a22565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b61026e61037c366004611e12565b610afa565b61023360075481565b61026e610398366004611d94565b610c45565b61026e6103ab366004611de6565b610cb4565b6103566103be366004611d94565b610f7b565b6102336103d1366004611de6565b610fa5565b61026e6103e4366004611d10565b611068565b6102336103f7366004611d10565b6110ec565b6104046112cc565b6040516101fe9190611e47565b61035661041f366004611d10565b6002602052600090815260409020546001600160a01b031681565b610321610448366004611d10565b6006602052600090815260409020805460019091015482565b61035661046f366004611d10565b6001602052600090815260409020546001600160a01b031681565b610233610498366004611d10565b61132e565b6102336104ab366004611d10565b60036020526000908152604090205481565b61026e6104cb366004611d10565b6113a4565b6001600160a01b03811660009081526005602090815260408083208151808301909252805482526001015491810182905290158015906105205750600754602082015161051d9042611eaa565b11155b9392505050565b61052f6113e2565b6009805460ff811691839160ff19166001838181111561055157610551611d2d565b02179055507fa6972b82c1819c55fbb1eb3a5226aab6498a55b1cccd85bcffc44175751eb5738183604051610587929190611ebd565b60405180910390a15050565b600061059e8261140f565b92915050565b6105ac6113e2565b6007548110156105d7576040516301ee48e160e71b8152600481018290526024015b60405180910390fd5b60088190556040518181527fedd414ac063290211a282c8be3e328fcc6d60e4d1422ab34bc5af9a01736943d906020015b60405180910390a150565b6001600160a01b038116600090815260056020908152604080832081518083019092528054825260010154918101829052908203610655575060001992915050565b60208101516105209042611eaa565b61066c6113e2565b6001600160a01b038216158061068957506001600160a01b038116155b156106a7576040516374b58fcf60e01b81526004016105ce90611ed8565b806001600160a01b03163b6000036106dd5760405163c2b3d6a360e01b81526001600160a01b03821660048201526024016105ce565b60008190506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107469190611f31565b905060128160ff1611156107815760405163bed0220560e01b81526001600160a01b038416600482015260ff821660248201526044016105ce565b816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156107db575060408051601f3d908101601f191682019092526107d891810190611f6e565b60015b6108035760405163c2b3d6a360e01b81526001600160a01b03841660048201526024016105ce565b600084131580610811575081155b1561083a5760405163c2b3d6a360e01b81526001600160a01b03891660048201526024016105ce565b505050506001600160a01b03858116600090815260016020908152604080832080546001600160a01b031916948916949094179093556004905220805460ff191690555061088784611541565b826001600160a01b0316846001600160a01b03167fb9b75140a682094a10720170347bc8e03bfd71f1bb59d103cd8dc0782c52568360405160405180910390a350505050565b6108d56113e2565b6108df60006115f0565b565b6108e96113e2565b6001600160a01b038216158061090657506001600160a01b038116155b15610924576040516374b58fcf60e01b81526004016105ce90611fbe565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561097e575060408051601f3d908101601f1916820190925261097b91810190612010565b60015b6109a65760405163352e446560e11b81526001600160a01b03831660048201526024016105ce565b506001600160a01b03828116600090815260026020526040902080546001600160a01b0319169183169190911790556109de82611541565b806001600160a01b0316826001600160a01b03167f456db9889a9cf62250a0d96274761be08bc928b1ea97a2b6e45d9db8b575fa0c60405160405180910390a35050565b600081600003610a345750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190611f31565b90506000610aa58561140f565b9050600081610abc670de0b6b3a76400008761202d565b610ac6919061205a565b9050670de0b6b3a7640000610adc84600a612160565b610ae6908361202d565b610af0919061205a565b9695505050505050565b610b026113e2565b6001600160a01b038316610b7757604080516374b58fcf60e01b81526004810191909152601960448201527f4f7261636c653a7365745661756c7452617465426f756e64730000000000000060648201526080602482015260056084820152641d985d5b1d60da1b60a482015260c4016105ce565b811580610b845750818111155b80610b97575068056bc75e2d6310000081115b15610bce5760405163dceed17360e01b81526001600160a01b038416600482015260248101839052604481018290526064016105ce565b60408051808201825283815260208082018481526001600160a01b038716600081815260068452859020935184559051600190930192909255825185815290810184905290917f97b96731e654217eb1034ea218d533d1b086cd0ba6ba8b09735ef3e70c4d5fd491015b60405180910390a2505050565b610c4d6113e2565b610e10811080610c5e5750612a3081115b15610c7f576040516301ee48e160e71b8152600481018290526024016105ce565b60078190556040518181527f8e163815dacf2204ab589790672a86e421041804acc4cb85a7caebac33be1b2b90602001610608565b610cbc6113e2565b600160095460ff166001811115610cd557610cd5611d2d565b03610cfb576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216610d22576040516374b58fcf60e01b81526004016105ce90612187565b6402540be400811080610d3e575069d3c21bcecceda100000081115b15610d6e57604051638366d84d60e01b81526001600160a01b0383166004820152602481018290526044016105ce565b6001600160a01b038216600090815260056020908152604091829020825180840190935280548084526001909101549183019190915215801590610dc257506007546020820151610dbf9042611eaa565b11155b15610e71576000670de0b6b3a7640000610de467016345785d8a000082611eaa565b8351610df0919061202d565b610dfa919061205a565b90506000670de0b6b3a7640000610e1967016345785d8a0000826121c5565b8451610e25919061202d565b610e2f919061205a565b905081841080610e3e57508084115b15610e6e57604051638366d84d60e01b81526001600160a01b0386166004820152602481018590526044016105ce565b50505b6001600160a01b038316600081815260036020908152604080832086905560048252808320805460ff191660019081179091558151808301835287815242818501908152868652600585529483902090518155935193019290925590518481527f469ff3a7ada7a8c122e2729e7041dfdabfc5e8b26802fa04d7f00706149c4e24910160405180910390a2604051600181526001600160a01b038416907f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a89060200160405180910390a2604080518381524260208201526001600160a01b038516917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c9101610c38565b600b8181548110610f8b57600080fd5b6000918252602090912001546001600160a01b0316905081565b600081600003610fb75750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190611f31565b9050600061102a82600a612160565b61103c670de0b6b3a76400008661202d565b611046919061205a565b905060006110538661140f565b9050670de0b6b3a7640000610ae6828461202d565b6110706113e2565b6001600160a01b038116611097576040516374b58fcf60e01b81526004016105ce906121d8565b6001600160a01b0381166000818152600460209081526040808320805460ff19169055519182527f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a8910160405180910390a250565b6001600160a01b03811660009081526004602052604081205460ff161561112957506001600160a01b031660009081526003602052604090205490565b6001600160a01b03808316600090815260026020526040902054168015611154576105208382611640565b6001600160a01b03808416600090815260016020526040902054168061119857604051632a4f499d60e21b81526001600160a01b03851660048201526024016105ce565b6000806111a483611989565b9150915080156111b75750949350505050565b6001600160a01b03861660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361121657604051635a94181960e01b81526001600160a01b03881660048201526024016105ce565b60085460208201516112289042611eaa565b111561125257604051634ebf1f0f60e11b81526001600160a01b03881660048201526024016105ce565b805160408051918252426020830152606090820181905260119082015270436861696e6c696e6b206661696c75726560781b60808201526001600160a01b038816907f1037657730ddbc445dbaba678e03c33d31f7ae7f523c4f5de5f458ea5b837d399060a00160405180910390a2519695505050505050565b6060600b80548060200260200160405190810160405280929190818152602001828054801561132457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611306575b5050505050905090565b6000600160095460ff16600181111561134957611349611d2d565b0361136f576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216611396576040516374b58fcf60e01b81526004016105ce9061221e565b61059e82611b45565b919050565b6113ac6113e2565b6001600160a01b0381166113d657604051631e4fbdf760e01b8152600060048201526024016105ce565b6113df816115f0565b50565b6000546001600160a01b031633146108df5760405163118cdaa760e01b81523360048201526024016105ce565b60006001600160a01b038216611438576040516374b58fcf60e01b81526004016105ce90612264565b6001600160a01b03821660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361149757604051635a94181960e01b81526001600160a01b03841660048201526024016105ce565b604051630af1a39f60e01b81526001600160a01b03841660048201523090630af1a39f90602401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff919061229c565b61153a5760208101516040516348da37e960e11b81526001600160a01b038516600482015260248101919091524260448201526064016105ce565b5192915050565b6001600160a01b0381166000908152600c602052604090205460ff166113df57600b805460018082019092557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0384169081179091556000818152600c6020526040808220805460ff1916909417909355915190917f8f50fda9bf5d3b403c53b7e91646abd507f8cebf2577655d55d7de3926168b1791a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006005600a541061166857604051630e5daffd60e11b8152600060048201526024016105ce565b600a8054906000611678836122be565b91905055506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190611f31565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117479190611f31565b9050600061175683600a612160565b6040516303d1689d60e11b8152600481018290529091506000906001600160a01b038816906307a2d13a90602401602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c591906122d7565b90508015806117e257506ec097ce7bc90715b34b9f100000000081115b1561181157604051624df74960e31b81526001600160a01b0388166004820152602481018290526044016105ce565b600061181e84600a612160565b611830670de0b6b3a76400008461202d565b61183a919061205a565b9050600061184986600a612160565b61185b670de0b6b3a76400008661202d565b611865919061205a565b905060008161187c670de0b6b3a76400008561202d565b611886919061205a565b6001600160a01b038b1660009081526006602090815260408083208151808301909252805480835260019091015492820192909252929350156118ca5781516118d4565b6702c68af0bb1400005b9050600082602001516000146118ee5782602001516118f8565b6729a2241af62c00005b90508084118061190757508184105b156119375760405163c55e83d360e01b81526001600160a01b038e166004820152602481018590526044016105ce565b60006119428d6110ec565b9050670de0b6b3a7640000611957868361202d565b611961919061205a565b9b505050505050505050505050600a805490600061197e836122f0565b919050555092915050565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156119e6575060408051601f3d908101601f191682019092526119e391810190611f6e565b60015b6119f557506000928392509050565b600084131580611a03575081155b80611a185750600754611a168342611eaa565b115b15611a2d575060009788975095505050505050565b6000886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190611f31565b905084600060ff8316601203611aa8575080611b00565b60128360ff161015611adc57611ad582611ac3856012612307565b611ace90600a612160565b6001611c16565b9050611b00565b611afd826001611aed601287612307565b611af890600a612160565b611c16565b90505b6402540be400811080611b1c575069d3c21bcecceda100000081115b15611b34575060009a8b9a5098505050505050505050565b9a60019a5098505050505050505050565b6000611b50826110ec565b90506402540be400811080611b6e575069d3c21bcecceda100000081115b15611b9e57604051631b27609360e01b81526001600160a01b0383166004820152600060248201526044016105ce565b6040805180820182528281524260208083018281526001600160a01b03871660008181526005845286902094518555905160019094019390935583518581529081019190915290917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c910160405180910390a2919050565b6000806000611c258686611ccb565b9150915081600003611c4a57838181611c4057611c40612044565b0492505050610520565b818411611c6157611c616003851502601118611ce9565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b6001600160a01b03811681146113df57600080fd5b600060208284031215611d2257600080fd5b813561052081611cfb565b634e487b7160e01b600052602160045260246000fd5b60028110611d6157634e487b7160e01b600052602160045260246000fd5b9052565b6020810161059e8284611d43565b600060208284031215611d8557600080fd5b81356002811061052057600080fd5b600060208284031215611da657600080fd5b5035919050565b60008060408385031215611dc057600080fd5b8235611dcb81611cfb565b91506020830135611ddb81611cfb565b809150509250929050565b60008060408385031215611df957600080fd5b8235611e0481611cfb565b946020939093013593505050565b600080600060608486031215611e2757600080fd5b8335611e3281611cfb565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015611e885783516001600160a01b031683529284019291840191600101611e63565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561059e5761059e611e94565b60408101611ecb8285611d43565b6105206020830184611d43565b60408152601760408201527f4f7261636c653a736574436861696e6c696e6b46656564000000000000000000606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b600060208284031215611f4357600080fd5b815160ff8116811461052057600080fd5b805169ffffffffffffffffffff8116811461139f57600080fd5b600080600080600060a08688031215611f8657600080fd5b611f8f86611f54565b9450602086015193506040860151925060608601519150611fb260808701611f54565b90509295509295909350565b60408152601660408201527513dc9858db194e9cd95d115490cd0d8c8d95985d5b1d60521b606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b60006020828403121561202257600080fd5b815161052081611cfb565b808202811582820484141761059e5761059e611e94565b634e487b7160e01b600052601260045260246000fd5b60008261207757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156120b757816000190482111561209d5761209d611e94565b808516156120aa57918102915b93841c9390800290612081565b509250929050565b6000826120ce5750600161059e565b816120db5750600061059e565b81600181146120f157600281146120fb57612117565b600191505061059e565b60ff84111561210c5761210c611e94565b50506001821b61059e565b5060208310610133831016604e8410600b841016171561213a575081810a61059e565b612144838361207c565b806000190482111561215857612158611e94565b029392505050565b600061052060ff8416836120bf565b60058152643a37b5b2b760d91b602082015260400190565b6040815260156040820152744f7261636c653a7365744d616e75616c507269636560581b606082015260806020820152600061059e6080830161216f565b8082018082111561059e5761059e611e94565b60408152601960408201527f4f7261636c653a64697361626c654d616e75616c507269636500000000000000606082015260806020820152600061059e6080830161216f565b60408152601a60408201527f4f7261636c653a6665746368416e645570646174655072696365000000000000606082015260806020820152600061059e6080830161216f565b60408152600f60408201526e4f7261636c653a676574507269636560881b606082015260806020820152600061059e6080830161216f565b6000602082840312156122ae57600080fd5b8151801515811461052057600080fd5b6000600182016122d0576122d0611e94565b5060010190565b6000602082840312156122e957600080fd5b5051919050565b6000816122ff576122ff611e94565b506000190190565b60ff828116828216039081111561059e5761059e611e9456fea26469706673582212206120fb84dbbd772d65ac8937c095ed59c532241376576938c2465c6ea467bba064736f6c63430008150033",
|
|
1025
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80638fef24a311610104578063cfa3d593116100a2578063e8c1650011610071578063e8c1650014610461578063ed06a12d1461048a578063f04c98ca1461049d578063f2fde38b146104bd57600080fd5b8063cfa3d593146103e9578063d3c7c2c7146103fc578063d979303314610411578063e310bd2a1461043a57600080fd5b8063a95121b5116100de578063a95121b51461039d578063c6255626146103b0578063cd4f4a9c146103c3578063ced663b0146103d657600080fd5b80638fef24a31461036e578063a5b36a3614610381578063a6f4ab2e1461038a57600080fd5b806348c87c511161017c57806371e8023c1161014b57806371e8023c146102e75780637f33780a146102fa57806387ef186a146103365780638da5cb5b1461034957600080fd5b806348c87c51146102965780634f129c53146102a957806369ef32d2146102cc578063715018a6146102df57600080fd5b8063295a5212116101b8578063295a5212146102415780633b82fdeb1461025b57806341976e09146102705780634316b5a21461028357600080fd5b80630af1a39f146101df5780630f5d559d14610207578063260f9a8b1461022a575b600080fd5b6101f26101ed366004611d10565b6104d0565b60405190151581526020015b60405180910390f35b6101f2610215366004611d10565b60046020526000908152604090205460ff1681565b61023360085481565b6040519081526020016101fe565b60095461024e9060ff1681565b6040516101fe9190611d65565b61026e610269366004611d73565b610527565b005b61023361027e366004611d10565b610593565b61026e610291366004611d94565b6105a4565b6102336102a4366004611d10565b610613565b6101f26102b7366004611d10565b600c6020526000908152604090205460ff1681565b61026e6102da366004611dad565b610664565b61026e6108cd565b61026e6102f5366004611dad565b6108e1565b610321610308366004611d10565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152016101fe565b610233610344366004611de6565b610a22565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b61026e61037c366004611e12565b610afa565b61023360075481565b61026e610398366004611d94565b610c45565b61026e6103ab366004611de6565b610cb4565b6103566103be366004611d94565b610f7b565b6102336103d1366004611de6565b610fa5565b61026e6103e4366004611d10565b611068565b6102336103f7366004611d10565b6110ec565b6104046112cc565b6040516101fe9190611e47565b61035661041f366004611d10565b6002602052600090815260409020546001600160a01b031681565b610321610448366004611d10565b6006602052600090815260409020805460019091015482565b61035661046f366004611d10565b6001602052600090815260409020546001600160a01b031681565b610233610498366004611d10565b61132e565b6102336104ab366004611d10565b60036020526000908152604090205481565b61026e6104cb366004611d10565b6113a4565b6001600160a01b03811660009081526005602090815260408083208151808301909252805482526001015491810182905290158015906105205750600754602082015161051d9042611eaa565b11155b9392505050565b61052f6113e2565b6009805460ff811691839160ff19166001838181111561055157610551611d2d565b02179055507fa6972b82c1819c55fbb1eb3a5226aab6498a55b1cccd85bcffc44175751eb5738183604051610587929190611ebd565b60405180910390a15050565b600061059e8261140f565b92915050565b6105ac6113e2565b6007548110156105d7576040516301ee48e160e71b8152600481018290526024015b60405180910390fd5b60088190556040518181527fedd414ac063290211a282c8be3e328fcc6d60e4d1422ab34bc5af9a01736943d906020015b60405180910390a150565b6001600160a01b038116600090815260056020908152604080832081518083019092528054825260010154918101829052908203610655575060001992915050565b60208101516105209042611eaa565b61066c6113e2565b6001600160a01b038216158061068957506001600160a01b038116155b156106a7576040516374b58fcf60e01b81526004016105ce90611ed8565b806001600160a01b03163b6000036106dd5760405163c2b3d6a360e01b81526001600160a01b03821660048201526024016105ce565b60008190506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107469190611f31565b905060128160ff1611156107815760405163bed0220560e01b81526001600160a01b038416600482015260ff821660248201526044016105ce565b816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156107db575060408051601f3d908101601f191682019092526107d891810190611f6e565b60015b6108035760405163c2b3d6a360e01b81526001600160a01b03841660048201526024016105ce565b600084131580610811575081155b1561083a5760405163c2b3d6a360e01b81526001600160a01b03891660048201526024016105ce565b505050506001600160a01b03858116600090815260016020908152604080832080546001600160a01b031916948916949094179093556004905220805460ff191690555061088784611541565b826001600160a01b0316846001600160a01b03167fb9b75140a682094a10720170347bc8e03bfd71f1bb59d103cd8dc0782c52568360405160405180910390a350505050565b6108d56113e2565b6108df60006115f0565b565b6108e96113e2565b6001600160a01b038216158061090657506001600160a01b038116155b15610924576040516374b58fcf60e01b81526004016105ce90611fbe565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561097e575060408051601f3d908101601f1916820190925261097b91810190612010565b60015b6109a65760405163352e446560e11b81526001600160a01b03831660048201526024016105ce565b506001600160a01b03828116600090815260026020526040902080546001600160a01b0319169183169190911790556109de82611541565b806001600160a01b0316826001600160a01b03167f456db9889a9cf62250a0d96274761be08bc928b1ea97a2b6e45d9db8b575fa0c60405160405180910390a35050565b600081600003610a345750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190611f31565b90506000610aa58561140f565b9050600081610abc670de0b6b3a76400008761202d565b610ac6919061205a565b9050670de0b6b3a7640000610adc84600a612160565b610ae6908361202d565b610af0919061205a565b9695505050505050565b610b026113e2565b6001600160a01b038316610b7757604080516374b58fcf60e01b81526004810191909152601960448201527f4f7261636c653a7365745661756c7452617465426f756e64730000000000000060648201526080602482015260056084820152641d985d5b1d60da1b60a482015260c4016105ce565b811580610b845750818111155b80610b97575068056bc75e2d6310000081115b15610bce5760405163dceed17360e01b81526001600160a01b038416600482015260248101839052604481018290526064016105ce565b60408051808201825283815260208082018481526001600160a01b038716600081815260068452859020935184559051600190930192909255825185815290810184905290917f97b96731e654217eb1034ea218d533d1b086cd0ba6ba8b09735ef3e70c4d5fd491015b60405180910390a2505050565b610c4d6113e2565b610e10811080610c5e5750612a3081115b15610c7f576040516301ee48e160e71b8152600481018290526024016105ce565b60078190556040518181527f8e163815dacf2204ab589790672a86e421041804acc4cb85a7caebac33be1b2b90602001610608565b610cbc6113e2565b600160095460ff166001811115610cd557610cd5611d2d565b03610cfb576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216610d22576040516374b58fcf60e01b81526004016105ce90612187565b6402540be400811080610d3e575069d3c21bcecceda100000081115b15610d6e57604051638366d84d60e01b81526001600160a01b0383166004820152602481018290526044016105ce565b6001600160a01b038216600090815260056020908152604091829020825180840190935280548084526001909101549183019190915215801590610dc257506007546020820151610dbf9042611eaa565b11155b15610e71576000670de0b6b3a7640000610de467016345785d8a000082611eaa565b8351610df0919061202d565b610dfa919061205a565b90506000670de0b6b3a7640000610e1967016345785d8a0000826121c5565b8451610e25919061202d565b610e2f919061205a565b905081841080610e3e57508084115b15610e6e57604051638366d84d60e01b81526001600160a01b0386166004820152602481018590526044016105ce565b50505b6001600160a01b038316600081815260036020908152604080832086905560048252808320805460ff191660019081179091558151808301835287815242818501908152868652600585529483902090518155935193019290925590518481527f469ff3a7ada7a8c122e2729e7041dfdabfc5e8b26802fa04d7f00706149c4e24910160405180910390a2604051600181526001600160a01b038416907f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a89060200160405180910390a2604080518381524260208201526001600160a01b038516917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c9101610c38565b600b8181548110610f8b57600080fd5b6000918252602090912001546001600160a01b0316905081565b600081600003610fb75750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190611f31565b9050600061102a82600a612160565b61103c670de0b6b3a76400008661202d565b611046919061205a565b905060006110538661140f565b9050670de0b6b3a7640000610ae6828461202d565b6110706113e2565b6001600160a01b038116611097576040516374b58fcf60e01b81526004016105ce906121d8565b6001600160a01b0381166000818152600460209081526040808320805460ff19169055519182527f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a8910160405180910390a250565b6001600160a01b03811660009081526004602052604081205460ff161561112957506001600160a01b031660009081526003602052604090205490565b6001600160a01b03808316600090815260026020526040902054168015611154576105208382611640565b6001600160a01b03808416600090815260016020526040902054168061119857604051632a4f499d60e21b81526001600160a01b03851660048201526024016105ce565b6000806111a483611989565b9150915080156111b75750949350505050565b6001600160a01b03861660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361121657604051635a94181960e01b81526001600160a01b03881660048201526024016105ce565b60085460208201516112289042611eaa565b111561125257604051634ebf1f0f60e11b81526001600160a01b03881660048201526024016105ce565b805160408051918252426020830152606090820181905260119082015270436861696e6c696e6b206661696c75726560781b60808201526001600160a01b038816907f1037657730ddbc445dbaba678e03c33d31f7ae7f523c4f5de5f458ea5b837d399060a00160405180910390a2519695505050505050565b6060600b80548060200260200160405190810160405280929190818152602001828054801561132457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611306575b5050505050905090565b6000600160095460ff16600181111561134957611349611d2d565b0361136f576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216611396576040516374b58fcf60e01b81526004016105ce9061221e565b61059e82611b45565b919050565b6113ac6113e2565b6001600160a01b0381166113d657604051631e4fbdf760e01b8152600060048201526024016105ce565b6113df816115f0565b50565b6000546001600160a01b031633146108df5760405163118cdaa760e01b81523360048201526024016105ce565b60006001600160a01b038216611438576040516374b58fcf60e01b81526004016105ce90612264565b6001600160a01b03821660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361149757604051635a94181960e01b81526001600160a01b03841660048201526024016105ce565b604051630af1a39f60e01b81526001600160a01b03841660048201523090630af1a39f90602401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff919061229c565b61153a5760208101516040516348da37e960e11b81526001600160a01b038516600482015260248101919091524260448201526064016105ce565b5192915050565b6001600160a01b0381166000908152600c602052604090205460ff166113df57600b805460018082019092557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0384169081179091556000818152600c6020526040808220805460ff1916909417909355915190917f8f50fda9bf5d3b403c53b7e91646abd507f8cebf2577655d55d7de3926168b1791a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006005600a541061166857604051630e5daffd60e11b8152600060048201526024016105ce565b600a8054906000611678836122be565b91905055506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190611f31565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117479190611f31565b9050600061175683600a612160565b6040516303d1689d60e11b8152600481018290529091506000906001600160a01b038816906307a2d13a90602401602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c591906122d7565b90508015806117e257506ec097ce7bc90715b34b9f100000000081115b1561181157604051624df74960e31b81526001600160a01b0388166004820152602481018290526044016105ce565b600061181e84600a612160565b611830670de0b6b3a76400008461202d565b61183a919061205a565b9050600061184986600a612160565b61185b670de0b6b3a76400008661202d565b611865919061205a565b905060008161187c670de0b6b3a76400008561202d565b611886919061205a565b6001600160a01b038b1660009081526006602090815260408083208151808301909252805480835260019091015492820192909252929350156118ca5781516118d4565b6702c68af0bb1400005b9050600082602001516000146118ee5782602001516118f8565b6729a2241af62c00005b90508084118061190757508184105b156119375760405163c55e83d360e01b81526001600160a01b038e166004820152602481018590526044016105ce565b60006119428d6110ec565b9050670de0b6b3a7640000611957868361202d565b611961919061205a565b9b505050505050505050505050600a805490600061197e836122f0565b919050555092915050565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156119e6575060408051601f3d908101601f191682019092526119e391810190611f6e565b60015b6119f557506000928392509050565b600084131580611a03575081155b80611a185750600754611a168342611eaa565b115b15611a2d575060009788975095505050505050565b6000886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190611f31565b905084600060ff8316601203611aa8575080611b00565b60128360ff161015611adc57611ad582611ac3856012612307565b611ace90600a612160565b6001611c16565b9050611b00565b611afd826001611aed601287612307565b611af890600a612160565b611c16565b90505b6402540be400811080611b1c575069d3c21bcecceda100000081115b15611b34575060009a8b9a5098505050505050505050565b9a60019a5098505050505050505050565b6000611b50826110ec565b90506402540be400811080611b6e575069d3c21bcecceda100000081115b15611b9e57604051631b27609360e01b81526001600160a01b0383166004820152600060248201526044016105ce565b6040805180820182528281524260208083018281526001600160a01b03871660008181526005845286902094518555905160019094019390935583518581529081019190915290917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c910160405180910390a2919050565b6000806000611c258686611ccb565b9150915081600003611c4a57838181611c4057611c40612044565b0492505050610520565b818411611c6157611c616003851502601118611ce9565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b6001600160a01b03811681146113df57600080fd5b600060208284031215611d2257600080fd5b813561052081611cfb565b634e487b7160e01b600052602160045260246000fd5b60028110611d6157634e487b7160e01b600052602160045260246000fd5b9052565b6020810161059e8284611d43565b600060208284031215611d8557600080fd5b81356002811061052057600080fd5b600060208284031215611da657600080fd5b5035919050565b60008060408385031215611dc057600080fd5b8235611dcb81611cfb565b91506020830135611ddb81611cfb565b809150509250929050565b60008060408385031215611df957600080fd5b8235611e0481611cfb565b946020939093013593505050565b600080600060608486031215611e2757600080fd5b8335611e3281611cfb565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015611e885783516001600160a01b031683529284019291840191600101611e63565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561059e5761059e611e94565b60408101611ecb8285611d43565b6105206020830184611d43565b60408152601760408201527f4f7261636c653a736574436861696e6c696e6b46656564000000000000000000606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b600060208284031215611f4357600080fd5b815160ff8116811461052057600080fd5b805169ffffffffffffffffffff8116811461139f57600080fd5b600080600080600060a08688031215611f8657600080fd5b611f8f86611f54565b9450602086015193506040860151925060608601519150611fb260808701611f54565b90509295509295909350565b60408152601660408201527513dc9858db194e9cd95d115490cd0d8c8d95985d5b1d60521b606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b60006020828403121561202257600080fd5b815161052081611cfb565b808202811582820484141761059e5761059e611e94565b634e487b7160e01b600052601260045260246000fd5b60008261207757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156120b757816000190482111561209d5761209d611e94565b808516156120aa57918102915b93841c9390800290612081565b509250929050565b6000826120ce5750600161059e565b816120db5750600061059e565b81600181146120f157600281146120fb57612117565b600191505061059e565b60ff84111561210c5761210c611e94565b50506001821b61059e565b5060208310610133831016604e8410600b841016171561213a575081810a61059e565b612144838361207c565b806000190482111561215857612158611e94565b029392505050565b600061052060ff8416836120bf565b60058152643a37b5b2b760d91b602082015260400190565b6040815260156040820152744f7261636c653a7365744d616e75616c507269636560581b606082015260806020820152600061059e6080830161216f565b8082018082111561059e5761059e611e94565b60408152601960408201527f4f7261636c653a64697361626c654d616e75616c507269636500000000000000606082015260806020820152600061059e6080830161216f565b60408152601a60408201527f4f7261636c653a6665746368416e645570646174655072696365000000000000606082015260806020820152600061059e6080830161216f565b60408152600f60408201526e4f7261636c653a676574507269636560881b606082015260806020820152600061059e6080830161216f565b6000602082840312156122ae57600080fd5b8151801515811461052057600080fd5b6000600182016122d0576122d0611e94565b5060010190565b6000602082840312156122e957600080fd5b5051919050565b6000816122ff576122ff611e94565b506000190190565b60ff828116828216039081111561059e5761059e611e9456fea26469706673582212206120fb84dbbd772d65ac8937c095ed59c532241376576938c2465c6ea467bba064736f6c63430008150033",
|
|
1024
|
+
"bytecode": "0x6080604052610e10600755610e1060026200001b919062000158565b6008556009805460ff191690553480156200003557600080fd5b506040516200251c3803806200251c833981016040819052620000589162000184565b806001600160a01b0381166200008957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000948162000108565b506001600160a01b0381166200010157604080516374b58fcf60e01b81526004810191909152601260448201527127b930b1b6329d31b7b739ba393ab1ba37b960711b606482015260806024820152600560848201526437bbb732b960d91b60a482015260c40162000080565b50620001b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80820281158282048414176200017e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200019757600080fd5b81516001600160a01b0381168114620001af57600080fd5b9392505050565b61235680620001c66000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638fef24a311610104578063cfa3d593116100a2578063e8c1650011610071578063e8c1650014610461578063ed06a12d1461048a578063f04c98ca1461049d578063f2fde38b146104bd57600080fd5b8063cfa3d593146103e9578063d3c7c2c7146103fc578063d979303314610411578063e310bd2a1461043a57600080fd5b8063a95121b5116100de578063a95121b51461039d578063c6255626146103b0578063cd4f4a9c146103c3578063ced663b0146103d657600080fd5b80638fef24a31461036e578063a5b36a3614610381578063a6f4ab2e1461038a57600080fd5b806348c87c511161017c57806371e8023c1161014b57806371e8023c146102e75780637f33780a146102fa57806387ef186a146103365780638da5cb5b1461034957600080fd5b806348c87c51146102965780634f129c53146102a957806369ef32d2146102cc578063715018a6146102df57600080fd5b8063295a5212116101b8578063295a5212146102415780633b82fdeb1461025b57806341976e09146102705780634316b5a21461028357600080fd5b80630af1a39f146101df5780630f5d559d14610207578063260f9a8b1461022a575b600080fd5b6101f26101ed366004611d10565b6104d0565b60405190151581526020015b60405180910390f35b6101f2610215366004611d10565b60046020526000908152604090205460ff1681565b61023360085481565b6040519081526020016101fe565b60095461024e9060ff1681565b6040516101fe9190611d65565b61026e610269366004611d73565b610527565b005b61023361027e366004611d10565b610593565b61026e610291366004611d94565b6105a4565b6102336102a4366004611d10565b610613565b6101f26102b7366004611d10565b600c6020526000908152604090205460ff1681565b61026e6102da366004611dad565b610664565b61026e6108cd565b61026e6102f5366004611dad565b6108e1565b610321610308366004611d10565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152016101fe565b610233610344366004611de6565b610a22565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b61026e61037c366004611e12565b610afa565b61023360075481565b61026e610398366004611d94565b610c45565b61026e6103ab366004611de6565b610cb4565b6103566103be366004611d94565b610f7b565b6102336103d1366004611de6565b610fa5565b61026e6103e4366004611d10565b611068565b6102336103f7366004611d10565b6110ec565b6104046112cc565b6040516101fe9190611e47565b61035661041f366004611d10565b6002602052600090815260409020546001600160a01b031681565b610321610448366004611d10565b6006602052600090815260409020805460019091015482565b61035661046f366004611d10565b6001602052600090815260409020546001600160a01b031681565b610233610498366004611d10565b61132e565b6102336104ab366004611d10565b60036020526000908152604090205481565b61026e6104cb366004611d10565b6113a4565b6001600160a01b03811660009081526005602090815260408083208151808301909252805482526001015491810182905290158015906105205750600754602082015161051d9042611eaa565b11155b9392505050565b61052f6113e2565b6009805460ff811691839160ff19166001838181111561055157610551611d2d565b02179055507fa6972b82c1819c55fbb1eb3a5226aab6498a55b1cccd85bcffc44175751eb5738183604051610587929190611ebd565b60405180910390a15050565b600061059e8261140f565b92915050565b6105ac6113e2565b6007548110156105d7576040516301ee48e160e71b8152600481018290526024015b60405180910390fd5b60088190556040518181527fedd414ac063290211a282c8be3e328fcc6d60e4d1422ab34bc5af9a01736943d906020015b60405180910390a150565b6001600160a01b038116600090815260056020908152604080832081518083019092528054825260010154918101829052908203610655575060001992915050565b60208101516105209042611eaa565b61066c6113e2565b6001600160a01b038216158061068957506001600160a01b038116155b156106a7576040516374b58fcf60e01b81526004016105ce90611ed8565b806001600160a01b03163b6000036106dd5760405163c2b3d6a360e01b81526001600160a01b03821660048201526024016105ce565b60008190506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107469190611f31565b905060128160ff1611156107815760405163bed0220560e01b81526001600160a01b038416600482015260ff821660248201526044016105ce565b816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156107db575060408051601f3d908101601f191682019092526107d891810190611f6e565b60015b6108035760405163c2b3d6a360e01b81526001600160a01b03841660048201526024016105ce565b600084131580610811575081155b1561083a5760405163c2b3d6a360e01b81526001600160a01b03891660048201526024016105ce565b505050506001600160a01b03858116600090815260016020908152604080832080546001600160a01b031916948916949094179093556004905220805460ff191690555061088784611541565b826001600160a01b0316846001600160a01b03167fb9b75140a682094a10720170347bc8e03bfd71f1bb59d103cd8dc0782c52568360405160405180910390a350505050565b6108d56113e2565b6108df60006115f0565b565b6108e96113e2565b6001600160a01b038216158061090657506001600160a01b038116155b15610924576040516374b58fcf60e01b81526004016105ce90611fbe565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561097e575060408051601f3d908101601f1916820190925261097b91810190612010565b60015b6109a65760405163352e446560e11b81526001600160a01b03831660048201526024016105ce565b506001600160a01b03828116600090815260026020526040902080546001600160a01b0319169183169190911790556109de82611541565b806001600160a01b0316826001600160a01b03167f456db9889a9cf62250a0d96274761be08bc928b1ea97a2b6e45d9db8b575fa0c60405160405180910390a35050565b600081600003610a345750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190611f31565b90506000610aa58561140f565b9050600081610abc670de0b6b3a76400008761202d565b610ac6919061205a565b9050670de0b6b3a7640000610adc84600a612160565b610ae6908361202d565b610af0919061205a565b9695505050505050565b610b026113e2565b6001600160a01b038316610b7757604080516374b58fcf60e01b81526004810191909152601960448201527f4f7261636c653a7365745661756c7452617465426f756e64730000000000000060648201526080602482015260056084820152641d985d5b1d60da1b60a482015260c4016105ce565b811580610b845750818111155b80610b97575068056bc75e2d6310000081115b15610bce5760405163dceed17360e01b81526001600160a01b038416600482015260248101839052604481018290526064016105ce565b60408051808201825283815260208082018481526001600160a01b038716600081815260068452859020935184559051600190930192909255825185815290810184905290917f97b96731e654217eb1034ea218d533d1b086cd0ba6ba8b09735ef3e70c4d5fd491015b60405180910390a2505050565b610c4d6113e2565b610e10811080610c5e5750612a3081115b15610c7f576040516301ee48e160e71b8152600481018290526024016105ce565b60078190556040518181527f8e163815dacf2204ab589790672a86e421041804acc4cb85a7caebac33be1b2b90602001610608565b610cbc6113e2565b600160095460ff166001811115610cd557610cd5611d2d565b03610cfb576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216610d22576040516374b58fcf60e01b81526004016105ce90612187565b6402540be400811080610d3e575069d3c21bcecceda100000081115b15610d6e57604051638366d84d60e01b81526001600160a01b0383166004820152602481018290526044016105ce565b6001600160a01b038216600090815260056020908152604091829020825180840190935280548084526001909101549183019190915215801590610dc257506007546020820151610dbf9042611eaa565b11155b15610e71576000670de0b6b3a7640000610de467016345785d8a000082611eaa565b8351610df0919061202d565b610dfa919061205a565b90506000670de0b6b3a7640000610e1967016345785d8a0000826121c5565b8451610e25919061202d565b610e2f919061205a565b905081841080610e3e57508084115b15610e6e57604051638366d84d60e01b81526001600160a01b0386166004820152602481018590526044016105ce565b50505b6001600160a01b038316600081815260036020908152604080832086905560048252808320805460ff191660019081179091558151808301835287815242818501908152868652600585529483902090518155935193019290925590518481527f469ff3a7ada7a8c122e2729e7041dfdabfc5e8b26802fa04d7f00706149c4e24910160405180910390a2604051600181526001600160a01b038416907f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a89060200160405180910390a2604080518381524260208201526001600160a01b038516917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c9101610c38565b600b8181548110610f8b57600080fd5b6000918252602090912001546001600160a01b0316905081565b600081600003610fb75750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190611f31565b9050600061102a82600a612160565b61103c670de0b6b3a76400008661202d565b611046919061205a565b905060006110538661140f565b9050670de0b6b3a7640000610ae6828461202d565b6110706113e2565b6001600160a01b038116611097576040516374b58fcf60e01b81526004016105ce906121d8565b6001600160a01b0381166000818152600460209081526040808320805460ff19169055519182527f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a8910160405180910390a250565b6001600160a01b03811660009081526004602052604081205460ff161561112957506001600160a01b031660009081526003602052604090205490565b6001600160a01b03808316600090815260026020526040902054168015611154576105208382611640565b6001600160a01b03808416600090815260016020526040902054168061119857604051632a4f499d60e21b81526001600160a01b03851660048201526024016105ce565b6000806111a483611989565b9150915080156111b75750949350505050565b6001600160a01b03861660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361121657604051635a94181960e01b81526001600160a01b03881660048201526024016105ce565b60085460208201516112289042611eaa565b111561125257604051634ebf1f0f60e11b81526001600160a01b03881660048201526024016105ce565b805160408051918252426020830152606090820181905260119082015270436861696e6c696e6b206661696c75726560781b60808201526001600160a01b038816907f1037657730ddbc445dbaba678e03c33d31f7ae7f523c4f5de5f458ea5b837d399060a00160405180910390a2519695505050505050565b6060600b80548060200260200160405190810160405280929190818152602001828054801561132457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611306575b5050505050905090565b6000600160095460ff16600181111561134957611349611d2d565b0361136f576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216611396576040516374b58fcf60e01b81526004016105ce9061221e565b61059e82611b45565b919050565b6113ac6113e2565b6001600160a01b0381166113d657604051631e4fbdf760e01b8152600060048201526024016105ce565b6113df816115f0565b50565b6000546001600160a01b031633146108df5760405163118cdaa760e01b81523360048201526024016105ce565b60006001600160a01b038216611438576040516374b58fcf60e01b81526004016105ce90612264565b6001600160a01b03821660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361149757604051635a94181960e01b81526001600160a01b03841660048201526024016105ce565b604051630af1a39f60e01b81526001600160a01b03841660048201523090630af1a39f90602401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff919061229c565b61153a5760208101516040516348da37e960e11b81526001600160a01b038516600482015260248101919091524260448201526064016105ce565b5192915050565b6001600160a01b0381166000908152600c602052604090205460ff166113df57600b805460018082019092557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0384169081179091556000818152600c6020526040808220805460ff1916909417909355915190917f8f50fda9bf5d3b403c53b7e91646abd507f8cebf2577655d55d7de3926168b1791a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006005600a541061166857604051630e5daffd60e11b8152600060048201526024016105ce565b600a8054906000611678836122be565b91905055506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190611f31565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117479190611f31565b9050600061175683600a612160565b6040516303d1689d60e11b8152600481018290529091506000906001600160a01b038816906307a2d13a90602401602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c591906122d7565b90508015806117e257506ec097ce7bc90715b34b9f100000000081115b1561181157604051624df74960e31b81526001600160a01b0388166004820152602481018290526044016105ce565b600061181e84600a612160565b611830670de0b6b3a76400008461202d565b61183a919061205a565b9050600061184986600a612160565b61185b670de0b6b3a76400008661202d565b611865919061205a565b905060008161187c670de0b6b3a76400008561202d565b611886919061205a565b6001600160a01b038b1660009081526006602090815260408083208151808301909252805480835260019091015492820192909252929350156118ca5781516118d4565b6702c68af0bb1400005b9050600082602001516000146118ee5782602001516118f8565b6729a2241af62c00005b90508084118061190757508184105b156119375760405163c55e83d360e01b81526001600160a01b038e166004820152602481018590526044016105ce565b60006119428d6110ec565b9050670de0b6b3a7640000611957868361202d565b611961919061205a565b9b505050505050505050505050600a805490600061197e836122f0565b919050555092915050565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156119e6575060408051601f3d908101601f191682019092526119e391810190611f6e565b60015b6119f557506000928392509050565b600084131580611a03575081155b80611a185750600754611a168342611eaa565b115b15611a2d575060009788975095505050505050565b6000886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190611f31565b905084600060ff8316601203611aa8575080611b00565b60128360ff161015611adc57611ad582611ac3856012612307565b611ace90600a612160565b6001611c16565b9050611b00565b611afd826001611aed601287612307565b611af890600a612160565b611c16565b90505b6402540be400811080611b1c575069d3c21bcecceda100000081115b15611b34575060009a8b9a5098505050505050505050565b9a60019a5098505050505050505050565b6000611b50826110ec565b90506402540be400811080611b6e575069d3c21bcecceda100000081115b15611b9e57604051631b27609360e01b81526001600160a01b0383166004820152600060248201526044016105ce565b6040805180820182528281524260208083018281526001600160a01b03871660008181526005845286902094518555905160019094019390935583518581529081019190915290917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c910160405180910390a2919050565b6000806000611c258686611ccb565b9150915081600003611c4a57838181611c4057611c40612044565b0492505050610520565b818411611c6157611c616003851502601118611ce9565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b6001600160a01b03811681146113df57600080fd5b600060208284031215611d2257600080fd5b813561052081611cfb565b634e487b7160e01b600052602160045260246000fd5b60028110611d6157634e487b7160e01b600052602160045260246000fd5b9052565b6020810161059e8284611d43565b600060208284031215611d8557600080fd5b81356002811061052057600080fd5b600060208284031215611da657600080fd5b5035919050565b60008060408385031215611dc057600080fd5b8235611dcb81611cfb565b91506020830135611ddb81611cfb565b809150509250929050565b60008060408385031215611df957600080fd5b8235611e0481611cfb565b946020939093013593505050565b600080600060608486031215611e2757600080fd5b8335611e3281611cfb565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015611e885783516001600160a01b031683529284019291840191600101611e63565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561059e5761059e611e94565b60408101611ecb8285611d43565b6105206020830184611d43565b60408152601760408201527f4f7261636c653a736574436861696e6c696e6b46656564000000000000000000606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b600060208284031215611f4357600080fd5b815160ff8116811461052057600080fd5b805169ffffffffffffffffffff8116811461139f57600080fd5b600080600080600060a08688031215611f8657600080fd5b611f8f86611f54565b9450602086015193506040860151925060608601519150611fb260808701611f54565b90509295509295909350565b60408152601660408201527513dc9858db194e9cd95d115490cd0d8c8d95985d5b1d60521b606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b60006020828403121561202257600080fd5b815161052081611cfb565b808202811582820484141761059e5761059e611e94565b634e487b7160e01b600052601260045260246000fd5b60008261207757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156120b757816000190482111561209d5761209d611e94565b808516156120aa57918102915b93841c9390800290612081565b509250929050565b6000826120ce5750600161059e565b816120db5750600061059e565b81600181146120f157600281146120fb57612117565b600191505061059e565b60ff84111561210c5761210c611e94565b50506001821b61059e565b5060208310610133831016604e8410600b841016171561213a575081810a61059e565b612144838361207c565b806000190482111561215857612158611e94565b029392505050565b600061052060ff8416836120bf565b60058152643a37b5b2b760d91b602082015260400190565b6040815260156040820152744f7261636c653a7365744d616e75616c507269636560581b606082015260806020820152600061059e6080830161216f565b8082018082111561059e5761059e611e94565b60408152601960408201527f4f7261636c653a64697361626c654d616e75616c507269636500000000000000606082015260806020820152600061059e6080830161216f565b60408152601a60408201527f4f7261636c653a6665746368416e645570646174655072696365000000000000606082015260806020820152600061059e6080830161216f565b60408152600f60408201526e4f7261636c653a676574507269636560881b606082015260806020820152600061059e6080830161216f565b6000602082840312156122ae57600080fd5b8151801515811461052057600080fd5b6000600182016122d0576122d0611e94565b5060010190565b6000602082840312156122e957600080fd5b5051919050565b6000816122ff576122ff611e94565b506000190190565b60ff828116828216039081111561059e5761059e611e9456fea2646970667358221220ccf749cbbcf2d9122aa9353db29904a07bfd7ef96aa2fdc4d14ccc77269e2fef64736f6c63430008150033",
|
|
1025
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80638fef24a311610104578063cfa3d593116100a2578063e8c1650011610071578063e8c1650014610461578063ed06a12d1461048a578063f04c98ca1461049d578063f2fde38b146104bd57600080fd5b8063cfa3d593146103e9578063d3c7c2c7146103fc578063d979303314610411578063e310bd2a1461043a57600080fd5b8063a95121b5116100de578063a95121b51461039d578063c6255626146103b0578063cd4f4a9c146103c3578063ced663b0146103d657600080fd5b80638fef24a31461036e578063a5b36a3614610381578063a6f4ab2e1461038a57600080fd5b806348c87c511161017c57806371e8023c1161014b57806371e8023c146102e75780637f33780a146102fa57806387ef186a146103365780638da5cb5b1461034957600080fd5b806348c87c51146102965780634f129c53146102a957806369ef32d2146102cc578063715018a6146102df57600080fd5b8063295a5212116101b8578063295a5212146102415780633b82fdeb1461025b57806341976e09146102705780634316b5a21461028357600080fd5b80630af1a39f146101df5780630f5d559d14610207578063260f9a8b1461022a575b600080fd5b6101f26101ed366004611d10565b6104d0565b60405190151581526020015b60405180910390f35b6101f2610215366004611d10565b60046020526000908152604090205460ff1681565b61023360085481565b6040519081526020016101fe565b60095461024e9060ff1681565b6040516101fe9190611d65565b61026e610269366004611d73565b610527565b005b61023361027e366004611d10565b610593565b61026e610291366004611d94565b6105a4565b6102336102a4366004611d10565b610613565b6101f26102b7366004611d10565b600c6020526000908152604090205460ff1681565b61026e6102da366004611dad565b610664565b61026e6108cd565b61026e6102f5366004611dad565b6108e1565b610321610308366004611d10565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152016101fe565b610233610344366004611de6565b610a22565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b61026e61037c366004611e12565b610afa565b61023360075481565b61026e610398366004611d94565b610c45565b61026e6103ab366004611de6565b610cb4565b6103566103be366004611d94565b610f7b565b6102336103d1366004611de6565b610fa5565b61026e6103e4366004611d10565b611068565b6102336103f7366004611d10565b6110ec565b6104046112cc565b6040516101fe9190611e47565b61035661041f366004611d10565b6002602052600090815260409020546001600160a01b031681565b610321610448366004611d10565b6006602052600090815260409020805460019091015482565b61035661046f366004611d10565b6001602052600090815260409020546001600160a01b031681565b610233610498366004611d10565b61132e565b6102336104ab366004611d10565b60036020526000908152604090205481565b61026e6104cb366004611d10565b6113a4565b6001600160a01b03811660009081526005602090815260408083208151808301909252805482526001015491810182905290158015906105205750600754602082015161051d9042611eaa565b11155b9392505050565b61052f6113e2565b6009805460ff811691839160ff19166001838181111561055157610551611d2d565b02179055507fa6972b82c1819c55fbb1eb3a5226aab6498a55b1cccd85bcffc44175751eb5738183604051610587929190611ebd565b60405180910390a15050565b600061059e8261140f565b92915050565b6105ac6113e2565b6007548110156105d7576040516301ee48e160e71b8152600481018290526024015b60405180910390fd5b60088190556040518181527fedd414ac063290211a282c8be3e328fcc6d60e4d1422ab34bc5af9a01736943d906020015b60405180910390a150565b6001600160a01b038116600090815260056020908152604080832081518083019092528054825260010154918101829052908203610655575060001992915050565b60208101516105209042611eaa565b61066c6113e2565b6001600160a01b038216158061068957506001600160a01b038116155b156106a7576040516374b58fcf60e01b81526004016105ce90611ed8565b806001600160a01b03163b6000036106dd5760405163c2b3d6a360e01b81526001600160a01b03821660048201526024016105ce565b60008190506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107469190611f31565b905060128160ff1611156107815760405163bed0220560e01b81526001600160a01b038416600482015260ff821660248201526044016105ce565b816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156107db575060408051601f3d908101601f191682019092526107d891810190611f6e565b60015b6108035760405163c2b3d6a360e01b81526001600160a01b03841660048201526024016105ce565b600084131580610811575081155b1561083a5760405163c2b3d6a360e01b81526001600160a01b03891660048201526024016105ce565b505050506001600160a01b03858116600090815260016020908152604080832080546001600160a01b031916948916949094179093556004905220805460ff191690555061088784611541565b826001600160a01b0316846001600160a01b03167fb9b75140a682094a10720170347bc8e03bfd71f1bb59d103cd8dc0782c52568360405160405180910390a350505050565b6108d56113e2565b6108df60006115f0565b565b6108e96113e2565b6001600160a01b038216158061090657506001600160a01b038116155b15610924576040516374b58fcf60e01b81526004016105ce90611fbe565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561097e575060408051601f3d908101601f1916820190925261097b91810190612010565b60015b6109a65760405163352e446560e11b81526001600160a01b03831660048201526024016105ce565b506001600160a01b03828116600090815260026020526040902080546001600160a01b0319169183169190911790556109de82611541565b806001600160a01b0316826001600160a01b03167f456db9889a9cf62250a0d96274761be08bc928b1ea97a2b6e45d9db8b575fa0c60405160405180910390a35050565b600081600003610a345750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190611f31565b90506000610aa58561140f565b9050600081610abc670de0b6b3a76400008761202d565b610ac6919061205a565b9050670de0b6b3a7640000610adc84600a612160565b610ae6908361202d565b610af0919061205a565b9695505050505050565b610b026113e2565b6001600160a01b038316610b7757604080516374b58fcf60e01b81526004810191909152601960448201527f4f7261636c653a7365745661756c7452617465426f756e64730000000000000060648201526080602482015260056084820152641d985d5b1d60da1b60a482015260c4016105ce565b811580610b845750818111155b80610b97575068056bc75e2d6310000081115b15610bce5760405163dceed17360e01b81526001600160a01b038416600482015260248101839052604481018290526064016105ce565b60408051808201825283815260208082018481526001600160a01b038716600081815260068452859020935184559051600190930192909255825185815290810184905290917f97b96731e654217eb1034ea218d533d1b086cd0ba6ba8b09735ef3e70c4d5fd491015b60405180910390a2505050565b610c4d6113e2565b610e10811080610c5e5750612a3081115b15610c7f576040516301ee48e160e71b8152600481018290526024016105ce565b60078190556040518181527f8e163815dacf2204ab589790672a86e421041804acc4cb85a7caebac33be1b2b90602001610608565b610cbc6113e2565b600160095460ff166001811115610cd557610cd5611d2d565b03610cfb576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216610d22576040516374b58fcf60e01b81526004016105ce90612187565b6402540be400811080610d3e575069d3c21bcecceda100000081115b15610d6e57604051638366d84d60e01b81526001600160a01b0383166004820152602481018290526044016105ce565b6001600160a01b038216600090815260056020908152604091829020825180840190935280548084526001909101549183019190915215801590610dc257506007546020820151610dbf9042611eaa565b11155b15610e71576000670de0b6b3a7640000610de467016345785d8a000082611eaa565b8351610df0919061202d565b610dfa919061205a565b90506000670de0b6b3a7640000610e1967016345785d8a0000826121c5565b8451610e25919061202d565b610e2f919061205a565b905081841080610e3e57508084115b15610e6e57604051638366d84d60e01b81526001600160a01b0386166004820152602481018590526044016105ce565b50505b6001600160a01b038316600081815260036020908152604080832086905560048252808320805460ff191660019081179091558151808301835287815242818501908152868652600585529483902090518155935193019290925590518481527f469ff3a7ada7a8c122e2729e7041dfdabfc5e8b26802fa04d7f00706149c4e24910160405180910390a2604051600181526001600160a01b038416907f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a89060200160405180910390a2604080518381524260208201526001600160a01b038516917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c9101610c38565b600b8181548110610f8b57600080fd5b6000918252602090912001546001600160a01b0316905081565b600081600003610fb75750600061059e565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190611f31565b9050600061102a82600a612160565b61103c670de0b6b3a76400008661202d565b611046919061205a565b905060006110538661140f565b9050670de0b6b3a7640000610ae6828461202d565b6110706113e2565b6001600160a01b038116611097576040516374b58fcf60e01b81526004016105ce906121d8565b6001600160a01b0381166000818152600460209081526040808320805460ff19169055519182527f782cbde6cfd4fcc41b55a876a6a2983d09080438d1e4316b98042b68025a29a8910160405180910390a250565b6001600160a01b03811660009081526004602052604081205460ff161561112957506001600160a01b031660009081526003602052604090205490565b6001600160a01b03808316600090815260026020526040902054168015611154576105208382611640565b6001600160a01b03808416600090815260016020526040902054168061119857604051632a4f499d60e21b81526001600160a01b03851660048201526024016105ce565b6000806111a483611989565b9150915080156111b75750949350505050565b6001600160a01b03861660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361121657604051635a94181960e01b81526001600160a01b03881660048201526024016105ce565b60085460208201516112289042611eaa565b111561125257604051634ebf1f0f60e11b81526001600160a01b03881660048201526024016105ce565b805160408051918252426020830152606090820181905260119082015270436861696e6c696e6b206661696c75726560781b60808201526001600160a01b038816907f1037657730ddbc445dbaba678e03c33d31f7ae7f523c4f5de5f458ea5b837d399060a00160405180910390a2519695505050505050565b6060600b80548060200260200160405190810160405280929190818152602001828054801561132457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611306575b5050505050905090565b6000600160095460ff16600181111561134957611349611d2d565b0361136f576040516330bcb70560e21b81523060048201524260248201526044016105ce565b6001600160a01b038216611396576040516374b58fcf60e01b81526004016105ce9061221e565b61059e82611b45565b919050565b6113ac6113e2565b6001600160a01b0381166113d657604051631e4fbdf760e01b8152600060048201526024016105ce565b6113df816115f0565b50565b6000546001600160a01b031633146108df5760405163118cdaa760e01b81523360048201526024016105ce565b60006001600160a01b038216611438576040516374b58fcf60e01b81526004016105ce90612264565b6001600160a01b03821660009081526005602090815260408083208151808301909252805480835260019091015492820192909252910361149757604051635a94181960e01b81526001600160a01b03841660048201526024016105ce565b604051630af1a39f60e01b81526001600160a01b03841660048201523090630af1a39f90602401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff919061229c565b61153a5760208101516040516348da37e960e11b81526001600160a01b038516600482015260248101919091524260448201526064016105ce565b5192915050565b6001600160a01b0381166000908152600c602052604090205460ff166113df57600b805460018082019092557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0384169081179091556000818152600c6020526040808220805460ff1916909417909355915190917f8f50fda9bf5d3b403c53b7e91646abd507f8cebf2577655d55d7de3926168b1791a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006005600a541061166857604051630e5daffd60e11b8152600060048201526024016105ce565b600a8054906000611678836122be565b91905055506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190611f31565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117479190611f31565b9050600061175683600a612160565b6040516303d1689d60e11b8152600481018290529091506000906001600160a01b038816906307a2d13a90602401602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c591906122d7565b90508015806117e257506ec097ce7bc90715b34b9f100000000081115b1561181157604051624df74960e31b81526001600160a01b0388166004820152602481018290526044016105ce565b600061181e84600a612160565b611830670de0b6b3a76400008461202d565b61183a919061205a565b9050600061184986600a612160565b61185b670de0b6b3a76400008661202d565b611865919061205a565b905060008161187c670de0b6b3a76400008561202d565b611886919061205a565b6001600160a01b038b1660009081526006602090815260408083208151808301909252805480835260019091015492820192909252929350156118ca5781516118d4565b6702c68af0bb1400005b9050600082602001516000146118ee5782602001516118f8565b6729a2241af62c00005b90508084118061190757508184105b156119375760405163c55e83d360e01b81526001600160a01b038e166004820152602481018590526044016105ce565b60006119428d6110ec565b9050670de0b6b3a7640000611957868361202d565b611961919061205a565b9b505050505050505050505050600a805490600061197e836122f0565b919050555092915050565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156119e6575060408051601f3d908101601f191682019092526119e391810190611f6e565b60015b6119f557506000928392509050565b600084131580611a03575081155b80611a185750600754611a168342611eaa565b115b15611a2d575060009788975095505050505050565b6000886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190611f31565b905084600060ff8316601203611aa8575080611b00565b60128360ff161015611adc57611ad582611ac3856012612307565b611ace90600a612160565b6001611c16565b9050611b00565b611afd826001611aed601287612307565b611af890600a612160565b611c16565b90505b6402540be400811080611b1c575069d3c21bcecceda100000081115b15611b34575060009a8b9a5098505050505050505050565b9a60019a5098505050505050505050565b6000611b50826110ec565b90506402540be400811080611b6e575069d3c21bcecceda100000081115b15611b9e57604051631b27609360e01b81526001600160a01b0383166004820152600060248201526044016105ce565b6040805180820182528281524260208083018281526001600160a01b03871660008181526005845286902094518555905160019094019390935583518581529081019190915290917f895efb821f241e50aca7011c501989268b4e15748c700bf77d48ff447049888c910160405180910390a2919050565b6000806000611c258686611ccb565b9150915081600003611c4a57838181611c4057611c40612044565b0492505050610520565b818411611c6157611c616003851502601118611ce9565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b6001600160a01b03811681146113df57600080fd5b600060208284031215611d2257600080fd5b813561052081611cfb565b634e487b7160e01b600052602160045260246000fd5b60028110611d6157634e487b7160e01b600052602160045260246000fd5b9052565b6020810161059e8284611d43565b600060208284031215611d8557600080fd5b81356002811061052057600080fd5b600060208284031215611da657600080fd5b5035919050565b60008060408385031215611dc057600080fd5b8235611dcb81611cfb565b91506020830135611ddb81611cfb565b809150509250929050565b60008060408385031215611df957600080fd5b8235611e0481611cfb565b946020939093013593505050565b600080600060608486031215611e2757600080fd5b8335611e3281611cfb565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015611e885783516001600160a01b031683529284019291840191600101611e63565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561059e5761059e611e94565b60408101611ecb8285611d43565b6105206020830184611d43565b60408152601760408201527f4f7261636c653a736574436861696e6c696e6b46656564000000000000000000606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b600060208284031215611f4357600080fd5b815160ff8116811461052057600080fd5b805169ffffffffffffffffffff8116811461139f57600080fd5b600080600080600060a08688031215611f8657600080fd5b611f8f86611f54565b9450602086015193506040860151925060608601519150611fb260808701611f54565b90509295509295909350565b60408152601660408201527513dc9858db194e9cd95d115490cd0d8c8d95985d5b1d60521b606082015260806020820152600061059e6080830160058152641a5b9c1d5d60da1b602082015260400190565b60006020828403121561202257600080fd5b815161052081611cfb565b808202811582820484141761059e5761059e611e94565b634e487b7160e01b600052601260045260246000fd5b60008261207757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156120b757816000190482111561209d5761209d611e94565b808516156120aa57918102915b93841c9390800290612081565b509250929050565b6000826120ce5750600161059e565b816120db5750600061059e565b81600181146120f157600281146120fb57612117565b600191505061059e565b60ff84111561210c5761210c611e94565b50506001821b61059e565b5060208310610133831016604e8410600b841016171561213a575081810a61059e565b612144838361207c565b806000190482111561215857612158611e94565b029392505050565b600061052060ff8416836120bf565b60058152643a37b5b2b760d91b602082015260400190565b6040815260156040820152744f7261636c653a7365744d616e75616c507269636560581b606082015260806020820152600061059e6080830161216f565b8082018082111561059e5761059e611e94565b60408152601960408201527f4f7261636c653a64697361626c654d616e75616c507269636500000000000000606082015260806020820152600061059e6080830161216f565b60408152601a60408201527f4f7261636c653a6665746368416e645570646174655072696365000000000000606082015260806020820152600061059e6080830161216f565b60408152600f60408201526e4f7261636c653a676574507269636560881b606082015260806020820152600061059e6080830161216f565b6000602082840312156122ae57600080fd5b8151801515811461052057600080fd5b6000600182016122d0576122d0611e94565b5060010190565b6000602082840312156122e957600080fd5b5051919050565b6000816122ff576122ff611e94565b506000190190565b60ff828116828216039081111561059e5761059e611e9456fea2646970667358221220ccf749cbbcf2d9122aa9353db29904a07bfd7ef96aa2fdc4d14ccc77269e2fef64736f6c63430008150033",
|
|
1026
1026
|
"linkReferences": {},
|
|
1027
1027
|
"deployedLinkReferences": {}
|
|
1028
1028
|
}
|
|
@@ -237,6 +237,30 @@
|
|
|
237
237
|
"stateMutability": "nonpayable",
|
|
238
238
|
"type": "function"
|
|
239
239
|
},
|
|
240
|
+
{
|
|
241
|
+
"inputs": [
|
|
242
|
+
{
|
|
243
|
+
"internalType": "address",
|
|
244
|
+
"name": "token",
|
|
245
|
+
"type": "address"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"internalType": "uint256",
|
|
249
|
+
"name": "usdAmount",
|
|
250
|
+
"type": "uint256"
|
|
251
|
+
}
|
|
252
|
+
],
|
|
253
|
+
"name": "fromUSD",
|
|
254
|
+
"outputs": [
|
|
255
|
+
{
|
|
256
|
+
"internalType": "uint256",
|
|
257
|
+
"name": "tokenAmount",
|
|
258
|
+
"type": "uint256"
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
"stateMutability": "view",
|
|
262
|
+
"type": "function"
|
|
263
|
+
},
|
|
240
264
|
{
|
|
241
265
|
"inputs": [
|
|
242
266
|
{
|
|
@@ -255,6 +279,30 @@
|
|
|
255
279
|
],
|
|
256
280
|
"stateMutability": "view",
|
|
257
281
|
"type": "function"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"inputs": [
|
|
285
|
+
{
|
|
286
|
+
"internalType": "address",
|
|
287
|
+
"name": "token",
|
|
288
|
+
"type": "address"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"internalType": "uint256",
|
|
292
|
+
"name": "amount",
|
|
293
|
+
"type": "uint256"
|
|
294
|
+
}
|
|
295
|
+
],
|
|
296
|
+
"name": "toUSD",
|
|
297
|
+
"outputs": [
|
|
298
|
+
{
|
|
299
|
+
"internalType": "uint256",
|
|
300
|
+
"name": "usdValue",
|
|
301
|
+
"type": "uint256"
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"stateMutability": "view",
|
|
305
|
+
"type": "function"
|
|
258
306
|
}
|
|
259
307
|
],
|
|
260
308
|
"bytecode": "0x",
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
+
import "@ubk-labs/ubk-commons/commons/UBKConstants.sol";
|
|
5
|
+
|
|
6
|
+
|
|
4
7
|
library Constants {
|
|
5
8
|
// -----------------------------------------------------------------------
|
|
6
|
-
//
|
|
9
|
+
// UBK System Constants
|
|
7
10
|
// -----------------------------------------------------------------------
|
|
8
|
-
|
|
11
|
+
|
|
12
|
+
uint256 public constant WAD = UBKConstants.WAD;
|
|
9
13
|
|
|
10
14
|
// -----------------------------------------------------------------------
|
|
11
15
|
// Oracle Price Bounds
|
|
12
16
|
// -----------------------------------------------------------------------
|
|
13
|
-
uint256 public constant ORACLE_MANUAL_PRICE_MAX_DELTA_WAD = 0.1e18;
|
|
14
|
-
uint256 public constant ORACLE_MIN_ABSOLUTE_PRICE_WAD = 1e10;
|
|
15
|
-
uint256 public constant ORACLE_MAX_ABSOLUTE_PRICE_WAD = 1e24;
|
|
17
|
+
uint256 public constant ORACLE_MANUAL_PRICE_MAX_DELTA_WAD = 0.1e18; // 10%
|
|
18
|
+
uint256 public constant ORACLE_MIN_ABSOLUTE_PRICE_WAD = 1e10; // 0.00000001
|
|
19
|
+
uint256 public constant ORACLE_MAX_ABSOLUTE_PRICE_WAD = 1e24; // 1,000,000
|
|
16
20
|
|
|
17
21
|
// -----------------------------------------------------------------------
|
|
18
22
|
// Oracle Vault Rate Bounds
|
|
19
23
|
// -----------------------------------------------------------------------
|
|
20
|
-
uint256 public constant ORACLE_MIN_VAULT_RATE_WAD = 0.2e18;
|
|
21
|
-
uint256 public constant ORACLE_MAX_VAULT_RATE_WAD = 3e18;
|
|
24
|
+
uint256 public constant ORACLE_MIN_VAULT_RATE_WAD = 0.2e18; // 0.2x (20%)
|
|
25
|
+
uint256 public constant ORACLE_MAX_VAULT_RATE_WAD = 3e18; // 3x (300%)
|
|
22
26
|
|
|
23
27
|
// -----------------------------------------------------------------------
|
|
24
28
|
// Oracle Staleness Periods
|
|
@@ -31,4 +35,4 @@ library Constants {
|
|
|
31
35
|
// Oracle Recursion
|
|
32
36
|
// -----------------------------------------------------------------------
|
|
33
37
|
uint256 public constant MAX_RECURSION_DEPTH = 5;
|
|
34
|
-
}
|
|
38
|
+
}
|
|
@@ -21,9 +21,9 @@ import "../constants/Constants.sol";
|
|
|
21
21
|
* combining manual overrides, ERC4626 vault conversions, and Chainlink feeds.
|
|
22
22
|
*
|
|
23
23
|
* === PRICE RESOLUTION ORDER ===
|
|
24
|
-
* 1
|
|
25
|
-
* 2
|
|
26
|
-
* 3
|
|
24
|
+
* 1️. Manual override (±10% bound from last valid)
|
|
25
|
+
* 2. ERC4626 vault-derived (convertToAssets * underlying price)
|
|
26
|
+
* 3️. Chainlink feed (normalized to 1e18)
|
|
27
27
|
*
|
|
28
28
|
* === SAFETY FEATURES ===
|
|
29
29
|
* - Recursion guard (nested ERC4626 depth ≤ 5)
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import "@ubk-labs/ubk-commons/commons/UBKErrors.sol";
|
|
5
|
+
|
|
1
6
|
// ───────────── Errors ─────────────
|
|
2
|
-
error ZeroAddress(string functionName, string field);
|
|
3
7
|
error InvalidManualPrice(address token, uint256 price);
|
|
4
8
|
error InvalidStalePeriod(uint256 period);
|
|
5
9
|
error InvalidVaultBounds(address vault, uint256 minRate, uint256 maxRate);
|
|
@@ -48,6 +48,14 @@ interface IUBKOracle {
|
|
|
48
48
|
|
|
49
49
|
// View Functions
|
|
50
50
|
function getPrice(address token) external view returns (uint256);
|
|
51
|
+
function toUSD(
|
|
52
|
+
address token,
|
|
53
|
+
uint256 amount
|
|
54
|
+
) external view returns (uint256 usdValue);
|
|
55
|
+
function fromUSD(
|
|
56
|
+
address token,
|
|
57
|
+
uint256 usdAmount
|
|
58
|
+
) external view returns (uint256 tokenAmount);
|
|
51
59
|
|
|
52
60
|
// Mutators
|
|
53
61
|
function fetchAndUpdatePrice(address token) external returns (uint256);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ubk-labs/ubk-oracle",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Oracle supporting ERC-20 and ERC-4626 assets for use in decentralized financial applications.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "npx hardhat compile",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"solidity-coverage": "^0.8.16"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@chainlink/contracts": "^0.6.1"
|
|
39
|
+
"@chainlink/contracts": "^0.6.1",
|
|
40
|
+
"@ubk-labs/ubk-commons": "^0.1.1"
|
|
40
41
|
}
|
|
41
|
-
}
|
|
42
|
+
}
|