From b108c620cf0e3e446840c166b660695ebd66563b Mon Sep 17 00:00:00 2001 From: Mark Grothe Date: Wed, 4 Oct 2023 08:32:09 -0500 Subject: [PATCH] feat: updated debt switch interface (#559) * feat: update debt switch * fix: updated tests --- .../debtSwitch.test.ts | 49 +- .../src/paraswap-debtSwitch-contract/index.ts | 44 +- .../typechain/ParaSwapDebtSwitchAdapter.d.ts | 577 +++++++++-- .../ParaSwapDebtSwitchAdapter__factory.ts | 920 +++++++++--------- 4 files changed, 1029 insertions(+), 561 deletions(-) diff --git a/packages/contract-helpers/src/paraswap-debtSwitch-contract/debtSwitch.test.ts b/packages/contract-helpers/src/paraswap-debtSwitch-contract/debtSwitch.test.ts index 32247ded..195ad489 100644 --- a/packages/contract-helpers/src/paraswap-debtSwitch-contract/debtSwitch.test.ts +++ b/packages/contract-helpers/src/paraswap-debtSwitch-contract/debtSwitch.test.ts @@ -33,7 +33,8 @@ describe('DebtSwitchAdapterService', () => { const newAssetDebtToken = '0x0000000000000000000000000000000000000005'; const augustus = '0x0000000000000000000000000000000000000006'; const maxNewDebtAmount = '1000000'; - const signedAmount = '1500000'; + const extraCollateralAsset = '0x0000000000000000000000000000000000000000'; + const extraCollateralAmount = '0'; const txCalldata = '0x935fb84b0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000000119027b700000000000000000000000000000000000000000000001e483c86fa843f6c2000000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000180000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee5700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000116446c67b6d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c59900000000000000000000000000000000000000000000000000000000119027b700000000000000000000000000000000000000000000001dfec636122d1008df00000000000000000000000000000000000000000000001e4c566f818d31d01300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000006161766500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000006177abb9ae2ba6c0362c11ec8f12233bf85851b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003a0430bf7cd2633af111ce3204db4b0990857a6f000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae90000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000108e47a6846afd000000000000000000000000000000000000000000000000000000000000099433f80000000000000000000000000000006daea1723962647b7e189d311d757fb793000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57000000000000000000000000100cec21fa2a0bdc21f770ec06e885e7c52a18680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006177abb93d1d355dba3f70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c558d406f7449cc936da0231093b069fcb8a42e3a2f0f78f0497515f8d795a29c3a57485920bb65c42c9f5884af63388d493b5cd0bcd2a6eed4fff7173982f4f800000000000000000000000000000000000000000000000000000000000011f80000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000420000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003a0430bf7cd2633af111ce3204db4b0990857a6f000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000011abcf02276ffa00000000000000000000000000000000000000000000000000000000000082b007c000000000000000000000000b3c839dbde6b96d37c56ee4f9dad3390d49310aa000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57000000000000000000000000100cec21fa2a0bdc21f770ec06e885e7c52a18680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006177abd60000000000000000000000000000000000000000000000000000017cbb773bf00000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001bc072f450f48f66263bd53e801840fbf545c7aa5aac969d568f87eb830b66f36907cba9fd12582a9a96f23d1396da6c94d46fa4bc0ab851972246cd117659949f0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003a0430bf7cd2633af111ce3204db4b0990857a6f0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff00000000000000000000000000000000000000000000000000000000000009c400000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000386598f16ac87200000000000000000000000000000000000000000000000000046a1698a248c022a0000000000000000000000000000006daea1723962647b7e189d311d757fb793000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57000000000000000000000000100cec21fa2a0bdc21f770ec06e885e7c52a18680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006177abb902d4eee4d7c128000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c41623d640c08c3543660e464261260aed59bfba57c22b00326533525bd011953350326cee2a506e6daf1d0d8780eca139ec48cab2280c6e0bf1a1efe72b0ad880000000000000000000000000000000000000000000000000000000000000001000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff0000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000a91c3e5350e240000000000000000000000000000000000000000000000000000d41a7b6e826d0000000000000000000000000000b3c839dbde6b96d37c56ee4f9dad3390d49310aa000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57000000000000000000000000100cec21fa2a0bdc21f770ec06e885e7c52a18680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006177abd60000000000000000000000000000000000000000000000000000017cbb773bf00000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001b842ca8317744091cfd12b2d2e9de4c17618cf2e19d5f0eecb68e3691b078542307aae0aeff4ae756ca20d0ec1dff2ec0a6cfdc595dd3a43d6b8a76f630c4b2f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'; @@ -65,17 +66,28 @@ describe('DebtSwitchAdapterService', () => { newAssetUnderlying, newAssetDebtToken, maxNewDebtAmount, - deadline: 0, - sigR: '0x0000000000000000000000000000000000000000000000000000000000000000', - sigS: '0x0000000000000000000000000000000000000000000000000000000000000000', - sigV: 0, - signedAmount, + extraCollateralAsset, + extraCollateralAmount, + creditDelegationPermit: { + value: 0, + deadline: 0, + v: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + collateralPermit: { + value: 0, + deadline: 0, + v: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, }); expect(txObj.from).toEqual(user); expect(txObj.to).toEqual(debtSwitchAdapterAddress); // function selector - expect(txObj.data?.substring(0, 10)).toEqual('0x636aa619'); + expect(txObj.data?.substring(0, 10)).toEqual('0xb8bd1c6b'); const txObjRepayAllFalse: PopulatedTransaction = swapInstance.debtSwitch({ user, @@ -88,17 +100,28 @@ describe('DebtSwitchAdapterService', () => { newAssetUnderlying, newAssetDebtToken, maxNewDebtAmount, - deadline: 0, - sigR: '0x0000000000000000000000000000000000000000000000000000000000000000', - sigS: '0x0000000000000000000000000000000000000000000000000000000000000000', - sigV: 0, - signedAmount, + extraCollateralAsset, + extraCollateralAmount, + creditDelegationPermit: { + value: 0, + deadline: 0, + v: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + collateralPermit: { + value: 0, + deadline: 0, + v: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, }); expect(txObjRepayAllFalse.from).toEqual(user); expect(txObjRepayAllFalse.to).toEqual(debtSwitchAdapterAddress); // function selector - expect(txObjRepayAllFalse.data?.substring(0, 10)).toEqual('0x636aa619'); + expect(txObjRepayAllFalse.data?.substring(0, 10)).toEqual('0xb8bd1c6b'); }); }); }); diff --git a/packages/contract-helpers/src/paraswap-debtSwitch-contract/index.ts b/packages/contract-helpers/src/paraswap-debtSwitch-contract/index.ts index 24a01853..7f753d75 100644 --- a/packages/contract-helpers/src/paraswap-debtSwitch-contract/index.ts +++ b/packages/contract-helpers/src/paraswap-debtSwitch-contract/index.ts @@ -21,14 +21,25 @@ export type DebtSwitchType = { newAssetDebtToken: string; newAssetUnderlying: string; maxNewDebtAmount: string; + extraCollateralAsset: string; + extraCollateralAmount: string; repayAll: boolean; txCalldata: string; augustus: string; - deadline: BigNumberish; - signedAmount: string; - sigV: BigNumberish; - sigR: BytesLike; - sigS: BytesLike; + creditDelegationPermit: { + value: BigNumberish; + deadline: BigNumberish; + v: BigNumberish; + r: BytesLike; + s: BytesLike; + }; + collateralPermit: { + value: BigNumberish; + deadline: BigNumberish; + v: BigNumberish; + r: BytesLike; + s: BytesLike; + }; }; export interface ParaswapDebtSwitchInterface { @@ -63,11 +74,10 @@ export class DebtSwitchAdapterService repayAll, txCalldata, augustus, - deadline, - sigV, - sigR, - sigS, - signedAmount, + extraCollateralAsset, + extraCollateralAmount, + creditDelegationPermit, + collateralPermit, }: DebtSwitchType): PopulatedTransaction { const callDataEncoded = utils.defaultAbiCoder.encode( ['bytes', 'address'], @@ -82,23 +92,27 @@ export class DebtSwitchAdapterService maxNewDebtAmount, offset: repayAll ? augustusToAmountOffsetFromCalldata(txCalldata) : 0, paraswapData: callDataEncoded, + extraCollateralAsset, + extraCollateralAmount, }; const creditDelParamsStruct: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct = { debtToken: newAssetDebtToken, - value: signedAmount, - deadline, - v: sigV, - r: sigR, - s: sigS, + ...creditDelegationPermit, }; + const permitInput: ParaSwapDebtSwapAdapter.PermitInputStruct = { + aToken: extraCollateralAsset, + ...collateralPermit, + }; + const actionTx: PopulatedTransaction = {}; const txData = this.contractInterface.encodeFunctionData('swapDebt', [ txParamsStruct, creditDelParamsStruct, + permitInput, ]); actionTx.to = this.debtSwitchAddress; diff --git a/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter.d.ts b/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter.d.ts index b4360d6f..19cefc91 100644 --- a/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter.d.ts +++ b/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter.d.ts @@ -11,100 +11,259 @@ import type { PopulatedTransaction, Signer, utils, -} from "ethers"; +} from 'ethers'; import type { FunctionFragment, Result, EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; +} from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, -} from "./common"; +} from './common'; export declare namespace ParaSwapDebtSwapAdapter { export type DebtSwapParamsStruct = { - debtAsset: string; - debtRepayAmount: BigNumberish; - debtRateMode: BigNumberish; - newDebtAsset: string; - maxNewDebtAmount: BigNumberish; - offset: BigNumberish; - paraswapData: BytesLike; + debtAsset: string; + debtRepayAmount: BigNumberish; + debtRateMode: BigNumberish; + newDebtAsset: string; + maxNewDebtAmount: BigNumberish; + extraCollateralAsset: string; + extraCollateralAmount: BigNumberish; + offset: BigNumberish; + paraswapData: BytesLike; }; export type DebtSwapParamsStructOutput = [ - string, - BigNumber, - BigNumber, - string, - BigNumber, - BigNumber, - string + string, + BigNumber, + BigNumber, + string, + BigNumber, + string, + BigNumber, + BigNumber, + string, ] & { - debtAsset: string; - debtRepayAmount: BigNumber; - debtRateMode: BigNumber; - newDebtAsset: string; - maxNewDebtAmount: BigNumber; - offset: BigNumber; - paraswapData: string; + debtAsset: string; + debtRepayAmount: BigNumber; + debtRateMode: BigNumber; + newDebtAsset: string; + maxNewDebtAmount: BigNumber; + extraCollateralAsset: string; + extraCollateralAmount: BigNumber; + offset: BigNumber; + paraswapData: string; }; export type CreditDelegationInputStruct = { - debtToken: string; - value: BigNumberish; - deadline: BigNumberish; - v: BigNumberish; - r: BytesLike; - s: BytesLike; + debtToken: string; + value: BigNumberish; + deadline: BigNumberish; + v: BigNumberish; + r: BytesLike; + s: BytesLike; }; export type CreditDelegationInputStructOutput = [ - string, - BigNumber, - BigNumber, - number, - string, - string + string, + BigNumber, + BigNumber, + number, + string, + string, ] & { - debtToken: string; - value: BigNumber; - deadline: BigNumber; - v: number; - r: string; - s: string; + debtToken: string; + value: BigNumber; + deadline: BigNumber; + v: number; + r: string; + s: string; + }; + + export type PermitInputStruct = { + aToken: string; + value: BigNumberish; + deadline: BigNumberish; + v: BigNumberish; + r: BytesLike; + s: BytesLike; + }; + + export type PermitInputStructOutput = [ + string, + BigNumber, + BigNumber, + number, + string, + string, + ] & { + aToken: string; + value: BigNumber; + deadline: BigNumber; + v: number; + r: string; + s: string; }; } export interface ParaSwapDebtSwapAdapterInterface extends utils.Interface { functions: { - "swapDebt((address,uint256,uint256,address,uint256,uint256,bytes),(address,uint256,uint256,uint8,bytes32,bytes32))": FunctionFragment; + 'ADDRESSES_PROVIDER()': FunctionFragment; + 'AUGUSTUS_REGISTRY()': FunctionFragment; + 'MAX_SLIPPAGE_PERCENT()': FunctionFragment; + 'ORACLE()': FunctionFragment; + 'POOL()': FunctionFragment; + 'REFERRER()': FunctionFragment; + 'executeOperation(address[],uint256[],uint256[],address,bytes)': FunctionFragment; + 'owner()': FunctionFragment; + 'renewAllowance(address)': FunctionFragment; + 'renounceOwnership()': FunctionFragment; + 'rescueTokens(address)': FunctionFragment; + 'swapDebt((address,uint256,uint256,address,uint256,address,uint256,uint256,bytes),(address,uint256,uint256,uint8,bytes32,bytes32),(address,uint256,uint256,uint8,bytes32,bytes32))': FunctionFragment; + 'transferOwnership(address)': FunctionFragment; }; getFunction( - nameOrSignatureOrTopic: - | "swapDebt" + nameOrSignatureOrTopic: + | 'ADDRESSES_PROVIDER' + | 'AUGUSTUS_REGISTRY' + | 'MAX_SLIPPAGE_PERCENT' + | 'ORACLE' + | 'POOL' + | 'REFERRER' + | 'executeOperation' + | 'owner' + | 'renewAllowance' + | 'renounceOwnership' + | 'rescueTokens' + | 'swapDebt' + | 'transferOwnership', ): FunctionFragment; encodeFunctionData( - functionFragment: "swapDebt", - values: [ - ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, - ParaSwapDebtSwapAdapter.CreditDelegationInputStruct - ] + functionFragment: 'ADDRESSES_PROVIDER', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'AUGUSTUS_REGISTRY', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'MAX_SLIPPAGE_PERCENT', + values?: undefined, + ): string; + encodeFunctionData(functionFragment: 'ORACLE', values?: undefined): string; + encodeFunctionData(functionFragment: 'POOL', values?: undefined): string; + encodeFunctionData(functionFragment: 'REFERRER', values?: undefined): string; + encodeFunctionData( + functionFragment: 'executeOperation', + values: [string[], BigNumberish[], BigNumberish[], string, BytesLike], + ): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData( + functionFragment: 'renewAllowance', + values: [string], + ): string; + encodeFunctionData( + functionFragment: 'renounceOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'rescueTokens', + values: [string], + ): string; + encodeFunctionData( + functionFragment: 'swapDebt', + values: [ + ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, + ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, + ParaSwapDebtSwapAdapter.PermitInputStruct, + ], + ): string; + encodeFunctionData( + functionFragment: 'transferOwnership', + values: [string], ): string; + decodeFunctionResult( + functionFragment: 'ADDRESSES_PROVIDER', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'AUGUSTUS_REGISTRY', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'MAX_SLIPPAGE_PERCENT', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'ORACLE', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'POOL', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'REFERRER', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'executeOperation', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'renewAllowance', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'renounceOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'rescueTokens', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'swapDebt', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'transferOwnership', + data: BytesLike, + ): Result; + events: { - "Swapped(address,address,uint256,uint256)": EventFragment; + 'Bought(address,address,uint256,uint256)': EventFragment; + 'OwnershipTransferred(address,address)': EventFragment; + 'Swapped(address,address,uint256,uint256)': EventFragment; }; - getEvent(nameOrSignatureOrTopic: "Swapped"): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Bought'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Swapped'): EventFragment; } +export interface BoughtEventObject { + fromAsset: string; + toAsset: string; + amountSold: BigNumber; + receivedAmount: BigNumber; +} +export type BoughtEvent = TypedEvent< + [string, string, BigNumber, BigNumber], + BoughtEventObject +>; + +export type BoughtEventFilter = TypedEventFilter; + +export interface OwnershipTransferredEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferredEvent = TypedEvent< + [string, string], + OwnershipTransferredEventObject +>; + +export type OwnershipTransferredEventFilter = + TypedEventFilter; + export interface SwappedEventObject { fromAsset: string; toAsset: string; @@ -126,17 +285,17 @@ export interface ParaSwapDebtSwapAdapter extends BaseContract { interface: ParaSwapDebtSwapAdapterInterface; queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, ): Promise>; listeners( - eventFilter?: TypedEventFilter + eventFilter?: TypedEventFilter, ): Array>; listeners(eventName?: string): Array; removeAllListeners( - eventFilter: TypedEventFilter + eventFilter: TypedEventFilter, ): this; removeAllListeners(eventName?: string): this; off: OnEvent; @@ -145,56 +304,288 @@ export interface ParaSwapDebtSwapAdapter extends BaseContract { removeListener: OnEvent; functions: { - swapDebt( - debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, - creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, - overrides?: Overrides & { from?: string } - ): Promise; - }; + ADDRESSES_PROVIDER(overrides?: CallOverrides): Promise<[string]>; - swapDebt( + AUGUSTUS_REGISTRY(overrides?: CallOverrides): Promise<[string]>; + + MAX_SLIPPAGE_PERCENT(overrides?: CallOverrides): Promise<[BigNumber]>; + + ORACLE(overrides?: CallOverrides): Promise<[string]>; + + POOL(overrides?: CallOverrides): Promise<[string]>; + + REFERRER(overrides?: CallOverrides): Promise<[number]>; + + executeOperation( + assets: string[], + amounts: BigNumberish[], + arg2: BigNumberish[], + initiator: string, + params: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + renewAllowance( + reserve: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string }, + ): Promise; + + rescueTokens( + token: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + swapDebt( debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, - overrides?: Overrides & { from?: string } + collateralATokenPermit: ParaSwapDebtSwapAdapter.PermitInputStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string }, + ): Promise; + }; + + ADDRESSES_PROVIDER(overrides?: CallOverrides): Promise; + + AUGUSTUS_REGISTRY(overrides?: CallOverrides): Promise; + + MAX_SLIPPAGE_PERCENT(overrides?: CallOverrides): Promise; + + ORACLE(overrides?: CallOverrides): Promise; + + POOL(overrides?: CallOverrides): Promise; + + REFERRER(overrides?: CallOverrides): Promise; + + executeOperation( + assets: string[], + amounts: BigNumberish[], + arg2: BigNumberish[], + initiator: string, + params: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + renewAllowance( + reserve: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string }, + ): Promise; + + rescueTokens( + token: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + swapDebt( + debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, + creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, + collateralATokenPermit: ParaSwapDebtSwapAdapter.PermitInputStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string }, ): Promise; callStatic: { - swapDebt( - debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, - creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, - overrides?: CallOverrides - ): Promise; + ADDRESSES_PROVIDER(overrides?: CallOverrides): Promise; + + AUGUSTUS_REGISTRY(overrides?: CallOverrides): Promise; + + MAX_SLIPPAGE_PERCENT(overrides?: CallOverrides): Promise; + ORACLE(overrides?: CallOverrides): Promise; + + POOL(overrides?: CallOverrides): Promise; + + REFERRER(overrides?: CallOverrides): Promise; + + executeOperation( + assets: string[], + amounts: BigNumberish[], + arg2: BigNumberish[], + initiator: string, + params: BytesLike, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + renewAllowance(reserve: string, overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + rescueTokens(token: string, overrides?: CallOverrides): Promise; + + swapDebt( + debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, + creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, + collateralATokenPermit: ParaSwapDebtSwapAdapter.PermitInputStruct, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: CallOverrides, + ): Promise; }; filters: { - "Swapped(address,address,uint256,uint256)"( - fromAsset?: string | null, - toAsset?: string | null, - fromAmount?: null, - receivedAmount?: null - ): SwappedEventFilter; - Swapped( - fromAsset?: string | null, - toAsset?: string | null, - fromAmount?: null, - receivedAmount?: null - ): SwappedEventFilter; + 'Bought(address,address,uint256,uint256)'( + fromAsset?: string | null, + toAsset?: string | null, + amountSold?: null, + receivedAmount?: null, + ): BoughtEventFilter; + Bought( + fromAsset?: string | null, + toAsset?: string | null, + amountSold?: null, + receivedAmount?: null, + ): BoughtEventFilter; + + 'OwnershipTransferred(address,address)'( + previousOwner?: string | null, + newOwner?: string | null, + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + previousOwner?: string | null, + newOwner?: string | null, + ): OwnershipTransferredEventFilter; + + 'Swapped(address,address,uint256,uint256)'( + fromAsset?: string | null, + toAsset?: string | null, + fromAmount?: null, + receivedAmount?: null, + ): SwappedEventFilter; + Swapped( + fromAsset?: string | null, + toAsset?: string | null, + fromAmount?: null, + receivedAmount?: null, + ): SwappedEventFilter; }; estimateGas: { - swapDebt( - debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, - creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, - overrides?: Overrides & { from?: string } - ): Promise; + ADDRESSES_PROVIDER(overrides?: CallOverrides): Promise; + + AUGUSTUS_REGISTRY(overrides?: CallOverrides): Promise; + + MAX_SLIPPAGE_PERCENT(overrides?: CallOverrides): Promise; + + ORACLE(overrides?: CallOverrides): Promise; + + POOL(overrides?: CallOverrides): Promise; + + REFERRER(overrides?: CallOverrides): Promise; + + executeOperation( + assets: string[], + amounts: BigNumberish[], + arg2: BigNumberish[], + initiator: string, + params: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + renewAllowance( + reserve: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string }, + ): Promise; + + rescueTokens( + token: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + swapDebt( + debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, + creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, + collateralATokenPermit: ParaSwapDebtSwapAdapter.PermitInputStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string }, + ): Promise; }; populateTransaction: { - swapDebt( - debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, - creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, - overrides?: Overrides & { from?: string } - ): Promise; + ADDRESSES_PROVIDER( + overrides?: CallOverrides, + ): Promise; + + AUGUSTUS_REGISTRY(overrides?: CallOverrides): Promise; + + MAX_SLIPPAGE_PERCENT( + overrides?: CallOverrides, + ): Promise; + + ORACLE(overrides?: CallOverrides): Promise; + + POOL(overrides?: CallOverrides): Promise; + + REFERRER(overrides?: CallOverrides): Promise; + + executeOperation( + assets: string[], + amounts: BigNumberish[], + arg2: BigNumberish[], + initiator: string, + params: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + renewAllowance( + reserve: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: string }, + ): Promise; + + rescueTokens( + token: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + swapDebt( + debtSwapParams: ParaSwapDebtSwapAdapter.DebtSwapParamsStruct, + creditDelegationPermit: ParaSwapDebtSwapAdapter.CreditDelegationInputStruct, + collateralATokenPermit: ParaSwapDebtSwapAdapter.PermitInputStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + transferOwnership( + newOwner: string, + overrides?: Overrides & { from?: string }, + ): Promise; }; } diff --git a/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter__factory.ts b/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter__factory.ts index a917c4da..0058014c 100644 --- a/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter__factory.ts +++ b/packages/contract-helpers/src/paraswap-debtSwitch-contract/typechain/ParaSwapDebtSwitchAdapter__factory.ts @@ -1,462 +1,502 @@ /* Autogenerated file. Do not edit manually. */ /* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import { Signer, utils, Contract, ContractFactory, Overrides } from 'ethers'; +import type { Provider, TransactionRequest } from '@ethersproject/providers'; import type { - ParaSwapDebtSwapAdapter, - ParaSwapDebtSwapAdapterInterface, -} from "./ParaSwapDebtSwitchAdapter"; + ParaSwapDebtSwapAdapter, + ParaSwapDebtSwapAdapterInterface, +} from './ParaSwapDebtSwitchAdapter'; const _abi = [ - { - inputs: [ - { - internalType: "contract IPoolAddressesProvider", - name: "addressesProvider", - type: "address", - }, - { - internalType: "address", - name: "pool", - type: "address", - }, - { - internalType: "contract IParaSwapAugustusRegistry", - name: "augustusRegistry", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, + { + inputs: [ + { + internalType: 'contract IPoolAddressesProvider', + name: 'addressesProvider', + type: 'address', + }, + { + internalType: 'address', + name: 'pool', + type: 'address', + }, + { + internalType: 'contract IParaSwapAugustusRegistry', + name: 'augustusRegistry', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'fromAsset', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'toAsset', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountSold', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'receivedAmount', + type: 'uint256', + }, + ], + name: 'Bought', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnershipTransferred', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'fromAsset', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'toAsset', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'fromAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'receivedAmount', + type: 'uint256', + }, + ], + name: 'Swapped', + type: 'event', + }, + { + inputs: [], + name: 'ADDRESSES_PROVIDER', + outputs: [ + { + internalType: 'contract IPoolAddressesProvider', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'AUGUSTUS_REGISTRY', + outputs: [ + { + internalType: 'contract IParaSwapAugustusRegistry', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'MAX_SLIPPAGE_PERCENT', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'ORACLE', + outputs: [ + { + internalType: 'contract IPriceOracleGetter', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'POOL', + outputs: [ + { + internalType: 'contract IPool', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REFERRER', + outputs: [ + { + internalType: 'uint16', + name: '', + type: 'uint16', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address[]', + name: 'assets', + type: 'address[]', + }, + { + internalType: 'uint256[]', + name: 'amounts', + type: 'uint256[]', + }, + { + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, + { + internalType: 'address', + name: 'initiator', + type: 'address', + }, + { + internalType: 'bytes', + name: 'params', + type: 'bytes', + }, + ], + name: 'executeOperation', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'reserve', + type: 'address', + }, + ], + name: 'renewAllowance', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract IERC20', + name: 'token', + type: 'address', + }, + ], + name: 'rescueTokens', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'address', + name: 'debtAsset', + type: 'address', + }, + { + internalType: 'uint256', + name: 'debtRepayAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'debtRateMode', + type: 'uint256', + }, + { + internalType: 'address', + name: 'newDebtAsset', + type: 'address', + }, + { + internalType: 'uint256', + name: 'maxNewDebtAmount', + type: 'uint256', + }, + { + internalType: 'address', + name: 'extraCollateralAsset', + type: 'address', + }, + { + internalType: 'uint256', + name: 'extraCollateralAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'offset', + type: 'uint256', + }, + { + internalType: 'bytes', + name: 'paraswapData', + type: 'bytes', + }, ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "fromAsset", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "toAsset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amountSold", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "receivedAmount", - type: "uint256", - }, + internalType: 'struct IParaswapDebtSwapAdapter.DebtSwapParams', + name: 'debtSwapParams', + type: 'tuple', + }, + { + components: [ + { + internalType: 'contract ICreditDelegationToken', + name: 'debtToken', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'deadline', + type: 'uint256', + }, + { + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, + { + internalType: 'bytes32', + name: 'r', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 's', + type: 'bytes32', + }, ], - name: "Bought", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, + internalType: 'struct IParaswapDebtSwapAdapter.CreditDelegationInput', + name: 'creditDelegationPermit', + type: 'tuple', + }, + { + components: [ + { + internalType: 'contract IERC20WithPermit', + name: 'aToken', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'deadline', + type: 'uint256', + }, + { + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, + { + internalType: 'bytes32', + name: 'r', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 's', + type: 'bytes32', + }, ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "fromAsset", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "toAsset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "fromAmount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "receivedAmount", - type: "uint256", - }, - ], - name: "Swapped", - type: "event", - }, - { - inputs: [], - name: "ADDRESSES_PROVIDER", - outputs: [ - { - internalType: "contract IPoolAddressesProvider", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "AUGUSTUS_REGISTRY", - outputs: [ - { - internalType: "contract IParaSwapAugustusRegistry", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_SLIPPAGE_PERCENT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "ORACLE", - outputs: [ - { - internalType: "contract IPriceOracleGetter", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "POOL", - outputs: [ - { - internalType: "contract IPool", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "REFERRER", - outputs: [ - { - internalType: "uint16", - name: "", - type: "uint16", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "cacheReserves", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "assets", - type: "address[]", - }, - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - { - internalType: "address", - name: "initiator", - type: "address", - }, - { - internalType: "bytes", - name: "params", - type: "bytes", - }, - ], - name: "executeOperation", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "reserve", - type: "address", - }, - ], - name: "renewAllowance", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "contract IERC20", - name: "token", - type: "address", - }, - ], - name: "rescueTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "debtAsset", - type: "address", - }, - { - internalType: "uint256", - name: "debtRepayAmount", - type: "uint256", - }, - { - internalType: "uint256", - name: "debtRateMode", - type: "uint256", - }, - { - internalType: "address", - name: "newDebtAsset", - type: "address", - }, - { - internalType: "uint256", - name: "maxNewDebtAmount", - type: "uint256", - }, - { - internalType: "uint256", - name: "offset", - type: "uint256", - }, - { - internalType: "bytes", - name: "paraswapData", - type: "bytes", - }, - ], - internalType: "struct ParaSwapDebtSwapAdapter.DebtSwapParams", - name: "debtSwapParams", - type: "tuple", - }, - { - components: [ - { - internalType: "contract ICreditDelegationToken", - name: "debtToken", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - internalType: "struct ParaSwapDebtSwapAdapter.CreditDelegationInput", - name: "creditDelegationPermit", - type: "tuple", - }, - ], - name: "swapDebt", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, + internalType: 'struct IParaswapDebtSwapAdapter.PermitInput', + name: 'collateralATokenPermit', + type: 'tuple', + }, + ], + name: 'swapDebt', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, ] as const; const _bytecode = - "0x6101006040523480156200001257600080fd5b5060405162003410380380620034108339810160408190526200003591620007c5565b838383838383838282600033600080546001600160a01b0319166001600160a01b038316908117825560405192935091600080516020620033f0833981519152908290a350816001600160a01b031663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000df91906200082d565b6001600160a01b0390811660805291821660a052811660c05260405163fb04e17b60e01b8152600060048201529082169063fb04e17b90602401602060405180830381865afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d919062000854565b15620001b05760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420612076616c696420417567757374757320616464726573730000000060448201526064015b60405180910390fd5b6001600160a01b031660e052505060018055620001cd81620001e5565b620001d7620002f2565b505050505050505062000a40565b6000546001600160a01b03163314620002415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620001a7565b6001600160a01b038116620002a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620001a7565b600080546040516001600160a01b0380851693921691600080516020620033f083398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060c0516001600160a01b031663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000335573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200035f91908101906200088e565b905060005b8151811015620003c857620003b360c0516000198484815181106200038d576200038d62000960565b60200260200101516001600160a01b0316620003cc60201b62000cf6179092919060201c565b80620003bf8162000976565b91505062000364565b5050565b8015806200044a5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801562000422573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004489190620009a0565b155b620004be5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620001a7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620005169185916200051b16565b505050565b600062000577826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620005f960201b62000e32179092919060201c565b80519091501562000516578080602001905181019062000598919062000854565b620005165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620001a7565b60606200060a848460008562000612565b949350505050565b606082471015620006755760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620001a7565b600080866001600160a01b03168587604051620006939190620009ed565b60006040518083038185875af1925050503d8060008114620006d2576040519150601f19603f3d011682016040523d82523d6000602084013e620006d7565b606091505b509092509050620006eb87838387620006f6565b979650505050505050565b60608315620007675782516200075f576001600160a01b0385163b6200075f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001a7565b50816200060a565b6200060a83838151156200077e5781518083602001fd5b8060405162461bcd60e51b8152600401620001a7919062000a0b565b6001600160a01b0381168114620007b057600080fd5b50565b8051620007c0816200079a565b919050565b60008060008060808587031215620007dc57600080fd5b8451620007e9816200079a565b6020860151909450620007fc816200079a565b60408601519093506200080f816200079a565b606086015190925062000822816200079a565b939692955090935050565b6000602082840312156200084057600080fd5b81516200084d816200079a565b9392505050565b6000602082840312156200086757600080fd5b815180151581146200084d57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006020808385031215620008a257600080fd5b82516001600160401b0380821115620008ba57600080fd5b818501915085601f830112620008cf57600080fd5b815181811115620008e457620008e462000878565b8060051b604051601f19603f830116810181811085821117156200090c576200090c62000878565b6040529182528482019250838101850191888311156200092b57600080fd5b938501935b8285101562000954576200094485620007b3565b8452938501939285019262000930565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200099957634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215620009b357600080fd5b5051919050565b60005b83811015620009d7578181015183820152602001620009bd565b83811115620009e7576000848401525b50505050565b6000825162000a01818460208701620009ba565b9190910192915050565b602081526000825180602084015262000a2c816040850160208701620009ba565b601f01601f19169190910160400192915050565b60805160a05160c05160e05161291b62000ad56000396000818161019d01526113b20152600081816101e70152818161033f015281816103740152818161071801528181610834015281816108f8015281816109ee01528181610a8501528181610afc01528181610f0001528181610fd401526110a6015260006101080152600081816101760152611c05015261291b6000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063715018a61161008c5780638da5cb5b116100665780638da5cb5b14610209578063920f5c841461021a578063c05603741461023d578063f2fde38b1461025957600080fd5b8063715018a6146101d257806371f893ea146101da5780637535d246146101e257600080fd5b806332e4b286116100c857806332e4b2861461015a57806338013f02146101715780633a82986714610198578063636aa619146101bf57600080fd5b8062ae3bf8146100ee5780630542975c146101035780630a03635114610147575b600080fd5b6101016100fc366004611d34565b61026c565b005b61012a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b610101610155366004611d34565b610330565b610163610bb881565b60405190815260200161013e565b61012a7f000000000000000000000000000000000000000000000000000000000000000081565b61012a7f000000000000000000000000000000000000000000000000000000000000000081565b6101016101cd366004611f13565b61039b565b610101610976565b6101016109ea565b61012a7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031661012a565b61022d61022836600461202a565b610aef565b604051901515815260200161013e565b61024661173081565b60405161ffff909116815260200161013e565b610101610267366004611d34565b610c0c565b6000546001600160a01b0316331461029f5760405162461bcd60e51b81526004016102969061212f565b60405180910390fd5b61032d6102b46000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190612164565b6001600160a01b0384169190610e49565b50565b6103656001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000006000610cf6565b61032d6001600160a01b0382167f0000000000000000000000000000000000000000000000000000000000000000600019610cf6565b60608201516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156103e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040a9190612164565b905081604001516000146104b657815160208301516040808501516060860151608087015160a0880151935163016a5aab60e31b81523360048201523060248201526044810195909552606485019290925260ff16608484015260a483015260c48201526001600160a01b0390911690630b52d5589060e401600060405180830381600087803b15801561049d57600080fd5b505af11580156104b1573d6000803e3d6000fd5b505050505b600019836020015114156105c1576000806104d48560000151610eda565b915091508460400151600214610551576040516370a0823160e01b81523360048201526001600160a01b038216906370a0823190602401602060405180830381865afa158015610528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054c9190612164565b6105b9565b6040516370a0823160e01b81523360048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b99190612164565b602086015250505b6040805160c0808201835285516001600160a01b0316825260208087015181840152868401518385015290860151606083015260a0808701516080840152339083015291519091600091610617918491016121d5565b60408051601f1981840301815260018084528383019092529250600091906020808301908036833701905050905085606001518160008151811061065d5761065d61223b565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508660800151816000815181106106b2576106b261223b565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090506002816000815181106106f6576106f661223b565b602090810291909101015260405163ab9c4b5d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab9c4b5d9061075b90309087908790879033908c906117309060040161228c565b600060405180830381600087803b15801561077557600080fd5b505af1158015610789573d6000803e3d6000fd5b5050505060608801516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156107d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fc9190612164565b9050600061080a888361235e565b9050801561096a5760608a0151604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152600092169063dd62ed3e90604401602060405180830381865afa158015610885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a99190612164565b9050818110156108c0576108c08b60600151610330565b60608b015160405163573ade8160e01b81526001600160a01b03918216600482015260248101849052600260448201523360648201527f00000000000000000000000000000000000000000000000000000000000000009091169063573ade81906084016020604051808303816000875af1158015610943573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109679190612164565b50505b50505050505050505050565b6000546001600160a01b031633146109a05760405162461bcd60e51b81526004016102969061212f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a729190810190612380565b905060005b8151811015610aeb57610ad97f0000000000000000000000000000000000000000000000000000000000000000600019848481518110610ab957610ab961223b565b60200260200101516001600160a01b0316610cf69092919063ffffffff16565b80610ae381612426565b915050610a77565b5050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b5f5760405162461bcd60e51b815260206004820152601360248201527210d05313115497d35554d517d09157d413d3d3606a1b6044820152606401610296565b6001600160a01b0384163014610bb05760405162461bcd60e51b8152602060048201526016602482015275494e49544941544f525f4d5553545f42455f5448495360501b6044820152606401610296565b610bfc83838c8c6000818110610bc857610bc861223b565b9050602002016020810190610bdd9190611d34565b8b8b6000818110610bf057610bf061223b565b90506020020135610f86565b5060019998505050505050505050565b6000546001600160a01b03163314610c365760405162461bcd60e51b81526004016102969061212f565b6001600160a01b038116610c9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610296565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b801580610d705750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e9190612164565b155b610ddb5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610296565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610e2d90849061111e565b505050565b6060610e4184846000856111f0565b949350505050565b60405163a9059cbb60e01b8082526001600160a01b0384166004830152602482018390529060008060448382895af1610e86573d6000803e3d6000fd5b50610e90846112cb565b610ed45760405162461bcd60e51b815260206004820152601560248201527423a83b191d103330b4b632b2103a3930b739b332b960591b6044820152606401610296565b50505050565b6040516335ea6a7560e01b81526001600160a01b038281166004830152600091829182917f0000000000000000000000000000000000000000000000000000000000000000909116906335ea6a75906024016101e060405180830381865afa158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e91906124ca565b90508061014001518161012001519250925050915091565b6000610f94848601866125ed565b9050610fb481608001518260600151858460000151868660200151611374565b508051604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152600092169063dd62ed3e90604401602060405180830381865afa158015611025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110499190612164565b9050816020015181101561106257815161106290610330565b8151602083015160408085015160a0860151915163573ade8160e01b81526001600160a01b03948516600482015260248101939093526044830152821660648201527f00000000000000000000000000000000000000000000000000000000000000009091169063573ade81906084016020604051808303816000875af11580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111159190612164565b50505050505050565b6000611173826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e329092919063ffffffff16565b805190915015610e2d578080602001905181019061119191906126a4565b610e2d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610296565b6060824710156112515760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610296565b600080866001600160a01b0316858760405161126d91906126c6565b60006040518083038185875af1925050503d80600081146112aa576040519150601f19603f3d011682016040523d82523d6000602084013e6112af565b606091505b50915091506112c087838387611aac565b979650505050505050565b60006112f1565b62461bcd60e51b60005260206004528060245250806044525060646000fd5b3d801561133057602081146113615761132b7f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f6112d2565b61136e565b823b611358576113587311d41d8c8e881b9bdd08184818dbdb9d1c9858dd60621b60146112d2565b6001915061136e565b3d6000803e600051151591505b50919050565b60008060008780602001905181019061138d91906126e2565b60405163fb04e17b60e01b81526001600160a01b0380831660048301529294509092507f00000000000000000000000000000000000000000000000000000000000000009091169063fb04e17b90602401602060405180830381865afa1580156113fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141f91906126a4565b61145e5760405162461bcd60e51b815260206004820152601060248201526f494e56414c49445f415547555354555360801b6044820152606401610296565b600061146988611b22565b60ff169050600061147988611b22565b60ff16905060006114898a611be3565b905060006114968a611be3565b905060006114ee6114ab612710610bb8611c72565b6114e86114c36114bc88600a612854565b8790611c82565b6114e26114db6114d48b600a612854565b8890611c82565b8e90611c82565b90611cac565b90611cbf565b9050808a111561154c5760405162461bcd60e51b815260206004820152602360248201527f6d6178416d6f756e74546f5377617020657863656564206d617820736c69707060448201526261676560e81b6064820152608401610296565b50506040516370a0823160e01b8152306004820152600093506001600160a01b038b1692506370a082319150602401602060405180830381865afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc9190612164565b90508581101561160e5760405162461bcd60e51b815260206004820181905260248201527f494e53554646494349454e545f42414c414e43455f4245464f52455f535741506044820152606401610296565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190612164565b90506000836001600160a01b031663d2c4b5986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116df9190612860565b60405163095ea7b360e01b81526001600160a01b03808316600483015260006024830152919250908b169063095ea7b3906044016020604051808303816000875af1158015611732573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175691906126a4565b5060405163095ea7b360e01b81526001600160a01b038281166004830152602482018a90528b169063095ea7b3906044016020604051808303816000875af11580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca91906126a4565b508b156118435760048c101580156117ee575084516117ea906020611ce5565b8c11155b61183a5760405162461bcd60e51b815260206004820152601d60248201527f544f5f414d4f554e545f4f46465345545f4f55545f4f465f52414e47450000006044820152606401610296565b8660208d018601525b6000846001600160a01b03168660405161185d91906126c6565b6000604051808303816000865af19150503d806000811461189a576040519150601f19603f3d011682016040523d82523d6000602084013e61189f565b606091505b50509050806118b2573d6000803e3d6000fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612164565b9050611929818661235e565b97508988111561197b5760405162461bcd60e51b815260206004820152601860248201527f57524f4e475f42414c414e43455f41465445525f5357415000000000000000006044820152606401610296565b6040516370a0823160e01b81523060048201526000906119f29086906001600160a01b038f16906370a0823190602401602060405180830381865afa1580156119c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ec9190612164565b90611ce5565b905089811015611a445760405162461bcd60e51b815260206004820152601c60248201527f494e53554646494349454e545f414d4f554e545f5245434549564544000000006044820152606401610296565b8b6001600160a01b03168d6001600160a01b03167fbf77fd13a39d14dc0da779342c14105c38d9a5d0c60f2caa22f5fd1d5525416d8b84604051611a92929190918252602082015260400190565b60405180910390a350505050505050509695505050505050565b60608315611b18578251611b11576001600160a01b0385163b611b115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610296565b5081610e41565b610e418383611cf5565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b87919061287d565b9050604d8160ff161115611bdd5760405162461bcd60e51b815260206004820152601a60248201527f544f4f5f4d414e595f444543494d414c535f4f4e5f544f4b454e0000000000006044820152606401610296565b92915050565b60405163b3596f0760e01b81526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b3596f0790602401602060405180830381865afa158015611c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdd9190612164565b80820182811015611bdd57600080fd5b6000821580611ca357505081810281838281611ca057611ca061289a565b04145b611bdd57600080fd5b6000611cb882846128b0565b9392505050565b600081156113881983900484111517611cd757600080fd5b506127109102611388010490565b80820382811115611bdd57600080fd5b815115611d055781518083602001fd5b8060405162461bcd60e51b815260040161029691906128d2565b6001600160a01b038116811461032d57600080fd5b600060208284031215611d4657600080fd5b8135611cb881611d1f565b8035611d5c81611d1f565b919050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715611d9a57611d9a611d61565b60405290565b60405160e0810167ffffffffffffffff81118282101715611d9a57611d9a611d61565b6040516101e0810167ffffffffffffffff81118282101715611d9a57611d9a611d61565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e1057611e10611d61565b604052919050565b600067ffffffffffffffff821115611e3257611e32611d61565b50601f01601f191660200190565b600082601f830112611e5157600080fd5b8135611e64611e5f82611e18565b611de7565b818152846020838601011115611e7957600080fd5b816020850160208301376000918101602001919091529392505050565b60ff8116811461032d57600080fd5b600060c08284031215611eb757600080fd5b611ebf611d77565b90508135611ecc81611d1f565b8082525060208201356020820152604082013560408201526060820135611ef281611e96565b806060830152506080820135608082015260a082013560a082015292915050565b60008060e08385031215611f2657600080fd5b823567ffffffffffffffff80821115611f3e57600080fd5b9084019060e08287031215611f5257600080fd5b611f5a611da0565b611f6383611d51565b81526020830135602082015260408301356040820152611f8560608401611d51565b60608201526080830135608082015260a083013560a082015260c083013582811115611fb057600080fd5b611fbc88828601611e40565b60c083015250809450505050611fd58460208501611ea5565b90509250929050565b60008083601f840112611ff057600080fd5b50813567ffffffffffffffff81111561200857600080fd5b6020830191508360208260051b850101111561202357600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561204857600080fd5b893567ffffffffffffffff8082111561206057600080fd5b61206c8d838e01611fde565b909b50995060208c013591508082111561208557600080fd5b6120918d838e01611fde565b909950975060408c01359150808211156120aa57600080fd5b6120b68d838e01611fde565b909750955060608c013591506120cb82611d1f565b90935060808b013590808211156120e157600080fd5b818c0191508c601f8301126120f557600080fd5b81358181111561210457600080fd5b8d602082850101111561211657600080fd5b6020830194508093505050509295985092959850929598565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561217657600080fd5b5051919050565b60005b83811015612198578181015183820152602001612180565b83811115610ed45750506000910152565b600081518084526121c181602086016020860161217d565b601f01601f19169290920160200192915050565b60208152600060018060a01b038084511660208401526020840151604084015260408401516060840152606084015160c0608085015261221860e08501826121a9565b9050608085015160a08501528160a08601511660c0850152809250505092915050565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561228157815187529582019590820190600101612265565b509495945050505050565b6001600160a01b03888116825260e0602080840182905289519184018290526000928a820192909190610100860190855b818110156122db5785518516835294830194918301916001016122bd565b505085810360408701526122ef818c612251565b935050505082810360608401526123068188612251565b6001600160a01b0387166080850152905082810360a084015261232981866121a9565b91505061233c60c083018461ffff169052565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561237057612370612348565b500390565b8051611d5c81611d1f565b6000602080838503121561239357600080fd5b825167ffffffffffffffff808211156123ab57600080fd5b818501915085601f8301126123bf57600080fd5b8151818111156123d1576123d1611d61565b8060051b91506123e2848301611de7565b81815291830184019184810190888411156123fc57600080fd5b938501935b8385101561233c578451925061241683611d1f565b8282529385019390850190612401565b600060001982141561243a5761243a612348565b5060010190565b60006020828403121561245357600080fd5b6040516020810181811067ffffffffffffffff8211171561247657612476611d61565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114611d5c57600080fd5b805164ffffffffff81168114611d5c57600080fd5b805161ffff81168114611d5c57600080fd5b60006101e082840312156124dd57600080fd5b6124e5611dc3565b6124ef8484612441565b81526124fd60208401612483565b602082015261250e60408401612483565b604082015261251f60608401612483565b606082015261253060808401612483565b608082015261254160a08401612483565b60a082015261255260c084016124a3565b60c082015261256360e084016124b8565b60e0820152610100612576818501612375565b90820152610120612588848201612375565b9082015261014061259a848201612375565b908201526101606125ac848201612375565b908201526101806125be848201612483565b908201526101a06125d0848201612483565b908201526101c06125e2848201612483565b908201529392505050565b6000602082840312156125ff57600080fd5b813567ffffffffffffffff8082111561261757600080fd5b9083019060c0828603121561262b57600080fd5b612633611d77565b823561263e81611d1f565b80825250602083013560208201526040830135604082015260608301358281111561266857600080fd5b61267487828601611e40565b6060830152506080830135608082015260a0830135925061269483611d1f565b60a0810192909252509392505050565b6000602082840312156126b657600080fd5b81518015158114611cb857600080fd5b600082516126d881846020870161217d565b9190910192915050565b600080604083850312156126f557600080fd5b825167ffffffffffffffff81111561270c57600080fd5b8301601f8101851361271d57600080fd5b805161272b611e5f82611e18565b81815286602083850101111561274057600080fd5b61275182602083016020860161217d565b809450505050602083015161276581611d1f565b809150509250929050565b600181815b808511156127ab57816000190482111561279157612791612348565b8085161561279e57918102915b93841c9390800290612775565b509250929050565b6000826127c257506001611bdd565b816127cf57506000611bdd565b81600181146127e557600281146127ef5761280b565b6001915050611bdd565b60ff84111561280057612800612348565b50506001821b611bdd565b5060208310610133831016604e8410600b841016171561282e575081810a611bdd565b6128388383612770565b806000190482111561284c5761284c612348565b029392505050565b6000611cb883836127b3565b60006020828403121561287257600080fd5b8151611cb881611d1f565b60006020828403121561288f57600080fd5b8151611cb881611e96565b634e487b7160e01b600052601260045260246000fd5b6000826128cd57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000611cb860208301846121a956fea264697066735822122083916c2e867ffe5cc5586626cf69491670775747aa658d7b03240abbbe94052f64736f6c634300080a00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"; + '0x6101006040523480156200001257600080fd5b5060405162003626380380620036268339810160408190526200003591620007b9565b838383838383838282600033600080546001600160a01b0319166001600160a01b03831690811782556040519293509160008051602062003606833981519152908290a350816001600160a01b031663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000df919062000821565b6001600160a01b0390811660805291821660a052811660c05260405163fb04e17b60e01b8152600060048201529082169063fb04e17b90602401602060405180830381865afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d919062000848565b15620001b05760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420612076616c696420417567757374757320616464726573730000000060448201526064015b60405180910390fd5b6001600160a01b031660e052505060018055620001cd81620002b3565b600060c0516001600160a01b031663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000210573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200023a919081019062000882565b905060005b8151811015620002a3576200028e60c05160001984848151811062000268576200026862000954565b60200260200101516001600160a01b0316620003c060201b62000c0a179092919060201c565b806200029a816200096a565b9150506200023f565b5050505050505050505062000a34565b6000546001600160a01b031633146200030f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620001a7565b6001600160a01b038116620003765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620001a7565b600080546040516001600160a01b03808516939216916000805160206200360683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b8015806200043e5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801562000416573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043c919062000994565b155b620004b25760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620001a7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b179091526200050a9185916200050f16565b505050565b60006200056b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620005ed60201b62000d08179092919060201c565b8051909150156200050a57808060200190518101906200058c919062000848565b6200050a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620001a7565b6060620005fe848460008562000606565b949350505050565b606082471015620006695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620001a7565b600080866001600160a01b03168587604051620006879190620009e1565b60006040518083038185875af1925050503d8060008114620006c6576040519150601f19603f3d011682016040523d82523d6000602084013e620006cb565b606091505b509092509050620006df87838387620006ea565b979650505050505050565b606083156200075b57825162000753576001600160a01b0385163b620007535760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001a7565b5081620005fe565b620005fe8383815115620007725781518083602001fd5b8060405162461bcd60e51b8152600401620001a79190620009ff565b6001600160a01b0381168114620007a457600080fd5b50565b8051620007b4816200078e565b919050565b60008060008060808587031215620007d057600080fd5b8451620007dd816200078e565b6020860151909450620007f0816200078e565b604086015190935062000803816200078e565b606086015190925062000816816200078e565b939692955090935050565b6000602082840312156200083457600080fd5b815162000841816200078e565b9392505050565b6000602082840312156200085b57600080fd5b815180151581146200084157600080fd5b634e487b7160e01b600052604160045260246000fd5b600060208083850312156200089657600080fd5b82516001600160401b0380821115620008ae57600080fd5b818501915085601f830112620008c357600080fd5b815181811115620008d857620008d86200086c565b8060051b604051601f19603f830116810181811085821117156200090057620009006200086c565b6040529182528482019250838101850191888311156200091f57600080fd5b938501935b8285101562000948576200093885620007a7565b8452938501939285019262000924565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200098d57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215620009a757600080fd5b5051919050565b60005b83811015620009cb578181015183820152602001620009b1565b83811115620009db576000848401525b50505050565b60008251620009f5818460208701620009ae565b9190910192915050565b602081526000825180602084015262000a20816040850160208701620009ae565b601f01601f19169190910160400192915050565b60805160a05160c05160e051612b4562000ac160003960008181610182015261144a0152600081816101b10152818161031c01528181610351015281816103f9015281816105a101528181610aa301528181610dbc01528181610f4d01528181610fe5015281816110cc01526111cf0152600060ed01526000818161015b0152611bed0152612b456000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c8063715018a61161008c578063920f5c8411610066578063920f5c84146101e4578063b8bd1c6b14610207578063c05603741461021a578063f2fde38b1461023657600080fd5b8063715018a6146101a45780637535d246146101ac5780638da5cb5b146101d357600080fd5b8062ae3bf8146100d35780630542975c146100e85780630a0363511461012c57806332e4b2861461013f57806338013f02146101565780633a8298671461017d575b600080fd5b6100e66100e1366004611e97565b610249565b005b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e661013a366004611e97565b61030d565b610148610bb881565b604051908152602001610123565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6100e6610378565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031661010f565b6101f76101f2366004611f10565b6103ec565b6040519015158152602001610123565b6100e66102153660046121e9565b610680565b61022361173081565b60405161ffff9091168152602001610123565b6100e6610244366004611e97565b610b20565b6000546001600160a01b0316331461027c5760405162461bcd60e51b8152600401610273906122e4565b60405180910390fd5b61030a6102916000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156102d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f99190612319565b6001600160a01b0384169190610d21565b50565b6103426001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000006000610c0a565b61030a6001600160a01b0382167f0000000000000000000000000000000000000000000000000000000000000000600019610c0a565b6000546001600160a01b031633146103a25760405162461bcd60e51b8152600401610273906122e4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045c5760405162461bcd60e51b815260206004820152601360248201527210d05313115497d35554d517d09157d413d3d3606a1b6044820152606401610273565b6001600160a01b03841630146104ad5760405162461bcd60e51b8152602060048201526016602482015275494e49544941544f525f4d5553545f42455f5448495360501b6044820152606401610273565b60006104bb83850185612332565b60608101519091506001600160a01b0316156106225760008b8b60008181106104e6576104e66123fb565b90506020020160208101906104fb9190611e97565b905060008a8a6000818110610512576105126123fb565b90506020020135905061052d82828560e00151611730610d84565b6060830180516000909152608084015161054a9085908390610e1e565b600061055584610fbd565b60e088015190935061057592506001600160a01b03841691503086611071565b604051631a4ca37b60e21b81526001600160a01b038581166004830152602482018590523060448301527f000000000000000000000000000000000000000000000000000000000000000016906369328dec906064016020604051808303816000875af11580156105ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060e9190612319565b5061061984846110af565b5050505061066f565b61066d818c8c6000818110610639576106396123fb565b905060200201602081019061064e9190611e97565b8b8b6000818110610661576106616123fb565b90506020020135611156565b505b5060019a9950505050505050505050565b60608301516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156106cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef9190612319565b905082604001516000146107805782600001516001600160a01b0316630b52d558333086602001518760400151886060015189608001518a60a001516040518863ffffffff1660e01b815260040161074d9796959493929190612411565b600060405180830381600087803b15801561076757600080fd5b505af115801561077b573d6000803e3d6000fd5b505050505b6000806107908660000151610fbd565b509150915060008660400151600214610810576040516370a0823160e01b81523360048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190612319565b610878565b6040516370a0823160e01b81523360048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108789190612319565b9050808760200151111561088e57602087018190525b60408051610100808201835289516001600160a01b0390811683526020808c0151908401528a84015193830193909352600060608301819052608083015289015160a08083019190915260e0808b015160c08401523390830152890151909116156109b7576040860151156109805785600001516001600160a01b031663d505accf333089602001518a604001518b606001518c608001518d60a001516040518863ffffffff1660e01b815260040161094d9796959493929190612411565b600060405180830381600087803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505050505b6060808901516001600160a01b0316908201526080808901519082015260a088015160c08901516109b2918391610e1e565b6109ca565b6109ca8189606001518a60800151610e1e565b60608801516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190612319565b90506000868211610a4b576000610a55565b610a558783612468565b90508015610b1457610a6b8a60600151826110af565b60608a015160405163573ade8160e01b81526001600160a01b03918216600482015260248101839052600260448201523360648201527f00000000000000000000000000000000000000000000000000000000000000009091169063573ade81906084016020604051808303816000875af1158015610aee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b129190612319565b505b50505050505050505050565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b8152600401610273906122e4565b6001600160a01b038116610baf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610273565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b801580610c845750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190612319565b155b610ca05760405162461bcd60e51b81526004016102739061247f565b6040516001600160a01b038316602482015260448101829052610d0390849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611247565b505050565b6060610d178484600085611319565b90505b9392505050565b6040516001600160a01b038316602482015260448101829052610d0390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526113b7565b60405163617ba03760e01b81526001600160a01b03858116600483015260248201859052838116604483015261ffff831660648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba03790608401600060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b5050505050505050565b600083604051602001610e31919061252d565b60408051601f198184030181526001808452838301909252925060009190602080830190803683370190505090508381600081518110610e7357610e736123fb565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508381600081518110610ec457610ec46123fb565b602090810291909101015260408051600180825281830190925260009181602001602082028036833750505060608801519091506001600160a01b031615610f0d576000610f10565b60025b60ff1681600081518110610f2657610f266123fb565b602090810291909101015260e087015160405163ab9c4b5d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163ab9c4b5d91610f8f913091889188918891908c90611730906004016125f4565b600060405180830381600087803b158015610fa957600080fd5b505af1158015610b12573d6000803e3d6000fd5b6040516335ea6a7560e01b81526001600160a01b0382811660048301526000918291829182917f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110519190612744565b610140810151610120820151610100909201519097919650945092505050565b6040516001600160a01b03808516602483015283166044820152606481018290526110a99085906323b872dd60e01b90608401610ccc565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660248301526000919084169063dd62ed3e90604401602060405180830381865afa15801561111f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111439190612319565b905081811015610d0357610d038361030d565b6000806111778560c001518660a00151868860000151878a6020015161140c565b905061118b856000015186602001516110af565b8451602086015160408088015160e0890151915163573ade8160e01b81526001600160a01b03948516600482015260248101939093526044830152821660648201527f00000000000000000000000000000000000000000000000000000000000000009091169063573ade81906084016020604051808303816000875af115801561121a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123e9190612319565b50949350505050565b600061129c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d089092919063ffffffff16565b805190915015610d0357808060200190518101906112ba9190612867565b610d035760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610273565b60608247101561133b5760405162461bcd60e51b815260040161027390612889565b600080866001600160a01b0316858760405161135791906128cf565b60006040518083038185875af1925050503d8060008114611394576040519150601f19603f3d011682016040523d82523d6000602084013e611399565b606091505b50915091506113aa87838387611a85565b925050505b949350505050565b600061129c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611afb9092919063ffffffff16565b60008060008780602001905181019061142591906128eb565b60405163fb04e17b60e01b81526001600160a01b0380831660048301529294509092507f00000000000000000000000000000000000000000000000000000000000000009091169063fb04e17b90602401602060405180830381865afa158015611493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b79190612867565b6114f65760405162461bcd60e51b815260206004820152601060248201526f494e56414c49445f415547555354555360801b6044820152606401610273565b600061150188611b0a565b60ff169050600061151188611b0a565b60ff16905060006115218a611bcb565b9050600061152e8a611bcb565b90506000611587611543610bb8612710612979565b61154e86600a612a75565b6115589086612a81565b61156388600a612a75565b61156d9086612a81565b611577908d612a81565b6115819190612aa0565b90611c5a565b9050808a11156115e55760405162461bcd60e51b815260206004820152602360248201527f6d6178416d6f756e74546f5377617020657863656564206d617820736c69707060448201526261676560e81b6064820152608401610273565b50506040516370a0823160e01b8152306004820152600093506001600160a01b038b1692506370a082319150602401602060405180830381865afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612319565b9050858110156116a75760405162461bcd60e51b815260206004820181905260248201527f494e53554646494349454e545f42414c414e43455f4245464f52455f535741506044820152606401610273565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190612319565b90506000836001600160a01b031663d2c4b5986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117789190612ac2565b905061178f6001600160a01b038b16826000611c80565b6117a36001600160a01b038b16828a611c80565b8b1561181c5760048c101580156117c75750602085516117c39190612468565b8c11155b6118135760405162461bcd60e51b815260206004820152601d60248201527f544f5f414d4f554e545f4f46465345545f4f55545f4f465f52414e47450000006044820152606401610273565b8660208d018601525b6000846001600160a01b03168660405161183691906128cf565b6000604051808303816000865af19150503d8060008114611873576040519150601f19603f3d011682016040523d82523d6000602084013e611878565b606091505b505090508061188b573d6000803e3d6000fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f69190612319565b90506119028186612468565b9750898811156119545760405162461bcd60e51b815260206004820152601860248201527f57524f4e475f42414c414e43455f41465445525f5357415000000000000000006044820152606401610273565b6040516370a0823160e01b815230600482015260009085906001600160a01b038e16906370a0823190602401602060405180830381865afa15801561199d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c19190612319565b6119cb9190612468565b905089811015611a1d5760405162461bcd60e51b815260206004820152601c60248201527f494e53554646494349454e545f414d4f554e545f5245434549564544000000006044820152606401610273565b8b6001600160a01b03168d6001600160a01b03167fbf77fd13a39d14dc0da779342c14105c38d9a5d0c60f2caa22f5fd1d5525416d8b84604051611a6b929190918252602082015260400190565b60405180910390a350505050505050509695505050505050565b60608315611af1578251611aea576001600160a01b0385163b611aea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610273565b50816113af565b6113af8383611d46565b6060610d178484600085611d70565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6f9190612adf565b9050604d8160ff161115611bc55760405162461bcd60e51b815260206004820152601a60248201527f544f4f5f4d414e595f444543494d414c535f4f4e5f544f4b454e0000000000006044820152606401610273565b92915050565b60405163b3596f0760e01b81526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063b3596f0790602401602060405180830381865afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc59190612319565b600081156113881983900484111517611c7257600080fd5b506127109102611388010490565b801580611cfa5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf89190612319565b155b611d165760405162461bcd60e51b81526004016102739061247f565b6040516001600160a01b038316602482015260448101829052610d0390849063095ea7b360e01b90606401610d4d565b815115611d565781518083602001fd5b8060405162461bcd60e51b81526004016102739190612afc565b606082471015611d925760405162461bcd60e51b815260040161027390612889565b843b611de05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610273565b600080866001600160a01b03168587604051611dfc91906128cf565b60006040518083038185875af1925050503d8060008114611e39576040519150601f19603f3d011682016040523d82523d6000602084013e611e3e565b606091505b50915091506113aa82828660608315611e58575081610d1a565b825115611e685782518084602001fd5b8160405162461bcd60e51b81526004016102739190612afc565b6001600160a01b038116811461030a57600080fd5b600060208284031215611ea957600080fd5b8135610d1a81611e82565b8035611ebf81611e82565b919050565b60008083601f840112611ed657600080fd5b50813567ffffffffffffffff811115611eee57600080fd5b6020830191508360208260051b8501011115611f0957600080fd5b9250929050565b600080600080600080600080600060a08a8c031215611f2e57600080fd5b893567ffffffffffffffff80821115611f4657600080fd5b611f528d838e01611ec4565b909b50995060208c0135915080821115611f6b57600080fd5b611f778d838e01611ec4565b909950975060408c0135915080821115611f9057600080fd5b611f9c8d838e01611ec4565b909750955060608c01359150611fb182611e82565b90935060808b01359080821115611fc757600080fd5b818c0191508c601f830112611fdb57600080fd5b813581811115611fea57600080fd5b8d6020828501011115611ffc57600080fd5b6020830194508093505050509295985092959850929598565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff8111828210171561204f5761204f612015565b60405290565b604051610100810167ffffffffffffffff8111828210171561204f5761204f612015565b6040516101e0810167ffffffffffffffff8111828210171561204f5761204f612015565b604051601f8201601f1916810167ffffffffffffffff811182821017156120c6576120c6612015565b604052919050565b600067ffffffffffffffff8211156120e8576120e8612015565b50601f01601f191660200190565b600082601f83011261210757600080fd5b813561211a612115826120ce565b61209d565b81815284602083860101111561212f57600080fd5b816020850160208301376000918101602001919091529392505050565b60ff8116811461030a57600080fd5b600060c0828403121561216d57600080fd5b60405160c0810181811067ffffffffffffffff8211171561219057612190612015565b60405290508082356121a181611e82565b80825250602083013560208201526040830135604082015260608301356121c78161214c565b806060830152506080830135608082015260a083013560a08201525092915050565b60008060006101a084860312156121ff57600080fd5b833567ffffffffffffffff8082111561221757600080fd5b90850190610120828803121561222c57600080fd5b61223461202b565b61223d83611eb4565b8152602083013560208201526040830135604082015261225f60608401611eb4565b60608201526080830135608082015261227a60a08401611eb4565b60a082015260c083013560c082015260e083013560e082015261010080840135838111156122a757600080fd5b6122b38a8287016120f6565b8284015250508095505050506122cc856020860161215b565b91506122db8560e0860161215b565b90509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561232b57600080fd5b5051919050565b60006020828403121561234457600080fd5b813567ffffffffffffffff8082111561235c57600080fd5b90830190610100828603121561237157600080fd5b612379612055565b61238283611eb4565b815260208301356020820152604083013560408201526123a460608401611eb4565b60608201526080830135608082015260a0830135828111156123c557600080fd5b6123d1878286016120f6565b60a08301525060c083013560c08201526123ed60e08401611eb4565b60e082015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b634e487b7160e01b600052601160045260246000fd5b60008282101561247a5761247a612452565b500390565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60005b838110156124f05781810151838201526020016124d8565b838111156110a95750506000910152565b600081518084526125198160208601602086016124d5565b601f01601f19169290920160200192915050565b60208152600060018060a01b03808451166020840152602084015160408401526040840151606084015280606085015116608084015250608083015160a083015260a08301516101008060c085015261258a610120850183612501565b915060c085015160e085015260e08501516125af828601826001600160a01b03169052565b5090949350505050565b600081518084526020808501945080840160005b838110156125e9578151875295820195908201906001016125cd565b509495945050505050565b6001600160a01b03888116825260e0602080840182905289519184018290526000928a820192909190610100860190855b81811015612643578551851683529483019491830191600101612625565b50508581036040870152612657818c6125b9565b9350505050828103606084015261266e81886125b9565b6001600160a01b0387166080850152905082810360a08401526126918186612501565b9150506126a460c083018461ffff169052565b98975050505050505050565b6000602082840312156126c257600080fd5b6040516020810181811067ffffffffffffffff821117156126e5576126e5612015565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114611ebf57600080fd5b805164ffffffffff81168114611ebf57600080fd5b805161ffff81168114611ebf57600080fd5b8051611ebf81611e82565b60006101e0828403121561275757600080fd5b61275f612079565b61276984846126b0565b8152612777602084016126f2565b6020820152612788604084016126f2565b6040820152612799606084016126f2565b60608201526127aa608084016126f2565b60808201526127bb60a084016126f2565b60a08201526127cc60c08401612712565b60c08201526127dd60e08401612727565b60e08201526101006127f0818501612739565b90820152610120612802848201612739565b90820152610140612814848201612739565b90820152610160612826848201612739565b908201526101806128388482016126f2565b908201526101a061284a8482016126f2565b908201526101c061285c8482016126f2565b908201529392505050565b60006020828403121561287957600080fd5b81518015158114610d1a57600080fd5b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b600082516128e18184602087016124d5565b9190910192915050565b600080604083850312156128fe57600080fd5b825167ffffffffffffffff81111561291557600080fd5b8301601f8101851361292657600080fd5b8051612934612115826120ce565b81815286602083850101111561294957600080fd5b61295a8260208301602086016124d5565b809450505050602083015161296e81611e82565b809150509250929050565b6000821982111561298c5761298c612452565b500190565b600181815b808511156129cc5781600019048211156129b2576129b2612452565b808516156129bf57918102915b93841c9390800290612996565b509250929050565b6000826129e357506001611bc5565b816129f057506000611bc5565b8160018114612a065760028114612a1057612a2c565b6001915050611bc5565b60ff841115612a2157612a21612452565b50506001821b611bc5565b5060208310610133831016604e8410600b8410161715612a4f575081810a611bc5565b612a598383612991565b8060001904821115612a6d57612a6d612452565b029392505050565b6000610d1a83836129d4565b6000816000190483118215151615612a9b57612a9b612452565b500290565b600082612abd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612ad457600080fd5b8151610d1a81611e82565b600060208284031215612af157600080fd5b8151610d1a8161214c565b602081526000610d1a602083018461250156fea2646970667358221220e8f0355991cb20062519067af173973a273e11f3e5f4fc7455bb71ec5af9fc5964736f6c634300080a00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0'; type ParaSwapDebtSwapAdapterConstructorParams = - | [signer?: Signer] - | ConstructorParameters; + | [signer?: Signer] + | ConstructorParameters; const isSuperArgs = ( - xs: ParaSwapDebtSwapAdapterConstructorParams + xs: ParaSwapDebtSwapAdapterConstructorParams, ): xs is ConstructorParameters => xs.length > 1; export class ParaSwapDebtSwapAdapter__factory extends ContractFactory { - constructor(...args: ParaSwapDebtSwapAdapterConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } + constructor(...args: ParaSwapDebtSwapAdapterConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); } + } - override deploy( - addressesProvider: string, - pool: string, - augustusRegistry: string, - owner: string, - overrides?: Overrides & { from?: string } - ): Promise { - return super.deploy( - addressesProvider, - pool, - augustusRegistry, - owner, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - addressesProvider: string, - pool: string, - augustusRegistry: string, - owner: string, - overrides?: Overrides & { from?: string } - ): TransactionRequest { - return super.getDeployTransaction( - addressesProvider, - pool, - augustusRegistry, - owner, - overrides || {} - ); - } - override attach(address: string): ParaSwapDebtSwapAdapter { - return super.attach(address) as ParaSwapDebtSwapAdapter; - } - override connect(signer: Signer): ParaSwapDebtSwapAdapter__factory { - return super.connect(signer) as ParaSwapDebtSwapAdapter__factory; - } + override deploy( + addressesProvider: string, + pool: string, + augustusRegistry: string, + owner: string, + overrides?: Overrides & { from?: string }, + ): Promise { + return super.deploy( + addressesProvider, + pool, + augustusRegistry, + owner, + overrides || {}, + ) as Promise; + } + override getDeployTransaction( + addressesProvider: string, + pool: string, + augustusRegistry: string, + owner: string, + overrides?: Overrides & { from?: string }, + ): TransactionRequest { + return super.getDeployTransaction( + addressesProvider, + pool, + augustusRegistry, + owner, + overrides || {}, + ); + } + override attach(address: string): ParaSwapDebtSwapAdapter { + return super.attach(address) as ParaSwapDebtSwapAdapter; + } + override connect(signer: Signer): ParaSwapDebtSwapAdapter__factory { + return super.connect(signer) as ParaSwapDebtSwapAdapter__factory; + } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ParaSwapDebtSwapAdapterInterface { - return new utils.Interface(_abi) as ParaSwapDebtSwapAdapterInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ParaSwapDebtSwapAdapter { - return new Contract( - address, - _abi, - signerOrProvider - ) as ParaSwapDebtSwapAdapter; - } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ParaSwapDebtSwapAdapterInterface { + return new utils.Interface(_abi) as ParaSwapDebtSwapAdapterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider, + ): ParaSwapDebtSwapAdapter { + return new Contract( + address, + _abi, + signerOrProvider, + ) as ParaSwapDebtSwapAdapter; + } }