@pendle/core-v2 6.2.0 → 6.2.2-beta

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.
Files changed (38) hide show
  1. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  2. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.json +2 -2
  3. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +4 -0
  4. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.json +81 -0
  5. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +4 -0
  6. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.json +121 -0
  7. package/contracts/offchain-helpers/LimitBackendHelperV2.sol +6 -1
  8. package/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol +29 -0
  9. package/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol +30 -0
  10. package/deployments/1-core.json +3 -2
  11. package/deployments/1-offchain-helper.json +1 -1
  12. package/deployments/10-core.json +3 -2
  13. package/deployments/10-offchain-helper.json +1 -1
  14. package/deployments/146-core.json +3 -2
  15. package/deployments/146-offchain-helper.json +1 -1
  16. package/deployments/42161-core.json +3 -2
  17. package/deployments/42161-offchain-helper.json +1 -1
  18. package/deployments/43114-core.json +19 -2
  19. package/deployments/5000-core.json +3 -2
  20. package/deployments/5000-offchain-helper.json +1 -1
  21. package/deployments/56-core.json +3 -2
  22. package/deployments/56-offchain-helper.json +1 -1
  23. package/deployments/80094-core.json +3 -2
  24. package/deployments/80094-offchain-helper.json +1 -1
  25. package/deployments/8453-core.json +3 -2
  26. package/deployments/8453-offchain-helper.json +1 -1
  27. package/deployments/9745-core.json +3 -2
  28. package/deployments/9745-offchain-helper.json +1 -1
  29. package/deployments/999-core.json +3 -2
  30. package/deployments/999-offchain-helper.json +1 -1
  31. package/package.json +1 -1
  32. package/typechain-types/PendleLinearDiscountOracleWrapper.ts +150 -0
  33. package/typechain-types/PendleSparkLinearDiscountOracleFactoryWrapper.ts +216 -0
  34. package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
  35. package/typechain-types/factories/PendleLinearDiscountOracleWrapper__factory.ts +145 -0
  36. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +193 -0
  37. package/typechain-types/hardhat.d.ts +18 -18
  38. package/typechain-types/index.ts +4 -4
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/60dc35d3ec0f36307f99aa359ac3d1ac.json"
3
+ "buildInfo": "../../../build-info/8604313b205a127eb39e2a1c1978e75b.json"
4
4
  }
@@ -166,8 +166,8 @@
166
166
  "type": "function"
167
167
  }
168
168
  ],
