@pendle/core-v2 5.8.2-paraswap → 5.8.2-paraswap-2
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/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.json +607 -0
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/router/swap-aggregator/ParaswapScaleHelper.sol +218 -21
- package/deployments/1-core.json +1 -1
- package/deployments/42161-core.json +1 -1
- package/package.json +1 -1
- package/typechain-types/IAugustusV6.ts +692 -0
- package/typechain-types/factories/IAugustusV6__factory.ts +619 -0
- package/typechain-types/factories/PendleSwap__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +4 -4
- package/typechain-types/index.ts +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IGenericSwapExactAmountIn.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IGenericSwapExactAmountIn.json +0 -81
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"type": "receive"
|
|
79
79
|
}
|
|
80
80
|
],
|
|
81
|
-
"bytecode": "0x608060405234801561001057600080fd5b50612266806100206000396000f3fe6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c366004610f5a565b610043565b005b61004d8382610167565b6101066100606080830160608401610fd2565b6100ab576100716040830183610fef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100ce92505050565b6100ce6100bb602084018461103c565b6100c86040850185610fef565b866101c7565b6001600160a01b038516156100e45760006100e6565b835b6100f6604085016020860161105d565b6001600160a01b03169190610344565b506001600160a01b03831661011e602083018361103c565b600a81111561012f5761012f61107a565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b6001600160a01b038216610179575050565b6004610188602083018361103c565b600a8111156101995761019961107a565b036101b3576101af826101aa610374565b610493565b5050565b6101af826101aa604084016020850161105d565b6060600185600a8111156101dd576101dd61107a565b036102c15760405163726d379760e11b8152600090732f577a41bec1be1152aeea12e73b7391d15f655d9063e4da6f2e9061022090889088908890600401611090565b600060405180830381865afa15801561023d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261026591908101906111c7565b92509050806102bb5760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b5061033c565b600285600a8111156102d5576102d561107a565b036102ec576102e5848484610524565b905061033c565b600685600a8111156103005761030061107a565b03610310576102e5848484610638565b600485600a8111156103245761032461107a565b03610334576102e5848484610751565b61033c611258565b949350505050565b606061036a84848460405180606001604052806029815260200161220860299139610ab0565b90505b9392505050565b60004660010361039757507340aa958dd87fc8305b97f2ba922cddca374bcd7f90565b46600a036103b857507368d6b739d2020067d1e2f713b999da97e4d5481290565b466038036103d95750732c34a2fb1d0b4f55de51e1d0bdefaddce6b7cdd690565b4661a4b1036103fb57507370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890565b466121050361041d57507357df6092665eb6058de53939612413ff4b09114e90565b466113880361043f57507357df6092665eb6058de53939612413ff4b09114e90565b60405162461bcd60e51b815260206004820152602360248201527f50656e646c65537761703a204f4b5820436861696e206e6f7420737570706f726044820152621d195960ea1b60648201526084016102b2565b604051636eb1769f60e11b81523060048201526001600160a01b038281166024830152600019919084169063dd62ed3e90604401602060405180830381865afa1580156104e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610508919061127b565b10156101af576101af6001600160a01b03831682600019610b8b565b606060006105356004828688611294565b61053e916112be565b9050366000610550866004818a611294565b90925090506001600160e01b03198316630ed8d73960e21b1461057557610575611258565b600080808061058685870187611353565b935093509350935083602001518985608001516105a39190611439565b6105ad919061145e565b6080850152602084015160a08501516105c7908b90611439565b6105d1919061145e565b60a08501526020840189905260405187906105f69086908690869086906024016114ac565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b606060006106496004828688611294565b610652916112be565b9050366000610664866004818a611294565b90925090506001600160e01b031983166371f56acf60e11b1461068957610689611258565b60008080808061069b8688018861153a565b9450945094509450945083604001518a85606001516106ba9190611439565b6106c4919061145e565b6060850152604084015160808501516106de908c90611439565b6106e8919061145e565b608085015260408085018b905251889061070e908790879087908790879060240161163e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152985050505050505050509392505050565b606060006107626004828688611294565b61076b916112be565b905036600061077d866004818a611294565b909250905063f2a0f1c560e01b6001600160e01b03198416016108285760008080806107ab85870187611761565b93509350935093508289836107c09190611439565b6107ca919061145e565b915088925086848484846040516024016107e794939291906117f6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152975061036d9650505050505050565b63fc4781a160e01b6001600160e01b03198416016108fa576000808080808061085387890189611c64565b95509550955095509550955061086e838c8660400151610c45565b925083604001518b85606001516108859190611439565b61088f919061145e565b606085015260408085018c90525189906108b790889088908890889088908890602401611fbe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061036d98505050505050505050565b637beb3a5360e11b6001600160e01b03198416016109a6576000808080806109248688018861202b565b94509450945094509450838a8461093b9190611439565b610945919061145e565b925089935087858585858560405160240161096495949392919061208a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152985061036d975050505050505050565b6319e3841760e21b6001600160e01b03198416016109cf5760008080806107ab85870187611761565b6347f3d0f760e01b6001600160e01b0319841601610a59576000808080806109f9868801886120bd565b94509450945094509450610a12838b8660400151610c45565b925083604001518a8560600151610a299190611439565b610a33919061145e565b606085015260408085018b90525188906109649087908790879087908790602401612155565b60405162461bcd60e51b815260206004820152602660248201527f50656e646c65537761703a204f4b582073656c6563746f72206e6f74207375706044820152651c1bdc9d195960d21b60648201526084016102b2565b606082471015610b115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102b2565b600080866001600160a01b03168587604051610b2d91906121a5565b60006040518083038185875af1925050503d8060008114610b6a576040519150601f19603f3d011682016040523d82523d6000602084013e610b6f565b606091505b5091509150610b8087838387610cf5565b979650505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610bdc8482610d6c565b610c3f57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610c35908590610e10565b610c3f8482610e10565b50505050565b606083516001600160401b03811115610c6057610c606110c9565b604051908082528060200260200182016040528015610c89578160200160208202803683370190505b50905060005b8451811015610ced578284868381518110610cac57610cac6121c1565b6020026020010151610cbe9190611439565b610cc8919061145e565b828281518110610cda57610cda6121c1565b6020908102919091010152600101610c8f565b509392505050565b60608315610d62578251600003610d5b57610d0f85610eea565b610d5b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102b2565b508161033c565b61033c8383610ef9565b6000806000846001600160a01b031684604051610d8991906121a5565b6000604051808303816000865af19150503d8060008114610dc6576040519150601f19603f3d011682016040523d82523d6000602084013e610dcb565b606091505b5091509150818015610df5575080511580610df5575080806020019051810190610df591906121d7565b8015610e055750610e0585610eea565b925050505b92915050565b6000610e65826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610f239092919063ffffffff16565b9050805160001480610e86575080806020019051810190610e8691906121d7565b610ee55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102b2565b505050565b6001600160a01b03163b151590565b815115610f095781518083602001fd5b8060405162461bcd60e51b81526004016102b291906121f4565b606061036a8484600085610ab0565b6001600160a01b0381168114610f4757600080fd5b50565b8035610f5581610f32565b919050565b600080600060608486031215610f6f57600080fd5b8335610f7a81610f32565b92506020840135915060408401356001600160401b03811115610f9c57600080fd5b840160808187031215610fae57600080fd5b809150509250925092565b8015158114610f4757600080fd5b8035610f5581610fb9565b600060208284031215610fe457600080fd5b813561036d81610fb9565b6000808335601e1984360301811261100657600080fd5b8301803591506001600160401b0382111561102057600080fd5b60200191503681900382131561103557600080fd5b9250929050565b60006020828403121561104e57600080fd5b8135600b811061036d57600080fd5b60006020828403121561106f57600080fd5b813561036d81610f32565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715611101576111016110c9565b60405290565b60405160a081016001600160401b0381118282101715611101576111016110c9565b60405161014081016001600160401b0381118282101715611101576111016110c9565b604051601f8201601f191681016001600160401b0381118282101715611174576111746110c9565b604052919050565b60006001600160401b03821115611195576111956110c9565b50601f01601f191660200190565b60005b838110156111be5781810151838201526020016111a6565b50506000910152565b600080604083850312156111da57600080fd5b82516111e581610fb9565b60208401519092506001600160401b0381111561120157600080fd5b8301601f8101851361121257600080fd5b80516112256112208261117c565b61114c565b81815286602083850101111561123a57600080fd5b61124b8260208301602086016111a3565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03169052565b60006020828403121561128d57600080fd5b5051919050565b600080858511156112a457600080fd5b838611156112b157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e65780818660040360031b1b83161692505b505092915050565b600082601f8301126112ff57600080fd5b813561130d6112208261117c565b81815284602083860101111561132257600080fd5b816020850160208301376000918101602001919091529392505050565b803563ffffffff81168114610f5557600080fd5b60008060008084860361014081121561136b57600080fd5b60e081121561137957600080fd5b506113826110df565b853561138d81610f32565b81526020868101359082015260408601356113a781610f32565b604082015260608601356113ba81610f32565b806060830152506080860135608082015260a086013560a082015260c08601356113e381610f32565b60c0820152935060e08501356001600160401b0381111561140357600080fd5b61140f878288016112ee565b93505061141f6101008601610f4a565b915061142e610120860161133f565b905092959194509250565b8082028115828204841417610e0a57634e487b7160e01b600052601160045260246000fd5b60008261147b57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526114988160208601602086016111a3565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e084015261151381840187611480565b91505061152461010083018561126e565b63ffffffff831661012083015295945050505050565b600080600080600085870361016081121561155457600080fd5b863561155f81610f32565b955060e0601f198201121561157357600080fd5b5061157c6110df565b602087013561158a81610f32565b8152604087013561159a81610f32565b80602083015250606087013560408201526080870135606082015260a0870135608082015260c087013560a082015260e08701356115d781610f32565b60c0820152935061010086013592506101208601356001600160401b038082111561160157600080fd5b61160d89838a016112ee565b935061014088013591508082111561162457600080fd5b50611631888289016112ee565b9150509295509295909350565b600061016060018060a01b0380891684528088511660208501528060208901511660408501526040880151606085015260608801516080850152608088015160a085015260a088015160c08501528060c08901511660e08501525085610100840152806101208401526116b381840186611480565b90508281036101408401526116c88185611480565b98975050505050505050565b60006001600160401b038211156116ed576116ed6110c9565b5060051b60200190565b600082601f83011261170857600080fd5b81356020611718611220836116d4565b8083825260208201915060208460051b87010193508684111561173a57600080fd5b602086015b84811015611756578035835291830191830161173f565b509695505050505050565b6000806000806080858703121561177757600080fd5b84359350602085013592506040850135915060608501356001600160401b038111156117a257600080fd5b6117ae878288016116f7565b91505092959194509250565b60008151808452602080850194506020840160005b838110156117eb578151875295820195908201906001016117cf565b509495945050505050565b84815283602082015282604082015260806060820152600061181b60808301846117ba565b9695505050505050565b600060a0828403121561183757600080fd5b61183f611107565b905081358152602082013561185381610f32565b8060208301525060408201356040820152606082013560608201526080820135608082015292915050565b600082601f83011261188f57600080fd5b8135602061189f611220836116d4565b8083825260208201915060208460051b8701019350868411156118c157600080fd5b602086015b848110156117565780356118d981610f32565b83529183019183016118c6565b600082601f8301126118f757600080fd5b81356020611907611220836116d4565b82815260059290921b8401810191818101908684111561192657600080fd5b8286015b848110156117565780356001600160401b038111156119495760008081fd5b6119578986838b01016112ee565b84525091830191830161192a565b600082601f83011261197657600080fd5b61198361122083356116d4565b82358082526020808301929160051b8501018510156119a157600080fd5b602084015b6020853560051b860101811015611b1f576001600160401b0381358110156119cd57600080fd5b8135860187603f8201126119e057600080fd5b6119f061122060208301356116d4565b602082810135808352908201919060051b83016040018a811115611a1357600080fd5b604084015b81811015611b08578581351115611a2e57600080fd5b8035850160a0818e03603f19011215611a4657600080fd5b611a4e611107565b8760408301351115611a5f57600080fd5b611a718e60408085013585010161187e565b81528760608301351115611a8457600080fd5b611a978e6040606085013585010161187e565b60208201528760808301351115611aad57600080fd5b611ac08e604060808501358501016116f7565b60408201528760a08301351115611ad657600080fd5b611ae98e604060a08501358501016118e6565b606082015260c091909101356080820152845260209384019301611a18565b5050865250506020938401939190910190506119a6565b50949350505050565b600082601f830112611b3957600080fd5b81356020611b49611220836116d4565b82815260059290921b84018101918181019086841115611b6857600080fd5b8286015b848110156117565780356001600160401b0380821115611b8c5760008081fd5b90880190610140828b03601f1901811315611ba75760008081fd5b611baf611129565b8784013581526040611bc2818601610f4a565b898301526060611bd3818701610f4a565b8284015260809150611be6828701610f4a565b818401525060a0808601358284015260c0915081860135818401525060e080860135828401526101009150818601358184015250610120611c28818701610fc7565b83830152928501359284841115611c4157600091508182fd5b611c4f8e8b868901016112ee565b90830152508652505050918301918301611b6c565b6000806000806000806101408789031215611c7e57600080fd5b863595506020870135611c9081610f32565b9450611c9f8860408901611825565b935060e08701356001600160401b0380821115611cbb57600080fd5b611cc78a838b016116f7565b9450610100890135915080821115611cde57600080fd5b611cea8a838b01611965565b9350610120890135915080821115611d0157600080fd5b50611d0e89828a01611b28565b9150509295509295509295565b805182526020808201516001600160a01b0316908301526040808201519083015260608082015190830152608090810151910152565b60008151808452602080850194506020840160005b838110156117eb5781516001600160a01b031687529582019590820190600101611d66565b600082825180855260208501945060208160051b8301016020850160005b83811015611ed357601f1985840381018952825180518086526020918201918087019190600582901b88010160005b82811015611eb357858983030184528451805160a08452611dfc60a0850182611d51565b905060208201518482036020860152611e158282611d51565b91505060408201518482036040860152611e2f82826117ba565b9150506060820151848203606086015281815180845260208401915060208160051b85010160208401935060005b82811015611e8c578c868303018452611e77828651611480565b60209586019594909401939150600101611e5d565b50608095860151979095019690965250505060209586019594909401939150600101611dd8565b508097505050505050602082019150602088019750600181019050611da9565b50909695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015611fb157601f1986840301895281516101408151855285820151611f268787018261126e565b50604080830151611f398288018261126e565b5050606080830151611f4d8288018261126e565b50506080828101519086015260a0808301519086015260c0808301519086015260e080830151908601526101008083015115159086015261012091820151918501819052611f9d81860183611480565b9a86019a9450505090830190600101611efc565b5090979650505050505050565b8681526001600160a01b03861660208201526000610140611fe26040840188611d1b565b8060e0840152611ff4818401876117ba565b90508281036101008401526120098186611d8b565b905082810361012084015261201e8185611edf565b9998505050505050505050565b600080600080600060a0868803121561204357600080fd5b853594506020860135935060408601359250606086013561206381610f32565b915060808601356001600160401b0381111561207e57600080fd5b611631888289016116f7565b85815284602082015283604082015260018060a01b038316606082015260a060808201526000610b8060a08301846117ba565b600080600080600061012086880312156120d657600080fd5b853594506120e78760208801611825565b935060c08601356001600160401b038082111561210357600080fd5b61210f89838a016116f7565b945060e088013591508082111561212557600080fd5b61213189838a01611965565b935061010088013591508082111561214857600080fd5b5061163188828901611b28565b600061012087835261216a6020840188611d1b565b8060c084015261217c818401876117ba565b905082810360e08401526121908186611d8b565b90508281036101008401526116c88185611edf565b600082516121b78184602087016111a3565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121e957600080fd5b815161036d81610fb9565b60208152600061036d602083018461148056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212202ea100ca5a9c02498d8a7521f2fef5b567e70119b750c00936371ea47a1234c264736f6c63430008170033",
|
|
82
|
-
"deployedBytecode": "0x6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c366004610f5a565b610043565b005b61004d8382610167565b6101066100606080830160608401610fd2565b6100ab576100716040830183610fef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100ce92505050565b6100ce6100bb602084018461103c565b6100c86040850185610fef565b866101c7565b6001600160a01b038516156100e45760006100e6565b835b6100f6604085016020860161105d565b6001600160a01b03169190610344565b506001600160a01b03831661011e602083018361103c565b600a81111561012f5761012f61107a565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b6001600160a01b038216610179575050565b6004610188602083018361103c565b600a8111156101995761019961107a565b036101b3576101af826101aa610374565b610493565b5050565b6101af826101aa604084016020850161105d565b6060600185600a8111156101dd576101dd61107a565b036102c15760405163726d379760e11b8152600090732f577a41bec1be1152aeea12e73b7391d15f655d9063e4da6f2e9061022090889088908890600401611090565b600060405180830381865afa15801561023d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261026591908101906111c7565b92509050806102bb5760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b5061033c565b600285600a8111156102d5576102d561107a565b036102ec576102e5848484610524565b905061033c565b600685600a8111156103005761030061107a565b03610310576102e5848484610638565b600485600a8111156103245761032461107a565b03610334576102e5848484610751565b61033c611258565b949350505050565b606061036a84848460405180606001604052806029815260200161220860299139610ab0565b90505b9392505050565b60004660010361039757507340aa958dd87fc8305b97f2ba922cddca374bcd7f90565b46600a036103b857507368d6b739d2020067d1e2f713b999da97e4d5481290565b466038036103d95750732c34a2fb1d0b4f55de51e1d0bdefaddce6b7cdd690565b4661a4b1036103fb57507370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890565b466121050361041d57507357df6092665eb6058de53939612413ff4b09114e90565b466113880361043f57507357df6092665eb6058de53939612413ff4b09114e90565b60405162461bcd60e51b815260206004820152602360248201527f50656e646c65537761703a204f4b5820436861696e206e6f7420737570706f726044820152621d195960ea1b60648201526084016102b2565b604051636eb1769f60e11b81523060048201526001600160a01b038281166024830152600019919084169063dd62ed3e90604401602060405180830381865afa1580156104e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610508919061127b565b10156101af576101af6001600160a01b03831682600019610b8b565b606060006105356004828688611294565b61053e916112be565b9050366000610550866004818a611294565b90925090506001600160e01b03198316630ed8d73960e21b1461057557610575611258565b600080808061058685870187611353565b935093509350935083602001518985608001516105a39190611439565b6105ad919061145e565b6080850152602084015160a08501516105c7908b90611439565b6105d1919061145e565b60a08501526020840189905260405187906105f69086908690869086906024016114ac565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b606060006106496004828688611294565b610652916112be565b9050366000610664866004818a611294565b90925090506001600160e01b031983166371f56acf60e11b1461068957610689611258565b60008080808061069b8688018861153a565b9450945094509450945083604001518a85606001516106ba9190611439565b6106c4919061145e565b6060850152604084015160808501516106de908c90611439565b6106e8919061145e565b608085015260408085018b905251889061070e908790879087908790879060240161163e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152985050505050505050509392505050565b606060006107626004828688611294565b61076b916112be565b905036600061077d866004818a611294565b909250905063f2a0f1c560e01b6001600160e01b03198416016108285760008080806107ab85870187611761565b93509350935093508289836107c09190611439565b6107ca919061145e565b915088925086848484846040516024016107e794939291906117f6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152975061036d9650505050505050565b63fc4781a160e01b6001600160e01b03198416016108fa576000808080808061085387890189611c64565b95509550955095509550955061086e838c8660400151610c45565b925083604001518b85606001516108859190611439565b61088f919061145e565b606085015260408085018c90525189906108b790889088908890889088908890602401611fbe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061036d98505050505050505050565b637beb3a5360e11b6001600160e01b03198416016109a6576000808080806109248688018861202b565b94509450945094509450838a8461093b9190611439565b610945919061145e565b925089935087858585858560405160240161096495949392919061208a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152985061036d975050505050505050565b6319e3841760e21b6001600160e01b03198416016109cf5760008080806107ab85870187611761565b6347f3d0f760e01b6001600160e01b0319841601610a59576000808080806109f9868801886120bd565b94509450945094509450610a12838b8660400151610c45565b925083604001518a8560600151610a299190611439565b610a33919061145e565b606085015260408085018b90525188906109649087908790879087908790602401612155565b60405162461bcd60e51b815260206004820152602660248201527f50656e646c65537761703a204f4b582073656c6563746f72206e6f74207375706044820152651c1bdc9d195960d21b60648201526084016102b2565b606082471015610b115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102b2565b600080866001600160a01b03168587604051610b2d91906121a5565b60006040518083038185875af1925050503d8060008114610b6a576040519150601f19603f3d011682016040523d82523d6000602084013e610b6f565b606091505b5091509150610b8087838387610cf5565b979650505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610bdc8482610d6c565b610c3f57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610c35908590610e10565b610c3f8482610e10565b50505050565b606083516001600160401b03811115610c6057610c606110c9565b604051908082528060200260200182016040528015610c89578160200160208202803683370190505b50905060005b8451811015610ced578284868381518110610cac57610cac6121c1565b6020026020010151610cbe9190611439565b610cc8919061145e565b828281518110610cda57610cda6121c1565b6020908102919091010152600101610c8f565b509392505050565b60608315610d62578251600003610d5b57610d0f85610eea565b610d5b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102b2565b508161033c565b61033c8383610ef9565b6000806000846001600160a01b031684604051610d8991906121a5565b6000604051808303816000865af19150503d8060008114610dc6576040519150601f19603f3d011682016040523d82523d6000602084013e610dcb565b606091505b5091509150818015610df5575080511580610df5575080806020019051810190610df591906121d7565b8015610e055750610e0585610eea565b925050505b92915050565b6000610e65826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610f239092919063ffffffff16565b9050805160001480610e86575080806020019051810190610e8691906121d7565b610ee55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102b2565b505050565b6001600160a01b03163b151590565b815115610f095781518083602001fd5b8060405162461bcd60e51b81526004016102b291906121f4565b606061036a8484600085610ab0565b6001600160a01b0381168114610f4757600080fd5b50565b8035610f5581610f32565b919050565b600080600060608486031215610f6f57600080fd5b8335610f7a81610f32565b92506020840135915060408401356001600160401b03811115610f9c57600080fd5b840160808187031215610fae57600080fd5b809150509250925092565b8015158114610f4757600080fd5b8035610f5581610fb9565b600060208284031215610fe457600080fd5b813561036d81610fb9565b6000808335601e1984360301811261100657600080fd5b8301803591506001600160401b0382111561102057600080fd5b60200191503681900382131561103557600080fd5b9250929050565b60006020828403121561104e57600080fd5b8135600b811061036d57600080fd5b60006020828403121561106f57600080fd5b813561036d81610f32565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715611101576111016110c9565b60405290565b60405160a081016001600160401b0381118282101715611101576111016110c9565b60405161014081016001600160401b0381118282101715611101576111016110c9565b604051601f8201601f191681016001600160401b0381118282101715611174576111746110c9565b604052919050565b60006001600160401b03821115611195576111956110c9565b50601f01601f191660200190565b60005b838110156111be5781810151838201526020016111a6565b50506000910152565b600080604083850312156111da57600080fd5b82516111e581610fb9565b60208401519092506001600160401b0381111561120157600080fd5b8301601f8101851361121257600080fd5b80516112256112208261117c565b61114c565b81815286602083850101111561123a57600080fd5b61124b8260208301602086016111a3565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03169052565b60006020828403121561128d57600080fd5b5051919050565b600080858511156112a457600080fd5b838611156112b157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e65780818660040360031b1b83161692505b505092915050565b600082601f8301126112ff57600080fd5b813561130d6112208261117c565b81815284602083860101111561132257600080fd5b816020850160208301376000918101602001919091529392505050565b803563ffffffff81168114610f5557600080fd5b60008060008084860361014081121561136b57600080fd5b60e081121561137957600080fd5b506113826110df565b853561138d81610f32565b81526020868101359082015260408601356113a781610f32565b604082015260608601356113ba81610f32565b806060830152506080860135608082015260a086013560a082015260c08601356113e381610f32565b60c0820152935060e08501356001600160401b0381111561140357600080fd5b61140f878288016112ee565b93505061141f6101008601610f4a565b915061142e610120860161133f565b905092959194509250565b8082028115828204841417610e0a57634e487b7160e01b600052601160045260246000fd5b60008261147b57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526114988160208601602086016111a3565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e084015261151381840187611480565b91505061152461010083018561126e565b63ffffffff831661012083015295945050505050565b600080600080600085870361016081121561155457600080fd5b863561155f81610f32565b955060e0601f198201121561157357600080fd5b5061157c6110df565b602087013561158a81610f32565b8152604087013561159a81610f32565b80602083015250606087013560408201526080870135606082015260a0870135608082015260c087013560a082015260e08701356115d781610f32565b60c0820152935061010086013592506101208601356001600160401b038082111561160157600080fd5b61160d89838a016112ee565b935061014088013591508082111561162457600080fd5b50611631888289016112ee565b9150509295509295909350565b600061016060018060a01b0380891684528088511660208501528060208901511660408501526040880151606085015260608801516080850152608088015160a085015260a088015160c08501528060c08901511660e08501525085610100840152806101208401526116b381840186611480565b90508281036101408401526116c88185611480565b98975050505050505050565b60006001600160401b038211156116ed576116ed6110c9565b5060051b60200190565b600082601f83011261170857600080fd5b81356020611718611220836116d4565b8083825260208201915060208460051b87010193508684111561173a57600080fd5b602086015b84811015611756578035835291830191830161173f565b509695505050505050565b6000806000806080858703121561177757600080fd5b84359350602085013592506040850135915060608501356001600160401b038111156117a257600080fd5b6117ae878288016116f7565b91505092959194509250565b60008151808452602080850194506020840160005b838110156117eb578151875295820195908201906001016117cf565b509495945050505050565b84815283602082015282604082015260806060820152600061181b60808301846117ba565b9695505050505050565b600060a0828403121561183757600080fd5b61183f611107565b905081358152602082013561185381610f32565b8060208301525060408201356040820152606082013560608201526080820135608082015292915050565b600082601f83011261188f57600080fd5b8135602061189f611220836116d4565b8083825260208201915060208460051b8701019350868411156118c157600080fd5b602086015b848110156117565780356118d981610f32565b83529183019183016118c6565b600082601f8301126118f757600080fd5b81356020611907611220836116d4565b82815260059290921b8401810191818101908684111561192657600080fd5b8286015b848110156117565780356001600160401b038111156119495760008081fd5b6119578986838b01016112ee565b84525091830191830161192a565b600082601f83011261197657600080fd5b61198361122083356116d4565b82358082526020808301929160051b8501018510156119a157600080fd5b602084015b6020853560051b860101811015611b1f576001600160401b0381358110156119cd57600080fd5b8135860187603f8201126119e057600080fd5b6119f061122060208301356116d4565b602082810135808352908201919060051b83016040018a811115611a1357600080fd5b604084015b81811015611b08578581351115611a2e57600080fd5b8035850160a0818e03603f19011215611a4657600080fd5b611a4e611107565b8760408301351115611a5f57600080fd5b611a718e60408085013585010161187e565b81528760608301351115611a8457600080fd5b611a978e6040606085013585010161187e565b60208201528760808301351115611aad57600080fd5b611ac08e604060808501358501016116f7565b60408201528760a08301351115611ad657600080fd5b611ae98e604060a08501358501016118e6565b606082015260c091909101356080820152845260209384019301611a18565b5050865250506020938401939190910190506119a6565b50949350505050565b600082601f830112611b3957600080fd5b81356020611b49611220836116d4565b82815260059290921b84018101918181019086841115611b6857600080fd5b8286015b848110156117565780356001600160401b0380821115611b8c5760008081fd5b90880190610140828b03601f1901811315611ba75760008081fd5b611baf611129565b8784013581526040611bc2818601610f4a565b898301526060611bd3818701610f4a565b8284015260809150611be6828701610f4a565b818401525060a0808601358284015260c0915081860135818401525060e080860135828401526101009150818601358184015250610120611c28818701610fc7565b83830152928501359284841115611c4157600091508182fd5b611c4f8e8b868901016112ee565b90830152508652505050918301918301611b6c565b6000806000806000806101408789031215611c7e57600080fd5b863595506020870135611c9081610f32565b9450611c9f8860408901611825565b935060e08701356001600160401b0380821115611cbb57600080fd5b611cc78a838b016116f7565b9450610100890135915080821115611cde57600080fd5b611cea8a838b01611965565b9350610120890135915080821115611d0157600080fd5b50611d0e89828a01611b28565b9150509295509295509295565b805182526020808201516001600160a01b0316908301526040808201519083015260608082015190830152608090810151910152565b60008151808452602080850194506020840160005b838110156117eb5781516001600160a01b031687529582019590820190600101611d66565b600082825180855260208501945060208160051b8301016020850160005b83811015611ed357601f1985840381018952825180518086526020918201918087019190600582901b88010160005b82811015611eb357858983030184528451805160a08452611dfc60a0850182611d51565b905060208201518482036020860152611e158282611d51565b91505060408201518482036040860152611e2f82826117ba565b9150506060820151848203606086015281815180845260208401915060208160051b85010160208401935060005b82811015611e8c578c868303018452611e77828651611480565b60209586019594909401939150600101611e5d565b50608095860151979095019690965250505060209586019594909401939150600101611dd8565b508097505050505050602082019150602088019750600181019050611da9565b50909695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015611fb157601f1986840301895281516101408151855285820151611f268787018261126e565b50604080830151611f398288018261126e565b5050606080830151611f4d8288018261126e565b50506080828101519086015260a0808301519086015260c0808301519086015260e080830151908601526101008083015115159086015261012091820151918501819052611f9d81860183611480565b9a86019a9450505090830190600101611efc565b5090979650505050505050565b8681526001600160a01b03861660208201526000610140611fe26040840188611d1b565b8060e0840152611ff4818401876117ba565b90508281036101008401526120098186611d8b565b905082810361012084015261201e8185611edf565b9998505050505050505050565b600080600080600060a0868803121561204357600080fd5b853594506020860135935060408601359250606086013561206381610f32565b915060808601356001600160401b0381111561207e57600080fd5b611631888289016116f7565b85815284602082015283604082015260018060a01b038316606082015260a060808201526000610b8060a08301846117ba565b600080600080600061012086880312156120d657600080fd5b853594506120e78760208801611825565b935060c08601356001600160401b038082111561210357600080fd5b61210f89838a016116f7565b945060e088013591508082111561212557600080fd5b61213189838a01611965565b935061010088013591508082111561214857600080fd5b5061163188828901611b28565b600061012087835261216a6020840188611d1b565b8060c084015261217c818401876117ba565b905082810360e08401526121908186611d8b565b90508281036101008401526116c88185611edf565b600082516121b78184602087016111a3565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121e957600080fd5b815161036d81610fb9565b60208152600061036d602083018461148056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212202ea100ca5a9c02498d8a7521f2fef5b567e70119b750c00936371ea47a1234c264736f6c63430008170033",
|
|
81
|
+
"bytecode": "0x608060405234801561001057600080fd5b50612dd6806100206000396000f3fe6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c3660046112ab565b610043565b005b61004d8382610167565b6101066100606080830160608401611323565b6100ab576100716040830183611340565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100ce92505050565b6100ce6100bb602084018461138d565b6100c86040850185611340565b866101c7565b6001600160a01b038516156100e45760006100e6565b835b6100f660408501602086016113ae565b6001600160a01b03169190610344565b506001600160a01b03831661011e602083018361138d565b600a81111561012f5761012f6113cb565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b6001600160a01b038216610179575050565b6004610188602083018361138d565b600a811115610199576101996113cb565b036101b3576101af826101aa610374565b610493565b5050565b6101af826101aa60408401602085016113ae565b6060600185600a8111156101dd576101dd6113cb565b036102c15760405163726d379760e11b8152600090732f577a41bec1be1152aeea12e73b7391d15f655d9063e4da6f2e90610220908890889088906004016113e1565b600060405180830381865afa15801561023d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102659190810190611581565b92509050806102bb5760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b5061033c565b600285600a8111156102d5576102d56113cb565b036102ec576102e5848484610524565b905061033c565b600685600a811115610300576103006113cb565b03610310576102e5848484610638565b600485600a811115610324576103246113cb565b03610334576102e5848484610b25565b61033c611612565b949350505050565b606061036a848484604051806060016040528060298152602001612d7860299139610e01565b90505b9392505050565b60004660010361039757507340aa958dd87fc8305b97f2ba922cddca374bcd7f90565b46600a036103b857507368d6b739d2020067d1e2f713b999da97e4d5481290565b466038036103d95750732c34a2fb1d0b4f55de51e1d0bdefaddce6b7cdd690565b4661a4b1036103fb57507370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890565b466121050361041d57507357df6092665eb6058de53939612413ff4b09114e90565b466113880361043f57507357df6092665eb6058de53939612413ff4b09114e90565b60405162461bcd60e51b815260206004820152602360248201527f50656e646c65537761703a204f4b5820436861696e206e6f7420737570706f726044820152621d195960ea1b60648201526084016102b2565b604051636eb1769f60e11b81523060048201526001600160a01b038281166024830152600019919084169063dd62ed3e90604401602060405180830381865afa1580156104e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105089190611635565b10156101af576101af6001600160a01b03831682600019610edc565b60606000610535600482868861164e565b61053e91611678565b9050366000610550866004818a61164e565b90925090506001600160e01b03198316630ed8d73960e21b1461057557610575611612565b60008080806105868587018761170d565b935093509350935083602001518985608001516105a391906117f3565b6105ad9190611818565b6080850152602084015160a08501516105c7908b906117f3565b6105d19190611818565b60a08501526020840189905260405187906105f6908690869086908690602401611866565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b60606000610649600482868861164e565b61065291611678565b9050366000610664866004818a61164e565b9092509050630e0a953160e11b6001600160e01b031984160161074857600080808080610693868801886118f4565b9450945094509450945083604001518a85606001516106b291906117f3565b6106bc9190611818565b6060850152604084015160808501516106d6908c906117f3565b6106e09190611818565b608085015260408085018b905251889061070690879087908790879087906024016119f8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152985061036d975050505050505050565b634e0c787160e11b6001600160e01b031984160161082157600080808061077185870187611b31565b9350935093509350826040015189846060015161078e91906117f3565b6107989190611818565b6060840152604083015160808401516107b2908b906117f3565b6107bc9190611818565b608084015260408084018a90525187906107e0908690869086908690602401611c1a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152975061036d9650505050505050565b63083fd07f60e01b6001600160e01b031984160161084a57600080808061077185870187611b31565b636d1578b560e11b6001600160e01b03198416016108e35760008080808061087486880188611c56565b9450945094509450945083600001518a856020015161089391906117f3565b61089d9190611818565b6020850152835160408501516108b4908c906117f3565b6108be9190611818565b6040808601919091528a85525188906107069087908790879087908790602401611d0e565b631f466cfb60e01b6001600160e01b031984160161097c57600080808061090c85870187611d7a565b93509350935093508260800151898460a0015161092991906117f3565b6109339190611818565b60a0840152608083015160c084015161094d908b906117f3565b6109579190611818565b60c08401526080830189905260405187906107e0908690869086908690602401611e5a565b63442820c560e11b6001600160e01b0319841601610a175760008080806109a585870187611ef7565b93509350935093508260c00151898460e001516109c291906117f3565b6109cc9190611818565b60e084015260c08301516101008401516109e7908b906117f3565b6109f19190611818565b61010084015260c0830189905260405187906107e0908690869086908690602401611feb565b637b999bdd60e11b6001600160e01b0319841601610ac65760008080610a3f848601866120b0565b9250925092508160400151888360600151610a5a91906117f3565b610a649190611818565b60608301526040808301899052518690610a86908590859085906024016121a5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152965061036d95505050505050565b60405162461bcd60e51b815260206004820152602e60248201527f50617261737761705363616c6548656c7065723a20556e737570706f7274656460448201526d1039bbb0b81039b2b632b1ba37b960911b60648201526084016102b2565b60606000610b36600482868861164e565b610b3f91611678565b9050366000610b51866004818a61164e565b909250905063f2a0f1c560e01b6001600160e01b0319841601610bbb576000808080610b7f858701876122e7565b9350935093509350828983610b9491906117f3565b610b9e9190611818565b915088925086848484846040516024016107e09493929190612370565b63fc4781a160e01b6001600160e01b0319841601610c8d5760008080808080610be6878901896127d4565b955095509550955095509550610c01838c8660400151610f96565b925083604001518b8560600151610c1891906117f3565b610c229190611818565b606085015260408085018c9052518990610c4a90889088908890889088908890602401612b2e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061036d98505050505050505050565b637beb3a5360e11b6001600160e01b0319841601610cf757600080808080610cb786880188612b9b565b94509450945094509450838a84610cce91906117f3565b610cd89190611818565b9250899350878585858585604051602401610706959493929190612bfa565b6319e3841760e21b6001600160e01b0319841601610d20576000808080610b7f858701876122e7565b6347f3d0f760e01b6001600160e01b0319841601610daa57600080808080610d4a86880188612c2d565b94509450945094509450610d63838b8660400151610f96565b925083604001518a8560600151610d7a91906117f3565b610d849190611818565b606085015260408085018b90525188906107069087908790879087908790602401612cc5565b60405162461bcd60e51b815260206004820152602660248201527f50656e646c65537761703a204f4b582073656c6563746f72206e6f74207375706044820152651c1bdc9d195960d21b60648201526084016102b2565b606082471015610e625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102b2565b600080866001600160a01b03168587604051610e7e9190612d15565b60006040518083038185875af1925050503d8060008114610ebb576040519150601f19603f3d011682016040523d82523d6000602084013e610ec0565b606091505b5091509150610ed187838387611046565b979650505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610f2d84826110bd565b610f9057604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610f86908590611161565b610f908482611161565b50505050565b606083516001600160401b03811115610fb157610fb161141a565b604051908082528060200260200182016040528015610fda578160200160208202803683370190505b50905060005b845181101561103e578284868381518110610ffd57610ffd612d31565b602002602001015161100f91906117f3565b6110199190611818565b82828151811061102b5761102b612d31565b6020908102919091010152600101610fe0565b509392505050565b606083156110b35782516000036110ac576110608561123b565b6110ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102b2565b508161033c565b61033c838361124a565b6000806000846001600160a01b0316846040516110da9190612d15565b6000604051808303816000865af19150503d8060008114611117576040519150601f19603f3d011682016040523d82523d6000602084013e61111c565b606091505b50915091508180156111465750805115806111465750808060200190518101906111469190612d47565b801561115657506111568561123b565b925050505b92915050565b60006111b6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112749092919063ffffffff16565b90508051600014806111d75750808060200190518101906111d79190612d47565b6112365760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102b2565b505050565b6001600160a01b03163b151590565b81511561125a5781518083602001fd5b8060405162461bcd60e51b81526004016102b29190612d64565b606061036a8484600085610e01565b6001600160a01b038116811461129857600080fd5b50565b80356112a681611283565b919050565b6000806000606084860312156112c057600080fd5b83356112cb81611283565b92506020840135915060408401356001600160401b038111156112ed57600080fd5b8401608081870312156112ff57600080fd5b809150509250925092565b801515811461129857600080fd5b80356112a68161130a565b60006020828403121561133557600080fd5b813561036d8161130a565b6000808335601e1984360301811261135757600080fd5b8301803591506001600160401b0382111561137157600080fd5b60200191503681900382131561138657600080fd5b9250929050565b60006020828403121561139f57600080fd5b8135600b811061036d57600080fd5b6000602082840312156113c057600080fd5b813561036d81611283565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156114525761145261141a565b60405290565b60405161010081016001600160401b03811182821017156114525761145261141a565b60405160a081016001600160401b03811182821017156114525761145261141a565b60405161012081016001600160401b03811182821017156114525761145261141a565b60405161016081016001600160401b03811182821017156114525761145261141a565b60405161014081016001600160401b03811182821017156114525761145261141a565b604051601f8201601f191681016001600160401b038111828210171561152e5761152e61141a565b604052919050565b60006001600160401b0382111561154f5761154f61141a565b50601f01601f191660200190565b60005b83811015611578578181015183820152602001611560565b50506000910152565b6000806040838503121561159457600080fd5b825161159f8161130a565b60208401519092506001600160401b038111156115bb57600080fd5b8301601f810185136115cc57600080fd5b80516115df6115da82611536565b611506565b8181528660208385010111156115f457600080fd5b61160582602083016020860161155d565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03169052565b60006020828403121561164757600080fd5b5051919050565b6000808585111561165e57600080fd5b8386111561166b57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a05780818660040360031b1b83161692505b505092915050565b600082601f8301126116b957600080fd5b81356116c76115da82611536565b8181528460208386010111156116dc57600080fd5b816020850160208301376000918101602001919091529392505050565b803563ffffffff811681146112a657600080fd5b60008060008084860361014081121561172557600080fd5b60e081121561173357600080fd5b5061173c611430565b853561174781611283565b815260208681013590820152604086013561176181611283565b6040820152606086013561177481611283565b806060830152506080860135608082015260a086013560a082015260c086013561179d81611283565b60c0820152935060e08501356001600160401b038111156117bd57600080fd5b6117c9878288016116a8565b9350506117d9610100860161129b565b91506117e861012086016116f9565b905092959194509250565b808202811582820484141761115b57634e487b7160e01b600052601160045260246000fd5b60008261183557634e487b7160e01b600052601260045260246000fd5b500490565b6000815180845261185281602086016020860161155d565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e08401526118cd8184018761183a565b9150506118de610100830185611628565b63ffffffff831661012083015295945050505050565b600080600080600085870361016081121561190e57600080fd5b863561191981611283565b955060e0601f198201121561192d57600080fd5b50611936611430565b602087013561194481611283565b8152604087013561195481611283565b80602083015250606087013560408201526080870135606082015260a0870135608082015260c087013560a082015260e087013561199181611283565b60c0820152935061010086013592506101208601356001600160401b03808211156119bb57600080fd5b6119c789838a016116a8565b93506101408801359150808211156119de57600080fd5b506119eb888289016116a8565b9150509295509295909350565b600061016060018060a01b0380891684528088511660208501528060208901511660408501526040880151606085015260608801516080850152608088015160a085015260a088015160c08501528060c08901511660e0850152508561010084015280610120840152611a6d8184018661183a565b9050828103610140840152611a82818561183a565b98975050505050505050565b60006101008284031215611aa157600080fd5b611aa9611458565b9050611ab48261129b565b8152611ac26020830161129b565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a0820152611afb60c0830161129b565b60c082015260e08201356001600160401b03811115611b1957600080fd5b611b25848285016116a8565b60e08301525092915050565b60008060008060808587031215611b4757600080fd5b8435611b5281611283565b935060208501356001600160401b0380821115611b6e57600080fd5b611b7a88838901611a8e565b9450604087013593506060870135915080821115611b9757600080fd5b50611ba4878288016116a8565b91505092959194509250565b600061010060018060a01b0380845116855280602085015116602086015260408401516040860152606084015160608601526080840151608086015260a084015160a08601528060c08501511660c08601525060e08301518160e08601526111568286018261183a565b6001600160a01b0385168152608060208201819052600090611c3e90830186611bb0565b8460408401528281036060840152610ed1818561183a565b6000806000806000858703610120811215611c7057600080fd5b8635611c7b81611283565b955060a0601f1982011215611c8f57600080fd5b50611c9861147b565b6020870135815260408701356020820152606087013560408201526080870135606082015260a087013560808201528094505060c0860135925060e086013560018060401b0380821115611ceb57600080fd5b611cf789838a016116a8565b93506101008801359150808211156119de57600080fd5b600061012060018060a01b038816835286516020840152602087015160408401526040870151606084015260608701516080840152608087015160a08401528560c08401528060e0840152611d658184018661183a565b9050828103610100840152611a82818561183a565b600080600080848603610180811215611d9257600080fd5b8535611d9d81611283565b9450610120601f198201811315611db357600080fd5b611dbb61149d565b91506020870135825260408701356020830152611dda6060880161129b565b6040830152611deb6080880161129b565b606083015260a0870135608083015260c087013560a083015260e087013560c08301526101008088013560e0840152611e2582890161129b565b9083015250925061014085013591506101608501356001600160401b03811115611e4e57600080fd5b611ba4878288016116a8565b600061018060018060a01b0380881684528651602085015260208701516040850152806040880151166060850152506060860151611e9b6080850182611628565b50608086015160a084015260a086015160c084015260c086015160e084015260e0860151610100818186015280880151915050611edc610120850182611628565b508461014084015280610160840152610ed18184018561183a565b6000806000808486036101c0811215611f0f57600080fd5b8535611f1a81611283565b9450610160601f198201811315611f3057600080fd5b611f386114c0565b9150602087013582526040870135602083015260608701356040830152611f616080880161129b565b6060830152611f7260a0880161129b565b6080830152611f8360c0880161129b565b60a083015260e087013560c08301526101008088013560e084015261012080890135828501526101409150818901358185015250611fc282890161129b565b9083015250925061018085013591506101a08501356001600160401b03811115611e4e57600080fd5b60006101c060018060a01b038716835285516020840152602086015160408401526040860151606084015260608601516120286080850182611628565b50608086015161203b60a0850182611628565b5060a086015161204e60c0850182611628565b5060c086015160e084810191909152860151610100808501919091528601516101208085019190915286015161014080850191909152860151612095610160850182611628565b5084610180840152806101a0840152610ed18184018561183a565b60008060008385036101808112156120c757600080fd5b84356120d281611283565b9350610140601f1982018113156120e857600080fd5b6120f06114e3565b91506120fe6020870161129b565b825261210c6040870161129b565b6020830152606086013560408301526080860135606083015260a0860135608083015260c086013560a083015261214560e0870161129b565b60c083015261010061215881880161129b565b60e08401526101208781013591840191909152908601359082015291506101608401356001600160401b0381111561218f57600080fd5b61219b868287016116a8565b9150509250925092565b600061018060018060a01b03861683526121c3602084018651611628565b60208501516121d56040850182611628565b506040850151606084015260608501516080840152608085015160a084015260a085015160c084015260c085015161221060e0850182611628565b5060e085015161010061222581860183611628565b860151610120858101919091528601516101408501525061016083018190526122508184018561183a565b9695505050505050565b60006001600160401b038211156122735761227361141a565b5060051b60200190565b600082601f83011261228e57600080fd5b8135602061229e6115da8361225a565b8083825260208201915060208460051b8701019350868411156122c057600080fd5b602086015b848110156122dc57803583529183019183016122c5565b509695505050505050565b600080600080608085870312156122fd57600080fd5b84359350602085013592506040850135915060608501356001600160401b0381111561232857600080fd5b611ba48782880161227d565b60008151808452602080850194506020840160005b8381101561236557815187529582019590820190600101612349565b509495945050505050565b8481528360208201528260408201526080606082015260006122506080830184612334565b600060a082840312156123a757600080fd5b6123af61147b565b90508135815260208201356123c381611283565b8060208301525060408201356040820152606082013560608201526080820135608082015292915050565b600082601f8301126123ff57600080fd5b8135602061240f6115da8361225a565b8083825260208201915060208460051b87010193508684111561243157600080fd5b602086015b848110156122dc57803561244981611283565b8352918301918301612436565b600082601f83011261246757600080fd5b813560206124776115da8361225a565b82815260059290921b8401810191818101908684111561249657600080fd5b8286015b848110156122dc5780356001600160401b038111156124b95760008081fd5b6124c78986838b01016116a8565b84525091830191830161249a565b600082601f8301126124e657600080fd5b6124f36115da833561225a565b82358082526020808301929160051b85010185101561251157600080fd5b602084015b6020853560051b86010181101561268f576001600160401b03813581101561253d57600080fd5b8135860187603f82011261255057600080fd5b6125606115da602083013561225a565b602082810135808352908201919060051b83016040018a81111561258357600080fd5b604084015b8181101561267857858135111561259e57600080fd5b8035850160a0818e03603f190112156125b657600080fd5b6125be61147b565b87604083013511156125cf57600080fd5b6125e18e6040808501358501016123ee565b815287606083013511156125f457600080fd5b6126078e604060608501358501016123ee565b6020820152876080830135111561261d57600080fd5b6126308e6040608085013585010161227d565b60408201528760a0830135111561264657600080fd5b6126598e604060a0850135850101612456565b606082015260c091909101356080820152845260209384019301612588565b505086525050602093840193919091019050612516565b50949350505050565b600082601f8301126126a957600080fd5b813560206126b96115da8361225a565b82815260059290921b840181019181810190868411156126d857600080fd5b8286015b848110156122dc5780356001600160401b03808211156126fc5760008081fd5b90880190610140828b03601f19018113156127175760008081fd5b61271f6114e3565b878401358152604061273281860161129b565b89830152606061274381870161129b565b828401526080915061275682870161129b565b818401525060a0808601358284015260c0915081860135818401525060e080860135828401526101009150818601358184015250610120612798818701611318565b838301529285013592848411156127b157600091508182fd5b6127bf8e8b868901016116a8565b908301525086525050509183019183016126dc565b60008060008060008061014087890312156127ee57600080fd5b86359550602087013561280081611283565b945061280f8860408901612395565b935060e08701356001600160401b038082111561282b57600080fd5b6128378a838b0161227d565b945061010089013591508082111561284e57600080fd5b61285a8a838b016124d5565b935061012089013591508082111561287157600080fd5b5061287e89828a01612698565b9150509295509295509295565b805182526020808201516001600160a01b0316908301526040808201519083015260608082015190830152608090810151910152565b60008151808452602080850194506020840160005b838110156123655781516001600160a01b0316875295820195908201906001016128d6565b600082825180855260208501945060208160051b8301016020850160005b83811015612a4357601f1985840381018952825180518086526020918201918087019190600582901b88010160005b82811015612a2357858983030184528451805160a0845261296c60a08501826128c1565b90506020820151848203602086015261298582826128c1565b9150506040820151848203604086015261299f8282612334565b9150506060820151848203606086015281815180845260208401915060208160051b85010160208401935060005b828110156129fc578c8683030184526129e782865161183a565b602095860195949094019391506001016129cd565b50608095860151979095019690965250505060209586019594909401939150600101612948565b508097505050505050602082019150602088019750600181019050612919565b50909695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015612b2157601f1986840301895281516101408151855285820151612a9687870182611628565b50604080830151612aa982880182611628565b5050606080830151612abd82880182611628565b50506080828101519086015260a0808301519086015260c0808301519086015260e080830151908601526101008083015115159086015261012091820151918501819052612b0d8186018361183a565b9a86019a9450505090830190600101612a6c565b5090979650505050505050565b8681526001600160a01b03861660208201526000610140612b52604084018861288b565b8060e0840152612b6481840187612334565b9050828103610100840152612b7981866128fb565b9050828103610120840152612b8e8185612a4f565b9998505050505050505050565b600080600080600060a08688031215612bb357600080fd5b8535945060208601359350604086013592506060860135612bd381611283565b915060808601356001600160401b03811115612bee57600080fd5b6119eb8882890161227d565b85815284602082015283604082015260018060a01b038316606082015260a060808201526000610ed160a0830184612334565b60008060008060006101208688031215612c4657600080fd5b85359450612c578760208801612395565b935060c08601356001600160401b0380821115612c7357600080fd5b612c7f89838a0161227d565b945060e0880135915080821115612c9557600080fd5b612ca189838a016124d5565b9350610100880135915080821115612cb857600080fd5b506119eb88828901612698565b6000610120878352612cda602084018861288b565b8060c0840152612cec81840187612334565b905082810360e0840152612d0081866128fb565b9050828103610100840152611a828185612a4f565b60008251612d2781846020870161155d565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612d5957600080fd5b815161036d8161130a565b60208152600061036d602083018461183a56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212206ddd33cad6a08cc5f442e3e9be4f7d9b1dea03b2e7ae3024b3d731775acf374364736f6c63430008170033",
|
|
82
|
+
"deployedBytecode": "0x6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c3660046112ab565b610043565b005b61004d8382610167565b6101066100606080830160608401611323565b6100ab576100716040830183611340565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100ce92505050565b6100ce6100bb602084018461138d565b6100c86040850185611340565b866101c7565b6001600160a01b038516156100e45760006100e6565b835b6100f660408501602086016113ae565b6001600160a01b03169190610344565b506001600160a01b03831661011e602083018361138d565b600a81111561012f5761012f6113cb565b6040518481527f1d8c50a59805451ff93bb2e438559a86b75386bcac2a591d3181d79e7e8346fd9060200160405180910390a3505050565b6001600160a01b038216610179575050565b6004610188602083018361138d565b600a811115610199576101996113cb565b036101b3576101af826101aa610374565b610493565b5050565b6101af826101aa60408401602085016113ae565b6060600185600a8111156101dd576101dd6113cb565b036102c15760405163726d379760e11b8152600090732f577a41bec1be1152aeea12e73b7391d15f655d9063e4da6f2e90610220908890889088906004016113e1565b600060405180830381865afa15801561023d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102659190810190611581565b92509050806102bb5760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b5061033c565b600285600a8111156102d5576102d56113cb565b036102ec576102e5848484610524565b905061033c565b600685600a811115610300576103006113cb565b03610310576102e5848484610638565b600485600a811115610324576103246113cb565b03610334576102e5848484610b25565b61033c611612565b949350505050565b606061036a848484604051806060016040528060298152602001612d7860299139610e01565b90505b9392505050565b60004660010361039757507340aa958dd87fc8305b97f2ba922cddca374bcd7f90565b46600a036103b857507368d6b739d2020067d1e2f713b999da97e4d5481290565b466038036103d95750732c34a2fb1d0b4f55de51e1d0bdefaddce6b7cdd690565b4661a4b1036103fb57507370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890565b466121050361041d57507357df6092665eb6058de53939612413ff4b09114e90565b466113880361043f57507357df6092665eb6058de53939612413ff4b09114e90565b60405162461bcd60e51b815260206004820152602360248201527f50656e646c65537761703a204f4b5820436861696e206e6f7420737570706f726044820152621d195960ea1b60648201526084016102b2565b604051636eb1769f60e11b81523060048201526001600160a01b038281166024830152600019919084169063dd62ed3e90604401602060405180830381865afa1580156104e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105089190611635565b10156101af576101af6001600160a01b03831682600019610edc565b60606000610535600482868861164e565b61053e91611678565b9050366000610550866004818a61164e565b90925090506001600160e01b03198316630ed8d73960e21b1461057557610575611612565b60008080806105868587018761170d565b935093509350935083602001518985608001516105a391906117f3565b6105ad9190611818565b6080850152602084015160a08501516105c7908b906117f3565b6105d19190611818565b60a08501526020840189905260405187906105f6908690869086908690602401611866565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b60606000610649600482868861164e565b61065291611678565b9050366000610664866004818a61164e565b9092509050630e0a953160e11b6001600160e01b031984160161074857600080808080610693868801886118f4565b9450945094509450945083604001518a85606001516106b291906117f3565b6106bc9190611818565b6060850152604084015160808501516106d6908c906117f3565b6106e09190611818565b608085015260408085018b905251889061070690879087908790879087906024016119f8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152985061036d975050505050505050565b634e0c787160e11b6001600160e01b031984160161082157600080808061077185870187611b31565b9350935093509350826040015189846060015161078e91906117f3565b6107989190611818565b6060840152604083015160808401516107b2908b906117f3565b6107bc9190611818565b608084015260408084018a90525187906107e0908690869086908690602401611c1a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152975061036d9650505050505050565b63083fd07f60e01b6001600160e01b031984160161084a57600080808061077185870187611b31565b636d1578b560e11b6001600160e01b03198416016108e35760008080808061087486880188611c56565b9450945094509450945083600001518a856020015161089391906117f3565b61089d9190611818565b6020850152835160408501516108b4908c906117f3565b6108be9190611818565b6040808601919091528a85525188906107069087908790879087908790602401611d0e565b631f466cfb60e01b6001600160e01b031984160161097c57600080808061090c85870187611d7a565b93509350935093508260800151898460a0015161092991906117f3565b6109339190611818565b60a0840152608083015160c084015161094d908b906117f3565b6109579190611818565b60c08401526080830189905260405187906107e0908690869086908690602401611e5a565b63442820c560e11b6001600160e01b0319841601610a175760008080806109a585870187611ef7565b93509350935093508260c00151898460e001516109c291906117f3565b6109cc9190611818565b60e084015260c08301516101008401516109e7908b906117f3565b6109f19190611818565b61010084015260c0830189905260405187906107e0908690869086908690602401611feb565b637b999bdd60e11b6001600160e01b0319841601610ac65760008080610a3f848601866120b0565b9250925092508160400151888360600151610a5a91906117f3565b610a649190611818565b60608301526040808301899052518690610a86908590859085906024016121a5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152965061036d95505050505050565b60405162461bcd60e51b815260206004820152602e60248201527f50617261737761705363616c6548656c7065723a20556e737570706f7274656460448201526d1039bbb0b81039b2b632b1ba37b960911b60648201526084016102b2565b60606000610b36600482868861164e565b610b3f91611678565b9050366000610b51866004818a61164e565b909250905063f2a0f1c560e01b6001600160e01b0319841601610bbb576000808080610b7f858701876122e7565b9350935093509350828983610b9491906117f3565b610b9e9190611818565b915088925086848484846040516024016107e09493929190612370565b63fc4781a160e01b6001600160e01b0319841601610c8d5760008080808080610be6878901896127d4565b955095509550955095509550610c01838c8660400151610f96565b925083604001518b8560600151610c1891906117f3565b610c229190611818565b606085015260408085018c9052518990610c4a90889088908890889088908890602401612b2e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061036d98505050505050505050565b637beb3a5360e11b6001600160e01b0319841601610cf757600080808080610cb786880188612b9b565b94509450945094509450838a84610cce91906117f3565b610cd89190611818565b9250899350878585858585604051602401610706959493929190612bfa565b6319e3841760e21b6001600160e01b0319841601610d20576000808080610b7f858701876122e7565b6347f3d0f760e01b6001600160e01b0319841601610daa57600080808080610d4a86880188612c2d565b94509450945094509450610d63838b8660400151610f96565b925083604001518a8560600151610d7a91906117f3565b610d849190611818565b606085015260408085018b90525188906107069087908790879087908790602401612cc5565b60405162461bcd60e51b815260206004820152602660248201527f50656e646c65537761703a204f4b582073656c6563746f72206e6f74207375706044820152651c1bdc9d195960d21b60648201526084016102b2565b606082471015610e625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102b2565b600080866001600160a01b03168587604051610e7e9190612d15565b60006040518083038185875af1925050503d8060008114610ebb576040519150601f19603f3d011682016040523d82523d6000602084013e610ec0565b606091505b5091509150610ed187838387611046565b979650505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610f2d84826110bd565b610f9057604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610f86908590611161565b610f908482611161565b50505050565b606083516001600160401b03811115610fb157610fb161141a565b604051908082528060200260200182016040528015610fda578160200160208202803683370190505b50905060005b845181101561103e578284868381518110610ffd57610ffd612d31565b602002602001015161100f91906117f3565b6110199190611818565b82828151811061102b5761102b612d31565b6020908102919091010152600101610fe0565b509392505050565b606083156110b35782516000036110ac576110608561123b565b6110ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102b2565b508161033c565b61033c838361124a565b6000806000846001600160a01b0316846040516110da9190612d15565b6000604051808303816000865af19150503d8060008114611117576040519150601f19603f3d011682016040523d82523d6000602084013e61111c565b606091505b50915091508180156111465750805115806111465750808060200190518101906111469190612d47565b801561115657506111568561123b565b925050505b92915050565b60006111b6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112749092919063ffffffff16565b90508051600014806111d75750808060200190518101906111d79190612d47565b6112365760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102b2565b505050565b6001600160a01b03163b151590565b81511561125a5781518083602001fd5b8060405162461bcd60e51b81526004016102b29190612d64565b606061036a8484600085610e01565b6001600160a01b038116811461129857600080fd5b50565b80356112a681611283565b919050565b6000806000606084860312156112c057600080fd5b83356112cb81611283565b92506020840135915060408401356001600160401b038111156112ed57600080fd5b8401608081870312156112ff57600080fd5b809150509250925092565b801515811461129857600080fd5b80356112a68161130a565b60006020828403121561133557600080fd5b813561036d8161130a565b6000808335601e1984360301811261135757600080fd5b8301803591506001600160401b0382111561137157600080fd5b60200191503681900382131561138657600080fd5b9250929050565b60006020828403121561139f57600080fd5b8135600b811061036d57600080fd5b6000602082840312156113c057600080fd5b813561036d81611283565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156114525761145261141a565b60405290565b60405161010081016001600160401b03811182821017156114525761145261141a565b60405160a081016001600160401b03811182821017156114525761145261141a565b60405161012081016001600160401b03811182821017156114525761145261141a565b60405161016081016001600160401b03811182821017156114525761145261141a565b60405161014081016001600160401b03811182821017156114525761145261141a565b604051601f8201601f191681016001600160401b038111828210171561152e5761152e61141a565b604052919050565b60006001600160401b0382111561154f5761154f61141a565b50601f01601f191660200190565b60005b83811015611578578181015183820152602001611560565b50506000910152565b6000806040838503121561159457600080fd5b825161159f8161130a565b60208401519092506001600160401b038111156115bb57600080fd5b8301601f810185136115cc57600080fd5b80516115df6115da82611536565b611506565b8181528660208385010111156115f457600080fd5b61160582602083016020860161155d565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03169052565b60006020828403121561164757600080fd5b5051919050565b6000808585111561165e57600080fd5b8386111561166b57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a05780818660040360031b1b83161692505b505092915050565b600082601f8301126116b957600080fd5b81356116c76115da82611536565b8181528460208386010111156116dc57600080fd5b816020850160208301376000918101602001919091529392505050565b803563ffffffff811681146112a657600080fd5b60008060008084860361014081121561172557600080fd5b60e081121561173357600080fd5b5061173c611430565b853561174781611283565b815260208681013590820152604086013561176181611283565b6040820152606086013561177481611283565b806060830152506080860135608082015260a086013560a082015260c086013561179d81611283565b60c0820152935060e08501356001600160401b038111156117bd57600080fd5b6117c9878288016116a8565b9350506117d9610100860161129b565b91506117e861012086016116f9565b905092959194509250565b808202811582820484141761115b57634e487b7160e01b600052601160045260246000fd5b60008261183557634e487b7160e01b600052601260045260246000fd5b500490565b6000815180845261185281602086016020860161155d565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e08401526118cd8184018761183a565b9150506118de610100830185611628565b63ffffffff831661012083015295945050505050565b600080600080600085870361016081121561190e57600080fd5b863561191981611283565b955060e0601f198201121561192d57600080fd5b50611936611430565b602087013561194481611283565b8152604087013561195481611283565b80602083015250606087013560408201526080870135606082015260a0870135608082015260c087013560a082015260e087013561199181611283565b60c0820152935061010086013592506101208601356001600160401b03808211156119bb57600080fd5b6119c789838a016116a8565b93506101408801359150808211156119de57600080fd5b506119eb888289016116a8565b9150509295509295909350565b600061016060018060a01b0380891684528088511660208501528060208901511660408501526040880151606085015260608801516080850152608088015160a085015260a088015160c08501528060c08901511660e0850152508561010084015280610120840152611a6d8184018661183a565b9050828103610140840152611a82818561183a565b98975050505050505050565b60006101008284031215611aa157600080fd5b611aa9611458565b9050611ab48261129b565b8152611ac26020830161129b565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a0820152611afb60c0830161129b565b60c082015260e08201356001600160401b03811115611b1957600080fd5b611b25848285016116a8565b60e08301525092915050565b60008060008060808587031215611b4757600080fd5b8435611b5281611283565b935060208501356001600160401b0380821115611b6e57600080fd5b611b7a88838901611a8e565b9450604087013593506060870135915080821115611b9757600080fd5b50611ba4878288016116a8565b91505092959194509250565b600061010060018060a01b0380845116855280602085015116602086015260408401516040860152606084015160608601526080840151608086015260a084015160a08601528060c08501511660c08601525060e08301518160e08601526111568286018261183a565b6001600160a01b0385168152608060208201819052600090611c3e90830186611bb0565b8460408401528281036060840152610ed1818561183a565b6000806000806000858703610120811215611c7057600080fd5b8635611c7b81611283565b955060a0601f1982011215611c8f57600080fd5b50611c9861147b565b6020870135815260408701356020820152606087013560408201526080870135606082015260a087013560808201528094505060c0860135925060e086013560018060401b0380821115611ceb57600080fd5b611cf789838a016116a8565b93506101008801359150808211156119de57600080fd5b600061012060018060a01b038816835286516020840152602087015160408401526040870151606084015260608701516080840152608087015160a08401528560c08401528060e0840152611d658184018661183a565b9050828103610100840152611a82818561183a565b600080600080848603610180811215611d9257600080fd5b8535611d9d81611283565b9450610120601f198201811315611db357600080fd5b611dbb61149d565b91506020870135825260408701356020830152611dda6060880161129b565b6040830152611deb6080880161129b565b606083015260a0870135608083015260c087013560a083015260e087013560c08301526101008088013560e0840152611e2582890161129b565b9083015250925061014085013591506101608501356001600160401b03811115611e4e57600080fd5b611ba4878288016116a8565b600061018060018060a01b0380881684528651602085015260208701516040850152806040880151166060850152506060860151611e9b6080850182611628565b50608086015160a084015260a086015160c084015260c086015160e084015260e0860151610100818186015280880151915050611edc610120850182611628565b508461014084015280610160840152610ed18184018561183a565b6000806000808486036101c0811215611f0f57600080fd5b8535611f1a81611283565b9450610160601f198201811315611f3057600080fd5b611f386114c0565b9150602087013582526040870135602083015260608701356040830152611f616080880161129b565b6060830152611f7260a0880161129b565b6080830152611f8360c0880161129b565b60a083015260e087013560c08301526101008088013560e084015261012080890135828501526101409150818901358185015250611fc282890161129b565b9083015250925061018085013591506101a08501356001600160401b03811115611e4e57600080fd5b60006101c060018060a01b038716835285516020840152602086015160408401526040860151606084015260608601516120286080850182611628565b50608086015161203b60a0850182611628565b5060a086015161204e60c0850182611628565b5060c086015160e084810191909152860151610100808501919091528601516101208085019190915286015161014080850191909152860151612095610160850182611628565b5084610180840152806101a0840152610ed18184018561183a565b60008060008385036101808112156120c757600080fd5b84356120d281611283565b9350610140601f1982018113156120e857600080fd5b6120f06114e3565b91506120fe6020870161129b565b825261210c6040870161129b565b6020830152606086013560408301526080860135606083015260a0860135608083015260c086013560a083015261214560e0870161129b565b60c083015261010061215881880161129b565b60e08401526101208781013591840191909152908601359082015291506101608401356001600160401b0381111561218f57600080fd5b61219b868287016116a8565b9150509250925092565b600061018060018060a01b03861683526121c3602084018651611628565b60208501516121d56040850182611628565b506040850151606084015260608501516080840152608085015160a084015260a085015160c084015260c085015161221060e0850182611628565b5060e085015161010061222581860183611628565b860151610120858101919091528601516101408501525061016083018190526122508184018561183a565b9695505050505050565b60006001600160401b038211156122735761227361141a565b5060051b60200190565b600082601f83011261228e57600080fd5b8135602061229e6115da8361225a565b8083825260208201915060208460051b8701019350868411156122c057600080fd5b602086015b848110156122dc57803583529183019183016122c5565b509695505050505050565b600080600080608085870312156122fd57600080fd5b84359350602085013592506040850135915060608501356001600160401b0381111561232857600080fd5b611ba48782880161227d565b60008151808452602080850194506020840160005b8381101561236557815187529582019590820190600101612349565b509495945050505050565b8481528360208201528260408201526080606082015260006122506080830184612334565b600060a082840312156123a757600080fd5b6123af61147b565b90508135815260208201356123c381611283565b8060208301525060408201356040820152606082013560608201526080820135608082015292915050565b600082601f8301126123ff57600080fd5b8135602061240f6115da8361225a565b8083825260208201915060208460051b87010193508684111561243157600080fd5b602086015b848110156122dc57803561244981611283565b8352918301918301612436565b600082601f83011261246757600080fd5b813560206124776115da8361225a565b82815260059290921b8401810191818101908684111561249657600080fd5b8286015b848110156122dc5780356001600160401b038111156124b95760008081fd5b6124c78986838b01016116a8565b84525091830191830161249a565b600082601f8301126124e657600080fd5b6124f36115da833561225a565b82358082526020808301929160051b85010185101561251157600080fd5b602084015b6020853560051b86010181101561268f576001600160401b03813581101561253d57600080fd5b8135860187603f82011261255057600080fd5b6125606115da602083013561225a565b602082810135808352908201919060051b83016040018a81111561258357600080fd5b604084015b8181101561267857858135111561259e57600080fd5b8035850160a0818e03603f190112156125b657600080fd5b6125be61147b565b87604083013511156125cf57600080fd5b6125e18e6040808501358501016123ee565b815287606083013511156125f457600080fd5b6126078e604060608501358501016123ee565b6020820152876080830135111561261d57600080fd5b6126308e6040608085013585010161227d565b60408201528760a0830135111561264657600080fd5b6126598e604060a0850135850101612456565b606082015260c091909101356080820152845260209384019301612588565b505086525050602093840193919091019050612516565b50949350505050565b600082601f8301126126a957600080fd5b813560206126b96115da8361225a565b82815260059290921b840181019181810190868411156126d857600080fd5b8286015b848110156122dc5780356001600160401b03808211156126fc5760008081fd5b90880190610140828b03601f19018113156127175760008081fd5b61271f6114e3565b878401358152604061273281860161129b565b89830152606061274381870161129b565b828401526080915061275682870161129b565b818401525060a0808601358284015260c0915081860135818401525060e080860135828401526101009150818601358184015250610120612798818701611318565b838301529285013592848411156127b157600091508182fd5b6127bf8e8b868901016116a8565b908301525086525050509183019183016126dc565b60008060008060008061014087890312156127ee57600080fd5b86359550602087013561280081611283565b945061280f8860408901612395565b935060e08701356001600160401b038082111561282b57600080fd5b6128378a838b0161227d565b945061010089013591508082111561284e57600080fd5b61285a8a838b016124d5565b935061012089013591508082111561287157600080fd5b5061287e89828a01612698565b9150509295509295509295565b805182526020808201516001600160a01b0316908301526040808201519083015260608082015190830152608090810151910152565b60008151808452602080850194506020840160005b838110156123655781516001600160a01b0316875295820195908201906001016128d6565b600082825180855260208501945060208160051b8301016020850160005b83811015612a4357601f1985840381018952825180518086526020918201918087019190600582901b88010160005b82811015612a2357858983030184528451805160a0845261296c60a08501826128c1565b90506020820151848203602086015261298582826128c1565b9150506040820151848203604086015261299f8282612334565b9150506060820151848203606086015281815180845260208401915060208160051b85010160208401935060005b828110156129fc578c8683030184526129e782865161183a565b602095860195949094019391506001016129cd565b50608095860151979095019690965250505060209586019594909401939150600101612948565b508097505050505050602082019150602088019750600181019050612919565b50909695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015612b2157601f1986840301895281516101408151855285820151612a9687870182611628565b50604080830151612aa982880182611628565b5050606080830151612abd82880182611628565b50506080828101519086015260a0808301519086015260c0808301519086015260e080830151908601526101008083015115159086015261012091820151918501819052612b0d8186018361183a565b9a86019a9450505090830190600101612a6c565b5090979650505050505050565b8681526001600160a01b03861660208201526000610140612b52604084018861288b565b8060e0840152612b6481840187612334565b9050828103610100840152612b7981866128fb565b9050828103610120840152612b8e8185612a4f565b9998505050505050505050565b600080600080600060a08688031215612bb357600080fd5b8535945060208601359350604086013592506060860135612bd381611283565b915060808601356001600160401b03811115612bee57600080fd5b6119eb8882890161227d565b85815284602082015283604082015260018060a01b038316606082015260a060808201526000610ed160a0830184612334565b60008060008060006101208688031215612c4657600080fd5b85359450612c578760208801612395565b935060c08601356001600160401b0380821115612c7357600080fd5b612c7f89838a0161227d565b945060e0880135915080821115612c9557600080fd5b612ca189838a016124d5565b9350610100880135915080821115612cb857600080fd5b506119eb88828901612698565b6000610120878352612cda602084018861288b565b8060c0840152612cec81840187612334565b905082810360e0840152612d0081866128fb565b9050828103610100840152611a828185612a4f565b60008251612d2781846020870161155d565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612d5957600080fd5b815161036d8161130a565b60208152600061036d602083018461183a56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212206ddd33cad6a08cc5f442e3e9be4f7d9b1dea03b2e7ae3024b3d731775acf374364736f6c63430008170033",
|
|
83
83
|
"linkReferences": {},
|
|
84
84
|
"deployedLinkReferences": {}
|
|
85
85
|
}
|
|
@@ -3,7 +3,8 @@ pragma solidity ^0.8.17;
|
|
|
3
3
|
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
5
5
|
|
|
6
|
-
interface
|
|
6
|
+
interface IAugustusV6 {
|
|
7
|
+
// ============ Generic Swap ============
|
|
7
8
|
struct GenericData {
|
|
8
9
|
IERC20 srcToken;
|
|
9
10
|
IERC20 destToken;
|
|
@@ -21,30 +22,226 @@ interface IGenericSwapExactAmountIn {
|
|
|
21
22
|
bytes calldata permit,
|
|
22
23
|
bytes calldata executorData
|
|
23
24
|
) external payable;
|
|
25
|
+
|
|
26
|
+
// ============ UniswapV2 Swap ============
|
|
27
|
+
struct UniswapV2Data {
|
|
28
|
+
IERC20 srcToken;
|
|
29
|
+
IERC20 destToken;
|
|
30
|
+
uint256 fromAmount;
|
|
31
|
+
uint256 toAmount;
|
|
32
|
+
uint256 quotedAmount;
|
|
33
|
+
bytes32 metadata;
|
|
34
|
+
address payable beneficiary;
|
|
35
|
+
bytes pools;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function swapExactAmountInOnUniswapV2(
|
|
39
|
+
address executor,
|
|
40
|
+
UniswapV2Data calldata uniData,
|
|
41
|
+
uint256 partnerAndFee,
|
|
42
|
+
bytes calldata permit
|
|
43
|
+
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
44
|
+
|
|
45
|
+
// ============ UniswapV3 Swap ============
|
|
46
|
+
struct UniswapV3Data {
|
|
47
|
+
IERC20 srcToken;
|
|
48
|
+
IERC20 destToken;
|
|
49
|
+
uint256 fromAmount;
|
|
50
|
+
uint256 toAmount;
|
|
51
|
+
uint256 quotedAmount;
|
|
52
|
+
bytes32 metadata;
|
|
53
|
+
address payable beneficiary;
|
|
54
|
+
bytes pools;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function swapExactAmountInOnUniswapV3(
|
|
58
|
+
address executor,
|
|
59
|
+
UniswapV3Data calldata uniData,
|
|
60
|
+
uint256 partnerAndFee,
|
|
61
|
+
bytes calldata permit
|
|
62
|
+
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
63
|
+
|
|
64
|
+
// ============ BalancerV2 Swap ============
|
|
65
|
+
struct BalancerV2Data {
|
|
66
|
+
uint256 fromAmount;
|
|
67
|
+
uint256 toAmount;
|
|
68
|
+
uint256 quotedAmount;
|
|
69
|
+
bytes32 metadata;
|
|
70
|
+
uint256 beneficiaryAndApproveFlag;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function swapExactAmountInOnBalancerV2(
|
|
74
|
+
address executor,
|
|
75
|
+
BalancerV2Data calldata balancerData,
|
|
76
|
+
uint256 partnerAndFee,
|
|
77
|
+
bytes calldata permit,
|
|
78
|
+
bytes calldata data
|
|
79
|
+
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
80
|
+
|
|
81
|
+
// ============ CurveV1 Swap ============
|
|
82
|
+
struct CurveV1Data {
|
|
83
|
+
uint256 curveData;
|
|
84
|
+
uint256 curveAssets;
|
|
85
|
+
IERC20 srcToken;
|
|
86
|
+
IERC20 destToken;
|
|
87
|
+
uint256 fromAmount;
|
|
88
|
+
uint256 toAmount;
|
|
89
|
+
uint256 quotedAmount;
|
|
90
|
+
bytes32 metadata;
|
|
91
|
+
address payable beneficiary;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function swapExactAmountInOnCurveV1(
|
|
95
|
+
address executor,
|
|
96
|
+
CurveV1Data calldata curveV1Data,
|
|
97
|
+
uint256 partnerAndFee,
|
|
98
|
+
bytes calldata permit
|
|
99
|
+
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
100
|
+
|
|
101
|
+
// ============ CurveV2 Swap ============
|
|
102
|
+
struct CurveV2Data {
|
|
103
|
+
uint256 curveData;
|
|
104
|
+
uint256 i;
|
|
105
|
+
uint256 j;
|
|
106
|
+
address poolAddress;
|
|
107
|
+
IERC20 srcToken;
|
|
108
|
+
IERC20 destToken;
|
|
109
|
+
uint256 fromAmount;
|
|
110
|
+
uint256 toAmount;
|
|
111
|
+
uint256 quotedAmount;
|
|
112
|
+
bytes32 metadata;
|
|
113
|
+
address payable beneficiary;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function swapExactAmountInOnCurveV2(
|
|
117
|
+
address executor,
|
|
118
|
+
CurveV2Data calldata curveV2Data,
|
|
119
|
+
uint256 partnerAndFee,
|
|
120
|
+
bytes calldata permit
|
|
121
|
+
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
122
|
+
|
|
123
|
+
// ============ MakerPSM Swap ============
|
|
124
|
+
struct MakerPSMData {
|
|
125
|
+
IERC20 srcToken;
|
|
126
|
+
IERC20 destToken;
|
|
127
|
+
uint256 fromAmount;
|
|
128
|
+
uint256 toAmount;
|
|
129
|
+
uint256 toll;
|
|
130
|
+
uint256 to18ConversionFactor;
|
|
131
|
+
address exchange;
|
|
132
|
+
address gemJoinAddress;
|
|
133
|
+
bytes32 metadata;
|
|
134
|
+
uint256 beneficiaryDirectionApproveFlag;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function swapExactAmountInOutOnMakerPSM(address executor, MakerPSMData calldata makerPSMData, bytes calldata permit)
|
|
138
|
+
external
|
|
139
|
+
returns (uint256 spentAmount, uint256 receivedAmount);
|
|
24
140
|
}
|
|
25
141
|
|
|
26
|
-
|
|
27
|
-
function _paraswapScaling(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
142
|
+
contract ParaswapScaleHelper {
|
|
143
|
+
function _paraswapScaling(bytes calldata rawCallData, uint256 amountIn)
|
|
144
|
+
internal
|
|
145
|
+
pure
|
|
146
|
+
returns (bytes memory scaledCallData)
|
|
147
|
+
{
|
|
31
148
|
bytes4 selector = bytes4(rawCallData[:4]);
|
|
32
149
|
bytes calldata dataToDecode = rawCallData[4:];
|
|
33
150
|
|
|
34
|
-
|
|
35
|
-
(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
151
|
+
// Handle Generic Swap
|
|
152
|
+
if (selector == IAugustusV6.swapExactAmountIn.selector) {
|
|
153
|
+
(
|
|
154
|
+
address executor,
|
|
155
|
+
IAugustusV6.GenericData memory swapData,
|
|
156
|
+
uint256 partnerAndFee,
|
|
157
|
+
bytes memory permit,
|
|
158
|
+
bytes memory executorData
|
|
159
|
+
) = abi.decode(dataToDecode, (address, IAugustusV6.GenericData, uint256, bytes, bytes));
|
|
160
|
+
|
|
161
|
+
// Direct scaling calculation
|
|
162
|
+
swapData.toAmount = swapData.toAmount * amountIn / swapData.fromAmount;
|
|
163
|
+
swapData.quotedAmount = swapData.quotedAmount * amountIn / swapData.fromAmount;
|
|
164
|
+
swapData.fromAmount = amountIn;
|
|
165
|
+
|
|
166
|
+
return abi.encodeWithSelector(selector, executor, swapData, partnerAndFee, permit, executorData);
|
|
167
|
+
}
|
|
168
|
+
// Handle UniswapV2
|
|
169
|
+
else if (selector == IAugustusV6.swapExactAmountInOnUniswapV2.selector) {
|
|
170
|
+
(address executor, IAugustusV6.UniswapV2Data memory uniData, uint256 partnerAndFee, bytes memory permit) =
|
|
171
|
+
abi.decode(dataToDecode, (address, IAugustusV6.UniswapV2Data, uint256, bytes));
|
|
172
|
+
|
|
173
|
+
// Direct scaling calculation
|
|
174
|
+
uniData.toAmount = uniData.toAmount * amountIn / uniData.fromAmount;
|
|
175
|
+
uniData.quotedAmount = uniData.quotedAmount * amountIn / uniData.fromAmount;
|
|
176
|
+
uniData.fromAmount = amountIn;
|
|
177
|
+
|
|
178
|
+
return abi.encodeWithSelector(selector, executor, uniData, partnerAndFee, permit);
|
|
179
|
+
}
|
|
180
|
+
// Handle UniswapV3
|
|
181
|
+
else if (selector == IAugustusV6.swapExactAmountInOnUniswapV3.selector) {
|
|
182
|
+
(address executor, IAugustusV6.UniswapV3Data memory uniV3Data, uint256 partnerAndFee, bytes memory permit) =
|
|
183
|
+
abi.decode(dataToDecode, (address, IAugustusV6.UniswapV3Data, uint256, bytes));
|
|
184
|
+
|
|
185
|
+
// Direct scaling calculation
|
|
186
|
+
uniV3Data.toAmount = uniV3Data.toAmount * amountIn / uniV3Data.fromAmount;
|
|
187
|
+
uniV3Data.quotedAmount = uniV3Data.quotedAmount * amountIn / uniV3Data.fromAmount;
|
|
188
|
+
uniV3Data.fromAmount = amountIn;
|
|
189
|
+
|
|
190
|
+
return abi.encodeWithSelector(selector, executor, uniV3Data, partnerAndFee, permit);
|
|
191
|
+
}
|
|
192
|
+
// Handle BalancerV2
|
|
193
|
+
else if (selector == IAugustusV6.swapExactAmountInOnBalancerV2.selector) {
|
|
194
|
+
(
|
|
195
|
+
address executor,
|
|
196
|
+
IAugustusV6.BalancerV2Data memory balancerData,
|
|
197
|
+
uint256 partnerAndFee,
|
|
198
|
+
bytes memory permit,
|
|
199
|
+
bytes memory data
|
|
200
|
+
) = abi.decode(dataToDecode, (address, IAugustusV6.BalancerV2Data, uint256, bytes, bytes));
|
|
201
|
+
|
|
202
|
+
// Direct scaling calculation
|
|
203
|
+
balancerData.toAmount = balancerData.toAmount * amountIn / balancerData.fromAmount;
|
|
204
|
+
balancerData.quotedAmount = balancerData.quotedAmount * amountIn / balancerData.fromAmount;
|
|
205
|
+
balancerData.fromAmount = amountIn;
|
|
206
|
+
|
|
207
|
+
return abi.encodeWithSelector(selector, executor, balancerData, partnerAndFee, permit, data);
|
|
208
|
+
}
|
|
209
|
+
// Handle CurveV1
|
|
210
|
+
else if (selector == IAugustusV6.swapExactAmountInOnCurveV1.selector) {
|
|
211
|
+
(address executor, IAugustusV6.CurveV1Data memory curveV1Data, uint256 partnerAndFee, bytes memory permit) =
|
|
212
|
+
abi.decode(dataToDecode, (address, IAugustusV6.CurveV1Data, uint256, bytes));
|
|
213
|
+
|
|
214
|
+
// Direct scaling calculation
|
|
215
|
+
curveV1Data.toAmount = curveV1Data.toAmount * amountIn / curveV1Data.fromAmount;
|
|
216
|
+
curveV1Data.quotedAmount = curveV1Data.quotedAmount * amountIn / curveV1Data.fromAmount;
|
|
217
|
+
curveV1Data.fromAmount = amountIn;
|
|
218
|
+
|
|
219
|
+
return abi.encodeWithSelector(selector, executor, curveV1Data, partnerAndFee, permit);
|
|
220
|
+
}
|
|
221
|
+
// Handle CurveV2
|
|
222
|
+
else if (selector == IAugustusV6.swapExactAmountInOnCurveV2.selector) {
|
|
223
|
+
(address executor, IAugustusV6.CurveV2Data memory curveV2Data, uint256 partnerAndFee, bytes memory permit) =
|
|
224
|
+
abi.decode(dataToDecode, (address, IAugustusV6.CurveV2Data, uint256, bytes));
|
|
225
|
+
|
|
226
|
+
// Direct scaling calculation
|
|
227
|
+
curveV2Data.toAmount = curveV2Data.toAmount * amountIn / curveV2Data.fromAmount;
|
|
228
|
+
curveV2Data.quotedAmount = curveV2Data.quotedAmount * amountIn / curveV2Data.fromAmount;
|
|
229
|
+
curveV2Data.fromAmount = amountIn;
|
|
230
|
+
|
|
231
|
+
return abi.encodeWithSelector(selector, executor, curveV2Data, partnerAndFee, permit);
|
|
232
|
+
}
|
|
233
|
+
// Handle MakerPSM
|
|
234
|
+
else if (selector == IAugustusV6.swapExactAmountInOutOnMakerPSM.selector) {
|
|
235
|
+
(address executor, IAugustusV6.MakerPSMData memory makerPSMData, bytes memory permit) =
|
|
236
|
+
abi.decode(dataToDecode, (address, IAugustusV6.MakerPSMData, bytes));
|
|
237
|
+
|
|
238
|
+
// Direct scaling calculation
|
|
239
|
+
makerPSMData.toAmount = makerPSMData.toAmount * amountIn / makerPSMData.fromAmount;
|
|
240
|
+
makerPSMData.fromAmount = amountIn;
|
|
241
|
+
|
|
242
|
+
return abi.encodeWithSelector(selector, executor, makerPSMData, permit);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
revert("ParaswapScaleHelper: Unsupported swap selector");
|
|
49
246
|
}
|
|
50
247
|
}
|
package/deployments/1-core.json
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"ActionStorageV4": "0x6a0Ed0A9193FCBe7ae9B0F3D90F88e365Cca64fC"
|
|
33
33
|
},
|
|
34
34
|
"routerStatic": "0x263833d47eA3fA4a30f269323aba6a107f9eB14C",
|
|
35
|
-
"pendleSwap": "
|
|
35
|
+
"pendleSwap": "0x02890b1735378d2e8a67DD53304c135EB72CF308",
|
|
36
36
|
"pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
|
|
37
37
|
"yieldContractFactoryV3": "0xdF3601014686674e53d1Fa52F7602525483F9122",
|
|
38
38
|
"marketFactoryV3": "0x1A6fCc85557BC4fB7B534ed835a03EF056552D52",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"ActionStorageV4": "0x6a0Ed0A9193FCBe7ae9B0F3D90F88e365Cca64fC"
|
|
32
32
|
},
|
|
33
33
|
"routerStatic": "0xAdB09F65bd90d19e3148D9ccb693F3161C6DB3E8",
|
|
34
|
-
"pendleSwap": "
|
|
34
|
+
"pendleSwap": "0x02890b1735378d2e8a67DD53304c135EB72CF308",
|
|
35
35
|
"pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
|
|
36
36
|
"yieldContractFactoryV3": "0xEb38531db128EcA928aea1B1CE9E5609B15ba146",
|
|
37
37
|
"marketFactoryV3": "0x2FCb47B58350cD377f94d3821e7373Df60bD9Ced",
|
package/package.json
CHANGED