@ultrade/ultrade-js-sdk
Version:
This package contains the original js/ts SDK.
147 lines (146 loc) • 4.43 kB
TypeScript
import { SuggestedParams } from 'algosdk';
import { TradingKeyType, PaginatedResult, ISafeWithdrawalWallets, UpdateWithdrawalWallet, CreateWithdrawalWallet } from "@ultrade/shared/browser/interfaces";
import { ACTION_TYPE, OperationStatusEnum, TransactionType } from '../enum/index.ts';
export interface TxnParams {
suggestedParams: SuggestedParams;
from: string;
to: string;
amount: number;
assetIndex?: number;
}
export interface OperationTxn {
txn_hash: string;
chain_id: number;
createdAt?: Date;
updatedAt?: Date;
type?: TransactionType;
}
export interface OperationVAA {
vaaId: string;
from_chain_id: number;
to_chain_id: number;
sequence: number;
emitter: string;
createdAt: Date;
updatedAt: Date;
}
export interface OperationCCTP {
id: number;
destinationChainId: number;
messageHash: string;
messageBytes: string;
status: OperationStatusEnum;
attestationSignature: string;
createdAt: Date;
updatedAt: Date;
attestationCompletedAt: Date;
}
export interface ITransactionDetails {
primaryId: number;
id: string;
login_address: string;
login_chain_id: number;
action_type: 'withdraw' | 'deposit';
status: OperationStatusEnum;
amount: string;
targetAddress: string;
timestamp: string;
createdAt: Date;
updatedAt: Date;
vaa_message?: Buffer;
fee: string | null;
transactions: Array<OperationTxn>;
vaaMessages: Array<OperationVAA>;
cctp: Array<OperationCCTP>;
}
export interface ITransaction {
primaryId: number;
id: string;
action_type: ACTION_TYPE;
status: OperationStatusEnum;
amount: string;
targetAddress: string;
createdAt?: Date;
updatedAt: Date;
vaa_message?: Buffer;
fee: string | null;
token_id: {
id: number;
address: string;
chainId: number;
unitName: string;
name: string;
decimals: number;
};
transactions: Array<{
txnHash: string;
chainId: number;
}>;
vaaMessages: Array<OperationVAA>;
}
export type IGetWalletTransactions = PaginatedResult<ITransaction>;
export interface ITradingKey {
address: string;
createdAt: Date;
expiredAt: Date;
orders: number;
device: string;
type?: TradingKeyType;
}
export interface ITransfer {
transferId: number;
senderAddress: string;
recipientAddress: string;
tokenId: number;
amount: string;
expiredAt: number;
whitelistId: number;
txnId: string;
completedAt: Date;
status: OperationStatusEnum;
}
export type IGetTransfers = PaginatedResult<ITransfer>;
export interface IPendingTxn {
id: number;
type: ACTION_TYPE;
amount: string;
tokenId: number;
}
export interface IWhiteList {
id?: number;
loginAddress: string;
loginChainId: number;
recipient: string;
recipientChainId: number;
tkAddress: string;
expiredDate: number;
}
export interface IGetWhiteList {
id: number;
recipientAddress: string;
tkAddress: string;
expiredAt: number;
}
export type IPreparedGetWhiteList = PaginatedResult<IGetWhiteList>;
import { IWithdrawData, ITransferData } from "@ultrade/shared/browser/interfaces";
export interface IWithdrawResponse {
operationId: string;
txnId: string;
}
export interface IWalletForClient {
getTransactionDetalis(transactionId: number): Promise<ITransactionDetails>;
getPendingTransactions(): Promise<IPendingTxn[]>;
getWhitelist(): Promise<IPreparedGetWhiteList>;
addWhitelist(data: IWhiteList): Promise<IGetWhiteList>;
deleteWhitelist(whitelistId: number): Promise<void>;
getWalletTransactions(type: string, page: number, limit?: number): Promise<IGetWalletTransactions>;
getTradingKeys(): Promise<ITradingKey[]>;
getTransfers(page: number, limit?: number): Promise<IGetTransfers>;
getAllWithdrawalWallets(): Promise<ISafeWithdrawalWallets[]>;
getWithdrawalWalletByAddress(address: string): Promise<ISafeWithdrawalWallets>;
createWithdrawalWallet(body: CreateWithdrawalWallet): Promise<ISafeWithdrawalWallets>;
updateWithdrawalWallet(params: UpdateWithdrawalWallet): Promise<boolean>;
deleteWithdrawalWallet(address: string): Promise<boolean>;
withdraw(withdrawData: IWithdrawData, prettyMsg?: string): Promise<IWithdrawResponse>;
transfer(transferData: ITransferData): Promise<ITransfer>;
}