Skip to content

Commit 2897610

Browse files
authored
ts: fill in some gaps for ts IDL types (otter-sec#1393)
1 parent 43bdf48 commit 2897610

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ incremented for features.
1414
### Fixes
1515

1616
* ts: Fix the root type declaration of the `Wallet` / `NodeWallet` class. ([#1363](https://github.com/project-serum/anchor/pull/1363))
17+
* ts: Improve type mapping of Account fields into Typescript with additional support for `Option<T>` and `Vec<String>` types. ([#1393](https://github.com/project-serum/anchor/pull/1393))
1718

1819
### Features
1920

ts/src/program/namespace/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ export type MethodsFn<
9292
type TypeMap = {
9393
publicKey: PublicKey;
9494
bool: boolean;
95+
string: string;
9596
} & {
9697
[K in "u8" | "i8" | "u16" | "i16" | "u32" | "i32"]: number;
9798
} &
@@ -105,6 +106,8 @@ export type DecodeType<T extends IdlType, Defined> = T extends keyof TypeMap
105106
? Defined[T["defined"]]
106107
: T extends { option: { defined: keyof Defined } }
107108
? Defined[T["option"]["defined"]] | null
109+
: T extends { option: keyof TypeMap }
110+
? TypeMap[T["option"]]
108111
: T extends { vec: keyof TypeMap }
109112
? TypeMap[T["vec"]][]
110113
: T extends { array: [defined: keyof TypeMap, size: number] }

0 commit comments

Comments
 (0)