fix: structs need to use pick instead of object, and add uiAmountString (#15745)
This commit is contained in:
@ -2,23 +2,22 @@
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
enums,
|
enums,
|
||||||
object,
|
pick,
|
||||||
StructType,
|
StructType,
|
||||||
number,
|
number,
|
||||||
string,
|
string,
|
||||||
optional,
|
optional,
|
||||||
array,
|
array,
|
||||||
pick,
|
|
||||||
nullable,
|
nullable,
|
||||||
union,
|
union,
|
||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { Pubkey } from "validators/pubkey";
|
import { Pubkey } from "validators/pubkey";
|
||||||
|
|
||||||
export type TokenAmountUi = StructType<typeof TokenAmountUi>;
|
export type TokenAmountUi = StructType<typeof TokenAmountUi>;
|
||||||
export const TokenAmountUi = object({
|
export const TokenAmountUi = pick({
|
||||||
amount: string(),
|
amount: string(),
|
||||||
decimals: number(),
|
decimals: number(),
|
||||||
uiAmount: number(),
|
uiAmountString: string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const InitializeMint = pick({
|
const InitializeMint = pick({
|
||||||
@ -43,7 +42,7 @@ const InitializeMultisig = pick({
|
|||||||
m: number(),
|
m: number(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const Transfer = object({
|
const Transfer = pick({
|
||||||
source: Pubkey,
|
source: Pubkey,
|
||||||
destination: Pubkey,
|
destination: Pubkey,
|
||||||
amount: union([string(), number()]),
|
amount: union([string(), number()]),
|
||||||
@ -52,7 +51,7 @@ const Transfer = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const Approve = object({
|
const Approve = pick({
|
||||||
source: Pubkey,
|
source: Pubkey,
|
||||||
delegate: Pubkey,
|
delegate: Pubkey,
|
||||||
amount: union([string(), number()]),
|
amount: union([string(), number()]),
|
||||||
@ -61,7 +60,7 @@ const Approve = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const Revoke = object({
|
const Revoke = pick({
|
||||||
source: Pubkey,
|
source: Pubkey,
|
||||||
owner: optional(Pubkey),
|
owner: optional(Pubkey),
|
||||||
multisigOwner: optional(Pubkey),
|
multisigOwner: optional(Pubkey),
|
||||||
@ -75,7 +74,7 @@ const AuthorityType = enums([
|
|||||||
"closeAccount",
|
"closeAccount",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const SetAuthority = object({
|
const SetAuthority = pick({
|
||||||
mint: optional(Pubkey),
|
mint: optional(Pubkey),
|
||||||
account: optional(Pubkey),
|
account: optional(Pubkey),
|
||||||
authorityType: AuthorityType,
|
authorityType: AuthorityType,
|
||||||
@ -85,7 +84,7 @@ const SetAuthority = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const MintTo = object({
|
const MintTo = pick({
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
amount: union([string(), number()]),
|
amount: union([string(), number()]),
|
||||||
@ -94,7 +93,7 @@ const MintTo = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const Burn = object({
|
const Burn = pick({
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
amount: union([string(), number()]),
|
amount: union([string(), number()]),
|
||||||
@ -103,7 +102,7 @@ const Burn = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const CloseAccount = object({
|
const CloseAccount = pick({
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
destination: Pubkey,
|
destination: Pubkey,
|
||||||
owner: optional(Pubkey),
|
owner: optional(Pubkey),
|
||||||
@ -111,7 +110,7 @@ const CloseAccount = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const FreezeAccount = object({
|
const FreezeAccount = pick({
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
freezeAuthority: optional(Pubkey),
|
freezeAuthority: optional(Pubkey),
|
||||||
@ -119,7 +118,7 @@ const FreezeAccount = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const ThawAccount = object({
|
const ThawAccount = pick({
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
freezeAuthority: optional(Pubkey),
|
freezeAuthority: optional(Pubkey),
|
||||||
@ -127,7 +126,7 @@ const ThawAccount = object({
|
|||||||
signers: optional(array(Pubkey)),
|
signers: optional(array(Pubkey)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const TransferChecked = object({
|
const TransferChecked = pick({
|
||||||
source: Pubkey,
|
source: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
destination: Pubkey,
|
destination: Pubkey,
|
||||||
@ -137,7 +136,7 @@ const TransferChecked = object({
|
|||||||
tokenAmount: TokenAmountUi,
|
tokenAmount: TokenAmountUi,
|
||||||
});
|
});
|
||||||
|
|
||||||
const ApproveChecked = object({
|
const ApproveChecked = pick({
|
||||||
source: Pubkey,
|
source: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
delegate: Pubkey,
|
delegate: Pubkey,
|
||||||
@ -147,7 +146,7 @@ const ApproveChecked = object({
|
|||||||
tokenAmount: TokenAmountUi,
|
tokenAmount: TokenAmountUi,
|
||||||
});
|
});
|
||||||
|
|
||||||
const MintToChecked = object({
|
const MintToChecked = pick({
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
mintAuthority: optional(Pubkey),
|
mintAuthority: optional(Pubkey),
|
||||||
@ -156,7 +155,7 @@ const MintToChecked = object({
|
|||||||
tokenAmount: TokenAmountUi,
|
tokenAmount: TokenAmountUi,
|
||||||
});
|
});
|
||||||
|
|
||||||
const BurnChecked = object({
|
const BurnChecked = pick({
|
||||||
account: Pubkey,
|
account: Pubkey,
|
||||||
mint: Pubkey,
|
mint: Pubkey,
|
||||||
authority: optional(Pubkey),
|
authority: optional(Pubkey),
|
||||||
|
Reference in New Issue
Block a user