UNPKG

rango-types

Version:
243 lines 8.38 kB
import { BaseTransaction as RangoBaseTransaction, TransactionType } from '../../shared/index.js'; export interface XrplTransaction extends RangoBaseTransaction { type: TransactionType.XRPL; data: Payment | TrustSet; } export declare const isXrplTransaction: (transaction: { type: TransactionType; }) => transaction is XrplTransaction; export type XrplPaymentTransactionData = Payment; export type XrplTrustSetTransactionData = TrustSet; export type XrplTransactionDataIssuedCurrencyAmount = IssuedCurrencyAmount; export type XrplTransactionDataMPTAmount = MPTAmount; interface GlobalFlags { } /** * Must be a valid account address */ type Account = string; interface Memo { Memo: { MemoData?: string; MemoType?: string; MemoFormat?: string; }; } interface Signer { Signer: { Account: string; TxnSignature: string; SigningPubKey: string; }; } /** * Every transaction has the same set of common fields. */ interface BaseTransaction { /** The unique address of the transaction sender. */ Account: Account; /** * The type of transaction. Valid types include: `Payment`, `OfferCreate`, * `TrustSet`, and many others. */ TransactionType: string; /** * Integer amount of XRP, in drops, to be destroyed as a cost for * distributing this transaction to the network. Some transaction types have * different minimum requirements. */ Fee?: string; /** * The sequence number of the account sending the transaction. A transaction * is only valid if the Sequence number is exactly 1 greater than the previous * transaction from the same account. The special case 0 means the transaction * is using a Ticket instead. */ Sequence?: number; /** * Hash value identifying another transaction. If provided, this transaction * is only valid if the sending account's previously-sent transaction matches * the provided hash. */ AccountTxnID?: string; /** Set of bit-flags for this transaction. */ Flags?: number | GlobalFlags; /** * Highest ledger index this transaction can appear in. Specifying this field * places a strict upper limit on how long the transaction can wait to be * validated or rejected. */ LastLedgerSequence?: number; /** * Additional arbitrary information used to identify this transaction. */ Memos?: Memo[]; /** * Array of objects that represent a multi-signature which authorizes this * transaction. */ Signers?: Signer[]; /** * Arbitrary integer used to identify the reason for this payment, or a sender * on whose behalf this transaction is made. Conventionally, a refund should * specify the initial payment's SourceTag as the refund payment's * DestinationTag. */ SourceTag?: number; /** * Hex representation of the public key that corresponds to the private key * used to sign this transaction. If an empty string, indicates a * multi-signature is present in the Signers field instead. */ SigningPubKey?: string; /** * The sequence number of the ticket to use in place of a Sequence number. If * this is provided, Sequence must be 0. Cannot be used with AccountTxnID. */ TicketSequence?: number; /** * The signature that verifies this transaction as originating from the * account it says it is from. */ TxnSignature?: string; /** * The network id of the transaction. */ NetworkID?: number; } interface IssuedCurrency { currency: string; issuer: string; } interface IssuedCurrencyAmount extends IssuedCurrency { value: string; } interface MPTAmount { mpt_issuance_id: string; value: string; } type Amount = IssuedCurrencyAmount | string; interface PathStep { account?: string; currency?: string; issuer?: string; } type Path = PathStep[]; interface PaymentFlagsInterface extends GlobalFlags { /** * Do not use the default path; only use paths included in the Paths field. * This is intended to force the transaction to take arbitrage opportunities. * Most clients do not need this. */ tfNoRippleDirect?: boolean; /** * If the specified Amount cannot be sent without spending more than SendMax, * reduce the received amount instead of failing outright. See Partial. * Payments for more details. */ tfPartialPayment?: boolean; /** * Only take paths where all the conversions have an input:output ratio that * is equal or better than the ratio of Amount:SendMax. See Limit Quality for * details. */ tfLimitQuality?: boolean; } interface TrustSetFlagsInterface { /** * Authorize the other party to hold currency issued by this account. (No * effect unless using the asfRequireAuth AccountSet flag.) Cannot be unset. */ tfSetfAuth?: boolean; /** * Enable the No Ripple flag, which blocks rippling between two trust lines * of the same currency if this flag is enabled on both. */ tfSetNoRipple?: boolean; /** Disable the No Ripple flag, allowing rippling on this trust line. */ tfClearNoRipple?: boolean; /** Freeze the trust line. */ tfSetFreeze?: boolean; /** Unfreeze the trust line. */ tfClearFreeze?: boolean; /** Deep-Freeze the trustline -- disallow sending and receiving the said IssuedCurrency */ /** Allowed only if the trustline is already regularly frozen, or if tfSetFreeze is set in the same transaction. */ tfSetDeepFreeze?: boolean; /** Clear a Deep-Frozen trust line */ tfClearDeepFreeze?: boolean; } /** * Create or modify a trust line linking two accounts. * * @category Transaction Models */ interface TrustSet extends BaseTransaction { TransactionType: 'TrustSet'; /** * Object defining the trust line to create or modify, in the format of a * Currency Amount. */ LimitAmount: IssuedCurrencyAmount; /** * Value incoming balances on this trust line at the ratio of this number per * 1,000,000,000 units. A value of 0 is shorthand for treating balances at * face value. */ QualityIn?: number; /** * Value outgoing balances on this trust line at the ratio of this number per * 1,000,000,000 units. A value of 0 is shorthand for treating balances at * face value. */ QualityOut?: number; Flags?: number | TrustSetFlagsInterface; } interface Payment extends BaseTransaction { TransactionType: 'Payment'; /** * The amount of currency to deliver. For non-XRP amounts, the nested field * names MUST be lower-case. If the tfPartialPayment flag is set, deliver up * to this amount instead. */ Amount: Amount | MPTAmount; /** The unique address of the account receiving the payment. */ Destination: Account; /** * Arbitrary tag that identifies the reason for the payment to the * destination, or a hosted recipient to pay. */ DestinationTag?: number; /** * Arbitrary 256-bit hash representing a specific reason or identifier for * this payment. */ InvoiceID?: string; /** * Array of payment paths to be used for this transaction. Must be omitted * for XRP-to-XRP transactions. */ Paths?: Path[]; /** * Highest amount of source currency this transaction is allowed to cost, * including transfer fees, exchange rates, and slippage . Does not include * the XRP destroyed as a cost for submitting the transaction. For non-XRP * amounts, the nested field names MUST be lower-case. Must be supplied for * cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP * Payments. */ SendMax?: Amount | MPTAmount; /** * Minimum amount of destination currency this transaction should deliver. * Only valid if this is a partial payment. For non-XRP amounts, the nested * field names are lower-case. */ DeliverMin?: Amount | MPTAmount; /** * Credentials associated with the sender of this transaction. * The credentials included must not be expired. */ CredentialIDs?: string[]; Flags?: number | PaymentFlagsInterface; } export {}; //# sourceMappingURL=xrpl.d.ts.map