@tatumio/tatum
Version:
Tatum JS SDK
460 lines (459 loc) • 13.8 kB
TypeScript
import { Block } from '../../api/api.dto';
import { Account, AccountStateDelta, Application, ApplicationLocalState, Asset, AssetHolding, AssetParams, Box, BoxDescriptor, ErrorResponse } from './AlgorandAlgodRpcSuite';
export interface HealthCheck {
data?: {
'db-available': boolean;
'is-migrating': boolean;
message: string;
round: number;
version: string;
};
errors?: string[];
}
export interface AccountRequest {
applicationId?: number;
assetId?: number;
authAddr?: string;
currencyGreaterThan?: number;
currencyLessThan?: number;
exclude?: ('all' | 'assets' | 'created-assets' | 'apps-local-state' | 'created-apps' | 'none')[];
includeAll?: boolean;
limit?: number;
next?: string;
round?: number;
}
export interface AccountsResponse {
accounts: Account[];
'current-round': number;
'next-token'?: string;
}
export interface AccountResponse {
account: Account;
'current-round': number;
}
export interface AccountInformationRequest {
accountId: string;
exclude?: ('all' | 'assets' | 'created-assets' | 'apps-local-state' | 'created-apps' | 'none')[];
includeAll?: boolean;
round?: number;
}
export interface AppsLocalStateRequest {
accountId: string;
applicationId?: number;
includeAll?: boolean;
limit?: number;
next?: string;
}
export interface AppsLocalStateResponse {
'apps-local-states': ApplicationLocalState[];
'current-round': number;
'next-token'?: string;
}
export interface AssetsRequest {
accountId: string;
assetId?: number;
includeAll?: boolean;
limit?: number;
next?: string;
}
export interface AssetsResponse {
assets: AssetHolding[];
'current-round': number;
'next-token'?: string;
}
export interface CreatedApplicationsRequest {
accountId: string;
applicationId?: number;
includeAll?: boolean;
limit?: number;
next?: string;
}
export interface CreatedApplicationsResponse {
applications: Application[];
'current-round': number;
'next-token'?: string;
}
export interface CreatedAssetsRequest {
accountId: string;
assetId?: number;
includeAll?: boolean;
limit?: number;
next?: string;
}
export interface CreatedAssetsResponse {
assets: Asset[];
'current-round': number;
'next-token'?: string;
}
export interface AccountTransactionsRequest {
accountId: string;
afterTime?: string;
assetId?: number;
beforeTime?: string;
currencyGreaterThan?: number;
currencyLessThan?: number;
limit?: number;
maxRound?: number;
minRound?: number;
next?: string;
notePrefix?: string;
rekeyTo?: boolean;
round?: number;
sigType?: 'sig' | 'msig' | 'lsig';
txType?: 'pay' | 'keyreg' | 'acfg' | 'axfer' | 'afrz' | 'appl' | 'stpf';
txid?: string;
}
export interface AccountTransactionsResponse {
'current-round': number;
'next-token'?: string;
transactions: Transaction[];
}
export interface Transaction {
'application-transaction'?: TransactionApplication;
'asset-config-transaction'?: TransactionAssetConfig;
'asset-freeze-transaction'?: TransactionAssetFreeze;
'asset-transfer-transaction'?: TransactionAssetTransfer;
'auth-addr'?: string;
'close-rewards'?: number;
'closing-amount'?: number;
'confirmed-round'?: number;
'created-application-index'?: number;
'created-asset-index'?: number;
fee: number;
'first-valid': number;
'genesis-hash'?: string;
'genesis-id'?: string;
'global-state-delta'?: StateDelta;
group?: string;
id?: string;
'inner-txns'?: Transaction[];
'intra-round-offset'?: number;
'keyreg-transaction'?: TransactionKeyreg;
'last-valid': number;
lease?: string;
'local-state-delta'?: AccountStateDelta[];
logs?: string[];
note?: string;
'payment-transaction'?: TransactionPayment;
'receiver-rewards'?: number;
'rekey-to'?: string;
'round-time'?: number;
sender: string;
'sender-rewards'?: number;
signature?: TransactionSignature;
'state-proof-transaction'?: TransactionStateProof;
'tx-type': 'pay' | 'keyreg' | 'acfg' | 'axfer' | 'afrz' | 'appl' | 'stpf';
}
export interface TransactionKeyreg {
'non-participation'?: boolean;
'selection-participation-key'?: string;
'state-proof-key'?: string;
'vote-first-valid'?: number;
'vote-key-dilution'?: number;
'vote-last-valid'?: number;
'vote-participation-key'?: string;
}
export interface TransactionPayment {
amount: number;
'close-amount'?: number;
'close-remainder-to'?: string;
receiver: string;
}
export interface TransactionSignature {
logicsig?: TransactionSignatureLogicsig;
multisig?: TransactionSignatureMultisig;
sig?: string;
}
export interface TransactionAssetConfig {
'asset-id'?: number;
params?: AssetParams;
}
type StateDelta = EvalDeltaKeyValue[];
export interface EvalDeltaKeyValue {
key: string;
value: EvalDelta;
}
export interface EvalDelta {
action: number;
bytes?: string;
uint?: number;
}
export interface StateProofReveal {
participant?: StateProofParticipant;
position?: number;
'sig-slot'?: StateProofSigSlot;
}
export interface StateProofFields {
'part-proofs'?: MerkleArrayProof;
'positions-to-reveal'?: number[];
reveals?: StateProofReveal[];
'salt-version'?: number;
'sig-commit'?: string;
'sig-proofs'?: MerkleArrayProof;
'signed-weight'?: number;
}
export interface StateProofParticipant {
verifier?: StateProofVerifier;
weight?: number;
}
export interface StateProofVerifier {
commitment?: string;
'key-lifetime'?: number;
}
export interface StateProofSigSlot {
'lower-sig-weight'?: number;
signature?: StateProofSignature;
}
export interface StateProofSignature {
'falcon-signature'?: string;
'merkle-array-index'?: number;
proof?: MerkleArrayProof;
'verifying-key'?: string;
}
export interface MerkleArrayProof {
'hash-factory'?: HashFactory;
path?: string[];
'tree-depth'?: number;
}
export interface HashFactory {
'hash-type'?: number;
}
export interface TransactionAssetFreeze {
address: string;
'asset-id': number;
'new-freeze-status': boolean;
}
export interface TransactionAssetTransfer {
amount: number;
'asset-id': number;
'close-amount'?: number;
'close-to'?: string;
receiver: string;
sender?: string;
}
export interface TransactionApplication {
accounts?: string[];
'application-args'?: string[];
'application-id': number;
'approval-program'?: string;
'clear-state-program'?: string;
'extra-program-pages'?: number;
'foreign-apps'?: number[];
'foreign-assets'?: number[];
'global-state-schema'?: StateSchema;
'local-state-schema'?: StateSchema;
'on-completion': OnCompletion;
}
type OnCompletion = 'noop' | 'optin' | 'closeout' | 'clear' | 'update' | 'delete';
export interface StateSchema {
'num-byte-slice': number;
'num-uint': number;
}
export interface TransactionSignatureLogicsig {
args?: string[];
logic: string;
'multisig-signature'?: TransactionSignatureMultisig;
signature?: string;
}
export interface TransactionSignatureMultisig {
subsignature?: TransactionSignatureMultisigSubsignature[];
threshold?: number;
version?: number;
}
export interface TransactionSignatureMultisigSubsignature {
'public-key'?: string;
signature?: string;
}
export interface TransactionStateProof {
message?: IndexerStateProofMessage;
'state-proof'?: StateProofFields;
'state-proof-type'?: number;
}
export interface IndexerStateProofMessage {
'block-headers-commitment'?: string;
'first-attested-round'?: number;
'latest-attested-round'?: number;
'ln-proven-weight'?: number;
'voters-commitment'?: string;
}
export interface ApplicationSearchParams {
applicationId?: number;
creator?: string;
includeAll?: boolean;
limit?: number;
next?: string;
}
export interface ApplicationSearchResponse {
applications: Application[];
'current-round': number;
'next-token'?: string;
}
export interface AppLookupParams {
applicationId: number;
includeAll?: boolean;
}
export interface AppLookupResponse {
application?: Application;
'current-round': number;
}
export interface ApplicationBoxParams {
applicationId: number;
name: string;
}
export interface ApplicationBoxesParams {
applicationId: number;
limit?: number;
next?: string;
}
export interface ApplicationBoxesResponse {
'application-id': number;
boxes: BoxDescriptor[];
'next-token'?: string;
}
export interface LogsLookupParams {
applicationId: number;
limit?: number;
maxRound?: number;
minRound?: number;
next?: string;
senderAddress?: string;
txid?: string;
}
export interface LogsLookupResponse {
'application-id': number;
'current-round': number;
'log-data'?: ApplicationLogData[];
'next-token'?: string;
}
export interface ApplicationLogData {
logs: string[];
txid: string;
}
export interface AssetSearchParams {
assetId?: number;
creator?: string;
includeAll?: boolean;
limit?: number;
name?: string;
next?: string;
unit?: string;
}
export interface AssetSearchResponse {
assets: Asset[];
'current-round': number;
'next-token'?: string;
}
export interface AssetLookupParams {
assetId: number;
includeAll?: boolean;
}
export interface AssetLookupResponse {
asset: Asset;
'current-round': number;
}
export interface AssetBalancesParams {
assetId: number;
currencyGreaterThan?: number;
currencyLessThan?: number;
includeAll?: boolean;
limit?: number;
next?: string;
}
export interface AssetBalancesResponse {
balances: MiniAssetHolding[];
'current-round': number;
'next-token'?: string;
}
export interface MiniAssetHolding {
address: string;
amount: number;
deleted?: boolean;
'is-frozen': boolean;
'opted-in-at-round'?: number;
'opted-out-at-round'?: number;
}
export interface AssetTransactionsParams {
assetId: number;
address?: string;
addressRole?: 'sender' | 'receiver' | 'freeze-target';
afterTime?: string;
beforeTime?: string;
currencyGreaterThan?: number;
currencyLessThan?: number;
excludeCloseTo?: boolean;
limit?: number;
maxRound?: number;
minRound?: number;
next?: string;
notePrefix?: string;
rekeyTo?: boolean;
round?: number;
sigType?: 'sig' | 'msig' | 'lsig';
txType?: 'pay' | 'keyreg' | 'acfg' | 'axfer' | 'afrz' | 'appl' | 'stpf';
txid?: string;
}
export interface AssetTransactionsResponse {
'current-round': number;
'next-token'?: string;
transactions: Transaction[];
}
export interface BlockLookupParams {
roundNumber: number;
headerOnly?: boolean;
}
export interface TransactionsParams {
address?: string;
addressRole?: 'sender' | 'receiver' | 'freeze-target';
afterTime?: string;
applicationId?: number;
assetId?: number;
beforeTime?: string;
currencyGreaterThan?: number;
currencyLessThan?: number;
excludeCloseTo?: boolean;
limit?: number;
maxRound?: number;
minRound?: number;
next?: string;
notePrefix?: string;
rekeyTo?: boolean;
round?: number;
sigType?: 'sig' | 'msig' | 'lsig';
txType?: 'pay' | 'keyreg' | 'acfg' | 'axfer' | 'afrz' | 'appl' | 'stpf';
txid?: string;
}
export interface TransactionsResponse {
'current-round': number;
'next-token'?: string;
transactions: Transaction[];
}
export interface TransactionLookupParams {
txid: string;
}
export interface TransactionLookupResponse {
transaction: Transaction;
'current-round': number;
}
export interface AlgorandIndexerRpcSuite {
getHealth(): Promise<HealthCheck>;
getAccounts(params: AccountRequest): Promise<AccountsResponse | ErrorResponse>;
getAccount(params: AccountInformationRequest): Promise<AccountResponse | ErrorResponse>;
getAccountAppsLocalState(params: AppsLocalStateRequest): Promise<AppsLocalStateResponse | ErrorResponse>;
getAccountAssets(params: AssetsRequest): Promise<AssetsResponse | ErrorResponse>;
getAccountApplications(params: CreatedApplicationsRequest): Promise<CreatedApplicationsResponse | ErrorResponse>;
getAccountCreatedAssets(params: CreatedAssetsRequest): Promise<CreatedAssetsResponse | ErrorResponse>;
getAccountTransactions(params: AccountTransactionsRequest): Promise<AccountTransactionsResponse | ErrorResponse>;
getApplications(params: ApplicationSearchParams): Promise<ApplicationSearchResponse | ErrorResponse>;
getApplication(params: AppLookupParams): Promise<AppLookupResponse | ErrorResponse>;
getApplicationBox(params: ApplicationBoxParams): Promise<Box | ErrorResponse>;
getApplicationBoxes(params: ApplicationBoxesParams): Promise<ApplicationBoxesResponse | ErrorResponse>;
getApplicationLogs(params: LogsLookupParams): Promise<LogsLookupResponse | ErrorResponse>;
getAssets(params: AssetSearchParams): Promise<AssetSearchResponse | ErrorResponse>;
getAsset(params: AssetLookupParams): Promise<AssetLookupResponse | ErrorResponse>;
getAssetBalances(params: AssetBalancesParams): Promise<AssetBalancesResponse | ErrorResponse>;
getAssetTransactions(params: AssetTransactionsParams): Promise<AssetTransactionsResponse | ErrorResponse>;
getBlock(params: BlockLookupParams): Promise<Block | ErrorResponse>;
getTransactions(params: TransactionsParams): Promise<TransactionsResponse | ErrorResponse>;
getTransaction(params: TransactionLookupParams): Promise<TransactionLookupResponse | ErrorResponse>;
}
export {};