@arcana/ca-sdk
Version:
Arcana Network's chain abstraction SDK for unified balance in Web3 apps
41 lines (40 loc) • 1.63 kB
TypeScript
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;