Skip to content

Commit 6bd790d

Browse files
authored
feat: update getWalletHistory. (#1216)
1 parent 21aba04 commit 6bd790d

9 files changed

+326
-10
lines changed

.changeset/fuzzy-moose-yawn.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@moralisweb3/common-evm-utils': patch
3+
'@moralisweb3/evm-api': patch
4+
'moralis': patch
5+
---
6+
7+
Update the return types of the `getWalletHistory` method.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { EvmContractTokenDetails, EvmContractTokenDetailsInput, EvmContractTokenDetailsJSON } from '../types/EvmContractTokenDetails';
2+
import { EvmContractSpenderDetails, EvmContractSpenderDetailsInput, EvmContractSpenderDetailsJSON } from '../types/EvmContractSpenderDetails';
3+
4+
// $ref: #/components/schemas/CommonContractData
5+
// type: CommonContractData
6+
// properties:
7+
// - value ($ref: #/components/schemas/CommonContractData/properties/value)
8+
// - value_formatted ($ref: #/components/schemas/CommonContractData/properties/value_formatted)
9+
// - token ($ref: #/components/schemas/ContractTokenDetails)
10+
// - spender ($ref: #/components/schemas/ContractSpenderDetails)
11+
12+
export interface EvmCommonContractDataJSON {
13+
readonly value: string;
14+
readonly value_formatted?: string;
15+
readonly token: EvmContractTokenDetailsJSON;
16+
readonly spender: EvmContractSpenderDetailsJSON;
17+
}
18+
19+
export interface EvmCommonContractDataInput {
20+
readonly value: string;
21+
readonly valueFormatted?: string;
22+
readonly token: EvmContractTokenDetailsInput | EvmContractTokenDetails;
23+
readonly spender: EvmContractSpenderDetailsInput | EvmContractSpenderDetails;
24+
}
25+
26+
export class EvmCommonContractData {
27+
public static create(input: EvmCommonContractDataInput | EvmCommonContractData): EvmCommonContractData {
28+
if (input instanceof EvmCommonContractData) {
29+
return input;
30+
}
31+
return new EvmCommonContractData(input);
32+
}
33+
34+
public static fromJSON(json: EvmCommonContractDataJSON): EvmCommonContractData {
35+
const input: EvmCommonContractDataInput = {
36+
value: json.value,
37+
valueFormatted: json.value_formatted,
38+
token: EvmContractTokenDetails.fromJSON(json.token),
39+
spender: EvmContractSpenderDetails.fromJSON(json.spender),
40+
};
41+
return EvmCommonContractData.create(input);
42+
}
43+
44+
public readonly value: string;
45+
public readonly valueFormatted?: string;
46+
public readonly token: EvmContractTokenDetails;
47+
public readonly spender: EvmContractSpenderDetails;
48+
49+
private constructor(input: EvmCommonContractDataInput) {
50+
this.value = input.value;
51+
this.valueFormatted = input.valueFormatted;
52+
this.token = EvmContractTokenDetails.create(input.token);
53+
this.spender = EvmContractSpenderDetails.create(input.spender);
54+
}
55+
56+
public toJSON(): EvmCommonContractDataJSON {
57+
return {
58+
value: this.value,
59+
value_formatted: this.valueFormatted,
60+
token: this.token.toJSON(),
61+
spender: this.spender.toJSON(),
62+
}
63+
}
64+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { EvmAddress, EvmAddressInput, EvmAddressJSON } from '../../dataTypes';
2+
3+
// $ref: #/components/schemas/ContractSpenderDetails
4+
// type: ContractSpenderDetails
5+
// properties:
6+
// - address ($ref: #/components/schemas/ContractSpenderDetails/properties/address)
7+
// - address_label ($ref: #/components/schemas/ContractSpenderDetails/properties/address_label)
8+
// - name ($ref: #/components/schemas/ContractSpenderDetails/properties/name)
9+
// - symbol ($ref: #/components/schemas/ContractSpenderDetails/properties/symbol)
10+
// - logo ($ref: #/components/schemas/ContractSpenderDetails/properties/logo)
11+
12+
export interface EvmContractSpenderDetailsJSON {
13+
readonly address: EvmAddressJSON;
14+
readonly address_label?: string;
15+
readonly name?: string;
16+
readonly symbol?: string;
17+
readonly logo?: string;
18+
}
19+
20+
export interface EvmContractSpenderDetailsInput {
21+
readonly address: EvmAddressInput | EvmAddress;
22+
readonly addressLabel?: string;
23+
readonly name?: string;
24+
readonly symbol?: string;
25+
readonly logo?: string;
26+
}
27+
28+
export class EvmContractSpenderDetails {
29+
public static create(input: EvmContractSpenderDetailsInput | EvmContractSpenderDetails): EvmContractSpenderDetails {
30+
if (input instanceof EvmContractSpenderDetails) {
31+
return input;
32+
}
33+
return new EvmContractSpenderDetails(input);
34+
}
35+
36+
public static fromJSON(json: EvmContractSpenderDetailsJSON): EvmContractSpenderDetails {
37+
const input: EvmContractSpenderDetailsInput = {
38+
address: EvmAddress.fromJSON(json.address),
39+
addressLabel: json.address_label,
40+
name: json.name,
41+
symbol: json.symbol,
42+
logo: json.logo,
43+
};
44+
return EvmContractSpenderDetails.create(input);
45+
}
46+
47+
public readonly address: EvmAddress;
48+
public readonly addressLabel?: string;
49+
public readonly name?: string;
50+
public readonly symbol?: string;
51+
public readonly logo?: string;
52+
53+
private constructor(input: EvmContractSpenderDetailsInput) {
54+
this.address = EvmAddress.create(input.address);
55+
this.addressLabel = input.addressLabel;
56+
this.name = input.name;
57+
this.symbol = input.symbol;
58+
this.logo = input.logo;
59+
}
60+
61+
public toJSON(): EvmContractSpenderDetailsJSON {
62+
return {
63+
address: this.address.toJSON(),
64+
address_label: this.addressLabel,
65+
name: this.name,
66+
symbol: this.symbol,
67+
logo: this.logo,
68+
}
69+
}
70+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { EvmAddress, EvmAddressInput, EvmAddressJSON } from '../../dataTypes';
2+
3+
// $ref: #/components/schemas/ContractTokenDetails
4+
// type: ContractTokenDetails
5+
// properties:
6+
// - address ($ref: #/components/schemas/ContractTokenDetails/properties/address)
7+
// - address_label ($ref: #/components/schemas/ContractTokenDetails/properties/address_label)
8+
// - token_name ($ref: #/components/schemas/ContractTokenDetails/properties/token_name)
9+
// - token_logo ($ref: #/components/schemas/ContractTokenDetails/properties/token_logo)
10+
// - token_symbol ($ref: #/components/schemas/ContractTokenDetails/properties/token_symbol)
11+
12+
export interface EvmContractTokenDetailsJSON {
13+
readonly address: EvmAddressJSON;
14+
readonly address_label?: string;
15+
readonly token_name: string;
16+
readonly token_logo: string;
17+
readonly token_symbol: string;
18+
}
19+
20+
export interface EvmContractTokenDetailsInput {
21+
readonly address: EvmAddressInput | EvmAddress;
22+
readonly addressLabel?: string;
23+
readonly tokenName: string;
24+
readonly tokenLogo: string;
25+
readonly tokenSymbol: string;
26+
}
27+
28+
export class EvmContractTokenDetails {
29+
public static create(input: EvmContractTokenDetailsInput | EvmContractTokenDetails): EvmContractTokenDetails {
30+
if (input instanceof EvmContractTokenDetails) {
31+
return input;
32+
}
33+
return new EvmContractTokenDetails(input);
34+
}
35+
36+
public static fromJSON(json: EvmContractTokenDetailsJSON): EvmContractTokenDetails {
37+
const input: EvmContractTokenDetailsInput = {
38+
address: EvmAddress.fromJSON(json.address),
39+
addressLabel: json.address_label,
40+
tokenName: json.token_name,
41+
tokenLogo: json.token_logo,
42+
tokenSymbol: json.token_symbol,
43+
};
44+
return EvmContractTokenDetails.create(input);
45+
}
46+
47+
public readonly address: EvmAddress;
48+
public readonly addressLabel?: string;
49+
public readonly tokenName: string;
50+
public readonly tokenLogo: string;
51+
public readonly tokenSymbol: string;
52+
53+
private constructor(input: EvmContractTokenDetailsInput) {
54+
this.address = EvmAddress.create(input.address);
55+
this.addressLabel = input.addressLabel;
56+
this.tokenName = input.tokenName;
57+
this.tokenLogo = input.tokenLogo;
58+
this.tokenSymbol = input.tokenSymbol;
59+
}
60+
61+
public toJSON(): EvmContractTokenDetailsJSON {
62+
return {
63+
address: this.address.toJSON(),
64+
address_label: this.addressLabel,
65+
token_name: this.tokenName,
66+
token_logo: this.tokenLogo,
67+
token_symbol: this.tokenSymbol,
68+
}
69+
}
70+
}

packages/common/evmUtils/src/generated/types/EvmDefiPositionDetails.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ import { EvmDefiPositionDetailsNftMetadata, EvmDefiPositionDetailsNftMetadataVal
2727
// - factory ($ref: #/components/schemas/defiPositionDetails/properties/factory)
2828
// - pair ($ref: #/components/schemas/defiPositionDetails/properties/pair)
2929
// - share_of_pool ($ref: #/components/schemas/defiPositionDetails/properties/share_of_pool)
30+
// - no_price_available ($ref: #/components/schemas/defiPositionDetails/properties/no_price_available)
31+
// - shares_in_strategy ($ref: #/components/schemas/defiPositionDetails/properties/shares_in_strategy)
32+
// - strategy_address ($ref: #/components/schemas/defiPositionDetails/properties/strategy_address)
3033

3134
export interface EvmDefiPositionDetailsJSON {
3235
readonly fee_tier?: number;
@@ -53,6 +56,9 @@ export interface EvmDefiPositionDetailsJSON {
5356
readonly factory?: string;
5457
readonly pair?: string;
5558
readonly share_of_pool?: number;
59+
readonly no_price_available?: boolean;
60+
readonly shares_in_strategy?: string;
61+
readonly strategy_address?: string;
5662
}
5763

5864
export interface EvmDefiPositionDetailsInput {
@@ -80,6 +86,9 @@ export interface EvmDefiPositionDetailsInput {
8086
readonly factory?: string;
8187
readonly pair?: string;
8288
readonly shareOfPool?: number;
89+
readonly noPriceAvailable?: boolean;
90+
readonly sharesInStrategy?: string;
91+
readonly strategyAddress?: string;
8392
}
8493

8594
export class EvmDefiPositionDetails {
@@ -116,6 +125,9 @@ export class EvmDefiPositionDetails {
116125
factory: json.factory,
117126
pair: json.pair,
118127
shareOfPool: json.share_of_pool,
128+
noPriceAvailable: json.no_price_available,
129+
sharesInStrategy: json.shares_in_strategy,
130+
strategyAddress: json.strategy_address,
119131
};
120132
return EvmDefiPositionDetails.create(input);
121133
}
@@ -216,6 +228,18 @@ export class EvmDefiPositionDetails {
216228
* @description The share of the pool
217229
*/
218230
public readonly shareOfPool?: number;
231+
/**
232+
* @description Whether the price is available
233+
*/
234+
public readonly noPriceAvailable?: boolean;
235+
/**
236+
* @description The shares in the strategy
237+
*/
238+
public readonly sharesInStrategy?: string;
239+
/**
240+
* @description The address of the strategy
241+
*/
242+
public readonly strategyAddress?: string;
219243

220244
private constructor(input: EvmDefiPositionDetailsInput) {
221245
this.feeTier = input.feeTier;
@@ -242,6 +266,9 @@ export class EvmDefiPositionDetails {
242266
this.factory = input.factory;
243267
this.pair = input.pair;
244268
this.shareOfPool = input.shareOfPool;
269+
this.noPriceAvailable = input.noPriceAvailable;
270+
this.sharesInStrategy = input.sharesInStrategy;
271+
this.strategyAddress = input.strategyAddress;
245272
}
246273

247274
public toJSON(): EvmDefiPositionDetailsJSON {
@@ -270,6 +297,9 @@ export class EvmDefiPositionDetails {
270297
factory: this.factory,
271298
pair: this.pair,
272299
share_of_pool: this.shareOfPool,
300+
no_price_available: this.noPriceAvailable,
301+
shares_in_strategy: this.sharesInStrategy,
302+
strategy_address: this.strategyAddress,
273303
}
274304
}
275305
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { EvmCommonContractData, EvmCommonContractDataInput, EvmCommonContractDataJSON } from '../types/EvmCommonContractData';
2+
3+
// $ref: #/components/schemas/ResolveContractInteractionResponse
4+
// type: ResolveContractInteractionResponse
5+
// properties:
6+
// - approvals ($ref: #/components/schemas/CommonContractData)
7+
// - revokes ($ref: #/components/schemas/CommonContractData)
8+
// - approvalsAll ($ref: #/components/schemas/CommonContractData)
9+
// - revokesAll ($ref: #/components/schemas/CommonContractData)
10+
11+
export interface EvmResolveContractInteractionResponseJSON {
12+
readonly approvals?: EvmCommonContractDataJSON[];
13+
readonly revokes?: EvmCommonContractDataJSON[];
14+
readonly approvalsAll?: EvmCommonContractDataJSON[];
15+
readonly revokesAll?: EvmCommonContractDataJSON[];
16+
}
17+
18+
export interface EvmResolveContractInteractionResponseInput {
19+
readonly approvals?: EvmCommonContractDataInput[] | EvmCommonContractData[];
20+
readonly revokes?: EvmCommonContractDataInput[] | EvmCommonContractData[];
21+
readonly approvalsAll?: EvmCommonContractDataInput[] | EvmCommonContractData[];
22+
readonly revokesAll?: EvmCommonContractDataInput[] | EvmCommonContractData[];
23+
}
24+
25+
export class EvmResolveContractInteractionResponse {
26+
public static create(input: EvmResolveContractInteractionResponseInput | EvmResolveContractInteractionResponse): EvmResolveContractInteractionResponse {
27+
if (input instanceof EvmResolveContractInteractionResponse) {
28+
return input;
29+
}
30+
return new EvmResolveContractInteractionResponse(input);
31+
}
32+
33+
public static fromJSON(json: EvmResolveContractInteractionResponseJSON): EvmResolveContractInteractionResponse {
34+
const input: EvmResolveContractInteractionResponseInput = {
35+
approvals: json.approvals ? json.approvals.map((item) => EvmCommonContractData.fromJSON(item)) : undefined,
36+
revokes: json.revokes ? json.revokes.map((item) => EvmCommonContractData.fromJSON(item)) : undefined,
37+
approvalsAll: json.approvalsAll ? json.approvalsAll.map((item) => EvmCommonContractData.fromJSON(item)) : undefined,
38+
revokesAll: json.revokesAll ? json.revokesAll.map((item) => EvmCommonContractData.fromJSON(item)) : undefined,
39+
};
40+
return EvmResolveContractInteractionResponse.create(input);
41+
}
42+
43+
public readonly approvals?: EvmCommonContractData[];
44+
public readonly revokes?: EvmCommonContractData[];
45+
public readonly approvalsAll?: EvmCommonContractData[];
46+
public readonly revokesAll?: EvmCommonContractData[];
47+
48+
private constructor(input: EvmResolveContractInteractionResponseInput) {
49+
this.approvals = input.approvals ? input.approvals.map((item) => EvmCommonContractData.create(item)) : undefined;
50+
this.revokes = input.revokes ? input.revokes.map((item) => EvmCommonContractData.create(item)) : undefined;
51+
this.approvalsAll = input.approvalsAll ? input.approvalsAll.map((item) => EvmCommonContractData.create(item)) : undefined;
52+
this.revokesAll = input.revokesAll ? input.revokesAll.map((item) => EvmCommonContractData.create(item)) : undefined;
53+
}
54+
55+
public toJSON(): EvmResolveContractInteractionResponseJSON {
56+
return {
57+
approvals: this.approvals ? this.approvals.map((item) => item.toJSON()) : undefined,
58+
revokes: this.revokes ? this.revokes.map((item) => item.toJSON()) : undefined,
59+
approvalsAll: this.approvalsAll ? this.approvalsAll.map((item) => item.toJSON()) : undefined,
60+
revokesAll: this.revokesAll ? this.revokesAll.map((item) => item.toJSON()) : undefined,
61+
}
62+
}
63+
}

0 commit comments

Comments
 (0)