samo-bas-ran
Version:
Rango Exchange Types
78 lines • 2.65 kB
TypeScript
import { AssetWithTicker } from '../common';
import { TransactionType } from '../transactions';
import { BaseTransaction } from './base';
/**
* CosmosCoin
*/
export type CosmosCoin = {
amount: string;
denom: string;
};
/**
* CosmosProtoMsg
*/
export type CosmosProtoMsg = {
type_url: string;
value: number[];
};
/**
* CosmosFee representing fee for cosmos transaction
*/
export type CosmosFee = {
gas: string;
amount: CosmosCoin[];
};
/**
* Main transaction object for COSMOS type transactions
*/
export type CosmosMessage = {
signType: 'AMINO' | 'DIRECT';
sequence: string | null;
source: number | null;
account_number: number | null;
rpcUrl: string;
chainId: string | null;
msgs: any[];
protoMsgs: CosmosProtoMsg[];
memo: string | null;
fee: CosmosFee | null;
};
/**
* An alternative to CosmosMessage object for the cosmos wallets that do not support generic Cosmos messages (e.g. XDefi)
*
* @property {AssetWithTicker} asset - The asset to be transferred
* @property {string} amount - The machine-readable amount to transfer, example: 1000000000000000000
* @property {number} decimals - The decimals for this asset, example: 18
* @property {string | null} memo - Memo of transaction, could be null
* @property {string} method - The transaction method, example: transfer, deposit
* @property {string} recipient - The recipient address of transaction
*
*/
export type CosmosRawTransferData = {
amount: string;
asset: AssetWithTicker;
decimals: number;
memo: string | null;
method: string;
recipient: string;
};
/**
* A Cosmos transaction, child of GenericTransaction
*
* @property {TransactionType} type - This fields equals to COSMOS for all CosmosTransactions
* @property {string} blockChain - The blockchain that this transaction will be executed in, same as the input blockchain of creating transaction
* @property {string} fromWalletAddress - Address of wallet that this transaction should be executed in, same as the create transaction request's input
* @property {CosmosMessage} data - Transaction data
* @property {CosmosRawTransferData | null} rawTransfer - An alternative to CosmosMessage object for the cosmos wallets that do not support generic Cosmos messages
*
*/
export interface CosmosTransaction extends BaseTransaction {
type: TransactionType.COSMOS;
fromWalletAddress: string;
data: CosmosMessage;
rawTransfer: CosmosRawTransferData | null;
}
export declare const isCosmosTransaction: (transaction: {
type: TransactionType;
}) => transaction is CosmosTransaction;
//# sourceMappingURL=cosmos.d.ts.map