UNPKG

@velora-dex/sdk

Version:
35 lines 3.18 kB
import type { AnyFunction, ConstructBaseInput, ConstructFetchInput, ConstructProviderFetchInput } from '../types'; import type { Merge, UnionToIntersection } from 'ts-essentials'; import type { ApproveTokenFunctions } from '../methods/swap/approve'; import type { CancelOTCOrderFunctions } from '../methods/otcOrders/cancelOrder'; import type { ApproveTokenForOTCOrderFunctions } from '../methods/otcOrders/approveForOrder'; import type { FillOTCOrderFunctions } from '../methods/otcOrders/fillOrderDirectly'; import type { ApproveTokenForDeltaFunctions } from '../methods/delta/approveForDelta'; import type { PreSignDeltaOrderFunctions } from '../methods/delta/preSignDeltaOrder'; import type { PreSignExternalDeltaOrderFunctions } from '../methods/delta/preSignExternalDeltaOrder'; import type { DeltaTokenModuleFunctions } from '../methods/delta/deltaTokenModule'; import type { PreSignTWAPDeltaOrderFunctions } from '../methods/delta/preSignTWAPDeltaOrder'; export type SDKConfig<TxResponse = any> = ConstructProviderFetchInput<TxResponse, 'staticCall' | 'transactCall' | 'signTypedDataCall'> & ConstructFetchInput; type SDKFunction<T extends ConstructBaseInput> = (config: T) => Record<string, AnyFunction | Record<string, AnyFunction>>; type IntersectionOfReturns<Funcs extends AnyFunction[]> = UnionToIntersection<ReturnType<Funcs[number]>>; type PartialSDKResult<Config extends ConstructBaseInput, Funcs extends [SDKFunction<Config>, ...SDKFunction<Config>[]]> = InferWithTxResponse<Config, Funcs>; type InferWithTxResponse<Config extends ConstructBaseInput, Funcs extends [SDKFunction<Config>, ...SDKFunction<Config>[]]> = Config extends SDKConfig<infer TxResponse> ? IntersectionOfReturns<Funcs> extends Record<string, any> ? MergeExtendableRecursively<IntersectionOfReturns<Funcs>, [ ApproveTokenFunctions<TxResponse>, CancelOTCOrderFunctions<TxResponse>, FillOTCOrderFunctions<TxResponse>, ApproveTokenForOTCOrderFunctions<TxResponse>, ApproveTokenForDeltaFunctions<TxResponse>, PreSignDeltaOrderFunctions<TxResponse>, PreSignExternalDeltaOrderFunctions<TxResponse>, DeltaTokenModuleFunctions<TxResponse>, PreSignTWAPDeltaOrderFunctions<TxResponse> ]> : IntersectionOfReturns<Funcs> : IntersectionOfReturns<Funcs>; type MergeExtendableOnce<Accum extends Record<string, any>, Replacement extends Record<string, any>> = Accum extends Record<keyof Replacement, any> ? Merge<Accum, Replacement> : Accum; type MergeExtendableRecursively<Accum extends Record<string, any>, Replacements extends Record<string, any>[]> = Replacements extends [ head: infer Head extends Record<string, any>, ...tail: infer Tail ] ? Tail extends Record<string, any>[] ? MergeExtendableRecursively<MergeExtendableOnce<Accum, Head>, Tail> : MergeExtendableOnce<Accum, Head> : Accum; /** @description construct composable SDK with methods you choose yourself */ export declare const constructPartialSDK: <Config extends ConstructBaseInput, Funcs extends [SDKFunction<Config>, ...SDKFunction<Config>[]]>(config: Config, ...funcs: Funcs) => PartialSDKResult<Config, Funcs> & Required<ConstructBaseInput>; export {}; //# sourceMappingURL=partial.d.ts.map