@ar.io/sdk
Version:
[](https://codecov.io/gh/ar-io/ar-io-sdk)
244 lines (243 loc) • 13.7 kB
TypeScript
import Arweave from 'arweave';
import { ARIOWithFaucet, AoARIORead, AoARIOWrite, AoAllDelegates, AoAllGatewayVaults, AoArNSNameData, AoArNSNameDataWithName, AoArNSPurchaseParams, AoArNSReservedNameData, AoArNSReservedNameDataWithName, AoBalanceWithAddress, AoBuyRecordParams, AoCreateVaultParams, AoDelegation, AoEligibleDistribution, AoEpochData, AoEpochDistributed, AoEpochDistributionData, AoEpochDistributionTotalsData, AoEpochObservationData, AoEpochSettings, AoExtendLeaseParams, AoExtendVaultParams, AoGateway, AoGatewayDelegateWithAddress, AoGatewayRegistrySettings, AoGatewayVault, AoGatewayWithAddress, AoGetCostDetailsParams, AoIncreaseUndernameLimitParams, AoIncreaseVaultParams, AoJoinNetworkParams, AoMessageResult, AoPaginatedAddressParams, AoPrimaryName, AoPrimaryNameRequest, AoRedelegationFeeInfo, AoRegistrationFees, AoReturnedName, AoRevokeVaultParams, AoTokenSupplyData, AoUpdateGatewaySettingsParams, AoVaultData, AoVaultedTransferParams, AoWalletVault, AoWeightedObserver, ArNSNameResolutionData, ArNSNameResolver, CostDetailsResult, DemandFactorSettings, EpochInput, OptionalArweave, OptionalPaymentUrl, PaginationParams, PaginationResult, ProcessConfiguration, TransactionId, WalletAddress, WithSigner, WriteOptions, mARIOToken } from '../types/index.js';
import { AOProcess } from './contracts/ao-process.js';
import { TurboArNSPaymentProviderAuthenticated, TurboArNSPaymentProviderUnauthenticated } from './turbo.js';
type ARIOConfigNoSigner = OptionalPaymentUrl<OptionalArweave<ProcessConfiguration>>;
type ARIOConfigWithSigner = WithSigner<OptionalPaymentUrl<OptionalArweave<ProcessConfiguration>>>;
export declare class ARIO {
static init(): AoARIORead;
static init(config: ARIOConfigWithSigner): AoARIOWrite;
static init(config: ARIOConfigNoSigner): AoARIORead;
static mainnet(): AoARIORead;
static mainnet(config: ARIOConfigNoSigner): AoARIORead;
static mainnet(config: ARIOConfigWithSigner): AoARIOWrite;
static testnet(): ARIOWithFaucet<AoARIORead>;
static testnet(config: ARIOConfigNoSigner & {
faucetUrl?: string;
}): ARIOWithFaucet<AoARIORead>;
static testnet(config: ARIOConfigWithSigner & {
faucetUrl?: string;
}): ARIOWithFaucet<AoARIOWrite>;
}
export declare class ARIOReadable implements AoARIORead, ArNSNameResolver {
readonly process: AOProcess;
protected epochSettings: AoEpochSettings | undefined;
protected arweave: Arweave;
protected paymentProvider: TurboArNSPaymentProviderUnauthenticated;
constructor(config?: ARIOConfigNoSigner);
getInfo(): Promise<{
Name: string;
Ticker: string;
Logo: string;
Denomination: number;
Handlers: string[];
LastCreatedEpochIndex: number;
LastDistributedEpochIndex: number;
}>;
getTokenSupply(): Promise<AoTokenSupplyData>;
private computeEpochIndexForTimestamp;
private computeCurrentEpochIndex;
private computeEpochIndex;
getEpochSettings(): Promise<AoEpochSettings>;
getEpoch(): Promise<AoEpochData<AoEpochDistributionTotalsData>>;
getEpoch(epoch: EpochInput): Promise<AoEpochData<AoEpochDistributed>>;
getArNSRecord({ name }: {
name: string;
}): Promise<AoArNSNameData>;
getArNSRecords(params?: PaginationParams<AoArNSNameDataWithName>): Promise<PaginationResult<AoArNSNameDataWithName>>;
getArNSReservedNames(params?: PaginationParams<AoArNSReservedNameDataWithName>): Promise<PaginationResult<AoArNSReservedNameDataWithName>>;
getArNSReservedName({ name, }: {
name: string;
}): Promise<AoArNSReservedNameData>;
getBalance({ address }: {
address: WalletAddress;
}): Promise<number>;
getBalances(params?: PaginationParams<AoBalanceWithAddress>): Promise<PaginationResult<AoBalanceWithAddress>>;
getVault({ address, vaultId, }: {
address: WalletAddress;
vaultId: string;
}): Promise<AoVaultData>;
getVaults(params?: PaginationParams<AoWalletVault>): Promise<PaginationResult<AoWalletVault>>;
getGateway({ address, }: {
address: WalletAddress;
}): Promise<AoGateway>;
getGatewayDelegates({ address, ...pageParams }: {
[x: string]: any;
address: any;
}): Promise<PaginationResult<AoGatewayDelegateWithAddress>>;
getGatewayDelegateAllowList({ address, ...pageParams }: AoPaginatedAddressParams): Promise<PaginationResult<WalletAddress>>;
getGateways(pageParams?: PaginationParams<AoGatewayWithAddress>): Promise<PaginationResult<AoGatewayWithAddress>>;
getCurrentEpoch(): Promise<AoEpochData<AoEpochDistributionTotalsData>>;
getPrescribedObservers(epoch?: EpochInput): Promise<AoWeightedObserver[]>;
getPrescribedNames(epoch?: EpochInput): Promise<string[]>;
getObservations(epoch?: EpochInput): Promise<AoEpochObservationData>;
getDistributions(epoch?: EpochInput): Promise<AoEpochDistributionData>;
getEligibleEpochRewards(epoch?: EpochInput, params?: PaginationParams<AoEligibleDistribution>): Promise<PaginationResult<AoEligibleDistribution>>;
getTokenCost(params: {
intent: 'Buy-Record' | 'Buy-Name';
type: 'permabuy' | 'lease';
years: number;
name: string;
}): Promise<number>;
getTokenCost(params: {
intent: 'Extend-Lease';
years: number;
name: string;
}): Promise<number>;
getTokenCost(params: {
intent: 'Increase-Undername-Limit';
quantity: number;
name: string;
}): Promise<number>;
getTokenCost(params: {
intent: 'Upgrade-Name';
name: string;
}): Promise<number>;
getTokenCost(params: {
intent: 'Primary-Name-Request';
name: string;
}): Promise<number>;
getCostDetails({ intent, type, years, name, quantity, fromAddress, fundFrom, }: AoGetCostDetailsParams): Promise<CostDetailsResult>;
getRegistrationFees(): Promise<AoRegistrationFees>;
getDemandFactor(): Promise<number>;
getDemandFactorSettings(): Promise<DemandFactorSettings>;
getArNSReturnedNames(params?: PaginationParams<AoReturnedName>): Promise<PaginationResult<AoReturnedName>>;
getArNSReturnedName({ name, }: {
name: string;
}): Promise<AoReturnedName>;
getDelegations(params: PaginationParams<AoDelegation> & {
address: WalletAddress;
}): Promise<PaginationResult<AoDelegation>>;
getAllowedDelegates(params: AoPaginatedAddressParams): Promise<PaginationResult<WalletAddress>>;
getGatewayVaults(params: PaginationParams<AoGatewayVault> & {
address: WalletAddress;
}): Promise<PaginationResult<AoGatewayVault>>;
getPrimaryNameRequest(params: {
initiator: WalletAddress;
}): Promise<AoPrimaryNameRequest>;
getPrimaryNameRequests(params?: PaginationParams<AoPrimaryNameRequest>): Promise<PaginationResult<AoPrimaryNameRequest>>;
getPrimaryName(params: {
address: WalletAddress;
} | {
name: string;
}): Promise<AoPrimaryName>;
getPrimaryNames(params: PaginationParams<AoPrimaryName>): Promise<PaginationResult<AoPrimaryName>>;
/**
* Get current redelegation fee percentage for address
*
* @param {Object} params - The parameters for fetching redelegation fee
* @param {string} params.address - The address to fetch the fee for
* @returns {Promise<AoMessageResult>} The redelegation fee result
*/
getRedelegationFee(params: {
address: WalletAddress;
}): Promise<AoRedelegationFeeInfo>;
getGatewayRegistrySettings(): Promise<AoGatewayRegistrySettings>;
getAllDelegates(params?: PaginationParams<AoAllDelegates>): Promise<PaginationResult<AoAllDelegates>>;
getAllGatewayVaults(params?: PaginationParams<AoAllGatewayVaults>): Promise<PaginationResult<AoAllGatewayVaults>>;
resolveArNSName({ name, }: {
name: string;
}): Promise<ArNSNameResolutionData>;
}
export declare class ARIOWriteable extends ARIOReadable implements AoARIOWrite {
private signer;
protected paymentProvider: TurboArNSPaymentProviderAuthenticated | TurboArNSPaymentProviderUnauthenticated;
constructor({ signer, paymentUrl, ...config }: ARIOConfigWithSigner);
transfer({ target, qty, }: {
target: string;
qty: number | mARIOToken;
}, options?: WriteOptions): Promise<AoMessageResult>;
vaultedTransfer({ recipient, quantity, lockLengthMs, revokable, }: AoVaultedTransferParams, options?: WriteOptions): Promise<AoMessageResult>;
revokeVault({ vaultId, recipient }: AoRevokeVaultParams, options?: WriteOptions): Promise<AoMessageResult>;
createVault({ lockLengthMs, quantity }: AoCreateVaultParams, options?: WriteOptions): Promise<AoMessageResult>;
extendVault({ vaultId, extendLengthMs }: AoExtendVaultParams, options?: WriteOptions): Promise<AoMessageResult>;
increaseVault({ vaultId, quantity }: AoIncreaseVaultParams, options?: WriteOptions): Promise<AoMessageResult>;
joinNetwork({ operatorStake, allowDelegatedStaking, allowedDelegates, delegateRewardShareRatio, fqdn, label, minDelegatedStake, note, port, properties, protocol, autoStake, observerAddress, }: AoJoinNetworkParams, options?: WriteOptions): Promise<AoMessageResult>;
leaveNetwork(options?: WriteOptions): Promise<AoMessageResult>;
updateGatewaySettings({ allowDelegatedStaking, allowedDelegates, delegateRewardShareRatio, fqdn, label, minDelegatedStake, note, port, properties, protocol, autoStake, observerAddress, }: AoUpdateGatewaySettingsParams, options?: WriteOptions): Promise<AoMessageResult>;
delegateStake(params: {
target: string;
stakeQty: number | mARIOToken;
}, options?: WriteOptions): Promise<AoMessageResult>;
decreaseDelegateStake(params: {
target: string;
decreaseQty: number | mARIOToken;
instant?: boolean;
}, options?: WriteOptions): Promise<AoMessageResult>;
/**
* Initiates an instant withdrawal from a gateway.
*
* @param {Object} params - The parameters for initiating an instant withdrawal
* @param {string} params.address - The gateway address of the withdrawal, if not provided, the signer's address will be used
* @param {string} params.vaultId - The vault ID of the withdrawal
* @returns {Promise<AoMessageResult>} The result of the withdrawal
*/
instantWithdrawal(params: {
gatewayAddress?: string;
vaultId: string;
}, options?: WriteOptions): Promise<AoMessageResult>;
increaseOperatorStake(params: {
increaseQty: number | mARIOToken;
}, options?: WriteOptions): Promise<AoMessageResult>;
decreaseOperatorStake(params: {
decreaseQty: number | mARIOToken;
instant?: boolean;
}, options?: WriteOptions): Promise<AoMessageResult>;
saveObservations(params: {
reportTxId: TransactionId;
failedGateways: WalletAddress[];
}, options?: WriteOptions): Promise<AoMessageResult>;
buyRecord(params: AoBuyRecordParams, options?: WriteOptions): Promise<AoMessageResult>;
/**
* Upgrades an existing leased record to a permabuy.
*
* @param {Object} params - The parameters for upgrading a record
* @param {string} params.name - The name of the record to upgrade
* @param {Object} [options] - The options for the upgrade
* @returns {Promise<AoMessageResult>} The result of the upgrade
*/
upgradeRecord(params: AoArNSPurchaseParams, options?: WriteOptions): Promise<AoMessageResult>;
/**
* Extends the lease of an existing leased record.
*
* @param {Object} params - The parameters for extending a lease
* @param {string} params.name - The name of the record to extend
* @param {number} params.years - The number of years to extend the lease
* @param {Object} [options] - The options for the extension
* @returns {Promise<AoMessageResult>} The result of the extension
*/
extendLease(params: AoExtendLeaseParams, options?: WriteOptions): Promise<AoMessageResult>;
increaseUndernameLimit(params: AoIncreaseUndernameLimitParams, options?: WriteOptions): Promise<AoMessageResult>;
/**
* Cancel a withdrawal from a gateway.
*
* @param {Object} params - The parameters for cancelling a withdrawal
* @param {string} [params.address] - The address of the withdrawal (optional). If not provided, the signer's address will be used.
* @param {string} params.vaultId - The vault ID of the withdrawal.
* @param {Object} [options] - The options for the cancellation
* @returns {Promise<AoMessageResult>} The result of the cancellation
*/
cancelWithdrawal(params: {
gatewayAddress?: WalletAddress;
vaultId: string;
}, options?: WriteOptions | undefined): Promise<AoMessageResult>;
requestPrimaryName(params: AoArNSPurchaseParams, options?: WriteOptions): Promise<AoMessageResult>;
/**
* Redelegate stake from one gateway to another gateway.
*
* @param {Object} params - The parameters for redelegating stake
* @param {string} params.target - The target gateway address
* @param {string} params.source - The source gateway address
* @param {number} params.stakeQty - The quantity of stake to redelegate
* @param {string} params.vaultId - An optional vault ID to redelegate from
* @param {Object} [options] - The options for the redelegation
* @returns {Promise<AoMessageResult>} The result of the redelegation
*/
redelegateStake(params: {
target: string;
source: string;
stakeQty: number | mARIOToken;
vaultId?: string;
}, options?: WriteOptions): Promise<AoMessageResult>;
}
export {};