From e52b27e09751f27c3ba2b15e2ab4f677aa0ecd63 Mon Sep 17 00:00:00 2001 From: Omar Khan Date: Thu, 7 Sep 2023 17:35:15 -0400 Subject: [PATCH] fix: add AMM to BaseLedgerEntry and AccountObject types (#2449) - Add AMM to BaseLedgerEntry and AccountObject types. - Add amm_account to amm_info request - Add AMMID to AccountRoot Co-authored-by: Caleb Kniffen --- packages/xrpl/src/models/ledger/AMM.ts | 8 ++++++++ packages/xrpl/src/models/ledger/AccountRoot.ts | 6 ++++++ packages/xrpl/src/models/ledger/index.ts | 3 +++ packages/xrpl/src/models/methods/accountObjects.ts | 3 +++ packages/xrpl/src/models/methods/ammInfo.ts | 9 +++++++-- 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/xrpl/src/models/ledger/AMM.ts b/packages/xrpl/src/models/ledger/AMM.ts index 48149711..5297370c 100644 --- a/packages/xrpl/src/models/ledger/AMM.ts +++ b/packages/xrpl/src/models/ledger/AMM.ts @@ -75,4 +75,12 @@ export default interface AMM extends BaseLedgerEntry { * type, so this value is always 0. */ Flags: 0 + /** + * This field is missing on AMM but is present on all other account_object returned objects. + */ + PreviousTxnID: never + /** + * This field is missing on AMM but is present on all other account_object returned objects. + */ + PreviousTxnLgrSeq: never } diff --git a/packages/xrpl/src/models/ledger/AccountRoot.ts b/packages/xrpl/src/models/ledger/AccountRoot.ts index a6d68bd9..2f53237d 100644 --- a/packages/xrpl/src/models/ledger/AccountRoot.ts +++ b/packages/xrpl/src/models/ledger/AccountRoot.ts @@ -38,6 +38,12 @@ export default interface AccountRoot extends BaseLedgerEntry { * `asfAccountTxnID` flag enabled. */ AccountTxnID?: string + /** + * The ledger entry ID of the corresponding AMM ledger entry. + * Set during account creation; cannot be modified. + * If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. + */ + AMMID?: string /** * A domain associated with this account. In JSON, this is the hexadecimal * for the ASCII representation of the domain. diff --git a/packages/xrpl/src/models/ledger/index.ts b/packages/xrpl/src/models/ledger/index.ts index 5bde1227..58a735bd 100644 --- a/packages/xrpl/src/models/ledger/index.ts +++ b/packages/xrpl/src/models/ledger/index.ts @@ -3,6 +3,7 @@ import AccountRoot, { AccountRootFlagsInterface, } from './AccountRoot' import Amendments, { Majority, AMENDMENTS_ID } from './Amendments' +import AMM, { VoteSlot } from './AMM' import Check from './Check' import DepositPreauth from './DepositPreauth' import DirectoryNode from './DirectoryNode' @@ -30,6 +31,7 @@ export { AccountRootFlagsInterface, AMENDMENTS_ID, Amendments, + AMM, Check, DepositPreauth, DirectoryNode, @@ -55,4 +57,5 @@ export { SignerList, SignerListFlags, Ticket, + VoteSlot, } diff --git a/packages/xrpl/src/models/methods/accountObjects.ts b/packages/xrpl/src/models/methods/accountObjects.ts index 9c4ef671..080d705a 100644 --- a/packages/xrpl/src/models/methods/accountObjects.ts +++ b/packages/xrpl/src/models/methods/accountObjects.ts @@ -1,4 +1,5 @@ import { + AMM, Check, DepositPreauth, Escrow, @@ -12,6 +13,7 @@ import { import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' export type AccountObjectType = + | 'amm' | 'check' | 'deposit_preauth' | 'escrow' @@ -64,6 +66,7 @@ export interface AccountObjectsRequest * PayChannel, a SignerList, a Ticket, or a RippleState. */ export type AccountObject = + | AMM | Check | DepositPreauth | Escrow diff --git a/packages/xrpl/src/models/methods/ammInfo.ts b/packages/xrpl/src/models/methods/ammInfo.ts index bf907ffe..8e59405e 100644 --- a/packages/xrpl/src/models/methods/ammInfo.ts +++ b/packages/xrpl/src/models/methods/ammInfo.ts @@ -11,15 +11,20 @@ import { BaseRequest, BaseResponse } from './baseMethod' export interface AMMInfoRequest extends BaseRequest { command: 'amm_info' + /** + * The address of the AMM Account to look up. + */ + amm_account?: string + /** * One of the assets of the AMM pool to look up. */ - asset: Currency + asset?: Currency /** * The other asset of the AMM pool. */ - asset2: Currency + asset2?: Currency } /**