@thencc/algonautjs
Version:
AlgonautJS is a simplified Algorand transaction library built specifically for Browsers and Front End Development
178 lines (177 loc) • 4.88 kB
TypeScript
import type { LogicSigAccount, Transaction, SuggestedParams, MultisigMetadata } from 'algosdk';
import type { ApplicationStateSchema } from 'algosdk/dist/types/client/v2/algod/models/types';
import type { AnyWalletStateConfig, WalletInitParamsObj } from '@thencc/any-wallet';
export type AlgonautConfig = {
nodeConfig?: {
BASE_SERVER: string;
INDEX_SERVER?: string;
LEDGER: string;
PORT: string;
API_TOKEN: any;
};
disableLogs?: boolean;
initWallets?: WalletInitParamsObj;
storageKey?: AnyWalletStateConfig['storageKey'];
storageController?: AnyWalletStateConfig['storageController'];
};
export interface AlgonautStateData {
key: string;
value: string | number | bigint;
address: string;
}
export interface AlgonautContractSchema {
localInts: number;
localBytes: number;
globalInts: number;
globalBytes: number;
}
export interface AlgonautDeployArguments {
tealApprovalCode: string;
tealClearCode: string;
appArgs: any[];
schema: AlgonautContractSchema;
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautUpdateAppArguments {
appIndex: number;
tealApprovalCode: string;
tealClearCode: string;
appArgs: any[];
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautDeleteAppArguments {
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautLsigDeployArguments extends AlgonautDeployArguments {
lsig: LogicSigAccount;
noteText?: string;
}
export interface AlgonautAppStateEncoded {
key: string;
value: {
bytes: string;
type: number;
uint: number;
};
}
export interface AlgonautGetApplicationResponse {
id: number;
params: {
'approval-program': string;
'clear-state-program': string;
creator: string;
extraProgramPages?: number;
'global-state'?: AlgonautAppStateEncoded[];
'global-state-schema'?: ApplicationStateSchema;
'local-state-schema'?: ApplicationStateSchema;
};
}
export interface AlgonautAppState {
index: number;
hasState: boolean;
creatorAddress: string;
globals: AlgonautStateData[];
locals: AlgonautStateData[];
}
export interface AlgonautCallAppArguments {
from?: string;
appIndex: number;
appArgs: any[];
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautLsigCallAppArguments extends AlgonautCallAppArguments {
lsig: LogicSigAccount;
}
export interface AlgonautCreateAssetArguments {
from?: string;
assetName: string;
symbol: string;
metaBlock: string;
decimals: number;
amount: number;
assetURL?: string;
defaultFrozen?: boolean;
assetMetadataHash?: string;
clawback?: string;
manager?: string;
reserve?: string;
freeze?: string;
rekeyTo?: string;
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautDestroyAssetArguments {
rekeyTo?: string;
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautSendAssetArguments {
to: string;
from?: string;
assetIndex: number;
amount: number | bigint;
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautLsigSendAssetArguments extends AlgonautSendAssetArguments {
lsig: LogicSigAccount;
}
export interface AlgonautPaymentArguments {
amount: number | bigint;
to: string;
from?: string;
optionalFields?: AlgonautTransactionFields;
}
export interface AlgonautLsigPaymentArguments extends AlgonautPaymentArguments {
lsig: LogicSigAccount;
}
export interface AlgonautTxnCallbacks {
onSign(payload: any): void;
onSend(payload: any): void;
onConfirm(payload: any): void;
}
export type AlgonautError = {
message: string;
rawError?: any;
};
export type AlgonautTransactionStatus = {
status: 'success' | 'fail' | 'rejected';
message: string;
index?: number;
txId: string;
error?: Error;
meta?: any;
createdIndex?: number;
};
export type AlgonautWallet = {
address: string;
mnemonic: string;
};
export type AlgonautTransactionFields = {
accounts?: string[];
applications?: number[];
assets?: number[];
reKeyTo?: string;
note?: string;
closeRemainderTo?: string;
manager?: string;
freeze?: string;
clawback?: string;
reserve?: string;
suggestedParams?: SuggestedParams;
};
export type AlgonautAtomicTransaction = {
transaction: Transaction;
isLogigSig: boolean;
lSig?: LogicSigAccount;
};
export type InkeySignTxnResponse = {
success: boolean;
reject?: boolean;
error?: any;
signedTxns?: Uint8Array[] | Uint8Array;
};
export type TxnForSigning = {
txn: string;
txnDecoded?: Transaction;
isLogicSig?: boolean;
isMultisig?: boolean;
multisigMeta?: MultisigMetadata;
};