diff --git a/src/apps/across/across.definition.ts b/src/apps/across/across.definition.ts index 0067adb88..785a5fd51 100644 --- a/src/apps/across/across.definition.ts +++ b/src/apps/across/across.definition.ts @@ -14,15 +14,19 @@ export const ACROSS_DEFINITION = appDefinition({ type: GroupType.TOKEN, label: 'V1 Pools', }, + v2Pool: { + id: 'v2-pool', + type: GroupType.TOKEN, + label: 'V2 Pools', + }, }, tags: [AppTag.BRIDGE, AppTag.CROSS_CHAIN], links: { learn: 'https://docs.across.to/bridge/', github: 'https://github.com/across-protocol', - twitter: '', - telegram: '', + twitter: 'https://twitter.com/AcrossProtocol', discord: 'https://discord.gg/across', - medium: '', + medium: 'https://medium.com/across-protocol', }, supportedNetworks: { [Network.ETHEREUM_MAINNET]: [AppAction.VIEW], diff --git a/src/apps/across/across.module.ts b/src/apps/across/across.module.ts index 1815c555d..edf70d253 100644 --- a/src/apps/across/across.module.ts +++ b/src/apps/across/across.module.ts @@ -4,9 +4,15 @@ import { AbstractApp } from '~app/app.dynamic-module'; import { AcrossAppDefinition, ACROSS_DEFINITION } from './across.definition'; import { AcrossContractFactory } from './contracts'; import { EthereumAcrossV1PoolTokenFetcher } from './ethereum/across.v1-pool.token-fetcher'; +import { EthereumAcrossV2PoolTokenFetcher } from './ethereum/across.v2-pool.token-fetcher'; @Register.AppModule({ appId: ACROSS_DEFINITION.id, - providers: [AcrossAppDefinition, AcrossContractFactory, EthereumAcrossV1PoolTokenFetcher], + providers: [ + AcrossAppDefinition, + AcrossContractFactory, + EthereumAcrossV1PoolTokenFetcher, + EthereumAcrossV2PoolTokenFetcher, + ], }) export class AcrossAppModule extends AbstractApp() {} diff --git a/src/apps/across/common/across.v2-pool.token-fetcher.ts b/src/apps/across/common/across.v2-pool.token-fetcher.ts new file mode 100644 index 000000000..c6b448d0c --- /dev/null +++ b/src/apps/across/common/across.v2-pool.token-fetcher.ts @@ -0,0 +1,92 @@ +import { Inject } from '@nestjs/common'; +import { uniq } from 'lodash'; +import 'moment-duration-format'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { getLabelFromToken } from '~app-toolkit/helpers/presentation/image.present'; +import { AppTokenTemplatePositionFetcher } from '~position/template/app-token.template.position-fetcher'; +import { + DefaultAppTokenDataProps, + GetAddressesParams, + GetDataPropsParams, + GetDefinitionsParams, + GetDisplayPropsParams, + GetPricePerShareParams, + GetUnderlyingTokensParams, +} from '~position/template/app-token.template.types'; + +import { AcrossContractFactory, AcrossV2PoolToken } from '../contracts'; + +export type AcrossV2PoolTokenDefinition = { + address: string; + underlyingTokenAddress: string; +}; + +export abstract class AcrossV2PoolTokenFetcher extends AppTokenTemplatePositionFetcher< + AcrossV2PoolToken, + DefaultAppTokenDataProps, + AcrossV2PoolTokenDefinition +> { + abstract hubAddress: string; + + constructor( + @Inject(APP_TOOLKIT) protected readonly appToolkit: IAppToolkit, + @Inject(AcrossContractFactory) protected readonly contractFactory: AcrossContractFactory, + ) { + super(appToolkit); + } + + getContract(address: string): AcrossV2PoolToken { + return this.contractFactory.acrossV2PoolToken({ network: this.network, address }); + } + + async getDefinitions({ multicall }: GetDefinitionsParams): Promise { + const hub = this.contractFactory.acrossV2HubPool({ address: this.hubAddress, network: this.network }); + const logs = await hub.queryFilter(hub.filters.LiquidityAdded(), 14819537); + const collateral = uniq(logs.map(v => v.args.l1Token.toLowerCase())); + + const lpTokens = await Promise.all(collateral.map(c => multicall.wrap(hub).pooledTokens(c))); + const definitions = collateral.map((c, i) => ({ + address: lpTokens[i].lpToken.toLowerCase(), + underlyingTokenAddress: c, + })); + + return definitions; + } + + async getAddresses({ definitions }: GetAddressesParams) { + return definitions.map(v => v.address); + } + + async getUnderlyingTokenAddresses({ + definition, + }: GetUnderlyingTokensParams) { + return [definition.underlyingTokenAddress]; + } + + async getPricePerShare({ appToken, multicall }: GetPricePerShareParams) { + const hub = this.contractFactory.acrossV2HubPool({ address: this.hubAddress, network: this.network }); + const poolInfo = await multicall.wrap(hub).pooledTokens(appToken.tokens[0].address); + const reserveRaw = poolInfo.liquidReserves.add(poolInfo.utilizedReserves).sub(poolInfo.undistributedLpFees); + const reserve = Number(reserveRaw) / 10 ** appToken.tokens[0].decimals; + return [reserve / appToken.supply]; + } + + async getLiquidity({ appToken }: GetDataPropsParams) { + return appToken.supply * appToken.price; + } + + async getReserves({ appToken }: GetDataPropsParams) { + return [appToken.pricePerShare[0] * appToken.supply]; + } + + async getApy(_params: GetDataPropsParams) { + return 0; + } + + async getLabel({ + appToken, + }: GetDisplayPropsParams): Promise { + return `${getLabelFromToken(appToken.tokens[0])} Pool`; + } +} diff --git a/src/apps/across/contracts/abis/across-v-2-hub-pool.json b/src/apps/across/contracts/abis/across-v-2-hub-pool.json new file mode 100644 index 000000000..79f539f84 --- /dev/null +++ b/src/apps/across/contracts/abis/across-v-2-hub-pool.json @@ -0,0 +1,588 @@ +[ + { + "inputs": [ + { "internalType": "contract LpTokenFactoryInterface", "name": "_lpTokenFactory", "type": "address" }, + { "internalType": "contract FinderInterface", "name": "_finder", "type": "address" }, + { "internalType": "contract WETH9", "name": "_weth", "type": "address" }, + { "internalType": "address", "name": "_timer", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "newBondToken", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "newBondAmount", "type": "uint256" } + ], + "name": "BondSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "uint256", "name": "l2ChainId", "type": "uint256" }, + { "indexed": false, "internalType": "address", "name": "adapter", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "spokePool", "type": "address" } + ], + "name": "CrossChainContractsSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "bytes32", "name": "poolRebalanceRoot", "type": "bytes32" }, + { "indexed": true, "internalType": "bytes32", "name": "relayerRefundRoot", "type": "bytes32" }, + { "indexed": false, "internalType": "bytes32", "name": "slowRelayRoot", "type": "bytes32" }, + { "indexed": true, "internalType": "address", "name": "proposer", "type": "address" } + ], + "name": "EmergencyRootBundleDeleted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "internalType": "bytes32", "name": "newIdentifier", "type": "bytes32" }], + "name": "IdentifierSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "address", "name": "l1Token", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "lpToken", "type": "address" } + ], + "name": "L1TokenEnabledForLiquidityProvision", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "address", "name": "l1Token", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "lpToken", "type": "address" } + ], + "name": "L2TokenDisabledForLiquidityProvision", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "l1Token", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, + { "indexed": false, "internalType": "uint256", "name": "lpTokensMinted", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "liquidityProvider", "type": "address" } + ], + "name": "LiquidityAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "l1Token", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, + { "indexed": false, "internalType": "uint256", "name": "lpTokensBurnt", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "liquidityProvider", "type": "address" } + ], + "name": "LiquidityRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "internalType": "uint256", "name": "newLiveness", "type": "uint256" }], + "name": "LivenessSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": true, "internalType": "bool", "name": "isPaused", "type": "bool" }], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "uint32", "name": "challengePeriodEndTimestamp", "type": "uint32" }, + { "indexed": false, "internalType": "uint8", "name": "poolRebalanceLeafCount", "type": "uint8" }, + { "indexed": false, "internalType": "uint256[]", "name": "bundleEvaluationBlockNumbers", "type": "uint256[]" }, + { "indexed": true, "internalType": "bytes32", "name": "poolRebalanceRoot", "type": "bytes32" }, + { "indexed": true, "internalType": "bytes32", "name": "relayerRefundRoot", "type": "bytes32" }, + { "indexed": false, "internalType": "bytes32", "name": "slowRelayRoot", "type": "bytes32" }, + { "indexed": true, "internalType": "address", "name": "proposer", "type": "address" } + ], + "name": "ProposeRootBundle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "newProtocolFeeCaptureAddress", "type": "address" }, + { "indexed": true, "internalType": "uint256", "name": "newProtocolFeeCapturePct", "type": "uint256" } + ], + "name": "ProtocolFeeCaptureSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "l1Token", "type": "address" }, + { "indexed": true, "internalType": "uint256", "name": "accumulatedFees", "type": "uint256" } + ], + "name": "ProtocolFeesCapturedClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "disputer", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "requestTime", "type": "uint256" } + ], + "name": "RootBundleCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "disputer", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "requestTime", "type": "uint256" } + ], + "name": "RootBundleDisputed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "uint256", "name": "groupIndex", "type": "uint256" }, + { "indexed": true, "internalType": "uint256", "name": "leafId", "type": "uint256" }, + { "indexed": true, "internalType": "uint256", "name": "chainId", "type": "uint256" }, + { "indexed": false, "internalType": "address[]", "name": "l1Tokens", "type": "address[]" }, + { "indexed": false, "internalType": "uint256[]", "name": "bundleLpFees", "type": "uint256[]" }, + { "indexed": false, "internalType": "int256[]", "name": "netSendAmounts", "type": "int256[]" }, + { "indexed": false, "internalType": "int256[]", "name": "runningBalances", "type": "int256[]" }, + { "indexed": true, "internalType": "address", "name": "caller", "type": "address" } + ], + "name": "RootBundleExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "uint256", "name": "originChainId", "type": "uint256" }, + { "indexed": true, "internalType": "uint256", "name": "destinationChainId", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "originToken", "type": "address" }, + { "indexed": false, "internalType": "bool", "name": "depositsEnabled", "type": "bool" } + ], + "name": "SetEnableDepositRoute", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "uint256", "name": "destinationChainId", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "l1Token", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "destinationToken", "type": "address" } + ], + "name": "SetPoolRebalanceRoute", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "uint256", "name": "chainId", "type": "uint256" }, + { "indexed": false, "internalType": "bytes", "name": "message", "type": "bytes" } + ], + "name": "SpokePoolAdminFunctionTriggered", + "type": "event" + }, + { "stateMutability": "payable", "type": "fallback" }, + { + "inputs": [ + { "internalType": "address", "name": "l1Token", "type": "address" }, + { "internalType": "uint256", "name": "l1TokenAmount", "type": "uint256" } + ], + "name": "addLiquidity", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "bondAmount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bondToken", + "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "l1Token", "type": "address" }], + "name": "claimProtocolFeesCaptured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "crossChainContracts", + "outputs": [ + { "internalType": "address", "name": "adapter", "type": "address" }, + { "internalType": "address", "name": "spokePool", "type": "address" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "l1Token", "type": "address" }], + "name": "disableL1TokenForLiquidityProvision", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [], "name": "disputeRootBundle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "emergencyDeleteProposal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "l1Token", "type": "address" }], + "name": "enableL1TokenForLiquidityProvision", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "l1Token", "type": "address" }], + "name": "exchangeRateCurrent", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "chainId", "type": "uint256" }, + { "internalType": "uint256", "name": "groupIndex", "type": "uint256" }, + { "internalType": "uint256[]", "name": "bundleLpFees", "type": "uint256[]" }, + { "internalType": "int256[]", "name": "netSendAmounts", "type": "int256[]" }, + { "internalType": "int256[]", "name": "runningBalances", "type": "int256[]" }, + { "internalType": "uint8", "name": "leafId", "type": "uint8" }, + { "internalType": "address[]", "name": "l1Tokens", "type": "address[]" }, + { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } + ], + "name": "executeRootBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finder", + "outputs": [{ "internalType": "contract FinderInterface", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCurrentTime", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "l1Token", "type": "address" }, + { "internalType": "int256", "name": "haircutAmount", "type": "int256" } + ], + "name": "haircutReserves", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "identifier", + "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "l1Token", "type": "address" }], + "name": "liquidityUtilizationCurrent", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "l1Token", "type": "address" }, + { "internalType": "uint256", "name": "relayedAmount", "type": "uint256" } + ], + "name": "liquidityUtilizationPostRelay", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "liveness", + "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }], + "stateMutability": "view", + "type": "function" + }, + { "inputs": [], "name": "loadEthForL2Calls", "outputs": [], "stateMutability": "payable", "type": "function" }, + { + "inputs": [], + "name": "lpFeeRatePerSecond", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lpTokenFactory", + "outputs": [{ "internalType": "contract LpTokenFactoryInterface", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes[]", "name": "data", "type": "bytes[]" }], + "name": "multicall", + "outputs": [{ "internalType": "bytes[]", "name": "results", "type": "bytes[]" }], + "stateMutability": "payable", + "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": [ + { "internalType": "uint256", "name": "destinationChainId", "type": "uint256" }, + { "internalType": "address", "name": "l1Token", "type": "address" } + ], + "name": "poolRebalanceRoute", + "outputs": [{ "internalType": "address", "name": "destinationToken", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "name": "pooledTokens", + "outputs": [ + { "internalType": "address", "name": "lpToken", "type": "address" }, + { "internalType": "bool", "name": "isEnabled", "type": "bool" }, + { "internalType": "uint32", "name": "lastLpFeeUpdate", "type": "uint32" }, + { "internalType": "int256", "name": "utilizedReserves", "type": "int256" }, + { "internalType": "uint256", "name": "liquidReserves", "type": "uint256" }, + { "internalType": "uint256", "name": "undistributedLpFees", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256[]", "name": "bundleEvaluationBlockNumbers", "type": "uint256[]" }, + { "internalType": "uint8", "name": "poolRebalanceLeafCount", "type": "uint8" }, + { "internalType": "bytes32", "name": "poolRebalanceRoot", "type": "bytes32" }, + { "internalType": "bytes32", "name": "relayerRefundRoot", "type": "bytes32" }, + { "internalType": "bytes32", "name": "slowRelayRoot", "type": "bytes32" } + ], + "name": "proposeRootBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "protocolFeeCaptureAddress", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "protocolFeeCapturePct", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "chainId", "type": "uint256" }, + { "internalType": "bytes", "name": "functionData", "type": "bytes" } + ], + "name": "relaySpokePoolAdminFunction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "l1Token", "type": "address" }, + { "internalType": "uint256", "name": "lpTokenAmount", "type": "uint256" }, + { "internalType": "bool", "name": "sendEth", "type": "bool" } + ], + "name": "removeLiquidity", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "rootBundleProposal", + "outputs": [ + { "internalType": "bytes32", "name": "poolRebalanceRoot", "type": "bytes32" }, + { "internalType": "bytes32", "name": "relayerRefundRoot", "type": "bytes32" }, + { "internalType": "bytes32", "name": "slowRelayRoot", "type": "bytes32" }, + { "internalType": "uint256", "name": "claimedBitMap", "type": "uint256" }, + { "internalType": "address", "name": "proposer", "type": "address" }, + { "internalType": "uint8", "name": "unclaimedPoolRebalanceLeafCount", "type": "uint8" }, + { "internalType": "uint32", "name": "challengePeriodEndTimestamp", "type": "uint32" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "contract IERC20", "name": "newBondToken", "type": "address" }, + { "internalType": "uint256", "name": "newBondAmount", "type": "uint256" } + ], + "name": "setBond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "l2ChainId", "type": "uint256" }, + { "internalType": "address", "name": "adapter", "type": "address" }, + { "internalType": "address", "name": "spokePool", "type": "address" } + ], + "name": "setCrossChainContracts", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint256", "name": "time", "type": "uint256" }], + "name": "setCurrentTime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "originChainId", "type": "uint256" }, + { "internalType": "uint256", "name": "destinationChainId", "type": "uint256" }, + { "internalType": "address", "name": "originToken", "type": "address" }, + { "internalType": "bool", "name": "depositsEnabled", "type": "bool" } + ], + "name": "setDepositRoute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes32", "name": "newIdentifier", "type": "bytes32" }], + "name": "setIdentifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint32", "name": "newLiveness", "type": "uint32" }], + "name": "setLiveness", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "bool", "name": "pause", "type": "bool" }], + "name": "setPaused", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "destinationChainId", "type": "uint256" }, + { "internalType": "address", "name": "l1Token", "type": "address" }, + { "internalType": "address", "name": "destinationToken", "type": "address" } + ], + "name": "setPoolRebalanceRoute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "newProtocolFeeCaptureAddress", "type": "address" }, + { "internalType": "uint256", "name": "newProtocolFeeCapturePct", "type": "uint256" } + ], + "name": "setProtocolFeeCapture", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "l1Token", "type": "address" }], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "timerAddress", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "", "type": "address" }], + "name": "unclaimedAccumulatedProtocolFees", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "weth", + "outputs": [{ "internalType": "contract WETH9", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { "stateMutability": "payable", "type": "receive" } +] diff --git a/src/apps/across/contracts/abis/across-v-2-pool-token.json b/src/apps/across/contracts/abis/across-v-2-pool-token.json new file mode 100644 index 000000000..f52047032 --- /dev/null +++ b/src/apps/across/contracts/abis/across-v-2-pool-token.json @@ -0,0 +1,259 @@ +[ + { + "inputs": [ + { "internalType": "string", "name": "_tokenName", "type": "string" }, + { "internalType": "string", "name": "_tokenSymbol", "type": "string" }, + { "internalType": "uint8", "name": "_tokenDecimals", "type": "uint8" } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "newMember", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "manager", "type": "address" } + ], + "name": "AddedSharedMember", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "oldMember", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "manager", "type": "address" } + ], + "name": "RemovedSharedMember", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "indexed": true, "internalType": "address", "name": "newMember", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "manager", "type": "address" } + ], + "name": "ResetExclusiveMember", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], + "name": "addBurner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "internalType": "address", "name": "newMember", "type": "address" } + ], + "name": "addMember", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], + "name": "addMinter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "owner", "type": "address" }, + { "internalType": "address", "name": "spender", "type": "address" } + ], + "name": "allowance", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "spender", "type": "address" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "name": "approve", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], + "name": "balanceOf", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint256", "name": "value", "type": "uint256" }], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "recipient", "type": "address" }, + { "internalType": "uint256", "name": "value", "type": "uint256" } + ], + "name": "burnFrom", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "spender", "type": "address" }, + { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } + ], + "name": "decreaseAllowance", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint256", "name": "roleId", "type": "uint256" }], + "name": "getMember", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "internalType": "address", "name": "memberToCheck", "type": "address" } + ], + "name": "holdsRole", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "spender", "type": "address" }, + { "internalType": "uint256", "name": "addedValue", "type": "uint256" } + ], + "name": "increaseAllowance", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "recipient", "type": "address" }, + { "internalType": "uint256", "name": "value", "type": "uint256" } + ], + "name": "mint", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [{ "internalType": "string", "name": "", "type": "string" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "internalType": "address", "name": "memberToRemove", "type": "address" } + ], + "name": "removeMember", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "uint256", "name": "roleId", "type": "uint256" }], + "name": "renounceMembership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "roleId", "type": "uint256" }, + { "internalType": "address", "name": "newMember", "type": "address" } + ], + "name": "resetMember", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], + "name": "resetOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [{ "internalType": "string", "name": "", "type": "string" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "name": "transfer", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "from", "type": "address" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "name": "transferFrom", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/across/contracts/ethers/AcrossV2HubPool.ts b/src/apps/across/contracts/ethers/AcrossV2HubPool.ts new file mode 100644 index 000000000..db1fb3aea --- /dev/null +++ b/src/apps/across/contracts/ethers/AcrossV2HubPool.ts @@ -0,0 +1,1761 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* 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 interface AcrossV2HubPoolInterface extends utils.Interface { + functions: { + 'addLiquidity(address,uint256)': FunctionFragment; + 'bondAmount()': FunctionFragment; + 'bondToken()': FunctionFragment; + 'claimProtocolFeesCaptured(address)': FunctionFragment; + 'crossChainContracts(uint256)': FunctionFragment; + 'disableL1TokenForLiquidityProvision(address)': FunctionFragment; + 'disputeRootBundle()': FunctionFragment; + 'emergencyDeleteProposal()': FunctionFragment; + 'enableL1TokenForLiquidityProvision(address)': FunctionFragment; + 'exchangeRateCurrent(address)': FunctionFragment; + 'executeRootBundle(uint256,uint256,uint256[],int256[],int256[],uint8,address[],bytes32[])': FunctionFragment; + 'finder()': FunctionFragment; + 'getCurrentTime()': FunctionFragment; + 'haircutReserves(address,int256)': FunctionFragment; + 'identifier()': FunctionFragment; + 'liquidityUtilizationCurrent(address)': FunctionFragment; + 'liquidityUtilizationPostRelay(address,uint256)': FunctionFragment; + 'liveness()': FunctionFragment; + 'loadEthForL2Calls()': FunctionFragment; + 'lpFeeRatePerSecond()': FunctionFragment; + 'lpTokenFactory()': FunctionFragment; + 'multicall(bytes[])': FunctionFragment; + 'owner()': FunctionFragment; + 'paused()': FunctionFragment; + 'poolRebalanceRoute(uint256,address)': FunctionFragment; + 'pooledTokens(address)': FunctionFragment; + 'proposeRootBundle(uint256[],uint8,bytes32,bytes32,bytes32)': FunctionFragment; + 'protocolFeeCaptureAddress()': FunctionFragment; + 'protocolFeeCapturePct()': FunctionFragment; + 'relaySpokePoolAdminFunction(uint256,bytes)': FunctionFragment; + 'removeLiquidity(address,uint256,bool)': FunctionFragment; + 'renounceOwnership()': FunctionFragment; + 'rootBundleProposal()': FunctionFragment; + 'setBond(address,uint256)': FunctionFragment; + 'setCrossChainContracts(uint256,address,address)': FunctionFragment; + 'setCurrentTime(uint256)': FunctionFragment; + 'setDepositRoute(uint256,uint256,address,bool)': FunctionFragment; + 'setIdentifier(bytes32)': FunctionFragment; + 'setLiveness(uint32)': FunctionFragment; + 'setPaused(bool)': FunctionFragment; + 'setPoolRebalanceRoute(uint256,address,address)': FunctionFragment; + 'setProtocolFeeCapture(address,uint256)': FunctionFragment; + 'sync(address)': FunctionFragment; + 'timerAddress()': FunctionFragment; + 'transferOwnership(address)': FunctionFragment; + 'unclaimedAccumulatedProtocolFees(address)': FunctionFragment; + 'weth()': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'addLiquidity' + | 'bondAmount' + | 'bondToken' + | 'claimProtocolFeesCaptured' + | 'crossChainContracts' + | 'disableL1TokenForLiquidityProvision' + | 'disputeRootBundle' + | 'emergencyDeleteProposal' + | 'enableL1TokenForLiquidityProvision' + | 'exchangeRateCurrent' + | 'executeRootBundle' + | 'finder' + | 'getCurrentTime' + | 'haircutReserves' + | 'identifier' + | 'liquidityUtilizationCurrent' + | 'liquidityUtilizationPostRelay' + | 'liveness' + | 'loadEthForL2Calls' + | 'lpFeeRatePerSecond' + | 'lpTokenFactory' + | 'multicall' + | 'owner' + | 'paused' + | 'poolRebalanceRoute' + | 'pooledTokens' + | 'proposeRootBundle' + | 'protocolFeeCaptureAddress' + | 'protocolFeeCapturePct' + | 'relaySpokePoolAdminFunction' + | 'removeLiquidity' + | 'renounceOwnership' + | 'rootBundleProposal' + | 'setBond' + | 'setCrossChainContracts' + | 'setCurrentTime' + | 'setDepositRoute' + | 'setIdentifier' + | 'setLiveness' + | 'setPaused' + | 'setPoolRebalanceRoute' + | 'setProtocolFeeCapture' + | 'sync' + | 'timerAddress' + | 'transferOwnership' + | 'unclaimedAccumulatedProtocolFees' + | 'weth', + ): FunctionFragment; + + encodeFunctionData( + functionFragment: 'addLiquidity', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'bondAmount', values?: undefined): string; + encodeFunctionData(functionFragment: 'bondToken', values?: undefined): string; + encodeFunctionData(functionFragment: 'claimProtocolFeesCaptured', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'crossChainContracts', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'disableL1TokenForLiquidityProvision', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'disputeRootBundle', values?: undefined): string; + encodeFunctionData(functionFragment: 'emergencyDeleteProposal', values?: undefined): string; + encodeFunctionData(functionFragment: 'enableL1TokenForLiquidityProvision', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'exchangeRateCurrent', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'executeRootBundle', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue[], + PromiseOrValue[], + PromiseOrValue[], + PromiseOrValue, + PromiseOrValue[], + PromiseOrValue[], + ], + ): string; + encodeFunctionData(functionFragment: 'finder', values?: undefined): string; + encodeFunctionData(functionFragment: 'getCurrentTime', values?: undefined): string; + encodeFunctionData( + functionFragment: 'haircutReserves', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'identifier', values?: undefined): string; + encodeFunctionData(functionFragment: 'liquidityUtilizationCurrent', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'liquidityUtilizationPostRelay', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'liveness', values?: undefined): string; + encodeFunctionData(functionFragment: 'loadEthForL2Calls', values?: undefined): string; + encodeFunctionData(functionFragment: 'lpFeeRatePerSecond', values?: undefined): string; + encodeFunctionData(functionFragment: 'lpTokenFactory', values?: undefined): string; + encodeFunctionData(functionFragment: 'multicall', values: [PromiseOrValue[]]): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'paused', values?: undefined): string; + encodeFunctionData( + functionFragment: 'poolRebalanceRoute', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'pooledTokens', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'proposeRootBundle', + values: [ + PromiseOrValue[], + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'protocolFeeCaptureAddress', values?: undefined): string; + encodeFunctionData(functionFragment: 'protocolFeeCapturePct', values?: undefined): string; + encodeFunctionData( + functionFragment: 'relaySpokePoolAdminFunction', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'removeLiquidity', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string; + encodeFunctionData(functionFragment: 'rootBundleProposal', values?: undefined): string; + encodeFunctionData( + functionFragment: 'setBond', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setCrossChainContracts', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'setCurrentTime', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'setDepositRoute', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'setIdentifier', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'setLiveness', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'setPaused', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'setPoolRebalanceRoute', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setProtocolFeeCapture', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'sync', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'timerAddress', values?: undefined): string; + encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'unclaimedAccumulatedProtocolFees', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'weth', values?: undefined): string; + + decodeFunctionResult(functionFragment: 'addLiquidity', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'bondAmount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'bondToken', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'claimProtocolFeesCaptured', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'crossChainContracts', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'disableL1TokenForLiquidityProvision', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'disputeRootBundle', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'emergencyDeleteProposal', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'enableL1TokenForLiquidityProvision', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'exchangeRateCurrent', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'executeRootBundle', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'finder', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getCurrentTime', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'haircutReserves', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'identifier', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidityUtilizationCurrent', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidityUtilizationPostRelay', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liveness', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'loadEthForL2Calls', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lpFeeRatePerSecond', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lpTokenFactory', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'multicall', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'poolRebalanceRoute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pooledTokens', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'proposeRootBundle', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'protocolFeeCaptureAddress', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'protocolFeeCapturePct', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'relaySpokePoolAdminFunction', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'removeLiquidity', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rootBundleProposal', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setBond', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setCrossChainContracts', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setCurrentTime', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setDepositRoute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setIdentifier', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setLiveness', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setPaused', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setPoolRebalanceRoute', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setProtocolFeeCapture', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'sync', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'timerAddress', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'unclaimedAccumulatedProtocolFees', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'weth', data: BytesLike): Result; + + events: { + 'BondSet(address,uint256)': EventFragment; + 'CrossChainContractsSet(uint256,address,address)': EventFragment; + 'EmergencyRootBundleDeleted(bytes32,bytes32,bytes32,address)': EventFragment; + 'IdentifierSet(bytes32)': EventFragment; + 'L1TokenEnabledForLiquidityProvision(address,address)': EventFragment; + 'L2TokenDisabledForLiquidityProvision(address,address)': EventFragment; + 'LiquidityAdded(address,uint256,uint256,address)': EventFragment; + 'LiquidityRemoved(address,uint256,uint256,address)': EventFragment; + 'LivenessSet(uint256)': EventFragment; + 'OwnershipTransferred(address,address)': EventFragment; + 'Paused(bool)': EventFragment; + 'ProposeRootBundle(uint32,uint8,uint256[],bytes32,bytes32,bytes32,address)': EventFragment; + 'ProtocolFeeCaptureSet(address,uint256)': EventFragment; + 'ProtocolFeesCapturedClaimed(address,uint256)': EventFragment; + 'RootBundleCanceled(address,uint256)': EventFragment; + 'RootBundleDisputed(address,uint256)': EventFragment; + 'RootBundleExecuted(uint256,uint256,uint256,address[],uint256[],int256[],int256[],address)': EventFragment; + 'SetEnableDepositRoute(uint256,uint256,address,bool)': EventFragment; + 'SetPoolRebalanceRoute(uint256,address,address)': EventFragment; + 'SpokePoolAdminFunctionTriggered(uint256,bytes)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'BondSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CrossChainContractsSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'EmergencyRootBundleDeleted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'IdentifierSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'L1TokenEnabledForLiquidityProvision'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'L2TokenDisabledForLiquidityProvision'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'LiquidityAdded'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'LiquidityRemoved'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'LivenessSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'ProposeRootBundle'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'ProtocolFeeCaptureSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'ProtocolFeesCapturedClaimed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RootBundleCanceled'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RootBundleDisputed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RootBundleExecuted'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'SetEnableDepositRoute'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'SetPoolRebalanceRoute'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'SpokePoolAdminFunctionTriggered'): EventFragment; +} + +export interface BondSetEventObject { + newBondToken: string; + newBondAmount: BigNumber; +} +export type BondSetEvent = TypedEvent<[string, BigNumber], BondSetEventObject>; + +export type BondSetEventFilter = TypedEventFilter; + +export interface CrossChainContractsSetEventObject { + l2ChainId: BigNumber; + adapter: string; + spokePool: string; +} +export type CrossChainContractsSetEvent = TypedEvent<[BigNumber, string, string], CrossChainContractsSetEventObject>; + +export type CrossChainContractsSetEventFilter = TypedEventFilter; + +export interface EmergencyRootBundleDeletedEventObject { + poolRebalanceRoot: string; + relayerRefundRoot: string; + slowRelayRoot: string; + proposer: string; +} +export type EmergencyRootBundleDeletedEvent = TypedEvent< + [string, string, string, string], + EmergencyRootBundleDeletedEventObject +>; + +export type EmergencyRootBundleDeletedEventFilter = TypedEventFilter; + +export interface IdentifierSetEventObject { + newIdentifier: string; +} +export type IdentifierSetEvent = TypedEvent<[string], IdentifierSetEventObject>; + +export type IdentifierSetEventFilter = TypedEventFilter; + +export interface L1TokenEnabledForLiquidityProvisionEventObject { + l1Token: string; + lpToken: string; +} +export type L1TokenEnabledForLiquidityProvisionEvent = TypedEvent< + [string, string], + L1TokenEnabledForLiquidityProvisionEventObject +>; + +export type L1TokenEnabledForLiquidityProvisionEventFilter = TypedEventFilter; + +export interface L2TokenDisabledForLiquidityProvisionEventObject { + l1Token: string; + lpToken: string; +} +export type L2TokenDisabledForLiquidityProvisionEvent = TypedEvent< + [string, string], + L2TokenDisabledForLiquidityProvisionEventObject +>; + +export type L2TokenDisabledForLiquidityProvisionEventFilter = + TypedEventFilter; + +export interface LiquidityAddedEventObject { + l1Token: string; + amount: BigNumber; + lpTokensMinted: BigNumber; + liquidityProvider: string; +} +export type LiquidityAddedEvent = TypedEvent<[string, BigNumber, BigNumber, string], LiquidityAddedEventObject>; + +export type LiquidityAddedEventFilter = TypedEventFilter; + +export interface LiquidityRemovedEventObject { + l1Token: string; + amount: BigNumber; + lpTokensBurnt: BigNumber; + liquidityProvider: string; +} +export type LiquidityRemovedEvent = TypedEvent<[string, BigNumber, BigNumber, string], LiquidityRemovedEventObject>; + +export type LiquidityRemovedEventFilter = TypedEventFilter; + +export interface LivenessSetEventObject { + newLiveness: BigNumber; +} +export type LivenessSetEvent = TypedEvent<[BigNumber], LivenessSetEventObject>; + +export type LivenessSetEventFilter = TypedEventFilter; + +export interface OwnershipTransferredEventObject { + previousOwner: string; + newOwner: string; +} +export type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>; + +export type OwnershipTransferredEventFilter = TypedEventFilter; + +export interface PausedEventObject { + isPaused: boolean; +} +export type PausedEvent = TypedEvent<[boolean], PausedEventObject>; + +export type PausedEventFilter = TypedEventFilter; + +export interface ProposeRootBundleEventObject { + challengePeriodEndTimestamp: number; + poolRebalanceLeafCount: number; + bundleEvaluationBlockNumbers: BigNumber[]; + poolRebalanceRoot: string; + relayerRefundRoot: string; + slowRelayRoot: string; + proposer: string; +} +export type ProposeRootBundleEvent = TypedEvent< + [number, number, BigNumber[], string, string, string, string], + ProposeRootBundleEventObject +>; + +export type ProposeRootBundleEventFilter = TypedEventFilter; + +export interface ProtocolFeeCaptureSetEventObject { + newProtocolFeeCaptureAddress: string; + newProtocolFeeCapturePct: BigNumber; +} +export type ProtocolFeeCaptureSetEvent = TypedEvent<[string, BigNumber], ProtocolFeeCaptureSetEventObject>; + +export type ProtocolFeeCaptureSetEventFilter = TypedEventFilter; + +export interface ProtocolFeesCapturedClaimedEventObject { + l1Token: string; + accumulatedFees: BigNumber; +} +export type ProtocolFeesCapturedClaimedEvent = TypedEvent<[string, BigNumber], ProtocolFeesCapturedClaimedEventObject>; + +export type ProtocolFeesCapturedClaimedEventFilter = TypedEventFilter; + +export interface RootBundleCanceledEventObject { + disputer: string; + requestTime: BigNumber; +} +export type RootBundleCanceledEvent = TypedEvent<[string, BigNumber], RootBundleCanceledEventObject>; + +export type RootBundleCanceledEventFilter = TypedEventFilter; + +export interface RootBundleDisputedEventObject { + disputer: string; + requestTime: BigNumber; +} +export type RootBundleDisputedEvent = TypedEvent<[string, BigNumber], RootBundleDisputedEventObject>; + +export type RootBundleDisputedEventFilter = TypedEventFilter; + +export interface RootBundleExecutedEventObject { + groupIndex: BigNumber; + leafId: BigNumber; + chainId: BigNumber; + l1Tokens: string[]; + bundleLpFees: BigNumber[]; + netSendAmounts: BigNumber[]; + runningBalances: BigNumber[]; + caller: string; +} +export type RootBundleExecutedEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber, string[], BigNumber[], BigNumber[], BigNumber[], string], + RootBundleExecutedEventObject +>; + +export type RootBundleExecutedEventFilter = TypedEventFilter; + +export interface SetEnableDepositRouteEventObject { + originChainId: BigNumber; + destinationChainId: BigNumber; + originToken: string; + depositsEnabled: boolean; +} +export type SetEnableDepositRouteEvent = TypedEvent< + [BigNumber, BigNumber, string, boolean], + SetEnableDepositRouteEventObject +>; + +export type SetEnableDepositRouteEventFilter = TypedEventFilter; + +export interface SetPoolRebalanceRouteEventObject { + destinationChainId: BigNumber; + l1Token: string; + destinationToken: string; +} +export type SetPoolRebalanceRouteEvent = TypedEvent<[BigNumber, string, string], SetPoolRebalanceRouteEventObject>; + +export type SetPoolRebalanceRouteEventFilter = TypedEventFilter; + +export interface SpokePoolAdminFunctionTriggeredEventObject { + chainId: BigNumber; + message: string; +} +export type SpokePoolAdminFunctionTriggeredEvent = TypedEvent< + [BigNumber, string], + SpokePoolAdminFunctionTriggeredEventObject +>; + +export type SpokePoolAdminFunctionTriggeredEventFilter = TypedEventFilter; + +export interface AcrossV2HubPool extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: AcrossV2HubPoolInterface; + + 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: { + addLiquidity( + l1Token: PromiseOrValue, + l1TokenAmount: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + bondAmount(overrides?: CallOverrides): Promise<[BigNumber]>; + + bondToken(overrides?: CallOverrides): Promise<[string]>; + + claimProtocolFeesCaptured( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + crossChainContracts( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string, string] & { adapter: string; spokePool: string }>; + + disableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + disputeRootBundle(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + emergencyDeleteProposal(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + enableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + exchangeRateCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + executeRootBundle( + chainId: PromiseOrValue, + groupIndex: PromiseOrValue, + bundleLpFees: PromiseOrValue[], + netSendAmounts: PromiseOrValue[], + runningBalances: PromiseOrValue[], + leafId: PromiseOrValue, + l1Tokens: PromiseOrValue[], + proof: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finder(overrides?: CallOverrides): Promise<[string]>; + + getCurrentTime(overrides?: CallOverrides): Promise<[BigNumber]>; + + haircutReserves( + l1Token: PromiseOrValue, + haircutAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + identifier(overrides?: CallOverrides): Promise<[string]>; + + liquidityUtilizationCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityUtilizationPostRelay( + l1Token: PromiseOrValue, + relayedAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liveness(overrides?: CallOverrides): Promise<[number]>; + + loadEthForL2Calls(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + lpFeeRatePerSecond(overrides?: CallOverrides): Promise<[BigNumber]>; + + lpTokenFactory(overrides?: CallOverrides): Promise<[string]>; + + multicall( + data: PromiseOrValue[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + paused(overrides?: CallOverrides): Promise<[boolean]>; + + poolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string] & { destinationToken: string }>; + + pooledTokens( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, boolean, number, BigNumber, BigNumber, BigNumber] & { + lpToken: string; + isEnabled: boolean; + lastLpFeeUpdate: number; + utilizedReserves: BigNumber; + liquidReserves: BigNumber; + undistributedLpFees: BigNumber; + } + >; + + proposeRootBundle( + bundleEvaluationBlockNumbers: PromiseOrValue[], + poolRebalanceLeafCount: PromiseOrValue, + poolRebalanceRoot: PromiseOrValue, + relayerRefundRoot: PromiseOrValue, + slowRelayRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protocolFeeCaptureAddress(overrides?: CallOverrides): Promise<[string]>; + + protocolFeeCapturePct(overrides?: CallOverrides): Promise<[BigNumber]>; + + relaySpokePoolAdminFunction( + chainId: PromiseOrValue, + functionData: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + removeLiquidity( + l1Token: PromiseOrValue, + lpTokenAmount: PromiseOrValue, + sendEth: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + rootBundleProposal(overrides?: CallOverrides): Promise< + [string, string, string, BigNumber, string, number, number] & { + poolRebalanceRoot: string; + relayerRefundRoot: string; + slowRelayRoot: string; + claimedBitMap: BigNumber; + proposer: string; + unclaimedPoolRebalanceLeafCount: number; + challengePeriodEndTimestamp: number; + } + >; + + setBond( + newBondToken: PromiseOrValue, + newBondAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCrossChainContracts( + l2ChainId: PromiseOrValue, + adapter: PromiseOrValue, + spokePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCurrentTime( + time: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setDepositRoute( + originChainId: PromiseOrValue, + destinationChainId: PromiseOrValue, + originToken: PromiseOrValue, + depositsEnabled: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setIdentifier( + newIdentifier: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiveness( + newLiveness: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPaused( + pause: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + destinationToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setProtocolFeeCapture( + newProtocolFeeCaptureAddress: PromiseOrValue, + newProtocolFeeCapturePct: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sync( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + timerAddress(overrides?: CallOverrides): Promise<[string]>; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unclaimedAccumulatedProtocolFees(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + weth(overrides?: CallOverrides): Promise<[string]>; + }; + + addLiquidity( + l1Token: PromiseOrValue, + l1TokenAmount: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + bondAmount(overrides?: CallOverrides): Promise; + + bondToken(overrides?: CallOverrides): Promise; + + claimProtocolFeesCaptured( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + crossChainContracts( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string, string] & { adapter: string; spokePool: string }>; + + disableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + disputeRootBundle(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + emergencyDeleteProposal(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + enableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + exchangeRateCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + executeRootBundle( + chainId: PromiseOrValue, + groupIndex: PromiseOrValue, + bundleLpFees: PromiseOrValue[], + netSendAmounts: PromiseOrValue[], + runningBalances: PromiseOrValue[], + leafId: PromiseOrValue, + l1Tokens: PromiseOrValue[], + proof: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finder(overrides?: CallOverrides): Promise; + + getCurrentTime(overrides?: CallOverrides): Promise; + + haircutReserves( + l1Token: PromiseOrValue, + haircutAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + identifier(overrides?: CallOverrides): Promise; + + liquidityUtilizationCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityUtilizationPostRelay( + l1Token: PromiseOrValue, + relayedAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liveness(overrides?: CallOverrides): Promise; + + loadEthForL2Calls(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + lpFeeRatePerSecond(overrides?: CallOverrides): Promise; + + lpTokenFactory(overrides?: CallOverrides): Promise; + + multicall( + data: PromiseOrValue[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + poolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + pooledTokens( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, boolean, number, BigNumber, BigNumber, BigNumber] & { + lpToken: string; + isEnabled: boolean; + lastLpFeeUpdate: number; + utilizedReserves: BigNumber; + liquidReserves: BigNumber; + undistributedLpFees: BigNumber; + } + >; + + proposeRootBundle( + bundleEvaluationBlockNumbers: PromiseOrValue[], + poolRebalanceLeafCount: PromiseOrValue, + poolRebalanceRoot: PromiseOrValue, + relayerRefundRoot: PromiseOrValue, + slowRelayRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protocolFeeCaptureAddress(overrides?: CallOverrides): Promise; + + protocolFeeCapturePct(overrides?: CallOverrides): Promise; + + relaySpokePoolAdminFunction( + chainId: PromiseOrValue, + functionData: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + removeLiquidity( + l1Token: PromiseOrValue, + lpTokenAmount: PromiseOrValue, + sendEth: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + rootBundleProposal(overrides?: CallOverrides): Promise< + [string, string, string, BigNumber, string, number, number] & { + poolRebalanceRoot: string; + relayerRefundRoot: string; + slowRelayRoot: string; + claimedBitMap: BigNumber; + proposer: string; + unclaimedPoolRebalanceLeafCount: number; + challengePeriodEndTimestamp: number; + } + >; + + setBond( + newBondToken: PromiseOrValue, + newBondAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCrossChainContracts( + l2ChainId: PromiseOrValue, + adapter: PromiseOrValue, + spokePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCurrentTime( + time: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setDepositRoute( + originChainId: PromiseOrValue, + destinationChainId: PromiseOrValue, + originToken: PromiseOrValue, + depositsEnabled: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setIdentifier( + newIdentifier: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiveness( + newLiveness: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPaused( + pause: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + destinationToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setProtocolFeeCapture( + newProtocolFeeCaptureAddress: PromiseOrValue, + newProtocolFeeCapturePct: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sync( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + timerAddress(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unclaimedAccumulatedProtocolFees(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + weth(overrides?: CallOverrides): Promise; + + callStatic: { + addLiquidity( + l1Token: PromiseOrValue, + l1TokenAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + bondAmount(overrides?: CallOverrides): Promise; + + bondToken(overrides?: CallOverrides): Promise; + + claimProtocolFeesCaptured(l1Token: PromiseOrValue, overrides?: CallOverrides): Promise; + + crossChainContracts( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string, string] & { adapter: string; spokePool: string }>; + + disableL1TokenForLiquidityProvision(l1Token: PromiseOrValue, overrides?: CallOverrides): Promise; + + disputeRootBundle(overrides?: CallOverrides): Promise; + + emergencyDeleteProposal(overrides?: CallOverrides): Promise; + + enableL1TokenForLiquidityProvision(l1Token: PromiseOrValue, overrides?: CallOverrides): Promise; + + exchangeRateCurrent(l1Token: PromiseOrValue, overrides?: CallOverrides): Promise; + + executeRootBundle( + chainId: PromiseOrValue, + groupIndex: PromiseOrValue, + bundleLpFees: PromiseOrValue[], + netSendAmounts: PromiseOrValue[], + runningBalances: PromiseOrValue[], + leafId: PromiseOrValue, + l1Tokens: PromiseOrValue[], + proof: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + finder(overrides?: CallOverrides): Promise; + + getCurrentTime(overrides?: CallOverrides): Promise; + + haircutReserves( + l1Token: PromiseOrValue, + haircutAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + identifier(overrides?: CallOverrides): Promise; + + liquidityUtilizationCurrent(l1Token: PromiseOrValue, overrides?: CallOverrides): Promise; + + liquidityUtilizationPostRelay( + l1Token: PromiseOrValue, + relayedAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + liveness(overrides?: CallOverrides): Promise; + + loadEthForL2Calls(overrides?: CallOverrides): Promise; + + lpFeeRatePerSecond(overrides?: CallOverrides): Promise; + + lpTokenFactory(overrides?: CallOverrides): Promise; + + multicall(data: PromiseOrValue[], overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + poolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + pooledTokens( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, boolean, number, BigNumber, BigNumber, BigNumber] & { + lpToken: string; + isEnabled: boolean; + lastLpFeeUpdate: number; + utilizedReserves: BigNumber; + liquidReserves: BigNumber; + undistributedLpFees: BigNumber; + } + >; + + proposeRootBundle( + bundleEvaluationBlockNumbers: PromiseOrValue[], + poolRebalanceLeafCount: PromiseOrValue, + poolRebalanceRoot: PromiseOrValue, + relayerRefundRoot: PromiseOrValue, + slowRelayRoot: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + protocolFeeCaptureAddress(overrides?: CallOverrides): Promise; + + protocolFeeCapturePct(overrides?: CallOverrides): Promise; + + relaySpokePoolAdminFunction( + chainId: PromiseOrValue, + functionData: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + removeLiquidity( + l1Token: PromiseOrValue, + lpTokenAmount: PromiseOrValue, + sendEth: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + renounceOwnership(overrides?: CallOverrides): Promise; + + rootBundleProposal(overrides?: CallOverrides): Promise< + [string, string, string, BigNumber, string, number, number] & { + poolRebalanceRoot: string; + relayerRefundRoot: string; + slowRelayRoot: string; + claimedBitMap: BigNumber; + proposer: string; + unclaimedPoolRebalanceLeafCount: number; + challengePeriodEndTimestamp: number; + } + >; + + setBond( + newBondToken: PromiseOrValue, + newBondAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setCrossChainContracts( + l2ChainId: PromiseOrValue, + adapter: PromiseOrValue, + spokePool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setCurrentTime(time: PromiseOrValue, overrides?: CallOverrides): Promise; + + setDepositRoute( + originChainId: PromiseOrValue, + destinationChainId: PromiseOrValue, + originToken: PromiseOrValue, + depositsEnabled: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setIdentifier(newIdentifier: PromiseOrValue, overrides?: CallOverrides): Promise; + + setLiveness(newLiveness: PromiseOrValue, overrides?: CallOverrides): Promise; + + setPaused(pause: PromiseOrValue, overrides?: CallOverrides): Promise; + + setPoolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + destinationToken: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setProtocolFeeCapture( + newProtocolFeeCaptureAddress: PromiseOrValue, + newProtocolFeeCapturePct: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + sync(l1Token: PromiseOrValue, overrides?: CallOverrides): Promise; + + timerAddress(overrides?: CallOverrides): Promise; + + transferOwnership(newOwner: PromiseOrValue, overrides?: CallOverrides): Promise; + + unclaimedAccumulatedProtocolFees(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + weth(overrides?: CallOverrides): Promise; + }; + + filters: { + 'BondSet(address,uint256)'(newBondToken?: PromiseOrValue | null, newBondAmount?: null): BondSetEventFilter; + BondSet(newBondToken?: PromiseOrValue | null, newBondAmount?: null): BondSetEventFilter; + + 'CrossChainContractsSet(uint256,address,address)'( + l2ChainId?: null, + adapter?: null, + spokePool?: null, + ): CrossChainContractsSetEventFilter; + CrossChainContractsSet(l2ChainId?: null, adapter?: null, spokePool?: null): CrossChainContractsSetEventFilter; + + 'EmergencyRootBundleDeleted(bytes32,bytes32,bytes32,address)'( + poolRebalanceRoot?: PromiseOrValue | null, + relayerRefundRoot?: PromiseOrValue | null, + slowRelayRoot?: null, + proposer?: PromiseOrValue | null, + ): EmergencyRootBundleDeletedEventFilter; + EmergencyRootBundleDeleted( + poolRebalanceRoot?: PromiseOrValue | null, + relayerRefundRoot?: PromiseOrValue | null, + slowRelayRoot?: null, + proposer?: PromiseOrValue | null, + ): EmergencyRootBundleDeletedEventFilter; + + 'IdentifierSet(bytes32)'(newIdentifier?: null): IdentifierSetEventFilter; + IdentifierSet(newIdentifier?: null): IdentifierSetEventFilter; + + 'L1TokenEnabledForLiquidityProvision(address,address)'( + l1Token?: null, + lpToken?: null, + ): L1TokenEnabledForLiquidityProvisionEventFilter; + L1TokenEnabledForLiquidityProvision(l1Token?: null, lpToken?: null): L1TokenEnabledForLiquidityProvisionEventFilter; + + 'L2TokenDisabledForLiquidityProvision(address,address)'( + l1Token?: null, + lpToken?: null, + ): L2TokenDisabledForLiquidityProvisionEventFilter; + L2TokenDisabledForLiquidityProvision( + l1Token?: null, + lpToken?: null, + ): L2TokenDisabledForLiquidityProvisionEventFilter; + + 'LiquidityAdded(address,uint256,uint256,address)'( + l1Token?: PromiseOrValue | null, + amount?: null, + lpTokensMinted?: null, + liquidityProvider?: PromiseOrValue | null, + ): LiquidityAddedEventFilter; + LiquidityAdded( + l1Token?: PromiseOrValue | null, + amount?: null, + lpTokensMinted?: null, + liquidityProvider?: PromiseOrValue | null, + ): LiquidityAddedEventFilter; + + 'LiquidityRemoved(address,uint256,uint256,address)'( + l1Token?: PromiseOrValue | null, + amount?: null, + lpTokensBurnt?: null, + liquidityProvider?: PromiseOrValue | null, + ): LiquidityRemovedEventFilter; + LiquidityRemoved( + l1Token?: PromiseOrValue | null, + amount?: null, + lpTokensBurnt?: null, + liquidityProvider?: PromiseOrValue | null, + ): LiquidityRemovedEventFilter; + + 'LivenessSet(uint256)'(newLiveness?: null): LivenessSetEventFilter; + LivenessSet(newLiveness?: null): LivenessSetEventFilter; + + 'OwnershipTransferred(address,address)'( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + OwnershipTransferred( + previousOwner?: PromiseOrValue | null, + newOwner?: PromiseOrValue | null, + ): OwnershipTransferredEventFilter; + + 'Paused(bool)'(isPaused?: PromiseOrValue | null): PausedEventFilter; + Paused(isPaused?: PromiseOrValue | null): PausedEventFilter; + + 'ProposeRootBundle(uint32,uint8,uint256[],bytes32,bytes32,bytes32,address)'( + challengePeriodEndTimestamp?: null, + poolRebalanceLeafCount?: null, + bundleEvaluationBlockNumbers?: null, + poolRebalanceRoot?: PromiseOrValue | null, + relayerRefundRoot?: PromiseOrValue | null, + slowRelayRoot?: null, + proposer?: PromiseOrValue | null, + ): ProposeRootBundleEventFilter; + ProposeRootBundle( + challengePeriodEndTimestamp?: null, + poolRebalanceLeafCount?: null, + bundleEvaluationBlockNumbers?: null, + poolRebalanceRoot?: PromiseOrValue | null, + relayerRefundRoot?: PromiseOrValue | null, + slowRelayRoot?: null, + proposer?: PromiseOrValue | null, + ): ProposeRootBundleEventFilter; + + 'ProtocolFeeCaptureSet(address,uint256)'( + newProtocolFeeCaptureAddress?: PromiseOrValue | null, + newProtocolFeeCapturePct?: PromiseOrValue | null, + ): ProtocolFeeCaptureSetEventFilter; + ProtocolFeeCaptureSet( + newProtocolFeeCaptureAddress?: PromiseOrValue | null, + newProtocolFeeCapturePct?: PromiseOrValue | null, + ): ProtocolFeeCaptureSetEventFilter; + + 'ProtocolFeesCapturedClaimed(address,uint256)'( + l1Token?: PromiseOrValue | null, + accumulatedFees?: PromiseOrValue | null, + ): ProtocolFeesCapturedClaimedEventFilter; + ProtocolFeesCapturedClaimed( + l1Token?: PromiseOrValue | null, + accumulatedFees?: PromiseOrValue | null, + ): ProtocolFeesCapturedClaimedEventFilter; + + 'RootBundleCanceled(address,uint256)'( + disputer?: PromiseOrValue | null, + requestTime?: null, + ): RootBundleCanceledEventFilter; + RootBundleCanceled(disputer?: PromiseOrValue | null, requestTime?: null): RootBundleCanceledEventFilter; + + 'RootBundleDisputed(address,uint256)'( + disputer?: PromiseOrValue | null, + requestTime?: null, + ): RootBundleDisputedEventFilter; + RootBundleDisputed(disputer?: PromiseOrValue | null, requestTime?: null): RootBundleDisputedEventFilter; + + 'RootBundleExecuted(uint256,uint256,uint256,address[],uint256[],int256[],int256[],address)'( + groupIndex?: null, + leafId?: PromiseOrValue | null, + chainId?: PromiseOrValue | null, + l1Tokens?: null, + bundleLpFees?: null, + netSendAmounts?: null, + runningBalances?: null, + caller?: PromiseOrValue | null, + ): RootBundleExecutedEventFilter; + RootBundleExecuted( + groupIndex?: null, + leafId?: PromiseOrValue | null, + chainId?: PromiseOrValue | null, + l1Tokens?: null, + bundleLpFees?: null, + netSendAmounts?: null, + runningBalances?: null, + caller?: PromiseOrValue | null, + ): RootBundleExecutedEventFilter; + + 'SetEnableDepositRoute(uint256,uint256,address,bool)'( + originChainId?: PromiseOrValue | null, + destinationChainId?: PromiseOrValue | null, + originToken?: PromiseOrValue | null, + depositsEnabled?: null, + ): SetEnableDepositRouteEventFilter; + SetEnableDepositRoute( + originChainId?: PromiseOrValue | null, + destinationChainId?: PromiseOrValue | null, + originToken?: PromiseOrValue | null, + depositsEnabled?: null, + ): SetEnableDepositRouteEventFilter; + + 'SetPoolRebalanceRoute(uint256,address,address)'( + destinationChainId?: PromiseOrValue | null, + l1Token?: PromiseOrValue | null, + destinationToken?: PromiseOrValue | null, + ): SetPoolRebalanceRouteEventFilter; + SetPoolRebalanceRoute( + destinationChainId?: PromiseOrValue | null, + l1Token?: PromiseOrValue | null, + destinationToken?: PromiseOrValue | null, + ): SetPoolRebalanceRouteEventFilter; + + 'SpokePoolAdminFunctionTriggered(uint256,bytes)'( + chainId?: PromiseOrValue | null, + message?: null, + ): SpokePoolAdminFunctionTriggeredEventFilter; + SpokePoolAdminFunctionTriggered( + chainId?: PromiseOrValue | null, + message?: null, + ): SpokePoolAdminFunctionTriggeredEventFilter; + }; + + estimateGas: { + addLiquidity( + l1Token: PromiseOrValue, + l1TokenAmount: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + bondAmount(overrides?: CallOverrides): Promise; + + bondToken(overrides?: CallOverrides): Promise; + + claimProtocolFeesCaptured( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + crossChainContracts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + disableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + disputeRootBundle(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + emergencyDeleteProposal(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + enableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + exchangeRateCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + executeRootBundle( + chainId: PromiseOrValue, + groupIndex: PromiseOrValue, + bundleLpFees: PromiseOrValue[], + netSendAmounts: PromiseOrValue[], + runningBalances: PromiseOrValue[], + leafId: PromiseOrValue, + l1Tokens: PromiseOrValue[], + proof: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finder(overrides?: CallOverrides): Promise; + + getCurrentTime(overrides?: CallOverrides): Promise; + + haircutReserves( + l1Token: PromiseOrValue, + haircutAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + identifier(overrides?: CallOverrides): Promise; + + liquidityUtilizationCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityUtilizationPostRelay( + l1Token: PromiseOrValue, + relayedAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liveness(overrides?: CallOverrides): Promise; + + loadEthForL2Calls(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + lpFeeRatePerSecond(overrides?: CallOverrides): Promise; + + lpTokenFactory(overrides?: CallOverrides): Promise; + + multicall( + data: PromiseOrValue[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + poolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + pooledTokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + proposeRootBundle( + bundleEvaluationBlockNumbers: PromiseOrValue[], + poolRebalanceLeafCount: PromiseOrValue, + poolRebalanceRoot: PromiseOrValue, + relayerRefundRoot: PromiseOrValue, + slowRelayRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protocolFeeCaptureAddress(overrides?: CallOverrides): Promise; + + protocolFeeCapturePct(overrides?: CallOverrides): Promise; + + relaySpokePoolAdminFunction( + chainId: PromiseOrValue, + functionData: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + removeLiquidity( + l1Token: PromiseOrValue, + lpTokenAmount: PromiseOrValue, + sendEth: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + rootBundleProposal(overrides?: CallOverrides): Promise; + + setBond( + newBondToken: PromiseOrValue, + newBondAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCrossChainContracts( + l2ChainId: PromiseOrValue, + adapter: PromiseOrValue, + spokePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCurrentTime( + time: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setDepositRoute( + originChainId: PromiseOrValue, + destinationChainId: PromiseOrValue, + originToken: PromiseOrValue, + depositsEnabled: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setIdentifier( + newIdentifier: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiveness( + newLiveness: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPaused( + pause: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + destinationToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setProtocolFeeCapture( + newProtocolFeeCaptureAddress: PromiseOrValue, + newProtocolFeeCapturePct: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sync( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + timerAddress(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unclaimedAccumulatedProtocolFees(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + weth(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + addLiquidity( + l1Token: PromiseOrValue, + l1TokenAmount: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + bondAmount(overrides?: CallOverrides): Promise; + + bondToken(overrides?: CallOverrides): Promise; + + claimProtocolFeesCaptured( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + crossChainContracts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + disableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + disputeRootBundle(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + emergencyDeleteProposal(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + enableL1TokenForLiquidityProvision( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + exchangeRateCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + executeRootBundle( + chainId: PromiseOrValue, + groupIndex: PromiseOrValue, + bundleLpFees: PromiseOrValue[], + netSendAmounts: PromiseOrValue[], + runningBalances: PromiseOrValue[], + leafId: PromiseOrValue, + l1Tokens: PromiseOrValue[], + proof: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + finder(overrides?: CallOverrides): Promise; + + getCurrentTime(overrides?: CallOverrides): Promise; + + haircutReserves( + l1Token: PromiseOrValue, + haircutAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + identifier(overrides?: CallOverrides): Promise; + + liquidityUtilizationCurrent( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityUtilizationPostRelay( + l1Token: PromiseOrValue, + relayedAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liveness(overrides?: CallOverrides): Promise; + + loadEthForL2Calls(overrides?: PayableOverrides & { from?: PromiseOrValue }): Promise; + + lpFeeRatePerSecond(overrides?: CallOverrides): Promise; + + lpTokenFactory(overrides?: CallOverrides): Promise; + + multicall( + data: PromiseOrValue[], + overrides?: PayableOverrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + poolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + pooledTokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + proposeRootBundle( + bundleEvaluationBlockNumbers: PromiseOrValue[], + poolRebalanceLeafCount: PromiseOrValue, + poolRebalanceRoot: PromiseOrValue, + relayerRefundRoot: PromiseOrValue, + slowRelayRoot: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protocolFeeCaptureAddress(overrides?: CallOverrides): Promise; + + protocolFeeCapturePct(overrides?: CallOverrides): Promise; + + relaySpokePoolAdminFunction( + chainId: PromiseOrValue, + functionData: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + removeLiquidity( + l1Token: PromiseOrValue, + lpTokenAmount: PromiseOrValue, + sendEth: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + rootBundleProposal(overrides?: CallOverrides): Promise; + + setBond( + newBondToken: PromiseOrValue, + newBondAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCrossChainContracts( + l2ChainId: PromiseOrValue, + adapter: PromiseOrValue, + spokePool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCurrentTime( + time: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setDepositRoute( + originChainId: PromiseOrValue, + destinationChainId: PromiseOrValue, + originToken: PromiseOrValue, + depositsEnabled: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setIdentifier( + newIdentifier: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiveness( + newLiveness: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPaused( + pause: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolRebalanceRoute( + destinationChainId: PromiseOrValue, + l1Token: PromiseOrValue, + destinationToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setProtocolFeeCapture( + newProtocolFeeCaptureAddress: PromiseOrValue, + newProtocolFeeCapturePct: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sync( + l1Token: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + timerAddress(overrides?: CallOverrides): Promise; + + transferOwnership( + newOwner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unclaimedAccumulatedProtocolFees( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + weth(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/apps/across/contracts/ethers/AcrossV2PoolToken.ts b/src/apps/across/contracts/ethers/AcrossV2PoolToken.ts new file mode 100644 index 000000000..6563bae87 --- /dev/null +++ b/src/apps/across/contracts/ethers/AcrossV2PoolToken.ts @@ -0,0 +1,833 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + 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 interface AcrossV2PoolTokenInterface extends utils.Interface { + functions: { + 'addBurner(address)': FunctionFragment; + 'addMember(uint256,address)': FunctionFragment; + 'addMinter(address)': FunctionFragment; + 'allowance(address,address)': FunctionFragment; + 'approve(address,uint256)': FunctionFragment; + 'balanceOf(address)': FunctionFragment; + 'burn(uint256)': FunctionFragment; + 'burnFrom(address,uint256)': FunctionFragment; + 'decimals()': FunctionFragment; + 'decreaseAllowance(address,uint256)': FunctionFragment; + 'getMember(uint256)': FunctionFragment; + 'holdsRole(uint256,address)': FunctionFragment; + 'increaseAllowance(address,uint256)': FunctionFragment; + 'mint(address,uint256)': FunctionFragment; + 'name()': FunctionFragment; + 'removeMember(uint256,address)': FunctionFragment; + 'renounceMembership(uint256)': FunctionFragment; + 'resetMember(uint256,address)': FunctionFragment; + 'resetOwner(address)': FunctionFragment; + 'symbol()': FunctionFragment; + 'totalSupply()': FunctionFragment; + 'transfer(address,uint256)': FunctionFragment; + 'transferFrom(address,address,uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'addBurner' + | 'addMember' + | 'addMinter' + | 'allowance' + | 'approve' + | 'balanceOf' + | 'burn' + | 'burnFrom' + | 'decimals' + | 'decreaseAllowance' + | 'getMember' + | 'holdsRole' + | 'increaseAllowance' + | 'mint' + | 'name' + | 'removeMember' + | 'renounceMembership' + | 'resetMember' + | 'resetOwner' + | 'symbol' + | 'totalSupply' + | 'transfer' + | 'transferFrom', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'addBurner', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'addMember', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'addMinter', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'approve', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'burn', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'burnFrom', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'decimals', values?: undefined): string; + encodeFunctionData( + functionFragment: 'decreaseAllowance', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'getMember', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'holdsRole', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'increaseAllowance', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'name', values?: undefined): string; + encodeFunctionData( + functionFragment: 'removeMember', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'renounceMembership', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'resetMember', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'resetOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'symbol', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; + encodeFunctionData( + functionFragment: 'transfer', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferFrom', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'addBurner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'addMember', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'addMinter', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'burn', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'burnFrom', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMember', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'holdsRole', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'removeMember', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'renounceMembership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'resetMember', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'resetOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result; + + events: { + 'AddedSharedMember(uint256,address,address)': EventFragment; + 'Approval(address,address,uint256)': EventFragment; + 'RemovedSharedMember(uint256,address,address)': EventFragment; + 'ResetExclusiveMember(uint256,address,address)': EventFragment; + 'Transfer(address,address,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'AddedSharedMember'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RemovedSharedMember'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'ResetExclusiveMember'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment; +} + +export interface AddedSharedMemberEventObject { + roleId: BigNumber; + newMember: string; + manager: string; +} +export type AddedSharedMemberEvent = TypedEvent<[BigNumber, string, string], AddedSharedMemberEventObject>; + +export type AddedSharedMemberEventFilter = TypedEventFilter; + +export interface ApprovalEventObject { + owner: string; + spender: string; + value: BigNumber; +} +export type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>; + +export type ApprovalEventFilter = TypedEventFilter; + +export interface RemovedSharedMemberEventObject { + roleId: BigNumber; + oldMember: string; + manager: string; +} +export type RemovedSharedMemberEvent = TypedEvent<[BigNumber, string, string], RemovedSharedMemberEventObject>; + +export type RemovedSharedMemberEventFilter = TypedEventFilter; + +export interface ResetExclusiveMemberEventObject { + roleId: BigNumber; + newMember: string; + manager: string; +} +export type ResetExclusiveMemberEvent = TypedEvent<[BigNumber, string, string], ResetExclusiveMemberEventObject>; + +export type ResetExclusiveMemberEventFilter = TypedEventFilter; + +export interface TransferEventObject { + from: string; + to: string; + value: BigNumber; +} +export type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>; + +export type TransferEventFilter = TypedEventFilter; + +export interface AcrossV2PoolToken extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: AcrossV2PoolTokenInterface; + + 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: { + addBurner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMinter( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + burn( + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + burnFrom( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getMember(roleId: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + holdsRole( + roleId: PromiseOrValue, + memberToCheck: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + mint( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + removeMember( + roleId: PromiseOrValue, + memberToRemove: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceMembership( + roleId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetOwner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + addBurner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMinter( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + burnFrom( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getMember(roleId: PromiseOrValue, overrides?: CallOverrides): Promise; + + holdsRole( + roleId: PromiseOrValue, + memberToCheck: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + mint( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + removeMember( + roleId: PromiseOrValue, + memberToRemove: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceMembership( + roleId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetOwner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + addBurner(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + addMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + addMinter(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn(value: PromiseOrValue, overrides?: CallOverrides): Promise; + + burnFrom( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getMember(roleId: PromiseOrValue, overrides?: CallOverrides): Promise; + + holdsRole( + roleId: PromiseOrValue, + memberToCheck: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + mint( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + removeMember( + roleId: PromiseOrValue, + memberToRemove: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + renounceMembership(roleId: PromiseOrValue, overrides?: CallOverrides): Promise; + + resetMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + resetOwner(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'AddedSharedMember(uint256,address,address)'( + roleId?: PromiseOrValue | null, + newMember?: PromiseOrValue | null, + manager?: PromiseOrValue | null, + ): AddedSharedMemberEventFilter; + AddedSharedMember( + roleId?: PromiseOrValue | null, + newMember?: PromiseOrValue | null, + manager?: PromiseOrValue | null, + ): AddedSharedMemberEventFilter; + + 'Approval(address,address,uint256)'( + owner?: PromiseOrValue | null, + spender?: PromiseOrValue | null, + value?: null, + ): ApprovalEventFilter; + Approval( + owner?: PromiseOrValue | null, + spender?: PromiseOrValue | null, + value?: null, + ): ApprovalEventFilter; + + 'RemovedSharedMember(uint256,address,address)'( + roleId?: PromiseOrValue | null, + oldMember?: PromiseOrValue | null, + manager?: PromiseOrValue | null, + ): RemovedSharedMemberEventFilter; + RemovedSharedMember( + roleId?: PromiseOrValue | null, + oldMember?: PromiseOrValue | null, + manager?: PromiseOrValue | null, + ): RemovedSharedMemberEventFilter; + + 'ResetExclusiveMember(uint256,address,address)'( + roleId?: PromiseOrValue | null, + newMember?: PromiseOrValue | null, + manager?: PromiseOrValue | null, + ): ResetExclusiveMemberEventFilter; + ResetExclusiveMember( + roleId?: PromiseOrValue | null, + newMember?: PromiseOrValue | null, + manager?: PromiseOrValue | null, + ): ResetExclusiveMemberEventFilter; + + 'Transfer(address,address,uint256)'( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + value?: null, + ): TransferEventFilter; + Transfer( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + value?: null, + ): TransferEventFilter; + }; + + estimateGas: { + addBurner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMinter( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + burnFrom( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getMember(roleId: PromiseOrValue, overrides?: CallOverrides): Promise; + + holdsRole( + roleId: PromiseOrValue, + memberToCheck: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + mint( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + removeMember( + roleId: PromiseOrValue, + memberToRemove: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceMembership( + roleId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetOwner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + addBurner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addMinter( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + burnFrom( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getMember(roleId: PromiseOrValue, overrides?: CallOverrides): Promise; + + holdsRole( + roleId: PromiseOrValue, + memberToCheck: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + mint( + recipient: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + removeMember( + roleId: PromiseOrValue, + memberToRemove: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + renounceMembership( + roleId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetMember( + roleId: PromiseOrValue, + newMember: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + resetOwner( + account: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/across/contracts/ethers/factories/AcrossV2HubPool__factory.ts b/src/apps/across/contracts/ethers/factories/AcrossV2HubPool__factory.ts new file mode 100644 index 000000000..dde39e288 --- /dev/null +++ b/src/apps/across/contracts/ethers/factories/AcrossV2HubPool__factory.ts @@ -0,0 +1,1372 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { AcrossV2HubPool, AcrossV2HubPoolInterface } from '../AcrossV2HubPool'; + +const _abi = [ + { + inputs: [ + { + internalType: 'contract LpTokenFactoryInterface', + name: '_lpTokenFactory', + type: 'address', + }, + { + internalType: 'contract FinderInterface', + name: '_finder', + type: 'address', + }, + { + internalType: 'contract WETH9', + name: '_weth', + type: 'address', + }, + { + internalType: 'address', + name: '_timer', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'newBondToken', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'newBondAmount', + type: 'uint256', + }, + ], + name: 'BondSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'l2ChainId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'address', + name: 'adapter', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'spokePool', + type: 'address', + }, + ], + name: 'CrossChainContractsSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'poolRebalanceRoot', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'bytes32', + name: 'relayerRefundRoot', + type: 'bytes32', + }, + { + indexed: false, + internalType: 'bytes32', + name: 'slowRelayRoot', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'proposer', + type: 'address', + }, + ], + name: 'EmergencyRootBundleDeleted', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'bytes32', + name: 'newIdentifier', + type: 'bytes32', + }, + ], + name: 'IdentifierSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'lpToken', + type: 'address', + }, + ], + name: 'L1TokenEnabledForLiquidityProvision', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'lpToken', + type: 'address', + }, + ], + name: 'L2TokenDisabledForLiquidityProvision', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'lpTokensMinted', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'liquidityProvider', + type: 'address', + }, + ], + name: 'LiquidityAdded', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'lpTokensBurnt', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'liquidityProvider', + type: 'address', + }, + ], + name: 'LiquidityRemoved', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'newLiveness', + type: 'uint256', + }, + ], + name: 'LivenessSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnershipTransferred', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bool', + name: 'isPaused', + type: 'bool', + }, + ], + name: 'Paused', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint32', + name: 'challengePeriodEndTimestamp', + type: 'uint32', + }, + { + indexed: false, + internalType: 'uint8', + name: 'poolRebalanceLeafCount', + type: 'uint8', + }, + { + indexed: false, + internalType: 'uint256[]', + name: 'bundleEvaluationBlockNumbers', + type: 'uint256[]', + }, + { + indexed: true, + internalType: 'bytes32', + name: 'poolRebalanceRoot', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'bytes32', + name: 'relayerRefundRoot', + type: 'bytes32', + }, + { + indexed: false, + internalType: 'bytes32', + name: 'slowRelayRoot', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'proposer', + type: 'address', + }, + ], + name: 'ProposeRootBundle', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'newProtocolFeeCaptureAddress', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'newProtocolFeeCapturePct', + type: 'uint256', + }, + ], + name: 'ProtocolFeeCaptureSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'accumulatedFees', + type: 'uint256', + }, + ], + name: 'ProtocolFeesCapturedClaimed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'disputer', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'requestTime', + type: 'uint256', + }, + ], + name: 'RootBundleCanceled', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'disputer', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'requestTime', + type: 'uint256', + }, + ], + name: 'RootBundleDisputed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'groupIndex', + type: 'uint256', + }, + { + indexed: true, + internalType: 'uint256', + name: 'leafId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'uint256', + name: 'chainId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'address[]', + name: 'l1Tokens', + type: 'address[]', + }, + { + indexed: false, + internalType: 'uint256[]', + name: 'bundleLpFees', + type: 'uint256[]', + }, + { + indexed: false, + internalType: 'int256[]', + name: 'netSendAmounts', + type: 'int256[]', + }, + { + indexed: false, + internalType: 'int256[]', + name: 'runningBalances', + type: 'int256[]', + }, + { + indexed: true, + internalType: 'address', + name: 'caller', + type: 'address', + }, + ], + name: 'RootBundleExecuted', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'originChainId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'uint256', + name: 'destinationChainId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'originToken', + type: 'address', + }, + { + indexed: false, + internalType: 'bool', + name: 'depositsEnabled', + type: 'bool', + }, + ], + name: 'SetEnableDepositRoute', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'destinationChainId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'destinationToken', + type: 'address', + }, + ], + name: 'SetPoolRebalanceRoute', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'chainId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bytes', + name: 'message', + type: 'bytes', + }, + ], + name: 'SpokePoolAdminFunctionTriggered', + type: 'event', + }, + { + stateMutability: 'payable', + type: 'fallback', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + internalType: 'uint256', + name: 'l1TokenAmount', + type: 'uint256', + }, + ], + name: 'addLiquidity', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [], + name: 'bondAmount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'bondToken', + outputs: [ + { + internalType: 'contract IERC20', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'claimProtocolFeesCaptured', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'crossChainContracts', + outputs: [ + { + internalType: 'address', + name: 'adapter', + type: 'address', + }, + { + internalType: 'address', + name: 'spokePool', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'disableL1TokenForLiquidityProvision', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'disputeRootBundle', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'emergencyDeleteProposal', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'enableL1TokenForLiquidityProvision', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'exchangeRateCurrent', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'chainId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'groupIndex', + type: 'uint256', + }, + { + internalType: 'uint256[]', + name: 'bundleLpFees', + type: 'uint256[]', + }, + { + internalType: 'int256[]', + name: 'netSendAmounts', + type: 'int256[]', + }, + { + internalType: 'int256[]', + name: 'runningBalances', + type: 'int256[]', + }, + { + internalType: 'uint8', + name: 'leafId', + type: 'uint8', + }, + { + internalType: 'address[]', + name: 'l1Tokens', + type: 'address[]', + }, + { + internalType: 'bytes32[]', + name: 'proof', + type: 'bytes32[]', + }, + ], + name: 'executeRootBundle', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'finder', + outputs: [ + { + internalType: 'contract FinderInterface', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getCurrentTime', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + internalType: 'int256', + name: 'haircutAmount', + type: 'int256', + }, + ], + name: 'haircutReserves', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'identifier', + outputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'liquidityUtilizationCurrent', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + internalType: 'uint256', + name: 'relayedAmount', + type: 'uint256', + }, + ], + name: 'liquidityUtilizationPostRelay', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'liveness', + outputs: [ + { + internalType: 'uint32', + name: '', + type: 'uint32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'loadEthForL2Calls', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [], + name: 'lpFeeRatePerSecond', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'lpTokenFactory', + outputs: [ + { + internalType: 'contract LpTokenFactoryInterface', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes[]', + name: 'data', + type: 'bytes[]', + }, + ], + name: 'multicall', + outputs: [ + { + internalType: 'bytes[]', + name: 'results', + type: 'bytes[]', + }, + ], + stateMutability: 'payable', + 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: [ + { + internalType: 'uint256', + name: 'destinationChainId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'poolRebalanceRoute', + outputs: [ + { + internalType: 'address', + name: 'destinationToken', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'pooledTokens', + outputs: [ + { + internalType: 'address', + name: 'lpToken', + type: 'address', + }, + { + internalType: 'bool', + name: 'isEnabled', + type: 'bool', + }, + { + internalType: 'uint32', + name: 'lastLpFeeUpdate', + type: 'uint32', + }, + { + internalType: 'int256', + name: 'utilizedReserves', + type: 'int256', + }, + { + internalType: 'uint256', + name: 'liquidReserves', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'undistributedLpFees', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256[]', + name: 'bundleEvaluationBlockNumbers', + type: 'uint256[]', + }, + { + internalType: 'uint8', + name: 'poolRebalanceLeafCount', + type: 'uint8', + }, + { + internalType: 'bytes32', + name: 'poolRebalanceRoot', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 'relayerRefundRoot', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 'slowRelayRoot', + type: 'bytes32', + }, + ], + name: 'proposeRootBundle', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'protocolFeeCaptureAddress', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'protocolFeeCapturePct', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'chainId', + type: 'uint256', + }, + { + internalType: 'bytes', + name: 'functionData', + type: 'bytes', + }, + ], + name: 'relaySpokePoolAdminFunction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + internalType: 'uint256', + name: 'lpTokenAmount', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'sendEth', + type: 'bool', + }, + ], + name: 'removeLiquidity', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'rootBundleProposal', + outputs: [ + { + internalType: 'bytes32', + name: 'poolRebalanceRoot', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 'relayerRefundRoot', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 'slowRelayRoot', + type: 'bytes32', + }, + { + internalType: 'uint256', + name: 'claimedBitMap', + type: 'uint256', + }, + { + internalType: 'address', + name: 'proposer', + type: 'address', + }, + { + internalType: 'uint8', + name: 'unclaimedPoolRebalanceLeafCount', + type: 'uint8', + }, + { + internalType: 'uint32', + name: 'challengePeriodEndTimestamp', + type: 'uint32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract IERC20', + name: 'newBondToken', + type: 'address', + }, + { + internalType: 'uint256', + name: 'newBondAmount', + type: 'uint256', + }, + ], + name: 'setBond', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'l2ChainId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'adapter', + type: 'address', + }, + { + internalType: 'address', + name: 'spokePool', + type: 'address', + }, + ], + name: 'setCrossChainContracts', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'time', + type: 'uint256', + }, + ], + name: 'setCurrentTime', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'originChainId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'destinationChainId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'originToken', + type: 'address', + }, + { + internalType: 'bool', + name: 'depositsEnabled', + type: 'bool', + }, + ], + name: 'setDepositRoute', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: 'newIdentifier', + type: 'bytes32', + }, + ], + name: 'setIdentifier', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint32', + name: 'newLiveness', + type: 'uint32', + }, + ], + name: 'setLiveness', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bool', + name: 'pause', + type: 'bool', + }, + ], + name: 'setPaused', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'destinationChainId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + { + internalType: 'address', + name: 'destinationToken', + type: 'address', + }, + ], + name: 'setPoolRebalanceRoute', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newProtocolFeeCaptureAddress', + type: 'address', + }, + { + internalType: 'uint256', + name: 'newProtocolFeeCapturePct', + type: 'uint256', + }, + ], + name: 'setProtocolFeeCapture', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'l1Token', + type: 'address', + }, + ], + name: 'sync', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'timerAddress', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'unclaimedAccumulatedProtocolFees', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'weth', + outputs: [ + { + internalType: 'contract WETH9', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + stateMutability: 'payable', + type: 'receive', + }, +]; + +export class AcrossV2HubPool__factory { + static readonly abi = _abi; + static createInterface(): AcrossV2HubPoolInterface { + return new utils.Interface(_abi) as AcrossV2HubPoolInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): AcrossV2HubPool { + return new Contract(address, _abi, signerOrProvider) as AcrossV2HubPool; + } +} diff --git a/src/apps/across/contracts/ethers/factories/AcrossV2PoolToken__factory.ts b/src/apps/across/contracts/ethers/factories/AcrossV2PoolToken__factory.ts new file mode 100644 index 000000000..9f830260e --- /dev/null +++ b/src/apps/across/contracts/ethers/factories/AcrossV2PoolToken__factory.ts @@ -0,0 +1,596 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { AcrossV2PoolToken, AcrossV2PoolTokenInterface } from '../AcrossV2PoolToken'; + +const _abi = [ + { + inputs: [ + { + internalType: 'string', + name: '_tokenName', + type: 'string', + }, + { + internalType: 'string', + name: '_tokenSymbol', + type: 'string', + }, + { + internalType: 'uint8', + name: '_tokenDecimals', + type: 'uint8', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'newMember', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'manager', + type: 'address', + }, + ], + name: 'AddedSharedMember', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'oldMember', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'manager', + type: 'address', + }, + ], + name: 'RemovedSharedMember', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'newMember', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'manager', + type: 'address', + }, + ], + name: 'ResetExclusiveMember', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'addBurner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'newMember', + type: 'address', + }, + ], + name: 'addMember', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'addMinter', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + ], + name: 'allowance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'approve', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'burn', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'burnFrom', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'decimals', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'subtractedValue', + type: 'uint256', + }, + ], + name: 'decreaseAllowance', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + ], + name: 'getMember', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'memberToCheck', + type: 'address', + }, + ], + name: 'holdsRole', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'addedValue', + type: 'uint256', + }, + ], + name: 'increaseAllowance', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'mint', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'memberToRemove', + type: 'address', + }, + ], + name: 'removeMember', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + ], + name: 'renounceMembership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'roleId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'newMember', + type: 'address', + }, + ], + name: 'resetMember', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'resetOwner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transfer', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transferFrom', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class AcrossV2PoolToken__factory { + static readonly abi = _abi; + static createInterface(): AcrossV2PoolTokenInterface { + return new utils.Interface(_abi) as AcrossV2PoolTokenInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): AcrossV2PoolToken { + return new Contract(address, _abi, signerOrProvider) as AcrossV2PoolToken; + } +} diff --git a/src/apps/across/contracts/ethers/factories/index.ts b/src/apps/across/contracts/ethers/factories/index.ts index 225e1f8a5..3c8682f1d 100644 --- a/src/apps/across/contracts/ethers/factories/index.ts +++ b/src/apps/across/contracts/ethers/factories/index.ts @@ -1,6 +1,8 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export { AcrossV2HubPool__factory } from './AcrossV2HubPool__factory'; +export { AcrossV2PoolToken__factory } from './AcrossV2PoolToken__factory'; export { ArbDepositeBox__factory } from './ArbDepositeBox__factory'; export { BadgerPool__factory } from './BadgerPool__factory'; export { BobaDepositeBox__factory } from './BobaDepositeBox__factory'; diff --git a/src/apps/across/contracts/ethers/index.ts b/src/apps/across/contracts/ethers/index.ts index 6abadf186..73efcbd43 100644 --- a/src/apps/across/contracts/ethers/index.ts +++ b/src/apps/across/contracts/ethers/index.ts @@ -1,6 +1,8 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export type { AcrossV2HubPool } from './AcrossV2HubPool'; +export type { AcrossV2PoolToken } from './AcrossV2PoolToken'; export type { ArbDepositeBox } from './ArbDepositeBox'; export type { BadgerPool } from './BadgerPool'; export type { BobaDepositeBox } from './BobaDepositeBox'; @@ -15,6 +17,8 @@ export type { UsdcPool } from './UsdcPool'; export type { WbtcPool } from './WbtcPool'; export type { WethPool } from './WethPool'; export * as factories from './factories'; +export { AcrossV2HubPool__factory } from './factories/AcrossV2HubPool__factory'; +export { AcrossV2PoolToken__factory } from './factories/AcrossV2PoolToken__factory'; export { ArbDepositeBox__factory } from './factories/ArbDepositeBox__factory'; export { BadgerPool__factory } from './factories/BadgerPool__factory'; export { BobaDepositeBox__factory } from './factories/BobaDepositeBox__factory'; diff --git a/src/apps/across/contracts/index.ts b/src/apps/across/contracts/index.ts index 7cffa506e..c70082254 100644 --- a/src/apps/across/contracts/index.ts +++ b/src/apps/across/contracts/index.ts @@ -4,6 +4,8 @@ import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; import { ContractFactory } from '~contract/contracts'; import { Network } from '~types/network.interface'; +import { AcrossV2HubPool__factory } from './ethers'; +import { AcrossV2PoolToken__factory } from './ethers'; import { ArbDepositeBox__factory } from './ethers'; import { BadgerPool__factory } from './ethers'; import { BobaDepositeBox__factory } from './ethers'; @@ -27,6 +29,12 @@ export class AcrossContractFactory extends ContractFactory { super((network: Network) => appToolkit.getNetworkProvider(network)); } + acrossV2HubPool({ address, network }: ContractOpts) { + return AcrossV2HubPool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + acrossV2PoolToken({ address, network }: ContractOpts) { + return AcrossV2PoolToken__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } arbDepositeBox({ address, network }: ContractOpts) { return ArbDepositeBox__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } @@ -68,6 +76,8 @@ export class AcrossContractFactory extends ContractFactory { } } +export type { AcrossV2HubPool } from './ethers'; +export type { AcrossV2PoolToken } from './ethers'; export type { ArbDepositeBox } from './ethers'; export type { BadgerPool } from './ethers'; export type { BobaDepositeBox } from './ethers'; diff --git a/src/apps/across/ethereum/across.v2-pool.token-fetcher.ts b/src/apps/across/ethereum/across.v2-pool.token-fetcher.ts new file mode 100644 index 000000000..db4779f6c --- /dev/null +++ b/src/apps/across/ethereum/across.v2-pool.token-fetcher.ts @@ -0,0 +1,11 @@ +import 'moment-duration-format'; + +import { PositionTemplate } from '~app-toolkit/decorators/position-template.decorator'; + +import { AcrossV2PoolTokenFetcher } from '../common/across.v2-pool.token-fetcher'; + +@PositionTemplate() +export class EthereumAcrossV2PoolTokenFetcher extends AcrossV2PoolTokenFetcher { + groupLabel = 'V2 Pools'; + hubAddress = '0xc186fa914353c44b2e33ebe05f21846f1048beda'; +}