From d0dd0f6eece2e14da6945d8b9e02e9b24348b19a Mon Sep 17 00:00:00 2001 From: gabkk Date: Fri, 12 Jul 2024 16:57:32 +0800 Subject: [PATCH 1/2] feat: Update getTopProfitableWalletPerToken return type --- .changeset/serious-olives-divide.md | 7 ++ .../src/generated/types/EvmNetWorthResult.ts | 11 ++++ .../types/EvmUnavailableChainNetWorth.ts | 43 +++++++++++++ ...lletTopProfitableWalletPerTokenResponse.ts | 64 +++++++++++++++++-- .../evmUtils/src/generated/types/index.ts | 1 + 5 files changed, 119 insertions(+), 7 deletions(-) create mode 100644 .changeset/serious-olives-divide.md create mode 100644 packages/common/evmUtils/src/generated/types/EvmUnavailableChainNetWorth.ts diff --git a/.changeset/serious-olives-divide.md b/.changeset/serious-olives-divide.md new file mode 100644 index 0000000000..e5666c03b1 --- /dev/null +++ b/.changeset/serious-olives-divide.md @@ -0,0 +1,7 @@ +--- +'@moralisweb3/common-evm-utils': patch +'@moralisweb3/evm-api': patch +'moralis': patch +--- + +Update the return types of the `getTopProfitableWalletPerToken` method. diff --git a/packages/common/evmUtils/src/generated/types/EvmNetWorthResult.ts b/packages/common/evmUtils/src/generated/types/EvmNetWorthResult.ts index 24692b3d2a..6b189b5a0c 100644 --- a/packages/common/evmUtils/src/generated/types/EvmNetWorthResult.ts +++ b/packages/common/evmUtils/src/generated/types/EvmNetWorthResult.ts @@ -1,4 +1,5 @@ import { EvmChainNetWorth, EvmChainNetWorthInput, EvmChainNetWorthJSON } from '../types/EvmChainNetWorth'; +import { EvmUnavailableChainNetWorth, EvmUnavailableChainNetWorthInput, EvmUnavailableChainNetWorthJSON } from '../types/EvmUnavailableChainNetWorth'; // $ref: #/components/schemas/netWorthResult // type: netWorthResult @@ -6,17 +7,20 @@ import { EvmChainNetWorth, EvmChainNetWorthInput, EvmChainNetWorthJSON } from '. // - total_networth_usd ($ref: #/components/schemas/netWorthResult/properties/total_networth_usd) // - chains ($ref: #/components/schemas/chainNetWorth) // - unsupported_chain_ids ($ref: #/components/schemas/netWorthResult/properties/unsupported_chain_ids) +// - unavailable_chains ($ref: #/components/schemas/unavailableChainNetWorth) export interface EvmNetWorthResultJSON { readonly total_networth_usd: string; readonly chains: EvmChainNetWorthJSON[]; readonly unsupported_chain_ids?: string[]; + readonly unavailable_chains?: EvmUnavailableChainNetWorthJSON[]; } export interface EvmNetWorthResultInput { readonly totalNetworthUsd: string; readonly chains: EvmChainNetWorthInput[] | EvmChainNetWorth[]; readonly unsupportedChainIds?: string[]; + readonly unavailableChains?: EvmUnavailableChainNetWorthInput[] | EvmUnavailableChainNetWorth[]; } export class EvmNetWorthResult { @@ -32,6 +36,7 @@ export class EvmNetWorthResult { totalNetworthUsd: json.total_networth_usd, chains: json.chains.map((item) => EvmChainNetWorth.fromJSON(item)), unsupportedChainIds: json.unsupported_chain_ids, + unavailableChains: json.unavailable_chains ? json.unavailable_chains.map((item) => EvmUnavailableChainNetWorth.fromJSON(item)) : undefined, }; return EvmNetWorthResult.create(input); } @@ -45,11 +50,16 @@ export class EvmNetWorthResult { * @description The chain ids that are not supported */ public readonly unsupportedChainIds?: string[]; + /** + * @description The chains that are not available during the request + */ + public readonly unavailableChains?: EvmUnavailableChainNetWorth[]; private constructor(input: EvmNetWorthResultInput) { this.totalNetworthUsd = input.totalNetworthUsd; this.chains = input.chains.map((item) => EvmChainNetWorth.create(item)); this.unsupportedChainIds = input.unsupportedChainIds; + this.unavailableChains = input.unavailableChains ? input.unavailableChains.map((item) => EvmUnavailableChainNetWorth.create(item)) : undefined; } public toJSON(): EvmNetWorthResultJSON { @@ -57,6 +67,7 @@ export class EvmNetWorthResult { total_networth_usd: this.totalNetworthUsd, chains: this.chains.map((item) => item.toJSON()), unsupported_chain_ids: this.unsupportedChainIds, + unavailable_chains: this.unavailableChains ? this.unavailableChains.map((item) => item.toJSON()) : undefined, } } } diff --git a/packages/common/evmUtils/src/generated/types/EvmUnavailableChainNetWorth.ts b/packages/common/evmUtils/src/generated/types/EvmUnavailableChainNetWorth.ts new file mode 100644 index 0000000000..ca78ecf738 --- /dev/null +++ b/packages/common/evmUtils/src/generated/types/EvmUnavailableChainNetWorth.ts @@ -0,0 +1,43 @@ +// $ref: #/components/schemas/unavailableChainNetWorth +// type: unavailableChainNetWorth +// properties: +// - chain_id ($ref: #/components/schemas/unavailableChainNetWorth/properties/chain_id) + +export interface EvmUnavailableChainNetWorthJSON { + readonly chain_id: string; +} + +export interface EvmUnavailableChainNetWorthInput { + readonly chainId: string; +} + +export class EvmUnavailableChainNetWorth { + public static create(input: EvmUnavailableChainNetWorthInput | EvmUnavailableChainNetWorth): EvmUnavailableChainNetWorth { + if (input instanceof EvmUnavailableChainNetWorth) { + return input; + } + return new EvmUnavailableChainNetWorth(input); + } + + public static fromJSON(json: EvmUnavailableChainNetWorthJSON): EvmUnavailableChainNetWorth { + const input: EvmUnavailableChainNetWorthInput = { + chainId: json.chain_id, + }; + return EvmUnavailableChainNetWorth.create(input); + } + + /** + * @description The chain id + */ + public readonly chainId: string; + + private constructor(input: EvmUnavailableChainNetWorthInput) { + this.chainId = input.chainId; + } + + public toJSON(): EvmUnavailableChainNetWorthJSON { + return { + chain_id: this.chainId, + } + } +} diff --git a/packages/common/evmUtils/src/generated/types/EvmWalletTopProfitableWalletPerTokenResponse.ts b/packages/common/evmUtils/src/generated/types/EvmWalletTopProfitableWalletPerTokenResponse.ts index 4a5236b45a..afeb5018c0 100644 --- a/packages/common/evmUtils/src/generated/types/EvmWalletTopProfitableWalletPerTokenResponse.ts +++ b/packages/common/evmUtils/src/generated/types/EvmWalletTopProfitableWalletPerTokenResponse.ts @@ -3,14 +3,29 @@ import { EvmTopProfitableWalletPerTokenResponse, EvmTopProfitableWalletPerTokenR // $ref: #/components/schemas/WalletTopProfitableWalletPerTokenResponse // type: WalletTopProfitableWalletPerTokenResponse // properties: -// - wallets ($ref: #/components/schemas/TopProfitableWalletPerTokenResponse) +// - name ($ref: #/components/schemas/WalletTopProfitableWalletPerTokenResponse/properties/name) +// - symbol ($ref: #/components/schemas/WalletTopProfitableWalletPerTokenResponse/properties/symbol) +// - decimals ($ref: #/components/schemas/WalletTopProfitableWalletPerTokenResponse/properties/decimals) +// - logo ($ref: #/components/schemas/WalletTopProfitableWalletPerTokenResponse/properties/logo) +// - possible_spam ($ref: #/components/schemas/WalletTopProfitableWalletPerTokenResponse/properties/possible_spam) +// - result ($ref: #/components/schemas/TopProfitableWalletPerTokenResponse) export interface EvmWalletTopProfitableWalletPerTokenResponseJSON { - readonly wallets: EvmTopProfitableWalletPerTokenResponseJSON[]; + readonly name: string; + readonly symbol: string; + readonly decimals: number; + readonly logo: string; + readonly possible_spam: boolean; + readonly result: EvmTopProfitableWalletPerTokenResponseJSON[]; } export interface EvmWalletTopProfitableWalletPerTokenResponseInput { - readonly wallets: EvmTopProfitableWalletPerTokenResponseInput[] | EvmTopProfitableWalletPerTokenResponse[]; + readonly name: string; + readonly symbol: string; + readonly decimals: number; + readonly logo: string; + readonly possibleSpam: boolean; + readonly result: EvmTopProfitableWalletPerTokenResponseInput[] | EvmTopProfitableWalletPerTokenResponse[]; } export class EvmWalletTopProfitableWalletPerTokenResponse { @@ -23,23 +38,58 @@ export class EvmWalletTopProfitableWalletPerTokenResponse { public static fromJSON(json: EvmWalletTopProfitableWalletPerTokenResponseJSON): EvmWalletTopProfitableWalletPerTokenResponse { const input: EvmWalletTopProfitableWalletPerTokenResponseInput = { - wallets: json.wallets.map((item) => EvmTopProfitableWalletPerTokenResponse.fromJSON(item)), + name: json.name, + symbol: json.symbol, + decimals: json.decimals, + logo: json.logo, + possibleSpam: json.possible_spam, + result: json.result.map((item) => EvmTopProfitableWalletPerTokenResponse.fromJSON(item)), }; return EvmWalletTopProfitableWalletPerTokenResponse.create(input); } + /** + * @description The name of the token contract + */ + public readonly name: string; + /** + * @description The symbol of the NFT contract + */ + public readonly symbol: string; + /** + * @description The number of decimals on the token + */ + public readonly decimals: number; + /** + * @description The logo of the token + */ + public readonly logo: string; + /** + * @description Indicates if a contract is possibly a spam contract + */ + public readonly possibleSpam: boolean; /** * @description List of top profitable wallets per token. */ - public readonly wallets: EvmTopProfitableWalletPerTokenResponse[]; + public readonly result: EvmTopProfitableWalletPerTokenResponse[]; private constructor(input: EvmWalletTopProfitableWalletPerTokenResponseInput) { - this.wallets = input.wallets.map((item) => EvmTopProfitableWalletPerTokenResponse.create(item)); + this.name = input.name; + this.symbol = input.symbol; + this.decimals = input.decimals; + this.logo = input.logo; + this.possibleSpam = input.possibleSpam; + this.result = input.result.map((item) => EvmTopProfitableWalletPerTokenResponse.create(item)); } public toJSON(): EvmWalletTopProfitableWalletPerTokenResponseJSON { return { - wallets: this.wallets.map((item) => item.toJSON()), + name: this.name, + symbol: this.symbol, + decimals: this.decimals, + logo: this.logo, + possible_spam: this.possibleSpam, + result: this.result.map((item) => item.toJSON()), } } } diff --git a/packages/common/evmUtils/src/generated/types/index.ts b/packages/common/evmUtils/src/generated/types/index.ts index dd7aed869a..7077c64921 100644 --- a/packages/common/evmUtils/src/generated/types/index.ts +++ b/packages/common/evmUtils/src/generated/types/index.ts @@ -54,6 +54,7 @@ export * from './EvmErc20TokenOwner'; export * from './EvmWalletHistoryTransaction'; export * from './EvmErc20TokenBalanceWithPrice'; export * from './EvmChainNetWorth'; +export * from './EvmUnavailableChainNetWorth'; export * from './EvmErc20Metadata'; export * from './EvmContractsReviewItem'; export * from './EvmDefiProtocolBalance'; From 91830762bcf0822985a3fc757ed9efbf90c7971d Mon Sep 17 00:00:00 2001 From: gabkk Date: Fri, 12 Jul 2024 16:59:07 +0800 Subject: [PATCH 2/2] fix: patch description --- .changeset/serious-olives-divide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/serious-olives-divide.md b/.changeset/serious-olives-divide.md index e5666c03b1..8817168dc3 100644 --- a/.changeset/serious-olives-divide.md +++ b/.changeset/serious-olives-divide.md @@ -4,4 +4,4 @@ 'moralis': patch --- -Update the return types of the `getTopProfitableWalletPerToken` method. +Update `getTopProfitableWalletPerToken` return objects.