UNPKG

@arcana/ca-sdk

Version:

Arcana Network's chain abstraction SDK for unified balance in Web3 apps

41 lines (40 loc) 1.63 kB
import { Universe } from "@arcana/ca-common"; import Decimal from "decimal.js"; import Long from "long"; import { ChainList } from "../../chains"; import { Intent, IRequestHandler, onAllowanceHookSource, RequestHandlerInput, SimulateReturnType, Step, StepInfo, TokenInfo, UserAssets } from "../../typings"; import { FeeStore } from "../../utils"; declare abstract class BaseRequest implements IRequestHandler { readonly input: RequestHandlerInput; abstract destinationUniverse: Universe; abstract isNative: boolean; protected chainList: ChainList; protected steps: Step[]; constructor(input: RequestHandlerInput); abstract buildIntent(): Promise<{ intent: Intent; token: TokenInfo; } | undefined>; abstract process(): Promise<unknown>; processIntent(intent: Intent): Promise<void>; processRFF(intent: Intent): Promise<{ id: Long; requestHash: `0x${string}`; waitForDoubleCheckTx: () => Promise<void>; }>; abstract simulateTx(): Promise<null | SimulateReturnType>; abstract waitForFill(requestHash: `0x${string}`, intentID: Long, waitForDoubleCheckTx: () => Promise<void>): Promise<void>; protected createExpectedSteps(intent: Intent, unallowedSources?: onAllowanceHookSource[]): void; protected createIntent(input: { amount: Decimal; assets: UserAssets; feeStore: FeeStore; gas: Decimal; gasInToken: Decimal; token: TokenInfo; }): Intent; protected markStepDone: (step: StepInfo, data?: { [k: string]: unknown; }) => void; } export default BaseRequest;