fix: structs need to use pick instead of object, and add uiAmountString (#15745)

This commit is contained in:
Josh
2021-03-05 14:08:40 -08:00
committed by GitHub
parent a43a783aa4
commit 437d9311fb

View File

@ -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),