UNPKG

@quantara/sdk

Version:

JavaScript/TypeScript SDK for interacting with Quantara Protocol on Neura Testnet

66 lines (65 loc) 1.89 kB
import { AbiId } from "../abis"; import type { QuantaraSdk } from "index"; export declare const MAX_TIMEOUT = 20000; export type MulticallProviderUrls = { primary: string; secondary: string; }; export declare class Multicall { sdk: QuantaraSdk; static instances: { [chainId: number]: Multicall | undefined; }; static getInstance(sdk: QuantaraSdk): Promise<Multicall>; constructor(sdk: QuantaraSdk); get chainId(): 267; call(request: MulticallRequestConfig<any>, maxTimeout: number): Promise<MulticallResult<any>>; } export type SkipKey = null | undefined | false; export type ContractCallConfig = { methodName: string; params: any[]; }; export type ContractCallsConfig<T extends { calls: any; }> = { contractAddress: string; abiId: AbiId; calls: { [callKey in keyof T["calls"]]: ContractCallConfig | SkipKey; }; }; export type MulticallRequestConfig<T extends { [key: string]: any; }> = { [contractKey in keyof T]: ContractCallsConfig<T[contractKey]>; }; export type ContractCallResult = { returnValues: { [key: string | number]: any; }; contractKey: string; callKey: string; success?: boolean; error?: string; }; export type MulticallErrors<T extends MulticallRequestConfig<any>> = { [contractKey in keyof T]: { [callKey in keyof T[contractKey]["calls"]]: { message: string; shortMessage: string; functionName: string; contractAddress: string; }; }; }; export type ContractCallsResult<T extends ContractCallsConfig<any>> = { [callKey in keyof T["calls"]]: ContractCallResult; }; export type MulticallResult<T extends MulticallRequestConfig<any>> = { success: boolean; errors: MulticallErrors<T>; data: { [contractKey in keyof T]: ContractCallsResult<T[contractKey]>; }; };