UNPKG

@ar.io/sdk

Version:

[![codecov](https://codecov.io/gh/ar-io/ar-io-sdk/graph/badge.svg?token=7dXKcT7dJy)](https://codecov.io/gh/ar-io/ar-io-sdk)

64 lines (63 loc) 2.94 kB
import { AxiosInstance, RawAxiosRequestHeaders } from 'axios'; import { AoMessageResult, TransactionId, TurboArNSSigner } from '../types/common.js'; import { AoTokenCostParams } from '../types/io.js'; import { mARIOToken } from '../types/token.js'; import { ILogger } from './logger.js'; export interface TurboUnauthenticatedConfig { paymentUrl?: string; logger?: ILogger; axios?: AxiosInstance; } export interface TurboAuthenticatedConfig extends TurboUnauthenticatedConfig { signer: TurboArNSSigner; } export declare function signedRequestHeadersFromSigner({ signer, nonce, }: { signer: TurboArNSSigner; nonce?: string; }): Promise<RawAxiosRequestHeaders>; export type ArNSPurchaseReceipt = AoTokenCostParams & { wincQty: string; mARIOQty: string; usdArRate: number; createdDate: string; }; export interface ArNSPaymentProvider { /** Returns the cost of the action in the Payment Provider's native currency (winc for Turbo) */ getPrice(params: AoTokenCostParams): Promise<number>; getArNSPriceDetails(params: AoTokenCostParams): Promise<{ winc: string; mARIO: mARIOToken; }>; } export interface TurboInitiateArNSPurchaseParams extends AoTokenCostParams { processId?: TransactionId; paidBy?: string | string[]; referrer?: string; } export interface ArNSAuthenticatedPaymentProvider extends ArNSPaymentProvider { initiateArNSPurchase(params: TurboInitiateArNSPurchaseParams): Promise<AoMessageResult<ArNSPurchaseReceipt>>; } export declare class TurboArNSPaymentFactory { static init(): TurboArNSPaymentProviderUnauthenticated; static init({ paymentUrl, axios, logger, }: TurboUnauthenticatedConfig & { signer?: TurboArNSSigner; }): TurboArNSPaymentProviderUnauthenticated; static init({ signer, paymentUrl, axios, logger, }: TurboAuthenticatedConfig): TurboArNSPaymentProviderAuthenticated; } export declare class TurboArNSPaymentProviderUnauthenticated implements ArNSPaymentProvider { protected readonly paymentUrl: string; protected readonly axios: AxiosInstance; protected readonly logger: ILogger; constructor({ paymentUrl, axios, logger, }: TurboUnauthenticatedConfig); getArNSPriceDetails({ intent, name, quantity, type, years, }: AoTokenCostParams): Promise<{ winc: string; mARIO: mARIOToken; }>; getPrice(params: AoTokenCostParams): Promise<number>; } export declare class TurboArNSPaymentProviderAuthenticated extends TurboArNSPaymentProviderUnauthenticated implements ArNSAuthenticatedPaymentProvider { private readonly signer; constructor({ signer, ...restConfig }: TurboAuthenticatedConfig); initiateArNSPurchase({ intent, name, quantity, type, processId, years, paidBy, referrer, }: TurboInitiateArNSPurchaseParams): Promise<AoMessageResult<ArNSPurchaseReceipt>>; } export declare function isTurboArNSSigner(signer: unknown): signer is TurboArNSSigner;