169
- "bytecode": "0x60c060405234801561000f575f5ffd5b5060405161182738038061182783398101604081905261002e91610043565b6001600160a01b03166080523060a052610070565b5f60208284031215610053575f5ffd5b81516001600160a01b0381168114610069575f5ffd5b9392505050565b60805160a05161178961009e5f395f61065f01525f818160ce0152818161012c015261019f01526117895ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063083c1fce1461004e578063152c3db71461006357806319585e1a1461008d5780632d36a6d3146100ae575b5f5ffd5b61006161005c366004611158565b6100c1565b005b6100766100713660046111ed565b6102b7565b6040516100849291906112a8565b60405180910390f35b6100a061009b3660046112d5565b61054b565b6040516100849291906113d0565b6100766100bc366004611445565b6107ef565b6100cc8285836109f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156101955750604051637d2d278360e11b81526001600160a01b0384169063fa5a4f0690610154907f0000000000000000000000000000000000000000000000000000000000000000906004016114a8565b602060405180830381865afa15801561016f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019391906114d0565b155b156101c9576101c57f00000000000000000000000000000000000000000000000000000000000000005f83610a61565b5f91505b6101d38284610b1e565b5f806001600160a01b03808616908516156101ee575f6101f0565b835b6040513060248201526001600160a01b0387166044820152606481018690525f608482015260a40160408051601f198184030181529181526020820180516001600160e01b03166320e8c56560e01b1790525161024d91906114f0565b5f6040518083038185875af1925050503d805f8114610287576040519150601f19603f3d011682016040523d82523d5f602084013e61028c565b606091505b5091509150818160405163032695f960e31b81526004016102ae92919061150b565b60405180910390fd5b6060808584146102fb5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016102ae565b836001600160401b0381111561031357610313611525565b60405190808252806020026020018201604052801561033c578160200160208202803683370190505b509150836001600160401b0381111561035757610357611525565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f5b848110156105405787878281811061039f5761039f611539565b90506020020160208101906103b4919061154d565b6001600160a01b03166370a082318787848181106103d4576103d4611539565b90506020020160208101906103e9919061154d565b6040518263ffffffff1660e01b815260040161040591906114a8565b602060405180830381865afa158015610420573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104449190611568565b83828151811061045657610456611539565b60200260200101818152505087878281811061047457610474611539565b9050602002016020810190610489919061154d565b6001600160a01b031663dd62ed3e8787848181106104a9576104a9611539565b90506020020160208101906104be919061154d565b866040518363ffffffff1660e01b81526004016104dc92919061157f565b602060405180830381865afa1580156104f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b9190611568565b82828151811061052d5761052d611539565b6020908102919091010152600101610385565b509550959350505050565b6060805f8888905090505f8a6001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b69190611599565b9050816001600160401b038111156105d0576105d0611525565b6040519080825280602002602001820160405280156105f9578160200160208202803683370190505b509350816001600160401b0381111561061457610614611525565b60405190808252806020026020018201604052801561064757816020015b60608152602001906001900390816106325790505b5092505f5b828110156107e0575f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163063083c1fce8e8e8681811061069757610697611539565b90506020020160208101906106ac919061154d565b868e8e888181106106bf576106bf611539565b90506020020160208101906106d4919061154d565b8d8d898181106106e6576106e6611539565b6040516001600160a01b039687166024820152948616604486015292909416606484015260209091020135608482015260a401905060408051601f198184030181529181526020820180516001600160e01b031660e09490941b93909317909252905161075392506114f0565b5f60405180830381855af49150503d805f811461078b576040519150601f19603f3d011682016040523d82523d5f602084013e610790565b606091505b5091505061079d81610bd9565b8784815181106107af576107af611539565b602002602001018785815181106107c8576107c8611539565b6020908102919091010191909152525060010161064c565b50505097509795505050505050565b606080836001600160401b0381111561080a5761080a611525565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509150836001600160401b0381111561084e5761084e611525565b604051908082528060200260200182016040528015610877578160200160208202803683370190505b5090505f5b848110156109eb57866001600160a01b03166370a082318787848181106108a5576108a5611539565b90506020020160208101906108ba919061154d565b6040518263ffffffff1660e01b81526004016108d691906114a8565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190611568565b83828151811061092757610927611539565b602002602001018181525050866001600160a01b031663dd62ed3e87878481811061095457610954611539565b9050602002016020810190610969919061154d565b866040518363ffffffff1660e01b815260040161098792919061157f565b602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c69190611568565b8282815181106109d8576109d8611539565b602090810291909101015260010161087c565b5094509492505050565b6001600160a01b038316610a4657803414610a415760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102ae565b505050565b8015610a4157610a416001600160a01b038416833084610c73565b6001600160a01b038316610ac457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aa8575f5ffd5b505af1158015610aba573d5f5f3e3d5ffd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d906024015f604051808303815f87803b158015610b03575f5ffd5b505af1158015610b15573d5f5f3e3d5ffd5b50505050505050565b6001600160a01b038216610b30575050565b610b4260026001600160601b036115c8565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401610b7992919061157f565b602060405180830381865afa158015610b94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb89190611568565b1015610bd557610bc982825f610cd3565b610bd582825f19610cd3565b5050565b5f60606004835110158015610c06575063032695f960e31b610bfa84611602565b6001600160e01b031916145b610c1257610c12611640565b5f5f610c2c856004808851610c279190611654565b610dd8565b806020019051810190610c3f919061166d565b915091508115610c645780806020019051810190610c5d9190611568565b9350610c6c565b5f1993508092505b5050915091565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ccd908590610ee4565b50505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610d2e91906114f0565b5f604051808303815f865af19150503d805f8114610d67576040519150601f19603f3d011682016040523d82523d5f602084013e610d6c565b606091505b5091509150818015610d96575080511580610d96575080806020019051810190610d9691906114d0565b610dd15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102ae565b5050505050565b606081610de681601f61172e565b1015610e255760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102ae565b610e2f828461172e565b84511015610e735760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102ae565b606082158015610e915760405191505f825260208201604052610edb565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610eca578051835260209283019201610eb2565b5050858452601f01601f1916604052505b50949350505050565b5f610f38826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610fb79092919063ffffffff16565b905080515f1480610f58575080806020019051810190610f5891906114d0565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102ae565b6060610fc584845f85610fcd565b949350505050565b60608247101561102e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102ae565b5f5f866001600160a01b0316858760405161104991906114f0565b5f6040518083038185875af1925050503d805f8114611083576040519150601f19603f3d011682016040523d82523d5f602084013e611088565b606091505b5091509150611099878383876110a4565b979650505050505050565b606083156111125782515f0361110b576001600160a01b0385163b61110b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ae565b5081610fc5565b610fc583838151156111275781518083602001fd5b8060405162461bcd60e51b81526004016102ae9190611741565b6001600160a01b0381168114611155575f5ffd5b50565b5f5f5f5f6080858703121561116b575f5ffd5b843561117681611141565b9350602085013561118681611141565b9250604085013561119681611141565b9396929550929360600135925050565b5f5f83601f8401126111b6575f5ffd5b5081356001600160401b038111156111cc575f5ffd5b6020830191508360208260051b85010111156111e6575f5ffd5b9250929050565b5f5f5f5f5f60608688031215611201575f5ffd5b85356001600160401b03811115611216575f5ffd5b611222888289016111a6565b90965094505060208601356001600160401b03811115611240575f5ffd5b61124c888289016111a6565b909450925050604086013561126081611141565b809150509295509295909350565b5f8151808452602084019350602083015f5b8281101561129e578151865260209586019590910190600101611280565b5093949350505050565b604081525f6112ba604083018561126e565b82810360208401526112cc818561126e565b95945050505050565b5f5f5f5f5f5f5f6080888a0312156112eb575f5ffd5b87356112f681611141565b965060208801356001600160401b03811115611310575f5ffd5b61131c8a828b016111a6565b90975095505060408801356001600160401b0381111561133a575f5ffd5b6113468a828b016111a6565b90955093505060608801356001600160401b03811115611364575f5ffd5b6113708a828b016111a6565b989b979a50959850939692959293505050565b5f5b8381101561139d578181015183820152602001611385565b50505f910152565b5f81518084526113bc816020860160208601611383565b601f01601f19169290920160200192915050565b604081525f6113e2604083018561126e565b828103602084015280845180835260208301915060208160051b840101602087015f5b8381101561143757601f198684030185526114218383516113a5565b6020958601959093509190910190600101611405565b509098975050505050505050565b5f5f5f5f60608587031215611458575f5ffd5b843561146381611141565b935060208501356001600160401b0381111561147d575f5ffd5b611489878288016111a6565b909450925050604085013561149d81611141565b939692955090935050565b6001600160a01b0391909116815260200190565b805180151581146114cb575f5ffd5b919050565b5f602082840312156114e0575f5ffd5b6114e9826114bc565b9392505050565b5f8251611501818460208701611383565b9190910192915050565b8215158152604060208201525f610fc560408301846113a5565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561155d575f5ffd5b81356114e981611141565b5f60208284031215611578575f5ffd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b5f602082840312156115a9575f5ffd5b81516114e981611141565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b038316806115ec57634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b805160208201516001600160e01b0319811691906004821015611639576001600160e01b0319600483900360031b81901b82161692505b5050919050565b634e487b7160e01b5f52600160045260245ffd5b81810381811115611667576116676115b4565b92915050565b5f5f6040838503121561167e575f5ffd5b611687836114bc565b60208401519092506001600160401b038111156116a2575f5ffd5b8301601f810185136116b2575f5ffd5b80516001600160401b038111156116cb576116cb611525565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116f9576116f9611525565b604052818152828201602001871015611710575f5ffd5b611721826020830160208601611383565b8093505050509250929050565b80820180821115611667576116676115b4565b602081525f6114e960208301846113a556fea264697066735822122023a08e89220583a3672157545eea13219602e8672090f07e6cb21a6e1d1cfa8b64736f6c634300081e0033",
170
- "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063083c1fce1461004e578063152c3db71461006357806319585e1a1461008d5780632d36a6d3146100ae575b5f5ffd5b61006161005c366004611158565b6100c1565b005b6100766100713660046111ed565b6102b7565b6040516100849291906112a8565b60405180910390f35b6100a061009b3660046112d5565b61054b565b6040516100849291906113d0565b6100766100bc366004611445565b6107ef565b6100cc8285836109f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156101955750604051637d2d278360e11b81526001600160a01b0384169063fa5a4f0690610154907f0000000000000000000000000000000000000000000000000000000000000000906004016114a8565b602060405180830381865afa15801561016f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019391906114d0565b155b156101c9576101c57f00000000000000000000000000000000000000000000000000000000000000005f83610a61565b5f91505b6101d38284610b1e565b5f806001600160a01b03808616908516156101ee575f6101f0565b835b6040513060248201526001600160a01b0387166044820152606481018690525f608482015260a40160408051601f198184030181529181526020820180516001600160e01b03166320e8c56560e01b1790525161024d91906114f0565b5f6040518083038185875af1925050503d805f8114610287576040519150601f19603f3d011682016040523d82523d5f602084013e61028c565b606091505b5091509150818160405163032695f960e31b81526004016102ae92919061150b565b60405180910390fd5b6060808584146102fb5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016102ae565b836001600160401b0381111561031357610313611525565b60405190808252806020026020018201604052801561033c578160200160208202803683370190505b509150836001600160401b0381111561035757610357611525565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f5b848110156105405787878281811061039f5761039f611539565b90506020020160208101906103b4919061154d565b6001600160a01b03166370a082318787848181106103d4576103d4611539565b90506020020160208101906103e9919061154d565b6040518263ffffffff1660e01b815260040161040591906114a8565b602060405180830381865afa158015610420573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104449190611568565b83828151811061045657610456611539565b60200260200101818152505087878281811061047457610474611539565b9050602002016020810190610489919061154d565b6001600160a01b031663dd62ed3e8787848181106104a9576104a9611539565b90506020020160208101906104be919061154d565b866040518363ffffffff1660e01b81526004016104dc92919061157f565b602060405180830381865afa1580156104f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b9190611568565b82828151811061052d5761052d611539565b6020908102919091010152600101610385565b509550959350505050565b6060805f8888905090505f8a6001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b69190611599565b9050816001600160401b038111156105d0576105d0611525565b6040519080825280602002602001820160405280156105f9578160200160208202803683370190505b509350816001600160401b0381111561061457610614611525565b60405190808252806020026020018201604052801561064757816020015b60608152602001906001900390816106325790505b5092505f5b828110156107e0575f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163063083c1fce8e8e8681811061069757610697611539565b90506020020160208101906106ac919061154d565b868e8e888181106106bf576106bf611539565b90506020020160208101906106d4919061154d565b8d8d898181106106e6576106e6611539565b6040516001600160a01b039687166024820152948616604486015292909416606484015260209091020135608482015260a401905060408051601f198184030181529181526020820180516001600160e01b031660e09490941b93909317909252905161075392506114f0565b5f60405180830381855af49150503d805f811461078b576040519150601f19603f3d011682016040523d82523d5f602084013e610790565b606091505b5091505061079d81610bd9565b8784815181106107af576107af611539565b602002602001018785815181106107c8576107c8611539565b6020908102919091010191909152525060010161064c565b50505097509795505050505050565b606080836001600160401b0381111561080a5761080a611525565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509150836001600160401b0381111561084e5761084e611525565b604051908082528060200260200182016040528015610877578160200160208202803683370190505b5090505f5b848110156109eb57866001600160a01b03166370a082318787848181106108a5576108a5611539565b90506020020160208101906108ba919061154d565b6040518263ffffffff1660e01b81526004016108d691906114a8565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190611568565b83828151811061092757610927611539565b602002602001018181525050866001600160a01b031663dd62ed3e87878481811061095457610954611539565b9050602002016020810190610969919061154d565b866040518363ffffffff1660e01b815260040161098792919061157f565b602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c69190611568565b8282815181106109d8576109d8611539565b602090810291909101015260010161087c565b5094509492505050565b6001600160a01b038316610a4657803414610a415760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102ae565b505050565b8015610a4157610a416001600160a01b038416833084610c73565b6001600160a01b038316610ac457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aa8575f5ffd5b505af1158015610aba573d5f5f3e3d5ffd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d906024015f604051808303815f87803b158015610b03575f5ffd5b505af1158015610b15573d5f5f3e3d5ffd5b50505050505050565b6001600160a01b038216610b30575050565b610b4260026001600160601b036115c8565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401610b7992919061157f565b602060405180830381865afa158015610b94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb89190611568565b1015610bd557610bc982825f610cd3565b610bd582825f19610cd3565b5050565b5f60606004835110158015610c06575063032695f960e31b610bfa84611602565b6001600160e01b031916145b610c1257610c12611640565b5f5f610c2c856004808851610c279190611654565b610dd8565b806020019051810190610c3f919061166d565b915091508115610c645780806020019051810190610c5d9190611568565b9350610c6c565b5f1993508092505b5050915091565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ccd908590610ee4565b50505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610d2e91906114f0565b5f604051808303815f865af19150503d805f8114610d67576040519150601f19603f3d011682016040523d82523d5f602084013e610d6c565b606091505b5091509150818015610d96575080511580610d96575080806020019051810190610d9691906114d0565b610dd15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102ae565b5050505050565b606081610de681601f61172e565b1015610e255760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102ae565b610e2f828461172e565b84511015610e735760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102ae565b606082158015610e915760405191505f825260208201604052610edb565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610eca578051835260209283019201610eb2565b5050858452601f01601f1916604052505b50949350505050565b5f610f38826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610fb79092919063ffffffff16565b905080515f1480610f58575080806020019051810190610f5891906114d0565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102ae565b6060610fc584845f85610fcd565b949350505050565b60608247101561102e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102ae565b5f5f866001600160a01b0316858760405161104991906114f0565b5f6040518083038185875af1925050503d805f8114611083576040519150601f19603f3d011682016040523d82523d5f602084013e611088565b606091505b5091509150611099878383876110a4565b979650505050505050565b606083156111125782515f0361110b576001600160a01b0385163b61110b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ae565b5081610fc5565b610fc583838151156111275781518083602001fd5b8060405162461bcd60e51b81526004016102ae9190611741565b6001600160a01b0381168114611155575f5ffd5b50565b5f5f5f5f6080858703121561116b575f5ffd5b843561117681611141565b9350602085013561118681611141565b9250604085013561119681611141565b9396929550929360600135925050565b5f5f83601f8401126111b6575f5ffd5b5081356001600160401b038111156111cc575f5ffd5b6020830191508360208260051b85010111156111e6575f5ffd5b9250929050565b5f5f5f5f5f60608688031215611201575f5ffd5b85356001600160401b03811115611216575f5ffd5b611222888289016111a6565b90965094505060208601356001600160401b03811115611240575f5ffd5b61124c888289016111a6565b909450925050604086013561126081611141565b809150509295509295909350565b5f8151808452602084019350602083015f5b8281101561129e578151865260209586019590910190600101611280565b5093949350505050565b604081525f6112ba604083018561126e565b82810360208401526112cc818561126e565b95945050505050565b5f5f5f5f5f5f5f6080888a0312156112eb575f5ffd5b87356112f681611141565b965060208801356001600160401b03811115611310575f5ffd5b61131c8a828b016111a6565b90975095505060408801356001600160401b0381111561133a575f5ffd5b6113468a828b016111a6565b90955093505060608801356001600160401b03811115611364575f5ffd5b6113708a828b016111a6565b989b979a50959850939692959293505050565b5f5b8381101561139d578181015183820152602001611385565b50505f910152565b5f81518084526113bc816020860160208601611383565b601f01601f19169290920160200192915050565b604081525f6113e2604083018561126e565b828103602084015280845180835260208301915060208160051b840101602087015f5b8381101561143757601f198684030185526114218383516113a5565b6020958601959093509190910190600101611405565b509098975050505050505050565b5f5f5f5f60608587031215611458575f5ffd5b843561146381611141565b935060208501356001600160401b0381111561147d575f5ffd5b611489878288016111a6565b909450925050604085013561149d81611141565b939692955090935050565b6001600160a01b0391909116815260200190565b805180151581146114cb575f5ffd5b919050565b5f602082840312156114e0575f5ffd5b6114e9826114bc565b9392505050565b5f8251611501818460208701611383565b9190910192915050565b8215158152604060208201525f610fc560408301846113a5565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561155d575f5ffd5b81356114e981611141565b5f60208284031215611578575f5ffd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b5f602082840312156115a9575f5ffd5b81516114e981611141565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b038316806115ec57634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b805160208201516001600160e01b0319811691906004821015611639576001600160e01b0319600483900360031b81901b82161692505b5050919050565b634e487b7160e01b5f52600160045260245ffd5b81810381811115611667576116676115b4565b92915050565b5f5f6040838503121561167e575f5ffd5b611687836114bc565b60208401519092506001600160401b038111156116a2575f5ffd5b8301601f810185136116b2575f5ffd5b80516001600160401b038111156116cb576116cb611525565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116f9576116f9611525565b604052818152828201602001871015611710575f5ffd5b611721826020830160208601611383565b8093505050509250929050565b80820180821115611667576116676115b4565b602081525f6114e960208301846113a556fea264697066735822122023a08e89220583a3672157545eea13219602e8672090f07e6cb21a6e1d1cfa8b64736f6c634300081e0033",
169
+ "bytecode": "0x60c060405234801561000f575f5ffd5b5060405161181938038061181983398101604081905261002e91610043565b6001600160a01b03166080523060a052610070565b5f60208284031215610053575f5ffd5b81516001600160a01b0381168114610069575f5ffd5b9392505050565b60805160a05161177b61009e5f395f61065f01525f818160ce0152818161012c015261019f015261177b5ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063083c1fce1461004e578063152c3db71461006357806319585e1a1461008d5780632d36a6d3146100ae575b5f5ffd5b61006161005c36600461115e565b6100c1565b005b6100766100713660046111f3565b6102b7565b6040516100849291906112ae565b60405180910390f35b6100a061009b3660046112db565b61054b565b6040516100849291906113d6565b6100766100bc36600461144b565b6107ef565b6100cc8285836109f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156101955750604051637d2d278360e11b81526001600160a01b0384169063fa5a4f0690610154907f0000000000000000000000000000000000000000000000000000000000000000906004016114ae565b602060405180830381865afa15801561016f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019391906114d6565b155b156101c9576101c57f00000000000000000000000000000000000000000000000000000000000000005f83610a61565b5f91505b6101d38284610b1e565b5f806001600160a01b03808616908516156101ee575f6101f0565b835b6040513060248201526001600160a01b0387166044820152606481018690525f608482015260a40160408051601f198184030181529181526020820180516001600160e01b03166320e8c56560e01b1790525161024d91906114f6565b5f6040518083038185875af1925050503d805f8114610287576040519150601f19603f3d011682016040523d82523d5f602084013e61028c565b606091505b5091509150818160405163032695f960e31b81526004016102ae929190611511565b60405180910390fd5b6060808584146102fb5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016102ae565b836001600160401b038111156103135761031361152b565b60405190808252806020026020018201604052801561033c578160200160208202803683370190505b509150836001600160401b038111156103575761035761152b565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f5b848110156105405787878281811061039f5761039f61153f565b90506020020160208101906103b49190611553565b6001600160a01b03166370a082318787848181106103d4576103d461153f565b90506020020160208101906103e99190611553565b6040518263ffffffff1660e01b815260040161040591906114ae565b602060405180830381865afa158015610420573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610444919061156e565b8382815181106104565761045661153f565b6020026020010181815250508787828181106104745761047461153f565b90506020020160208101906104899190611553565b6001600160a01b031663dd62ed3e8787848181106104a9576104a961153f565b90506020020160208101906104be9190611553565b866040518363ffffffff1660e01b81526004016104dc929190611585565b602060405180830381865afa1580156104f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b919061156e565b82828151811061052d5761052d61153f565b6020908102919091010152600101610385565b509550959350505050565b6060805f8888905090505f8a6001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b6919061159f565b9050816001600160401b038111156105d0576105d061152b565b6040519080825280602002602001820160405280156105f9578160200160208202803683370190505b509350816001600160401b038111156106145761061461152b565b60405190808252806020026020018201604052801561064757816020015b60608152602001906001900390816106325790505b5092505f5b828110156107e0575f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163063083c1fce8e8e868181106106975761069761153f565b90506020020160208101906106ac9190611553565b868e8e888181106106bf576106bf61153f565b90506020020160208101906106d49190611553565b8d8d898181106106e6576106e661153f565b6040516001600160a01b039687166024820152948616604486015292909416606484015260209091020135608482015260a401905060408051601f198184030181529181526020820180516001600160e01b031660e09490941b93909317909252905161075392506114f6565b5f60405180830381855af49150503d805f811461078b576040519150601f19603f3d011682016040523d82523d5f602084013e610790565b606091505b5091505061079d81610bd9565b8784815181106107af576107af61153f565b602002602001018785815181106107c8576107c861153f565b6020908102919091010191909152525060010161064c565b50505097509795505050505050565b606080836001600160401b0381111561080a5761080a61152b565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509150836001600160401b0381111561084e5761084e61152b565b604051908082528060200260200182016040528015610877578160200160208202803683370190505b5090505f5b848110156109eb57866001600160a01b03166370a082318787848181106108a5576108a561153f565b90506020020160208101906108ba9190611553565b6040518263ffffffff1660e01b81526004016108d691906114ae565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610915919061156e565b8382815181106109275761092761153f565b602002602001018181525050866001600160a01b031663dd62ed3e8787848181106109545761095461153f565b90506020020160208101906109699190611553565b866040518363ffffffff1660e01b8152600401610987929190611585565b602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c6919061156e565b8282815181106109d8576109d861153f565b602090810291909101015260010161087c565b5094509492505050565b6001600160a01b038316610a4657803414610a415760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102ae565b505050565b8015610a4157610a416001600160a01b038416833084610c79565b6001600160a01b038316610ac457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aa8575f5ffd5b505af1158015610aba573d5f5f3e3d5ffd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d906024015f604051808303815f87803b158015610b03575f5ffd5b505af1158015610b15573d5f5f3e3d5ffd5b50505050505050565b6001600160a01b038216610b30575050565b610b4260026001600160601b036115ce565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401610b79929190611585565b602060405180830381865afa158015610b94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb8919061156e565b1015610bd557610bc982825f610cd9565b610bd582825f19610cd9565b5050565b5f60605f6004845110158015610c07575063032695f960e31b610bfb85611608565b6001600160e01b031916145b905080610c1757505f1993915050565b5f5f610c31866004808951610c2c9190611646565b610dde565b806020019051810190610c44919061165f565b915091508115610c695780806020019051810190610c62919061156e565b9450610c71565b5f1994508093505b505050915091565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610cd3908590610eea565b50505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610d3491906114f6565b5f604051808303815f865af19150503d805f8114610d6d576040519150601f19603f3d011682016040523d82523d5f602084013e610d72565b606091505b5091509150818015610d9c575080511580610d9c575080806020019051810190610d9c91906114d6565b610dd75760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102ae565b5050505050565b606081610dec81601f611720565b1015610e2b5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102ae565b610e358284611720565b84511015610e795760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102ae565b606082158015610e975760405191505f825260208201604052610ee1565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610ed0578051835260209283019201610eb8565b5050858452601f01601f1916604052505b50949350505050565b5f610f3e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610fbd9092919063ffffffff16565b905080515f1480610f5e575080806020019051810190610f5e91906114d6565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102ae565b6060610fcb84845f85610fd3565b949350505050565b6060824710156110345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102ae565b5f5f866001600160a01b0316858760405161104f91906114f6565b5f6040518083038185875af1925050503d805f8114611089576040519150601f19603f3d011682016040523d82523d5f602084013e61108e565b606091505b509150915061109f878383876110aa565b979650505050505050565b606083156111185782515f03611111576001600160a01b0385163b6111115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ae565b5081610fcb565b610fcb838381511561112d5781518083602001fd5b8060405162461bcd60e51b81526004016102ae9190611733565b6001600160a01b038116811461115b575f5ffd5b50565b5f5f5f5f60808587031215611171575f5ffd5b843561117c81611147565b9350602085013561118c81611147565b9250604085013561119c81611147565b9396929550929360600135925050565b5f5f83601f8401126111bc575f5ffd5b5081356001600160401b038111156111d2575f5ffd5b6020830191508360208260051b85010111156111ec575f5ffd5b9250929050565b5f5f5f5f5f60608688031215611207575f5ffd5b85356001600160401b0381111561121c575f5ffd5b611228888289016111ac565b90965094505060208601356001600160401b03811115611246575f5ffd5b611252888289016111ac565b909450925050604086013561126681611147565b809150509295509295909350565b5f8151808452602084019350602083015f5b828110156112a4578151865260209586019590910190600101611286565b5093949350505050565b604081525f6112c06040830185611274565b82810360208401526112d28185611274565b95945050505050565b5f5f5f5f5f5f5f6080888a0312156112f1575f5ffd5b87356112fc81611147565b965060208801356001600160401b03811115611316575f5ffd5b6113228a828b016111ac565b90975095505060408801356001600160401b03811115611340575f5ffd5b61134c8a828b016111ac565b90955093505060608801356001600160401b0381111561136a575f5ffd5b6113768a828b016111ac565b989b979a50959850939692959293505050565b5f5b838110156113a357818101518382015260200161138b565b50505f910152565b5f81518084526113c2816020860160208601611389565b601f01601f19169290920160200192915050565b604081525f6113e86040830185611274565b828103602084015280845180835260208301915060208160051b840101602087015f5b8381101561143d57601f198684030185526114278383516113ab565b602095860195909350919091019060010161140b565b509098975050505050505050565b5f5f5f5f6060858703121561145e575f5ffd5b843561146981611147565b935060208501356001600160401b03811115611483575f5ffd5b61148f878288016111ac565b90945092505060408501356114a381611147565b939692955090935050565b6001600160a01b0391909116815260200190565b805180151581146114d1575f5ffd5b919050565b5f602082840312156114e6575f5ffd5b6114ef826114c2565b9392505050565b5f8251611507818460208701611389565b9190910192915050565b8215158152604060208201525f610fcb60408301846113ab565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611563575f5ffd5b81356114ef81611147565b5f6020828403121561157e575f5ffd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b5f602082840312156115af575f5ffd5b81516114ef81611147565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b038316806115f257634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b805160208201516001600160e01b031981169190600482101561163f576001600160e01b0319600483900360031b81901b82161692505b5050919050565b81810381811115611659576116596115ba565b92915050565b5f5f60408385031215611670575f5ffd5b611679836114c2565b60208401519092506001600160401b03811115611694575f5ffd5b8301601f810185136116a4575f5ffd5b80516001600160401b038111156116bd576116bd61152b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116eb576116eb61152b565b604052818152828201602001871015611702575f5ffd5b611713826020830160208601611389565b8093505050509250929050565b80820180821115611659576116596115ba565b602081525f6114ef60208301846113ab56fea2646970667358221220b5350eb25b356779cb81df1232c8d83dd901a012589054945dc048804c83058e64736f6c634300081e0033",
170
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063083c1fce1461004e578063152c3db71461006357806319585e1a1461008d5780632d36a6d3146100ae575b5f5ffd5b61006161005c36600461115e565b6100c1565b005b6100766100713660046111f3565b6102b7565b6040516100849291906112ae565b60405180910390f35b6100a061009b3660046112db565b61054b565b6040516100849291906113d6565b6100766100bc36600461144b565b6107ef565b6100cc8285836109f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156101955750604051637d2d278360e11b81526001600160a01b0384169063fa5a4f0690610154907f0000000000000000000000000000000000000000000000000000000000000000906004016114ae565b602060405180830381865afa15801561016f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019391906114d6565b155b156101c9576101c57f00000000000000000000000000000000000000000000000000000000000000005f83610a61565b5f91505b6101d38284610b1e565b5f806001600160a01b03808616908516156101ee575f6101f0565b835b6040513060248201526001600160a01b0387166044820152606481018690525f608482015260a40160408051601f198184030181529181526020820180516001600160e01b03166320e8c56560e01b1790525161024d91906114f6565b5f6040518083038185875af1925050503d805f8114610287576040519150601f19603f3d011682016040523d82523d5f602084013e61028c565b606091505b5091509150818160405163032695f960e31b81526004016102ae929190611511565b60405180910390fd5b6060808584146102fb5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016102ae565b836001600160401b038111156103135761031361152b565b60405190808252806020026020018201604052801561033c578160200160208202803683370190505b509150836001600160401b038111156103575761035761152b565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f5b848110156105405787878281811061039f5761039f61153f565b90506020020160208101906103b49190611553565b6001600160a01b03166370a082318787848181106103d4576103d461153f565b90506020020160208101906103e99190611553565b6040518263ffffffff1660e01b815260040161040591906114ae565b602060405180830381865afa158015610420573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610444919061156e565b8382815181106104565761045661153f565b6020026020010181815250508787828181106104745761047461153f565b90506020020160208101906104899190611553565b6001600160a01b031663dd62ed3e8787848181106104a9576104a961153f565b90506020020160208101906104be9190611553565b866040518363ffffffff1660e01b81526004016104dc929190611585565b602060405180830381865afa1580156104f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b919061156e565b82828151811061052d5761052d61153f565b6020908102919091010152600101610385565b509550959350505050565b6060805f8888905090505f8a6001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b6919061159f565b9050816001600160401b038111156105d0576105d061152b565b6040519080825280602002602001820160405280156105f9578160200160208202803683370190505b509350816001600160401b038111156106145761061461152b565b60405190808252806020026020018201604052801561064757816020015b60608152602001906001900390816106325790505b5092505f5b828110156107e0575f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163063083c1fce8e8e868181106106975761069761153f565b90506020020160208101906106ac9190611553565b868e8e888181106106bf576106bf61153f565b90506020020160208101906106d49190611553565b8d8d898181106106e6576106e661153f565b6040516001600160a01b039687166024820152948616604486015292909416606484015260209091020135608482015260a401905060408051601f198184030181529181526020820180516001600160e01b031660e09490941b93909317909252905161075392506114f6565b5f60405180830381855af49150503d805f811461078b576040519150601f19603f3d011682016040523d82523d5f602084013e610790565b606091505b5091505061079d81610bd9565b8784815181106107af576107af61153f565b602002602001018785815181106107c8576107c861153f565b6020908102919091010191909152525060010161064c565b50505097509795505050505050565b606080836001600160401b0381111561080a5761080a61152b565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509150836001600160401b0381111561084e5761084e61152b565b604051908082528060200260200182016040528015610877578160200160208202803683370190505b5090505f5b848110156109eb57866001600160a01b03166370a082318787848181106108a5576108a561153f565b90506020020160208101906108ba9190611553565b6040518263ffffffff1660e01b81526004016108d691906114ae565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610915919061156e565b8382815181106109275761092761153f565b602002602001018181525050866001600160a01b031663dd62ed3e8787848181106109545761095461153f565b90506020020160208101906109699190611553565b866040518363ffffffff1660e01b8152600401610987929190611585565b602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c6919061156e565b8282815181106109d8576109d861153f565b602090810291909101015260010161087c565b5094509492505050565b6001600160a01b038316610a4657803414610a415760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102ae565b505050565b8015610a4157610a416001600160a01b038416833084610c79565b6001600160a01b038316610ac457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aa8575f5ffd5b505af1158015610aba573d5f5f3e3d5ffd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d906024015f604051808303815f87803b158015610b03575f5ffd5b505af1158015610b15573d5f5f3e3d5ffd5b50505050505050565b6001600160a01b038216610b30575050565b610b4260026001600160601b036115ce565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401610b79929190611585565b602060405180830381865afa158015610b94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb8919061156e565b1015610bd557610bc982825f610cd9565b610bd582825f19610cd9565b5050565b5f60605f6004845110158015610c07575063032695f960e31b610bfb85611608565b6001600160e01b031916145b905080610c1757505f1993915050565b5f5f610c31866004808951610c2c9190611646565b610dde565b806020019051810190610c44919061165f565b915091508115610c695780806020019051810190610c62919061156e565b9450610c71565b5f1994508093505b505050915091565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610cd3908590610eea565b50505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610d3491906114f6565b5f604051808303815f865af19150503d805f8114610d6d576040519150601f19603f3d011682016040523d82523d5f602084013e610d72565b606091505b5091509150818015610d9c575080511580610d9c575080806020019051810190610d9c91906114d6565b610dd75760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102ae565b5050505050565b606081610dec81601f611720565b1015610e2b5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102ae565b610e358284611720565b84511015610e795760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102ae565b606082158015610e975760405191505f825260208201604052610ee1565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610ed0578051835260209283019201610eb8565b5050858452601f01601f1916604052505b50949350505050565b5f610f3e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610fbd9092919063ffffffff16565b905080515f1480610f5e575080806020019051810190610f5e91906114d6565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102ae565b6060610fcb84845f85610fd3565b949350505050565b6060824710156110345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102ae565b5f5f866001600160a01b0316858760405161104f91906114f6565b5f6040518083038185875af1925050503d805f8114611089576040519150601f19603f3d011682016040523d82523d5f602084013e61108e565b606091505b509150915061109f878383876110aa565b979650505050505050565b606083156111185782515f03611111576001600160a01b0385163b6111115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ae565b5081610fcb565b610fcb838381511561112d5781518083602001fd5b8060405162461bcd60e51b81526004016102ae9190611733565b6001600160a01b038116811461115b575f5ffd5b50565b5f5f5f5f60808587031215611171575f5ffd5b843561117c81611147565b9350602085013561118c81611147565b9250604085013561119c81611147565b9396929550929360600135925050565b5f5f83601f8401126111bc575f5ffd5b5081356001600160401b038111156111d2575f5ffd5b6020830191508360208260051b85010111156111ec575f5ffd5b9250929050565b5f5f5f5f5f60608688031215611207575f5ffd5b85356001600160401b0381111561121c575f5ffd5b611228888289016111ac565b90965094505060208601356001600160401b03811115611246575f5ffd5b611252888289016111ac565b909450925050604086013561126681611147565b809150509295509295909350565b5f8151808452602084019350602083015f5b828110156112a4578151865260209586019590910190600101611286565b5093949350505050565b604081525f6112c06040830185611274565b82810360208401526112d28185611274565b95945050505050565b5f5f5f5f5f5f5f6080888a0312156112f1575f5ffd5b87356112fc81611147565b965060208801356001600160401b03811115611316575f5ffd5b6113228a828b016111ac565b90975095505060408801356001600160401b03811115611340575f5ffd5b61134c8a828b016111ac565b90955093505060608801356001600160401b0381111561136a575f5ffd5b6113768a828b016111ac565b989b979a50959850939692959293505050565b5f5b838110156113a357818101518382015260200161138b565b50505f910152565b5f81518084526113c2816020860160208601611389565b601f01601f19169290920160200192915050565b604081525f6113e86040830185611274565b828103602084015280845180835260208301915060208160051b840101602087015f5b8381101561143d57601f198684030185526114278383516113ab565b602095860195909350919091019060010161140b565b509098975050505050505050565b5f5f5f5f6060858703121561145e575f5ffd5b843561146981611147565b935060208501356001600160401b03811115611483575f5ffd5b61148f878288016111ac565b90945092505060408501356114a381611147565b939692955090935050565b6001600160a01b0391909116815260200190565b805180151581146114d1575f5ffd5b919050565b5f602082840312156114e6575f5ffd5b6114ef826114c2565b9392505050565b5f8251611507818460208701611389565b9190910192915050565b8215158152604060208201525f610fcb60408301846113ab565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611563575f5ffd5b81356114ef81611147565b5f6020828403121561157e575f5ffd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b5f602082840312156115af575f5ffd5b81516114ef81611147565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b038316806115f257634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b805160208201516001600160e01b031981169190600482101561163f576001600160e01b0319600483900360031b81901b82161692505b5050919050565b81810381811115611659576116596115ba565b92915050565b5f5f60408385031215611670575f5ffd5b611679836114c2565b60208401519092506001600160401b03811115611694575f5ffd5b8301601f810185136116a4575f5ffd5b80516001600160401b038111156116bd576116bd61152b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116eb576116eb61152b565b604052818152828201602001871015611702575f5ffd5b611713826020830160208601611389565b8093505050509250929050565b80820180821115611659576116596115ba565b602081525f6114ef60208301846113ab56fea2646970667358221220b5350eb25b356779cb81df1232c8d83dd901a012589054945dc048804c83058e64736f6c634300081e0033",
171
171
  "linkReferences": {},
