diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 97ef4aade..1ba931b50 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -2,7 +2,7 @@ name: Build description: Build runs: using: "composite" - steps: + steps: - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: node-version-file: '.nvmrc' @@ -15,9 +15,6 @@ runs: - name: lint shell: sh run: yarn lint - - name: cover - shell: sh - run: yarn cover - name: build shell: sh run: yarn build diff --git a/packages/contract-helpers/CHANGELOG.md b/packages/contract-helpers/CHANGELOG.md index 75ae74e5b..395cc7ef7 100644 --- a/packages/contract-helpers/CHANGELOG.md +++ b/packages/contract-helpers/CHANGELOG.md @@ -1,40 +1,32 @@ # Change Log -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +All notable changes to this project will be documented in this file. See +[Conventional Commits](https://conventionalcommits.org) for commit guidelines. # 1.16.0 (2023-04-17) - ### Features -* update borrow methods SDK ([#527](https://github.com/aave/aave-utilities/issues/527)) ([da31b83](https://github.com/aave/aave-utilities/commit/da31b836dd7a85da0dbfe664b67612b1f261c7a7)) - - - - +- update borrow methods SDK + ([#527](https://github.com/aave/aave-utilities/issues/527)) + ([da31b83](https://github.com/aave/aave-utilities/commit/da31b836dd7a85da0dbfe664b67612b1f261c7a7)) # 1.15.0 (2023-04-12) - ### Features -* add Scroll Alpha chainId ([#528](https://github.com/aave/aave-utilities/issues/528)) ([3418c70](https://github.com/aave/aave-utilities/commit/3418c7087796397ed535fc7a3522445fb44f94c5)) - - - - +- add Scroll Alpha chainId + ([#528](https://github.com/aave/aave-utilities/issues/528)) + ([3418c70](https://github.com/aave/aave-utilities/commit/3418c7087796397ed535fc7a3522445fb44f94c5)) # 1.14.0 (2023-04-05) - ### Features -* tx bundle refactor ([#514](https://github.com/aave/aave-utilities/issues/514)) ([fc5c937](https://github.com/aave/aave-utilities/commit/fc5c9378b48a14a31df9fdbe435095a3e81390a2)), closes [#524](https://github.com/aave/aave-utilities/issues/524) [#504](https://github.com/aave/aave-utilities/issues/504) - - - - +- tx bundle refactor ([#514](https://github.com/aave/aave-utilities/issues/514)) + ([fc5c937](https://github.com/aave/aave-utilities/commit/fc5c9378b48a14a31df9fdbe435095a3e81390a2)), + closes [#524](https://github.com/aave/aave-utilities/issues/524) + [#504](https://github.com/aave/aave-utilities/issues/504) # Change Log @@ -45,10 +37,6 @@ All notable changes to this project will be documented in this file. See **Note:** Version bump only for package @aave/contract-helpers - - - - ## 1.13.6 (2023-03-03) **Note:** Version bump only for package @aave/contract-helpers diff --git a/packages/contract-helpers/src/index.ts b/packages/contract-helpers/src/index.ts index 73b9973b5..645aea9da 100644 --- a/packages/contract-helpers/src/index.ts +++ b/packages/contract-helpers/src/index.ts @@ -27,6 +27,7 @@ export * from './synthetix-contract'; export * from './baseDebtToken-contract'; export * from './v3-migration-contract'; export * from './erc20-2612'; +export * from './tx-builder'; // commons export * from './commons/types'; diff --git a/packages/contract-helpers/src/tx-builder/index.ts b/packages/contract-helpers/src/tx-builder/index.ts new file mode 100644 index 000000000..b73c8e9af --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/index.ts @@ -0,0 +1,376 @@ +import { Signature, SignatureLike, splitSignature } from '@ethersproject/bytes'; +import { PopulatedTransaction, providers, utils } from 'ethers'; +import BaseService from '../commons/BaseService'; +import { tEthereumAddress } from '../commons/types'; +import { + ApproveType, + ERC20Service, + IERC20ServiceInterface, + TokenOwner, +} from '../erc20-contract'; +import { + ActionStruct, + TxBuilder, + TxBuilderInterface, +} from './typechain/TxBuilder'; +import { TxBuilder__factory } from './typechain/TxBuilder__factory'; + +export interface TxBuilderServiceInterface { + txDataBuilder: TxDataBuilder; +} + +export type SignedCreditDelegationParams = { + user: tEthereumAddress; + target: tEthereumAddress; + token: tEthereumAddress; + interestRateMode: 1 | 2; + delegationAmount: string; + deadline: string; + signature: string; +}; + +export type TxDataBuilder = { + getApprovedAmount: ({ user, token }: TokenOwner) => Promise; + generateSignedCreditDelegationTx: ( + params: SignedCreditDelegationParams, + ) => PopulatedTransaction; + encodeActions: (actions: Action[]) => string; + generateTxData: ( + user: tEthereumAddress, + actions: Action[], + ) => PopulatedTransaction; +}; + +export type TransferAction = { + type: 'Transfer'; + target: tEthereumAddress; + reserveAddress: tEthereumAddress; + amount: string; +}; + +export type TransferWithPermitAction = { + type: 'TransferWithPermit'; + target: tEthereumAddress; + reserveAddress: tEthereumAddress; + amount: string; + signature: SignatureLike; + deadline: string; +}; + +export type SupplyAction = { + type: 'Supply'; + target: tEthereumAddress; + reserveAddress: tEthereumAddress; + amount: string; +}; + +export type CreditDelegationWithSig = { + type: 'CreditDelegationWithSig'; + target: tEthereumAddress; + reserveAddress: tEthereumAddress; + interestRateMode: 1 | 2; + delegationAmount: string; + signature: SignatureLike; + deadline: string; +}; + +export type BorrowAction = { + type: 'Borrow'; + target: tEthereumAddress; + reserveAddress: tEthereumAddress; + amount: string; + interestRateMode: 1 | 2; +}; + +export type Action = + | TransferAction + | TransferWithPermitAction + | SupplyAction + | BorrowAction + | CreditDelegationWithSig; + +export function isCreditDelegationWithSig( + action: Action, +): action is CreditDelegationWithSig { + return action.type === 'CreditDelegationWithSig'; +} + +export function isTransferWithPermit( + action: Action, +): action is TransferWithPermitAction { + return action.type === 'TransferWithPermit'; +} + +function isTransferIn(action: Action): action is TransferAction { + return action.type === 'Transfer'; +} + +function isSupply(action: Action): action is SupplyAction { + return action.type === 'Supply'; +} + +function isBorrow(action: Action): action is BorrowAction { + return action.type === 'Borrow'; +} + +export class TxBuilderService + extends BaseService + implements TxBuilderServiceInterface +{ + readonly TX_BUILDER_ADDRESS: tEthereumAddress; + readonly erc20Service: IERC20ServiceInterface; + readonly contractInterface: TxBuilderInterface; + + txDataBuilder: TxDataBuilder; + + constructor( + provider: providers.Provider, + TX_BUILDER_ADDRESS: tEthereumAddress, + ) { + super(provider, TxBuilder__factory); + this.TX_BUILDER_ADDRESS = TX_BUILDER_ADDRESS; + this.erc20Service = new ERC20Service(provider); + this.contractInterface = TxBuilder__factory.createInterface(); + + this.txDataBuilder = { + generateSignedCreditDelegationTx: ({ + user, + target, + token, + interestRateMode, + delegationAmount, + deadline, + signature, + }) => { + const decomposedSignature: Signature = splitSignature(signature); + const populatedTx: PopulatedTransaction = {}; + const fragment = this.contractInterface.getFunction('executeActions'); + const txData = utils.defaultAbiCoder.encode( + [fragment.inputs[0]], + [ + { + target, + data: utils.defaultAbiCoder.encode( + [ + 'address', + 'uint256', + 'uint256', + 'uint256', + 'uint8', + 'bytes32', + 'bytes32', + ], + [ + token, + interestRateMode, + delegationAmount, + deadline, + decomposedSignature.v, + decomposedSignature.r, + decomposedSignature.s, + ], + ), + }, + ], + ); + + populatedTx.data = txData; + populatedTx.from = user; + populatedTx.to = this.TX_BUILDER_ADDRESS; + + return populatedTx; + }, + getApprovedAmount: async (props: TokenOwner): Promise => { + const spender = this.TX_BUILDER_ADDRESS; + const amount = await this.erc20Service.approvedAmount({ + ...props, + spender, + }); + return { + ...props, + spender, + amount: amount.toString(), + }; + }, + encodeActions: (actions: Action[]) => { + const actionStructs: ActionStruct[] = []; + for (const action of actions) { + if (isTransferIn(action)) { + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + ['address', 'uint256'], + [action.reserveAddress, action.amount], + ), + }); + } else if (isTransferWithPermit(action)) { + const { v, r, s } = splitSignature(action.signature); + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + [ + 'address', + 'uint256', + 'uint256', + 'uint256', + 'uint8', + 'bytes32', + 'bytes32', + ], + [ + action.reserveAddress, + action.amount, + action.amount, + action.deadline, + v, + r, + s, + ], + ), + }); + } else if (isSupply(action)) { + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + ['address', 'uint256'], + [action.reserveAddress, action.amount], + ), + }); + } else if (isBorrow(action)) { + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + ['address', 'uint256', 'uint256'], + [action.reserveAddress, action.amount, action.interestRateMode], + ), + }); + } else if (isCreditDelegationWithSig(action)) { + const { v, r, s } = splitSignature(action.signature); + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + [ + 'address', + 'uint256', + 'uint256', + 'uint256', + 'uint8', + 'bytes32', + 'bytes32', + ], + [ + action.reserveAddress, + action.interestRateMode, + action.delegationAmount, + action.deadline, + v, + r, + s, + ], + ), + }); + } + } + + const fragment = this.contractInterface.getFunction('executeActions'); + return utils.defaultAbiCoder.encode( + [fragment.inputs[0]], + [actionStructs.reverse()], + ); + }, + generateTxData: (user: tEthereumAddress, actions: Action[]) => { + const actionTx: PopulatedTransaction = {}; + + const actionStructs: ActionStruct[] = []; + for (const action of actions) { + if (isTransferIn(action)) { + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + ['address', 'uint256'], + [action.reserveAddress, action.amount], + ), + }); + } else if (isSupply(action)) { + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + ['address', 'uint256'], + [action.reserveAddress, action.amount], + ), + }); + } else if (isBorrow(action)) { + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + ['address', 'uint256', 'uint256'], + [action.reserveAddress, action.amount, action.interestRateMode], + ), + }); + } else if (isCreditDelegationWithSig(action)) { + const { v, r, s } = splitSignature(action.signature); + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + [ + 'address', + 'uint256', + 'uint256', + 'uint256', + 'uint8', + 'bytes32', + 'bytes32', + ], + [ + action.reserveAddress, + action.interestRateMode, + action.delegationAmount, + action.deadline, + v, + r, + s, + ], + ), + }); + } else if (isTransferWithPermit(action)) { + const { v, r, s } = splitSignature(action.signature); + actionStructs.push({ + target: action.target, + data: utils.defaultAbiCoder.encode( + [ + 'address', + 'uint256', + 'uint256', + 'uint256', + 'uint8', + 'bytes32', + 'bytes32', + ], + [ + action.reserveAddress, + action.amount, + action.amount, + action.deadline, + v, + r, + s, + ], + ), + }); + } + } + + const txData = this.contractInterface.encodeFunctionData( + 'executeActions', + [actionStructs.reverse()], + ); + + actionTx.to = this.TX_BUILDER_ADDRESS; + actionTx.from = user; + actionTx.data = txData; + + return actionTx; + }, + }; + } +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/BorrowFromSelfTarget.ts b/packages/contract-helpers/src/tx-builder/typechain/BorrowFromSelfTarget.ts new file mode 100644 index 000000000..98c346277 --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/BorrowFromSelfTarget.ts @@ -0,0 +1,584 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { + FunctionFragment, + Result, + EventFragment, +} from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from './common'; + +export type ActionStruct = { + target: PromiseOrValue; + data: PromiseOrValue; +}; + +export type ActionStructOutput = [string, string] & { + target: string; + data: string; +}; + +export interface BorrowFromSelfTargetInterface extends utils.Interface { + functions: { + 'AAVE_POOL()': FunctionFragment; + 'REFERRAL_CODE()': FunctionFragment; + 'aTokenMap(address)': FunctionFragment; + 'acceptOwnership()': FunctionFragment; + 'debtTokenMap(address,uint256)': FunctionFragment; + 'execute(address,bytes,(address,bytes)[])': FunctionFragment; + 'nonces(address)': FunctionFragment; + 'owner()': FunctionFragment; + 'paused()': FunctionFragment; + 'pendingOwner()': FunctionFragment; + 'renounceOwnership()': FunctionFragment; + 'targetWhitelisted(address)': FunctionFragment; + 'tokenBalanceIn(address)': FunctionFragment; + 'tokenWhitelisted(address)': FunctionFragment; + 'transferOwnership(address)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'AAVE_POOL' + | 'REFERRAL_CODE' + | 'aTokenMap' + | 'acceptOwnership' + | 'debtTokenMap' + | 'execute' + | 'nonces' + | 'owner' + | 'paused' + | 'pendingOwner' + | 'renounceOwnership' + | 'targetWhitelisted' + | 'tokenBalanceIn' + | 'tokenWhitelisted' + | 'transferOwnership', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'AAVE_POOL', values?: undefined): string; + encodeFunctionData( + functionFragment: 'REFERRAL_CODE', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'aTokenMap', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'acceptOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'debtTokenMap', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'execute', + values: [PromiseOrValue, PromiseOrValue, ActionStruct[]], + ): string; + encodeFunctionData( + functionFragment: 'nonces', + values: [PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'paused', values?: undefined): string; + encodeFunctionData( + functionFragment: 'pendingOwner', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'renounceOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'targetWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenBalanceIn', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferOwnership', + values: [PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'AAVE_POOL', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'REFERRAL_CODE', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'aTokenMap', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'acceptOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'debtTokenMap', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'execute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'pendingOwner', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'renounceOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'targetWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenBalanceIn', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'transferOwnership', + data: BytesLike, + ): Result; + + events: { + 'OwnershipTransferStarted(address,address)': EventFragment; + 'OwnershipTransferred(address,address)': EventFragment; + 'Paused(address)': EventFragment; + 'Unpaused(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferStarted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment; +} + +export interface OwnershipTransferStartedEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferStartedEvent = TypedEvent< + [string, string], + OwnershipTransferStartedEventObject +>; + +export type OwnershipTransferStartedEventFilter = + TypedEventFilter; + +export interface OwnershipTransferredEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferredEvent = TypedEvent< + [string, string], + OwnershipTransferredEventObject +>; + +export type OwnershipTransferredEventFilter = + TypedEventFilter; + +export interface PausedEventObject { + account: string; +} +export type PausedEvent = TypedEvent<[string], PausedEventObject>; + +export type PausedEventFilter = TypedEventFilter; + +export interface UnpausedEventObject { + account: string; +} +export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>; + +export type UnpausedEventFilter = TypedEventFilter; + +export interface BorrowFromSelfTarget extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: BorrowFromSelfTargetInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter, + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter, + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + AAVE_POOL(overrides?: CallOverrides): Promise<[string]>; + + REFERRAL_CODE(overrides?: CallOverrides): Promise<[number]>; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + paused(overrides?: CallOverrides): Promise<[boolean]>; + + pendingOwner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership(overrides?: CallOverrides): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: CallOverrides, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'OwnershipTransferStarted(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + OwnershipTransferStarted( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + + 'OwnershipTransferred(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + + 'Paused(address)'(account?: null): PausedEventFilter; + Paused(account?: null): PausedEventFilter; + + 'Unpaused(address)'(account?: null): UnpausedEventFilter; + Unpaused(account?: null): UnpausedEventFilter; + }; + + estimateGas: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/CreditDelegationWithSigTarget.ts b/packages/contract-helpers/src/tx-builder/typechain/CreditDelegationWithSigTarget.ts new file mode 100644 index 000000000..297368a3b --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/CreditDelegationWithSigTarget.ts @@ -0,0 +1,585 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { + FunctionFragment, + Result, + EventFragment, +} from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from './common'; + +export type ActionStruct = { + target: PromiseOrValue; + data: PromiseOrValue; +}; + +export type ActionStructOutput = [string, string] & { + target: string; + data: string; +}; + +export interface CreditDelegationWithSigTargetInterface + extends utils.Interface { + functions: { + 'AAVE_POOL()': FunctionFragment; + 'REFERRAL_CODE()': FunctionFragment; + 'aTokenMap(address)': FunctionFragment; + 'acceptOwnership()': FunctionFragment; + 'debtTokenMap(address,uint256)': FunctionFragment; + 'execute(address,bytes,(address,bytes)[])': FunctionFragment; + 'nonces(address)': FunctionFragment; + 'owner()': FunctionFragment; + 'paused()': FunctionFragment; + 'pendingOwner()': FunctionFragment; + 'renounceOwnership()': FunctionFragment; + 'targetWhitelisted(address)': FunctionFragment; + 'tokenBalanceIn(address)': FunctionFragment; + 'tokenWhitelisted(address)': FunctionFragment; + 'transferOwnership(address)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'AAVE_POOL' + | 'REFERRAL_CODE' + | 'aTokenMap' + | 'acceptOwnership' + | 'debtTokenMap' + | 'execute' + | 'nonces' + | 'owner' + | 'paused' + | 'pendingOwner' + | 'renounceOwnership' + | 'targetWhitelisted' + | 'tokenBalanceIn' + | 'tokenWhitelisted' + | 'transferOwnership', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'AAVE_POOL', values?: undefined): string; + encodeFunctionData( + functionFragment: 'REFERRAL_CODE', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'aTokenMap', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'acceptOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'debtTokenMap', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'execute', + values: [PromiseOrValue, PromiseOrValue, ActionStruct[]], + ): string; + encodeFunctionData( + functionFragment: 'nonces', + values: [PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'paused', values?: undefined): string; + encodeFunctionData( + functionFragment: 'pendingOwner', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'renounceOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'targetWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenBalanceIn', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferOwnership', + values: [PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'AAVE_POOL', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'REFERRAL_CODE', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'aTokenMap', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'acceptOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'debtTokenMap', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'execute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'pendingOwner', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'renounceOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'targetWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenBalanceIn', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'transferOwnership', + data: BytesLike, + ): Result; + + events: { + 'OwnershipTransferStarted(address,address)': EventFragment; + 'OwnershipTransferred(address,address)': EventFragment; + 'Paused(address)': EventFragment; + 'Unpaused(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferStarted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment; +} + +export interface OwnershipTransferStartedEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferStartedEvent = TypedEvent< + [string, string], + OwnershipTransferStartedEventObject +>; + +export type OwnershipTransferStartedEventFilter = + TypedEventFilter; + +export interface OwnershipTransferredEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferredEvent = TypedEvent< + [string, string], + OwnershipTransferredEventObject +>; + +export type OwnershipTransferredEventFilter = + TypedEventFilter; + +export interface PausedEventObject { + account: string; +} +export type PausedEvent = TypedEvent<[string], PausedEventObject>; + +export type PausedEventFilter = TypedEventFilter; + +export interface UnpausedEventObject { + account: string; +} +export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>; + +export type UnpausedEventFilter = TypedEventFilter; + +export interface CreditDelegationWithSigTarget extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: CreditDelegationWithSigTargetInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter, + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter, + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + AAVE_POOL(overrides?: CallOverrides): Promise<[string]>; + + REFERRAL_CODE(overrides?: CallOverrides): Promise<[number]>; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + paused(overrides?: CallOverrides): Promise<[boolean]>; + + pendingOwner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership(overrides?: CallOverrides): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: CallOverrides, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'OwnershipTransferStarted(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + OwnershipTransferStarted( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + + 'OwnershipTransferred(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + + 'Paused(address)'(account?: null): PausedEventFilter; + Paused(account?: null): PausedEventFilter; + + 'Unpaused(address)'(account?: null): UnpausedEventFilter; + Unpaused(account?: null): UnpausedEventFilter; + }; + + estimateGas: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/CreditDelegationWithSigTarget__factory.ts b/packages/contract-helpers/src/tx-builder/typechain/CreditDelegationWithSigTarget__factory.ts new file mode 100644 index 000000000..a566e35d3 --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/CreditDelegationWithSigTarget__factory.ts @@ -0,0 +1,392 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from 'ethers'; +import type { Provider, TransactionRequest } from '@ethersproject/providers'; +import type { PromiseOrValue } from './common'; +import type { + CreditDelegationWithSigTarget, + CreditDelegationWithSigTargetInterface, +} from './CreditDelegationWithSigTarget'; + +const _abi = [ + { + inputs: [ + { + internalType: 'address', + name: 'aavePool', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnershipTransferStarted', + 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: false, + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'Paused', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'Unpaused', + type: 'event', + }, + { + inputs: [], + name: 'AAVE_POOL', + outputs: [ + { + internalType: 'contract IPool', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REFERRAL_CODE', + outputs: [ + { + internalType: 'uint16', + name: '', + type: 'uint16', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'aTokenMap', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'debtTokenMap', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'originator', + type: 'address', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + { + components: [ + { + internalType: 'address', + name: 'target', + type: 'address', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + internalType: 'struct Action[]', + name: 'nextActions', + type: 'tuple[]', + }, + ], + name: 'execute', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'nonces', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'paused', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'pendingOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'targetWhitelisted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'tokenBalanceIn', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'tokenWhitelisted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +] as const; + +const _bytecode = + '0x60a060405234801561001057600080fd5b506040516112de3803806112de83398101604081905261002f9161011a565b80610039336100a3565b6001805460ff60a01b191690556001600160a01b0381166100915760405162461bcd60e51b815260206004820152600e60248201526d2d22a927afa827a7a62fa0a2222960911b604482015260640160405180910390fd5b6001600160a01b03166080525061014a565b600180546001600160a01b03191690556100c7816100ca602090811b6105d317901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561012c57600080fd5b81516001600160a01b038116811461014357600080fd5b9392505050565b60805161116c6101726000396000818160ff0152818161067f015261071e015261116c6000f3fe6080604052600436106100e85760003560e01c80638d59a8cd1161008a578063f02fdad711610059578063f02fdad7146102a5578063f2fde38b146102e6578063fd266c4114610306578063ff8507e81461033c57600080fd5b80638d59a8cd1461020c5780638da5cb5b1461023c57806397f4097a1461025a578063e30c39781461028757600080fd5b80635c975abb116100c65780635c975abb1461017c578063715018a6146101a757806379ba5097146101bc5780637ecebe00146101d157600080fd5b806308a01675146100ed5780633583849a1461013e5780634d16f9c814610167575b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014a57600080fd5b506101546111c281565b60405161ffff9091168152602001610135565b61017a610175366004610c09565b61036c565b005b34801561018857600080fd5b50600154600160a01b900460ff165b6040519015158152602001610135565b3480156101b357600080fd5b5061017a6104d4565b3480156101c857600080fd5b5061017a6104e8565b3480156101dd57600080fd5b506101fe6101ec366004610d4b565b60076020526000908152604090205481565b604051908152602001610135565b34801561021857600080fd5b50610197610227366004610d4b565b60026020526000908152604090205460ff1681565b34801561024857600080fd5b506000546001600160a01b0316610121565b34801561026657600080fd5b506101fe610275366004610d4b565b60046020526000908152604090205481565b34801561029357600080fd5b506001546001600160a01b0316610121565b3480156102b157600080fd5b506101216102c0366004610d68565b60066020908152600092835260408084209091529082529020546001600160a01b031681565b3480156102f257600080fd5b5061017a610301366004610d4b565b610562565b34801561031257600080fd5b50610121610321366004610d4b565b6005602052600090815260409020546001600160a01b031681565b34801561034857600080fd5b50610197610357366004610d4b565b60036020526000908152604090205460ff1681565b60008060008060008060008880602001905181019061038b9190610d94565b6001600160a01b038716600090815260036020526040902054969d50949b5092995090975095509350915060ff166104275760405162461bcd60e51b815260206004820152603460248201527f43726564697444656c65676174696f6e576974685369675461726765743a20546044820152731bdad95b881b9bdd081dda1a5d195b1a5cdd195960621b60648201526084015b60405180910390fd5b60006104338888610623565b60405163016a5aab60e31b81526001600160a01b038d81166004830152306024830152604482018990526064820188905260ff8716608483015260a4820186905260c4820185905291925090821690630b52d5589060e401600060405180830381600087803b1580156104a557600080fd5b505af11580156104b9573d6000803e3d6000fd5b505050506104c78b8a61082b565b5050505050505050505050565b6104dc61092e565b6104e66000610988565b565b60015433906001600160a01b031681146105565760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161041e565b61055f81610988565b50565b61056a61092e565b600180546001600160a01b0383166001600160a01b0319909116811790915561059b6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0380831660009081526006602090815260408083208584529091528120549091168015610658579050610825565b826001036106f7576040516335ea6a7560e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa1580156106c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106eb9190610e9e565b610120015190506107e9565b82600203610796576040516335ea6a7560e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a9190610e9e565b610140015190506107e9565b60405162461bcd60e51b815260206004820152602260248201527f416374696f6e4578656375746f72426173653a205a65726f2072617465206d6f604482015261646560f01b606482015260840161041e565b6001600160a01b038481166000908152600660209081526040808320878452909152902080546001600160a01b03191691831691909117905590505b92915050565b8051801561092957600082610841600184610fc1565b8151811061085157610851610fe2565b60209081029190910181015180516001600160a01b0381166000908152600290935260409092205490925060ff166108c45760405162461bcd60e51b815260206004820152601660248201527515105491d15517d393d517d5d2125511531254d5115160521b604482015260640161041e565b6001830384526000858360200151866040516024016108e593929190611048565b60408051601f198184030181529190526020810180516001600160e01b03166309a2df3960e31b17905290506109246001600160a01b038316826109a1565b505050505b505050565b6000546001600160a01b031633146104e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041e565b600180546001600160a01b031916905561055f816105d3565b60606109c68383604051806060016040528060278152602001611110602791396109cd565b9392505050565b6060600080856001600160a01b0316856040516109ea91906110e0565b600060405180830381855af49150503d8060008114610a25576040519150601f19603f3d011682016040523d82523d6000602084013e610a2a565b606091505b5091509150610a3b86838387610a45565b9695505050505050565b60608315610ab4578251600003610aad576001600160a01b0385163b610aad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041e565b5081610abe565b610abe8383610ac6565b949350505050565b815115610ad65781518083602001fd5b8060405162461bcd60e51b815260040161041e91906110fc565b6001600160a01b038116811461055f57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610b3e57610b3e610b05565b60405290565b6040516101e0810167ffffffffffffffff81118282101715610b3e57610b3e610b05565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b9157610b91610b05565b604052919050565b600082601f830112610baa57600080fd5b813567ffffffffffffffff811115610bc457610bc4610b05565b610bd7601f8201601f1916602001610b68565b818152846020838601011115610bec57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215610c1e57600080fd5b8335610c2981610af0565b925060208481013567ffffffffffffffff80821115610c4757600080fd5b610c5388838901610b99565b94506040870135915080821115610c6957600080fd5b818701915087601f830112610c7d57600080fd5b813581811115610c8f57610c8f610b05565b8060051b610c9e858201610b68565b918252838101850191858101908b841115610cb857600080fd5b86860192505b83831015610d3a57823585811115610cd65760008081fd5b86016040818e03601f19011215610ced5760008081fd5b610cf5610b1b565b88820135610d0281610af0565b8152604082013587811115610d175760008081fd5b610d258f8b83860101610b99565b828b0152508352509186019190860190610cbe565b809750505050505050509250925092565b600060208284031215610d5d57600080fd5b81356109c681610af0565b60008060408385031215610d7b57600080fd5b8235610d8681610af0565b946020939093013593505050565b600080600080600080600060e0888a031215610daf57600080fd5b8751610dba81610af0565b80975050602088015195506040880151945060608801519350608088015160ff81168114610de757600080fd5b8093505060a0880151915060c0880151905092959891949750929550565b600060208284031215610e1757600080fd5b6040516020810181811067ffffffffffffffff82111715610e3a57610e3a610b05565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114610e6757600080fd5b919050565b805164ffffffffff81168114610e6757600080fd5b805161ffff81168114610e6757600080fd5b8051610e6781610af0565b60006101e08284031215610eb157600080fd5b610eb9610b44565b610ec38484610e05565b8152610ed160208401610e47565b6020820152610ee260408401610e47565b6040820152610ef360608401610e47565b6060820152610f0460808401610e47565b6080820152610f1560a08401610e47565b60a0820152610f2660c08401610e6c565b60c0820152610f3760e08401610e81565b60e0820152610100610f4a818501610e93565b90820152610120610f5c848201610e93565b90820152610140610f6e848201610e93565b90820152610160610f80848201610e93565b90820152610180610f92848201610e47565b908201526101a0610fa4848201610e47565b908201526101c0610fb6848201610e47565b908201529392505050565b8181038181111561082557634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60005b83811015611013578181015183820152602001610ffb565b50506000910152565b60008151808452611034816020860160208601610ff8565b601f01601f19169290920160200192915050565b600060018060a01b038086168352602060608185015261106b606085018761101c565b6040858203818701528187518084528484019150848160051b850101858a0160005b838110156110ce57868303601f19018552815180518a1684528801518884018790526110bb8785018261101c565b958901959350509087019060010161108d565b50909c9b505050505050505050505050565b600082516110f2818460208701610ff8565b9190910192915050565b6020815260006109c6602083018461101c56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122003b4bf299a9b071ad34c7297b5ba21f378ce2cf982d7feb6ab96876bd493633d64736f6c63430008110033'; + +type CreditDelegationWithSigTargetConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: CreditDelegationWithSigTargetConstructorParams, +): xs is ConstructorParameters => xs.length > 1; + +export class CreditDelegationWithSigTarget__factory extends ContractFactory { + constructor(...args: CreditDelegationWithSigTargetConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + aavePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise { + return super.deploy( + aavePool, + overrides || {}, + ) as Promise; + } + override getDeployTransaction( + aavePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): TransactionRequest { + return super.getDeployTransaction(aavePool, overrides || {}); + } + override attach(address: string): CreditDelegationWithSigTarget { + return super.attach(address) as CreditDelegationWithSigTarget; + } + override connect(signer: Signer): CreditDelegationWithSigTarget__factory { + return super.connect(signer) as CreditDelegationWithSigTarget__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): CreditDelegationWithSigTargetInterface { + return new utils.Interface(_abi) as CreditDelegationWithSigTargetInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider, + ): CreditDelegationWithSigTarget { + return new Contract( + address, + _abi, + signerOrProvider, + ) as CreditDelegationWithSigTarget; + } +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/SupplyToSelfTarget.ts b/packages/contract-helpers/src/tx-builder/typechain/SupplyToSelfTarget.ts new file mode 100644 index 000000000..9b8fb6889 --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/SupplyToSelfTarget.ts @@ -0,0 +1,584 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { + FunctionFragment, + Result, + EventFragment, +} from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from './common'; + +export type ActionStruct = { + target: PromiseOrValue; + data: PromiseOrValue; +}; + +export type ActionStructOutput = [string, string] & { + target: string; + data: string; +}; + +export interface SupplyToSelfTargetInterface extends utils.Interface { + functions: { + 'AAVE_POOL()': FunctionFragment; + 'REFERRAL_CODE()': FunctionFragment; + 'aTokenMap(address)': FunctionFragment; + 'acceptOwnership()': FunctionFragment; + 'debtTokenMap(address,uint256)': FunctionFragment; + 'execute(address,bytes,(address,bytes)[])': FunctionFragment; + 'nonces(address)': FunctionFragment; + 'owner()': FunctionFragment; + 'paused()': FunctionFragment; + 'pendingOwner()': FunctionFragment; + 'renounceOwnership()': FunctionFragment; + 'targetWhitelisted(address)': FunctionFragment; + 'tokenBalanceIn(address)': FunctionFragment; + 'tokenWhitelisted(address)': FunctionFragment; + 'transferOwnership(address)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'AAVE_POOL' + | 'REFERRAL_CODE' + | 'aTokenMap' + | 'acceptOwnership' + | 'debtTokenMap' + | 'execute' + | 'nonces' + | 'owner' + | 'paused' + | 'pendingOwner' + | 'renounceOwnership' + | 'targetWhitelisted' + | 'tokenBalanceIn' + | 'tokenWhitelisted' + | 'transferOwnership', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'AAVE_POOL', values?: undefined): string; + encodeFunctionData( + functionFragment: 'REFERRAL_CODE', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'aTokenMap', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'acceptOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'debtTokenMap', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'execute', + values: [PromiseOrValue, PromiseOrValue, ActionStruct[]], + ): string; + encodeFunctionData( + functionFragment: 'nonces', + values: [PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'paused', values?: undefined): string; + encodeFunctionData( + functionFragment: 'pendingOwner', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'renounceOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'targetWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenBalanceIn', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferOwnership', + values: [PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'AAVE_POOL', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'REFERRAL_CODE', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'aTokenMap', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'acceptOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'debtTokenMap', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'execute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'pendingOwner', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'renounceOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'targetWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenBalanceIn', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'transferOwnership', + data: BytesLike, + ): Result; + + events: { + 'OwnershipTransferStarted(address,address)': EventFragment; + 'OwnershipTransferred(address,address)': EventFragment; + 'Paused(address)': EventFragment; + 'Unpaused(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferStarted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment; +} + +export interface OwnershipTransferStartedEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferStartedEvent = TypedEvent< + [string, string], + OwnershipTransferStartedEventObject +>; + +export type OwnershipTransferStartedEventFilter = + TypedEventFilter; + +export interface OwnershipTransferredEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferredEvent = TypedEvent< + [string, string], + OwnershipTransferredEventObject +>; + +export type OwnershipTransferredEventFilter = + TypedEventFilter; + +export interface PausedEventObject { + account: string; +} +export type PausedEvent = TypedEvent<[string], PausedEventObject>; + +export type PausedEventFilter = TypedEventFilter; + +export interface UnpausedEventObject { + account: string; +} +export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>; + +export type UnpausedEventFilter = TypedEventFilter; + +export interface SupplyToSelfTarget extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: SupplyToSelfTargetInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter, + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter, + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + AAVE_POOL(overrides?: CallOverrides): Promise<[string]>; + + REFERRAL_CODE(overrides?: CallOverrides): Promise<[number]>; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + paused(overrides?: CallOverrides): Promise<[boolean]>; + + pendingOwner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership(overrides?: CallOverrides): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: CallOverrides, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'OwnershipTransferStarted(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + OwnershipTransferStarted( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + + 'OwnershipTransferred(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + + 'Paused(address)'(account?: null): PausedEventFilter; + Paused(account?: null): PausedEventFilter; + + 'Unpaused(address)'(account?: null): UnpausedEventFilter; + Unpaused(account?: null): UnpausedEventFilter; + }; + + estimateGas: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + execute( + originator: PromiseOrValue, + data: PromiseOrValue, + nextActions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/SupplyToSelfTarget__factory.ts b/packages/contract-helpers/src/tx-builder/typechain/SupplyToSelfTarget__factory.ts new file mode 100644 index 000000000..01403c3ed --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/SupplyToSelfTarget__factory.ts @@ -0,0 +1,388 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from 'ethers'; +import type { Provider, TransactionRequest } from '@ethersproject/providers'; +import type { PromiseOrValue } from './common'; +import type { + SupplyToSelfTarget, + SupplyToSelfTargetInterface, +} from './SupplyToSelfTarget'; + +const _abi = [ + { + inputs: [ + { + internalType: 'address', + name: 'aavePool', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnershipTransferStarted', + 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: false, + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'Paused', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'Unpaused', + type: 'event', + }, + { + inputs: [], + name: 'AAVE_POOL', + outputs: [ + { + internalType: 'contract IPool', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REFERRAL_CODE', + outputs: [ + { + internalType: 'uint16', + name: '', + type: 'uint16', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'aTokenMap', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'debtTokenMap', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'originator', + type: 'address', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + { + components: [ + { + internalType: 'address', + name: 'target', + type: 'address', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + internalType: 'struct Action[]', + name: 'nextActions', + type: 'tuple[]', + }, + ], + name: 'execute', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'nonces', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'paused', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'pendingOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'targetWhitelisted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'tokenBalanceIn', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'tokenWhitelisted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +] as const; + +const _bytecode = + '0x60a060405234801561001057600080fd5b5060405161131738038061131783398101604081905261002f9161011a565b80610039336100a3565b6001805460ff60a01b191690556001600160a01b0381166100915760405162461bcd60e51b815260206004820152600e60248201526d2d22a927afa827a7a62fa0a2222960911b604482015260640160405180910390fd5b6001600160a01b03166080525061014a565b600180546001600160a01b03191690556100c7816100ca602090811b61070817901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561012c57600080fd5b81516001600160a01b038116811461014357600080fd5b9392505050565b6080516111a56101726000396000818160ff0152818161047401526107d101526111a56000f3fe6080604052600436106100e85760003560e01c80638d59a8cd1161008a578063f02fdad711610059578063f02fdad7146102a5578063f2fde38b146102e6578063fd266c4114610306578063ff8507e81461033c57600080fd5b80638d59a8cd1461020c5780638da5cb5b1461023c57806397f4097a1461025a578063e30c39781461028757600080fd5b80635c975abb116100c65780635c975abb1461017c578063715018a6146101a757806379ba5097146101bc5780637ecebe00146101d157600080fd5b806308a01675146100ed5780633583849a1461013e5780634d16f9c814610167575b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014a57600080fd5b506101546111c281565b60405161ffff9091168152602001610135565b61017a610175366004610c4a565b61036c565b005b34801561018857600080fd5b50600154600160a01b900460ff165b6040519015158152602001610135565b3480156101b357600080fd5b5061017a610609565b3480156101c857600080fd5b5061017a61061d565b3480156101dd57600080fd5b506101fe6101ec366004610d8c565b60076020526000908152604090205481565b604051908152602001610135565b34801561021857600080fd5b50610197610227366004610d8c565b60026020526000908152604090205460ff1681565b34801561024857600080fd5b506000546001600160a01b0316610121565b34801561026657600080fd5b506101fe610275366004610d8c565b60046020526000908152604090205481565b34801561029357600080fd5b506001546001600160a01b0316610121565b3480156102b157600080fd5b506101216102c0366004610db0565b60066020908152600092835260408084209091529082529020546001600160a01b031681565b3480156102f257600080fd5b5061017a610301366004610d8c565b610697565b34801561031257600080fd5b50610121610321366004610d8c565b6005602052600090815260409020546001600160a01b031681565b34801561034857600080fd5b50610197610357366004610d8c565b60036020526000908152604090205460ff1681565b600080838060200190518101906103839190610ddc565b915091506103918282610758565b6001600160a01b0383166000908152600460205260408120805492935083929091906103be908490610e20565b90915550600090506103cf83610789565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d9190610e33565b60405163617ba03760e01b81526001600160a01b038681166004830152602482018690523060448301526111c260648301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063617ba03790608401600060405180830381600087803b1580156104ba57600080fd5b505af11580156104ce573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092506001600160a01b03851691506370a0823190602401602060405180830381865afa158015610519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190610e33565b90506105498282610e20565b6001600160a01b03841660009081526004602052604081208054909190610571908490610e4c565b9091555061058190508887610878565b6001600160a01b038316600090815260046020526040902054156105ff5760405162461bcd60e51b815260206004820152602a60248201527f537570706c79546f53656c665461726765743a2061546f6b656e2062616c616e60448201526963652072656d61696e7360b01b60648201526084015b60405180910390fd5b5050505050505050565b61061161097b565b61061b60006109d5565b565b60015433906001600160a01b0316811461068b5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105f6565b610694816109d5565b50565b61069f61097b565b600180546001600160a01b0383166001600160a01b031990911681179091556106d06000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081156107665781610780565b6001600160a01b0383166000908152600460205260409020545b90505b92915050565b6001600160a01b0380821660009081526005602052604081205490911680156107b25792915050565b6040516335ea6a7560e01b81526001600160a01b0384811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015610819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190610ef8565b61010001516001600160a01b03938416600090815260056020526040902080546001600160a01b031916948216949094179093555090919050565b805180156109765760008261088e600184610e20565b8151811061089e5761089e61101b565b60209081029190910181015180516001600160a01b0381166000908152600290935260409092205490925060ff166109115760405162461bcd60e51b815260206004820152601660248201527515105491d15517d393d517d5d2125511531254d5115160521b60448201526064016105f6565b60018303845260008583602001518660405160240161093293929190611081565b60408051601f198184030181529190526020810180516001600160e01b03166309a2df3960e31b17905290506109716001600160a01b038316826109ee565b505050505b505050565b6000546001600160a01b0316331461061b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f6565b600180546001600160a01b031916905561069481610708565b60606107808383604051806060016040528060278152602001611149602791396060600080856001600160a01b031685604051610a2b9190611119565b600060405180830381855af49150503d8060008114610a66576040519150601f19603f3d011682016040523d82523d6000602084013e610a6b565b606091505b5091509150610a7c86838387610a86565b9695505050505050565b60608315610af5578251600003610aee576001600160a01b0385163b610aee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105f6565b5081610aff565b610aff8383610b07565b949350505050565b815115610b175781518083602001fd5b8060405162461bcd60e51b81526004016105f69190611135565b6001600160a01b038116811461069457600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610b7f57610b7f610b46565b60405290565b6040516101e0810167ffffffffffffffff81118282101715610b7f57610b7f610b46565b604051601f8201601f1916810167ffffffffffffffff81118282101715610bd257610bd2610b46565b604052919050565b600082601f830112610beb57600080fd5b813567ffffffffffffffff811115610c0557610c05610b46565b610c18601f8201601f1916602001610ba9565b818152846020838601011115610c2d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215610c5f57600080fd5b8335610c6a81610b31565b925060208481013567ffffffffffffffff80821115610c8857600080fd5b610c9488838901610bda565b94506040870135915080821115610caa57600080fd5b818701915087601f830112610cbe57600080fd5b813581811115610cd057610cd0610b46565b8060051b610cdf858201610ba9565b918252838101850191858101908b841115610cf957600080fd5b86860192505b83831015610d7b57823585811115610d175760008081fd5b86016040818e03601f19011215610d2e5760008081fd5b610d36610b5c565b88820135610d4381610b31565b8152604082013587811115610d585760008081fd5b610d668f8b83860101610bda565b828b0152508352509186019190860190610cff565b809750505050505050509250925092565b600060208284031215610d9e57600080fd5b8135610da981610b31565b9392505050565b60008060408385031215610dc357600080fd5b8235610dce81610b31565b946020939093013593505050565b60008060408385031215610def57600080fd5b8251610dfa81610b31565b6020939093015192949293505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561078357610783610e0a565b600060208284031215610e4557600080fd5b5051919050565b8082018082111561078357610783610e0a565b600060208284031215610e7157600080fd5b6040516020810181811067ffffffffffffffff82111715610e9457610e94610b46565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114610ec157600080fd5b919050565b805164ffffffffff81168114610ec157600080fd5b805161ffff81168114610ec157600080fd5b8051610ec181610b31565b60006101e08284031215610f0b57600080fd5b610f13610b85565b610f1d8484610e5f565b8152610f2b60208401610ea1565b6020820152610f3c60408401610ea1565b6040820152610f4d60608401610ea1565b6060820152610f5e60808401610ea1565b6080820152610f6f60a08401610ea1565b60a0820152610f8060c08401610ec6565b60c0820152610f9160e08401610edb565b60e0820152610100610fa4818501610eed565b90820152610120610fb6848201610eed565b90820152610140610fc8848201610eed565b90820152610160610fda848201610eed565b90820152610180610fec848201610ea1565b908201526101a0610ffe848201610ea1565b908201526101c0611010848201610ea1565b908201529392505050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561104c578181015183820152602001611034565b50506000910152565b6000815180845261106d816020860160208601611031565b601f01601f19169290920160200192915050565b600060018060a01b03808616835260206060818501526110a46060850187611055565b6040858203818701528187518084528484019150848160051b850101858a0160005b8381101561110757868303601f19018552815180518a1684528801518884018790526110f487850182611055565b95890195935050908701906001016110c6565b50909c9b505050505050505050505050565b6000825161112b818460208701611031565b9190910192915050565b602081526000610780602083018461105556fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c9a17c074d02766fb10216a9a6103d3a93fb85ab3ec5818ffeebbbf9cebdac6964736f6c63430008110033'; + +type SupplyToSelfTargetConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SupplyToSelfTargetConstructorParams, +): xs is ConstructorParameters => xs.length > 1; + +export class SupplyToSelfTarget__factory extends ContractFactory { + constructor(...args: SupplyToSelfTargetConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + aavePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise { + return super.deploy( + aavePool, + overrides || {}, + ) as Promise; + } + override getDeployTransaction( + aavePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): TransactionRequest { + return super.getDeployTransaction(aavePool, overrides || {}); + } + override attach(address: string): SupplyToSelfTarget { + return super.attach(address) as SupplyToSelfTarget; + } + override connect(signer: Signer): SupplyToSelfTarget__factory { + return super.connect(signer) as SupplyToSelfTarget__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SupplyToSelfTargetInterface { + return new utils.Interface(_abi) as SupplyToSelfTargetInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider, + ): SupplyToSelfTarget { + return new Contract(address, _abi, signerOrProvider) as SupplyToSelfTarget; + } +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/TxBuilder.ts b/packages/contract-helpers/src/tx-builder/typechain/TxBuilder.ts new file mode 100644 index 000000000..818781dc3 --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/TxBuilder.ts @@ -0,0 +1,977 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { + FunctionFragment, + Result, + EventFragment, +} from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from './common'; + +export type ActionStruct = { + target: PromiseOrValue; + data: PromiseOrValue; +}; + +export type ActionStructOutput = [string, string] & { + target: string; + data: string; +}; + +export interface TxBuilderInterface extends utils.Interface { + functions: { + 'AAVE_POOL()': FunctionFragment; + 'DOMAIN_SEPARATOR()': FunctionFragment; + 'FLASHLOAN_RECEIVER()': FunctionFragment; + 'REFERRAL_CODE()': FunctionFragment; + 'WRAPPED_BASE_TOKEN()': FunctionFragment; + 'aTokenMap(address)': FunctionFragment; + 'acceptOwnership()': FunctionFragment; + 'debtTokenMap(address,uint256)': FunctionFragment; + 'executeActions((address,bytes)[])': FunctionFragment; + 'executeActionsWithSig(address,(address,bytes)[],uint256,bytes)': FunctionFragment; + 'flashOperation(address[],uint256[],uint256[],address,bytes)': FunctionFragment; + 'flashOperationSimple(address,uint256,uint256,address,bytes)': FunctionFragment; + 'nonces(address)': FunctionFragment; + 'owner()': FunctionFragment; + 'pause()': FunctionFragment; + 'paused()': FunctionFragment; + 'pendingOwner()': FunctionFragment; + 'renounceOwnership()': FunctionFragment; + 'setTargetWhitelisted(address,bool)': FunctionFragment; + 'setTokenWhitelisted(address,bool)': FunctionFragment; + 'targetWhitelisted(address)': FunctionFragment; + 'tokenBalanceIn(address)': FunctionFragment; + 'tokenWhitelisted(address)': FunctionFragment; + 'transferOwnership(address)': FunctionFragment; + 'unpause()': FunctionFragment; + 'updateATokenAddress(address)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'AAVE_POOL' + | 'DOMAIN_SEPARATOR' + | 'FLASHLOAN_RECEIVER' + | 'REFERRAL_CODE' + | 'WRAPPED_BASE_TOKEN' + | 'aTokenMap' + | 'acceptOwnership' + | 'debtTokenMap' + | 'executeActions' + | 'executeActionsWithSig' + | 'flashOperation' + | 'flashOperationSimple' + | 'nonces' + | 'owner' + | 'pause' + | 'paused' + | 'pendingOwner' + | 'renounceOwnership' + | 'setTargetWhitelisted' + | 'setTokenWhitelisted' + | 'targetWhitelisted' + | 'tokenBalanceIn' + | 'tokenWhitelisted' + | 'transferOwnership' + | 'unpause' + | 'updateATokenAddress', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'AAVE_POOL', values?: undefined): string; + encodeFunctionData( + functionFragment: 'DOMAIN_SEPARATOR', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'FLASHLOAN_RECEIVER', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'REFERRAL_CODE', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'WRAPPED_BASE_TOKEN', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'aTokenMap', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'acceptOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'debtTokenMap', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'executeActions', + values: [ActionStruct[]], + ): string; + encodeFunctionData( + functionFragment: 'executeActionsWithSig', + values: [ + PromiseOrValue, + ActionStruct[], + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'flashOperation', + values: [ + PromiseOrValue[], + PromiseOrValue[], + PromiseOrValue[], + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'flashOperationSimple', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'nonces', + values: [PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'pause', values?: undefined): string; + encodeFunctionData(functionFragment: 'paused', values?: undefined): string; + encodeFunctionData( + functionFragment: 'pendingOwner', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'renounceOwnership', + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: 'setTargetWhitelisted', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setTokenWhitelisted', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'targetWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenBalanceIn', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'tokenWhitelisted', + values: [PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferOwnership', + values: [PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'unpause', values?: undefined): string; + encodeFunctionData( + functionFragment: 'updateATokenAddress', + values: [PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'AAVE_POOL', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'DOMAIN_SEPARATOR', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'FLASHLOAN_RECEIVER', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'REFERRAL_CODE', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'WRAPPED_BASE_TOKEN', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'aTokenMap', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'acceptOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'debtTokenMap', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'executeActions', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'executeActionsWithSig', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'flashOperation', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'flashOperationSimple', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'pendingOwner', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'renounceOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'setTargetWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'setTokenWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'targetWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenBalanceIn', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'tokenWhitelisted', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'transferOwnership', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'updateATokenAddress', + data: BytesLike, + ): Result; + + events: { + 'OwnershipTransferStarted(address,address)': EventFragment; + 'OwnershipTransferred(address,address)': EventFragment; + 'Paused(address)': EventFragment; + 'Unpaused(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferStarted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment; +} + +export interface OwnershipTransferStartedEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferStartedEvent = TypedEvent< + [string, string], + OwnershipTransferStartedEventObject +>; + +export type OwnershipTransferStartedEventFilter = + TypedEventFilter; + +export interface OwnershipTransferredEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferredEvent = TypedEvent< + [string, string], + OwnershipTransferredEventObject +>; + +export type OwnershipTransferredEventFilter = + TypedEventFilter; + +export interface PausedEventObject { + account: string; +} +export type PausedEvent = TypedEvent<[string], PausedEventObject>; + +export type PausedEventFilter = TypedEventFilter; + +export interface UnpausedEventObject { + account: string; +} +export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>; + +export type UnpausedEventFilter = TypedEventFilter; + +export interface TxBuilder extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: TxBuilderInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter, + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter, + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + AAVE_POOL(overrides?: CallOverrides): Promise<[string]>; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + FLASHLOAN_RECEIVER(overrides?: CallOverrides): Promise<[string]>; + + REFERRAL_CODE(overrides?: CallOverrides): Promise<[number]>; + + WRAPPED_BASE_TOKEN(overrides?: CallOverrides): Promise<[string]>; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + executeActions( + actions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + executeActionsWithSig( + originator: PromiseOrValue, + actions: ActionStruct[], + deadline: PromiseOrValue, + signature: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperation( + assets: PromiseOrValue[], + amounts: PromiseOrValue[], + premiums: PromiseOrValue[], + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperationSimple( + asset: PromiseOrValue, + amount: PromiseOrValue, + premium: PromiseOrValue, + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + pause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + paused(overrides?: CallOverrides): Promise<[boolean]>; + + pendingOwner(overrides?: CallOverrides): Promise<[string]>; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTargetWhitelisted( + target: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTokenWhitelisted( + token: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unpause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateATokenAddress( + token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + AAVE_POOL(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + FLASHLOAN_RECEIVER(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + WRAPPED_BASE_TOKEN(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + executeActions( + actions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + executeActionsWithSig( + originator: PromiseOrValue, + actions: ActionStruct[], + deadline: PromiseOrValue, + signature: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperation( + assets: PromiseOrValue[], + amounts: PromiseOrValue[], + premiums: PromiseOrValue[], + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperationSimple( + asset: PromiseOrValue, + amount: PromiseOrValue, + premium: PromiseOrValue, + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTargetWhitelisted( + target: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTokenWhitelisted( + token: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unpause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateATokenAddress( + token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + FLASHLOAN_RECEIVER(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + WRAPPED_BASE_TOKEN(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership(overrides?: CallOverrides): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + executeActions( + actions: ActionStruct[], + overrides?: CallOverrides, + ): Promise; + + executeActionsWithSig( + originator: PromiseOrValue, + actions: ActionStruct[], + deadline: PromiseOrValue, + signature: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + flashOperation( + assets: PromiseOrValue[], + amounts: PromiseOrValue[], + premiums: PromiseOrValue[], + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + flashOperationSimple( + asset: PromiseOrValue, + amount: PromiseOrValue, + premium: PromiseOrValue, + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pause(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + setTargetWhitelisted( + target: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setTokenWhitelisted( + token: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + unpause(overrides?: CallOverrides): Promise; + + updateATokenAddress( + token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'OwnershipTransferStarted(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + OwnershipTransferStarted( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferStartedEventFilter; + + 'OwnershipTransferred(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + + 'Paused(address)'(account?: null): PausedEventFilter; + Paused(account?: null): PausedEventFilter; + + 'Unpaused(address)'(account?: null): UnpausedEventFilter; + Unpaused(account?: null): UnpausedEventFilter; + }; + + estimateGas: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + FLASHLOAN_RECEIVER(overrides?: CallOverrides): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + WRAPPED_BASE_TOKEN(overrides?: CallOverrides): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + executeActions( + actions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + executeActionsWithSig( + originator: PromiseOrValue, + actions: ActionStruct[], + deadline: PromiseOrValue, + signature: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperation( + assets: PromiseOrValue[], + amounts: PromiseOrValue[], + premiums: PromiseOrValue[], + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperationSimple( + asset: PromiseOrValue, + amount: PromiseOrValue, + premium: PromiseOrValue, + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTargetWhitelisted( + target: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTokenWhitelisted( + token: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unpause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateATokenAddress( + token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + AAVE_POOL(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + FLASHLOAN_RECEIVER( + overrides?: CallOverrides, + ): Promise; + + REFERRAL_CODE(overrides?: CallOverrides): Promise; + + WRAPPED_BASE_TOKEN( + overrides?: CallOverrides, + ): Promise; + + aTokenMap( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + acceptOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + debtTokenMap( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + executeActions( + actions: ActionStruct[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + executeActionsWithSig( + originator: PromiseOrValue, + actions: ActionStruct[], + deadline: PromiseOrValue, + signature: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperation( + assets: PromiseOrValue[], + amounts: PromiseOrValue[], + premiums: PromiseOrValue[], + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + flashOperationSimple( + asset: PromiseOrValue, + amount: PromiseOrValue, + premium: PromiseOrValue, + initiator: PromiseOrValue, + params: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nonces( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + paused(overrides?: CallOverrides): Promise; + + pendingOwner(overrides?: CallOverrides): Promise; + + renounceOwnership( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTargetWhitelisted( + target: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setTokenWhitelisted( + token: PromiseOrValue, + toWhitelist: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + targetWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenBalanceIn( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenWhitelisted( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unpause( + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateATokenAddress( + token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/TxBuilder__factory.ts b/packages/contract-helpers/src/tx-builder/typechain/TxBuilder__factory.ts new file mode 100644 index 000000000..0cd8aa524 --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/TxBuilder__factory.ts @@ -0,0 +1,604 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from 'ethers'; +import type { Provider, TransactionRequest } from '@ethersproject/providers'; +import type { PromiseOrValue } from './common'; +import type { TxBuilder, TxBuilderInterface } from './TxBuilder'; + +const _abi = [ + { + inputs: [ + { + internalType: 'address', + name: 'aavePool', + type: 'address', + }, + { + internalType: 'address', + name: 'wrappedBaseToken', + type: 'address', + }, + { + internalType: 'address', + name: 'flashLoanReceiver', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnershipTransferStarted', + 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: false, + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'Paused', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'Unpaused', + type: 'event', + }, + { + inputs: [], + name: 'AAVE_POOL', + outputs: [ + { + internalType: 'contract IPool', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'FLASHLOAN_RECEIVER', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REFERRAL_CODE', + outputs: [ + { + internalType: 'uint16', + name: '', + type: 'uint16', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'WRAPPED_BASE_TOKEN', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'aTokenMap', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'debtTokenMap', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'address', + name: 'target', + type: 'address', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + internalType: 'struct Action[]', + name: 'actions', + type: 'tuple[]', + }, + ], + name: 'executeActions', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'originator', + type: 'address', + }, + { + components: [ + { + internalType: 'address', + name: 'target', + type: 'address', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + internalType: 'struct Action[]', + name: 'actions', + type: 'tuple[]', + }, + { + internalType: 'uint256', + name: 'deadline', + type: 'uint256', + }, + { + internalType: 'bytes', + name: 'signature', + type: 'bytes', + }, + ], + name: 'executeActionsWithSig', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address[]', + name: 'assets', + type: 'address[]', + }, + { + internalType: 'uint256[]', + name: 'amounts', + type: 'uint256[]', + }, + { + internalType: 'uint256[]', + name: 'premiums', + type: 'uint256[]', + }, + { + internalType: 'address', + name: 'initiator', + type: 'address', + }, + { + internalType: 'bytes', + name: 'params', + type: 'bytes', + }, + ], + name: 'flashOperation', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'asset', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'premium', + type: 'uint256', + }, + { + internalType: 'address', + name: 'initiator', + type: 'address', + }, + { + internalType: 'bytes', + name: 'params', + type: 'bytes', + }, + ], + name: 'flashOperationSimple', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'nonces', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'pause', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'paused', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'pendingOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'target', + type: 'address', + }, + { + internalType: 'bool', + name: 'toWhitelist', + type: 'bool', + }, + ], + name: 'setTargetWhitelisted', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'token', + type: 'address', + }, + { + internalType: 'bool', + name: 'toWhitelist', + type: 'bool', + }, + ], + name: 'setTokenWhitelisted', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'targetWhitelisted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'tokenBalanceIn', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'tokenWhitelisted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'unpause', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'token', + type: 'address', + }, + ], + name: 'updateATokenAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +] as const; + +const _bytecode = + '0x6101a06040523480156200001257600080fd5b50604051620025db380380620025db833981016040819052620000359162000302565b60408051808201825260098152682a3c213ab4b63232b960b91b60208083019182528351808501855260018152603160f81b908201529151902060e08190527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66101008190524660a081815285517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818701819052818801959095526060810193909352608080840192909252308382018190528651808503909201825260c09384019096528051940193909320909252919052610120528262000119336200026b565b6001805460ff60a01b191690556001600160a01b038116620001735760405162461bcd60e51b815260206004820152600e60248201526d2d22a927afa827a7a62fa0a2222960911b60448201526064015b60405180910390fd5b6001600160a01b03908116610140528116620001e55760405162461bcd60e51b815260206004820152602a60248201527f54784275696c6465723a205a65726f20666c6173686c6f616e207265636569766044820152696572206164647265737360b01b60648201526084016200016a565b6001600160a01b038216620002505760405162461bcd60e51b815260206004820152602a60248201527f54784275696c6465723a205a65726f2077726170706564206261736520746f6b604482015269656e206164647265737360b01b60648201526084016200016a565b6001600160a01b03908116610160521661018052506200034c565b600180546001600160a01b0319169055620002928162000295602090811b62000fd117901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002fd57600080fd5b919050565b6000806000606084860312156200031857600080fd5b6200032384620002e5565b92506200033360208501620002e5565b91506200034360408501620002e5565b90509250925092565b60805160a05160c05160e05161010051610120516101405161016051610180516121e6620003f56000396000818161033e015281816109ae01528181610a280152610a830152600081816102ea0152818161093401528181610cab0152610e61015260008181610198015281816108720152610b61015260006110f801526000611147015260006111220152600061107b015260006110a5015260006110cf01526121e66000f3fe6080604052600436106101815760003560e01c806379ba5097116100d157806390a36baf1161008a578063f02fdad711610064578063f02fdad7146104a5578063f2fde38b146104e6578063fd266c4114610506578063ff8507e81461053c57600080fd5b806390a36baf1461043a57806397f4097a1461045a578063e30c39781461048757600080fd5b806379ba5097146103755780637ecebe001461038a5780638456cb59146103b75780638c34a621146103cc5780638d59a8cd146103ec5780638da5cb5b1461041c57600080fd5b80635c12c8e71161013e57806366e1144b1161011857806366e1144b146102d85780636a085d821461030c578063709e8f6b1461032c578063715018a61461036057600080fd5b80635c12c8e71461027a5780635c975abb1461028d57806365a6b74d146102b857600080fd5b806308a016751461018657806309cc0510146101d75780633583849a146101f95780633644e515146102225780633a9c5712146102455780633f4ba83a14610265575b600080fd5b34801561019257600080fd5b506101ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101e357600080fd5b506101f76101f23660046119e5565b61056c565b005b34801561020557600080fd5b5061020f6111c281565b60405161ffff90911681526020016101ce565b34801561022e57600080fd5b5061023761082e565b6040519081526020016101ce565b34801561025157600080fd5b506101f7610260366004611a72565b61083d565b34801561027157600080fd5b506101f761098c565b6101f7610288366004611aab565b61099e565b34801561029957600080fd5b50600154600160a01b900460ff165b60405190151581526020016101ce565b3480156102c457600080fd5b506101f76102d3366004611a72565b610b0c565b3480156102e457600080fd5b506101ba7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031857600080fd5b506101f7610327366004611adf565b610b3f565b34801561033857600080fd5b506101ba7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036c57600080fd5b506101f7610c07565b34801561038157600080fd5b506101f7610c19565b34801561039657600080fd5b506102376103a5366004611adf565b60076020526000908152604090205481565b3480156103c357600080fd5b506101f7610c90565b3480156103d857600080fd5b506101f76103e7366004611b81565b610ca0565b3480156103f857600080fd5b506102a8610407366004611adf565b60026020526000908152604090205460ff1681565b34801561042857600080fd5b506000546001600160a01b03166101ba565b34801561044657600080fd5b506101f7610455366004611c5b565b610e56565b34801561046657600080fd5b50610237610475366004611adf565b60046020526000908152604090205481565b34801561049357600080fd5b506001546001600160a01b03166101ba565b3480156104b157600080fd5b506101ba6104c0366004611cd6565b60066020908152600092835260408084209091529082529020546001600160a01b031681565b3480156104f257600080fd5b506101f7610501366004611adf565b610f60565b34801561051257600080fd5b506101ba610521366004611adf565b6005602052600090815260409020546001600160a01b031681565b34801561054857600080fd5b506102a8610557366004611adf565b60036020526000908152604090205460ff1681565b610574611021565b4282116105c85760405162461bcd60e51b815260206004820152601c60248201527f54784275696c6465723a205369676e617475726520657870697265640000000060448201526064015b60405180910390fd5b82516000816001600160401b038111156105e4576105e4611800565b60405190808252806020026020018201604052801561060d578160200160208202803683370190505b50905060005b828110156106e6577f4afdb72fff5fe3298dbabbd12790f022e8c3a2c6b12c9ec13874713ee63b775586828151811061064e5761064e611d02565b60200260200101516000015187838151811061066c5761066c611d02565b602002602001015160200151805190602001206040516020016106ab939291909283526001600160a01b03919091166020830152604082015260600190565b604051602081830303815290604052805190602001208282815181106106d3576106d3611d02565b6020908102919091010152600101610613565b5060006106f161106e565b7fb66cc5e53f7b26fd05b211baa6bccc460464c9db42935211a8df2023609cab6288846040516020016107249190611d18565b60408051601f1981840301815291815281516020928301206001600160a01b038d16600090815260079093529082208054919261076083611d72565b90915550604080516001600160a01b03909416602085015283019190915260608201526080810188905260a00160408051601f19818403018152908290526107ac939291602001611ddb565b6040516020818303038152906040528051906020012090506107cf878286611195565b61081b5760405162461bcd60e51b815260206004820152601c60248201527f54784275696c6465723a205369676e617475726520696e76616c69640000000060448201526064016105bf565b61082587876112d9565b50505050505050565b600061083861106e565b905090565b610845611338565b6001600160a01b0382166000818152600360205260409020805460ff1916831515179055819063095ea7b37f000000000000000000000000000000000000000000000000000000000000000061089d60001985611e1c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156108e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090c9190611e33565b5060405163458e441560e01b81526001600160a01b03848116600483015283151560248301527f0000000000000000000000000000000000000000000000000000000000000000169063458e441590604401600060405180830381600087803b15801561097857600080fd5b505af1158015610825573d6000803e3d6000fd5b610994611338565b61099c611392565b565b6109a6611021565b3415610b02577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a0757600080fd5b505af1158015610a1b573d6000803e3d6000fd5b5050506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660009081526004602052604081208054349450909250610a69908490611e50565b90915550610a79905033826112d9565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660009081526004602052604090205415610aff5760405162461bcd60e51b815260206004820181905260248201527f54784275696c6465723a205772617070656420746f6b656e2072656d61696e7360448201526064016105bf565b50565b610aff33826112d9565b610b14611338565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6040516335ea6a7560e01b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906335ea6a75906024016101e060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190611efb565b61010001516001600160a01b03928316600090815260056020526040902080546001600160a01b031916939091169290921790915550565b610c0f611338565b61099c60006113e7565b60015433906001600160a01b03168114610c875760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105bf565b610aff816113e7565b610c98611338565b61099c611400565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ce85760405162461bcd60e51b81526004016105bf9061201e565b610cf0611021565b8760005b81811015610d7c57888882818110610d0e57610d0e611d02565b90506020020135600460008d8d85818110610d2b57610d2b611d02565b9050602002016020810190610d409190611adf565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d6f9190611e50565b9091555050600101610cf4565b506000610d8b83850185611aab565b9050610d9785826112d9565b60005b82811015610e4857600460008d8d84818110610db857610db8611d02565b9050602002016020810190610dcd9190611adf565b6001600160a01b0316815260208101919091526040016000205415610e405760405162461bcd60e51b8152602060048201526024808201527f54784275696c6465723a20466c6173686c6f616e656420746f6b656e7320726560448201526336b0b4b760e11b60648201526084016105bf565b600101610d9a565b505050505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e9e5760405162461bcd60e51b81526004016105bf9061201e565b610ea6611021565b6001600160a01b03861660009081526004602052604081208054879290610ece908490611e50565b9091555060009050610ee282840184611aab565b9050610eee84826112d9565b6001600160a01b038716600090815260046020526040902054156108255760405162461bcd60e51b815260206004820152602360248201527f54784275696c6465723a20466c6173686c6f616e65642066756e64732072656d60448201526230b4b760e91b60648201526084016105bf565b610f68611338565b600180546001600160a01b0383166001600160a01b03199091168117909155610f996000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600154600160a01b900460ff161561099c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105bf565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156110c757507f000000000000000000000000000000000000000000000000000000000000000046145b156110f157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008060006111a48585611443565b909250905060008160048111156111bd576111bd612067565b1480156111db5750856001600160a01b0316826001600160a01b0316145b156111eb576001925050506112d2565b600080876001600160a01b0316631626ba7e60e01b888860405160240161121392919061207d565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516112519190612096565b600060405180830381855afa9150503d806000811461128c576040519150601f19603f3d011682016040523d82523d6000602084013e611291565b606091505b50915091508180156112a4575080516020145b80156112cb57508051630b135d3f60e11b906112c990830160209081019084016120b2565b145b9450505050505b9392505050565b600081511161132a5760405162461bcd60e51b815260206004820152601d60248201527f54784275696c6465723a205a65726f20616374696f6e206c656e67746800000060448201526064016105bf565b6113348282611488565b5050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b61139a611586565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600180546001600160a01b0319169055610aff81610fd1565b611408611021565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ca3390565b60008082516041036114795760208301516040840151606085015160001a61146d878285856115d6565b94509450505050611481565b506000905060025b9250929050565b805180156115815760008261149e6001846120cb565b815181106114ae576114ae611d02565b60209081029190910181015180516001600160a01b0381166000908152600290935260409092205490925060ff166115215760405162461bcd60e51b815260206004820152601660248201527515105491d15517d393d517d5d2125511531254d5115160521b60448201526064016105bf565b600183038452600085836020015186604051602401611542939291906120de565b60408051601f198184030181529190526020810180516001600160e01b03166309a2df3960e31b17905290506108256001600160a01b0383168261169a565b505050565b600154600160a01b900460ff1661099c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105bf565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561160d5750600090506003611691565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611661573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661168a57600060019250925050611691565b9150600090505b94509492505050565b60606116bf838360405180606001604052806027815260200161218a602791396116c8565b90505b92915050565b6060600080856001600160a01b0316856040516116e59190612096565b600060405180830381855af49150503d8060008114611720576040519150601f19603f3d011682016040523d82523d6000602084013e611725565b606091505b509150915061173686838387611740565b9695505050505050565b606083156117af5782516000036117a8576001600160a01b0385163b6117a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105bf565b50816117b9565b6117b983836117c1565b949350505050565b8151156117d15781518083602001fd5b8060405162461bcd60e51b81526004016105bf9190612176565b6001600160a01b0381168114610aff57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561183857611838611800565b60405290565b6040516101e081016001600160401b038111828210171561183857611838611800565b604051601f8201601f191681016001600160401b038111828210171561188957611889611800565b604052919050565b600082601f8301126118a257600080fd5b81356001600160401b038111156118bb576118bb611800565b6118ce601f8201601f1916602001611861565b8181528460208386010111156118e357600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261191157600080fd5b813560206001600160401b038083111561192d5761192d611800565b8260051b61193c838201611861565b938452858101830193838101908886111561195657600080fd5b84880192505b858310156119d9578235848111156119745760008081fd5b88016040818b03601f190181131561198c5760008081fd5b611994611816565b878301356119a1816117eb565b81529082013590868211156119b65760008081fd5b6119c48c8984860101611891565b8189015284525050918401919084019061195c565b98975050505050505050565b600080600080608085870312156119fb57600080fd5b8435611a06816117eb565b935060208501356001600160401b0380821115611a2257600080fd5b611a2e88838901611900565b9450604087013593506060870135915080821115611a4b57600080fd5b50611a5887828801611891565b91505092959194509250565b8015158114610aff57600080fd5b60008060408385031215611a8557600080fd5b8235611a90816117eb565b91506020830135611aa081611a64565b809150509250929050565b600060208284031215611abd57600080fd5b81356001600160401b03811115611ad357600080fd5b6117b984828501611900565b600060208284031215611af157600080fd5b81356112d2816117eb565b60008083601f840112611b0e57600080fd5b5081356001600160401b03811115611b2557600080fd5b6020830191508360208260051b850101111561148157600080fd5b60008083601f840112611b5257600080fd5b5081356001600160401b03811115611b6957600080fd5b60208301915083602082850101111561148157600080fd5b600080600080600080600080600060a08a8c031215611b9f57600080fd5b89356001600160401b0380821115611bb657600080fd5b611bc28d838e01611afc565b909b50995060208c0135915080821115611bdb57600080fd5b611be78d838e01611afc565b909950975060408c0135915080821115611c0057600080fd5b611c0c8d838e01611afc565b909750955060608c01359150611c21826117eb565b90935060808b01359080821115611c3757600080fd5b50611c448c828d01611b40565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215611c7457600080fd5b8635611c7f816117eb565b955060208701359450604087013593506060870135611c9d816117eb565b925060808701356001600160401b03811115611cb857600080fd5b611cc489828a01611b40565b979a9699509497509295939492505050565b60008060408385031215611ce957600080fd5b8235611cf4816117eb565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015611d5057835183529284019291840191600101611d34565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201611d8457611d84611d5c565b5060010190565b60005b83811015611da6578181015183820152602001611d8e565b50506000910152565b60008151808452611dc7816020860160208601611d8b565b601f01601f19169290920160200192915050565b608081526002608082015261190160f01b60a082015283602082015282604082015260c060608201526000611e1360c0830184611daf565b95945050505050565b80820281158282048414176116c2576116c2611d5c565b600060208284031215611e4557600080fd5b81516112d281611a64565b808201808211156116c2576116c2611d5c565b600060208284031215611e7557600080fd5b604051602081018181106001600160401b0382111715611e9757611e97611800565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114611ec457600080fd5b919050565b805164ffffffffff81168114611ec457600080fd5b805161ffff81168114611ec457600080fd5b8051611ec4816117eb565b60006101e08284031215611f0e57600080fd5b611f1661183e565b611f208484611e63565b8152611f2e60208401611ea4565b6020820152611f3f60408401611ea4565b6040820152611f5060608401611ea4565b6060820152611f6160808401611ea4565b6080820152611f7260a08401611ea4565b60a0820152611f8360c08401611ec9565b60c0820152611f9460e08401611ede565b60e0820152610100611fa7818501611ef0565b90820152610120611fb9848201611ef0565b90820152610140611fcb848201611ef0565b90820152610160611fdd848201611ef0565b90820152610180611fef848201611ea4565b908201526101a0612001848201611ea4565b908201526101c0612013848201611ea4565b908201529392505050565b60208082526029908201527f54784275696c6465723a2053656e646572206e6f7420666c6173686c6f616e206040820152681c9958da5c1a595b9d60ba1b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b8281526040602082015260006117b96040830184611daf565b600082516120a8818460208701611d8b565b9190910192915050565b6000602082840312156120c457600080fd5b5051919050565b818103818111156116c2576116c2611d5c565b600060018060a01b03808616835260206060818501526121016060850187611daf565b6040858203818701528187518084528484019150848160051b850101858a0160005b8381101561216457868303601f19018552815180518a16845288015188840187905261215187850182611daf565b9589019593505090870190600101612123565b50909c9b505050505050505050505050565b6020815260006116bf6020830184611daf56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204dd6c8e4beca41131100bce1299c8aa32f90e75d49fab991ba29842a2d1b004264736f6c63430008110033'; + +type TxBuilderConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TxBuilderConstructorParams, +): xs is ConstructorParameters => xs.length > 1; + +export class TxBuilder__factory extends ContractFactory { + constructor(...args: TxBuilderConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + aavePool: PromiseOrValue, + wrappedBaseToken: PromiseOrValue, + flashLoanReceiver: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise { + return super.deploy( + aavePool, + wrappedBaseToken, + flashLoanReceiver, + overrides || {}, + ) as Promise; + } + override getDeployTransaction( + aavePool: PromiseOrValue, + wrappedBaseToken: PromiseOrValue, + flashLoanReceiver: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): TransactionRequest { + return super.getDeployTransaction( + aavePool, + wrappedBaseToken, + flashLoanReceiver, + overrides || {}, + ); + } + override attach(address: string): TxBuilder { + return super.attach(address) as TxBuilder; + } + override connect(signer: Signer): TxBuilder__factory { + return super.connect(signer) as TxBuilder__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TxBuilderInterface { + return new utils.Interface(_abi) as TxBuilderInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider, + ): TxBuilder { + return new Contract(address, _abi, signerOrProvider) as TxBuilder; + } +} diff --git a/packages/contract-helpers/src/tx-builder/typechain/common.ts b/packages/contract-helpers/src/tx-builder/typechain/common.ts new file mode 100644 index 000000000..ec65436e1 --- /dev/null +++ b/packages/contract-helpers/src/tx-builder/typechain/common.ts @@ -0,0 +1,45 @@ +/* Autogenerated file. Do not edit manually. */ +/* eslint-disable */ +import type { Listener } from '@ethersproject/providers'; +import type { Event, EventFilter } from 'ethers'; + +export interface TypedEvent< + TArgsArray extends Array = any, + TArgsObject = any, +> extends Event { + args: TArgsArray & TArgsObject; +} + +export interface TypedEventFilter<_TEvent extends TypedEvent> + extends EventFilter {} + +export interface TypedListener { + (...listenerArg: [...__TypechainArgsArray, TEvent]): void; +} + +type __TypechainArgsArray = T extends TypedEvent ? U : never; + +export interface OnEvent { + ( + eventFilter: TypedEventFilter, + listener: TypedListener, + ): TRes; + (eventName: string, listener: Listener): TRes; +} + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; + +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type PromiseOrValue = T | Promise; diff --git a/packages/contract-helpers/src/v3-pool-contract-bundle/index.ts b/packages/contract-helpers/src/v3-pool-contract-bundle/index.ts index 6b4d5a2c7..01b8b5424 100644 --- a/packages/contract-helpers/src/v3-pool-contract-bundle/index.ts +++ b/packages/contract-helpers/src/v3-pool-contract-bundle/index.ts @@ -1,5 +1,5 @@ import { Signature, splitSignature } from '@ethersproject/bytes'; -import { PopulatedTransaction, providers } from 'ethers'; +import { BytesLike, PopulatedTransaction, providers } from 'ethers'; import BaseService from '../commons/BaseService'; import { BorrowTxBuilder, @@ -37,7 +37,19 @@ import { WETHGatewayService, } from '../wethgateway-contract'; +type FlashloanParams = { + user: tEthereumAddress; + receiverAddress: tEthereumAddress; + assets: tEthereumAddress[]; + amounts: string[]; + interestRateModes: InterestRate[]; + onBehalfOf: tEthereumAddress; + params: BytesLike; + referralCode?: number; +}; + export type SupplyTxBuilder = { + generateFlashloanTxData: (params: FlashloanParams) => PopulatedTransaction; generateTxData: ({ user, reserve, @@ -139,6 +151,40 @@ export class PoolBundle amount: amount.toString(), }; }, + generateFlashloanTxData: ({ + user, + receiverAddress, + assets, + amounts, + interestRateModes, + onBehalfOf, + params, + referralCode, + }) => { + const actionTx: PopulatedTransaction = {}; + const onBehalfOfParam = onBehalfOf ?? user; + const referralCodeParam = referralCode ?? '0'; + + const numericRateModes = interestRateModes.map(interestRateMode => + interestRateMode === InterestRate.Variable ? 2 : 1, + ); + + const txData = this.contractInterface.encodeFunctionData('flashLoan', [ + receiverAddress, + assets, + amounts, + numericRateModes, + onBehalfOfParam, + params, + referralCodeParam, + ]); + + actionTx.to = this.poolAddress; + actionTx.from = user; + actionTx.data = txData; + + return actionTx; + }, generateTxData: ({ user, reserve, diff --git a/packages/math-utils/CHANGELOG.md b/packages/math-utils/CHANGELOG.md index 161ed467d..55798f8b9 100644 --- a/packages/math-utils/CHANGELOG.md +++ b/packages/math-utils/CHANGELOG.md @@ -1,40 +1,32 @@ # Change Log -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +All notable changes to this project will be documented in this file. See +[Conventional Commits](https://conventionalcommits.org) for commit guidelines. # 1.16.0 (2023-04-17) - ### Features -* update borrow methods SDK ([#527](https://github.com/aave/aave-utilities/issues/527)) ([da31b83](https://github.com/aave/aave-utilities/commit/da31b836dd7a85da0dbfe664b67612b1f261c7a7)) - - - - +- update borrow methods SDK + ([#527](https://github.com/aave/aave-utilities/issues/527)) + ([da31b83](https://github.com/aave/aave-utilities/commit/da31b836dd7a85da0dbfe664b67612b1f261c7a7)) # 1.15.0 (2023-04-12) - ### Features -* add Scroll Alpha chainId ([#528](https://github.com/aave/aave-utilities/issues/528)) ([3418c70](https://github.com/aave/aave-utilities/commit/3418c7087796397ed535fc7a3522445fb44f94c5)) - - - - +- add Scroll Alpha chainId + ([#528](https://github.com/aave/aave-utilities/issues/528)) + ([3418c70](https://github.com/aave/aave-utilities/commit/3418c7087796397ed535fc7a3522445fb44f94c5)) # 1.14.0 (2023-04-05) - ### Features -* tx bundle refactor ([#514](https://github.com/aave/aave-utilities/issues/514)) ([fc5c937](https://github.com/aave/aave-utilities/commit/fc5c9378b48a14a31df9fdbe435095a3e81390a2)), closes [#524](https://github.com/aave/aave-utilities/issues/524) [#504](https://github.com/aave/aave-utilities/issues/504) - - - - +- tx bundle refactor ([#514](https://github.com/aave/aave-utilities/issues/514)) + ([fc5c937](https://github.com/aave/aave-utilities/commit/fc5c9378b48a14a31df9fdbe435095a3e81390a2)), + closes [#524](https://github.com/aave/aave-utilities/issues/524) + [#504](https://github.com/aave/aave-utilities/issues/504) # Change Log @@ -45,10 +37,6 @@ All notable changes to this project will be documented in this file. See **Note:** Version bump only for package @aave/math-utils - - - - ## 1.13.6 (2023-03-03) **Note:** Version bump only for package @aave/math-utils