From 555d208e8371c916b62f8b61453a7ce71027149b Mon Sep 17 00:00:00 2001 From: Ben Guidarelli Date: Thu, 24 Aug 2023 13:43:06 -0500 Subject: [PATCH] move protocols to their own directory --- core/connect/src/index.ts | 2 +- .../src/{ => protocols}/cctpTransfer.ts | 13 +- .../src/{ => protocols}/tokenTransfer.ts | 6 +- core/connect/src/wormhole.ts | 7 +- core/definitions/src/automaticTokenBridge.ts | 19 - core/definitions/src/index.ts | 6 +- .../{circleBridge.ts => protocols/cctp.ts} | 16 +- .../src/{ => protocols}/tokenBridge.ts | 22 +- core/definitions/src/wormholeCircleRelayer.ts | 13 - platforms/evm/src/address.ts | 3 + .../evm/src/ethers-contracts/CircleRelayer.ts | 584 +++++----- .../ethers-contracts/ICircleIntegration.ts | 422 +++---- .../ethers-contracts/TokenBridgeRelayer.ts | 788 ++++++------- .../factories/CircleRelayer__factory.ts | 792 ++++++------- .../factories/ICircleIntegration__factory.ts | 606 +++++----- .../factories/TokenBridgeRelayer__factory.ts | 1034 ++++++++--------- platforms/evm/src/index.ts | 2 +- platforms/evm/src/platform.ts | 17 +- .../{ => protocols}/automaticTokenBridge.ts | 18 +- .../evm/src/{ => protocols}/circleBridge.ts | 14 +- .../evm/src/{ => protocols}/circleRelayer.ts | 8 +- .../evm/src/{ => protocols}/tokenBridge.ts | 10 +- 22 files changed, 2204 insertions(+), 2198 deletions(-) rename core/connect/src/{ => protocols}/cctpTransfer.ts (96%) rename core/connect/src/{ => protocols}/tokenTransfer.ts (98%) delete mode 100644 core/definitions/src/automaticTokenBridge.ts rename core/definitions/src/{circleBridge.ts => protocols/cctp.ts} (53%) rename core/definitions/src/{ => protocols}/tokenBridge.ts (70%) delete mode 100644 core/definitions/src/wormholeCircleRelayer.ts rename platforms/evm/src/{ => protocols}/automaticTokenBridge.ts (91%) rename platforms/evm/src/{ => protocols}/circleBridge.ts (91%) rename platforms/evm/src/{ => protocols}/circleRelayer.ts (94%) rename platforms/evm/src/{ => protocols}/tokenBridge.ts (97%) diff --git a/core/connect/src/index.ts b/core/connect/src/index.ts index e3cbe0a02..ec098e797 100644 --- a/core/connect/src/index.ts +++ b/core/connect/src/index.ts @@ -2,4 +2,4 @@ export * from './wormhole'; export * from './types'; export * from './constants'; export * from './wormholeTransfer'; -export * from './tokenTransfer'; +export * from './protocols/tokenTransfer'; diff --git a/core/connect/src/cctpTransfer.ts b/core/connect/src/protocols/cctpTransfer.ts similarity index 96% rename from core/connect/src/cctpTransfer.ts rename to core/connect/src/protocols/cctpTransfer.ts index e5bfbb971..b450652d7 100644 --- a/core/connect/src/cctpTransfer.ts +++ b/core/connect/src/protocols/cctpTransfer.ts @@ -9,16 +9,17 @@ import { CCTPTransferDetails, isCCTPTransferDetails, TokenTransferTransaction, -} from './types'; -import { WormholeTransfer, TransferState } from './wormholeTransfer'; -import { Wormhole } from './wormhole'; +} from '../types'; +import { WormholeTransfer, TransferState } from '../wormholeTransfer'; +import { Wormhole } from '../wormhole'; import { + NativeAddress, UniversalAddress, UnsignedTransaction, VAA, deserialize, } from '@wormhole-foundation/sdk-definitions'; -import { ChainName } from '@wormhole-foundation/sdk-base'; +import { ChainName, PlatformName } from '@wormhole-foundation/sdk-base'; /** * What do with multiple transactions or VAAs? @@ -41,7 +42,7 @@ export class CCTPTransfer implements WormholeTransfer { // The corresponding vaa representing the CCTPTransfer // on the source chain (if its been completed and finalized) vaas?: { - emitter: UniversalAddress; + emitter: UniversalAddress | NativeAddress; sequence: bigint; vaa?: VAA<'Transfer'> | VAA<'TransferWithPayload'>; }[]; @@ -298,7 +299,7 @@ export class CCTPTransfer implements WormholeTransfer { static async getTransferVaa( wh: Wormhole, chain: ChainName, - emitter: UniversalAddress, + emitter: UniversalAddress | NativeAddress, sequence: bigint, retries: number = 5, ): Promise | VAA<'TransferWithPayload'>> { diff --git a/core/connect/src/tokenTransfer.ts b/core/connect/src/protocols/tokenTransfer.ts similarity index 98% rename from core/connect/src/tokenTransfer.ts rename to core/connect/src/protocols/tokenTransfer.ts index 2ce43a407..6959ef732 100644 --- a/core/connect/src/tokenTransfer.ts +++ b/core/connect/src/protocols/tokenTransfer.ts @@ -9,9 +9,9 @@ import { isMessageIdentifier, isTokenTransferDetails, isTransactionIdentifier, -} from './types'; -import { WormholeTransfer, TransferState } from './wormholeTransfer'; -import { Wormhole } from './wormhole'; +} from '../types'; +import { WormholeTransfer, TransferState } from '../wormholeTransfer'; +import { Wormhole } from '../wormhole'; import { UniversalAddress, UnsignedTransaction, diff --git a/core/connect/src/wormhole.ts b/core/connect/src/wormhole.ts index 6247d4b40..0b2a2bb80 100644 --- a/core/connect/src/wormhole.ts +++ b/core/connect/src/wormhole.ts @@ -10,6 +10,7 @@ import { deserialize, VAA, ChainAddress, + NativeAddress, } from '@wormhole-foundation/sdk-definitions'; import axios, { AxiosResponse } from 'axios'; @@ -22,8 +23,8 @@ import { } from './types'; import { CONFIG } from './constants'; -import { TokenTransfer } from './tokenTransfer'; -import { CCTPTransfer } from './cctpTransfer'; +import { TokenTransfer } from './protocols/tokenTransfer'; +import { CCTPTransfer } from './protocols/cctpTransfer'; export class Wormhole { protected _platforms: Map; @@ -242,7 +243,7 @@ export class Wormhole { */ async getVAABytes( chain: ChainName, - emitter: UniversalAddress, + emitter: UniversalAddress | NativeAddress, sequence: bigint, retries: number = 5, ): Promise { diff --git a/core/definitions/src/automaticTokenBridge.ts b/core/definitions/src/automaticTokenBridge.ts deleted file mode 100644 index 5d8a3dcfb..000000000 --- a/core/definitions/src/automaticTokenBridge.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { PlatformName } from "@wormhole-foundation/sdk-base"; -import { VAA } from "./vaa"; -import { UniversalOrNative, ChainAddress } from "./address"; -import { UnsignedTransaction } from "./unsignedTransaction"; -import "./payloads/tokenBridge"; - -export interface AutomaticTokenBridge

{ - transfer( - sender: UniversalOrNative

, - recipient: ChainAddress, - token: UniversalOrNative

| "native", - amount: bigint, - nativeGas?: bigint - ): AsyncGenerator; - redeem( - sender: UniversalOrNative

, - vaa: VAA<"TransferWithPayload"> - ): AsyncGenerator; -} diff --git a/core/definitions/src/index.ts b/core/definitions/src/index.ts index e682df52e..4f3a65f7d 100644 --- a/core/definitions/src/index.ts +++ b/core/definitions/src/index.ts @@ -4,7 +4,5 @@ export * from "./vaa"; export * from "./unsignedTransaction"; export * from "./utils"; export * from "./relayer"; -export * from "./tokenBridge"; -export * from "./automaticTokenBridge"; -export * from "./wormholeCircleRelayer"; -export * from "./circleBridge"; +export * from "./protocols/tokenBridge"; +export * from "./protocols/cctp"; diff --git a/core/definitions/src/circleBridge.ts b/core/definitions/src/protocols/cctp.ts similarity index 53% rename from core/definitions/src/circleBridge.ts rename to core/definitions/src/protocols/cctp.ts index 83bc1ac5b..46ef44d4f 100644 --- a/core/definitions/src/circleBridge.ts +++ b/core/definitions/src/protocols/cctp.ts @@ -1,10 +1,20 @@ import { PlatformName } from "@wormhole-foundation/sdk-base"; -import { UniversalOrNative, ChainAddress } from "./address"; -import { UnsignedTransaction } from "./unsignedTransaction"; -import { VAA } from "./vaa"; +import { UniversalOrNative, ChainAddress } from "../address"; +import { UnsignedTransaction } from "../unsignedTransaction"; +import { VAA } from "../vaa"; //https://github.com/circlefin/evm-cctp-contracts +export interface WormholeCircleRelayer

{ + transfer( + token: ChainAddress, + sender: UniversalOrNative

, + recipient: ChainAddress, + amount: bigint, + nativeGas?: bigint + ): AsyncGenerator; +} + export interface CircleBridge

{ redeem( sender: UniversalOrNative

, diff --git a/core/definitions/src/tokenBridge.ts b/core/definitions/src/protocols/tokenBridge.ts similarity index 70% rename from core/definitions/src/tokenBridge.ts rename to core/definitions/src/protocols/tokenBridge.ts index 3915d06df..740e6f78d 100644 --- a/core/definitions/src/tokenBridge.ts +++ b/core/definitions/src/protocols/tokenBridge.ts @@ -1,8 +1,8 @@ import { PlatformName } from "@wormhole-foundation/sdk-base"; -import { UniversalOrNative, NativeAddress, ChainAddress } from "./address"; -import { VAA } from "./vaa"; -import { UnsignedTransaction } from "./unsignedTransaction"; -import "./payloads/tokenBridge"; +import { UniversalOrNative, NativeAddress, ChainAddress } from "../address"; +import { VAA } from "../vaa"; +import { UnsignedTransaction } from "../unsignedTransaction"; +import "../payloads/tokenBridge"; export interface TokenBridge

{ //read-only: @@ -36,3 +36,17 @@ export interface TokenBridge

{ unwrapNative?: boolean //default: true ): AsyncGenerator; } + +export interface AutomaticTokenBridge

{ + transfer( + sender: UniversalOrNative

, + recipient: ChainAddress, + token: UniversalOrNative

| "native", + amount: bigint, + nativeGas?: bigint + ): AsyncGenerator; + redeem( + sender: UniversalOrNative

, + vaa: VAA<"TransferWithPayload"> + ): AsyncGenerator; +} diff --git a/core/definitions/src/wormholeCircleRelayer.ts b/core/definitions/src/wormholeCircleRelayer.ts deleted file mode 100644 index 431989cc5..000000000 --- a/core/definitions/src/wormholeCircleRelayer.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { PlatformName } from "@wormhole-foundation/sdk-base"; -import { UniversalOrNative, ChainAddress } from "./address"; -import { UnsignedTransaction } from "./unsignedTransaction"; - -export interface WormholeCircleRelayer

{ - transfer( - token: ChainAddress, - sender: UniversalOrNative

, - recipient: ChainAddress, - amount: bigint, - nativeGas?: bigint - ): AsyncGenerator; -} diff --git a/platforms/evm/src/address.ts b/platforms/evm/src/address.ts index fd080195b..c13d8c058 100644 --- a/platforms/evm/src/address.ts +++ b/platforms/evm/src/address.ts @@ -57,6 +57,9 @@ export class EvmAddress implements Address { toString() { return this.address; } + toNative() { + return this.address; + } toUint8Array() { return ethers.getBytes(this.address); } diff --git a/platforms/evm/src/ethers-contracts/CircleRelayer.ts b/platforms/evm/src/ethers-contracts/CircleRelayer.ts index bc8941efc..e11e652aa 100644 --- a/platforms/evm/src/ethers-contracts/CircleRelayer.ts +++ b/platforms/evm/src/ethers-contracts/CircleRelayer.ts @@ -13,7 +13,7 @@ import type { ContractRunner, ContractMethod, Listener, -} from "ethers"; +} from 'ethers'; import type { TypedContractEvent, TypedDeferredTopicFilter, @@ -21,7 +21,7 @@ import type { TypedLogDescription, TypedListener, TypedContractMethod, -} from "./common"; +} from './common'; export declare namespace CircleRelayerStructs { export type TransferTokensWithRelayStruct = { @@ -35,7 +35,7 @@ export declare namespace CircleRelayerStructs { payloadId: bigint, targetRelayerFee: bigint, toNativeTokenAmount: bigint, - targetRecipientWallet: string + targetRecipientWallet: string, ] & { payloadId: bigint; targetRelayerFee: bigint; @@ -54,7 +54,7 @@ export declare namespace ICircleIntegration { export type RedeemParametersStructOutput = [ encodedWormholeMessage: string, circleBridgeMessage: string, - circleAttestation: string + circleAttestation: string, ] & { encodedWormholeMessage: string; circleBridgeMessage: string; @@ -65,284 +65,284 @@ export declare namespace ICircleIntegration { export interface CircleRelayerInterface extends Interface { getFunction( nameOrSignature: - | "VERSION" - | "bytes32ToAddress" - | "calculateMaxSwapAmountIn" - | "calculateNativeSwapAmountOut" - | "cancelOwnershipTransferRequest" - | "chainId" - | "circleIntegration" - | "confirmOwnershipTransferRequest" - | "decodeTransferTokensWithRelay" - | "encodeTransferTokensWithRelay" - | "feeRecipient" - | "getPaused" - | "getRegisteredContract" - | "maxNativeSwapAmount" - | "nativeSwapRate" - | "nativeSwapRatePrecision" - | "nativeTokenDecimals" - | "owner" - | "ownerAssistant" - | "pendingOwner" - | "redeemTokens" - | "registerContract" - | "relayerFee" - | "setPauseForTransfers" - | "submitOwnershipTransferRequest" - | "transferTokensWithRelay" - | "updateFeeRecipient" - | "updateMaxNativeSwapAmount" - | "updateNativeSwapRate" - | "updateNativeSwapRatePrecision" - | "updateOwnerAssistant" - | "updateRelayerFee" - | "wormhole" + | 'VERSION' + | 'bytes32ToAddress' + | 'calculateMaxSwapAmountIn' + | 'calculateNativeSwapAmountOut' + | 'cancelOwnershipTransferRequest' + | 'chainId' + | 'circleIntegration' + | 'confirmOwnershipTransferRequest' + | 'decodeTransferTokensWithRelay' + | 'encodeTransferTokensWithRelay' + | 'feeRecipient' + | 'getPaused' + | 'getRegisteredContract' + | 'maxNativeSwapAmount' + | 'nativeSwapRate' + | 'nativeSwapRatePrecision' + | 'nativeTokenDecimals' + | 'owner' + | 'ownerAssistant' + | 'pendingOwner' + | 'redeemTokens' + | 'registerContract' + | 'relayerFee' + | 'setPauseForTransfers' + | 'submitOwnershipTransferRequest' + | 'transferTokensWithRelay' + | 'updateFeeRecipient' + | 'updateMaxNativeSwapAmount' + | 'updateNativeSwapRate' + | 'updateNativeSwapRatePrecision' + | 'updateOwnerAssistant' + | 'updateRelayerFee' + | 'wormhole', ): FunctionFragment; getEvent( nameOrSignatureOrTopic: - | "AdminChanged" - | "BeaconUpgraded" - | "FeeRecipientUpdated" - | "OwnershipTransfered" - | "SwapExecuted" - | "SwapRateUpdated" - | "Upgraded" + | 'AdminChanged' + | 'BeaconUpgraded' + | 'FeeRecipientUpdated' + | 'OwnershipTransfered' + | 'SwapExecuted' + | 'SwapRateUpdated' + | 'Upgraded', ): EventFragment; - encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; + encodeFunctionData(functionFragment: 'VERSION', values?: undefined): string; encodeFunctionData( - functionFragment: "bytes32ToAddress", - values: [BytesLike] + functionFragment: 'bytes32ToAddress', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "calculateMaxSwapAmountIn", - values: [AddressLike] + functionFragment: 'calculateMaxSwapAmountIn', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "calculateNativeSwapAmountOut", - values: [AddressLike, BigNumberish] + functionFragment: 'calculateNativeSwapAmountOut', + values: [AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "cancelOwnershipTransferRequest", - values: [BigNumberish] + functionFragment: 'cancelOwnershipTransferRequest', + values: [BigNumberish], ): string; - encodeFunctionData(functionFragment: "chainId", values?: undefined): string; + encodeFunctionData(functionFragment: 'chainId', values?: undefined): string; encodeFunctionData( - functionFragment: "circleIntegration", - values?: undefined + functionFragment: 'circleIntegration', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "confirmOwnershipTransferRequest", - values?: undefined + functionFragment: 'confirmOwnershipTransferRequest', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "decodeTransferTokensWithRelay", - values: [BytesLike] + functionFragment: 'decodeTransferTokensWithRelay', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "encodeTransferTokensWithRelay", - values: [CircleRelayerStructs.TransferTokensWithRelayStruct] + functionFragment: 'encodeTransferTokensWithRelay', + values: [CircleRelayerStructs.TransferTokensWithRelayStruct], ): string; encodeFunctionData( - functionFragment: "feeRecipient", - values?: undefined + functionFragment: 'feeRecipient', + values?: undefined, ): string; - encodeFunctionData(functionFragment: "getPaused", values?: undefined): string; + encodeFunctionData(functionFragment: 'getPaused', values?: undefined): string; encodeFunctionData( - functionFragment: "getRegisteredContract", - values: [BigNumberish] + functionFragment: 'getRegisteredContract', + values: [BigNumberish], ): string; encodeFunctionData( - functionFragment: "maxNativeSwapAmount", - values: [AddressLike] + functionFragment: 'maxNativeSwapAmount', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "nativeSwapRate", - values: [AddressLike] + functionFragment: 'nativeSwapRate', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "nativeSwapRatePrecision", - values?: undefined + functionFragment: 'nativeSwapRatePrecision', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "nativeTokenDecimals", - values?: undefined + functionFragment: 'nativeTokenDecimals', + values?: undefined, ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; encodeFunctionData( - functionFragment: "ownerAssistant", - values?: undefined + functionFragment: 'ownerAssistant', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "pendingOwner", - values?: undefined + functionFragment: 'pendingOwner', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "redeemTokens", - values: [ICircleIntegration.RedeemParametersStruct] + functionFragment: 'redeemTokens', + values: [ICircleIntegration.RedeemParametersStruct], ): string; encodeFunctionData( - functionFragment: "registerContract", - values: [BigNumberish, BytesLike] + functionFragment: 'registerContract', + values: [BigNumberish, BytesLike], ): string; encodeFunctionData( - functionFragment: "relayerFee", - values: [BigNumberish, AddressLike] + functionFragment: 'relayerFee', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "setPauseForTransfers", - values: [BigNumberish, boolean] + functionFragment: 'setPauseForTransfers', + values: [BigNumberish, boolean], ): string; encodeFunctionData( - functionFragment: "submitOwnershipTransferRequest", - values: [BigNumberish, AddressLike] + functionFragment: 'submitOwnershipTransferRequest', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "transferTokensWithRelay", - values: [AddressLike, BigNumberish, BigNumberish, BigNumberish, BytesLike] + functionFragment: 'transferTokensWithRelay', + values: [AddressLike, BigNumberish, BigNumberish, BigNumberish, BytesLike], ): string; encodeFunctionData( - functionFragment: "updateFeeRecipient", - values: [BigNumberish, AddressLike] + functionFragment: 'updateFeeRecipient', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "updateMaxNativeSwapAmount", - values: [BigNumberish, AddressLike, BigNumberish] + functionFragment: 'updateMaxNativeSwapAmount', + values: [BigNumberish, AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateNativeSwapRate", - values: [BigNumberish, AddressLike, BigNumberish] + functionFragment: 'updateNativeSwapRate', + values: [BigNumberish, AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateNativeSwapRatePrecision", - values: [BigNumberish, BigNumberish] + functionFragment: 'updateNativeSwapRatePrecision', + values: [BigNumberish, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateOwnerAssistant", - values: [BigNumberish, AddressLike] + functionFragment: 'updateOwnerAssistant', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "updateRelayerFee", - values: [BigNumberish, AddressLike, BigNumberish] + functionFragment: 'updateRelayerFee', + values: [BigNumberish, AddressLike, BigNumberish], ): string; - encodeFunctionData(functionFragment: "wormhole", values?: undefined): string; + encodeFunctionData(functionFragment: 'wormhole', values?: undefined): string; - decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'VERSION', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "bytes32ToAddress", - data: BytesLike + functionFragment: 'bytes32ToAddress', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "calculateMaxSwapAmountIn", - data: BytesLike + functionFragment: 'calculateMaxSwapAmountIn', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "calculateNativeSwapAmountOut", - data: BytesLike + functionFragment: 'calculateNativeSwapAmountOut', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "cancelOwnershipTransferRequest", - data: BytesLike + functionFragment: 'cancelOwnershipTransferRequest', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'chainId', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "circleIntegration", - data: BytesLike + functionFragment: 'circleIntegration', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "confirmOwnershipTransferRequest", - data: BytesLike + functionFragment: 'confirmOwnershipTransferRequest', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "decodeTransferTokensWithRelay", - data: BytesLike + functionFragment: 'decodeTransferTokensWithRelay', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "encodeTransferTokensWithRelay", - data: BytesLike + functionFragment: 'encodeTransferTokensWithRelay', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "feeRecipient", - data: BytesLike + functionFragment: 'feeRecipient', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "getPaused", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPaused', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "getRegisteredContract", - data: BytesLike + functionFragment: 'getRegisteredContract', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "maxNativeSwapAmount", - data: BytesLike + functionFragment: 'maxNativeSwapAmount', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "nativeSwapRate", - data: BytesLike + functionFragment: 'nativeSwapRate', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "nativeSwapRatePrecision", - data: BytesLike + functionFragment: 'nativeSwapRatePrecision', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "nativeTokenDecimals", - data: BytesLike + functionFragment: 'nativeTokenDecimals', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "ownerAssistant", - data: BytesLike + functionFragment: 'ownerAssistant', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "pendingOwner", - data: BytesLike + functionFragment: 'pendingOwner', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "redeemTokens", - data: BytesLike + functionFragment: 'redeemTokens', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "registerContract", - data: BytesLike + functionFragment: 'registerContract', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "relayerFee", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'relayerFee', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "setPauseForTransfers", - data: BytesLike + functionFragment: 'setPauseForTransfers', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "submitOwnershipTransferRequest", - data: BytesLike + functionFragment: 'submitOwnershipTransferRequest', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "transferTokensWithRelay", - data: BytesLike + functionFragment: 'transferTokensWithRelay', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateFeeRecipient", - data: BytesLike + functionFragment: 'updateFeeRecipient', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateMaxNativeSwapAmount", - data: BytesLike + functionFragment: 'updateMaxNativeSwapAmount', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateNativeSwapRate", - data: BytesLike + functionFragment: 'updateNativeSwapRate', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateNativeSwapRatePrecision", - data: BytesLike + functionFragment: 'updateNativeSwapRatePrecision', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateOwnerAssistant", - data: BytesLike + functionFragment: 'updateOwnerAssistant', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateRelayerFee", - data: BytesLike + functionFragment: 'updateRelayerFee', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "wormhole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'wormhole', data: BytesLike): Result; } export namespace AdminChangedEvent { @@ -373,7 +373,7 @@ export namespace BeaconUpgradedEvent { export namespace FeeRecipientUpdatedEvent { export type InputTuple = [ oldRecipient: AddressLike, - newRecipient: AddressLike + newRecipient: AddressLike, ]; export type OutputTuple = [oldRecipient: string, newRecipient: string]; export interface OutputObject { @@ -405,14 +405,14 @@ export namespace SwapExecutedEvent { relayer: AddressLike, token: AddressLike, tokenAmount: BigNumberish, - nativeAmount: BigNumberish + nativeAmount: BigNumberish, ]; export type OutputTuple = [ recipient: string, relayer: string, token: string, tokenAmount: bigint, - nativeAmount: bigint + nativeAmount: bigint, ]; export interface OutputObject { recipient: string; @@ -461,144 +461,144 @@ export interface CircleRelayer extends BaseContract { queryFilter( event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + toBlock?: string | number | undefined, ): Promise>>; queryFilter( filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + toBlock?: string | number | undefined, ): Promise>>; on( event: TCEvent, - listener: TypedListener + listener: TypedListener, ): Promise; on( filter: TypedDeferredTopicFilter, - listener: TypedListener + listener: TypedListener, ): Promise; once( event: TCEvent, - listener: TypedListener + listener: TypedListener, ): Promise; once( filter: TypedDeferredTopicFilter, - listener: TypedListener + listener: TypedListener, ): Promise; listeners( - event: TCEvent + event: TCEvent, ): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners( - event?: TCEvent + event?: TCEvent, ): Promise; - VERSION: TypedContractMethod<[], [string], "view">; + VERSION: TypedContractMethod<[], [string], 'view'>; bytes32ToAddress: TypedContractMethod< [address_: BytesLike], [string], - "view" + 'view' >; calculateMaxSwapAmountIn: TypedContractMethod< [token: AddressLike], [bigint], - "view" + 'view' >; calculateNativeSwapAmountOut: TypedContractMethod< [token: AddressLike, toNativeAmount: BigNumberish], [bigint], - "view" + 'view' >; cancelOwnershipTransferRequest: TypedContractMethod< [chainId_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; - chainId: TypedContractMethod<[], [bigint], "view">; + chainId: TypedContractMethod<[], [bigint], 'view'>; - circleIntegration: TypedContractMethod<[], [string], "view">; + circleIntegration: TypedContractMethod<[], [string], 'view'>; confirmOwnershipTransferRequest: TypedContractMethod< [], [void], - "nonpayable" + 'nonpayable' >; decodeTransferTokensWithRelay: TypedContractMethod< [encoded: BytesLike], [CircleRelayerStructs.TransferTokensWithRelayStructOutput], - "view" + 'view' >; encodeTransferTokensWithRelay: TypedContractMethod< [transfer: CircleRelayerStructs.TransferTokensWithRelayStruct], [string], - "view" + 'view' >; - feeRecipient: TypedContractMethod<[], [string], "view">; + feeRecipient: TypedContractMethod<[], [string], 'view'>; - getPaused: TypedContractMethod<[], [boolean], "view">; + getPaused: TypedContractMethod<[], [boolean], 'view'>; getRegisteredContract: TypedContractMethod< [emitterChainId: BigNumberish], [string], - "view" + 'view' >; maxNativeSwapAmount: TypedContractMethod< [token: AddressLike], [bigint], - "view" + 'view' >; - nativeSwapRate: TypedContractMethod<[token: AddressLike], [bigint], "view">; + nativeSwapRate: TypedContractMethod<[token: AddressLike], [bigint], 'view'>; - nativeSwapRatePrecision: TypedContractMethod<[], [bigint], "view">; + nativeSwapRatePrecision: TypedContractMethod<[], [bigint], 'view'>; - nativeTokenDecimals: TypedContractMethod<[], [bigint], "view">; + nativeTokenDecimals: TypedContractMethod<[], [bigint], 'view'>; - owner: TypedContractMethod<[], [string], "view">; + owner: TypedContractMethod<[], [string], 'view'>; - ownerAssistant: TypedContractMethod<[], [string], "view">; + ownerAssistant: TypedContractMethod<[], [string], 'view'>; - pendingOwner: TypedContractMethod<[], [string], "view">; + pendingOwner: TypedContractMethod<[], [string], 'view'>; redeemTokens: TypedContractMethod< [redeemParams: ICircleIntegration.RedeemParametersStruct], [void], - "payable" + 'payable' >; registerContract: TypedContractMethod< [chainId_: BigNumberish, contractAddress: BytesLike], [void], - "nonpayable" + 'nonpayable' >; relayerFee: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike], [bigint], - "view" + 'view' >; setPauseForTransfers: TypedContractMethod< [chainId_: BigNumberish, paused: boolean], [void], - "nonpayable" + 'nonpayable' >; submitOwnershipTransferRequest: TypedContractMethod< [chainId_: BigNumberish, newOwner: AddressLike], [void], - "nonpayable" + 'nonpayable' >; transferTokensWithRelay: TypedContractMethod< @@ -607,264 +607,264 @@ export interface CircleRelayer extends BaseContract { amount: BigNumberish, toNativeTokenAmount: BigNumberish, targetChain: BigNumberish, - targetRecipientWallet: BytesLike + targetRecipientWallet: BytesLike, ], [bigint], - "payable" + 'payable' >; updateFeeRecipient: TypedContractMethod< [chainId_: BigNumberish, newFeeRecipient: AddressLike], [void], - "nonpayable" + 'nonpayable' >; updateMaxNativeSwapAmount: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, maxAmount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateNativeSwapRate: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, swapRate: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateNativeSwapRatePrecision: TypedContractMethod< [chainId_: BigNumberish, nativeSwapRatePrecision_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateOwnerAssistant: TypedContractMethod< [chainId_: BigNumberish, newAssistant: AddressLike], [void], - "nonpayable" + 'nonpayable' >; updateRelayerFee: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, amount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; - wormhole: TypedContractMethod<[], [string], "view">; + wormhole: TypedContractMethod<[], [string], 'view'>; getFunction( - key: string | FunctionFragment + key: string | FunctionFragment, ): T; getFunction( - nameOrSignature: "VERSION" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'VERSION', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "bytes32ToAddress" - ): TypedContractMethod<[address_: BytesLike], [string], "view">; + nameOrSignature: 'bytes32ToAddress', + ): TypedContractMethod<[address_: BytesLike], [string], 'view'>; getFunction( - nameOrSignature: "calculateMaxSwapAmountIn" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'calculateMaxSwapAmountIn', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "calculateNativeSwapAmountOut" + nameOrSignature: 'calculateNativeSwapAmountOut', ): TypedContractMethod< [token: AddressLike, toNativeAmount: BigNumberish], [bigint], - "view" + 'view' >; getFunction( - nameOrSignature: "cancelOwnershipTransferRequest" - ): TypedContractMethod<[chainId_: BigNumberish], [void], "nonpayable">; + nameOrSignature: 'cancelOwnershipTransferRequest', + ): TypedContractMethod<[chainId_: BigNumberish], [void], 'nonpayable'>; getFunction( - nameOrSignature: "chainId" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'chainId', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "circleIntegration" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'circleIntegration', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "confirmOwnershipTransferRequest" - ): TypedContractMethod<[], [void], "nonpayable">; + nameOrSignature: 'confirmOwnershipTransferRequest', + ): TypedContractMethod<[], [void], 'nonpayable'>; getFunction( - nameOrSignature: "decodeTransferTokensWithRelay" + nameOrSignature: 'decodeTransferTokensWithRelay', ): TypedContractMethod< [encoded: BytesLike], [CircleRelayerStructs.TransferTokensWithRelayStructOutput], - "view" + 'view' >; getFunction( - nameOrSignature: "encodeTransferTokensWithRelay" + nameOrSignature: 'encodeTransferTokensWithRelay', ): TypedContractMethod< [transfer: CircleRelayerStructs.TransferTokensWithRelayStruct], [string], - "view" + 'view' >; getFunction( - nameOrSignature: "feeRecipient" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'feeRecipient', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "getPaused" - ): TypedContractMethod<[], [boolean], "view">; + nameOrSignature: 'getPaused', + ): TypedContractMethod<[], [boolean], 'view'>; getFunction( - nameOrSignature: "getRegisteredContract" - ): TypedContractMethod<[emitterChainId: BigNumberish], [string], "view">; + nameOrSignature: 'getRegisteredContract', + ): TypedContractMethod<[emitterChainId: BigNumberish], [string], 'view'>; getFunction( - nameOrSignature: "maxNativeSwapAmount" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'maxNativeSwapAmount', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "nativeSwapRate" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'nativeSwapRate', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "nativeSwapRatePrecision" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'nativeSwapRatePrecision', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "nativeTokenDecimals" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'nativeTokenDecimals', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "owner" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'owner', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "ownerAssistant" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'ownerAssistant', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "pendingOwner" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'pendingOwner', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "redeemTokens" + nameOrSignature: 'redeemTokens', ): TypedContractMethod< [redeemParams: ICircleIntegration.RedeemParametersStruct], [void], - "payable" + 'payable' >; getFunction( - nameOrSignature: "registerContract" + nameOrSignature: 'registerContract', ): TypedContractMethod< [chainId_: BigNumberish, contractAddress: BytesLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "relayerFee" + nameOrSignature: 'relayerFee', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike], [bigint], - "view" + 'view' >; getFunction( - nameOrSignature: "setPauseForTransfers" + nameOrSignature: 'setPauseForTransfers', ): TypedContractMethod< [chainId_: BigNumberish, paused: boolean], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "submitOwnershipTransferRequest" + nameOrSignature: 'submitOwnershipTransferRequest', ): TypedContractMethod< [chainId_: BigNumberish, newOwner: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "transferTokensWithRelay" + nameOrSignature: 'transferTokensWithRelay', ): TypedContractMethod< [ token: AddressLike, amount: BigNumberish, toNativeTokenAmount: BigNumberish, targetChain: BigNumberish, - targetRecipientWallet: BytesLike + targetRecipientWallet: BytesLike, ], [bigint], - "payable" + 'payable' >; getFunction( - nameOrSignature: "updateFeeRecipient" + nameOrSignature: 'updateFeeRecipient', ): TypedContractMethod< [chainId_: BigNumberish, newFeeRecipient: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateMaxNativeSwapAmount" + nameOrSignature: 'updateMaxNativeSwapAmount', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, maxAmount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateNativeSwapRate" + nameOrSignature: 'updateNativeSwapRate', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, swapRate: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateNativeSwapRatePrecision" + nameOrSignature: 'updateNativeSwapRatePrecision', ): TypedContractMethod< [chainId_: BigNumberish, nativeSwapRatePrecision_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateOwnerAssistant" + nameOrSignature: 'updateOwnerAssistant', ): TypedContractMethod< [chainId_: BigNumberish, newAssistant: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateRelayerFee" + nameOrSignature: 'updateRelayerFee', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, amount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "wormhole" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'wormhole', + ): TypedContractMethod<[], [string], 'view'>; getEvent( - key: "AdminChanged" + key: 'AdminChanged', ): TypedContractEvent< AdminChangedEvent.InputTuple, AdminChangedEvent.OutputTuple, AdminChangedEvent.OutputObject >; getEvent( - key: "BeaconUpgraded" + key: 'BeaconUpgraded', ): TypedContractEvent< BeaconUpgradedEvent.InputTuple, BeaconUpgradedEvent.OutputTuple, BeaconUpgradedEvent.OutputObject >; getEvent( - key: "FeeRecipientUpdated" + key: 'FeeRecipientUpdated', ): TypedContractEvent< FeeRecipientUpdatedEvent.InputTuple, FeeRecipientUpdatedEvent.OutputTuple, FeeRecipientUpdatedEvent.OutputObject >; getEvent( - key: "OwnershipTransfered" + key: 'OwnershipTransfered', ): TypedContractEvent< OwnershipTransferedEvent.InputTuple, OwnershipTransferedEvent.OutputTuple, OwnershipTransferedEvent.OutputObject >; getEvent( - key: "SwapExecuted" + key: 'SwapExecuted', ): TypedContractEvent< SwapExecutedEvent.InputTuple, SwapExecutedEvent.OutputTuple, SwapExecutedEvent.OutputObject >; getEvent( - key: "SwapRateUpdated" + key: 'SwapRateUpdated', ): TypedContractEvent< SwapRateUpdatedEvent.InputTuple, SwapRateUpdatedEvent.OutputTuple, SwapRateUpdatedEvent.OutputObject >; getEvent( - key: "Upgraded" + key: 'Upgraded', ): TypedContractEvent< UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, @@ -872,7 +872,7 @@ export interface CircleRelayer extends BaseContract { >; filters: { - "AdminChanged(address,address)": TypedContractEvent< + 'AdminChanged(address,address)': TypedContractEvent< AdminChangedEvent.InputTuple, AdminChangedEvent.OutputTuple, AdminChangedEvent.OutputObject @@ -883,7 +883,7 @@ export interface CircleRelayer extends BaseContract { AdminChangedEvent.OutputObject >; - "BeaconUpgraded(address)": TypedContractEvent< + 'BeaconUpgraded(address)': TypedContractEvent< BeaconUpgradedEvent.InputTuple, BeaconUpgradedEvent.OutputTuple, BeaconUpgradedEvent.OutputObject @@ -894,7 +894,7 @@ export interface CircleRelayer extends BaseContract { BeaconUpgradedEvent.OutputObject >; - "FeeRecipientUpdated(address,address)": TypedContractEvent< + 'FeeRecipientUpdated(address,address)': TypedContractEvent< FeeRecipientUpdatedEvent.InputTuple, FeeRecipientUpdatedEvent.OutputTuple, FeeRecipientUpdatedEvent.OutputObject @@ -905,7 +905,7 @@ export interface CircleRelayer extends BaseContract { FeeRecipientUpdatedEvent.OutputObject >; - "OwnershipTransfered(address,address)": TypedContractEvent< + 'OwnershipTransfered(address,address)': TypedContractEvent< OwnershipTransferedEvent.InputTuple, OwnershipTransferedEvent.OutputTuple, OwnershipTransferedEvent.OutputObject @@ -916,7 +916,7 @@ export interface CircleRelayer extends BaseContract { OwnershipTransferedEvent.OutputObject >; - "SwapExecuted(address,address,address,uint256,uint256)": TypedContractEvent< + 'SwapExecuted(address,address,address,uint256,uint256)': TypedContractEvent< SwapExecutedEvent.InputTuple, SwapExecutedEvent.OutputTuple, SwapExecutedEvent.OutputObject @@ -927,7 +927,7 @@ export interface CircleRelayer extends BaseContract { SwapExecutedEvent.OutputObject >; - "SwapRateUpdated(address,uint256)": TypedContractEvent< + 'SwapRateUpdated(address,uint256)': TypedContractEvent< SwapRateUpdatedEvent.InputTuple, SwapRateUpdatedEvent.OutputTuple, SwapRateUpdatedEvent.OutputObject @@ -938,7 +938,7 @@ export interface CircleRelayer extends BaseContract { SwapRateUpdatedEvent.OutputObject >; - "Upgraded(address)": TypedContractEvent< + 'Upgraded(address)': TypedContractEvent< UpgradedEvent.InputTuple, UpgradedEvent.OutputTuple, UpgradedEvent.OutputObject diff --git a/platforms/evm/src/ethers-contracts/ICircleIntegration.ts b/platforms/evm/src/ethers-contracts/ICircleIntegration.ts index e612393dc..0d220f742 100644 --- a/platforms/evm/src/ethers-contracts/ICircleIntegration.ts +++ b/platforms/evm/src/ethers-contracts/ICircleIntegration.ts @@ -12,14 +12,14 @@ import type { ContractRunner, ContractMethod, Listener, -} from "ethers"; +} from 'ethers'; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod, -} from "./common"; +} from './common'; export declare namespace ICircleIntegration { export type DepositWithPayloadStruct = { @@ -41,7 +41,7 @@ export declare namespace ICircleIntegration { nonce: bigint, fromAddress: string, mintRecipient: string, - payload: string + payload: string, ] & { token: string; amount: bigint; @@ -62,7 +62,7 @@ export declare namespace ICircleIntegration { export type RedeemParametersStructOutput = [ encodedWormholeMessage: string, circleBridgeMessage: string, - circleAttestation: string + circleAttestation: string, ] & { encodedWormholeMessage: string; circleBridgeMessage: string; @@ -80,7 +80,7 @@ export declare namespace ICircleIntegration { token: string, amount: bigint, targetChain: bigint, - mintRecipient: string + mintRecipient: string, ] & { token: string; amount: bigint; @@ -92,219 +92,219 @@ export declare namespace ICircleIntegration { export interface ICircleIntegrationInterface extends Interface { getFunction( nameOrSignature: - | "chainId" - | "circleBridge" - | "circleTransmitter" - | "decodeDepositWithPayload" - | "encodeDepositWithPayload" - | "evmChain" - | "fetchLocalTokenAddress" - | "getChainIdFromDomain" - | "getDomainFromChainId" - | "getRegisteredEmitter" - | "isAcceptedToken" - | "isInitialized" - | "isMessageConsumed" - | "localDomain" - | "redeemTokensWithPayload" - | "registerAcceptedToken" - | "registerEmitterAndDomain" - | "registerTargetChainToken" - | "targetAcceptedToken" - | "transferTokensWithPayload" - | "updateWormholeFinality" - | "upgradeContract" - | "verifyGovernanceMessage" - | "wormhole" - | "wormholeFinality" + | 'chainId' + | 'circleBridge' + | 'circleTransmitter' + | 'decodeDepositWithPayload' + | 'encodeDepositWithPayload' + | 'evmChain' + | 'fetchLocalTokenAddress' + | 'getChainIdFromDomain' + | 'getDomainFromChainId' + | 'getRegisteredEmitter' + | 'isAcceptedToken' + | 'isInitialized' + | 'isMessageConsumed' + | 'localDomain' + | 'redeemTokensWithPayload' + | 'registerAcceptedToken' + | 'registerEmitterAndDomain' + | 'registerTargetChainToken' + | 'targetAcceptedToken' + | 'transferTokensWithPayload' + | 'updateWormholeFinality' + | 'upgradeContract' + | 'verifyGovernanceMessage' + | 'wormhole' + | 'wormholeFinality', ): FunctionFragment; - encodeFunctionData(functionFragment: "chainId", values?: undefined): string; + encodeFunctionData(functionFragment: 'chainId', values?: undefined): string; encodeFunctionData( - functionFragment: "circleBridge", - values?: undefined + functionFragment: 'circleBridge', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "circleTransmitter", - values?: undefined + functionFragment: 'circleTransmitter', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "decodeDepositWithPayload", - values: [BytesLike] + functionFragment: 'decodeDepositWithPayload', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "encodeDepositWithPayload", - values: [ICircleIntegration.DepositWithPayloadStruct] + functionFragment: 'encodeDepositWithPayload', + values: [ICircleIntegration.DepositWithPayloadStruct], ): string; - encodeFunctionData(functionFragment: "evmChain", values?: undefined): string; + encodeFunctionData(functionFragment: 'evmChain', values?: undefined): string; encodeFunctionData( - functionFragment: "fetchLocalTokenAddress", - values: [BigNumberish, BytesLike] + functionFragment: 'fetchLocalTokenAddress', + values: [BigNumberish, BytesLike], ): string; encodeFunctionData( - functionFragment: "getChainIdFromDomain", - values: [BigNumberish] + functionFragment: 'getChainIdFromDomain', + values: [BigNumberish], ): string; encodeFunctionData( - functionFragment: "getDomainFromChainId", - values: [BigNumberish] + functionFragment: 'getDomainFromChainId', + values: [BigNumberish], ): string; encodeFunctionData( - functionFragment: "getRegisteredEmitter", - values: [BigNumberish] + functionFragment: 'getRegisteredEmitter', + values: [BigNumberish], ): string; encodeFunctionData( - functionFragment: "isAcceptedToken", - values: [AddressLike] + functionFragment: 'isAcceptedToken', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "isInitialized", - values: [AddressLike] + functionFragment: 'isInitialized', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "isMessageConsumed", - values: [BytesLike] + functionFragment: 'isMessageConsumed', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "localDomain", - values?: undefined + functionFragment: 'localDomain', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "redeemTokensWithPayload", - values: [ICircleIntegration.RedeemParametersStruct] + functionFragment: 'redeemTokensWithPayload', + values: [ICircleIntegration.RedeemParametersStruct], ): string; encodeFunctionData( - functionFragment: "registerAcceptedToken", - values: [BytesLike] + functionFragment: 'registerAcceptedToken', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "registerEmitterAndDomain", - values: [BytesLike] + functionFragment: 'registerEmitterAndDomain', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "registerTargetChainToken", - values: [BytesLike] + functionFragment: 'registerTargetChainToken', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "targetAcceptedToken", - values: [AddressLike, BigNumberish] + functionFragment: 'targetAcceptedToken', + values: [AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "transferTokensWithPayload", + functionFragment: 'transferTokensWithPayload', values: [ ICircleIntegration.TransferParametersStruct, BigNumberish, - BytesLike - ] + BytesLike, + ], ): string; encodeFunctionData( - functionFragment: "updateWormholeFinality", - values: [BytesLike] + functionFragment: 'updateWormholeFinality', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "upgradeContract", - values: [BytesLike] + functionFragment: 'upgradeContract', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "verifyGovernanceMessage", - values: [BytesLike, BigNumberish] + functionFragment: 'verifyGovernanceMessage', + values: [BytesLike, BigNumberish], ): string; - encodeFunctionData(functionFragment: "wormhole", values?: undefined): string; + encodeFunctionData(functionFragment: 'wormhole', values?: undefined): string; encodeFunctionData( - functionFragment: "wormholeFinality", - values?: undefined + functionFragment: 'wormholeFinality', + values?: undefined, ): string; - decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'chainId', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "circleBridge", - data: BytesLike + functionFragment: 'circleBridge', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "circleTransmitter", - data: BytesLike + functionFragment: 'circleTransmitter', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "decodeDepositWithPayload", - data: BytesLike + functionFragment: 'decodeDepositWithPayload', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "encodeDepositWithPayload", - data: BytesLike + functionFragment: 'encodeDepositWithPayload', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "evmChain", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'evmChain', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "fetchLocalTokenAddress", - data: BytesLike + functionFragment: 'fetchLocalTokenAddress', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "getChainIdFromDomain", - data: BytesLike + functionFragment: 'getChainIdFromDomain', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "getDomainFromChainId", - data: BytesLike + functionFragment: 'getDomainFromChainId', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "getRegisteredEmitter", - data: BytesLike + functionFragment: 'getRegisteredEmitter', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "isAcceptedToken", - data: BytesLike + functionFragment: 'isAcceptedToken', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "isInitialized", - data: BytesLike + functionFragment: 'isInitialized', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "isMessageConsumed", - data: BytesLike + functionFragment: 'isMessageConsumed', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "localDomain", - data: BytesLike + functionFragment: 'localDomain', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "redeemTokensWithPayload", - data: BytesLike + functionFragment: 'redeemTokensWithPayload', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "registerAcceptedToken", - data: BytesLike + functionFragment: 'registerAcceptedToken', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "registerEmitterAndDomain", - data: BytesLike + functionFragment: 'registerEmitterAndDomain', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "registerTargetChainToken", - data: BytesLike + functionFragment: 'registerTargetChainToken', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "targetAcceptedToken", - data: BytesLike + functionFragment: 'targetAcceptedToken', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "transferTokensWithPayload", - data: BytesLike + functionFragment: 'transferTokensWithPayload', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateWormholeFinality", - data: BytesLike + functionFragment: 'updateWormholeFinality', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "upgradeContract", - data: BytesLike + functionFragment: 'upgradeContract', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "verifyGovernanceMessage", - data: BytesLike + functionFragment: 'verifyGovernanceMessage', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "wormhole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'wormhole', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "wormholeFinality", - data: BytesLike + functionFragment: 'wormholeFinality', + data: BytesLike, ): Result; } @@ -317,265 +317,265 @@ export interface ICircleIntegration extends BaseContract { queryFilter( event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + toBlock?: string | number | undefined, ): Promise>>; queryFilter( filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + toBlock?: string | number | undefined, ): Promise>>; on( event: TCEvent, - listener: TypedListener + listener: TypedListener, ): Promise; on( filter: TypedDeferredTopicFilter, - listener: TypedListener + listener: TypedListener, ): Promise; once( event: TCEvent, - listener: TypedListener + listener: TypedListener, ): Promise; once( filter: TypedDeferredTopicFilter, - listener: TypedListener + listener: TypedListener, ): Promise; listeners( - event: TCEvent + event: TCEvent, ): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners( - event?: TCEvent + event?: TCEvent, ): Promise; - chainId: TypedContractMethod<[], [bigint], "view">; + chainId: TypedContractMethod<[], [bigint], 'view'>; - circleBridge: TypedContractMethod<[], [string], "view">; + circleBridge: TypedContractMethod<[], [string], 'view'>; - circleTransmitter: TypedContractMethod<[], [string], "view">; + circleTransmitter: TypedContractMethod<[], [string], 'view'>; decodeDepositWithPayload: TypedContractMethod< [encoded: BytesLike], [ICircleIntegration.DepositWithPayloadStructOutput], - "view" + 'view' >; encodeDepositWithPayload: TypedContractMethod< [message: ICircleIntegration.DepositWithPayloadStruct], [string], - "view" + 'view' >; - evmChain: TypedContractMethod<[], [bigint], "view">; + evmChain: TypedContractMethod<[], [bigint], 'view'>; fetchLocalTokenAddress: TypedContractMethod< [sourceDomain: BigNumberish, sourceToken: BytesLike], [string], - "view" + 'view' >; getChainIdFromDomain: TypedContractMethod< [domain: BigNumberish], [bigint], - "view" + 'view' >; getDomainFromChainId: TypedContractMethod< [chainId_: BigNumberish], [bigint], - "view" + 'view' >; getRegisteredEmitter: TypedContractMethod< [emitterChainId: BigNumberish], [string], - "view" + 'view' >; - isAcceptedToken: TypedContractMethod<[token: AddressLike], [boolean], "view">; + isAcceptedToken: TypedContractMethod<[token: AddressLike], [boolean], 'view'>; - isInitialized: TypedContractMethod<[impl: AddressLike], [boolean], "view">; + isInitialized: TypedContractMethod<[impl: AddressLike], [boolean], 'view'>; - isMessageConsumed: TypedContractMethod<[hash: BytesLike], [boolean], "view">; + isMessageConsumed: TypedContractMethod<[hash: BytesLike], [boolean], 'view'>; - localDomain: TypedContractMethod<[], [bigint], "view">; + localDomain: TypedContractMethod<[], [bigint], 'view'>; redeemTokensWithPayload: TypedContractMethod< [params: ICircleIntegration.RedeemParametersStruct], [ICircleIntegration.DepositWithPayloadStructOutput], - "nonpayable" + 'nonpayable' >; registerAcceptedToken: TypedContractMethod< [encodedMessage: BytesLike], [void], - "nonpayable" + 'nonpayable' >; registerEmitterAndDomain: TypedContractMethod< [encodedMessage: BytesLike], [void], - "nonpayable" + 'nonpayable' >; registerTargetChainToken: TypedContractMethod< [encodedMessage: BytesLike], [void], - "nonpayable" + 'nonpayable' >; targetAcceptedToken: TypedContractMethod< [sourceToken: AddressLike, chainId_: BigNumberish], [string], - "view" + 'view' >; transferTokensWithPayload: TypedContractMethod< [ transferParams: ICircleIntegration.TransferParametersStruct, batchId: BigNumberish, - payload: BytesLike + payload: BytesLike, ], [bigint], - "payable" + 'payable' >; updateWormholeFinality: TypedContractMethod< [encodedMessage: BytesLike], [void], - "nonpayable" + 'nonpayable' >; upgradeContract: TypedContractMethod< [encodedMessage: BytesLike], [void], - "nonpayable" + 'nonpayable' >; verifyGovernanceMessage: TypedContractMethod< [encodedMessage: BytesLike, action: BigNumberish], [[string, string] & { messageHash: string; payload: string }], - "view" + 'view' >; - wormhole: TypedContractMethod<[], [string], "view">; + wormhole: TypedContractMethod<[], [string], 'view'>; - wormholeFinality: TypedContractMethod<[], [bigint], "view">; + wormholeFinality: TypedContractMethod<[], [bigint], 'view'>; getFunction( - key: string | FunctionFragment + key: string | FunctionFragment, ): T; getFunction( - nameOrSignature: "chainId" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'chainId', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "circleBridge" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'circleBridge', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "circleTransmitter" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'circleTransmitter', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "decodeDepositWithPayload" + nameOrSignature: 'decodeDepositWithPayload', ): TypedContractMethod< [encoded: BytesLike], [ICircleIntegration.DepositWithPayloadStructOutput], - "view" + 'view' >; getFunction( - nameOrSignature: "encodeDepositWithPayload" + nameOrSignature: 'encodeDepositWithPayload', ): TypedContractMethod< [message: ICircleIntegration.DepositWithPayloadStruct], [string], - "view" + 'view' >; getFunction( - nameOrSignature: "evmChain" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'evmChain', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "fetchLocalTokenAddress" + nameOrSignature: 'fetchLocalTokenAddress', ): TypedContractMethod< [sourceDomain: BigNumberish, sourceToken: BytesLike], [string], - "view" + 'view' >; getFunction( - nameOrSignature: "getChainIdFromDomain" - ): TypedContractMethod<[domain: BigNumberish], [bigint], "view">; + nameOrSignature: 'getChainIdFromDomain', + ): TypedContractMethod<[domain: BigNumberish], [bigint], 'view'>; getFunction( - nameOrSignature: "getDomainFromChainId" - ): TypedContractMethod<[chainId_: BigNumberish], [bigint], "view">; + nameOrSignature: 'getDomainFromChainId', + ): TypedContractMethod<[chainId_: BigNumberish], [bigint], 'view'>; getFunction( - nameOrSignature: "getRegisteredEmitter" - ): TypedContractMethod<[emitterChainId: BigNumberish], [string], "view">; + nameOrSignature: 'getRegisteredEmitter', + ): TypedContractMethod<[emitterChainId: BigNumberish], [string], 'view'>; getFunction( - nameOrSignature: "isAcceptedToken" - ): TypedContractMethod<[token: AddressLike], [boolean], "view">; + nameOrSignature: 'isAcceptedToken', + ): TypedContractMethod<[token: AddressLike], [boolean], 'view'>; getFunction( - nameOrSignature: "isInitialized" - ): TypedContractMethod<[impl: AddressLike], [boolean], "view">; + nameOrSignature: 'isInitialized', + ): TypedContractMethod<[impl: AddressLike], [boolean], 'view'>; getFunction( - nameOrSignature: "isMessageConsumed" - ): TypedContractMethod<[hash: BytesLike], [boolean], "view">; + nameOrSignature: 'isMessageConsumed', + ): TypedContractMethod<[hash: BytesLike], [boolean], 'view'>; getFunction( - nameOrSignature: "localDomain" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'localDomain', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "redeemTokensWithPayload" + nameOrSignature: 'redeemTokensWithPayload', ): TypedContractMethod< [params: ICircleIntegration.RedeemParametersStruct], [ICircleIntegration.DepositWithPayloadStructOutput], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "registerAcceptedToken" - ): TypedContractMethod<[encodedMessage: BytesLike], [void], "nonpayable">; + nameOrSignature: 'registerAcceptedToken', + ): TypedContractMethod<[encodedMessage: BytesLike], [void], 'nonpayable'>; getFunction( - nameOrSignature: "registerEmitterAndDomain" - ): TypedContractMethod<[encodedMessage: BytesLike], [void], "nonpayable">; + nameOrSignature: 'registerEmitterAndDomain', + ): TypedContractMethod<[encodedMessage: BytesLike], [void], 'nonpayable'>; getFunction( - nameOrSignature: "registerTargetChainToken" - ): TypedContractMethod<[encodedMessage: BytesLike], [void], "nonpayable">; + nameOrSignature: 'registerTargetChainToken', + ): TypedContractMethod<[encodedMessage: BytesLike], [void], 'nonpayable'>; getFunction( - nameOrSignature: "targetAcceptedToken" + nameOrSignature: 'targetAcceptedToken', ): TypedContractMethod< [sourceToken: AddressLike, chainId_: BigNumberish], [string], - "view" + 'view' >; getFunction( - nameOrSignature: "transferTokensWithPayload" + nameOrSignature: 'transferTokensWithPayload', ): TypedContractMethod< [ transferParams: ICircleIntegration.TransferParametersStruct, batchId: BigNumberish, - payload: BytesLike + payload: BytesLike, ], [bigint], - "payable" + 'payable' >; getFunction( - nameOrSignature: "updateWormholeFinality" - ): TypedContractMethod<[encodedMessage: BytesLike], [void], "nonpayable">; + nameOrSignature: 'updateWormholeFinality', + ): TypedContractMethod<[encodedMessage: BytesLike], [void], 'nonpayable'>; getFunction( - nameOrSignature: "upgradeContract" - ): TypedContractMethod<[encodedMessage: BytesLike], [void], "nonpayable">; + nameOrSignature: 'upgradeContract', + ): TypedContractMethod<[encodedMessage: BytesLike], [void], 'nonpayable'>; getFunction( - nameOrSignature: "verifyGovernanceMessage" + nameOrSignature: 'verifyGovernanceMessage', ): TypedContractMethod< [encodedMessage: BytesLike, action: BigNumberish], [[string, string] & { messageHash: string; payload: string }], - "view" + 'view' >; getFunction( - nameOrSignature: "wormhole" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'wormhole', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "wormholeFinality" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'wormholeFinality', + ): TypedContractMethod<[], [bigint], 'view'>; filters: {}; } diff --git a/platforms/evm/src/ethers-contracts/TokenBridgeRelayer.ts b/platforms/evm/src/ethers-contracts/TokenBridgeRelayer.ts index 415cb6162..88c8f4656 100644 --- a/platforms/evm/src/ethers-contracts/TokenBridgeRelayer.ts +++ b/platforms/evm/src/ethers-contracts/TokenBridgeRelayer.ts @@ -13,7 +13,7 @@ import type { ContractRunner, ContractMethod, Listener, -} from "ethers"; +} from 'ethers'; import type { TypedContractEvent, TypedDeferredTopicFilter, @@ -21,7 +21,7 @@ import type { TypedLogDescription, TypedListener, TypedContractMethod, -} from "./common"; +} from './common'; export declare namespace TokenBridgeRelayerStructs { export type SwapRateUpdateStruct = { @@ -45,7 +45,7 @@ export declare namespace TokenBridgeRelayerStructs { payloadId: bigint, targetRelayerFee: bigint, toNativeTokenAmount: bigint, - targetRecipient: string + targetRecipient: string, ] & { payloadId: bigint; targetRelayerFee: bigint; @@ -57,400 +57,400 @@ export declare namespace TokenBridgeRelayerStructs { export interface TokenBridgeRelayerInterface extends Interface { getFunction( nameOrSignature: - | "VERSION" - | "WETH" - | "calculateMaxSwapAmountIn" - | "calculateNativeSwapAmountOut" - | "calculateRelayerFee" - | "cancelOwnershipTransferRequest" - | "chainId" - | "completeTransferWithRelay" - | "confirmOwnershipTransferRequest" - | "decodeTransferWithRelay" - | "denormalizeAmount" - | "deregisterToken" - | "encodeTransferWithRelay" - | "feeRecipient" - | "fetchLocalAddressFromTransferMessage" - | "getAcceptedTokensList" - | "getPaused" - | "getRegisteredContract" - | "isAcceptedToken" - | "maxNativeSwapAmount" - | "nativeSwapRate" - | "normalizeAmount" - | "owner" - | "ownerAssistant" - | "pendingOwner" - | "registerContract" - | "registerToken" - | "relayerFee" - | "relayerFeePrecision" - | "setPauseForTransfers" - | "submitOwnershipTransferRequest" - | "swapRate" - | "swapRatePrecision" - | "tokenBridge" - | "transferTokensWithRelay" - | "unwrapWeth" - | "updateFeeRecipient" - | "updateMaxNativeSwapAmount" - | "updateOwnerAssistant" - | "updateRelayerFee" - | "updateRelayerFeePrecision" - | "updateSwapRate" - | "updateSwapRatePrecision" - | "updateUnwrapWethFlag" - | "wormhole" - | "wrapAndTransferEthWithRelay" + | 'VERSION' + | 'WETH' + | 'calculateMaxSwapAmountIn' + | 'calculateNativeSwapAmountOut' + | 'calculateRelayerFee' + | 'cancelOwnershipTransferRequest' + | 'chainId' + | 'completeTransferWithRelay' + | 'confirmOwnershipTransferRequest' + | 'decodeTransferWithRelay' + | 'denormalizeAmount' + | 'deregisterToken' + | 'encodeTransferWithRelay' + | 'feeRecipient' + | 'fetchLocalAddressFromTransferMessage' + | 'getAcceptedTokensList' + | 'getPaused' + | 'getRegisteredContract' + | 'isAcceptedToken' + | 'maxNativeSwapAmount' + | 'nativeSwapRate' + | 'normalizeAmount' + | 'owner' + | 'ownerAssistant' + | 'pendingOwner' + | 'registerContract' + | 'registerToken' + | 'relayerFee' + | 'relayerFeePrecision' + | 'setPauseForTransfers' + | 'submitOwnershipTransferRequest' + | 'swapRate' + | 'swapRatePrecision' + | 'tokenBridge' + | 'transferTokensWithRelay' + | 'unwrapWeth' + | 'updateFeeRecipient' + | 'updateMaxNativeSwapAmount' + | 'updateOwnerAssistant' + | 'updateRelayerFee' + | 'updateRelayerFeePrecision' + | 'updateSwapRate' + | 'updateSwapRatePrecision' + | 'updateUnwrapWethFlag' + | 'wormhole' + | 'wrapAndTransferEthWithRelay', ): FunctionFragment; getEvent( nameOrSignatureOrTopic: - | "FeeRecipientUpdated" - | "OwnershipTransfered" - | "SwapExecuted" - | "SwapRateUpdated" - | "TransferRedeemed" + | 'FeeRecipientUpdated' + | 'OwnershipTransfered' + | 'SwapExecuted' + | 'SwapRateUpdated' + | 'TransferRedeemed', ): EventFragment; - encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; - encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData(functionFragment: 'VERSION', values?: undefined): string; + encodeFunctionData(functionFragment: 'WETH', values?: undefined): string; encodeFunctionData( - functionFragment: "calculateMaxSwapAmountIn", - values: [AddressLike] + functionFragment: 'calculateMaxSwapAmountIn', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "calculateNativeSwapAmountOut", - values: [AddressLike, BigNumberish] + functionFragment: 'calculateNativeSwapAmountOut', + values: [AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "calculateRelayerFee", - values: [BigNumberish, AddressLike, BigNumberish] + functionFragment: 'calculateRelayerFee', + values: [BigNumberish, AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "cancelOwnershipTransferRequest", - values: [BigNumberish] + functionFragment: 'cancelOwnershipTransferRequest', + values: [BigNumberish], ): string; - encodeFunctionData(functionFragment: "chainId", values?: undefined): string; + encodeFunctionData(functionFragment: 'chainId', values?: undefined): string; encodeFunctionData( - functionFragment: "completeTransferWithRelay", - values: [BytesLike] + functionFragment: 'completeTransferWithRelay', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "confirmOwnershipTransferRequest", - values?: undefined + functionFragment: 'confirmOwnershipTransferRequest', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "decodeTransferWithRelay", - values: [BytesLike] + functionFragment: 'decodeTransferWithRelay', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "denormalizeAmount", - values: [BigNumberish, BigNumberish] + functionFragment: 'denormalizeAmount', + values: [BigNumberish, BigNumberish], ): string; encodeFunctionData( - functionFragment: "deregisterToken", - values: [BigNumberish, AddressLike] + functionFragment: 'deregisterToken', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "encodeTransferWithRelay", - values: [TokenBridgeRelayerStructs.TransferWithRelayStruct] + functionFragment: 'encodeTransferWithRelay', + values: [TokenBridgeRelayerStructs.TransferWithRelayStruct], ): string; encodeFunctionData( - functionFragment: "feeRecipient", - values?: undefined + functionFragment: 'feeRecipient', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "fetchLocalAddressFromTransferMessage", - values: [BytesLike] + functionFragment: 'fetchLocalAddressFromTransferMessage', + values: [BytesLike], ): string; encodeFunctionData( - functionFragment: "getAcceptedTokensList", - values?: undefined + functionFragment: 'getAcceptedTokensList', + values?: undefined, ): string; - encodeFunctionData(functionFragment: "getPaused", values?: undefined): string; + encodeFunctionData(functionFragment: 'getPaused', values?: undefined): string; encodeFunctionData( - functionFragment: "getRegisteredContract", - values: [BigNumberish] + functionFragment: 'getRegisteredContract', + values: [BigNumberish], ): string; encodeFunctionData( - functionFragment: "isAcceptedToken", - values: [AddressLike] + functionFragment: 'isAcceptedToken', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "maxNativeSwapAmount", - values: [AddressLike] + functionFragment: 'maxNativeSwapAmount', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "nativeSwapRate", - values: [AddressLike] + functionFragment: 'nativeSwapRate', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "normalizeAmount", - values: [BigNumberish, BigNumberish] + functionFragment: 'normalizeAmount', + values: [BigNumberish, BigNumberish], ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; encodeFunctionData( - functionFragment: "ownerAssistant", - values?: undefined + functionFragment: 'ownerAssistant', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "pendingOwner", - values?: undefined + functionFragment: 'pendingOwner', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "registerContract", - values: [BigNumberish, BytesLike] + functionFragment: 'registerContract', + values: [BigNumberish, BytesLike], ): string; encodeFunctionData( - functionFragment: "registerToken", - values: [BigNumberish, AddressLike] + functionFragment: 'registerToken', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "relayerFee", - values: [BigNumberish] + functionFragment: 'relayerFee', + values: [BigNumberish], ): string; encodeFunctionData( - functionFragment: "relayerFeePrecision", - values?: undefined + functionFragment: 'relayerFeePrecision', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "setPauseForTransfers", - values: [BigNumberish, boolean] + functionFragment: 'setPauseForTransfers', + values: [BigNumberish, boolean], ): string; encodeFunctionData( - functionFragment: "submitOwnershipTransferRequest", - values: [BigNumberish, AddressLike] + functionFragment: 'submitOwnershipTransferRequest', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "swapRate", - values: [AddressLike] + functionFragment: 'swapRate', + values: [AddressLike], ): string; encodeFunctionData( - functionFragment: "swapRatePrecision", - values?: undefined + functionFragment: 'swapRatePrecision', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "tokenBridge", - values?: undefined + functionFragment: 'tokenBridge', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "transferTokensWithRelay", + functionFragment: 'transferTokensWithRelay', values: [ AddressLike, BigNumberish, BigNumberish, BigNumberish, BytesLike, - BigNumberish - ] + BigNumberish, + ], ): string; encodeFunctionData( - functionFragment: "unwrapWeth", - values?: undefined + functionFragment: 'unwrapWeth', + values?: undefined, ): string; encodeFunctionData( - functionFragment: "updateFeeRecipient", - values: [BigNumberish, AddressLike] + functionFragment: 'updateFeeRecipient', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "updateMaxNativeSwapAmount", - values: [BigNumberish, AddressLike, BigNumberish] + functionFragment: 'updateMaxNativeSwapAmount', + values: [BigNumberish, AddressLike, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateOwnerAssistant", - values: [BigNumberish, AddressLike] + functionFragment: 'updateOwnerAssistant', + values: [BigNumberish, AddressLike], ): string; encodeFunctionData( - functionFragment: "updateRelayerFee", - values: [BigNumberish, BigNumberish] + functionFragment: 'updateRelayerFee', + values: [BigNumberish, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateRelayerFeePrecision", - values: [BigNumberish, BigNumberish] + functionFragment: 'updateRelayerFeePrecision', + values: [BigNumberish, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateSwapRate", - values: [BigNumberish, TokenBridgeRelayerStructs.SwapRateUpdateStruct[]] + functionFragment: 'updateSwapRate', + values: [BigNumberish, TokenBridgeRelayerStructs.SwapRateUpdateStruct[]], ): string; encodeFunctionData( - functionFragment: "updateSwapRatePrecision", - values: [BigNumberish, BigNumberish] + functionFragment: 'updateSwapRatePrecision', + values: [BigNumberish, BigNumberish], ): string; encodeFunctionData( - functionFragment: "updateUnwrapWethFlag", - values: [BigNumberish, boolean] + functionFragment: 'updateUnwrapWethFlag', + values: [BigNumberish, boolean], ): string; - encodeFunctionData(functionFragment: "wormhole", values?: undefined): string; + encodeFunctionData(functionFragment: 'wormhole', values?: undefined): string; encodeFunctionData( - functionFragment: "wrapAndTransferEthWithRelay", - values: [BigNumberish, BigNumberish, BytesLike, BigNumberish] + functionFragment: 'wrapAndTransferEthWithRelay', + values: [BigNumberish, BigNumberish, BytesLike, BigNumberish], ): string; - decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'VERSION', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'WETH', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "calculateMaxSwapAmountIn", - data: BytesLike + functionFragment: 'calculateMaxSwapAmountIn', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "calculateNativeSwapAmountOut", - data: BytesLike + functionFragment: 'calculateNativeSwapAmountOut', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "calculateRelayerFee", - data: BytesLike + functionFragment: 'calculateRelayerFee', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "cancelOwnershipTransferRequest", - data: BytesLike + functionFragment: 'cancelOwnershipTransferRequest', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'chainId', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "completeTransferWithRelay", - data: BytesLike + functionFragment: 'completeTransferWithRelay', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "confirmOwnershipTransferRequest", - data: BytesLike + functionFragment: 'confirmOwnershipTransferRequest', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "decodeTransferWithRelay", - data: BytesLike + functionFragment: 'decodeTransferWithRelay', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "denormalizeAmount", - data: BytesLike + functionFragment: 'denormalizeAmount', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "deregisterToken", - data: BytesLike + functionFragment: 'deregisterToken', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "encodeTransferWithRelay", - data: BytesLike + functionFragment: 'encodeTransferWithRelay', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "feeRecipient", - data: BytesLike + functionFragment: 'feeRecipient', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "fetchLocalAddressFromTransferMessage", - data: BytesLike + functionFragment: 'fetchLocalAddressFromTransferMessage', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "getAcceptedTokensList", - data: BytesLike + functionFragment: 'getAcceptedTokensList', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "getPaused", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPaused', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "getRegisteredContract", - data: BytesLike + functionFragment: 'getRegisteredContract', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "isAcceptedToken", - data: BytesLike + functionFragment: 'isAcceptedToken', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "maxNativeSwapAmount", - data: BytesLike + functionFragment: 'maxNativeSwapAmount', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "nativeSwapRate", - data: BytesLike + functionFragment: 'nativeSwapRate', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "normalizeAmount", - data: BytesLike + functionFragment: 'normalizeAmount', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "ownerAssistant", - data: BytesLike + functionFragment: 'ownerAssistant', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "pendingOwner", - data: BytesLike + functionFragment: 'pendingOwner', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "registerContract", - data: BytesLike + functionFragment: 'registerContract', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "registerToken", - data: BytesLike + functionFragment: 'registerToken', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "relayerFee", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'relayerFee', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "relayerFeePrecision", - data: BytesLike + functionFragment: 'relayerFeePrecision', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "setPauseForTransfers", - data: BytesLike + functionFragment: 'setPauseForTransfers', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "submitOwnershipTransferRequest", - data: BytesLike + functionFragment: 'submitOwnershipTransferRequest', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "swapRate", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'swapRate', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "swapRatePrecision", - data: BytesLike + functionFragment: 'swapRatePrecision', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "tokenBridge", - data: BytesLike + functionFragment: 'tokenBridge', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "transferTokensWithRelay", - data: BytesLike + functionFragment: 'transferTokensWithRelay', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "unwrapWeth", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'unwrapWeth', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "updateFeeRecipient", - data: BytesLike + functionFragment: 'updateFeeRecipient', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateMaxNativeSwapAmount", - data: BytesLike + functionFragment: 'updateMaxNativeSwapAmount', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateOwnerAssistant", - data: BytesLike + functionFragment: 'updateOwnerAssistant', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateRelayerFee", - data: BytesLike + functionFragment: 'updateRelayerFee', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateRelayerFeePrecision", - data: BytesLike + functionFragment: 'updateRelayerFeePrecision', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateSwapRate", - data: BytesLike + functionFragment: 'updateSwapRate', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateSwapRatePrecision", - data: BytesLike + functionFragment: 'updateSwapRatePrecision', + data: BytesLike, ): Result; decodeFunctionResult( - functionFragment: "updateUnwrapWethFlag", - data: BytesLike + functionFragment: 'updateUnwrapWethFlag', + data: BytesLike, ): Result; - decodeFunctionResult(functionFragment: "wormhole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'wormhole', data: BytesLike): Result; decodeFunctionResult( - functionFragment: "wrapAndTransferEthWithRelay", - data: BytesLike + functionFragment: 'wrapAndTransferEthWithRelay', + data: BytesLike, ): Result; } export namespace FeeRecipientUpdatedEvent { export type InputTuple = [ oldRecipient: AddressLike, - newRecipient: AddressLike + newRecipient: AddressLike, ]; export type OutputTuple = [oldRecipient: string, newRecipient: string]; export interface OutputObject { @@ -482,14 +482,14 @@ export namespace SwapExecutedEvent { relayer: AddressLike, token: AddressLike, tokenAmount: BigNumberish, - nativeAmount: BigNumberish + nativeAmount: BigNumberish, ]; export type OutputTuple = [ recipient: string, relayer: string, token: string, tokenAmount: bigint, - nativeAmount: bigint + nativeAmount: bigint, ]; export interface OutputObject { recipient: string; @@ -506,10 +506,10 @@ export namespace SwapExecutedEvent { export namespace SwapRateUpdatedEvent { export type InputTuple = [ - swapRates: TokenBridgeRelayerStructs.SwapRateUpdateStruct[] + swapRates: TokenBridgeRelayerStructs.SwapRateUpdateStruct[], ]; export type OutputTuple = [ - swapRates: TokenBridgeRelayerStructs.SwapRateUpdateStructOutput[] + swapRates: TokenBridgeRelayerStructs.SwapRateUpdateStructOutput[], ]; export interface OutputObject { swapRates: TokenBridgeRelayerStructs.SwapRateUpdateStructOutput[]; @@ -524,12 +524,12 @@ export namespace TransferRedeemedEvent { export type InputTuple = [ emitterChainId: BigNumberish, emitterAddress: BytesLike, - sequence: BigNumberish + sequence: BigNumberish, ]; export type OutputTuple = [ emitterChainId: bigint, emitterAddress: string, - sequence: bigint + sequence: bigint, ]; export interface OutputObject { emitterChainId: bigint; @@ -551,179 +551,179 @@ export interface TokenBridgeRelayer extends BaseContract { queryFilter( event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + toBlock?: string | number | undefined, ): Promise>>; queryFilter( filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined + toBlock?: string | number | undefined, ): Promise>>; on( event: TCEvent, - listener: TypedListener + listener: TypedListener, ): Promise; on( filter: TypedDeferredTopicFilter, - listener: TypedListener + listener: TypedListener, ): Promise; once( event: TCEvent, - listener: TypedListener + listener: TypedListener, ): Promise; once( filter: TypedDeferredTopicFilter, - listener: TypedListener + listener: TypedListener, ): Promise; listeners( - event: TCEvent + event: TCEvent, ): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners( - event?: TCEvent + event?: TCEvent, ): Promise; - VERSION: TypedContractMethod<[], [string], "view">; + VERSION: TypedContractMethod<[], [string], 'view'>; - WETH: TypedContractMethod<[], [string], "view">; + WETH: TypedContractMethod<[], [string], 'view'>; calculateMaxSwapAmountIn: TypedContractMethod< [token: AddressLike], [bigint], - "view" + 'view' >; calculateNativeSwapAmountOut: TypedContractMethod< [token: AddressLike, toNativeAmount: BigNumberish], [bigint], - "view" + 'view' >; calculateRelayerFee: TypedContractMethod< [targetChainId: BigNumberish, token: AddressLike, decimals: BigNumberish], [bigint], - "view" + 'view' >; cancelOwnershipTransferRequest: TypedContractMethod< [chainId_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; - chainId: TypedContractMethod<[], [bigint], "view">; + chainId: TypedContractMethod<[], [bigint], 'view'>; completeTransferWithRelay: TypedContractMethod< [encodedTransferMessage: BytesLike], [void], - "payable" + 'payable' >; confirmOwnershipTransferRequest: TypedContractMethod< [], [void], - "nonpayable" + 'nonpayable' >; decodeTransferWithRelay: TypedContractMethod< [encoded: BytesLike], [TokenBridgeRelayerStructs.TransferWithRelayStructOutput], - "view" + 'view' >; denormalizeAmount: TypedContractMethod< [amount: BigNumberish, decimals: BigNumberish], [bigint], - "view" + 'view' >; deregisterToken: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike], [void], - "nonpayable" + 'nonpayable' >; encodeTransferWithRelay: TypedContractMethod< [transfer: TokenBridgeRelayerStructs.TransferWithRelayStruct], [string], - "view" + 'view' >; - feeRecipient: TypedContractMethod<[], [string], "view">; + feeRecipient: TypedContractMethod<[], [string], 'view'>; fetchLocalAddressFromTransferMessage: TypedContractMethod< [payload: BytesLike], [string], - "view" + 'view' >; - getAcceptedTokensList: TypedContractMethod<[], [string[]], "view">; + getAcceptedTokensList: TypedContractMethod<[], [string[]], 'view'>; - getPaused: TypedContractMethod<[], [boolean], "view">; + getPaused: TypedContractMethod<[], [boolean], 'view'>; getRegisteredContract: TypedContractMethod< [emitterChainId: BigNumberish], [string], - "view" + 'view' >; - isAcceptedToken: TypedContractMethod<[token: AddressLike], [boolean], "view">; + isAcceptedToken: TypedContractMethod<[token: AddressLike], [boolean], 'view'>; maxNativeSwapAmount: TypedContractMethod< [token: AddressLike], [bigint], - "view" + 'view' >; - nativeSwapRate: TypedContractMethod<[token: AddressLike], [bigint], "view">; + nativeSwapRate: TypedContractMethod<[token: AddressLike], [bigint], 'view'>; normalizeAmount: TypedContractMethod< [amount: BigNumberish, decimals: BigNumberish], [bigint], - "view" + 'view' >; - owner: TypedContractMethod<[], [string], "view">; + owner: TypedContractMethod<[], [string], 'view'>; - ownerAssistant: TypedContractMethod<[], [string], "view">; + ownerAssistant: TypedContractMethod<[], [string], 'view'>; - pendingOwner: TypedContractMethod<[], [string], "view">; + pendingOwner: TypedContractMethod<[], [string], 'view'>; registerContract: TypedContractMethod< [chainId_: BigNumberish, contractAddress: BytesLike], [void], - "nonpayable" + 'nonpayable' >; registerToken: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike], [void], - "nonpayable" + 'nonpayable' >; - relayerFee: TypedContractMethod<[chainId_: BigNumberish], [bigint], "view">; + relayerFee: TypedContractMethod<[chainId_: BigNumberish], [bigint], 'view'>; - relayerFeePrecision: TypedContractMethod<[], [bigint], "view">; + relayerFeePrecision: TypedContractMethod<[], [bigint], 'view'>; setPauseForTransfers: TypedContractMethod< [chainId_: BigNumberish, paused: boolean], [void], - "nonpayable" + 'nonpayable' >; submitOwnershipTransferRequest: TypedContractMethod< [chainId_: BigNumberish, newOwner: AddressLike], [void], - "nonpayable" + 'nonpayable' >; - swapRate: TypedContractMethod<[token: AddressLike], [bigint], "view">; + swapRate: TypedContractMethod<[token: AddressLike], [bigint], 'view'>; - swapRatePrecision: TypedContractMethod<[], [bigint], "view">; + swapRatePrecision: TypedContractMethod<[], [bigint], 'view'>; - tokenBridge: TypedContractMethod<[], [string], "view">; + tokenBridge: TypedContractMethod<[], [string], 'view'>; transferTokensWithRelay: TypedContractMethod< [ @@ -732,234 +732,234 @@ export interface TokenBridgeRelayer extends BaseContract { toNativeTokenAmount: BigNumberish, targetChain: BigNumberish, targetRecipient: BytesLike, - batchId: BigNumberish + batchId: BigNumberish, ], [bigint], - "payable" + 'payable' >; - unwrapWeth: TypedContractMethod<[], [boolean], "view">; + unwrapWeth: TypedContractMethod<[], [boolean], 'view'>; updateFeeRecipient: TypedContractMethod< [chainId_: BigNumberish, newFeeRecipient: AddressLike], [void], - "nonpayable" + 'nonpayable' >; updateMaxNativeSwapAmount: TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, maxAmount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateOwnerAssistant: TypedContractMethod< [chainId_: BigNumberish, newAssistant: AddressLike], [void], - "nonpayable" + 'nonpayable' >; updateRelayerFee: TypedContractMethod< [chainId_: BigNumberish, amount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateRelayerFeePrecision: TypedContractMethod< [chainId_: BigNumberish, relayerFeePrecision_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateSwapRate: TypedContractMethod< [ chainId_: BigNumberish, - swapRateUpdate: TokenBridgeRelayerStructs.SwapRateUpdateStruct[] + swapRateUpdate: TokenBridgeRelayerStructs.SwapRateUpdateStruct[], ], [void], - "nonpayable" + 'nonpayable' >; updateSwapRatePrecision: TypedContractMethod< [chainId_: BigNumberish, swapRatePrecision_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; updateUnwrapWethFlag: TypedContractMethod< [chainId_: BigNumberish, unwrapWeth_: boolean], [void], - "nonpayable" + 'nonpayable' >; - wormhole: TypedContractMethod<[], [string], "view">; + wormhole: TypedContractMethod<[], [string], 'view'>; wrapAndTransferEthWithRelay: TypedContractMethod< [ toNativeTokenAmount: BigNumberish, targetChain: BigNumberish, targetRecipient: BytesLike, - batchId: BigNumberish + batchId: BigNumberish, ], [bigint], - "payable" + 'payable' >; getFunction( - key: string | FunctionFragment + key: string | FunctionFragment, ): T; getFunction( - nameOrSignature: "VERSION" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'VERSION', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "WETH" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'WETH', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "calculateMaxSwapAmountIn" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'calculateMaxSwapAmountIn', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "calculateNativeSwapAmountOut" + nameOrSignature: 'calculateNativeSwapAmountOut', ): TypedContractMethod< [token: AddressLike, toNativeAmount: BigNumberish], [bigint], - "view" + 'view' >; getFunction( - nameOrSignature: "calculateRelayerFee" + nameOrSignature: 'calculateRelayerFee', ): TypedContractMethod< [targetChainId: BigNumberish, token: AddressLike, decimals: BigNumberish], [bigint], - "view" + 'view' >; getFunction( - nameOrSignature: "cancelOwnershipTransferRequest" - ): TypedContractMethod<[chainId_: BigNumberish], [void], "nonpayable">; + nameOrSignature: 'cancelOwnershipTransferRequest', + ): TypedContractMethod<[chainId_: BigNumberish], [void], 'nonpayable'>; getFunction( - nameOrSignature: "chainId" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'chainId', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "completeTransferWithRelay" + nameOrSignature: 'completeTransferWithRelay', ): TypedContractMethod< [encodedTransferMessage: BytesLike], [void], - "payable" + 'payable' >; getFunction( - nameOrSignature: "confirmOwnershipTransferRequest" - ): TypedContractMethod<[], [void], "nonpayable">; + nameOrSignature: 'confirmOwnershipTransferRequest', + ): TypedContractMethod<[], [void], 'nonpayable'>; getFunction( - nameOrSignature: "decodeTransferWithRelay" + nameOrSignature: 'decodeTransferWithRelay', ): TypedContractMethod< [encoded: BytesLike], [TokenBridgeRelayerStructs.TransferWithRelayStructOutput], - "view" + 'view' >; getFunction( - nameOrSignature: "denormalizeAmount" + nameOrSignature: 'denormalizeAmount', ): TypedContractMethod< [amount: BigNumberish, decimals: BigNumberish], [bigint], - "view" + 'view' >; getFunction( - nameOrSignature: "deregisterToken" + nameOrSignature: 'deregisterToken', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "encodeTransferWithRelay" + nameOrSignature: 'encodeTransferWithRelay', ): TypedContractMethod< [transfer: TokenBridgeRelayerStructs.TransferWithRelayStruct], [string], - "view" + 'view' >; getFunction( - nameOrSignature: "feeRecipient" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'feeRecipient', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "fetchLocalAddressFromTransferMessage" - ): TypedContractMethod<[payload: BytesLike], [string], "view">; + nameOrSignature: 'fetchLocalAddressFromTransferMessage', + ): TypedContractMethod<[payload: BytesLike], [string], 'view'>; getFunction( - nameOrSignature: "getAcceptedTokensList" - ): TypedContractMethod<[], [string[]], "view">; + nameOrSignature: 'getAcceptedTokensList', + ): TypedContractMethod<[], [string[]], 'view'>; getFunction( - nameOrSignature: "getPaused" - ): TypedContractMethod<[], [boolean], "view">; + nameOrSignature: 'getPaused', + ): TypedContractMethod<[], [boolean], 'view'>; getFunction( - nameOrSignature: "getRegisteredContract" - ): TypedContractMethod<[emitterChainId: BigNumberish], [string], "view">; + nameOrSignature: 'getRegisteredContract', + ): TypedContractMethod<[emitterChainId: BigNumberish], [string], 'view'>; getFunction( - nameOrSignature: "isAcceptedToken" - ): TypedContractMethod<[token: AddressLike], [boolean], "view">; + nameOrSignature: 'isAcceptedToken', + ): TypedContractMethod<[token: AddressLike], [boolean], 'view'>; getFunction( - nameOrSignature: "maxNativeSwapAmount" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'maxNativeSwapAmount', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "nativeSwapRate" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'nativeSwapRate', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "normalizeAmount" + nameOrSignature: 'normalizeAmount', ): TypedContractMethod< [amount: BigNumberish, decimals: BigNumberish], [bigint], - "view" + 'view' >; getFunction( - nameOrSignature: "owner" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'owner', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "ownerAssistant" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'ownerAssistant', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "pendingOwner" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'pendingOwner', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "registerContract" + nameOrSignature: 'registerContract', ): TypedContractMethod< [chainId_: BigNumberish, contractAddress: BytesLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "registerToken" + nameOrSignature: 'registerToken', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "relayerFee" - ): TypedContractMethod<[chainId_: BigNumberish], [bigint], "view">; + nameOrSignature: 'relayerFee', + ): TypedContractMethod<[chainId_: BigNumberish], [bigint], 'view'>; getFunction( - nameOrSignature: "relayerFeePrecision" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'relayerFeePrecision', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "setPauseForTransfers" + nameOrSignature: 'setPauseForTransfers', ): TypedContractMethod< [chainId_: BigNumberish, paused: boolean], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "submitOwnershipTransferRequest" + nameOrSignature: 'submitOwnershipTransferRequest', ): TypedContractMethod< [chainId_: BigNumberish, newOwner: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "swapRate" - ): TypedContractMethod<[token: AddressLike], [bigint], "view">; + nameOrSignature: 'swapRate', + ): TypedContractMethod<[token: AddressLike], [bigint], 'view'>; getFunction( - nameOrSignature: "swapRatePrecision" - ): TypedContractMethod<[], [bigint], "view">; + nameOrSignature: 'swapRatePrecision', + ): TypedContractMethod<[], [bigint], 'view'>; getFunction( - nameOrSignature: "tokenBridge" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'tokenBridge', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "transferTokensWithRelay" + nameOrSignature: 'transferTokensWithRelay', ): TypedContractMethod< [ token: AddressLike, @@ -967,119 +967,119 @@ export interface TokenBridgeRelayer extends BaseContract { toNativeTokenAmount: BigNumberish, targetChain: BigNumberish, targetRecipient: BytesLike, - batchId: BigNumberish + batchId: BigNumberish, ], [bigint], - "payable" + 'payable' >; getFunction( - nameOrSignature: "unwrapWeth" - ): TypedContractMethod<[], [boolean], "view">; + nameOrSignature: 'unwrapWeth', + ): TypedContractMethod<[], [boolean], 'view'>; getFunction( - nameOrSignature: "updateFeeRecipient" + nameOrSignature: 'updateFeeRecipient', ): TypedContractMethod< [chainId_: BigNumberish, newFeeRecipient: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateMaxNativeSwapAmount" + nameOrSignature: 'updateMaxNativeSwapAmount', ): TypedContractMethod< [chainId_: BigNumberish, token: AddressLike, maxAmount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateOwnerAssistant" + nameOrSignature: 'updateOwnerAssistant', ): TypedContractMethod< [chainId_: BigNumberish, newAssistant: AddressLike], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateRelayerFee" + nameOrSignature: 'updateRelayerFee', ): TypedContractMethod< [chainId_: BigNumberish, amount: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateRelayerFeePrecision" + nameOrSignature: 'updateRelayerFeePrecision', ): TypedContractMethod< [chainId_: BigNumberish, relayerFeePrecision_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateSwapRate" + nameOrSignature: 'updateSwapRate', ): TypedContractMethod< [ chainId_: BigNumberish, - swapRateUpdate: TokenBridgeRelayerStructs.SwapRateUpdateStruct[] + swapRateUpdate: TokenBridgeRelayerStructs.SwapRateUpdateStruct[], ], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateSwapRatePrecision" + nameOrSignature: 'updateSwapRatePrecision', ): TypedContractMethod< [chainId_: BigNumberish, swapRatePrecision_: BigNumberish], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "updateUnwrapWethFlag" + nameOrSignature: 'updateUnwrapWethFlag', ): TypedContractMethod< [chainId_: BigNumberish, unwrapWeth_: boolean], [void], - "nonpayable" + 'nonpayable' >; getFunction( - nameOrSignature: "wormhole" - ): TypedContractMethod<[], [string], "view">; + nameOrSignature: 'wormhole', + ): TypedContractMethod<[], [string], 'view'>; getFunction( - nameOrSignature: "wrapAndTransferEthWithRelay" + nameOrSignature: 'wrapAndTransferEthWithRelay', ): TypedContractMethod< [ toNativeTokenAmount: BigNumberish, targetChain: BigNumberish, targetRecipient: BytesLike, - batchId: BigNumberish + batchId: BigNumberish, ], [bigint], - "payable" + 'payable' >; getEvent( - key: "FeeRecipientUpdated" + key: 'FeeRecipientUpdated', ): TypedContractEvent< FeeRecipientUpdatedEvent.InputTuple, FeeRecipientUpdatedEvent.OutputTuple, FeeRecipientUpdatedEvent.OutputObject >; getEvent( - key: "OwnershipTransfered" + key: 'OwnershipTransfered', ): TypedContractEvent< OwnershipTransferedEvent.InputTuple, OwnershipTransferedEvent.OutputTuple, OwnershipTransferedEvent.OutputObject >; getEvent( - key: "SwapExecuted" + key: 'SwapExecuted', ): TypedContractEvent< SwapExecutedEvent.InputTuple, SwapExecutedEvent.OutputTuple, SwapExecutedEvent.OutputObject >; getEvent( - key: "SwapRateUpdated" + key: 'SwapRateUpdated', ): TypedContractEvent< SwapRateUpdatedEvent.InputTuple, SwapRateUpdatedEvent.OutputTuple, SwapRateUpdatedEvent.OutputObject >; getEvent( - key: "TransferRedeemed" + key: 'TransferRedeemed', ): TypedContractEvent< TransferRedeemedEvent.InputTuple, TransferRedeemedEvent.OutputTuple, @@ -1087,7 +1087,7 @@ export interface TokenBridgeRelayer extends BaseContract { >; filters: { - "FeeRecipientUpdated(address,address)": TypedContractEvent< + 'FeeRecipientUpdated(address,address)': TypedContractEvent< FeeRecipientUpdatedEvent.InputTuple, FeeRecipientUpdatedEvent.OutputTuple, FeeRecipientUpdatedEvent.OutputObject @@ -1098,7 +1098,7 @@ export interface TokenBridgeRelayer extends BaseContract { FeeRecipientUpdatedEvent.OutputObject >; - "OwnershipTransfered(address,address)": TypedContractEvent< + 'OwnershipTransfered(address,address)': TypedContractEvent< OwnershipTransferedEvent.InputTuple, OwnershipTransferedEvent.OutputTuple, OwnershipTransferedEvent.OutputObject @@ -1109,7 +1109,7 @@ export interface TokenBridgeRelayer extends BaseContract { OwnershipTransferedEvent.OutputObject >; - "SwapExecuted(address,address,address,uint256,uint256)": TypedContractEvent< + 'SwapExecuted(address,address,address,uint256,uint256)': TypedContractEvent< SwapExecutedEvent.InputTuple, SwapExecutedEvent.OutputTuple, SwapExecutedEvent.OutputObject @@ -1120,7 +1120,7 @@ export interface TokenBridgeRelayer extends BaseContract { SwapExecutedEvent.OutputObject >; - "SwapRateUpdated(tuple[])": TypedContractEvent< + 'SwapRateUpdated(tuple[])': TypedContractEvent< SwapRateUpdatedEvent.InputTuple, SwapRateUpdatedEvent.OutputTuple, SwapRateUpdatedEvent.OutputObject @@ -1131,7 +1131,7 @@ export interface TokenBridgeRelayer extends BaseContract { SwapRateUpdatedEvent.OutputObject >; - "TransferRedeemed(uint16,bytes32,uint64)": TypedContractEvent< + 'TransferRedeemed(uint16,bytes32,uint64)': TypedContractEvent< TransferRedeemedEvent.InputTuple, TransferRedeemedEvent.OutputTuple, TransferRedeemedEvent.OutputObject diff --git a/platforms/evm/src/ethers-contracts/factories/CircleRelayer__factory.ts b/platforms/evm/src/ethers-contracts/factories/CircleRelayer__factory.ts index d74120e0d..0146bc6b4 100644 --- a/platforms/evm/src/ethers-contracts/factories/CircleRelayer__factory.ts +++ b/platforms/evm/src/ethers-contracts/factories/CircleRelayer__factory.ts @@ -6,828 +6,828 @@ import { ContractFactory, ContractTransactionResponse, Interface, -} from "ethers"; +} from 'ethers'; import type { Signer, BigNumberish, AddressLike, ContractDeployTransaction, ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../common"; -import type { CircleRelayer, CircleRelayerInterface } from "../CircleRelayer"; +} from 'ethers'; +import type { NonPayableOverrides } from '../common'; +import type { CircleRelayer, CircleRelayerInterface } from '../CircleRelayer'; const _abi = [ { inputs: [ { - internalType: "address", - name: "circleIntegration_", - type: "address", + internalType: 'address', + name: 'circleIntegration_', + type: 'address', }, { - internalType: "uint8", - name: "nativeTokenDecimals_", - type: "uint8", + internalType: 'uint8', + name: 'nativeTokenDecimals_', + type: 'uint8', }, { - internalType: "address", - name: "feeRecipient_", - type: "address", + internalType: 'address', + name: 'feeRecipient_', + type: 'address', }, { - internalType: "address", - name: "ownerAssistant_", - type: "address", + internalType: 'address', + name: 'ownerAssistant_', + type: 'address', }, ], - stateMutability: "nonpayable", - type: "constructor", + stateMutability: 'nonpayable', + type: 'constructor', }, { anonymous: false, inputs: [ { indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", + internalType: 'address', + name: 'previousAdmin', + type: 'address', }, { indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", + internalType: 'address', + name: 'newAdmin', + type: 'address', }, ], - name: "AdminChanged", - type: "event", + name: 'AdminChanged', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "beacon", - type: "address", + internalType: 'address', + name: 'beacon', + type: 'address', }, ], - name: "BeaconUpgraded", - type: "event", + name: 'BeaconUpgraded', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "oldRecipient", - type: "address", + internalType: 'address', + name: 'oldRecipient', + type: 'address', }, { indexed: true, - internalType: "address", - name: "newRecipient", - type: "address", + internalType: 'address', + name: 'newRecipient', + type: 'address', }, ], - name: "FeeRecipientUpdated", - type: "event", + name: 'FeeRecipientUpdated', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "oldOwner", - type: "address", + internalType: 'address', + name: 'oldOwner', + type: 'address', }, { indexed: true, - internalType: "address", - name: "newOwner", - type: "address", + internalType: 'address', + name: 'newOwner', + type: 'address', }, ], - name: "OwnershipTransfered", - type: "event", + name: 'OwnershipTransfered', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "recipient", - type: "address", + internalType: 'address', + name: 'recipient', + type: 'address', }, { indexed: true, - internalType: "address", - name: "relayer", - type: "address", + internalType: 'address', + name: 'relayer', + type: 'address', }, { indexed: true, - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { indexed: false, - internalType: "uint256", - name: "tokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', }, { indexed: false, - internalType: "uint256", - name: "nativeAmount", - type: "uint256", + internalType: 'uint256', + name: 'nativeAmount', + type: 'uint256', }, ], - name: "SwapExecuted", - type: "event", + name: 'SwapExecuted', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { indexed: true, - internalType: "uint256", - name: "swapRate", - type: "uint256", + internalType: 'uint256', + name: 'swapRate', + type: 'uint256', }, ], - name: "SwapRateUpdated", - type: "event", + name: 'SwapRateUpdated', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "implementation", - type: "address", + internalType: 'address', + name: 'implementation', + type: 'address', }, ], - name: "Upgraded", - type: "event", + name: 'Upgraded', + type: 'event', }, { inputs: [], - name: "VERSION", + name: 'VERSION', outputs: [ { - internalType: "string", - name: "", - type: "string", + internalType: 'string', + name: '', + type: 'string', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "bytes32", - name: "address_", - type: "bytes32", + internalType: 'bytes32', + name: 'address_', + type: 'bytes32', }, ], - name: "bytes32ToAddress", + name: 'bytes32ToAddress', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [ { - internalType: "contract IERC20Metadata", - name: "token", - type: "address", + internalType: 'contract IERC20Metadata', + name: 'token', + type: 'address', }, ], - name: "calculateMaxSwapAmountIn", + name: 'calculateMaxSwapAmountIn', outputs: [ { - internalType: "uint256", - name: "maxAllowed", - type: "uint256", + internalType: 'uint256', + name: 'maxAllowed', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "contract IERC20Metadata", - name: "token", - type: "address", + internalType: 'contract IERC20Metadata', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "toNativeAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeAmount', + type: 'uint256', }, ], - name: "calculateNativeSwapAmountOut", + name: 'calculateNativeSwapAmountOut', outputs: [ { - internalType: "uint256", - name: "nativeAmount", - type: "uint256", + internalType: 'uint256', + name: 'nativeAmount', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, ], - name: "cancelOwnershipTransferRequest", + name: 'cancelOwnershipTransferRequest', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [], - name: "chainId", + name: 'chainId', outputs: [ { - internalType: "uint16", - name: "", - type: "uint16", + internalType: 'uint16', + name: '', + type: 'uint16', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "circleIntegration", + name: 'circleIntegration', outputs: [ { - internalType: "contract ICircleIntegration", - name: "", - type: "address", + internalType: 'contract ICircleIntegration', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "confirmOwnershipTransferRequest", + name: 'confirmOwnershipTransferRequest', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encoded", - type: "bytes", + internalType: 'bytes', + name: 'encoded', + type: 'bytes', }, ], - name: "decodeTransferTokensWithRelay", + name: 'decodeTransferTokensWithRelay', outputs: [ { components: [ { - internalType: "uint8", - name: "payloadId", - type: "uint8", + internalType: 'uint8', + name: 'payloadId', + type: 'uint8', }, { - internalType: "uint256", - name: "targetRelayerFee", - type: "uint256", + internalType: 'uint256', + name: 'targetRelayerFee', + type: 'uint256', }, { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "bytes32", - name: "targetRecipientWallet", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipientWallet', + type: 'bytes32', }, ], - internalType: "struct CircleRelayerStructs.TransferTokensWithRelay", - name: "transfer", - type: "tuple", + internalType: 'struct CircleRelayerStructs.TransferTokensWithRelay', + name: 'transfer', + type: 'tuple', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [ { components: [ { - internalType: "uint8", - name: "payloadId", - type: "uint8", + internalType: 'uint8', + name: 'payloadId', + type: 'uint8', }, { - internalType: "uint256", - name: "targetRelayerFee", - type: "uint256", + internalType: 'uint256', + name: 'targetRelayerFee', + type: 'uint256', }, { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "bytes32", - name: "targetRecipientWallet", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipientWallet', + type: 'bytes32', }, ], - internalType: "struct CircleRelayerStructs.TransferTokensWithRelay", - name: "transfer", - type: "tuple", + internalType: 'struct CircleRelayerStructs.TransferTokensWithRelay', + name: 'transfer', + type: 'tuple', }, ], - name: "encodeTransferTokensWithRelay", + name: 'encodeTransferTokensWithRelay', outputs: [ { - internalType: "bytes", - name: "encoded", - type: "bytes", + internalType: 'bytes', + name: 'encoded', + type: 'bytes', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [], - name: "feeRecipient", + name: 'feeRecipient', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "getPaused", + name: 'getPaused', outputs: [ { - internalType: "bool", - name: "paused", - type: "bool", + internalType: 'bool', + name: 'paused', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "emitterChainId", - type: "uint16", + internalType: 'uint16', + name: 'emitterChainId', + type: 'uint16', }, ], - name: "getRegisteredContract", + name: 'getRegisteredContract', outputs: [ { - internalType: "bytes32", - name: "", - type: "bytes32", + internalType: 'bytes32', + name: '', + type: 'bytes32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "maxNativeSwapAmount", + name: 'maxNativeSwapAmount', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "nativeSwapRate", + name: 'nativeSwapRate', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "nativeSwapRatePrecision", + name: 'nativeSwapRatePrecision', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "nativeTokenDecimals", + name: 'nativeTokenDecimals', outputs: [ { - internalType: "uint8", - name: "", - type: "uint8", + internalType: 'uint8', + name: '', + type: 'uint8', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "owner", + name: 'owner', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "ownerAssistant", + name: 'ownerAssistant', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "pendingOwner", + name: 'pendingOwner', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { components: [ { - internalType: "bytes", - name: "encodedWormholeMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedWormholeMessage', + type: 'bytes', }, { - internalType: "bytes", - name: "circleBridgeMessage", - type: "bytes", + internalType: 'bytes', + name: 'circleBridgeMessage', + type: 'bytes', }, { - internalType: "bytes", - name: "circleAttestation", - type: "bytes", + internalType: 'bytes', + name: 'circleAttestation', + type: 'bytes', }, ], - internalType: "struct ICircleIntegration.RedeemParameters", - name: "redeemParams", - type: "tuple", + internalType: 'struct ICircleIntegration.RedeemParameters', + name: 'redeemParams', + type: 'tuple', }, ], - name: "redeemTokens", + name: 'redeemTokens', outputs: [], - stateMutability: "payable", - type: "function", + stateMutability: 'payable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "bytes32", - name: "contractAddress", - type: "bytes32", + internalType: 'bytes32', + name: 'contractAddress', + type: 'bytes32', }, ], - name: "registerContract", + name: 'registerContract', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "relayerFee", + name: 'relayerFee', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "bool", - name: "paused", - type: "bool", + internalType: 'bool', + name: 'paused', + type: 'bool', }, ], - name: "setPauseForTransfers", + name: 'setPauseForTransfers', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "newOwner", - type: "address", + internalType: 'address', + name: 'newOwner', + type: 'address', }, ], - name: "submitOwnershipTransferRequest", + name: 'submitOwnershipTransferRequest', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "contract IERC20Metadata", - name: "token", - type: "address", + internalType: 'contract IERC20Metadata', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "uint16", - name: "targetChain", - type: "uint16", + internalType: 'uint16', + name: 'targetChain', + type: 'uint16', }, { - internalType: "bytes32", - name: "targetRecipientWallet", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipientWallet', + type: 'bytes32', }, ], - name: "transferTokensWithRelay", + name: 'transferTokensWithRelay', outputs: [ { - internalType: "uint64", - name: "messageSequence", - type: "uint64", + internalType: 'uint64', + name: 'messageSequence', + type: 'uint64', }, ], - stateMutability: "payable", - type: "function", + stateMutability: 'payable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "newFeeRecipient", - type: "address", + internalType: 'address', + name: 'newFeeRecipient', + type: 'address', }, ], - name: "updateFeeRecipient", + name: 'updateFeeRecipient', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "maxAmount", - type: "uint256", + internalType: 'uint256', + name: 'maxAmount', + type: 'uint256', }, ], - name: "updateMaxNativeSwapAmount", + name: 'updateMaxNativeSwapAmount', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "swapRate", - type: "uint256", + internalType: 'uint256', + name: 'swapRate', + type: 'uint256', }, ], - name: "updateNativeSwapRate", + name: 'updateNativeSwapRate', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "uint256", - name: "nativeSwapRatePrecision_", - type: "uint256", + internalType: 'uint256', + name: 'nativeSwapRatePrecision_', + type: 'uint256', }, ], - name: "updateNativeSwapRatePrecision", + name: 'updateNativeSwapRatePrecision', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "newAssistant", - type: "address", + internalType: 'address', + name: 'newAssistant', + type: 'address', }, ], - name: "updateOwnerAssistant", + name: 'updateOwnerAssistant', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, ], - name: "updateRelayerFee", + name: 'updateRelayerFee', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [], - name: "wormhole", + name: 'wormhole', outputs: [ { - internalType: "contract IWormhole", - name: "", - type: "address", + internalType: 'contract IWormhole', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, ] as const; const _bytecode = - "0x6080604090808252346200034a5760808162002baa80380380916200002582856200034f565b8339810103126200034a576200003b8162000389565b6020808301519260ff84168085036200034a576200006960606200006188850162000389565b930162000389565b6001600b556001600160a01b03949092908516918215620002fb5715620002b7578416918215620002735784169081156200022f57600092835490640100000000600160c01b0333871b169362ff000060018060a01b031999858b600554161760055560101b1691828663ff010000600160c01b0319861617178755896003541617600355886002541617600255885193634d4502c960e11b85528685600481875afa94851562000225579087949392918796620001d5575b5061ffff600496169263ff000001600160c01b03191617171784558751928380926384acd1bb60e01b82525afa928315620001cb57829362000182575b505050169060045416176004556305f5e1006006555161280b90816200039f8239f35b9080929350813d8311620001c3575b6200019d81836200034f565b81010312620001bf5751908282168203620001bc57503880806200015f565b80fd5b5080fd5b503d62000191565b86513d84823e3d90fd5b8092949650859193953d83116200021d575b620001f381836200034f565b8101031262000219575161ffff8116810362000219579386939092909161ffff62000122565b8580fd5b503d620001e7565b8a513d88823e3d90fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206f776e657220617373697374616e740000000000000000006044820152606490fd5b865162461bcd60e51b815260048101859052601d60248201527f696e76616c69642066656520726563697069656e7420616464726573730000006044820152606490fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206e617469766520646563696d616c730000000000000000006044820152606490fd5b875162461bcd60e51b815260048101869052602260248201527f696e76616c696420636972636c6520696e746567726174696f6e206164647265604482015261737360f01b6064820152608490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200037357604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200034a5756fe60806040526004361015610013575b600080fd5b60003560e01c8063038c0b66146102a7578063086049851461029e5780630a55d735146102955780630e1c863e1461028c57806313d8900b1461028357806316fb440a1461027a5780631a28219514610271578063203c5095146102685780632a88b4251461025f5780632efe4f421461025657806332d9965a1461024d5780633d62cca014610244578063469048401461023b57806351e2d7b51461023257806359b87d8e146102295780635ced058e146102205780636805b84b1461021757806368aa9ef41461020e5780636ddbaff31461020557806384acd1bb146101fc5780638da5cb5b146101f35780638e151dd1146101ea57806394cc743d146101e15780639a8a0592146101d8578063a2f32c8f146101cf578063ad48cb5e146101c6578063b5419523146101bd578063cd601c78146101b4578063dd6522aa146101ab578063e30c3978146101a2578063ea1d2e4a14610199578063ffa1ad74146101905763fff982a81461018857600080fd5b61000e6112e4565b5061000e61129d565b5061000e6111f7565b5061000e6111cd565b5061000e6111a3565b5061000e61117b565b5061000e61113d565b5061000e611118565b5061000e6110c9565b5061000e6110a6565b5061000e61100d565b5061000e610fd9565b5061000e610faf565b5061000e610f85565b5061000e610f22565b5061000e610e94565b5061000e610e6d565b5061000e610e45565b5061000e610bc6565b5061000e610aec565b5061000e610ac2565b5061000e610a88565b5061000e610a69565b5061000e610a2b565b5061000e610943565b5061000e61086b565b5061000e6107f8565b5061000e6107a9565b5061000e6106d3565b5061000e6104a1565b5061000e61042a565b5061000e610392565b503461000e57600080600319360112610383576001546001600160a01b03908116903382900361033e57825460201c6001600160a01b031660008054640100000000600160c01b031916602085901b640100000000600160c01b0316179055600180546001600160a01b0319169055167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee678380a380f35b60405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606490fd5b80fd5b61ffff81160361000e57565b503461000e57604036600319011261000e576004356103b081610386565b600054602435916103e291906103d4602083901c6001600160a01b031633146122e6565b61ffff809116911614612329565b80156103ed57600655005b60405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606490fd5b5060031960203682011261000e57600435906001600160401b03821161000e57606090823603011261000e5761046290600401611b89565b005b6001600160a01b0381160361000e57565b606090600319011261000e5760043561048d81610386565b9060243561049a81610464565b9060443590565b503461000e576104626104b336610475565b916104e96000546104da60018060a01b0333818460201c16149081156105d6575b506123bf565b61ffff83811691161415612415565b61050c6105048261ffff16600052600a602052604060002090565b541515612451565b6005546105729061053390610527906001600160a01b031681565b6001600160a01b031690565b604051633b6e750f60e01b81526001600160a01b038516600482015290602090829060249082905afa9081156105c9575b60009161059b575b50612496565b61ffff1660009081526007602090815260408083206001600160a01b0390941683529290522055565b6105bc915060203d81116105c2575b6105b48183610659565b8101906116ff565b3861056c565b503d6105aa565b6105d161158c565b610564565b6002541633149050386104d4565b50634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761061657604052565b61061e6105e4565b604052565b604081019081106001600160401b0382111761061657604052565b60a081019081106001600160401b0382111761061657604052565b90601f801991011681019081106001600160401b0382111761061657604052565b60405190610687826105fb565b565b6040519061010082018281106001600160401b0382111761061657604052565b6020906001600160401b0381116106c6575b601f01601f19160190565b6106ce6105e4565b6106bb565b503461000e57602036600319011261000e576004356001600160401b03811161000e573660238201121561000e57806004013590610710826106a9565b61071d6040519182610659565b828152366024848401011161000e57600060208461077d95602461074996018386013783010152612664565b60405191829182919091606080608083019460ff815116845260208101516020850152604081015160408501520151910152565b0390f35b604090600319011261000e5760043561079981610386565b906024356107a681610464565b90565b503461000e5760206107e561ffff6107c036610781565b91166000526007835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b8015150361000e57565b503461000e57604036600319011261000e5760043561081681610386565b63ff000000602435610827816107ee565b6000549261085590610847602086901c6001600160a01b031633146122e6565b61ffff858116911614612329565b63ff0000001990921691151560181b1617600055005b503461000e5761087a36610781565b60005490916001600160a01b039161089d916103d4602083901c851633146122e6565b8082169182156108ee57600380546001600160a01b031981166001600160a01b039384161790915516167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3600080a3005b60405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608490fd5b503461000e5761095236610475565b909160009261097c845460018060a01b039333858360201c16148015610a1e575b6103d4906123bf565b600554604051633b6e750f60e01b81526001600160a01b0383811660048301526109c392602091839160249183918916165afa908115610a11575b869161059b5750612496565b6109ce8315156124d7565b6001600160a01b0381166000908152600860205260409020839055167fc6eb9fb936b61b402d503deeffc822f46492e15c2c8f079815cc4850ad7b02b08380a380f35b610a1961158c565b6109b7565b5060025485163314610973565b503461000e57602036600319011261000e57600435610a4981610464565b60018060a01b031660005260096020526020604060002054604051908152f35b503461000e57600036600319011261000e576020600654604051908152f35b503461000e57602036600319011261000e5761ffff600435610aa981610386565b16600052600a6020526020604060002054604051908152f35b503461000e57600036600319011261000e576003546040516001600160a01b039091168152602090f35b503461000e57604036600319011261000e57600435610b0a81610386565b6000549060243590610b2a602084901c6001600160a01b031633146122e6565b8115610b7157610b506104629361ffff808416908115159283610b64575b505050612363565b61ffff16600052600a602052604060002055565b1614159050388080610b48565b60405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608490fd5b5060a036600319011261000e57600435610bdf81610464565b6024359060443560643591610bf383610386565b608435926002600b5414610e00576002600b5560ff60005460181c16610dc757610c1e851515611370565b610c298415156113b1565b6001600160a01b038281169590610c418715156113fd565b610c598361ffff16600052600a602052604060002090565b549382610c67861515611449565b610c70916121a5565b9587610c8a8561ffff166000526007602052604060002090565b6001600160a01b039091166000908152602091909152604090205495610cb081886114ba565b8811610cbb906114cf565b610cc361067a565b6001815296602088015260408701526060860152600554166001600160a01b03166001600160a01b031694610cf9908688611613565b610d0161067a565b6001600160a01b039096168652602086015261ffff1660408501526060840152610d2a90612523565b6040516328a87c1360e21b81529283918291610d4a919060048401611543565b03815a602094600091f161077d918115610dba575b600091610d8c575b50610d726001600b55565b6040516001600160401b0390911681529081906020820190565b610dad915060203d8111610db3575b610da58183610659565b81019061152f565b38610d67565b503d610d9b565b610dc261158c565b610d5f565b60405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b503461000e57602036600319011261000e576040516004356001600160a01b03168152602090f35b503461000e57600036600319011261000e57602060ff60005460181c166040519015158152f35b503461000e57600036600319011261000e576002546040516001600160a01b039091168152602090f35b60ff81160361000e57565b60005b838110610edc5750506000910152565b8181015183820152602001610ecc565b90602091610f0581518092818552858086019101610ec9565b601f01601f1916010190565b9060206107a6928181520190610eec565b503461000e57608036600319011261000e5761077d610f71604051610f46816105fb565b600435610f5281610ebe565b8152602435602082015260443560408201526064356060820152612523565b604051918291602083526020830190610eec565b503461000e57600036600319011261000e576004546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e57600054604051602091821c6001600160a01b03168152f35b503461000e57604036600319011261000e576020611005600435610ffc81610464565b602435906120d2565b604051908152f35b503461000e5761101c36610781565b6000546001600160a01b039261103e91906103d4602083901c861633146122e6565b168015611062576bffffffffffffffffffffffff60a01b6001541617600155600080f35b606460405162461bcd60e51b815260206004820152602060248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152fd5b503461000e57600036600319011261000e57602061ffff60005416604051908152f35b503461000e57602036600319011261000e576111066004356110ea81610386565b600054906103d4602083901c6001600160a01b031633146122e6565b600180546001600160a01b0319169055005b503461000e57600036600319011261000e57602060ff60005460101c16604051908152f35b503461000e57602036600319011261000e5760043561115b81610464565b60018060a01b031660005260086020526020604060002054604051908152f35b503461000e57602036600319011261000e57602061100560043561119e81610464565b611fa2565b503461000e57600036600319011261000e576005546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e576001546040516001600160a01b039091168152602090f35b503461000e5761120636610781565b6000546001600160a01b039261122891906103d4602083901c861633146122e6565b16801561124c576bffffffffffffffffffffffff60a01b6002541617600255600080f35b60405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608490fd5b503461000e57600036600319011261000e5761077d6040516112be81610623565b60058152640302e322e360dc1b6020820152604051918291602083526020830190610eec565b503461000e576104626113566112f936610475565b600054909391926001600160a01b039161131e916103d4602083901c851633146122e6565b6020816005541691602460405180948193633b6e750f60e01b8352881660048301525afa9081156105c95760009161059b5750612496565b6001600160a01b0316600090815260096020526040902055565b1561137757565b60405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606490fd5b156113b857565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c69642074617267657420726563697069656e7400000000000000006044820152606490fd5b1561140457565b60405162461bcd60e51b815260206004820152601d60248201527f746f6b656e2063616e6e6f7420657175616c20616464726573732830290000006044820152606490fd5b1561145057565b60405162461bcd60e51b815260206004820152602560248201527f434952434c452d52454c415945523a20746172676574206e6f742072656769736044820152641d195c995960da1b6064820152608490fd5b50634e487b7160e01b600052601160045260246000fd5b919082018092116114c757565b6106876114a3565b156114d657565b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420616d6f756e74526563656976656400000000006044820152606490fd5b51906001600160401b038216820361000e57565b9081602091031261000e576107a69061151b565b60c09060606107a6949360018060a01b0381511683526020810151602084015261ffff604082015116604084015201516060820152600060808201528160a08201520190610eec565b506040513d6000823e3d90fd5b9081602091031261000e575190565b156115af57565b60405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b61166961068793928315801561166e575b61162d906115a8565b60405163095ea7b360e01b60208201526001600160a01b039091166024820152604481019390935282606481015b03601f198101845283610659565b611714565b50604051636eb1769f60e11b81523060048201526001600160a01b038216602482015261162d90602081806044810103816001600160a01b0389165afa9081156116f2575b6000916116c4575b50159050611624565b6116e5915060203d81116116eb575b6116dd8183610659565b810190611599565b386116bb565b503d6116d3565b6116fa61158c565b6116b3565b9081602091031261000e57516107a6816107ee565b604051611791916001600160a01b031661172d82610623565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af13d15611819573d91611775836106a9565b926117836040519485610659565b83523d60008785013e61181d565b805190828215928315611801575b505050156117aa5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b61181193508201810191016116ff565b38828161179f565b6060915b9192901561187f5750815115611831575090565b3b1561183a5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156118925750805190602001fd5b60405162461bcd60e51b81529081906118ae9060048301610f11565b0390fd5b519063ffffffff8216820361000e57565b81601f8201121561000e5780516118d9816106a9565b926118e76040519485610659565b8184526020828401011161000e576107a69160208085019101610ec9565b9060208282031261000e5781516001600160401b039283821161000e5701906101008282031261000e57611937610689565b928251845260208301516020850152611952604084016118b2565b6040850152611963606084016118b2565b60608501526119746080840161151b565b608085015260a083015160a085015260c083015160c085015260e083015190811161000e576119a392016118c3565b60e082015290565b9035601e198236030181121561000e5701602081359101916001600160401b03821161000e57813603831361000e57565b908060209392818452848401376000828201840152601f01601f1916010190565b9060606107a69260208152611a25611a1584806119ab565b84602085015260808401916119dc565b90611a58611a4d611a3960208701876119ab565b601f198587038101604087015295916119dc565b9460408101906119ab565b939092828603019101526119dc565b9081602091031261000e57516107a681610386565b15611a8357565b60405162461bcd60e51b815260206004820152602860248201527f66726f6d41646472657373206973206e6f74206120726567697374657265642060448201526718dbdb9d1c9858dd60c21b6064820152608490fd5b15611ae057565b60405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608490fd5b15611b3857565b606460405162461bcd60e51b815260206004820152602060248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152fd5b919082039182116114c757565b600554611bc3906001600160a01b0390611ba4908216610527565b90604051936357bf927b60e01b855284806000958693600483016119fd565b038183865af1938415611ea1575b8394611e7d575b50611c33611c62611bec60e0870151612664565b93611c5b60a088015191611c0760408a015163ffffffff1690565b6040518092638cf67ba960e01b825281806020998a956004830191909163ffffffff6020820193169052565b03915afa908115611e70575b8891611e43575b5061ffff16600052600a602052604060002090565b5414611a7c565b8451611c76906001600160a01b0316610527565b60608401519094906001600160a01b03169383851691823314611e295761068797928483611cbc938a6040611cca999701948551611ce7575b50505001519051906114ba565b9182611cd1575b0151611b7c565b9216611eae565b611ce2838660035416878a16611eae565b611cc3565b611cf082611fa2565b80875111611e21575b50611d058651836120d2565b92831580611dd557828291611d1c87341015611b31565b82611d278834611b7c565b8015908115611da1575b5050879091611d97575b83928392f115611d8a575b8551604080519182526020820194909452918b169233927f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f19190a45b388a81611caf565b611d9261158c565b611d46565b6108fc9150611d3b565b8280929181928290611dcc575b3390f115611dbf575b823880611d31565b611dc761158c565b611db7565b506108fc611dae565b509250505080845234158015611ded575b5050611d82565b81908190611e18575b81809134903390f115611e0b575b3880611de6565b611e1361158c565b611e04565b506108fc611df6565b865238611cf9565b50505061068794611e3a3415611ad9565b01519216611eae565b611e639150853d8711611e69575b611e5b8183610659565b810190611a67565b38611c46565b503d611e51565b611e7861158c565b611c3f565b611e9a9194503d8085833e611e928183610659565b810190611905565b9238611bd8565b611ea961158c565b611bd1565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261068791611669826064810161165b565b15611eee57565b60405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606490fd5b9081602091031261000e57516107a681610ebe565b818102929181159184041417156114c757565b9060ff8091169116039060ff82116114c757565b60ff16604d8111611f75575b600a0a90565b611f7d6114a3565b611f6f565b8115611f8c570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031660008181526008602052604090205490611fc6821515611ee7565b60405163313ce56760e01b815291602083600481855afa9283156120c5575b600093612095575b5060ff60005460101c16918260ff8516116000146120535761203f61204a936120396107a696946120336120449560018060a01b03166000526009602052604060002090565b54611f3c565b93611f4f565b611f63565b90611f3c565b60065490611f82565b61203f6107a69461208061208f946120336120869560018060a01b03166000526009602052604060002090565b94611f4f565b60065490611f3c565b90611f82565b6120b791935060203d81116120be575b6120af8183610659565b810190611f27565b9138611fed565b503d6120a5565b6120cd61158c565b611fe5565b6001600160a01b03166000818152600860209081526040909120600492919054916120fe831515611ee7565b60405163313ce56760e01b815293849182905afa918215612198575b600092612178575b5060ff60005460101c168060ff841611600014612159579061204461203f61208f936121536107a697600654611f3c565b95611f4f565b61204461203f61217393946120396107a697600654611f3c565b611f82565b61219191925060203d81116120be576120af8183610659565b9038612122565b6121a061158c565b61211a565b6040516370a0823160e01b8082523060048301526107a69391926020926001600160a01b0390911691908385602481865afa948515612274575b60009561224d575b50906121f68492303386612281565b60405190815230600482015291829060249082905afa918215612240575b600092612223575b5050611b7c565b6122399250803d106116eb576116dd8183610659565b388061221c565b61224861158c565b612214565b849291955061226b6121f691843d86116116eb576116dd8183610659565b959192506121e7565b61227c61158c565b6121df565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526106879160a082018281106001600160401b038211176122d9575b604052611714565b6122e16105e4565b6122d1565b156122ed57565b60405162461bcd60e51b815260206004820152601460248201527331b0b63632b9103737ba103a34329037bbb732b960611b6044820152606490fd5b1561233057565b60405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339031b430b4b760a91b6044820152606490fd5b1561236a57565b60405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608490fd5b156123c657565b60405162461bcd60e51b815260206004820152602160248201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6044820152601d60fa1b6064820152608490fd5b1561241c57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606490fd5b1561245857565b60405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606490fd5b1561249d57565b60405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd081858d8d95c1d195960721b6044820152606490fd5b156124de57565b60405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606490fd5b600160ff825116036125725780519060208101519060606040820151910151916040519360ff60f81b9060f81b166020850152602184015260418301526061820152606181526107a68161063e565b60405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606490fd5b156125b257565b60405162461bcd60e51b815260206004820152602960248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152681c185e5b1bd859125960ba1b6064820152608490fd5b1561261057565b60405162461bcd60e51b815260206004820152602660248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152650d8cadccee8d60d31b6064820152608490fd5b90604051612671816105fb565b600081526020810192600084526040820160008152606083019060008252839560018451106126f0576126c6600160ff6126bf610687986126b8848a0151829060ff169052565b5160ff1690565b16146125ab565b6126cf8461272b565b90526126da83612778565b90526126e582612788565b905251606114612609565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b602181511061273b576021015190565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b604181511061273b576041015190565b6061815110612798576061015190565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fdfea2646970667358221220ce69d4caa8128b752fcc5b0ad82cfd1a64124612c8555100c2e05c2766faa13f64736f6c63430008110033"; + '0x6080604090808252346200034a5760808162002baa80380380916200002582856200034f565b8339810103126200034a576200003b8162000389565b6020808301519260ff84168085036200034a576200006960606200006188850162000389565b930162000389565b6001600b556001600160a01b03949092908516918215620002fb5715620002b7578416918215620002735784169081156200022f57600092835490640100000000600160c01b0333871b169362ff000060018060a01b031999858b600554161760055560101b1691828663ff010000600160c01b0319861617178755896003541617600355886002541617600255885193634d4502c960e11b85528685600481875afa94851562000225579087949392918796620001d5575b5061ffff600496169263ff000001600160c01b03191617171784558751928380926384acd1bb60e01b82525afa928315620001cb57829362000182575b505050169060045416176004556305f5e1006006555161280b90816200039f8239f35b9080929350813d8311620001c3575b6200019d81836200034f565b81010312620001bf5751908282168203620001bc57503880806200015f565b80fd5b5080fd5b503d62000191565b86513d84823e3d90fd5b8092949650859193953d83116200021d575b620001f381836200034f565b8101031262000219575161ffff8116810362000219579386939092909161ffff62000122565b8580fd5b503d620001e7565b8a513d88823e3d90fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206f776e657220617373697374616e740000000000000000006044820152606490fd5b865162461bcd60e51b815260048101859052601d60248201527f696e76616c69642066656520726563697069656e7420616464726573730000006044820152606490fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206e617469766520646563696d616c730000000000000000006044820152606490fd5b875162461bcd60e51b815260048101869052602260248201527f696e76616c696420636972636c6520696e746567726174696f6e206164647265604482015261737360f01b6064820152608490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200037357604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200034a5756fe60806040526004361015610013575b600080fd5b60003560e01c8063038c0b66146102a7578063086049851461029e5780630a55d735146102955780630e1c863e1461028c57806313d8900b1461028357806316fb440a1461027a5780631a28219514610271578063203c5095146102685780632a88b4251461025f5780632efe4f421461025657806332d9965a1461024d5780633d62cca014610244578063469048401461023b57806351e2d7b51461023257806359b87d8e146102295780635ced058e146102205780636805b84b1461021757806368aa9ef41461020e5780636ddbaff31461020557806384acd1bb146101fc5780638da5cb5b146101f35780638e151dd1146101ea57806394cc743d146101e15780639a8a0592146101d8578063a2f32c8f146101cf578063ad48cb5e146101c6578063b5419523146101bd578063cd601c78146101b4578063dd6522aa146101ab578063e30c3978146101a2578063ea1d2e4a14610199578063ffa1ad74146101905763fff982a81461018857600080fd5b61000e6112e4565b5061000e61129d565b5061000e6111f7565b5061000e6111cd565b5061000e6111a3565b5061000e61117b565b5061000e61113d565b5061000e611118565b5061000e6110c9565b5061000e6110a6565b5061000e61100d565b5061000e610fd9565b5061000e610faf565b5061000e610f85565b5061000e610f22565b5061000e610e94565b5061000e610e6d565b5061000e610e45565b5061000e610bc6565b5061000e610aec565b5061000e610ac2565b5061000e610a88565b5061000e610a69565b5061000e610a2b565b5061000e610943565b5061000e61086b565b5061000e6107f8565b5061000e6107a9565b5061000e6106d3565b5061000e6104a1565b5061000e61042a565b5061000e610392565b503461000e57600080600319360112610383576001546001600160a01b03908116903382900361033e57825460201c6001600160a01b031660008054640100000000600160c01b031916602085901b640100000000600160c01b0316179055600180546001600160a01b0319169055167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee678380a380f35b60405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606490fd5b80fd5b61ffff81160361000e57565b503461000e57604036600319011261000e576004356103b081610386565b600054602435916103e291906103d4602083901c6001600160a01b031633146122e6565b61ffff809116911614612329565b80156103ed57600655005b60405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606490fd5b5060031960203682011261000e57600435906001600160401b03821161000e57606090823603011261000e5761046290600401611b89565b005b6001600160a01b0381160361000e57565b606090600319011261000e5760043561048d81610386565b9060243561049a81610464565b9060443590565b503461000e576104626104b336610475565b916104e96000546104da60018060a01b0333818460201c16149081156105d6575b506123bf565b61ffff83811691161415612415565b61050c6105048261ffff16600052600a602052604060002090565b541515612451565b6005546105729061053390610527906001600160a01b031681565b6001600160a01b031690565b604051633b6e750f60e01b81526001600160a01b038516600482015290602090829060249082905afa9081156105c9575b60009161059b575b50612496565b61ffff1660009081526007602090815260408083206001600160a01b0390941683529290522055565b6105bc915060203d81116105c2575b6105b48183610659565b8101906116ff565b3861056c565b503d6105aa565b6105d161158c565b610564565b6002541633149050386104d4565b50634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761061657604052565b61061e6105e4565b604052565b604081019081106001600160401b0382111761061657604052565b60a081019081106001600160401b0382111761061657604052565b90601f801991011681019081106001600160401b0382111761061657604052565b60405190610687826105fb565b565b6040519061010082018281106001600160401b0382111761061657604052565b6020906001600160401b0381116106c6575b601f01601f19160190565b6106ce6105e4565b6106bb565b503461000e57602036600319011261000e576004356001600160401b03811161000e573660238201121561000e57806004013590610710826106a9565b61071d6040519182610659565b828152366024848401011161000e57600060208461077d95602461074996018386013783010152612664565b60405191829182919091606080608083019460ff815116845260208101516020850152604081015160408501520151910152565b0390f35b604090600319011261000e5760043561079981610386565b906024356107a681610464565b90565b503461000e5760206107e561ffff6107c036610781565b91166000526007835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b8015150361000e57565b503461000e57604036600319011261000e5760043561081681610386565b63ff000000602435610827816107ee565b6000549261085590610847602086901c6001600160a01b031633146122e6565b61ffff858116911614612329565b63ff0000001990921691151560181b1617600055005b503461000e5761087a36610781565b60005490916001600160a01b039161089d916103d4602083901c851633146122e6565b8082169182156108ee57600380546001600160a01b031981166001600160a01b039384161790915516167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3600080a3005b60405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608490fd5b503461000e5761095236610475565b909160009261097c845460018060a01b039333858360201c16148015610a1e575b6103d4906123bf565b600554604051633b6e750f60e01b81526001600160a01b0383811660048301526109c392602091839160249183918916165afa908115610a11575b869161059b5750612496565b6109ce8315156124d7565b6001600160a01b0381166000908152600860205260409020839055167fc6eb9fb936b61b402d503deeffc822f46492e15c2c8f079815cc4850ad7b02b08380a380f35b610a1961158c565b6109b7565b5060025485163314610973565b503461000e57602036600319011261000e57600435610a4981610464565b60018060a01b031660005260096020526020604060002054604051908152f35b503461000e57600036600319011261000e576020600654604051908152f35b503461000e57602036600319011261000e5761ffff600435610aa981610386565b16600052600a6020526020604060002054604051908152f35b503461000e57600036600319011261000e576003546040516001600160a01b039091168152602090f35b503461000e57604036600319011261000e57600435610b0a81610386565b6000549060243590610b2a602084901c6001600160a01b031633146122e6565b8115610b7157610b506104629361ffff808416908115159283610b64575b505050612363565b61ffff16600052600a602052604060002055565b1614159050388080610b48565b60405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608490fd5b5060a036600319011261000e57600435610bdf81610464565b6024359060443560643591610bf383610386565b608435926002600b5414610e00576002600b5560ff60005460181c16610dc757610c1e851515611370565b610c298415156113b1565b6001600160a01b038281169590610c418715156113fd565b610c598361ffff16600052600a602052604060002090565b549382610c67861515611449565b610c70916121a5565b9587610c8a8561ffff166000526007602052604060002090565b6001600160a01b039091166000908152602091909152604090205495610cb081886114ba565b8811610cbb906114cf565b610cc361067a565b6001815296602088015260408701526060860152600554166001600160a01b03166001600160a01b031694610cf9908688611613565b610d0161067a565b6001600160a01b039096168652602086015261ffff1660408501526060840152610d2a90612523565b6040516328a87c1360e21b81529283918291610d4a919060048401611543565b03815a602094600091f161077d918115610dba575b600091610d8c575b50610d726001600b55565b6040516001600160401b0390911681529081906020820190565b610dad915060203d8111610db3575b610da58183610659565b81019061152f565b38610d67565b503d610d9b565b610dc261158c565b610d5f565b60405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b503461000e57602036600319011261000e576040516004356001600160a01b03168152602090f35b503461000e57600036600319011261000e57602060ff60005460181c166040519015158152f35b503461000e57600036600319011261000e576002546040516001600160a01b039091168152602090f35b60ff81160361000e57565b60005b838110610edc5750506000910152565b8181015183820152602001610ecc565b90602091610f0581518092818552858086019101610ec9565b601f01601f1916010190565b9060206107a6928181520190610eec565b503461000e57608036600319011261000e5761077d610f71604051610f46816105fb565b600435610f5281610ebe565b8152602435602082015260443560408201526064356060820152612523565b604051918291602083526020830190610eec565b503461000e57600036600319011261000e576004546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e57600054604051602091821c6001600160a01b03168152f35b503461000e57604036600319011261000e576020611005600435610ffc81610464565b602435906120d2565b604051908152f35b503461000e5761101c36610781565b6000546001600160a01b039261103e91906103d4602083901c861633146122e6565b168015611062576bffffffffffffffffffffffff60a01b6001541617600155600080f35b606460405162461bcd60e51b815260206004820152602060248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152fd5b503461000e57600036600319011261000e57602061ffff60005416604051908152f35b503461000e57602036600319011261000e576111066004356110ea81610386565b600054906103d4602083901c6001600160a01b031633146122e6565b600180546001600160a01b0319169055005b503461000e57600036600319011261000e57602060ff60005460101c16604051908152f35b503461000e57602036600319011261000e5760043561115b81610464565b60018060a01b031660005260086020526020604060002054604051908152f35b503461000e57602036600319011261000e57602061100560043561119e81610464565b611fa2565b503461000e57600036600319011261000e576005546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e576001546040516001600160a01b039091168152602090f35b503461000e5761120636610781565b6000546001600160a01b039261122891906103d4602083901c861633146122e6565b16801561124c576bffffffffffffffffffffffff60a01b6002541617600255600080f35b60405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608490fd5b503461000e57600036600319011261000e5761077d6040516112be81610623565b60058152640302e322e360dc1b6020820152604051918291602083526020830190610eec565b503461000e576104626113566112f936610475565b600054909391926001600160a01b039161131e916103d4602083901c851633146122e6565b6020816005541691602460405180948193633b6e750f60e01b8352881660048301525afa9081156105c95760009161059b5750612496565b6001600160a01b0316600090815260096020526040902055565b1561137757565b60405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606490fd5b156113b857565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c69642074617267657420726563697069656e7400000000000000006044820152606490fd5b1561140457565b60405162461bcd60e51b815260206004820152601d60248201527f746f6b656e2063616e6e6f7420657175616c20616464726573732830290000006044820152606490fd5b1561145057565b60405162461bcd60e51b815260206004820152602560248201527f434952434c452d52454c415945523a20746172676574206e6f742072656769736044820152641d195c995960da1b6064820152608490fd5b50634e487b7160e01b600052601160045260246000fd5b919082018092116114c757565b6106876114a3565b156114d657565b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420616d6f756e74526563656976656400000000006044820152606490fd5b51906001600160401b038216820361000e57565b9081602091031261000e576107a69061151b565b60c09060606107a6949360018060a01b0381511683526020810151602084015261ffff604082015116604084015201516060820152600060808201528160a08201520190610eec565b506040513d6000823e3d90fd5b9081602091031261000e575190565b156115af57565b60405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b61166961068793928315801561166e575b61162d906115a8565b60405163095ea7b360e01b60208201526001600160a01b039091166024820152604481019390935282606481015b03601f198101845283610659565b611714565b50604051636eb1769f60e11b81523060048201526001600160a01b038216602482015261162d90602081806044810103816001600160a01b0389165afa9081156116f2575b6000916116c4575b50159050611624565b6116e5915060203d81116116eb575b6116dd8183610659565b810190611599565b386116bb565b503d6116d3565b6116fa61158c565b6116b3565b9081602091031261000e57516107a6816107ee565b604051611791916001600160a01b031661172d82610623565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af13d15611819573d91611775836106a9565b926117836040519485610659565b83523d60008785013e61181d565b805190828215928315611801575b505050156117aa5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b61181193508201810191016116ff565b38828161179f565b6060915b9192901561187f5750815115611831575090565b3b1561183a5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156118925750805190602001fd5b60405162461bcd60e51b81529081906118ae9060048301610f11565b0390fd5b519063ffffffff8216820361000e57565b81601f8201121561000e5780516118d9816106a9565b926118e76040519485610659565b8184526020828401011161000e576107a69160208085019101610ec9565b9060208282031261000e5781516001600160401b039283821161000e5701906101008282031261000e57611937610689565b928251845260208301516020850152611952604084016118b2565b6040850152611963606084016118b2565b60608501526119746080840161151b565b608085015260a083015160a085015260c083015160c085015260e083015190811161000e576119a392016118c3565b60e082015290565b9035601e198236030181121561000e5701602081359101916001600160401b03821161000e57813603831361000e57565b908060209392818452848401376000828201840152601f01601f1916010190565b9060606107a69260208152611a25611a1584806119ab565b84602085015260808401916119dc565b90611a58611a4d611a3960208701876119ab565b601f198587038101604087015295916119dc565b9460408101906119ab565b939092828603019101526119dc565b9081602091031261000e57516107a681610386565b15611a8357565b60405162461bcd60e51b815260206004820152602860248201527f66726f6d41646472657373206973206e6f74206120726567697374657265642060448201526718dbdb9d1c9858dd60c21b6064820152608490fd5b15611ae057565b60405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608490fd5b15611b3857565b606460405162461bcd60e51b815260206004820152602060248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152fd5b919082039182116114c757565b600554611bc3906001600160a01b0390611ba4908216610527565b90604051936357bf927b60e01b855284806000958693600483016119fd565b038183865af1938415611ea1575b8394611e7d575b50611c33611c62611bec60e0870151612664565b93611c5b60a088015191611c0760408a015163ffffffff1690565b6040518092638cf67ba960e01b825281806020998a956004830191909163ffffffff6020820193169052565b03915afa908115611e70575b8891611e43575b5061ffff16600052600a602052604060002090565b5414611a7c565b8451611c76906001600160a01b0316610527565b60608401519094906001600160a01b03169383851691823314611e295761068797928483611cbc938a6040611cca999701948551611ce7575b50505001519051906114ba565b9182611cd1575b0151611b7c565b9216611eae565b611ce2838660035416878a16611eae565b611cc3565b611cf082611fa2565b80875111611e21575b50611d058651836120d2565b92831580611dd557828291611d1c87341015611b31565b82611d278834611b7c565b8015908115611da1575b5050879091611d97575b83928392f115611d8a575b8551604080519182526020820194909452918b169233927f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f19190a45b388a81611caf565b611d9261158c565b611d46565b6108fc9150611d3b565b8280929181928290611dcc575b3390f115611dbf575b823880611d31565b611dc761158c565b611db7565b506108fc611dae565b509250505080845234158015611ded575b5050611d82565b81908190611e18575b81809134903390f115611e0b575b3880611de6565b611e1361158c565b611e04565b506108fc611df6565b865238611cf9565b50505061068794611e3a3415611ad9565b01519216611eae565b611e639150853d8711611e69575b611e5b8183610659565b810190611a67565b38611c46565b503d611e51565b611e7861158c565b611c3f565b611e9a9194503d8085833e611e928183610659565b810190611905565b9238611bd8565b611ea961158c565b611bd1565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261068791611669826064810161165b565b15611eee57565b60405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606490fd5b9081602091031261000e57516107a681610ebe565b818102929181159184041417156114c757565b9060ff8091169116039060ff82116114c757565b60ff16604d8111611f75575b600a0a90565b611f7d6114a3565b611f6f565b8115611f8c570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031660008181526008602052604090205490611fc6821515611ee7565b60405163313ce56760e01b815291602083600481855afa9283156120c5575b600093612095575b5060ff60005460101c16918260ff8516116000146120535761203f61204a936120396107a696946120336120449560018060a01b03166000526009602052604060002090565b54611f3c565b93611f4f565b611f63565b90611f3c565b60065490611f82565b61203f6107a69461208061208f946120336120869560018060a01b03166000526009602052604060002090565b94611f4f565b60065490611f3c565b90611f82565b6120b791935060203d81116120be575b6120af8183610659565b810190611f27565b9138611fed565b503d6120a5565b6120cd61158c565b611fe5565b6001600160a01b03166000818152600860209081526040909120600492919054916120fe831515611ee7565b60405163313ce56760e01b815293849182905afa918215612198575b600092612178575b5060ff60005460101c168060ff841611600014612159579061204461203f61208f936121536107a697600654611f3c565b95611f4f565b61204461203f61217393946120396107a697600654611f3c565b611f82565b61219191925060203d81116120be576120af8183610659565b9038612122565b6121a061158c565b61211a565b6040516370a0823160e01b8082523060048301526107a69391926020926001600160a01b0390911691908385602481865afa948515612274575b60009561224d575b50906121f68492303386612281565b60405190815230600482015291829060249082905afa918215612240575b600092612223575b5050611b7c565b6122399250803d106116eb576116dd8183610659565b388061221c565b61224861158c565b612214565b849291955061226b6121f691843d86116116eb576116dd8183610659565b959192506121e7565b61227c61158c565b6121df565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526106879160a082018281106001600160401b038211176122d9575b604052611714565b6122e16105e4565b6122d1565b156122ed57565b60405162461bcd60e51b815260206004820152601460248201527331b0b63632b9103737ba103a34329037bbb732b960611b6044820152606490fd5b1561233057565b60405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339031b430b4b760a91b6044820152606490fd5b1561236a57565b60405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608490fd5b156123c657565b60405162461bcd60e51b815260206004820152602160248201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6044820152601d60fa1b6064820152608490fd5b1561241c57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606490fd5b1561245857565b60405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606490fd5b1561249d57565b60405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd081858d8d95c1d195960721b6044820152606490fd5b156124de57565b60405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606490fd5b600160ff825116036125725780519060208101519060606040820151910151916040519360ff60f81b9060f81b166020850152602184015260418301526061820152606181526107a68161063e565b60405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606490fd5b156125b257565b60405162461bcd60e51b815260206004820152602960248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152681c185e5b1bd859125960ba1b6064820152608490fd5b1561261057565b60405162461bcd60e51b815260206004820152602660248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152650d8cadccee8d60d31b6064820152608490fd5b90604051612671816105fb565b600081526020810192600084526040820160008152606083019060008252839560018451106126f0576126c6600160ff6126bf610687986126b8848a0151829060ff169052565b5160ff1690565b16146125ab565b6126cf8461272b565b90526126da83612778565b90526126e582612788565b905251606114612609565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b602181511061273b576021015190565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b604181511061273b576041015190565b6061815110612798576061015190565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fdfea2646970667358221220ce69d4caa8128b752fcc5b0ad82cfd1a64124612c8555100c2e05c2766faa13f64736f6c63430008110033'; type CircleRelayerConstructorParams = | [signer?: Signer] | ConstructorParameters; const isSuperArgs = ( - xs: CircleRelayerConstructorParams + xs: CircleRelayerConstructorParams, ): xs is ConstructorParameters => xs.length > 1; export class CircleRelayer__factory extends ContractFactory { @@ -844,14 +844,14 @@ export class CircleRelayer__factory extends ContractFactory { nativeTokenDecimals_: BigNumberish, feeRecipient_: AddressLike, ownerAssistant_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } + overrides?: NonPayableOverrides & { from?: string }, ): Promise { return super.getDeployTransaction( circleIntegration_, nativeTokenDecimals_, feeRecipient_, ownerAssistant_, - overrides || {} + overrides || {}, ); } override deploy( @@ -859,14 +859,14 @@ export class CircleRelayer__factory extends ContractFactory { nativeTokenDecimals_: BigNumberish, feeRecipient_: AddressLike, ownerAssistant_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } + overrides?: NonPayableOverrides & { from?: string }, ) { return super.deploy( circleIntegration_, nativeTokenDecimals_, feeRecipient_, ownerAssistant_, - overrides || {} + overrides || {}, ) as Promise< CircleRelayer & { deploymentTransaction(): ContractTransactionResponse; @@ -884,7 +884,7 @@ export class CircleRelayer__factory extends ContractFactory { } static connect( address: string, - runner?: ContractRunner | null + runner?: ContractRunner | null, ): CircleRelayer { return new Contract(address, _abi, runner) as unknown as CircleRelayer; } diff --git a/platforms/evm/src/ethers-contracts/factories/ICircleIntegration__factory.ts b/platforms/evm/src/ethers-contracts/factories/ICircleIntegration__factory.ts index 741d06f55..eeda852c5 100644 --- a/platforms/evm/src/ethers-contracts/factories/ICircleIntegration__factory.ts +++ b/platforms/evm/src/ethers-contracts/factories/ICircleIntegration__factory.ts @@ -2,610 +2,610 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Interface, type ContractRunner } from "ethers"; +import { Contract, Interface, type ContractRunner } from 'ethers'; import type { ICircleIntegration, ICircleIntegrationInterface, -} from "../ICircleIntegration"; +} from '../ICircleIntegration'; const _abi = [ { inputs: [], - name: "chainId", + name: 'chainId', outputs: [ { - internalType: "uint16", - name: "", - type: "uint16", + internalType: 'uint16', + name: '', + type: 'uint16', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "circleBridge", + name: 'circleBridge', outputs: [ { - internalType: "contract ICircleBridge", - name: "", - type: "address", + internalType: 'contract ICircleBridge', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "circleTransmitter", + name: 'circleTransmitter', outputs: [ { - internalType: "contract IMessageTransmitter", - name: "", - type: "address", + internalType: 'contract IMessageTransmitter', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encoded", - type: "bytes", + internalType: 'bytes', + name: 'encoded', + type: 'bytes', }, ], - name: "decodeDepositWithPayload", + name: 'decodeDepositWithPayload', outputs: [ { components: [ { - internalType: "bytes32", - name: "token", - type: "bytes32", + internalType: 'bytes32', + name: 'token', + type: 'bytes32', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint32", - name: "sourceDomain", - type: "uint32", + internalType: 'uint32', + name: 'sourceDomain', + type: 'uint32', }, { - internalType: "uint32", - name: "targetDomain", - type: "uint32", + internalType: 'uint32', + name: 'targetDomain', + type: 'uint32', }, { - internalType: "uint64", - name: "nonce", - type: "uint64", + internalType: 'uint64', + name: 'nonce', + type: 'uint64', }, { - internalType: "bytes32", - name: "fromAddress", - type: "bytes32", + internalType: 'bytes32', + name: 'fromAddress', + type: 'bytes32', }, { - internalType: "bytes32", - name: "mintRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'mintRecipient', + type: 'bytes32', }, { - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: 'bytes', + name: 'payload', + type: 'bytes', }, ], - internalType: "struct ICircleIntegration.DepositWithPayload", - name: "message", - type: "tuple", + internalType: 'struct ICircleIntegration.DepositWithPayload', + name: 'message', + type: 'tuple', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [ { components: [ { - internalType: "bytes32", - name: "token", - type: "bytes32", + internalType: 'bytes32', + name: 'token', + type: 'bytes32', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint32", - name: "sourceDomain", - type: "uint32", + internalType: 'uint32', + name: 'sourceDomain', + type: 'uint32', }, { - internalType: "uint32", - name: "targetDomain", - type: "uint32", + internalType: 'uint32', + name: 'targetDomain', + type: 'uint32', }, { - internalType: "uint64", - name: "nonce", - type: "uint64", + internalType: 'uint64', + name: 'nonce', + type: 'uint64', }, { - internalType: "bytes32", - name: "fromAddress", - type: "bytes32", + internalType: 'bytes32', + name: 'fromAddress', + type: 'bytes32', }, { - internalType: "bytes32", - name: "mintRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'mintRecipient', + type: 'bytes32', }, { - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: 'bytes', + name: 'payload', + type: 'bytes', }, ], - internalType: "struct ICircleIntegration.DepositWithPayload", - name: "message", - type: "tuple", + internalType: 'struct ICircleIntegration.DepositWithPayload', + name: 'message', + type: 'tuple', }, ], - name: "encodeDepositWithPayload", + name: 'encodeDepositWithPayload', outputs: [ { - internalType: "bytes", - name: "", - type: "bytes", + internalType: 'bytes', + name: '', + type: 'bytes', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [], - name: "evmChain", + name: 'evmChain', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint32", - name: "sourceDomain", - type: "uint32", + internalType: 'uint32', + name: 'sourceDomain', + type: 'uint32', }, { - internalType: "bytes32", - name: "sourceToken", - type: "bytes32", + internalType: 'bytes32', + name: 'sourceToken', + type: 'bytes32', }, ], - name: "fetchLocalTokenAddress", + name: 'fetchLocalTokenAddress', outputs: [ { - internalType: "bytes32", - name: "", - type: "bytes32", + internalType: 'bytes32', + name: '', + type: 'bytes32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint32", - name: "domain", - type: "uint32", + internalType: 'uint32', + name: 'domain', + type: 'uint32', }, ], - name: "getChainIdFromDomain", + name: 'getChainIdFromDomain', outputs: [ { - internalType: "uint16", - name: "", - type: "uint16", + internalType: 'uint16', + name: '', + type: 'uint16', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, ], - name: "getDomainFromChainId", + name: 'getDomainFromChainId', outputs: [ { - internalType: "uint32", - name: "", - type: "uint32", + internalType: 'uint32', + name: '', + type: 'uint32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "emitterChainId", - type: "uint16", + internalType: 'uint16', + name: 'emitterChainId', + type: 'uint16', }, ], - name: "getRegisteredEmitter", + name: 'getRegisteredEmitter', outputs: [ { - internalType: "bytes32", - name: "", - type: "bytes32", + internalType: 'bytes32', + name: '', + type: 'bytes32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "isAcceptedToken", + name: 'isAcceptedToken', outputs: [ { - internalType: "bool", - name: "", - type: "bool", + internalType: 'bool', + name: '', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "impl", - type: "address", + internalType: 'address', + name: 'impl', + type: 'address', }, ], - name: "isInitialized", + name: 'isInitialized', outputs: [ { - internalType: "bool", - name: "", - type: "bool", + internalType: 'bool', + name: '', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "bytes32", - name: "hash", - type: "bytes32", + internalType: 'bytes32', + name: 'hash', + type: 'bytes32', }, ], - name: "isMessageConsumed", + name: 'isMessageConsumed', outputs: [ { - internalType: "bool", - name: "", - type: "bool", + internalType: 'bool', + name: '', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "localDomain", + name: 'localDomain', outputs: [ { - internalType: "uint32", - name: "", - type: "uint32", + internalType: 'uint32', + name: '', + type: 'uint32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { components: [ { - internalType: "bytes", - name: "encodedWormholeMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedWormholeMessage', + type: 'bytes', }, { - internalType: "bytes", - name: "circleBridgeMessage", - type: "bytes", + internalType: 'bytes', + name: 'circleBridgeMessage', + type: 'bytes', }, { - internalType: "bytes", - name: "circleAttestation", - type: "bytes", + internalType: 'bytes', + name: 'circleAttestation', + type: 'bytes', }, ], - internalType: "struct ICircleIntegration.RedeemParameters", - name: "params", - type: "tuple", + internalType: 'struct ICircleIntegration.RedeemParameters', + name: 'params', + type: 'tuple', }, ], - name: "redeemTokensWithPayload", + name: 'redeemTokensWithPayload', outputs: [ { components: [ { - internalType: "bytes32", - name: "token", - type: "bytes32", + internalType: 'bytes32', + name: 'token', + type: 'bytes32', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint32", - name: "sourceDomain", - type: "uint32", + internalType: 'uint32', + name: 'sourceDomain', + type: 'uint32', }, { - internalType: "uint32", - name: "targetDomain", - type: "uint32", + internalType: 'uint32', + name: 'targetDomain', + type: 'uint32', }, { - internalType: "uint64", - name: "nonce", - type: "uint64", + internalType: 'uint64', + name: 'nonce', + type: 'uint64', }, { - internalType: "bytes32", - name: "fromAddress", - type: "bytes32", + internalType: 'bytes32', + name: 'fromAddress', + type: 'bytes32', }, { - internalType: "bytes32", - name: "mintRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'mintRecipient', + type: 'bytes32', }, { - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: 'bytes', + name: 'payload', + type: 'bytes', }, ], - internalType: "struct ICircleIntegration.DepositWithPayload", - name: "depositWithPayload", - type: "tuple", + internalType: 'struct ICircleIntegration.DepositWithPayload', + name: 'depositWithPayload', + type: 'tuple', }, ], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedMessage', + type: 'bytes', }, ], - name: "registerAcceptedToken", + name: 'registerAcceptedToken', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedMessage', + type: 'bytes', }, ], - name: "registerEmitterAndDomain", + name: 'registerEmitterAndDomain', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedMessage', + type: 'bytes', }, ], - name: "registerTargetChainToken", + name: 'registerTargetChainToken', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "sourceToken", - type: "address", + internalType: 'address', + name: 'sourceToken', + type: 'address', }, { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, ], - name: "targetAcceptedToken", + name: 'targetAcceptedToken', outputs: [ { - internalType: "bytes32", - name: "", - type: "bytes32", + internalType: 'bytes32', + name: '', + type: 'bytes32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { components: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint16", - name: "targetChain", - type: "uint16", + internalType: 'uint16', + name: 'targetChain', + type: 'uint16', }, { - internalType: "bytes32", - name: "mintRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'mintRecipient', + type: 'bytes32', }, ], - internalType: "struct ICircleIntegration.TransferParameters", - name: "transferParams", - type: "tuple", + internalType: 'struct ICircleIntegration.TransferParameters', + name: 'transferParams', + type: 'tuple', }, { - internalType: "uint32", - name: "batchId", - type: "uint32", + internalType: 'uint32', + name: 'batchId', + type: 'uint32', }, { - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: 'bytes', + name: 'payload', + type: 'bytes', }, ], - name: "transferTokensWithPayload", + name: 'transferTokensWithPayload', outputs: [ { - internalType: "uint64", - name: "messageSequence", - type: "uint64", + internalType: 'uint64', + name: 'messageSequence', + type: 'uint64', }, ], - stateMutability: "payable", - type: "function", + stateMutability: 'payable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedMessage', + type: 'bytes', }, ], - name: "updateWormholeFinality", + name: 'updateWormholeFinality', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedMessage', + type: 'bytes', }, ], - name: "upgradeContract", + name: 'upgradeContract', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedMessage', + type: 'bytes', }, { - internalType: "uint8", - name: "action", - type: "uint8", + internalType: 'uint8', + name: 'action', + type: 'uint8', }, ], - name: "verifyGovernanceMessage", + name: 'verifyGovernanceMessage', outputs: [ { - internalType: "bytes32", - name: "messageHash", - type: "bytes32", + internalType: 'bytes32', + name: 'messageHash', + type: 'bytes32', }, { - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: 'bytes', + name: 'payload', + type: 'bytes', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "wormhole", + name: 'wormhole', outputs: [ { - internalType: "contract IWormhole", - name: "", - type: "address", + internalType: 'contract IWormhole', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "wormholeFinality", + name: 'wormholeFinality', outputs: [ { - internalType: "uint8", - name: "", - type: "uint8", + internalType: 'uint8', + name: '', + type: 'uint8', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, ] as const; @@ -616,7 +616,7 @@ export class ICircleIntegration__factory { } static connect( address: string, - runner?: ContractRunner | null + runner?: ContractRunner | null, ): ICircleIntegration { return new Contract(address, _abi, runner) as unknown as ICircleIntegration; } diff --git a/platforms/evm/src/ethers-contracts/factories/TokenBridgeRelayer__factory.ts b/platforms/evm/src/ethers-contracts/factories/TokenBridgeRelayer__factory.ts index 9ed6a6541..73739314b 100644 --- a/platforms/evm/src/ethers-contracts/factories/TokenBridgeRelayer__factory.ts +++ b/platforms/evm/src/ethers-contracts/factories/TokenBridgeRelayer__factory.ts @@ -6,125 +6,125 @@ import { ContractFactory, ContractTransactionResponse, Interface, -} from "ethers"; +} from 'ethers'; import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../common"; +} from 'ethers'; +import type { NonPayableOverrides } from '../common'; import type { TokenBridgeRelayer, TokenBridgeRelayerInterface, -} from "../TokenBridgeRelayer"; +} from '../TokenBridgeRelayer'; const _abi = [ { inputs: [ { - internalType: "address", - name: "tokenBridge_", - type: "address", + internalType: 'address', + name: 'tokenBridge_', + type: 'address', }, { - internalType: "address", - name: "wethAddress", - type: "address", + internalType: 'address', + name: 'wethAddress', + type: 'address', }, { - internalType: "address", - name: "feeRecipient_", - type: "address", + internalType: 'address', + name: 'feeRecipient_', + type: 'address', }, { - internalType: "address", - name: "ownerAssistant_", - type: "address", + internalType: 'address', + name: 'ownerAssistant_', + type: 'address', }, { - internalType: "bool", - name: "unwrapWeth_", - type: "bool", + internalType: 'bool', + name: 'unwrapWeth_', + type: 'bool', }, ], - stateMutability: "nonpayable", - type: "constructor", + stateMutability: 'nonpayable', + type: 'constructor', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "oldRecipient", - type: "address", + internalType: 'address', + name: 'oldRecipient', + type: 'address', }, { indexed: true, - internalType: "address", - name: "newRecipient", - type: "address", + internalType: 'address', + name: 'newRecipient', + type: 'address', }, ], - name: "FeeRecipientUpdated", - type: "event", + name: 'FeeRecipientUpdated', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "oldOwner", - type: "address", + internalType: 'address', + name: 'oldOwner', + type: 'address', }, { indexed: true, - internalType: "address", - name: "newOwner", - type: "address", + internalType: 'address', + name: 'newOwner', + type: 'address', }, ], - name: "OwnershipTransfered", - type: "event", + name: 'OwnershipTransfered', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "address", - name: "recipient", - type: "address", + internalType: 'address', + name: 'recipient', + type: 'address', }, { indexed: true, - internalType: "address", - name: "relayer", - type: "address", + internalType: 'address', + name: 'relayer', + type: 'address', }, { indexed: true, - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { indexed: false, - internalType: "uint256", - name: "tokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', }, { indexed: false, - internalType: "uint256", - name: "nativeAmount", - type: "uint256", + internalType: 'uint256', + name: 'nativeAmount', + type: 'uint256', }, ], - name: "SwapExecuted", - type: "event", + name: 'SwapExecuted', + type: 'event', }, { anonymous: false, @@ -132,944 +132,944 @@ const _abi = [ { components: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "value", - type: "uint256", + internalType: 'uint256', + name: 'value', + type: 'uint256', }, ], indexed: true, - internalType: "struct TokenBridgeRelayerStructs.SwapRateUpdate[]", - name: "swapRates", - type: "tuple[]", + internalType: 'struct TokenBridgeRelayerStructs.SwapRateUpdate[]', + name: 'swapRates', + type: 'tuple[]', }, ], - name: "SwapRateUpdated", - type: "event", + name: 'SwapRateUpdated', + type: 'event', }, { anonymous: false, inputs: [ { indexed: true, - internalType: "uint16", - name: "emitterChainId", - type: "uint16", + internalType: 'uint16', + name: 'emitterChainId', + type: 'uint16', }, { indexed: true, - internalType: "bytes32", - name: "emitterAddress", - type: "bytes32", + internalType: 'bytes32', + name: 'emitterAddress', + type: 'bytes32', }, { indexed: true, - internalType: "uint64", - name: "sequence", - type: "uint64", + internalType: 'uint64', + name: 'sequence', + type: 'uint64', }, ], - name: "TransferRedeemed", - type: "event", + name: 'TransferRedeemed', + type: 'event', }, { inputs: [], - name: "VERSION", + name: 'VERSION', outputs: [ { - internalType: "string", - name: "", - type: "string", + internalType: 'string', + name: '', + type: 'string', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "WETH", + name: 'WETH', outputs: [ { - internalType: "contract IWETH", - name: "", - type: "address", + internalType: 'contract IWETH', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "calculateMaxSwapAmountIn", + name: 'calculateMaxSwapAmountIn', outputs: [ { - internalType: "uint256", - name: "maxAllowed", - type: "uint256", + internalType: 'uint256', + name: 'maxAllowed', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "toNativeAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeAmount', + type: 'uint256', }, ], - name: "calculateNativeSwapAmountOut", + name: 'calculateNativeSwapAmountOut', outputs: [ { - internalType: "uint256", - name: "nativeAmount", - type: "uint256", + internalType: 'uint256', + name: 'nativeAmount', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "targetChainId", - type: "uint16", + internalType: 'uint16', + name: 'targetChainId', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint8", - name: "decimals", - type: "uint8", + internalType: 'uint8', + name: 'decimals', + type: 'uint8', }, ], - name: "calculateRelayerFee", + name: 'calculateRelayerFee', outputs: [ { - internalType: "uint256", - name: "feeInTokenDenomination", - type: "uint256", + internalType: 'uint256', + name: 'feeInTokenDenomination', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, ], - name: "cancelOwnershipTransferRequest", + name: 'cancelOwnershipTransferRequest', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [], - name: "chainId", + name: 'chainId', outputs: [ { - internalType: "uint16", - name: "", - type: "uint16", + internalType: 'uint16', + name: '', + type: 'uint16', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encodedTransferMessage", - type: "bytes", + internalType: 'bytes', + name: 'encodedTransferMessage', + type: 'bytes', }, ], - name: "completeTransferWithRelay", + name: 'completeTransferWithRelay', outputs: [], - stateMutability: "payable", - type: "function", + stateMutability: 'payable', + type: 'function', }, { inputs: [], - name: "confirmOwnershipTransferRequest", + name: 'confirmOwnershipTransferRequest', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "encoded", - type: "bytes", + internalType: 'bytes', + name: 'encoded', + type: 'bytes', }, ], - name: "decodeTransferWithRelay", + name: 'decodeTransferWithRelay', outputs: [ { components: [ { - internalType: "uint8", - name: "payloadId", - type: "uint8", + internalType: 'uint8', + name: 'payloadId', + type: 'uint8', }, { - internalType: "uint256", - name: "targetRelayerFee", - type: "uint256", + internalType: 'uint256', + name: 'targetRelayerFee', + type: 'uint256', }, { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "bytes32", - name: "targetRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipient', + type: 'bytes32', }, ], - internalType: "struct TokenBridgeRelayerStructs.TransferWithRelay", - name: "transfer", - type: "tuple", + internalType: 'struct TokenBridgeRelayerStructs.TransferWithRelay', + name: 'transfer', + type: 'tuple', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [ { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint8", - name: "decimals", - type: "uint8", + internalType: 'uint8', + name: 'decimals', + type: 'uint8', }, ], - name: "denormalizeAmount", + name: 'denormalizeAmount', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "deregisterToken", + name: 'deregisterToken', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { components: [ { - internalType: "uint8", - name: "payloadId", - type: "uint8", + internalType: 'uint8', + name: 'payloadId', + type: 'uint8', }, { - internalType: "uint256", - name: "targetRelayerFee", - type: "uint256", + internalType: 'uint256', + name: 'targetRelayerFee', + type: 'uint256', }, { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "bytes32", - name: "targetRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipient', + type: 'bytes32', }, ], - internalType: "struct TokenBridgeRelayerStructs.TransferWithRelay", - name: "transfer", - type: "tuple", + internalType: 'struct TokenBridgeRelayerStructs.TransferWithRelay', + name: 'transfer', + type: 'tuple', }, ], - name: "encodeTransferWithRelay", + name: 'encodeTransferWithRelay', outputs: [ { - internalType: "bytes", - name: "encoded", - type: "bytes", + internalType: 'bytes', + name: 'encoded', + type: 'bytes', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [], - name: "feeRecipient", + name: 'feeRecipient', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: 'bytes', + name: 'payload', + type: 'bytes', }, ], - name: "fetchLocalAddressFromTransferMessage", + name: 'fetchLocalAddressFromTransferMessage', outputs: [ { - internalType: "address", - name: "localAddress", - type: "address", + internalType: 'address', + name: 'localAddress', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "getAcceptedTokensList", + name: 'getAcceptedTokensList', outputs: [ { - internalType: "address[]", - name: "", - type: "address[]", + internalType: 'address[]', + name: '', + type: 'address[]', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "getPaused", + name: 'getPaused', outputs: [ { - internalType: "bool", - name: "", - type: "bool", + internalType: 'bool', + name: '', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "emitterChainId", - type: "uint16", + internalType: 'uint16', + name: 'emitterChainId', + type: 'uint16', }, ], - name: "getRegisteredContract", + name: 'getRegisteredContract', outputs: [ { - internalType: "bytes32", - name: "", - type: "bytes32", + internalType: 'bytes32', + name: '', + type: 'bytes32', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "isAcceptedToken", + name: 'isAcceptedToken', outputs: [ { - internalType: "bool", - name: "", - type: "bool", + internalType: 'bool', + name: '', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "maxNativeSwapAmount", + name: 'maxNativeSwapAmount', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "nativeSwapRate", + name: 'nativeSwapRate', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint8", - name: "decimals", - type: "uint8", + internalType: 'uint8', + name: 'decimals', + type: 'uint8', }, ], - name: "normalizeAmount", + name: 'normalizeAmount', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "pure", - type: "function", + stateMutability: 'pure', + type: 'function', }, { inputs: [], - name: "owner", + name: 'owner', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "ownerAssistant", + name: 'ownerAssistant', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "pendingOwner", + name: 'pendingOwner', outputs: [ { - internalType: "address", - name: "", - type: "address", + internalType: 'address', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "bytes32", - name: "contractAddress", - type: "bytes32", + internalType: 'bytes32', + name: 'contractAddress', + type: 'bytes32', }, ], - name: "registerContract", + name: 'registerContract', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "registerToken", + name: 'registerToken', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, ], - name: "relayerFee", + name: 'relayerFee', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "relayerFeePrecision", + name: 'relayerFeePrecision', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "bool", - name: "paused", - type: "bool", + internalType: 'bool', + name: 'paused', + type: 'bool', }, ], - name: "setPauseForTransfers", + name: 'setPauseForTransfers', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "newOwner", - type: "address", + internalType: 'address', + name: 'newOwner', + type: 'address', }, ], - name: "submitOwnershipTransferRequest", + name: 'submitOwnershipTransferRequest', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, ], - name: "swapRate", + name: 'swapRate', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "swapRatePrecision", + name: 'swapRatePrecision', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [], - name: "tokenBridge", + name: 'tokenBridge', outputs: [ { - internalType: "contract ITokenBridge", - name: "", - type: "address", + internalType: 'contract ITokenBridge', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "uint16", - name: "targetChain", - type: "uint16", + internalType: 'uint16', + name: 'targetChain', + type: 'uint16', }, { - internalType: "bytes32", - name: "targetRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipient', + type: 'bytes32', }, { - internalType: "uint32", - name: "batchId", - type: "uint32", + internalType: 'uint32', + name: 'batchId', + type: 'uint32', }, ], - name: "transferTokensWithRelay", + name: 'transferTokensWithRelay', outputs: [ { - internalType: "uint64", - name: "messageSequence", - type: "uint64", + internalType: 'uint64', + name: 'messageSequence', + type: 'uint64', }, ], - stateMutability: "payable", - type: "function", + stateMutability: 'payable', + type: 'function', }, { inputs: [], - name: "unwrapWeth", + name: 'unwrapWeth', outputs: [ { - internalType: "bool", - name: "", - type: "bool", + internalType: 'bool', + name: '', + type: 'bool', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "newFeeRecipient", - type: "address", + internalType: 'address', + name: 'newFeeRecipient', + type: 'address', }, ], - name: "updateFeeRecipient", + name: 'updateFeeRecipient', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "maxAmount", - type: "uint256", + internalType: 'uint256', + name: 'maxAmount', + type: 'uint256', }, ], - name: "updateMaxNativeSwapAmount", + name: 'updateMaxNativeSwapAmount', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "address", - name: "newAssistant", - type: "address", + internalType: 'address', + name: 'newAssistant', + type: 'address', }, ], - name: "updateOwnerAssistant", + name: 'updateOwnerAssistant', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "uint256", - name: "amount", - type: "uint256", + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, ], - name: "updateRelayerFee", + name: 'updateRelayerFee', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "uint256", - name: "relayerFeePrecision_", - type: "uint256", + internalType: 'uint256', + name: 'relayerFeePrecision_', + type: 'uint256', }, ], - name: "updateRelayerFeePrecision", + name: 'updateRelayerFeePrecision', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { components: [ { - internalType: "address", - name: "token", - type: "address", + internalType: 'address', + name: 'token', + type: 'address', }, { - internalType: "uint256", - name: "value", - type: "uint256", + internalType: 'uint256', + name: 'value', + type: 'uint256', }, ], - internalType: "struct TokenBridgeRelayerStructs.SwapRateUpdate[]", - name: "swapRateUpdate", - type: "tuple[]", + internalType: 'struct TokenBridgeRelayerStructs.SwapRateUpdate[]', + name: 'swapRateUpdate', + type: 'tuple[]', }, ], - name: "updateSwapRate", + name: 'updateSwapRate', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "uint256", - name: "swapRatePrecision_", - type: "uint256", + internalType: 'uint256', + name: 'swapRatePrecision_', + type: 'uint256', }, ], - name: "updateSwapRatePrecision", + name: 'updateSwapRatePrecision', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [ { - internalType: "uint16", - name: "chainId_", - type: "uint16", + internalType: 'uint16', + name: 'chainId_', + type: 'uint16', }, { - internalType: "bool", - name: "unwrapWeth_", - type: "bool", + internalType: 'bool', + name: 'unwrapWeth_', + type: 'bool', }, ], - name: "updateUnwrapWethFlag", + name: 'updateUnwrapWethFlag', outputs: [], - stateMutability: "nonpayable", - type: "function", + stateMutability: 'nonpayable', + type: 'function', }, { inputs: [], - name: "wormhole", + name: 'wormhole', outputs: [ { - internalType: "contract IWormhole", - name: "", - type: "address", + internalType: 'contract IWormhole', + name: '', + type: 'address', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, { inputs: [ { - internalType: "uint256", - name: "toNativeTokenAmount", - type: "uint256", + internalType: 'uint256', + name: 'toNativeTokenAmount', + type: 'uint256', }, { - internalType: "uint16", - name: "targetChain", - type: "uint16", + internalType: 'uint16', + name: 'targetChain', + type: 'uint16', }, { - internalType: "bytes32", - name: "targetRecipient", - type: "bytes32", + internalType: 'bytes32', + name: 'targetRecipient', + type: 'bytes32', }, { - internalType: "uint32", - name: "batchId", - type: "uint32", + internalType: 'uint32', + name: 'batchId', + type: 'uint32', }, ], - name: "wrapAndTransferEthWithRelay", + name: 'wrapAndTransferEthWithRelay', outputs: [ { - internalType: "uint64", - name: "messageSequence", - type: "uint64", + internalType: 'uint64', + name: 'messageSequence', + type: 'uint64', }, ], - stateMutability: "payable", - type: "function", + stateMutability: 'payable', + type: 'function', }, { - stateMutability: "payable", - type: "receive", + stateMutability: 'payable', + type: 'receive', }, ] as const; const _bytecode = - "0x60806040523480156200001157600080fd5b50604051620049823803806200498283398101604081905262000034916200038c565b6001600f556001600160a01b038516620000955760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420746f6b656e2062726964676520616464726573730000000060448201526064015b60405180910390fd5b6001600160a01b038416620000ed5760405162461bcd60e51b815260206004820152601460248201527f696e76616c69642077657468206164647265737300000000000000000000000060448201526064016200008c565b6001600160a01b038316620001455760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642066656520726563697069656e74000000000000000000000060448201526064016200008c565b6001600160a01b0382166200019d5760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964206f776e657220617373697374616e7400000000000000000060448201526064016200008c565b600180546001600160a01b03191633179055600380546001600160a01b0319166001600160a01b038516179055600680546001600160a01b0319166001600160a01b03871617905560008054600160201b600160c01b0319166401000000006001600160a01b03871602179055600280546001600160a01b0319166001600160a01b0384161790556000805462ff0000191662010000831515021790556000859050620002c0816001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000410565b6000805461ffff191661ffff92909216919091179055565b6200034b816001600160a01b03166384acd1bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032991906200043d565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b620003596305f5e100600755565b620003676305f5e100600855565b5050505050506200045d565b6001600160a01b03811681146200038957600080fd5b50565b600080600080600060a08688031215620003a557600080fd5b8551620003b28162000373565b6020870151909550620003c58162000373565b6040870151909450620003d88162000373565b6060870151909350620003eb8162000373565b608087015190925080151581146200040257600080fd5b809150509295509295909350565b6000602082840312156200042357600080fd5b815161ffff811681146200043657600080fd5b9392505050565b6000602082840312156200045057600080fd5b8151620004368162000373565b614515806200046d6000396000f3fe6080604052600436106102815760003560e01c80636805b84b1161014f5780639fe089ad116100c1578063cd601c781161007a578063cd601c781461083b578063df160d761461085b578063e30c39781461087d578063ea1d2e4a1461089b578063ffa1ad74146108bb578063fff982a8146108ec57600080fd5b80639fe089ad1461076b578063a2f32c8f14610798578063ad5c4648146107b8578063b5419523146107dd578063c6328a46146107fd578063c9c22f9f1461081b57600080fd5b80638da5cb5b116101135780638da5cb5b146106ac5780638e151dd1146106ca57806390a1afaa146106ea57806394cc743d1461070a5780639a8a05921461072a5780639cf278cd1461074d57600080fd5b80636805b84b146105db57806368aa9ef4146105fa5780637c9dec7a146106185780638335572f1461066e57806384acd1bb1461068e57600080fd5b80632def3e16116101f3578063415828bf116101ac578063415828bf14610517578063469048401461052c57806351e2d7b51461054a5780635b9cf0e11461056a578063640d946b1461058a57806366775a6b146105aa57600080fd5b80632def3e16146104145780632efe4f42146104345780632f25e25f1461046a57806339ba66111461047d5780633b6e750f1461049d5780633d62cca0146104e657600080fd5b8063203c509511610245578063203c50951461033357806327105ab91461035357806328ded8e31461037357806329ac8361146103935780632ca8008c146103a65780632d77e8fe146103dc57600080fd5b8063016aa2051461028d578063038c0b66146102af5780631019d654146102c45780631a282195146102f45780631acdab4b1461031457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a83660046137da565b61090c565b005b3480156102bb57600080fd5b506102ad6109d6565b6102d76102d2366004613825565b610ac3565b6040516001600160401b0390911681526020015b60405180910390f35b34801561030057600080fd5b506102ad61030f36600461389a565b610c63565b34801561032057600080fd5b506007545b6040519081526020016102eb565b34801561033f57600080fd5b506102ad61034e3660046137da565b610cec565b34801561035f57600080fd5b5061032561036e3660046138d7565b610e36565b34801561037f57600080fd5b5061032561038e3660046138d7565b610e70565b6102d76103a13660046138fc565b610e9e565b3480156103b257600080fd5b506103256103c1366004613946565b6001600160a01b03166000908152600a602052604090205490565b3480156103e857600080fd5b506103fc6103f7366004613a3e565b61113c565b6040516001600160a01b0390911681526020016102eb565b34801561042057600080fd5b506102ad61042f366004613abd565b61125c565b34801561044057600080fd5b5061032561044f366004613946565b6001600160a01b03166000908152600b602052604090205490565b6102ad610478366004613ae9565b61131a565b34801561048957600080fd5b50610325610498366004613b5a565b611647565b3480156104a957600080fd5b506104d66104b8366004613946565b6001600160a01b03166000908152600d602052604090205460ff1690565b60405190151581526020016102eb565b3480156104f257600080fd5b50610325610501366004613ba5565b61ffff1660009081526009602052604090205490565b34801561052357600080fd5b50600854610325565b34801561053857600080fd5b506003546001600160a01b03166103fc565b34801561055657600080fd5b506102ad610565366004613abd565b6116fa565b34801561057657600080fd5b506102ad610585366004613abd565b611824565b34801561059657600080fd5b506102ad6105a5366004613bc2565b61193f565b3480156105b657600080fd5b506103256105c5366004613ba5565b61ffff166000908152600c602052604090205490565b3480156105e757600080fd5b506000546301000000900460ff166104d6565b34801561060657600080fd5b506002546001600160a01b03166103fc565b34801561062457600080fd5b50610638610633366004613a3e565b611b83565b6040516102eb9190815160ff16815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561067a57600080fd5b506102ad61068936600461389a565b611cb4565b34801561069a57600080fd5b506005546001600160a01b03166103fc565b3480156106b857600080fd5b506001546001600160a01b03166103fc565b3480156106d657600080fd5b506103256106e5366004613c49565b611d3b565b3480156106f657600080fd5b506102ad610705366004613abd565b611e1b565b34801561071657600080fd5b506102ad6107253660046137da565b611ed9565b34801561073657600080fd5b5060005460405161ffff90911681526020016102eb565b34801561075957600080fd5b5060005462010000900460ff166104d6565b34801561077757600080fd5b5061078b610786366004613c67565b611fa5565b6040516102eb9190613d25565b3480156107a457600080fd5b506102ad6107b3366004613ba5565b612050565b3480156107c457600080fd5b50600054600160201b90046001600160a01b03166103fc565b3480156107e957600080fd5b506103256107f8366004613946565b6120c7565b34801561080957600080fd5b506006546001600160a01b03166103fc565b34801561082757600080fd5b506102ad6108363660046137da565b612161565b34801561084757600080fd5b50610325610856366004613946565b61221d565b34801561086757600080fd5b50610870612302565b6040516102eb9190613d38565b34801561088957600080fd5b506004546001600160a01b03166103fc565b3480156108a757600080fd5b506102ad6108b63660046137da565b612367565b3480156108c757600080fd5b5061078b604051806040016040528060058152602001640302e322e360dc1b81525081565b3480156108f857600080fd5b506102ad610907366004613d85565b612456565b3361091f6001546001600160a01b031690565b6001600160a01b03161461094e5760405162461bcd60e51b815260040161094590613dc6565b60405180910390fd5b818061ffff1661096160005461ffff1690565b61ffff16146109825760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166109c85760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606401610945565b6109d18261251d565b505050565b60006109ea6004546001600160a01b031690565b9050336001600160a01b03821614610a445760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606401610945565b6000610a586001546001600160a01b031690565b600180546001600160a01b0319166001600160a01b0385161790559050610a7f60006126c2565b816001600160a01b0316816001600160a01b03167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee6760405160405180910390a35050565b6000610acd6126e4565b6000546301000000900460ff1615610b1b5760405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606401610945565b6000610b2f6005546001600160a01b031690565b6001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190613e19565b9050803414610bd65760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742076616c756560701b6044820152606401610945565b6000610be18961273d565b9050610bf6610bf08983610e36565b82610e70565b9750610c0289896127df565b9750610c4b6040518060c001604052808b6001600160a01b031681526020018360ff1681526020018a81526020018981526020018861ffff168152602001878152508584612815565b92505050610c596001600f55565b9695505050505050565b33610c766001546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b815260040161094590613dc6565b818061ffff16610caf60005461ffff1690565b61ffff1614610cd05760405162461bcd60e51b815260040161094590613df4565b6000805463ff0000001916630100000084151502179055505050565b33610cff6001546001600160a01b031690565b6001600160a01b031614610d255760405162461bcd60e51b815260040161094590613dc6565b818061ffff16610d3860005461ffff1690565b61ffff1614610d595760405162461bcd60e51b815260040161094590613df4565b6001600160a01b038216610dbf5760405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608401610945565b6000610dd36003546001600160a01b031690565b600380546001600160a01b0319166001600160a01b0386161790559050826001600160a01b0316816001600160a01b03167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a350505050565b600060088260ff161115610e6757610e4f600883613e48565b610e5a90600a613f45565b610e649084613f54565b92505b50815b92915050565b600060088260ff161115610e6757610e89600883613e48565b610e9490600a613f45565b610e649084613f76565b600080546301000000900460ff1615610eed5760405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606401610945565b60005462010000900460ff16610f455760405162461bcd60e51b815260206004820181905260248201527f574554482066756e6374696f6e616c697479206e6f7420737570706f727465646044820152606401610945565b6000610f596005546001600160a01b031690565b6001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba9190613e19565b90508034116110005760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742076616c756560701b6044820152606401610945565b600061100c8234613f8d565b9050600061102561101e836012610e36565b6012610e70565b61102f9083613f8d565b9050801561106657604051339082156108fc029083906000818181858888f19350505050158015611064573d6000803e3d6000fd5b505b60006110728284613f8d565b905060006110906000546001600160a01b03600160201b9091041690565b9050806001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110cd57600080fd5b505af11580156110e1573d6000803e3d6000fd5b505050505061112e6040518060c00160405280836001600160a01b03168152602001601260ff1681526020018481526020018c81526020018b61ffff1681526020018a8152508887612815565b9a9950505050505050505050565b60008061114a836021612b3d565b90506000611159846041612b9b565b905061116860005461ffff1690565b61ffff168161ffff1614611249576006546001600160a01b0316604051630ff8f14360e11b815261ffff83166004820152602481018490526001600160a01b039190911690631ff1e28690604401602060405180830381865afa1580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190613fa0565b92506001600160a01b0383166112445760405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd08185d1d195cdd195960721b6044820152606401610945565b611255565b61125282612bf8565b92505b5050919050565b3361126f6001546001600160a01b031690565b6001600160a01b0316146112955760405162461bcd60e51b815260040161094590613dc6565b818061ffff166112a860005461ffff1690565b61ffff16146112c95760405162461bcd60e51b815260040161094590613df4565b600082116113115760405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606401610945565b6109d182600755565b600080600061135e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b925092509250600061136f84611b83565b905060006113808260600151612bf8565b9050600061139760005460ff620100009091041690565b90506001600160a01b03821633036113bf576113b584838784612f41565b5050505050505050565b60006113ca8561273d565b90506113da846020015182610e70565b6020850152600054600160201b90046001600160a01b03166001600160a01b0316856001600160a01b0316036114255761141a868486602001518561306b565b505050505050505050565b6040840151156115ed5761143d846040015182610e70565b6040850152600061144d8661221d565b9050808560400151111561146357604085018190525b6000611473878760400151611d3b565b905080156115af57803410156114cb5760405162461bcd60e51b815260206004820181905260248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152606401610945565b60006114d78234613f8d565b9050801561150e57604051339082156108fc029083906000818181858888f1935050505015801561150c573d6000803e3d6000fd5b505b6040516001600160a01b0387169083156108fc029084906000818181858888f19350505050158015611544573d6000803e3d6000fd5b50876001600160a01b0316336001600160a01b0316876001600160a01b03167f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f18a60400151866040516115a1929190918252602082015260400190565b60405180910390a4506115ea565b6000604087015234156115ea5760405133903480156108fc02916000818181858888f193505050501580156115e8573d6000803e3d6000fd5b505b50505b6000846040015185602001516116039190613fbd565b9050801561162757611627866116216003546001600160a01b031690565b836131e1565b61163b8685611636848b613f8d565b6131e1565b50505050505050505050565b6001600160a01b0382166000908152600a6020526040812054806000036116a45760405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606401610945565b6008546116b19082613f76565b60075461ffff87166000908152600c60205260409020546116d386600a613f45565b6116dd9190613f76565b6116e79190613f76565b6116f19190613f54565b95945050505050565b3361170d6001546001600160a01b031690565b6001600160a01b0316146117335760405162461bcd60e51b815260040161094590613dc6565b806117905760405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608401610945565b61ffff8216158015906117ac575060005461ffff838116911614155b6118085760405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608401610945565b61ffff91909116600090815260096020526040902055565b5050565b336118376001546001600160a01b031690565b6001600160a01b0316148061186557503361185a6002546001600160a01b031690565b6001600160a01b0316145b6118815760405162461bcd60e51b815260040161094590613fd0565b60005461ffff1661ffff168261ffff16036118ce5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606401610945565b61ffff82166000908152600960205260409020546119275760405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606401610945565b61ffff919091166000908152600c6020526040902055565b336119526001546001600160a01b031690565b6001600160a01b031614806119805750336119756002546001600160a01b031690565b6001600160a01b0316145b61199c5760405162461bcd60e51b815260040161094590613fd0565b828061ffff166119af60005461ffff1690565b61ffff16146119d05760405162461bcd60e51b815260040161094590613df4565b8180611a135760405162461bcd60e51b8152602060048201526012602482015271696e76616c69642061727261792073697a6560701b6044820152606401610945565b60005b81811015611b3b57611a49858583818110611a3357611a33614011565b6104b89260206040909202019081019150613946565b611a655760405162461bcd60e51b815260040161094590614027565b6000858583818110611a7957611a79614011565b9050604002016020013511611ad05760405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606401610945565b611b33858583818110611ae557611ae5614011565b611afb9260206040909202019081019150613946565b868684818110611b0d57611b0d614011565b905060400201602001356001600160a01b039091166000908152600a6020526040902055565b600101611a16565b508383604051611b4c929190614053565b604051908190038120907f7abf49a6ebb116bc314846377cd82a3d2c8c1ea48149a652356009fc37100dd790600090a25050505050565b604080516080810182526000808252602082018190529181018290526060810182905290611bb18382613244565b60ff168252611bc1600182613fbd565b9050816000015160ff16600114611c0e5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606401610945565b611c1883826132a0565b602080840191909152611c2b9082613fbd565b9050611c3783826132a0565b6040830152611c47602082613fbd565b9050611c538382612b3d565b6060830152611c63602082613fbd565b905082518114611cae5760405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840dacae6e6c2ceca40d8cadccee8d60531b6044820152606401610945565b50919050565b33611cc76001546001600160a01b031690565b6001600160a01b031614611ced5760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611d0060005461ffff1690565b61ffff1614611d215760405162461bcd60e51b815260040161094590613df4565b6000805462ff000019166201000084151502179055505050565b600080611d478461273d565b90506000611d6d611d686000546001600160a01b03600160201b9091041690565b61273d565b90508060ff168260ff161115611dca57611d878183613e48565b611d9290600a613f45565b611d9b866120c7565b611da59190613f76565b84611daf60075490565b611db99190613f76565b611dc39190613f54565b9250611e13565b611dd3856120c7565b611ddd8383613e48565b611de890600a613f45565b85611df260075490565b611dfc9190613f76565b611e069190613f76565b611e109190613f54565b92505b505092915050565b33611e2e6001546001600160a01b031690565b6001600160a01b031614611e545760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611e6760005461ffff1690565b61ffff1614611e885760405162461bcd60e51b815260040161094590613df4565b60008211611ed05760405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606401610945565b6109d182600855565b33611eec6001546001600160a01b031690565b6001600160a01b031614611f125760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611f2560005461ffff1690565b61ffff1614611f465760405162461bcd60e51b815260040161094590613df4565b6001600160a01b038216611f9c5760405162461bcd60e51b815260206004820181905260248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152606401610945565b6109d1826126c2565b6060816000015160ff16600114611ff25760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606401610945565b81516020808401516040808601516060870151915161203a95949192910160f89490941b6001600160f81b031916845260018401929092526021830152604182015260610190565b6040516020818303038152906040529050919050565b336120636001546001600160a01b031690565b6001600160a01b0316146120895760405162461bcd60e51b815260040161094590613dc6565b808061ffff1661209c60005461ffff1690565b61ffff16146120bd5760405162461bcd60e51b815260040161094590613df4565b61182060006126c2565b600080546001600160a01b03600160201b90910481168252600a60205260408083205491841683528220546000821180156121025750600081115b6121425760405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606401610945565b808261214d60075490565b6121579190613f76565b6112529190613f54565b336121746001546001600160a01b031690565b6001600160a01b03161461219a5760405162461bcd60e51b815260040161094590613dc6565b818061ffff166121ad60005461ffff1690565b61ffff16146121ce5760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166122145760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606401610945565b6109d1826132f5565b6000806122298361273d565b9050600061224a611d686000546001600160a01b03600160201b9091041690565b90508060ff168260ff1611156122b9576007546122678284613e48565b61227290600a613f45565b61227b866120c7565b6001600160a01b0387166000908152600b602052604090205461229e9190613f76565b6122a89190613f76565b6122b29190613f54565b9250611255565b6007546122c68383613e48565b6122d190600a613f45565b6122db9190613f76565b6122e4856120c7565b6001600160a01b0386166000908152600b602052604090205461214d565b60606000600e0180548060200260200160405190810160405280929190818152602001828054801561235d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161233f575b5050505050905090565b3361237a6001546001600160a01b031690565b6001600160a01b0316146123a05760405162461bcd60e51b815260040161094590613dc6565b818061ffff166123b360005461ffff1690565b61ffff16146123d45760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166124365760405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608401610945565b600280546001600160a01b0319166001600160a01b038416179055505050565b336124696001546001600160a01b031690565b6001600160a01b03161461248f5760405162461bcd60e51b815260040161094590613dc6565b828061ffff166124a260005461ffff1690565b61ffff16146124c35760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0383166000908152600d602052604090205460ff166124fb5760405162461bcd60e51b815260040161094590614027565b6001600160a01b0383166000908152600b602052604090208290555b50505050565b6001600160a01b0381166000908152600d602052604090205460ff1661257c5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881b9bdd081c9959da5cdd195c995960621b6044820152606401610945565b6001600160a01b0381166000908152600d60209081526040808320805460ff19169055600a8252808320839055600b9091528120819055600e54905b8181101561260257826001600160a01b03166000600e0182815481106125e0576125e0614011565b6000918252602090912001546001600160a01b031614612602576001016125b8565b8181146109d157600182111561268a57600e61261f600184613f8d565b8154811061262f5761262f614011565b600091825260209091200154600e80546001600160a01b03909216918390811061265b5761265b614011565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600e80548061269b5761269b61409e565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002600f54036127365760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610945565b6002600f55565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b03851691612780916140b4565b600060405180830381855afa9150503d80600081146127bb576040519150601f19603f3d011682016040523d82523d6000602084013e6127c0565b606091505b50915050808060200190518101906127d891906140e0565b9392505050565b6000806127eb846133c4565b90506127f984333086613470565b80612803856133c4565b61280d9190613f8d565b949350505050565b82516001600160a01b03166000908152600d602052604081205460ff1661284e5760405162461bcd60e51b815260040161094590614027565b60a08401516128ab5760405162461bcd60e51b8152602060048201526024808201527f746172676574526563697069656e742063616e6e6f74206265206279746573336044820152633228302960e01b6064820152608401610945565b60006128bf85604001518660200151610e36565b9050600081116129115760405162461bcd60e51b815260206004820152601d60248201527f6e6f726d616c697a656420616d6f756e74206d757374206265203e20300000006044820152606401610945565b600061292586606001518760200151610e36565b905085606001516000148061293a5750600081115b6129865760405162461bcd60e51b815260206004820152601b60248201527f696e76616c696420746f4e6174697665546f6b656e416d6f756e7400000000006044820152606401610945565b608086015161ffff16600090815260096020526040902054806129e35760405162461bcd60e51b81526020600482015260156024820152741d185c99d95d081b9bdd081c9959da5cdd195c9959605a1b6044820152606401610945565b6000612a096129ff89608001518a600001518b60200151611647565b8960200151610e36565b9050612a158382613fbd565b8411612a595760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d08185b5bdd5b9d606a1b6044820152606401610945565b6000612a8c6040518060800160405280600160ff1681526020018481526020018681526020018b60a00151815250611fa5565b90506000612aa26006546001600160a01b031690565b9050612ab78a60000151828c604001516134a8565b806001600160a01b031663c5a5ebda898c600001518d604001518e60800151898f896040518863ffffffff1660e01b8152600401612afa969594939291906140fd565b60206040518083038185885af1158015612b18573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061112e9190614163565b6000612b4a826020613fbd565b83511015612b925760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610945565b50016020015190565b6000612ba8826002613fbd565b83511015612bef5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610945565b50016002015190565b60006001600160a01b0319821615612c485760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642045564d206164647265737360681b6044820152606401610945565b5090565b60606000806000612c656005546001600160a01b031690565b6001600160a01b031663a9e11893866040518263ffffffff1660e01b8152600401612c909190613d25565b600060405180830381865afa158015612cad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cd591908101906142a2565b90506000612ce68260e0015161113c565b9050612d0a816001600160a01b03166000908152600d602052604090205460ff1690565b612d4d5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881b9bdd081c9959da5cdd195c995960621b6044820152606401610945565b6000612d58826133c4565b90506000612d6e6006546001600160a01b031690565b90506000816001600160a01b031663c3f511c18a6040518263ffffffff1660e01b8152600401612d9e9190613d25565b6000604051808303816000875af1158015612dbd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612de591908101906143c6565b9050600083612df3866133c4565b612dfd9190613f8d565b90506000836001600160a01b031663ea63738d846040518263ffffffff1660e01b8152600401612e2d9190613d25565b600060405180830381865afa158015612e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e7291908101906143fa565b9050612e92876060015161ffff1660009081526009602052604090205490565b8160c0015114612ee45760405162461bcd60e51b815260206004820152601760248201527f636f6e7472616374206e6f7420726567697374657265640000000000000000006044820152606401610945565b8660a001516001600160401b03168760800151886060015161ffff167fcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c16960405160405180910390a460e001519a9099509397509295505050505050565b3415612f9b5760405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608401610945565b6000546001600160a01b03600160201b909104811690851681148015612fbe5750815b1561305957604051632e1a7d4d60e01b8152600481018490526001600160a01b03821690632e1a7d4d90602401600060405180830381600087803b15801561300557600080fd5b505af1158015613019573d6000803e3d6000fd5b50506040516001600160a01b038716925085156108fc02915085906000818181858888f19350505050158015613053573d6000803e3d6000fd5b50613064565b6130648585856131e1565b5050505050565b34156130ae5760405162461bcd60e51b815260206004820152601260248201527176616c7565206d757374206265207a65726f60701b6044820152606401610945565b80156131a157600054604051632e1a7d4d60e01b815260048101869052600160201b9091046001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561310057600080fd5b505af1158015613114573d6000803e3d6000fd5b50505050826001600160a01b03166108fc83866131319190613f8d565b6040518115909202916000818181858888f19350505050158015613159573d6000803e3d6000fd5b50811561319c576003546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561319a573d6000803e3d6000fd5b505b612517565b600054600160201b90046001600160a01b03166131c381856116368689613f8d565b821561306457613064816131df6003546001600160a01b031690565b855b6040516001600160a01b0383166024820152604481018290526109d190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526135bd565b6000613251826001613fbd565b835110156132975760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606401610945565b50016001015190565b60006132ad826020613fbd565b83511015612b925760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610945565b6001600160a01b0381166000908152600d602052604090205460ff161561335e5760405162461bcd60e51b815260206004820152601860248201527f746f6b656e20616c7265616479207265676973746572656400000000000000006044820152606401610945565b6001600160a01b03166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b179052905160009182916001600160a01b03851691613418916140b4565b600060405180830381855afa9150503d8060008114613453576040519150601f19603f3d011682016040523d82523d6000602084013e613458565b606091505b50915050808060200190518101906127d89190613e19565b6040516001600160a01b03808516602483015283166044820152606481018290526125179085906323b872dd60e01b9060840161320d565b8015806135225750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156134fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135209190613e19565b155b61358d5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610945565b6040516001600160a01b0383166024820152604481018290526109d190849063095ea7b360e01b9060640161320d565b6000613612826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661368f9092919063ffffffff16565b8051909150156109d1578080602001905181019061363091906144c2565b6109d15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610945565b606061280d848460008585600080866001600160a01b031685876040516136b691906140b4565b60006040518083038185875af1925050503d80600081146136f3576040519150601f19603f3d011682016040523d82523d6000602084013e6136f8565b606091505b509150915061370987838387613714565b979650505050505050565b6060831561378357825160000361377c576001600160a01b0385163b61377c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610945565b508161280d565b61280d83838151156137985781518083602001fd5b8060405162461bcd60e51b81526004016109459190613d25565b61ffff811681146137c257600080fd5b50565b6001600160a01b03811681146137c257600080fd5b600080604083850312156137ed57600080fd5b82356137f8816137b2565b91506020830135613808816137c5565b809150509250929050565b63ffffffff811681146137c257600080fd5b60008060008060008060c0878903121561383e57600080fd5b8635613849816137c5565b955060208701359450604087013593506060870135613867816137b2565b92506080870135915060a087013561387e81613813565b809150509295509295509295565b80151581146137c257600080fd5b600080604083850312156138ad57600080fd5b82356138b8816137b2565b915060208301356138088161388c565b60ff811681146137c257600080fd5b600080604083850312156138ea57600080fd5b823591506020830135613808816138c8565b6000806000806080858703121561391257600080fd5b843593506020850135613924816137b2565b925060408501359150606085013561393b81613813565b939692955090935050565b60006020828403121561395857600080fd5b81356127d8816137c5565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171561399b5761399b613963565b60405290565b60405161016081016001600160401b038111828210171561399b5761399b613963565b60405161010081016001600160401b038111828210171561399b5761399b613963565b604051601f8201601f191681016001600160401b0381118282101715613a0f57613a0f613963565b604052919050565b60006001600160401b03821115613a3057613a30613963565b50601f01601f191660200190565b600060208284031215613a5057600080fd5b81356001600160401b03811115613a6657600080fd5b8201601f81018413613a7757600080fd5b8035613a8a613a8582613a17565b6139e7565b818152856020838501011115613a9f57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008060408385031215613ad057600080fd5b8235613adb816137b2565b946020939093013593505050565b60008060208385031215613afc57600080fd5b82356001600160401b0380821115613b1357600080fd5b818501915085601f830112613b2757600080fd5b813581811115613b3657600080fd5b866020828501011115613b4857600080fd5b60209290920196919550909350505050565b600080600060608486031215613b6f57600080fd5b8335613b7a816137b2565b92506020840135613b8a816137c5565b91506040840135613b9a816138c8565b809150509250925092565b600060208284031215613bb757600080fd5b81356127d8816137b2565b600080600060408486031215613bd757600080fd5b8335613be2816137b2565b925060208401356001600160401b0380821115613bfe57600080fd5b818601915086601f830112613c1257600080fd5b813581811115613c2157600080fd5b8760208260061b8501011115613c3657600080fd5b6020830194508093505050509250925092565b60008060408385031215613c5c57600080fd5b8235613adb816137c5565b600060808284031215613c7957600080fd5b604051608081018181106001600160401b0382111715613c9b57613c9b613963565b6040528235613ca9816138c8565b808252506020830135602082015260408301356040820152606083013560608201528091505092915050565b60005b83811015613cf0578181015183820152602001613cd8565b50506000910152565b60008151808452613d11816020860160208601613cd5565b601f01601f19169290920160200192915050565b6020815260006127d86020830184613cf9565b6020808252825182820181905260009190848201906040850190845b81811015613d795783516001600160a01b031683529284019291840191600101613d54565b50909695505050505050565b600080600060608486031215613d9a57600080fd5b8335613da5816137b2565b92506020840135613db5816137c5565b929592945050506040919091013590565b60208082526014908201527331b0b63632b9103737ba103a34329037bbb732b960611b604082015260600190565b6020808252600b908201526a3bb937b7339031b430b4b760a91b604082015260600190565b600060208284031215613e2b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115610e6a57610e6a613e32565b600181815b80851115613e9c578160001904821115613e8257613e82613e32565b80851615613e8f57918102915b93841c9390800290613e66565b509250929050565b600082613eb357506001610e6a565b81613ec057506000610e6a565b8160018114613ed65760028114613ee057613efc565b6001915050610e6a565b60ff841115613ef157613ef1613e32565b50506001821b610e6a565b5060208310610133831016604e8410600b8410161715613f1f575081810a610e6a565b613f298383613e61565b8060001904821115613f3d57613f3d613e32565b029392505050565b60006127d860ff841683613ea4565b600082613f7157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e6a57610e6a613e32565b81810381811115610e6a57610e6a613e32565b600060208284031215613fb257600080fd5b81516127d8816137c5565b80820180821115610e6a57610e6a613e32565b60208082526021908201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6040820152601d60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6020808252601290820152711d1bdad95b881b9bdd081858d8d95c1d195960721b604082015260600190565b60008184825b8581101561409357813561406c816137c5565b6001600160a01b031683526020828101359084015260409283019290910190600101614059565b509095945050505050565b634e487b7160e01b600052603160045260246000fd5b600082516140c6818460208701613cd5565b9190910192915050565b80516140db816138c8565b919050565b6000602082840312156140f257600080fd5b81516127d8816138c8565b60018060a01b038716815285602082015261ffff8516604082015283606082015263ffffffff8316608082015260c060a0820152600061414060c0830184613cf9565b98975050505050505050565b80516001600160401b03811681146140db57600080fd5b60006020828403121561417557600080fd5b6127d88261414c565b80516140db81613813565b80516140db816137b2565b600082601f8301126141a557600080fd5b81516141b3613a8582613a17565b8181528460208386010111156141c857600080fd5b61280d826020830160208701613cd5565b600082601f8301126141ea57600080fd5b815160206001600160401b0382111561420557614205613963565b614213818360051b016139e7565b82815260079290921b8401810191818101908684111561423257600080fd5b8286015b84811015614297576080818903121561424f5760008081fd5b614257613979565b815181528482015185820152604080830151614272816138c8565b90820152606082810151614285816138c8565b90820152835291830191608001614236565b509695505050505050565b6000602082840312156142b457600080fd5b81516001600160401b03808211156142cb57600080fd5b9083019061016082860312156142e057600080fd5b6142e86139a1565b6142f1836140d0565b81526142ff6020840161417e565b60208201526143106040840161417e565b604082015261432160608401614189565b60608201526080830151608082015261433c60a0840161414c565b60a082015261434d60c084016140d0565b60c082015260e08301518281111561436457600080fd5b61437087828601614194565b60e08301525061010061438481850161417e565b90820152610120838101518381111561439c57600080fd5b6143a8888287016141d9565b91830191909152506101409283015192810192909252509392505050565b6000602082840312156143d857600080fd5b81516001600160401b038111156143ee57600080fd5b61280d84828501614194565b60006020828403121561440c57600080fd5b81516001600160401b038082111561442357600080fd5b90830190610100828603121561443857600080fd5b6144406139c4565b614449836140d0565b8152602083015160208201526040830151604082015261446b60608401614189565b60608201526080830151608082015261448660a08401614189565b60a082015260c083015160c082015260e0830151828111156144a757600080fd5b6144b387828601614194565b60e08301525095945050505050565b6000602082840312156144d457600080fd5b81516127d88161388c56fea26469706673582212204380a2c16f3d3a94e16ceec8dd417389a415486e9286774f1ba51d1e17ea374064736f6c63430008110033"; + '0x60806040523480156200001157600080fd5b50604051620049823803806200498283398101604081905262000034916200038c565b6001600f556001600160a01b038516620000955760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420746f6b656e2062726964676520616464726573730000000060448201526064015b60405180910390fd5b6001600160a01b038416620000ed5760405162461bcd60e51b815260206004820152601460248201527f696e76616c69642077657468206164647265737300000000000000000000000060448201526064016200008c565b6001600160a01b038316620001455760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642066656520726563697069656e74000000000000000000000060448201526064016200008c565b6001600160a01b0382166200019d5760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964206f776e657220617373697374616e7400000000000000000060448201526064016200008c565b600180546001600160a01b03191633179055600380546001600160a01b0319166001600160a01b038516179055600680546001600160a01b0319166001600160a01b03871617905560008054600160201b600160c01b0319166401000000006001600160a01b03871602179055600280546001600160a01b0319166001600160a01b0384161790556000805462ff0000191662010000831515021790556000859050620002c0816001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000410565b6000805461ffff191661ffff92909216919091179055565b6200034b816001600160a01b03166384acd1bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032991906200043d565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b620003596305f5e100600755565b620003676305f5e100600855565b5050505050506200045d565b6001600160a01b03811681146200038957600080fd5b50565b600080600080600060a08688031215620003a557600080fd5b8551620003b28162000373565b6020870151909550620003c58162000373565b6040870151909450620003d88162000373565b6060870151909350620003eb8162000373565b608087015190925080151581146200040257600080fd5b809150509295509295909350565b6000602082840312156200042357600080fd5b815161ffff811681146200043657600080fd5b9392505050565b6000602082840312156200045057600080fd5b8151620004368162000373565b614515806200046d6000396000f3fe6080604052600436106102815760003560e01c80636805b84b1161014f5780639fe089ad116100c1578063cd601c781161007a578063cd601c781461083b578063df160d761461085b578063e30c39781461087d578063ea1d2e4a1461089b578063ffa1ad74146108bb578063fff982a8146108ec57600080fd5b80639fe089ad1461076b578063a2f32c8f14610798578063ad5c4648146107b8578063b5419523146107dd578063c6328a46146107fd578063c9c22f9f1461081b57600080fd5b80638da5cb5b116101135780638da5cb5b146106ac5780638e151dd1146106ca57806390a1afaa146106ea57806394cc743d1461070a5780639a8a05921461072a5780639cf278cd1461074d57600080fd5b80636805b84b146105db57806368aa9ef4146105fa5780637c9dec7a146106185780638335572f1461066e57806384acd1bb1461068e57600080fd5b80632def3e16116101f3578063415828bf116101ac578063415828bf14610517578063469048401461052c57806351e2d7b51461054a5780635b9cf0e11461056a578063640d946b1461058a57806366775a6b146105aa57600080fd5b80632def3e16146104145780632efe4f42146104345780632f25e25f1461046a57806339ba66111461047d5780633b6e750f1461049d5780633d62cca0146104e657600080fd5b8063203c509511610245578063203c50951461033357806327105ab91461035357806328ded8e31461037357806329ac8361146103935780632ca8008c146103a65780632d77e8fe146103dc57600080fd5b8063016aa2051461028d578063038c0b66146102af5780631019d654146102c45780631a282195146102f45780631acdab4b1461031457600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a83660046137da565b61090c565b005b3480156102bb57600080fd5b506102ad6109d6565b6102d76102d2366004613825565b610ac3565b6040516001600160401b0390911681526020015b60405180910390f35b34801561030057600080fd5b506102ad61030f36600461389a565b610c63565b34801561032057600080fd5b506007545b6040519081526020016102eb565b34801561033f57600080fd5b506102ad61034e3660046137da565b610cec565b34801561035f57600080fd5b5061032561036e3660046138d7565b610e36565b34801561037f57600080fd5b5061032561038e3660046138d7565b610e70565b6102d76103a13660046138fc565b610e9e565b3480156103b257600080fd5b506103256103c1366004613946565b6001600160a01b03166000908152600a602052604090205490565b3480156103e857600080fd5b506103fc6103f7366004613a3e565b61113c565b6040516001600160a01b0390911681526020016102eb565b34801561042057600080fd5b506102ad61042f366004613abd565b61125c565b34801561044057600080fd5b5061032561044f366004613946565b6001600160a01b03166000908152600b602052604090205490565b6102ad610478366004613ae9565b61131a565b34801561048957600080fd5b50610325610498366004613b5a565b611647565b3480156104a957600080fd5b506104d66104b8366004613946565b6001600160a01b03166000908152600d602052604090205460ff1690565b60405190151581526020016102eb565b3480156104f257600080fd5b50610325610501366004613ba5565b61ffff1660009081526009602052604090205490565b34801561052357600080fd5b50600854610325565b34801561053857600080fd5b506003546001600160a01b03166103fc565b34801561055657600080fd5b506102ad610565366004613abd565b6116fa565b34801561057657600080fd5b506102ad610585366004613abd565b611824565b34801561059657600080fd5b506102ad6105a5366004613bc2565b61193f565b3480156105b657600080fd5b506103256105c5366004613ba5565b61ffff166000908152600c602052604090205490565b3480156105e757600080fd5b506000546301000000900460ff166104d6565b34801561060657600080fd5b506002546001600160a01b03166103fc565b34801561062457600080fd5b50610638610633366004613a3e565b611b83565b6040516102eb9190815160ff16815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561067a57600080fd5b506102ad61068936600461389a565b611cb4565b34801561069a57600080fd5b506005546001600160a01b03166103fc565b3480156106b857600080fd5b506001546001600160a01b03166103fc565b3480156106d657600080fd5b506103256106e5366004613c49565b611d3b565b3480156106f657600080fd5b506102ad610705366004613abd565b611e1b565b34801561071657600080fd5b506102ad6107253660046137da565b611ed9565b34801561073657600080fd5b5060005460405161ffff90911681526020016102eb565b34801561075957600080fd5b5060005462010000900460ff166104d6565b34801561077757600080fd5b5061078b610786366004613c67565b611fa5565b6040516102eb9190613d25565b3480156107a457600080fd5b506102ad6107b3366004613ba5565b612050565b3480156107c457600080fd5b50600054600160201b90046001600160a01b03166103fc565b3480156107e957600080fd5b506103256107f8366004613946565b6120c7565b34801561080957600080fd5b506006546001600160a01b03166103fc565b34801561082757600080fd5b506102ad6108363660046137da565b612161565b34801561084757600080fd5b50610325610856366004613946565b61221d565b34801561086757600080fd5b50610870612302565b6040516102eb9190613d38565b34801561088957600080fd5b506004546001600160a01b03166103fc565b3480156108a757600080fd5b506102ad6108b63660046137da565b612367565b3480156108c757600080fd5b5061078b604051806040016040528060058152602001640302e322e360dc1b81525081565b3480156108f857600080fd5b506102ad610907366004613d85565b612456565b3361091f6001546001600160a01b031690565b6001600160a01b03161461094e5760405162461bcd60e51b815260040161094590613dc6565b60405180910390fd5b818061ffff1661096160005461ffff1690565b61ffff16146109825760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166109c85760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606401610945565b6109d18261251d565b505050565b60006109ea6004546001600160a01b031690565b9050336001600160a01b03821614610a445760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606401610945565b6000610a586001546001600160a01b031690565b600180546001600160a01b0319166001600160a01b0385161790559050610a7f60006126c2565b816001600160a01b0316816001600160a01b03167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee6760405160405180910390a35050565b6000610acd6126e4565b6000546301000000900460ff1615610b1b5760405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606401610945565b6000610b2f6005546001600160a01b031690565b6001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190613e19565b9050803414610bd65760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742076616c756560701b6044820152606401610945565b6000610be18961273d565b9050610bf6610bf08983610e36565b82610e70565b9750610c0289896127df565b9750610c4b6040518060c001604052808b6001600160a01b031681526020018360ff1681526020018a81526020018981526020018861ffff168152602001878152508584612815565b92505050610c596001600f55565b9695505050505050565b33610c766001546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b815260040161094590613dc6565b818061ffff16610caf60005461ffff1690565b61ffff1614610cd05760405162461bcd60e51b815260040161094590613df4565b6000805463ff0000001916630100000084151502179055505050565b33610cff6001546001600160a01b031690565b6001600160a01b031614610d255760405162461bcd60e51b815260040161094590613dc6565b818061ffff16610d3860005461ffff1690565b61ffff1614610d595760405162461bcd60e51b815260040161094590613df4565b6001600160a01b038216610dbf5760405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608401610945565b6000610dd36003546001600160a01b031690565b600380546001600160a01b0319166001600160a01b0386161790559050826001600160a01b0316816001600160a01b03167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a350505050565b600060088260ff161115610e6757610e4f600883613e48565b610e5a90600a613f45565b610e649084613f54565b92505b50815b92915050565b600060088260ff161115610e6757610e89600883613e48565b610e9490600a613f45565b610e649084613f76565b600080546301000000900460ff1615610eed5760405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606401610945565b60005462010000900460ff16610f455760405162461bcd60e51b815260206004820181905260248201527f574554482066756e6374696f6e616c697479206e6f7420737570706f727465646044820152606401610945565b6000610f596005546001600160a01b031690565b6001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fba9190613e19565b90508034116110005760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742076616c756560701b6044820152606401610945565b600061100c8234613f8d565b9050600061102561101e836012610e36565b6012610e70565b61102f9083613f8d565b9050801561106657604051339082156108fc029083906000818181858888f19350505050158015611064573d6000803e3d6000fd5b505b60006110728284613f8d565b905060006110906000546001600160a01b03600160201b9091041690565b9050806001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110cd57600080fd5b505af11580156110e1573d6000803e3d6000fd5b505050505061112e6040518060c00160405280836001600160a01b03168152602001601260ff1681526020018481526020018c81526020018b61ffff1681526020018a8152508887612815565b9a9950505050505050505050565b60008061114a836021612b3d565b90506000611159846041612b9b565b905061116860005461ffff1690565b61ffff168161ffff1614611249576006546001600160a01b0316604051630ff8f14360e11b815261ffff83166004820152602481018490526001600160a01b039190911690631ff1e28690604401602060405180830381865afa1580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190613fa0565b92506001600160a01b0383166112445760405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd08185d1d195cdd195960721b6044820152606401610945565b611255565b61125282612bf8565b92505b5050919050565b3361126f6001546001600160a01b031690565b6001600160a01b0316146112955760405162461bcd60e51b815260040161094590613dc6565b818061ffff166112a860005461ffff1690565b61ffff16146112c95760405162461bcd60e51b815260040161094590613df4565b600082116113115760405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606401610945565b6109d182600755565b600080600061135e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c4c92505050565b925092509250600061136f84611b83565b905060006113808260600151612bf8565b9050600061139760005460ff620100009091041690565b90506001600160a01b03821633036113bf576113b584838784612f41565b5050505050505050565b60006113ca8561273d565b90506113da846020015182610e70565b6020850152600054600160201b90046001600160a01b03166001600160a01b0316856001600160a01b0316036114255761141a868486602001518561306b565b505050505050505050565b6040840151156115ed5761143d846040015182610e70565b6040850152600061144d8661221d565b9050808560400151111561146357604085018190525b6000611473878760400151611d3b565b905080156115af57803410156114cb5760405162461bcd60e51b815260206004820181905260248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152606401610945565b60006114d78234613f8d565b9050801561150e57604051339082156108fc029083906000818181858888f1935050505015801561150c573d6000803e3d6000fd5b505b6040516001600160a01b0387169083156108fc029084906000818181858888f19350505050158015611544573d6000803e3d6000fd5b50876001600160a01b0316336001600160a01b0316876001600160a01b03167f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f18a60400151866040516115a1929190918252602082015260400190565b60405180910390a4506115ea565b6000604087015234156115ea5760405133903480156108fc02916000818181858888f193505050501580156115e8573d6000803e3d6000fd5b505b50505b6000846040015185602001516116039190613fbd565b9050801561162757611627866116216003546001600160a01b031690565b836131e1565b61163b8685611636848b613f8d565b6131e1565b50505050505050505050565b6001600160a01b0382166000908152600a6020526040812054806000036116a45760405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606401610945565b6008546116b19082613f76565b60075461ffff87166000908152600c60205260409020546116d386600a613f45565b6116dd9190613f76565b6116e79190613f76565b6116f19190613f54565b95945050505050565b3361170d6001546001600160a01b031690565b6001600160a01b0316146117335760405162461bcd60e51b815260040161094590613dc6565b806117905760405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608401610945565b61ffff8216158015906117ac575060005461ffff838116911614155b6118085760405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608401610945565b61ffff91909116600090815260096020526040902055565b5050565b336118376001546001600160a01b031690565b6001600160a01b0316148061186557503361185a6002546001600160a01b031690565b6001600160a01b0316145b6118815760405162461bcd60e51b815260040161094590613fd0565b60005461ffff1661ffff168261ffff16036118ce5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606401610945565b61ffff82166000908152600960205260409020546119275760405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606401610945565b61ffff919091166000908152600c6020526040902055565b336119526001546001600160a01b031690565b6001600160a01b031614806119805750336119756002546001600160a01b031690565b6001600160a01b0316145b61199c5760405162461bcd60e51b815260040161094590613fd0565b828061ffff166119af60005461ffff1690565b61ffff16146119d05760405162461bcd60e51b815260040161094590613df4565b8180611a135760405162461bcd60e51b8152602060048201526012602482015271696e76616c69642061727261792073697a6560701b6044820152606401610945565b60005b81811015611b3b57611a49858583818110611a3357611a33614011565b6104b89260206040909202019081019150613946565b611a655760405162461bcd60e51b815260040161094590614027565b6000858583818110611a7957611a79614011565b9050604002016020013511611ad05760405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606401610945565b611b33858583818110611ae557611ae5614011565b611afb9260206040909202019081019150613946565b868684818110611b0d57611b0d614011565b905060400201602001356001600160a01b039091166000908152600a6020526040902055565b600101611a16565b508383604051611b4c929190614053565b604051908190038120907f7abf49a6ebb116bc314846377cd82a3d2c8c1ea48149a652356009fc37100dd790600090a25050505050565b604080516080810182526000808252602082018190529181018290526060810182905290611bb18382613244565b60ff168252611bc1600182613fbd565b9050816000015160ff16600114611c0e5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606401610945565b611c1883826132a0565b602080840191909152611c2b9082613fbd565b9050611c3783826132a0565b6040830152611c47602082613fbd565b9050611c538382612b3d565b6060830152611c63602082613fbd565b905082518114611cae5760405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840dacae6e6c2ceca40d8cadccee8d60531b6044820152606401610945565b50919050565b33611cc76001546001600160a01b031690565b6001600160a01b031614611ced5760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611d0060005461ffff1690565b61ffff1614611d215760405162461bcd60e51b815260040161094590613df4565b6000805462ff000019166201000084151502179055505050565b600080611d478461273d565b90506000611d6d611d686000546001600160a01b03600160201b9091041690565b61273d565b90508060ff168260ff161115611dca57611d878183613e48565b611d9290600a613f45565b611d9b866120c7565b611da59190613f76565b84611daf60075490565b611db99190613f76565b611dc39190613f54565b9250611e13565b611dd3856120c7565b611ddd8383613e48565b611de890600a613f45565b85611df260075490565b611dfc9190613f76565b611e069190613f76565b611e109190613f54565b92505b505092915050565b33611e2e6001546001600160a01b031690565b6001600160a01b031614611e545760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611e6760005461ffff1690565b61ffff1614611e885760405162461bcd60e51b815260040161094590613df4565b60008211611ed05760405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606401610945565b6109d182600855565b33611eec6001546001600160a01b031690565b6001600160a01b031614611f125760405162461bcd60e51b815260040161094590613dc6565b818061ffff16611f2560005461ffff1690565b61ffff1614611f465760405162461bcd60e51b815260040161094590613df4565b6001600160a01b038216611f9c5760405162461bcd60e51b815260206004820181905260248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152606401610945565b6109d1826126c2565b6060816000015160ff16600114611ff25760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606401610945565b81516020808401516040808601516060870151915161203a95949192910160f89490941b6001600160f81b031916845260018401929092526021830152604182015260610190565b6040516020818303038152906040529050919050565b336120636001546001600160a01b031690565b6001600160a01b0316146120895760405162461bcd60e51b815260040161094590613dc6565b808061ffff1661209c60005461ffff1690565b61ffff16146120bd5760405162461bcd60e51b815260040161094590613df4565b61182060006126c2565b600080546001600160a01b03600160201b90910481168252600a60205260408083205491841683528220546000821180156121025750600081115b6121425760405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606401610945565b808261214d60075490565b6121579190613f76565b6112529190613f54565b336121746001546001600160a01b031690565b6001600160a01b03161461219a5760405162461bcd60e51b815260040161094590613dc6565b818061ffff166121ad60005461ffff1690565b61ffff16146121ce5760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166122145760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b2103a37b5b2b760991b6044820152606401610945565b6109d1826132f5565b6000806122298361273d565b9050600061224a611d686000546001600160a01b03600160201b9091041690565b90508060ff168260ff1611156122b9576007546122678284613e48565b61227290600a613f45565b61227b866120c7565b6001600160a01b0387166000908152600b602052604090205461229e9190613f76565b6122a89190613f76565b6122b29190613f54565b9250611255565b6007546122c68383613e48565b6122d190600a613f45565b6122db9190613f76565b6122e4856120c7565b6001600160a01b0386166000908152600b602052604090205461214d565b60606000600e0180548060200260200160405190810160405280929190818152602001828054801561235d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161233f575b5050505050905090565b3361237a6001546001600160a01b031690565b6001600160a01b0316146123a05760405162461bcd60e51b815260040161094590613dc6565b818061ffff166123b360005461ffff1690565b61ffff16146123d45760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0382166124365760405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608401610945565b600280546001600160a01b0319166001600160a01b038416179055505050565b336124696001546001600160a01b031690565b6001600160a01b03161461248f5760405162461bcd60e51b815260040161094590613dc6565b828061ffff166124a260005461ffff1690565b61ffff16146124c35760405162461bcd60e51b815260040161094590613df4565b6001600160a01b0383166000908152600d602052604090205460ff166124fb5760405162461bcd60e51b815260040161094590614027565b6001600160a01b0383166000908152600b602052604090208290555b50505050565b6001600160a01b0381166000908152600d602052604090205460ff1661257c5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881b9bdd081c9959da5cdd195c995960621b6044820152606401610945565b6001600160a01b0381166000908152600d60209081526040808320805460ff19169055600a8252808320839055600b9091528120819055600e54905b8181101561260257826001600160a01b03166000600e0182815481106125e0576125e0614011565b6000918252602090912001546001600160a01b031614612602576001016125b8565b8181146109d157600182111561268a57600e61261f600184613f8d565b8154811061262f5761262f614011565b600091825260209091200154600e80546001600160a01b03909216918390811061265b5761265b614011565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600e80548061269b5761269b61409e565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002600f54036127365760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610945565b6002600f55565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b03851691612780916140b4565b600060405180830381855afa9150503d80600081146127bb576040519150601f19603f3d011682016040523d82523d6000602084013e6127c0565b606091505b50915050808060200190518101906127d891906140e0565b9392505050565b6000806127eb846133c4565b90506127f984333086613470565b80612803856133c4565b61280d9190613f8d565b949350505050565b82516001600160a01b03166000908152600d602052604081205460ff1661284e5760405162461bcd60e51b815260040161094590614027565b60a08401516128ab5760405162461bcd60e51b8152602060048201526024808201527f746172676574526563697069656e742063616e6e6f74206265206279746573336044820152633228302960e01b6064820152608401610945565b60006128bf85604001518660200151610e36565b9050600081116129115760405162461bcd60e51b815260206004820152601d60248201527f6e6f726d616c697a656420616d6f756e74206d757374206265203e20300000006044820152606401610945565b600061292586606001518760200151610e36565b905085606001516000148061293a5750600081115b6129865760405162461bcd60e51b815260206004820152601b60248201527f696e76616c696420746f4e6174697665546f6b656e416d6f756e7400000000006044820152606401610945565b608086015161ffff16600090815260096020526040902054806129e35760405162461bcd60e51b81526020600482015260156024820152741d185c99d95d081b9bdd081c9959da5cdd195c9959605a1b6044820152606401610945565b6000612a096129ff89608001518a600001518b60200151611647565b8960200151610e36565b9050612a158382613fbd565b8411612a595760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d08185b5bdd5b9d606a1b6044820152606401610945565b6000612a8c6040518060800160405280600160ff1681526020018481526020018681526020018b60a00151815250611fa5565b90506000612aa26006546001600160a01b031690565b9050612ab78a60000151828c604001516134a8565b806001600160a01b031663c5a5ebda898c600001518d604001518e60800151898f896040518863ffffffff1660e01b8152600401612afa969594939291906140fd565b60206040518083038185885af1158015612b18573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061112e9190614163565b6000612b4a826020613fbd565b83511015612b925760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610945565b50016020015190565b6000612ba8826002613fbd565b83511015612bef5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610945565b50016002015190565b60006001600160a01b0319821615612c485760405162461bcd60e51b8152602060048201526013602482015272696e76616c69642045564d206164647265737360681b6044820152606401610945565b5090565b60606000806000612c656005546001600160a01b031690565b6001600160a01b031663a9e11893866040518263ffffffff1660e01b8152600401612c909190613d25565b600060405180830381865afa158015612cad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cd591908101906142a2565b90506000612ce68260e0015161113c565b9050612d0a816001600160a01b03166000908152600d602052604090205460ff1690565b612d4d5760405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881b9bdd081c9959da5cdd195c995960621b6044820152606401610945565b6000612d58826133c4565b90506000612d6e6006546001600160a01b031690565b90506000816001600160a01b031663c3f511c18a6040518263ffffffff1660e01b8152600401612d9e9190613d25565b6000604051808303816000875af1158015612dbd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612de591908101906143c6565b9050600083612df3866133c4565b612dfd9190613f8d565b90506000836001600160a01b031663ea63738d846040518263ffffffff1660e01b8152600401612e2d9190613d25565b600060405180830381865afa158015612e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e7291908101906143fa565b9050612e92876060015161ffff1660009081526009602052604090205490565b8160c0015114612ee45760405162461bcd60e51b815260206004820152601760248201527f636f6e7472616374206e6f7420726567697374657265640000000000000000006044820152606401610945565b8660a001516001600160401b03168760800151886060015161ffff167fcaf280c8cfeba144da67230d9b009c8f868a75bac9a528fa0474be1ba317c16960405160405180910390a460e001519a9099509397509295505050505050565b3415612f9b5760405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608401610945565b6000546001600160a01b03600160201b909104811690851681148015612fbe5750815b1561305957604051632e1a7d4d60e01b8152600481018490526001600160a01b03821690632e1a7d4d90602401600060405180830381600087803b15801561300557600080fd5b505af1158015613019573d6000803e3d6000fd5b50506040516001600160a01b038716925085156108fc02915085906000818181858888f19350505050158015613053573d6000803e3d6000fd5b50613064565b6130648585856131e1565b5050505050565b34156130ae5760405162461bcd60e51b815260206004820152601260248201527176616c7565206d757374206265207a65726f60701b6044820152606401610945565b80156131a157600054604051632e1a7d4d60e01b815260048101869052600160201b9091046001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561310057600080fd5b505af1158015613114573d6000803e3d6000fd5b50505050826001600160a01b03166108fc83866131319190613f8d565b6040518115909202916000818181858888f19350505050158015613159573d6000803e3d6000fd5b50811561319c576003546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561319a573d6000803e3d6000fd5b505b612517565b600054600160201b90046001600160a01b03166131c381856116368689613f8d565b821561306457613064816131df6003546001600160a01b031690565b855b6040516001600160a01b0383166024820152604481018290526109d190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526135bd565b6000613251826001613fbd565b835110156132975760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606401610945565b50016001015190565b60006132ad826020613fbd565b83511015612b925760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610945565b6001600160a01b0381166000908152600d602052604090205460ff161561335e5760405162461bcd60e51b815260206004820152601860248201527f746f6b656e20616c7265616479207265676973746572656400000000000000006044820152606401610945565b6001600160a01b03166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b179052905160009182916001600160a01b03851691613418916140b4565b600060405180830381855afa9150503d8060008114613453576040519150601f19603f3d011682016040523d82523d6000602084013e613458565b606091505b50915050808060200190518101906127d89190613e19565b6040516001600160a01b03808516602483015283166044820152606481018290526125179085906323b872dd60e01b9060840161320d565b8015806135225750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156134fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135209190613e19565b155b61358d5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610945565b6040516001600160a01b0383166024820152604481018290526109d190849063095ea7b360e01b9060640161320d565b6000613612826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661368f9092919063ffffffff16565b8051909150156109d1578080602001905181019061363091906144c2565b6109d15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610945565b606061280d848460008585600080866001600160a01b031685876040516136b691906140b4565b60006040518083038185875af1925050503d80600081146136f3576040519150601f19603f3d011682016040523d82523d6000602084013e6136f8565b606091505b509150915061370987838387613714565b979650505050505050565b6060831561378357825160000361377c576001600160a01b0385163b61377c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610945565b508161280d565b61280d83838151156137985781518083602001fd5b8060405162461bcd60e51b81526004016109459190613d25565b61ffff811681146137c257600080fd5b50565b6001600160a01b03811681146137c257600080fd5b600080604083850312156137ed57600080fd5b82356137f8816137b2565b91506020830135613808816137c5565b809150509250929050565b63ffffffff811681146137c257600080fd5b60008060008060008060c0878903121561383e57600080fd5b8635613849816137c5565b955060208701359450604087013593506060870135613867816137b2565b92506080870135915060a087013561387e81613813565b809150509295509295509295565b80151581146137c257600080fd5b600080604083850312156138ad57600080fd5b82356138b8816137b2565b915060208301356138088161388c565b60ff811681146137c257600080fd5b600080604083850312156138ea57600080fd5b823591506020830135613808816138c8565b6000806000806080858703121561391257600080fd5b843593506020850135613924816137b2565b925060408501359150606085013561393b81613813565b939692955090935050565b60006020828403121561395857600080fd5b81356127d8816137c5565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171561399b5761399b613963565b60405290565b60405161016081016001600160401b038111828210171561399b5761399b613963565b60405161010081016001600160401b038111828210171561399b5761399b613963565b604051601f8201601f191681016001600160401b0381118282101715613a0f57613a0f613963565b604052919050565b60006001600160401b03821115613a3057613a30613963565b50601f01601f191660200190565b600060208284031215613a5057600080fd5b81356001600160401b03811115613a6657600080fd5b8201601f81018413613a7757600080fd5b8035613a8a613a8582613a17565b6139e7565b818152856020838501011115613a9f57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008060408385031215613ad057600080fd5b8235613adb816137b2565b946020939093013593505050565b60008060208385031215613afc57600080fd5b82356001600160401b0380821115613b1357600080fd5b818501915085601f830112613b2757600080fd5b813581811115613b3657600080fd5b866020828501011115613b4857600080fd5b60209290920196919550909350505050565b600080600060608486031215613b6f57600080fd5b8335613b7a816137b2565b92506020840135613b8a816137c5565b91506040840135613b9a816138c8565b809150509250925092565b600060208284031215613bb757600080fd5b81356127d8816137b2565b600080600060408486031215613bd757600080fd5b8335613be2816137b2565b925060208401356001600160401b0380821115613bfe57600080fd5b818601915086601f830112613c1257600080fd5b813581811115613c2157600080fd5b8760208260061b8501011115613c3657600080fd5b6020830194508093505050509250925092565b60008060408385031215613c5c57600080fd5b8235613adb816137c5565b600060808284031215613c7957600080fd5b604051608081018181106001600160401b0382111715613c9b57613c9b613963565b6040528235613ca9816138c8565b808252506020830135602082015260408301356040820152606083013560608201528091505092915050565b60005b83811015613cf0578181015183820152602001613cd8565b50506000910152565b60008151808452613d11816020860160208601613cd5565b601f01601f19169290920160200192915050565b6020815260006127d86020830184613cf9565b6020808252825182820181905260009190848201906040850190845b81811015613d795783516001600160a01b031683529284019291840191600101613d54565b50909695505050505050565b600080600060608486031215613d9a57600080fd5b8335613da5816137b2565b92506020840135613db5816137c5565b929592945050506040919091013590565b60208082526014908201527331b0b63632b9103737ba103a34329037bbb732b960611b604082015260600190565b6020808252600b908201526a3bb937b7339031b430b4b760a91b604082015260600190565b600060208284031215613e2b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115610e6a57610e6a613e32565b600181815b80851115613e9c578160001904821115613e8257613e82613e32565b80851615613e8f57918102915b93841c9390800290613e66565b509250929050565b600082613eb357506001610e6a565b81613ec057506000610e6a565b8160018114613ed65760028114613ee057613efc565b6001915050610e6a565b60ff841115613ef157613ef1613e32565b50506001821b610e6a565b5060208310610133831016604e8410600b8410161715613f1f575081810a610e6a565b613f298383613e61565b8060001904821115613f3d57613f3d613e32565b029392505050565b60006127d860ff841683613ea4565b600082613f7157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e6a57610e6a613e32565b81810381811115610e6a57610e6a613e32565b600060208284031215613fb257600080fd5b81516127d8816137c5565b80820180821115610e6a57610e6a613e32565b60208082526021908201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6040820152601d60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6020808252601290820152711d1bdad95b881b9bdd081858d8d95c1d195960721b604082015260600190565b60008184825b8581101561409357813561406c816137c5565b6001600160a01b031683526020828101359084015260409283019290910190600101614059565b509095945050505050565b634e487b7160e01b600052603160045260246000fd5b600082516140c6818460208701613cd5565b9190910192915050565b80516140db816138c8565b919050565b6000602082840312156140f257600080fd5b81516127d8816138c8565b60018060a01b038716815285602082015261ffff8516604082015283606082015263ffffffff8316608082015260c060a0820152600061414060c0830184613cf9565b98975050505050505050565b80516001600160401b03811681146140db57600080fd5b60006020828403121561417557600080fd5b6127d88261414c565b80516140db81613813565b80516140db816137b2565b600082601f8301126141a557600080fd5b81516141b3613a8582613a17565b8181528460208386010111156141c857600080fd5b61280d826020830160208701613cd5565b600082601f8301126141ea57600080fd5b815160206001600160401b0382111561420557614205613963565b614213818360051b016139e7565b82815260079290921b8401810191818101908684111561423257600080fd5b8286015b84811015614297576080818903121561424f5760008081fd5b614257613979565b815181528482015185820152604080830151614272816138c8565b90820152606082810151614285816138c8565b90820152835291830191608001614236565b509695505050505050565b6000602082840312156142b457600080fd5b81516001600160401b03808211156142cb57600080fd5b9083019061016082860312156142e057600080fd5b6142e86139a1565b6142f1836140d0565b81526142ff6020840161417e565b60208201526143106040840161417e565b604082015261432160608401614189565b60608201526080830151608082015261433c60a0840161414c565b60a082015261434d60c084016140d0565b60c082015260e08301518281111561436457600080fd5b61437087828601614194565b60e08301525061010061438481850161417e565b90820152610120838101518381111561439c57600080fd5b6143a8888287016141d9565b91830191909152506101409283015192810192909252509392505050565b6000602082840312156143d857600080fd5b81516001600160401b038111156143ee57600080fd5b61280d84828501614194565b60006020828403121561440c57600080fd5b81516001600160401b038082111561442357600080fd5b90830190610100828603121561443857600080fd5b6144406139c4565b614449836140d0565b8152602083015160208201526040830151604082015261446b60608401614189565b60608201526080830151608082015261448660a08401614189565b60a082015260c083015160c082015260e0830151828111156144a757600080fd5b6144b387828601614194565b60e08301525095945050505050565b6000602082840312156144d457600080fd5b81516127d88161388c56fea26469706673582212204380a2c16f3d3a94e16ceec8dd417389a415486e9286774f1ba51d1e17ea374064736f6c63430008110033'; type TokenBridgeRelayerConstructorParams = | [signer?: Signer] | ConstructorParameters; const isSuperArgs = ( - xs: TokenBridgeRelayerConstructorParams + xs: TokenBridgeRelayerConstructorParams, ): xs is ConstructorParameters => xs.length > 1; export class TokenBridgeRelayer__factory extends ContractFactory { @@ -1087,7 +1087,7 @@ export class TokenBridgeRelayer__factory extends ContractFactory { feeRecipient_: AddressLike, ownerAssistant_: AddressLike, unwrapWeth_: boolean, - overrides?: NonPayableOverrides & { from?: string } + overrides?: NonPayableOverrides & { from?: string }, ): Promise { return super.getDeployTransaction( tokenBridge_, @@ -1095,7 +1095,7 @@ export class TokenBridgeRelayer__factory extends ContractFactory { feeRecipient_, ownerAssistant_, unwrapWeth_, - overrides || {} + overrides || {}, ); } override deploy( @@ -1104,7 +1104,7 @@ export class TokenBridgeRelayer__factory extends ContractFactory { feeRecipient_: AddressLike, ownerAssistant_: AddressLike, unwrapWeth_: boolean, - overrides?: NonPayableOverrides & { from?: string } + overrides?: NonPayableOverrides & { from?: string }, ) { return super.deploy( tokenBridge_, @@ -1112,7 +1112,7 @@ export class TokenBridgeRelayer__factory extends ContractFactory { feeRecipient_, ownerAssistant_, unwrapWeth_, - overrides || {} + overrides || {}, ) as Promise< TokenBridgeRelayer & { deploymentTransaction(): ContractTransactionResponse; @@ -1130,7 +1130,7 @@ export class TokenBridgeRelayer__factory extends ContractFactory { } static connect( address: string, - runner?: ContractRunner | null + runner?: ContractRunner | null, ): TokenBridgeRelayer { return new Contract(address, _abi, runner) as unknown as TokenBridgeRelayer; } diff --git a/platforms/evm/src/index.ts b/platforms/evm/src/index.ts index 448f90cd6..435d53bcd 100644 --- a/platforms/evm/src/index.ts +++ b/platforms/evm/src/index.ts @@ -1,6 +1,6 @@ export * from './address'; export * from './contracts'; -export * from './tokenBridge'; +export * from './protocols/tokenBridge'; export * from './unsignedTransaction'; export * from './platform'; export * from './chain'; diff --git a/platforms/evm/src/platform.ts b/platforms/evm/src/platform.ts index 2e0ccb289..a446dfc17 100644 --- a/platforms/evm/src/platform.ts +++ b/platforms/evm/src/platform.ts @@ -9,10 +9,9 @@ import { TokenId, TokenTransferTransaction, TxHash, + Platform, + ChainsConfig, } from '@wormhole-foundation/connect-sdk'; -import { EvmContracts } from './contracts'; -import { EvmTokenBridge } from './tokenBridge'; -import { ethers } from 'ethers'; import { AutomaticTokenBridge, WormholeCircleRelayer, @@ -20,13 +19,17 @@ import { UniversalAddress, CircleBridge, } from '@wormhole-foundation/sdk-definitions'; -import { Platform, ChainsConfig } from '@wormhole-foundation/connect-sdk'; + +import { ethers } from 'ethers'; +import { EvmContracts } from './contracts'; import { EvmChain } from './chain'; import { EvmAddress } from './address'; import { BridgeStructs } from './ethers-contracts/Bridge'; -import { EvmAutomaticTokenBridge } from './automaticTokenBridge'; -import { EvmCircleRelayer } from './circleRelayer'; -import { EvmCircleBridge } from './circleBridge'; + +import { EvmTokenBridge } from './protocols/tokenBridge'; +import { EvmAutomaticTokenBridge } from './protocols/automaticTokenBridge'; +import { EvmCircleRelayer } from './protocols/circleRelayer'; +import { EvmCircleBridge } from './protocols/circleBridge'; /** * @category EVM diff --git a/platforms/evm/src/automaticTokenBridge.ts b/platforms/evm/src/protocols/automaticTokenBridge.ts similarity index 91% rename from platforms/evm/src/automaticTokenBridge.ts rename to platforms/evm/src/protocols/automaticTokenBridge.ts index a7befbf8c..be087c602 100644 --- a/platforms/evm/src/automaticTokenBridge.ts +++ b/platforms/evm/src/protocols/automaticTokenBridge.ts @@ -1,7 +1,5 @@ import { chainToChainId, - Network, - PlatformToChains, evmChainIdToNetworkChainPair, evmNetworkChainToEvmChainId, } from '@wormhole-foundation/sdk-base'; @@ -13,12 +11,18 @@ import { serialize, } from '@wormhole-foundation/sdk-definitions'; -import { addChainId, addFrom, toEvmAddrString } from './types'; -import { EvmUnsignedTransaction } from './unsignedTransaction'; -import { TokenBridgeRelayer } from './ethers-contracts'; import { Provider, TransactionRequest } from 'ethers'; -import { EvmContracts } from './contracts'; -import { EvmChainName, UniversalOrEvm } from './types'; + +import { + EvmChainName, + UniversalOrEvm, + addChainId, + addFrom, + toEvmAddrString, +} from '../types'; +import { EvmUnsignedTransaction } from '../unsignedTransaction'; +import { TokenBridgeRelayer } from '../ethers-contracts'; +import { EvmContracts } from '../contracts'; export class EvmAutomaticTokenBridge implements AutomaticTokenBridge<'Evm'> { readonly contracts: EvmContracts; diff --git a/platforms/evm/src/circleBridge.ts b/platforms/evm/src/protocols/circleBridge.ts similarity index 91% rename from platforms/evm/src/circleBridge.ts rename to platforms/evm/src/protocols/circleBridge.ts index 5ae06abd0..8d47bb2de 100644 --- a/platforms/evm/src/circleBridge.ts +++ b/platforms/evm/src/protocols/circleBridge.ts @@ -11,12 +11,16 @@ import { UnsignedTransaction, } from '@wormhole-foundation/sdk-definitions'; -import { EvmChainName, UniversalOrEvm } from './types'; -import { addChainId, toEvmAddrString } from './types'; -import { EvmUnsignedTransaction } from './unsignedTransaction'; -import { CircleRelayer } from './ethers-contracts'; +import { + addChainId, + toEvmAddrString, + EvmChainName, + UniversalOrEvm, +} from '../types'; +import { EvmUnsignedTransaction } from '../unsignedTransaction'; +import { CircleRelayer } from '../ethers-contracts'; import { Provider, TransactionRequest } from 'ethers'; -import { EvmContracts } from './contracts'; +import { EvmContracts } from '../contracts'; import { TokenId } from '@wormhole-foundation/connect-sdk'; //https://github.com/circlefin/evm-cctp-contracts diff --git a/platforms/evm/src/circleRelayer.ts b/platforms/evm/src/protocols/circleRelayer.ts similarity index 94% rename from platforms/evm/src/circleRelayer.ts rename to platforms/evm/src/protocols/circleRelayer.ts index ab5e7f80f..292fdb322 100644 --- a/platforms/evm/src/circleRelayer.ts +++ b/platforms/evm/src/protocols/circleRelayer.ts @@ -14,11 +14,11 @@ import { addChainId, addFrom, toEvmAddrString, -} from './types'; -import { EvmUnsignedTransaction } from './unsignedTransaction'; -import { CircleRelayer } from './ethers-contracts'; +} from '../types'; +import { EvmUnsignedTransaction } from '../unsignedTransaction'; +import { CircleRelayer } from '../ethers-contracts'; import { Provider, TransactionRequest } from 'ethers'; -import { EvmContracts } from './contracts'; +import { EvmContracts } from '../contracts'; import { TokenId } from '@wormhole-foundation/connect-sdk'; export class EvmCircleRelayer implements WormholeCircleRelayer<'Evm'> { diff --git a/platforms/evm/src/tokenBridge.ts b/platforms/evm/src/protocols/tokenBridge.ts similarity index 97% rename from platforms/evm/src/tokenBridge.ts rename to platforms/evm/src/protocols/tokenBridge.ts index 0ceea1beb..77b496424 100644 --- a/platforms/evm/src/tokenBridge.ts +++ b/platforms/evm/src/protocols/tokenBridge.ts @@ -15,14 +15,14 @@ import { keccak256, } from '@wormhole-foundation/sdk-definitions'; -import { EvmAddress } from './address'; -import { EvmUnsignedTransaction } from './unsignedTransaction'; +import { EvmAddress } from '../address'; +import { EvmUnsignedTransaction } from '../unsignedTransaction'; import { TokenBridgeContract, TokenImplementation__factory as TokenContractFactory, -} from './ethers-contracts'; +} from '../ethers-contracts'; import { Provider, TransactionRequest } from 'ethers'; -import { EvmContracts } from './contracts'; +import { EvmContracts } from '../contracts'; import { EvmChainName, UniversalOrEvm, @@ -31,7 +31,7 @@ import { toEvmAddrString, unusedArbiterFee, unusedNonce, -} from './types'; +} from '../types'; //a word on casts here: // Typescript only properly resolves types when EvmTokenBridge is fully instantiated. Until such a