172
172
  "deployedLinkReferences": {}
173
173
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/8604313b205a127eb39e2a1c1978e75b.json"
4
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleLinearDiscountOracleWrapper",
4
+ "sourceName": "contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_innerOracle",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "decimals",
20
+ "outputs": [
21
+ {
22
+ "internalType": "uint8",
23
+ "name": "",
24
+ "type": "uint8"
25
+ }
26
+ ],
27
+ "stateMutability": "view",
28
+ "type": "function"
29
+ },
30
+ {
31
+ "inputs": [],
32
+ "name": "innerOracle",
33
+ "outputs": [
34
+ {
35
+ "internalType": "contract IPChainlinkOracleEssential",
36
+ "name": "",
37
+ "type": "address"
38
+ }
39
+ ],
40
+ "stateMutability": "view",
41
+ "type": "function"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "latestRoundData",
46
+ "outputs": [
47
+ {
48
+ "internalType": "uint80",
49
+ "name": "roundId",
50
+ "type": "uint80"
51
+ },
52
+ {
53
+ "internalType": "int256",
54
+ "name": "answer",
55
+ "type": "int256"
56
+ },
57
+ {
58
+ "internalType": "uint256",
59
+ "name": "startedAt",
60
+ "type": "uint256"
61
+ },
62
+ {
63
+ "internalType": "uint256",
64
+ "name": "updatedAt",
65
+ "type": "uint256"
66
+ },
67
+ {
68
+ "internalType": "uint80",
69
+ "name": "answeredInRound",
70
+ "type": "uint80"
71
+ }
72
+ ],
73
+ "stateMutability": "view",
74
+ "type": "function"
75
+ }
76
+ ],
77
+ "bytecode": "0x60a0604052348015600e575f5ffd5b5060405161034b38038061034b833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516102c161008a5f395f818160670152818160e0015261016a01526102c15ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063313ce56714610043578063ea56d3db14610062578063feaf968c146100a1575b5f5ffd5b61004b6100dd565b60405160ff90911681526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a9610163565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a001610059565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015e91906101fb565b905090565b5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e8919061023d565b9399929850909650429550919350915050565b5f6020828403121561020b575f5ffd5b815160ff8116811461021b575f5ffd5b9392505050565b80516001600160501b0381168114610238575f5ffd5b919050565b5f5f5f5f5f60a08688031215610251575f5ffd5b61025a86610222565b6020870151604088015160608901519297509095509350915061027f60808701610222565b9050929550929590935056fea26469706673582212201f58ad8205559fe56c0de10f7f025b05cd87354cb87a5fb723c8bfb1cc29268e64736f6c634300081e0033",
78
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063313ce56714610043578063ea56d3db14610062578063feaf968c146100a1575b5f5ffd5b61004b6100dd565b60405160ff90911681526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a9610163565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a001610059565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015e91906101fb565b905090565b5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e8919061023d565b9399929850909650429550919350915050565b5f6020828403121561020b575f5ffd5b815160ff8116811461021b575f5ffd5b9392505050565b80516001600160501b0381168114610238575f5ffd5b919050565b5f5f5f5f5f60a08688031215610251575f5ffd5b61025a86610222565b6020870151604088015160608901519297509095509350915061027f60808701610222565b9050929550929590935056fea26469706673582212201f58ad8205559fe56c0de10f7f025b05cd87354cb87a5fb723c8bfb1cc29268e64736f6c634300081e0033",
79
+ "linkReferences": {},
80
+ "deployedLinkReferences": {}
81
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/8604313b205a127eb39e2a1c1978e75b.json"
4
+ }
@@ -0,0 +1,121 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleSparkLinearDiscountOracleFactoryWrapper",
4
+ "sourceName": "contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_innerFactory",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": true,
22
+ "internalType": "address",
23
+ "name": "innerOracle",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "indexed": true,
28
+ "internalType": "address",
29
+ "name": "wrapper",
30
+ "type": "address"
31
+ }
32
+ ],
33
+ "name": "WrapperOracleCreated",
34
+ "type": "event"
35
+ },
36
+ {
37
+ "inputs": [
38
+ {
39
+ "internalType": "address",
40
+ "name": "market",
41
+ "type": "address"
42
+ },
43
+ {
44
+ "internalType": "uint256",
45
+ "name": "baseDiscountPerYear",
46
+ "type": "uint256"
47
+ }
48
+ ],
49
+ "name": "createWithMarket",
50
+ "outputs": [
51
+ {
52
+ "internalType": "address",
53
+ "name": "wrapper",
54
+ "type": "address"
55
+ }
56
+ ],
57
+ "stateMutability": "nonpayable",
58
+ "type": "function"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "address",
64
+ "name": "pt",
65
+ "type": "address"
66
+ },
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "baseDiscountPerYear",
70
+ "type": "uint256"
71
+ }
72
+ ],
73
+ "name": "createWithPt",
74
+ "outputs": [
75
+ {
76
+ "internalType": "address",
77
+ "name": "wrapper",
78
+ "type": "address"
79
+ }
80
+ ],
81
+ "stateMutability": "nonpayable",
82
+ "type": "function"
83
+ },
84
+ {
85
+ "inputs": [],
86
+ "name": "innerFactory",
87
+ "outputs": [
88
+ {
89
+ "internalType": "contract PendleSparkLinearDiscountOracleFactory",
90
+ "name": "",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "stateMutability": "view",
95
+ "type": "function"
96
+ },
97
+ {
98
+ "inputs": [
99
+ {
100
+ "internalType": "address",
101
+ "name": "innerOracle",
102
+ "type": "address"
103
+ }
104
+ ],
105
+ "name": "wrap",
106
+ "outputs": [
107
+ {
108
+ "internalType": "address",
109
+ "name": "wrapper",
110
+ "type": "address"
111
+ }
112
+ ],
113
+ "stateMutability": "nonpayable",
114
+ "type": "function"
115
+ }
116
+ ],
117
+ "bytecode": "0x60a0604052348015600e575f5ffd5b506040516106f43803806106f4833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b60805161066961008b5f395f8181607c0152818161014101526101e401526106695ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063023276f01461004e57806306d07f0f146100775780633b8863cc1461009e57806380245dad146100b1575b5f5ffd5b61006161005c366004610254565b6100c4565b60405161006e9190610276565b60405180910390f35b6100617f000000000000000000000000000000000000000000000000000000000000000081565b6100616100ac36600461028a565b61013d565b6100616100bf36600461028a565b6101e0565b5f816040516100d290610230565b6100dc9190610276565b604051809103905ff0801580156100f5573d5f5f3e3d5ffd5b509050806001600160a01b0316826001600160a01b03167f56118c465eeed279e6e34bf04325d6db3695f9311dd77ae3db0dd7bcb8bceebd60405160405180910390a3919050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b8863cc85856040518363ffffffff1660e01b815260040161018d9291906102b4565b6020604051808303815f875af11580156101a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101cd91906102cd565b90506101d8816100c4565b949350505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166380245dad85856040518363ffffffff1660e01b815260040161018d9291906102b4565b61034b806102e983390190565b6001600160a01b0381168114610251575f5ffd5b50565b5f60208284031215610264575f5ffd5b813561026f8161023d565b9392505050565b6001600160a01b0391909116815260200190565b5f5f6040838503121561029b575f5ffd5b82356102a68161023d565b946020939093013593505050565b6001600160a01b03929092168252602082015260400190565b5f602082840312156102dd575f5ffd5b815161026f8161023d56fe60a0604052348015600e575f5ffd5b5060405161034b38038061034b833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516102c161008a5f395f818160670152818160e0015261016a01526102c15ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063313ce56714610043578063ea56d3db14610062578063feaf968c146100a1575b5f5ffd5b61004b6100dd565b60405160ff90911681526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a9610163565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a001610059565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015e91906101fb565b905090565b5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e8919061023d565b9399929850909650429550919350915050565b5f6020828403121561020b575f5ffd5b815160ff8116811461021b575f5ffd5b9392505050565b80516001600160501b0381168114610238575f5ffd5b919050565b5f5f5f5f5f60a08688031215610251575f5ffd5b61025a86610222565b6020870151604088015160608901519297509095509350915061027f60808701610222565b9050929550929590935056fea26469706673582212201f58ad8205559fe56c0de10f7f025b05cd87354cb87a5fb723c8bfb1cc29268e64736f6c634300081e0033a26469706673582212209d8f4c874b9b52a849a7312de99a1565a4d22ed4b879503edbcf7f06d1ecabe164736f6c634300081e0033",
118
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063023276f01461004e57806306d07f0f146100775780633b8863cc1461009e57806380245dad146100b1575b5f5ffd5b61006161005c366004610254565b6100c4565b60405161006e9190610276565b60405180910390f35b6100617f000000000000000000000000000000000000000000000000000000000000000081565b6100616100ac36600461028a565b61013d565b6100616100bf36600461028a565b6101e0565b5f816040516100d290610230565b6100dc9190610276565b604051809103905ff0801580156100f5573d5f5f3e3d5ffd5b509050806001600160a01b0316826001600160a01b03167f56118c465eeed279e6e34bf04325d6db3695f9311dd77ae3db0dd7bcb8bceebd60405160405180910390a3919050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b8863cc85856040518363ffffffff1660e01b815260040161018d9291906102b4565b6020604051808303815f875af11580156101a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101cd91906102cd565b90506101d8816100c4565b949350505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166380245dad85856040518363ffffffff1660e01b815260040161018d9291906102b4565b61034b806102e983390190565b6001600160a01b0381168114610251575f5ffd5b50565b5f60208284031215610264575f5ffd5b813561026f8161023d565b9392505050565b6001600160a01b0391909116815260200190565b5f5f6040838503121561029b575f5ffd5b82356102a68161023d565b946020939093013593505050565b6001600160a01b03929092168252602082015260400190565b5f602082840312156102dd575f5ffd5b815161026f8161023d56fe60a0604052348015600e575f5ffd5b5060405161034b38038061034b833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516102c161008a5f395f818160670152818160e0015261016a01526102c15ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063313ce56714610043578063ea56d3db14610062578063feaf968c146100a1575b5f5ffd5b61004b6100dd565b60405160ff90911681526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a9610163565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a001610059565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015e91906101fb565b905090565b5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e8919061023d565b9399929850909650429550919350915050565b5f6020828403121561020b575f5ffd5b815160ff8116811461021b575f5ffd5b9392505050565b80516001600160501b0381168114610238575f5ffd5b919050565b5f5f5f5f5f60a08688031215610251575f5ffd5b61025a86610222565b6020870151604088015160608901519297509095509350915061027f60808701610222565b9050929550929590935056fea26469706673582212201f58ad8205559fe56c0de10f7f025b05cd87354cb87a5fb723c8bfb1cc29268e64736f6c634300081e0033a26469706673582212209d8f4c874b9b52a849a7312de99a1565a4d22ed4b879503edbcf7f06d1ecabe164736f6c634300081e0033",
119
+ "linkReferences": {},
120
+ "deployedLinkReferences": {}
121
+ }
@@ -69,7 +69,12 @@ contract LimitBackendHelperV2 is TokenHelper {
69
69
  }
