From e08d507462b8fcd26449afef988bfe715ddabff8 Mon Sep 17 00:00:00 2001 From: Cory Perkins <37156131+jcperkins12@users.noreply.github.com> Date: Wed, 19 Sep 2018 16:21:52 -0500 Subject: [PATCH] Add remaining LedgerEntry types (#943) * Replaced the union with 'any' in the LedgerEntry type * Added DepositPreauthLedgerEntry (new in rippled 1.1.0) --- src/common/types/objects/ledger_entries.ts | 112 ++++++++++++++++++++- 1 file changed, 109 insertions(+), 3 deletions(-) diff --git a/src/common/types/objects/ledger_entries.ts b/src/common/types/objects/ledger_entries.ts index 3f16eceb..63ce68e4 100644 --- a/src/common/types/objects/ledger_entries.ts +++ b/src/common/types/objects/ledger_entries.ts @@ -1,4 +1,5 @@ import {SignerEntry} from './index' +import {Amount, RippledAmount} from './amounts' export interface AccountRootLedgerEntry { LedgerEntryType: 'AccountRoot', @@ -44,6 +45,87 @@ export interface CheckLedgerEntry { SourceTag: number } +export interface DepositPreauthLedgerEntry { + LedgerEntryType: 'DepositPreauth', + Account: string, + Authorize: string, + OwnerNode: string, + PreviousTxnID: string, + PreviousTxnLgrSeq: number +} + +export interface DirectoryNodeLedgerEntry { + LedgerEntryType: 'DirectoryNode', + Flags: number, + RootIndex: string, + Indexes: string[], + IndexNext?: number, + IndexPrevious?: number +} + +export interface OfferDirectoryNodeLedgerEntry + extends DirectoryNodeLedgerEntry { + TakerPaysCurrency: string, + TakerPaysIssuer: string, + TakerGetsCurrency: string, + TakerGetsIssuer: string, + ExchangeRate?: number // DEPRECIATED +} + +export interface OwnerDirectoryNodeLedgerEntry + extends DirectoryNodeLedgerEntry { + Owner: string, +} + +export interface EscrowLedgerEntry { + LedgerEntryType: 'Escrow', + Account: string, + Destination: string, + Amount: string, + Condition?: string, + CancelAfter?: number, + FinishAfter?: number, + Flags: number, + SourceTag?: number, + DestinationTag?: number, + OwnerNode: string, + DestinationNode?: string, + PreviousTxnID: string, + PreviousTxnLgrSeq: number +} + +export interface FeeSettingsLedgerEntry { + LedgerEntryType: 'FeeSettings', + BaseFee: string, + ReferenceFeeUnits: number, + ReserveBase: number, + ReserveIncrement: number, + Flags: number +} + +export interface LedgerHashesLedgerEntry { + LedgerEntryType: 'LedgerHashes', + Hashes: string[], + Flags: number, + FirstLedgerSequence?: number, // DEPRECIATED + LastLedgerSequence?: number +} + +export interface OfferLedgerEntry { + LedgerEntryType: 'Offer', + Flags: number, + Account: string, + Sequence: number, + TakerPays: RippledAmount, + TakerGets: RippledAmount, + BookDirectory: string, + BookNode: string, + OwnerNode: string, + PreviousTxnID: string, + PreviousTxnLgrSeq: number, + Expiration?: number +} + export interface PayChannelLedgerEntry { LedgerEntryType: 'PayChannel', Sequence: number, @@ -63,6 +145,22 @@ export interface PayChannelLedgerEntry { index: string } +export interface RippleStateLedgerEntry { + LedgerEntryType: 'RippleState', + Flags: number, + Balance: Amount, + LowLimit: Amount, + HighLimit: Amount, + PreviousTxnID: string, + PreviousTxnLgrSeq: number, + LowNode?: string, + HighNode?: string, + LowQualityIn?: number, + LowQualityOut?: number, + HighQualityIn?: number, + HighQualityOut?: number +} + export interface SignerListLedgerEntry { LedgerEntryType: 'SignerList', OwnerNode: string, @@ -73,11 +171,19 @@ export interface SignerListLedgerEntry { PreviousTxnLgrSeq: number } -// TODO: Add the other ledger entry types, then remove the `any` fallback // see https://ripple.com/build/ledger-format/#ledger-object-types export type LedgerEntry = AccountRootLedgerEntry | AmendmentsLedgerEntry | + CheckLedgerEntry | + DepositPreauthLedgerEntry | + DirectoryNodeLedgerEntry | + OfferDirectoryNodeLedgerEntry | + OwnerDirectoryNodeLedgerEntry | + EscrowLedgerEntry | + FeeSettingsLedgerEntry | + LedgerHashesLedgerEntry | + OfferLedgerEntry | PayChannelLedgerEntry | - SignerListLedgerEntry | - any + RippleStateLedgerEntry | + SignerListLedgerEntry