import type { Web3Provider } from '@ethersproject/providers'; import { PublicClient } from 'viem'; import { GMX_CHAIN_ID } from '../constants'; import { MulticallRequestConfig, MulticallResult } from '../types'; export declare const MAX_TIMEOUT = 2000; export declare function sleep(ms: number): Promise; export declare function executeMulticall(chainId: GMX_CHAIN_ID, library: Web3Provider | undefined, request: MulticallRequestConfig): Promise | undefined>; export declare class Multicall { chainId: GMX_CHAIN_ID; rpcUrl: string; static instances: { [chainId: number]: Multicall | undefined; }; static getInstance(chainId: GMX_CHAIN_ID): Promise; static getViemClient(chainId: GMX_CHAIN_ID, rpcUrl: string): { chain: ({ readonly id: 421613; readonly name: "Arbitrum Goerli"; readonly network: "arbitrum-goerli"; readonly nativeCurrency: { readonly name: "Arbitrum Goerli Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-goerli.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-goerli.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-goerli.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-goerli.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 88114; }; }; readonly testnet: true; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }); key: string; name: string; pollingInterval: number; request: import("viem").EIP1193RequestFn; transport: import("viem").TransportConfig<"http", import("viem").EIP1193RequestFn> & { url?: string | undefined; }; type: string; uid: string; batch?: { multicall?: boolean | import("viem/dist/types/clients/createPublicClient").MulticallBatchOptions | undefined; } | undefined; call: (parameters: import("viem").CallParameters<({ readonly id: 421613; readonly name: "Arbitrum Goerli"; readonly network: "arbitrum-goerli"; readonly nativeCurrency: { readonly name: "Arbitrum Goerli Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-goerli.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-goerli.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-goerli.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-goerli.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 88114; }; }; readonly testnet: true; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; })>) => Promise; createBlockFilter: () => Promise<{ id: `0x${string}`; request: import("viem").EIP1193RequestFn; type: "block"; }>; createContractEventFilter: | undefined, TStrict extends boolean | undefined = undefined>(args: import("viem").CreateContractEventFilterParameters) => Promise>; createEventFilter: , _Args extends import("viem/dist/types/types/contract").MaybeExtractEventArgsFromAbi<_Abi, _EventName> | undefined = undefined>(args?: import("viem").CreateEventFilterParameters | undefined) => Promise extends infer T ? { [K in keyof T]: import("viem/dist/types/types/filter").Filter<"event", _Abi, _EventName, _Args, TStrict_1>[K]; } : never>; createPendingTransactionFilter: () => Promise<{ id: `0x${string}`; request: import("viem").EIP1193RequestFn; type: "transaction"; }>; estimateContractGas: (args: import("viem").EstimateContractGasParameters) => Promise; estimateGas: (args: import("viem").EstimateGasParameters<({ readonly id: 421613; readonly name: "Arbitrum Goerli"; readonly network: "arbitrum-goerli"; readonly nativeCurrency: { readonly name: "Arbitrum Goerli Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-goerli.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-goerli.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-goerli.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-goerli.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 88114; }; }; readonly testnet: true; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; })>) => Promise; getBalance: (args: import("viem").GetBalanceParameters) => Promise; getBlock: (args?: import("viem").GetBlockParameters | undefined) => Promise; getBlockNumber: (args?: import("viem").GetBlockNumberParameters | undefined) => Promise; getBlockTransactionCount: (args?: import("viem").GetBlockTransactionCountParameters | undefined) => Promise; getBytecode: (args: import("viem").GetBytecodeParameters) => Promise; getChainId: () => Promise; getEnsAddress: (args: { blockNumber?: bigint | undefined; blockTag?: import("viem").BlockTag | undefined; name: string; universalResolverAddress?: `0x${string}` | undefined; }) => Promise; getEnsAvatar: (args: { blockNumber?: bigint | undefined; name: string; blockTag?: import("viem").BlockTag | undefined; universalResolverAddress?: `0x${string}` | undefined; gatewayUrls?: import("viem").AssetGatewayUrls | undefined; }) => Promise; getEnsName: (args: { blockNumber?: bigint | undefined; blockTag?: import("viem").BlockTag | undefined; address: `0x${string}`; universalResolverAddress?: `0x${string}` | undefined; }) => Promise; getEnsResolver: (args: { blockNumber?: bigint | undefined; blockTag?: import("viem").BlockTag | undefined; name: string; universalResolverAddress?: `0x${string}` | undefined; }) => Promise<`0x${string}`>; getEnsText: (args: { blockNumber?: bigint | undefined; blockTag?: import("viem").BlockTag | undefined; name: string; key: string; universalResolverAddress?: `0x${string}` | undefined; }) => Promise; getFeeHistory: (args: import("viem").GetFeeHistoryParameters) => Promise; getFilterChanges: (args: import("viem").GetFilterChangesParameters) => Promise>; getFilterLogs: (args: import("viem").GetFilterLogsParameters) => Promise>; getGasPrice: () => Promise; getLogs: (args?: import("viem").GetLogsParameters | undefined) => Promise>; getStorageAt: (args: import("viem").GetStorageAtParameters) => Promise; getTransaction: (args: import("viem").GetTransactionParameters) => Promise; getTransactionConfirmations: (args: import("viem").GetTransactionConfirmationsParameters<({ readonly id: 421613; readonly name: "Arbitrum Goerli"; readonly network: "arbitrum-goerli"; readonly nativeCurrency: { readonly name: "Arbitrum Goerli Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-goerli.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-goerli.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-goerli.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-goerli.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 88114; }; }; readonly testnet: true; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; })>) => Promise; getTransactionCount: (args: import("viem").GetTransactionCountParameters) => Promise; getTransactionReceipt: (args: import("viem").GetTransactionReceiptParameters) => Promise; multicall: (args: import("viem").MulticallParameters) => Promise>; readContract: (args: import("viem").ReadContractParameters) => Promise>; simulateContract: (args: import("viem").SimulateContractParameters | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }), TChainOverride>) => Promise | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }), TChainOverride>>; verifyMessage: (args: import("viem/dist/types/actions/public/verifyMessage").VerifyMessageParameters) => Promise; verifyTypedData: (args: import("viem/dist/types/actions/public/verifyTypedData").VerifyTypedDataParameters) => Promise; uninstallFilter: (args: import("viem").UninstallFilterParameters) => Promise; waitForTransactionReceipt: (args: import("viem").WaitForTransactionReceiptParameters<({ readonly id: 421613; readonly name: "Arbitrum Goerli"; readonly network: "arbitrum-goerli"; readonly nativeCurrency: { readonly name: "Arbitrum Goerli Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-goerli.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-goerli.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-goerli.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-goerli.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://goerli-rollup.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://goerli.arbiscan.io/"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 88114; }; }; readonly testnet: true; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; })>) => Promise; watchBlockNumber: (args: import("viem").WatchBlockNumberParameters) => import("viem").WatchBlockNumberReturnType; watchBlocks: (args: import("viem").WatchBlocksParameters | undefined; }) | ({ readonly id: 42161; readonly name: "Arbitrum One"; readonly network: "arbitrum"; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly rpcUrls: { readonly alchemy: { readonly http: readonly ["https://arb-mainnet.g.alchemy.com/v2"]; readonly webSocket: readonly ["wss://arb-mainnet.g.alchemy.com/v2"]; }; readonly infura: { readonly http: readonly ["https://arbitrum-mainnet.infura.io/v3"]; readonly webSocket: readonly ["wss://arbitrum-mainnet.infura.io/ws/v3"]; }; readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; readonly public: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; readonly blockExplorers: { readonly etherscan: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; }; }; readonly contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; } & { formatters: import("viem").Formatters | undefined; serializers: import("viem").Serializers | undefined; })>) => import("viem").WatchBlocksReturnType; watchContractEvent: (args: import("viem").WatchContractEventParameters) => import("viem").WatchContractEventReturnType; watchEvent: (args: import("viem").WatchEventParameters) => import("viem").WatchEventReturnType; watchPendingTransactions: (args: import("viem").WatchPendingTransactionsParameters) => import("viem").WatchPendingTransactionsReturnType; }; viemClient: PublicClient; constructor(chainId: GMX_CHAIN_ID, rpcUrl: string); call(request: MulticallRequestConfig, maxTimeout: number): Promise>; }