diff --git a/packages/xrpl/HISTORY.md b/packages/xrpl/HISTORY.md index a23b4fdb..50eaf380 100644 --- a/packages/xrpl/HISTORY.md +++ b/packages/xrpl/HISTORY.md @@ -4,6 +4,8 @@ Subscribe to [the **xrpl-announce** mailing list](https://groups.google.com/g/xr ## Unreleased +### Added +* Add `nfts_by_issuer` clio-only API definition ## 3.1.0 (2024-06-03) ### BREAKING CHANGES diff --git a/packages/xrpl/src/models/methods/index.ts b/packages/xrpl/src/models/methods/index.ts index bd0ca206..a704cabd 100644 --- a/packages/xrpl/src/models/methods/index.ts +++ b/packages/xrpl/src/models/methods/index.ts @@ -100,6 +100,7 @@ import { NFTHistoryTransaction, } from './nftHistory' import { NFTInfoRequest, NFTInfoResponse } from './nftInfo' +import { NFTsByIssuerRequest, NFTsByIssuerResponse } from './nftsByIssuer' import { NFTSellOffersRequest, NFTSellOffersResponse } from './nftSellOffers' import { NoRippleCheckRequest, NoRippleCheckResponse } from './norippleCheck' import { @@ -212,6 +213,7 @@ type Request = // clio only methods | NFTInfoRequest | NFTHistoryRequest + | NFTsByIssuerRequest // AMM methods | AMMInfoRequest // Price Oracle methods @@ -268,6 +270,7 @@ type Response = // clio only methods | NFTInfoResponse | NFTHistoryResponse + | NFTsByIssuerResponse // AMM methods | AMMInfoResponse // Price Oracle methods @@ -413,6 +416,8 @@ export type RequestResponseMap = T extends AccountChannelsRequest ? NFTSellOffersResponse : T extends NFTInfoRequest ? NFTInfoResponse + : T extends NFTsByIssuerRequest + ? NFTsByIssuerResponse : T extends NFTHistoryRequest ? NFTHistoryResponse : Response @@ -582,6 +587,8 @@ export { NFTHistoryRequest, NFTHistoryResponse, NFTHistoryTransaction, + NFTsByIssuerRequest, + NFTsByIssuerResponse, // AMM methods AMMInfoRequest, AMMInfoResponse, diff --git a/packages/xrpl/src/models/methods/nftsByIssuer.ts b/packages/xrpl/src/models/methods/nftsByIssuer.ts new file mode 100644 index 00000000..ac46a4b7 --- /dev/null +++ b/packages/xrpl/src/models/methods/nftsByIssuer.ts @@ -0,0 +1,68 @@ +import { NFToken } from '../common' + +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' + +/** + * The nfts_by_issuer method returns a list of NFTokens issued by the account. + * The order of the NFTs is not associated with the date the NFTs were minted. + * Expects a response in the form of a {@link + * NFTsByIssuerResponse}. + * + * @category Requests + */ +export interface NFTsByIssuerRequest + extends BaseRequest, + LookupByLedgerRequest { + command: 'nfts_by_issuer' + /** + * A unique identifier for the account, most commonly the account's address + */ + issuer: string + /** + * Value from a previous paginated response. Resume retrieving data where + * that response left off. This value is stable even if there is a change in + * the server's range of available ledgers. + */ + marker?: unknown + /** + * Filter NFTs issued by this issuer that have this taxon. + */ + nft_taxon?: number + /** + * Default varies. Limit the number of transactions to retrieve. The server + * is not required to honor this value. + */ + limit?: number +} + +/** + * Expected response from an {@link NFTsByIssuerRequest}. + * + * @category Responses + */ +export interface NFTsByIssuerResponse extends BaseResponse { + result: { + /** + * The unique identifier for the account, most commonly the account's address + */ + issuer: string + /** + * A list of NFTs issued by the account. + * The order of the NFTs is not associated with the date the NFTs were minted. + */ + nfts: NFToken[] + /** + * Server-defined value indicating the response is paginated. Pass this + * to the next call to resume where this call left off. + */ + marker?: unknown + /** + * The limit value used in the request. + */ + limit?: number + /** + * Use to filter NFTs issued by this issuer that have this taxon. + */ + nft_taxon?: number + } +}