@ar.io/sdk
Version:
[](https://codecov.io/gh/ar-io/ar-io-sdk)
64 lines (63 loc) • 2.94 kB
TypeScript
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;