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)

244 lines (243 loc) 13.7 kB
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 {};