70
70
 
71
71
  function parseMinted(bytes memory result) internal pure returns (uint256 minted, bytes memory error) {
72
- assert(result.length >= 4 && bytes4(result) == Errors.SimulationResults.selector);
72
+ bool isSimulationResult = result.length >= 4 && bytes4(result) == Errors.SimulationResults.selector;
73
+
74
+ if (!isSimulationResult) {
75
+ return (type(uint256).max, result);
76
+ }
77
+
73
78
  (bool success, bytes memory data) = abi.decode(BytesLib.slice(result, 4, result.length - 4), (bool, bytes));
74
79
 
75
80
  if (success) {
@@ -0,0 +1,29 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {IPChainlinkOracleEssential} from "../../interfaces/IPChainlinkOracleEssential.sol";
5
+
6
+ /**
7
+ * Oracle wrapper that updates the `updatedAt` field to the current block timestamp.
8
+ * Intended to use with the Chainlink-compatible oracles that are stateless but with updatedAt field equal to 0.
9
+ */
10
+ contract PendleLinearDiscountOracleWrapper is IPChainlinkOracleEssential {
11
+ IPChainlinkOracleEssential public immutable innerOracle;
12
+
13
+ constructor(address _innerOracle) {
14
+ innerOracle = IPChainlinkOracleEssential(_innerOracle);
15
+ }
16
+
17
+ function latestRoundData()
18
+ external
19
+ view
20
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
21
+ {
22
+ (roundId, answer, startedAt, updatedAt, answeredInRound) = innerOracle.latestRoundData();
23
+ updatedAt = block.timestamp;
24
+ }
25
+
26
+ function decimals() external view returns (uint8) {
27
+ return innerOracle.decimals();
28
+ }
29
+ }
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {PendleLinearDiscountOracleWrapper} from "./PendleLinearDiscountOracleWrapper.sol";
5
+ import {PendleSparkLinearDiscountOracleFactory} from "../internal/PendleSparkLinearDiscountOracleFactory.sol";
6
+
7
+ contract PendleSparkLinearDiscountOracleFactoryWrapper {
8
+ event WrapperOracleCreated(address indexed innerOracle, address indexed wrapper);
9
+
10
+ PendleSparkLinearDiscountOracleFactory public immutable innerFactory;
11
+
12
+ constructor(address _innerFactory) {
13
+ innerFactory = PendleSparkLinearDiscountOracleFactory(_innerFactory);
14
+ }
15
+
16
+ function wrap(address innerOracle) public returns (address wrapper) {
17
+ wrapper = address(new PendleLinearDiscountOracleWrapper(innerOracle));
18
+ emit WrapperOracleCreated(innerOracle, wrapper);
19
+ }
20
+
21
+ function createWithPt(address pt, uint256 baseDiscountPerYear) external returns (address wrapper) {
22
+ address innerOracle = innerFactory.createWithPt(pt, baseDiscountPerYear);
23
+ return wrap(innerOracle);
24
+ }
25
+
26
+ function createWithMarket(address market, uint256 baseDiscountPerYear) external returns (address wrapper) {
27
+ address innerOracle = innerFactory.createWithMarket(market, baseDiscountPerYear);
28
+ return wrap(innerOracle);
29
+ }
30
+ }
@@ -48,8 +48,9 @@
48
48
  "commonDeploy": "0x2Ed473F528E5B320f850d17ADfe0e558f0298aA9",
49
49
  "syFactory": "0x466CeD3b33045Ea986B2f306C8D0aA8067961CF8",
50
50
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
51
- "beta": {
52
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
51
+ "experimental": {
52
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
53
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
53
54
  },
54
55
  "vePendle": "0x4f30A9D41B80ecC5B94306AB4364951AE3170210",
55
56
  "senderEndpoint": "0x07b1014c88f14C9E910092526db57A20052E989F",
@@ -5,7 +5,7 @@
5
5
  "simulateHelper": "0x2b3EC64160F658fFe7061769415Ff080fca80BbA",
6
6
  "supplyCapReader": "0x438C7dBA7d355aA0c77459AF38B2E62f9f9EccBf",
7
7
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
8
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
8
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
9
9
  "checkSolvent": "0x1dE943933417D50738557Ac98FF96405CeeeeCD5",
10
10
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
11
11
  }
@@ -48,8 +48,9 @@
48
48
  "commonDeploy": "0x2Ed473F528E5B320f850d17ADfe0e558f0298aA9",
49
49
  "syFactory": "0x466CeD3b33045Ea986B2f306C8D0aA8067961CF8",
50
50
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
51
- "beta": {
52
- "PendleChainlinkOracleFactory": "0x2A73e899389cABa2a2f648BaBA35e67f5C00EFee"
51
+ "experimental": {
52
+ "PendleChainlinkOracleFactory": "0x2A73e899389cABa2a2f648BaBA35e67f5C00EFee",
53
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
53
54
  },
54
55
  "receiverEndpoint": "0xED18de5442297a4Ec1ce59C7c7d9427Adc2A012b",
55
56
  "vePendle": "0xd5C47D2383Fddc19596489280C0A33AC42b2bB18",
@@ -4,7 +4,7 @@
4
4
  "simulateHelper": "0x2b3EC64160F658fFe7061769415Ff080fca80BbA",
5
5
  "supplyCapReader": "0x438C7dBA7d355aA0c77459AF38B2E62f9f9EccBf",
6
6
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
7
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
7
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
8
8
  "checkSolvent": "0x1dE943933417D50738557Ac98FF96405CeeeeCD5",
9
9
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
10
10
  }
@@ -44,8 +44,9 @@
44
44
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
45
45
  "vePendleAirdropDistributor": "0x3942F7B55094250644cFfDa7160226Caa349A38E",
46
46
  "externalRewardsDistributor": "0xae898a7d07f8e27f25e13d0f351a7401f9a5bf9d",
47
- "beta": {
48
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
47
+ "experimental": {
48
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
49
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
49
50
  },
50
51
  "lpWrapperFactory": "0xeCfEB97D7F070DA5b93c5DC274183F1D7f68532F",
51
52
  "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9",
@@ -4,7 +4,7 @@
4
4
  "simulateHelper": "0xc23Dd2807e51dd1D317e1321CBeEb9ace98531EE",
5
5
  "supplyCapReader": "0x251CfB4E84CefecA6c1e6a4D8a0cb9c524e7484f",
6
6
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
7
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
7
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
8
8
  "checkSolvent": "0x21332dCAe68b603B9170d25D21fda68f18Da91df",
9
9
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
10
10
  }
@@ -48,8 +48,9 @@
48
48
  "commonDeploy": "0x2Ed473F528E5B320f850d17ADfe0e558f0298aA9",
49
49
  "syFactory": "0x466CeD3b33045Ea986B2f306C8D0aA8067961CF8",
50
50
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
51
- "beta": {
52
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
51
+ "experimental": {
52
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
53
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
53
54
  },
54
55
  "receiverEndpoint": "0xC9215ae9EC67385F38C755D862C8eE3702B5793A",
55
56
  "vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
@@ -5,7 +5,7 @@
5
5
  "simulateHelper": "0x2b3EC64160F658fFe7061769415Ff080fca80BbA",
6
6
  "supplyCapReader": "0x438C7dBA7d355aA0c77459AF38B2E62f9f9EccBf",
7
7
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
8
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
8
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
9
9
  "checkSolvent": "0x1dE943933417D50738557Ac98FF96405CeeeeCD5",
10
10
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
11
11
  }
@@ -1,5 +1,22 @@
1
1
  {
2
2
  "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
- "sparkLinearDiscountOracleFactory": "0x1fbacedf510daa79dfd9b41227a7ba192d5d548d",
4
- "fixedPricePTAMM": "0x4d717868F4Bd14ac8B29Bb6361901e30Ae05e340"
3
+ "network": {
4
+ "chainId": 43114,
5
+ "treasury": "0xCbcb48e22622a3778b6F14C2f5d258Ba026b05e6",
6
+ "governance": "0x7877AdFaDEd756f3248a0EBfe8Ac2E2eF87b75Ac",
7
+ "devMultisig": "0xE6F0489ED91dc27f40f9dbe8f81fccbFC16b9cb1",
8
+ "lzEndpoint": "0x3c2269811836af69497E5F486A85D7316753cf62",
9
+ "wrappedNative": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",
10
+ "initialRewardFee": "50000000000000000",
11
+ "initialInterestFee": "50000000000000000",
12
+ "initialReserveFeePercent": "80",
13
+ "safeWaitTime": 15000,
14
+ "hardwareDeployer": "0xeea6F790F18563E91b18DF00B89d9f79b2E6761F"
15
+ },
16
+ "fixedPricePTAMM": "0x4d717868F4Bd14ac8B29Bb6361901e30Ae05e340",
17
+ "experimental": {
18
+ "sparkLinearDiscountOracleFactory": "0x1fbacedf510daa79dfd9b41227a7ba192d5d548d",
19
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
20
+ },
21
+ "governanceProxy": "0x2aD631F72fB16d91c4953A7f4260A97C2fE2f31e"
5
22
  }
@@ -50,8 +50,9 @@
50
50
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
51
51
  "vePendleAirdropDistributor": "0x3942F7B55094250644cFfDa7160226Caa349A38E",
52
52
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
53
- "beta": {
54
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
53
+ "experimental": {
54
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
55
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
55
56
  },
56
57
  "lpWrapperFactory": "0x6D653C8DAAc8D81c9CE98E038fbF94D7E652e147",
57
58
  "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9",
@@ -5,7 +5,7 @@
5
5
  "simulateHelper": "0x2b3EC64160F658fFe7061769415Ff080fca80BbA",
6
6
  "supplyCapReader": "0x438C7dBA7d355aA0c77459AF38B2E62f9f9EccBf",
7
7
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
8
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
8
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
9
9
  "checkSolvent": "0x1dE943933417D50738557Ac98FF96405CeeeeCD5",
10
10
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
11
11
  }
@@ -48,8 +48,9 @@
48
48
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
49
49
  "vePendleAirdropDistributor": "0x3942F7B55094250644cFfDa7160226Caa349A38E",
50
50
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
51
- "beta": {
52
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
51
+ "experimental": {
52
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
53
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
53
54
  },
54
55
  "receiverEndpoint": "0x998CF52b2585e05494BF9F2bF502351a9C7FdA8f",
55
56
  "vePendle": "0x8A09574b0401A856d89d1b583eE22E8cb0C5530B",
@@ -5,7 +5,7 @@
5
5
  "simulateHelper": "0x2b3EC64160F658fFe7061769415Ff080fca80BbA",
6
6
  "supplyCapReader": "0x438C7dBA7d355aA0c77459AF38B2E62f9f9EccBf",
7
7
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
8
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
8
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
9
9
  "checkSolvent": "0x1dE943933417D50738557Ac98FF96405CeeeeCD5",
10
10
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
11
11
  }
@@ -41,8 +41,9 @@
41
41
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
42
42
  "vePendleAirdropDistributor": "0x7f6Ca6aA1F2291992E252Fb8E25348c4861C5C25",
43
43
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
44
- "beta": {
45
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
44
+ "experimental": {
45
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
46
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
46
47
  },
47
48
  "receiverEndpoint": "0xd5C47D2383Fddc19596489280C0A33AC42b2bB18",
48
49
  "vePendle": "0x6875e4A945E498FE1B90BbB13CFbAF0b68658C9C",
@@ -4,7 +4,7 @@
4
4
  "simulateHelper": "0xc23Dd2807e51dd1D317e1321CBeEb9ace98531EE",
5
5
  "supplyCapReader": "0x251CfB4E84CefecA6c1e6a4D8a0cb9c524e7484f",
6
6
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
7
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
7
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
8
8
  "checkSolvent": "0x21332dCAe68b603B9170d25D21fda68f18Da91df",
9
9
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
10
10
  }