@sentio/sdk 3.9.0-rc.4 → 3.9.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/lib/solana/builtin/index.d.ts +1 -0
  2. package/lib/solana/builtin/index.d.ts.map +1 -1
  3. package/lib/solana/builtin/index.js +1 -0
  4. package/lib/solana/builtin/index.js.map +1 -1
  5. package/lib/solana/builtin/spl-token-2022-processor.d.ts +46 -0
  6. package/lib/solana/builtin/spl-token-2022-processor.d.ts.map +1 -0
  7. package/lib/solana/builtin/spl-token-2022-processor.js +132 -0
  8. package/lib/solana/builtin/spl-token-2022-processor.js.map +1 -0
  9. package/lib/solana/builtin/spl-token-processor.d.ts +30 -30
  10. package/lib/solana/builtin/spl-token-processor.d.ts.map +1 -1
  11. package/lib/solana/builtin/types.d.ts +1699 -81
  12. package/lib/solana/builtin/types.d.ts.map +1 -1
  13. package/lib/solana/builtin/types.js +520 -72
  14. package/lib/solana/builtin/types.js.map +1 -1
  15. package/lib/solana/codegen/codegen.js +2 -2
  16. package/lib/solana/codegen/codegen.js.map +1 -1
  17. package/lib/solana/index.d.ts +1 -1
  18. package/lib/solana/index.js +1 -1
  19. package/lib/solana/solana-context.d.ts +1 -1
  20. package/lib/solana/solana-context.d.ts.map +1 -1
  21. package/lib/solana/solana-processor.d.ts +2 -2
  22. package/lib/solana/solana-processor.d.ts.map +1 -1
  23. package/lib/solana/solana-rpc-types.d.ts +75 -0
  24. package/lib/solana/solana-rpc-types.d.ts.map +1 -0
  25. package/lib/solana/solana-rpc-types.js +2 -0
  26. package/lib/solana/solana-rpc-types.js.map +1 -0
  27. package/package.json +6 -6
  28. package/src/solana/builtin/index.ts +2 -1
  29. package/src/solana/builtin/spl-token-2022-processor.ts +324 -0
  30. package/src/solana/builtin/spl-token-processor.ts +30 -30
  31. package/src/solana/builtin/types.ts +659 -144
  32. package/src/solana/codegen/codegen.ts +6 -6
  33. package/src/solana/index.ts +1 -1
  34. package/src/solana/solana-context.ts +1 -1
  35. package/src/solana/solana-plugin.ts +1 -1
  36. package/src/solana/solana-processor.ts +2 -2
  37. package/src/solana/solana-rpc-types.ts +73 -0
@@ -1,280 +1,795 @@
1
1
  /* eslint-disable @typescript-eslint/no-redeclare */
2
- // copy from https://github.com/solana-labs/solana/blob/master/explorer/src/components/instruction/token/types.ts
3
- // https://github.com/solana-labs/explorer/blob/411b42439553262ef9036985d287a7249acaad77/src/components/instruction/token/types.ts
2
+ // Synced from https://github.com/solana-foundation/explorer/blob/master/app/components/instruction/token/types.ts
3
+ // Local `PublicKeyFromString` is a string-coercing variant (we use kit's `Address` branded
4
+ // string instead of v1's `PublicKey` class), so the import is replaced. Everything else
5
+ // mirrors the upstream JSON-parsed shape produced by Solana RPC's `jsonParsed` encoding.
4
6
 
5
7
  import {
8
+ array,
9
+ boolean,
10
+ coerce,
6
11
  enums,
7
- type,
8
12
  Infer,
13
+ instance,
14
+ nullable,
9
15
  number,
10
- string,
11
16
  optional,
12
- array,
13
- nullable,
17
+ string,
18
+ type,
14
19
  union,
15
- coerce,
16
- instance,
17
- } from "superstruct";
18
-
19
- // Replace with string
20
- export const PublicKeyFromString = coerce(
21
- instance(String),
22
- string(),
23
- (value) => (value)
24
- );
25
-
26
- export type TokenAmountUi = Infer<typeof TokenAmountUi>;
27
- export type MintTo = Infer<typeof MintTo>;
28
- export type Burn = Infer<typeof Burn>;
29
- export type InitializeMint = Infer<typeof InitializeMint>;
30
- export type InitializeAccount = Infer<typeof InitializeAccount>;
31
- export type InitializeAccount2 = Infer<typeof InitializeAccount2>;
32
- export type InitializeAccount3 = Infer<typeof InitializeAccount3>;
33
- export type InitializeMultisig = Infer<typeof InitializeMultisig>;
20
+ } from 'superstruct'
34
21
 
22
+ export const PublicKeyFromString = coerce(instance(String), string(), (value) => value)
23
+
24
+ export type TokenAmountUi = Infer<typeof TokenAmountUi>
35
25
  export const TokenAmountUi = type({
36
26
  amount: string(),
37
27
  decimals: number(),
38
28
  uiAmountString: string(),
39
- });
29
+ })
40
30
 
41
- const InitializeMint = type({
42
- mint: PublicKeyFromString,
31
+ export type InitializeMint = Infer<typeof InitializeMint>
32
+ export const InitializeMint = type({
43
33
  decimals: number(),
34
+ freezeAuthority: optional(PublicKeyFromString),
35
+ mint: PublicKeyFromString,
44
36
  mintAuthority: PublicKeyFromString,
45
37
  rentSysvar: PublicKeyFromString,
46
- freezeAuthority: optional(PublicKeyFromString),
47
- });
38
+ })
48
39
 
49
- const InitializeAccount = type({
40
+ export type InitializeMint2 = Infer<typeof InitializeMint2>
41
+ export const InitializeMint2 = type({
42
+ decimals: number(),
43
+ freezeAuthority: PublicKeyFromString,
44
+ freezeAuthorityOption: optional(number()),
45
+ mint: PublicKeyFromString,
46
+ mintAuthority: PublicKeyFromString,
47
+ })
48
+
49
+ export type InitializeAccount = Infer<typeof InitializeAccount>
50
+ export const InitializeAccount = type({
50
51
  account: PublicKeyFromString,
51
52
  mint: PublicKeyFromString,
52
53
  owner: PublicKeyFromString,
53
54
  rentSysvar: PublicKeyFromString,
54
- });
55
+ })
55
56
 
56
- const InitializeAccount2 = type({
57
+ export type InitializeAccount2 = Infer<typeof InitializeAccount2>
58
+ export const InitializeAccount2 = type({
57
59
  account: PublicKeyFromString,
58
60
  mint: PublicKeyFromString,
59
- rentSysvar: PublicKeyFromString,
60
61
  owner: PublicKeyFromString,
61
- });
62
+ rentSysvar: PublicKeyFromString,
63
+ })
62
64
 
63
- const InitializeAccount3 = type({
65
+ export type InitializeAccount3 = Infer<typeof InitializeAccount3>
66
+ export const InitializeAccount3 = type({
64
67
  account: PublicKeyFromString,
65
68
  mint: PublicKeyFromString,
66
69
  owner: PublicKeyFromString,
67
- });
70
+ })
68
71
 
69
- const InitializeMultisig = type({
72
+ export type InitializeMultisig = Infer<typeof InitializeMultisig>
73
+ export const InitializeMultisig = type({
74
+ m: number(),
70
75
  multisig: PublicKeyFromString,
71
76
  rentSysvar: PublicKeyFromString,
72
77
  signers: array(PublicKeyFromString),
73
- m: number(),
74
- });
78
+ })
75
79
 
76
- export type Transfer = Infer<typeof Transfer>;
80
+ export type Transfer = Infer<typeof Transfer>
77
81
  export const Transfer = type({
78
- source: PublicKeyFromString,
79
- destination: PublicKeyFromString,
80
82
  amount: union([string(), number()]),
81
83
  authority: optional(PublicKeyFromString),
84
+ destination: PublicKeyFromString,
82
85
  multisigAuthority: optional(PublicKeyFromString),
83
86
  signers: optional(array(PublicKeyFromString)),
84
- });
85
-
86
- export type Approve = Infer<typeof Approve>;
87
- const Approve = type({
88
87
  source: PublicKeyFromString,
89
- delegate: PublicKeyFromString,
88
+ })
89
+
90
+ export type Approve = Infer<typeof Approve>
91
+ export const Approve = type({
90
92
  amount: union([string(), number()]),
91
- owner: optional(PublicKeyFromString),
93
+ delegate: PublicKeyFromString,
92
94
  multisigOwner: optional(PublicKeyFromString),
95
+ owner: optional(PublicKeyFromString),
93
96
  signers: optional(array(PublicKeyFromString)),
94
- });
95
-
96
- export type Revoke = Infer<typeof Revoke>;
97
- const Revoke = type({
98
97
  source: PublicKeyFromString,
99
- owner: optional(PublicKeyFromString),
98
+ })
99
+
100
+ export type Revoke = Infer<typeof Revoke>
101
+ export const Revoke = type({
100
102
  multisigOwner: optional(PublicKeyFromString),
103
+ owner: optional(PublicKeyFromString),
101
104
  signers: optional(array(PublicKeyFromString)),
102
- });
105
+ source: PublicKeyFromString,
106
+ })
103
107
 
104
- const AuthorityType = enums([
105
- "mintTokens",
106
- "freezeAccount",
107
- "accountOwner",
108
- "closeAccount",
109
- ]);
108
+ const AuthorityType = enums(['mintTokens', 'freezeAccount', 'accountOwner', 'closeAccount'])
110
109
 
111
- export type SetAuthority = Infer<typeof SetAuthority>;
112
- const SetAuthority = type({
113
- mint: optional(PublicKeyFromString),
110
+ export type SetAuthority = Infer<typeof SetAuthority>
111
+ export const SetAuthority = type({
114
112
  account: optional(PublicKeyFromString),
115
- authorityType: AuthorityType,
116
- newAuthority: nullable(PublicKeyFromString),
117
113
  authority: optional(PublicKeyFromString),
114
+ authorityType: AuthorityType,
115
+ mint: optional(PublicKeyFromString),
118
116
  multisigAuthority: optional(PublicKeyFromString),
117
+ newAuthority: nullable(PublicKeyFromString),
119
118
  signers: optional(array(PublicKeyFromString)),
120
- });
119
+ })
121
120
 
122
- const MintTo = type({
123
- mint: PublicKeyFromString,
121
+ export type MintTo = Infer<typeof MintTo>
122
+ export const MintTo = type({
124
123
  account: PublicKeyFromString,
125
124
  amount: union([string(), number()]),
125
+ mint: PublicKeyFromString,
126
126
  mintAuthority: optional(PublicKeyFromString),
127
127
  multisigMintAuthority: optional(PublicKeyFromString),
128
128
  signers: optional(array(PublicKeyFromString)),
129
- });
129
+ })
130
130
 
131
- const Burn = type({
131
+ export type Burn = Infer<typeof Burn>
132
+ export const Burn = type({
132
133
  account: PublicKeyFromString,
133
- mint: PublicKeyFromString,
134
134
  amount: union([string(), number()]),
135
135
  authority: optional(PublicKeyFromString),
136
+ mint: PublicKeyFromString,
136
137
  multisigAuthority: optional(PublicKeyFromString),
137
138
  signers: optional(array(PublicKeyFromString)),
138
- });
139
+ })
139
140
 
140
- const CloseAccount = type({
141
+ export type CloseAccount = Infer<typeof CloseAccount>
142
+ export const CloseAccount = type({
141
143
  account: PublicKeyFromString,
142
144
  destination: PublicKeyFromString,
143
- owner: optional(PublicKeyFromString),
144
145
  multisigOwner: optional(PublicKeyFromString),
146
+ owner: optional(PublicKeyFromString),
145
147
  signers: optional(array(PublicKeyFromString)),
146
- });
147
- export type CloseAccount = Infer<typeof CloseAccount>;
148
+ })
148
149
 
149
- export type FreezeAccount = Infer<typeof FreezeAccount>;
150
- const FreezeAccount = type({
150
+ export type FreezeAccount = Infer<typeof FreezeAccount>
151
+ export const FreezeAccount = type({
151
152
  account: PublicKeyFromString,
152
- mint: PublicKeyFromString,
153
153
  freezeAuthority: optional(PublicKeyFromString),
154
+ mint: PublicKeyFromString,
154
155
  multisigFreezeAuthority: optional(PublicKeyFromString),
155
156
  signers: optional(array(PublicKeyFromString)),
156
- });
157
+ })
157
158
 
158
- export type ThawAccount = Infer<typeof ThawAccount>;
159
- const ThawAccount = type({
159
+ export type ThawAccount = Infer<typeof ThawAccount>
160
+ export const ThawAccount = type({
160
161
  account: PublicKeyFromString,
161
- mint: PublicKeyFromString,
162
162
  freezeAuthority: optional(PublicKeyFromString),
163
+ mint: PublicKeyFromString,
163
164
  multisigFreezeAuthority: optional(PublicKeyFromString),
164
165
  signers: optional(array(PublicKeyFromString)),
165
- });
166
+ })
166
167
 
167
- export type TransferChecked = Infer<typeof TransferChecked>;
168
+ export type TransferChecked = Infer<typeof TransferChecked>
168
169
  export const TransferChecked = type({
169
- source: PublicKeyFromString,
170
- mint: PublicKeyFromString,
171
- destination: PublicKeyFromString,
172
170
  authority: optional(PublicKeyFromString),
171
+ destination: PublicKeyFromString,
172
+ mint: PublicKeyFromString,
173
173
  multisigAuthority: optional(PublicKeyFromString),
174
174
  signers: optional(array(PublicKeyFromString)),
175
+ source: PublicKeyFromString,
175
176
  tokenAmount: TokenAmountUi,
176
- });
177
+ })
177
178
 
178
- export type ApproveChecked = Infer<typeof ApproveChecked>;
179
- const ApproveChecked = type({
180
- source: PublicKeyFromString,
181
- mint: PublicKeyFromString,
179
+ export type ApproveChecked = Infer<typeof ApproveChecked>
180
+ export const ApproveChecked = type({
182
181
  delegate: PublicKeyFromString,
183
- owner: optional(PublicKeyFromString),
182
+ mint: PublicKeyFromString,
184
183
  multisigOwner: optional(PublicKeyFromString),
184
+ owner: optional(PublicKeyFromString),
185
185
  signers: optional(array(PublicKeyFromString)),
186
+ source: PublicKeyFromString,
186
187
  tokenAmount: TokenAmountUi,
187
- });
188
+ })
188
189
 
189
- export type MintToChecked = Infer<typeof MintToChecked>;
190
- const MintToChecked = type({
190
+ export type MintToChecked = Infer<typeof MintToChecked>
191
+ export const MintToChecked = type({
191
192
  account: PublicKeyFromString,
192
193
  mint: PublicKeyFromString,
193
194
  mintAuthority: optional(PublicKeyFromString),
194
195
  multisigMintAuthority: optional(PublicKeyFromString),
195
196
  signers: optional(array(PublicKeyFromString)),
196
197
  tokenAmount: TokenAmountUi,
197
- });
198
+ })
198
199
 
199
- export type BurnChecked = Infer<typeof BurnChecked>;
200
- const BurnChecked = type({
200
+ export type BurnChecked = Infer<typeof BurnChecked>
201
+ export const BurnChecked = type({
201
202
  account: PublicKeyFromString,
202
- mint: PublicKeyFromString,
203
203
  authority: optional(PublicKeyFromString),
204
+ mint: PublicKeyFromString,
204
205
  multisigAuthority: optional(PublicKeyFromString),
205
206
  signers: optional(array(PublicKeyFromString)),
206
207
  tokenAmount: TokenAmountUi,
207
- });
208
+ })
208
209
 
209
- export type SyncNative = Infer<typeof BurnChecked>;
210
- const SyncNative = type({
210
+ export type SyncNative = Infer<typeof SyncNative>
211
+ export const SyncNative = type({
211
212
  account: PublicKeyFromString,
212
- });
213
+ })
213
214
 
214
- export type GetAccountDataSize = Infer<typeof GetAccountDataSize>;
215
- const GetAccountDataSize = type({
216
- mint: PublicKeyFromString,
215
+ export type GetAccountDataSize = Infer<typeof GetAccountDataSize>
216
+ export const GetAccountDataSize = type({
217
217
  extensionTypes: optional(array(string())),
218
- });
218
+ mint: PublicKeyFromString,
219
+ })
219
220
 
220
- export type InitializeImmutableOwner = Infer<typeof InitializeImmutableOwner>;
221
- const InitializeImmutableOwner = type({
221
+ export type InitializeImmutableOwner = Infer<typeof InitializeImmutableOwner>
222
+ export const InitializeImmutableOwner = type({
222
223
  account: PublicKeyFromString,
223
- });
224
+ })
224
225
 
225
- export type AmountToUiAmount = Infer<typeof AmountToUiAmount>;
226
- const AmountToUiAmount = type({
227
- mint: PublicKeyFromString,
226
+ export type AmountToUiAmount = Infer<typeof AmountToUiAmount>
227
+ export const AmountToUiAmount = type({
228
228
  amount: union([string(), number()]),
229
- });
229
+ mint: PublicKeyFromString,
230
+ })
230
231
 
231
- export type UiAmountToAmount = Infer<typeof UiAmountToAmount>;
232
- const UiAmountToAmount = type({
232
+ export type UiAmountToAmount = Infer<typeof UiAmountToAmount>
233
+ export const UiAmountToAmount = type({
233
234
  mint: PublicKeyFromString,
234
235
  uiAmount: string(),
235
- });
236
+ })
236
237
 
237
- export type InitializeMintCloseAuthority = Infer<typeof InitializeMintCloseAuthority>;
238
- const InitializeMintCloseAuthority = type({
238
+ export type InitializeMintCloseAuthority = Infer<typeof InitializeMintCloseAuthority>
239
+ export const InitializeMintCloseAuthority = type({
239
240
  mint: PublicKeyFromString,
240
241
  newAuthority: PublicKeyFromString,
241
- });
242
+ })
242
243
 
243
- export type TransferFeeExtension = Infer<typeof TransferFeeExtension>;
244
- const TransferFeeExtension = type({
244
+ export type TransferFeeExtension = Infer<typeof TransferFeeExtension>
245
+ export const TransferFeeExtension = type({
246
+ maximumFee: number(),
245
247
  mint: PublicKeyFromString,
248
+ transferFeeBasisPoints: number(),
246
249
  transferFeeConfigAuthority: PublicKeyFromString,
247
250
  withdrawWitheldAuthority: PublicKeyFromString,
248
- transferFeeBasisPoints: number(),
249
- maximumFee: number(),
250
- });
251
+ })
251
252
 
252
- export type DefaultAccountStateExtension = Infer<typeof DefaultAccountStateExtension>;
253
- const DefaultAccountStateExtension = type({
254
- mint: PublicKeyFromString,
253
+ export type DefaultAccountStateExtension = Infer<typeof DefaultAccountStateExtension>
254
+ export const DefaultAccountStateExtension = type({
255
255
  accountState: string(),
256
256
  freezeAuthority: optional(PublicKeyFromString),
257
- });
257
+ mint: PublicKeyFromString,
258
+ })
258
259
 
259
- export type Reallocate = Infer<typeof Reallocate>;
260
- const Reallocate = type({
260
+ export type Reallocate = Infer<typeof Reallocate>
261
+ export const Reallocate = type({
261
262
  account: PublicKeyFromString,
263
+ extensionTypes: array(string()),
262
264
  payer: PublicKeyFromString,
263
265
  systemProgram: PublicKeyFromString,
264
- extensionTypes: array(string()),
265
- });
266
+ })
266
267
 
267
- export type MemoTransferExtension = Infer<typeof MemoTransferExtension>;
268
- const MemoTransferExtension = type({
268
+ export type MemoTransferExtension = Infer<typeof MemoTransferExtension>
269
+ export const MemoTransferExtension = type({
269
270
  account: PublicKeyFromString,
270
- owner: optional(PublicKeyFromString),
271
271
  multisigOwner: optional(PublicKeyFromString),
272
+ owner: optional(PublicKeyFromString),
272
273
  signers: optional(array(PublicKeyFromString)),
273
- });
274
+ })
274
275
 
275
- export type CreateNativeMint = Infer<typeof CreateNativeMint>;
276
- const CreateNativeMint = type({
277
- payer: PublicKeyFromString,
276
+ export type CreateNativeMint = Infer<typeof CreateNativeMint>
277
+ export const CreateNativeMint = type({
278
278
  nativeMint: PublicKeyFromString,
279
+ payer: PublicKeyFromString,
279
280
  systemProgram: PublicKeyFromString,
280
- });
281
+ })
282
+
283
+ export type InitializeMetadataPointerInfo = Infer<typeof InitializeMetadataPointer>
284
+ export const InitializeMetadataPointer = type({
285
+ authority: PublicKeyFromString,
286
+ metadataAddress: PublicKeyFromString,
287
+ mint: PublicKeyFromString,
288
+ })
289
+
290
+ export type InitializeGroupMemberPointerInfo = Infer<typeof InitializeGroupMemberPointer>
291
+ export const InitializeGroupMemberPointer = type({
292
+ authority: PublicKeyFromString,
293
+ memberAddress: PublicKeyFromString,
294
+ mint: PublicKeyFromString,
295
+ })
296
+
297
+ export type InitializeNonTransferableMint = Infer<typeof InitializeNonTransferableMint>
298
+ export const InitializeNonTransferableMint = type({
299
+ mint: PublicKeyFromString,
300
+ })
301
+
302
+ export type InitializePermanentDelegate = Infer<typeof InitializePermanentDelegate>
303
+ export const InitializePermanentDelegate = type({
304
+ delegate: PublicKeyFromString,
305
+ mint: PublicKeyFromString,
306
+ })
307
+
308
+ export type InitializeTokenMetadataInfo = Infer<typeof InitializeTokenMetadata>
309
+ export const InitializeTokenMetadata = type({
310
+ metadata: PublicKeyFromString,
311
+ mint: PublicKeyFromString,
312
+ mintAuthority: PublicKeyFromString,
313
+ name: string(),
314
+ symbol: string(),
315
+ updateAuthority: PublicKeyFromString,
316
+ uri: string(),
317
+ })
318
+
319
+ export type UpdateTokenMetadataFieldInfo = Infer<typeof UpdateTokenMetadataField>
320
+ export const UpdateTokenMetadataField = type({
321
+ field: string(),
322
+ metadata: PublicKeyFromString,
323
+ updateAuthority: PublicKeyFromString,
324
+ value: string(),
325
+ })
326
+
327
+ export type RemoveTokenMetadataKeyInfo = Infer<typeof RemoveTokenMetadataKey>
328
+ export const RemoveTokenMetadataKey = type({
329
+ idempotent: optional(boolean()),
330
+ key: string(),
331
+ metadata: PublicKeyFromString,
332
+ updateAuthority: PublicKeyFromString,
333
+ })
334
+
335
+ export type UpdateTokenMetadataUpdateAuthorityInfo = Infer<typeof UpdateTokenMetadataUpdateAuthority>
336
+ export const UpdateTokenMetadataUpdateAuthority = type({
337
+ metadata: PublicKeyFromString,
338
+ newUpdateAuthority: PublicKeyFromString,
339
+ updateAuthority: PublicKeyFromString,
340
+ })
341
+
342
+ export type UpdateTokenMetadataAuthorityInfo = Infer<typeof UpdateTokenMetadataAuthority>
343
+ export const UpdateTokenMetadataAuthority = type({
344
+ metadata: PublicKeyFromString,
345
+ newAuthority: PublicKeyFromString,
346
+ updateAuthority: PublicKeyFromString,
347
+ })
348
+
349
+ export type EmitTokenMetadataInfo = Infer<typeof EmitTokenMetadata>
350
+ export const EmitTokenMetadata = type({
351
+ end: optional(nullable(number())),
352
+ metadata: PublicKeyFromString,
353
+ start: optional(nullable(number())),
354
+ })
355
+
356
+ export type UpdateMetadataPointerInfo = Infer<typeof UpdateMetadataPointer>
357
+ export const UpdateMetadataPointer = type({
358
+ authority: PublicKeyFromString,
359
+ metadataAddress: optional(nullable(PublicKeyFromString)),
360
+ mint: PublicKeyFromString,
361
+ })
362
+
363
+ export type InitializeGroupPointerInfo = Infer<typeof InitializeGroupPointer>
364
+ export const InitializeGroupPointer = type({
365
+ authority: PublicKeyFromString,
366
+ groupAddress: PublicKeyFromString,
367
+ mint: PublicKeyFromString,
368
+ })
369
+
370
+ export type UpdateGroupPointerInfo = Infer<typeof UpdateGroupPointer>
371
+ export const UpdateGroupPointer = type({
372
+ authority: PublicKeyFromString,
373
+ groupAddress: optional(nullable(PublicKeyFromString)),
374
+ mint: PublicKeyFromString,
375
+ })
376
+
377
+ export type UpdateGroupMemberPointerInfo = Infer<typeof UpdateGroupMemberPointer>
378
+ export const UpdateGroupMemberPointer = type({
379
+ authority: PublicKeyFromString,
380
+ memberAddress: optional(nullable(PublicKeyFromString)),
381
+ mint: PublicKeyFromString,
382
+ })
383
+
384
+ export type InitializeTokenGroupInfo = Infer<typeof InitializeTokenGroup>
385
+ export const InitializeTokenGroup = type({
386
+ group: PublicKeyFromString,
387
+ maxSize: number(),
388
+ mint: PublicKeyFromString,
389
+ mintAuthority: PublicKeyFromString,
390
+ updateAuthority: PublicKeyFromString,
391
+ })
392
+
393
+ export type UpdateTokenGroupMaxSizeInfo = Infer<typeof UpdateTokenGroupMaxSize>
394
+ export const UpdateTokenGroupMaxSize = type({
395
+ group: PublicKeyFromString,
396
+ maxSize: number(),
397
+ updateAuthority: PublicKeyFromString,
398
+ })
399
+
400
+ export type UpdateTokenGroupUpdateAuthorityInfo = Infer<typeof UpdateTokenGroupUpdateAuthority>
401
+ export const UpdateTokenGroupUpdateAuthority = type({
402
+ group: PublicKeyFromString,
403
+ newUpdateAuthority: PublicKeyFromString,
404
+ updateAuthority: PublicKeyFromString,
405
+ })
406
+
407
+ export type InitializeTokenGroupMemberInfo = Infer<typeof InitializeTokenGroupMember>
408
+ export const InitializeTokenGroupMember = type({
409
+ group: PublicKeyFromString,
410
+ groupUpdateAuthority: PublicKeyFromString,
411
+ member: PublicKeyFromString,
412
+ memberMint: PublicKeyFromString,
413
+ memberMintAuthority: PublicKeyFromString,
414
+ })
415
+
416
+ // Confidential Transfer extension instructions (Token-2022).
417
+ // JSON shapes mirror agave/transaction-status/src/parse_token/extension/confidential_transfer.rs.
418
+
419
+ export type InitializeConfidentialTransferMint = Infer<typeof InitializeConfidentialTransferMint>
420
+ export const InitializeConfidentialTransferMint = type({
421
+ auditorElGamalPubkey: nullable(string()),
422
+ authority: optional(PublicKeyFromString),
423
+ autoApproveNewAccounts: boolean(),
424
+ mint: PublicKeyFromString,
425
+ })
426
+
427
+ export type UpdateConfidentialTransferMint = Infer<typeof UpdateConfidentialTransferMint>
428
+ export const UpdateConfidentialTransferMint = type({
429
+ auditorElGamalPubkey: nullable(string()),
430
+ autoApproveNewAccounts: boolean(),
431
+ confidentialTransferMintAuthority: PublicKeyFromString,
432
+ mint: PublicKeyFromString,
433
+ })
434
+
435
+ export type ConfigureConfidentialTransferAccount = Infer<typeof ConfigureConfidentialTransferAccount>
436
+ export const ConfigureConfidentialTransferAccount = type({
437
+ account: PublicKeyFromString,
438
+ decryptableZeroBalance: string(),
439
+ instructionsSysvar: optional(PublicKeyFromString),
440
+ maximumPendingBalanceCreditCounter: union([string(), number()]),
441
+ mint: PublicKeyFromString,
442
+ multisigOwner: optional(PublicKeyFromString),
443
+ owner: optional(PublicKeyFromString),
444
+ proofContextStateAccount: optional(PublicKeyFromString),
445
+ proofInstructionOffset: number(),
446
+ recordAccount: optional(PublicKeyFromString),
447
+ signers: optional(array(PublicKeyFromString)),
448
+ })
449
+
450
+ export type ApproveConfidentialTransferAccount = Infer<typeof ApproveConfidentialTransferAccount>
451
+ export const ApproveConfidentialTransferAccount = type({
452
+ account: PublicKeyFromString,
453
+ confidentialTransferAuditorAuthority: PublicKeyFromString,
454
+ mint: PublicKeyFromString,
455
+ })
456
+
457
+ export type EmptyConfidentialTransferAccount = Infer<typeof EmptyConfidentialTransferAccount>
458
+ export const EmptyConfidentialTransferAccount = type({
459
+ account: PublicKeyFromString,
460
+ instructionsSysvar: optional(PublicKeyFromString),
461
+ multisigOwner: optional(PublicKeyFromString),
462
+ owner: optional(PublicKeyFromString),
463
+ proofContextStateAccount: optional(PublicKeyFromString),
464
+ proofInstructionOffset: number(),
465
+ recordAccount: optional(PublicKeyFromString),
466
+ signers: optional(array(PublicKeyFromString)),
467
+ })
468
+
469
+ export type DepositConfidentialTransfer = Infer<typeof DepositConfidentialTransfer>
470
+ export const DepositConfidentialTransfer = type({
471
+ amount: union([string(), number()]),
472
+ decimals: number(),
473
+ destination: PublicKeyFromString,
474
+ mint: PublicKeyFromString,
475
+ multisigOwner: optional(PublicKeyFromString),
476
+ owner: optional(PublicKeyFromString),
477
+ signers: optional(array(PublicKeyFromString)),
478
+ source: PublicKeyFromString,
479
+ })
480
+
481
+ export type WithdrawConfidentialTransfer = Infer<typeof WithdrawConfidentialTransfer>
482
+ export const WithdrawConfidentialTransfer = type({
483
+ amount: union([string(), number()]),
484
+ decimals: number(),
485
+ destination: PublicKeyFromString,
486
+ equalityProofContextStateAccount: optional(PublicKeyFromString),
487
+ equalityProofInstructionOffset: number(),
488
+ equalityProofRecordAccount: optional(PublicKeyFromString),
489
+ instructionsSysvar: optional(PublicKeyFromString),
490
+ mint: PublicKeyFromString,
491
+ multisigOwner: optional(PublicKeyFromString),
492
+ newDecryptableAvailableBalance: string(),
493
+ owner: optional(PublicKeyFromString),
494
+ rangeProofContextStateAccount: optional(PublicKeyFromString),
495
+ rangeProofInstructionOffset: number(),
496
+ rangeProofRecordAccount: optional(PublicKeyFromString),
497
+ signers: optional(array(PublicKeyFromString)),
498
+ source: PublicKeyFromString,
499
+ })
500
+
501
+ export type ConfidentialTransfer = Infer<typeof ConfidentialTransfer>
502
+ export const ConfidentialTransfer = type({
503
+ ciphertextValidityProofContextStateAccount: optional(PublicKeyFromString),
504
+ ciphertextValidityProofInstructionOffset: number(),
505
+ ciphertextValidityProofRecordAccount: optional(PublicKeyFromString),
506
+ destination: PublicKeyFromString,
507
+ equalityProofContextStateAccount: optional(PublicKeyFromString),
508
+ equalityProofInstructionOffset: number(),
509
+ equalityProofRecordAccount: optional(PublicKeyFromString),
510
+ instructionsSysvar: optional(PublicKeyFromString),
511
+ mint: PublicKeyFromString,
512
+ multisigOwner: optional(PublicKeyFromString),
513
+ newSourceDecryptableAvailableBalance: string(),
514
+ owner: optional(PublicKeyFromString),
515
+ rangeProofContextStateAccount: optional(PublicKeyFromString),
516
+ rangeProofInstructionOffset: number(),
517
+ rangeProofRecordAccount: optional(PublicKeyFromString),
518
+ signers: optional(array(PublicKeyFromString)),
519
+ source: PublicKeyFromString,
520
+ })
521
+
522
+ export type ConfidentialTransferWithFee = Infer<typeof ConfidentialTransferWithFee>
523
+ export const ConfidentialTransferWithFee = type({
524
+ destination: PublicKeyFromString,
525
+ equalityProofContextStateAccount: optional(PublicKeyFromString),
526
+ equalityProofInstructionOffset: number(),
527
+ equalityProofRecordAccount: optional(PublicKeyFromString),
528
+ feeCiphertextValidityProofContextStateAccount: optional(PublicKeyFromString),
529
+ feeCiphertextValidityProofInstructionOffset: number(),
530
+ feeCiphertextValidityProofRecordAccount: optional(PublicKeyFromString),
531
+ feeSigmaProofContextStateAccount: optional(PublicKeyFromString),
532
+ feeSigmaProofInstructionOffset: number(),
533
+ feeSigmaProofRecordAccount: optional(PublicKeyFromString),
534
+ instructionsSysvar: optional(PublicKeyFromString),
535
+ mint: PublicKeyFromString,
536
+ multisigOwner: optional(PublicKeyFromString),
537
+ newSourceDecryptableAvailableBalance: string(),
538
+ owner: optional(PublicKeyFromString),
539
+ rangeProofContextStateAccount: optional(PublicKeyFromString),
540
+ rangeProofInstructionOffset: number(),
541
+ rangeProofRecordAccount: optional(PublicKeyFromString),
542
+ signers: optional(array(PublicKeyFromString)),
543
+ source: PublicKeyFromString,
544
+ transferAmountCiphertextValidityProofContextStateAccount: optional(PublicKeyFromString),
545
+ transferAmountCiphertextValidityProofInstructionOffset: number(),
546
+ transferAmountCiphertextValidityProofRecordAccount: optional(PublicKeyFromString),
547
+ })
548
+
549
+ export type ApplyPendingConfidentialTransferBalance = Infer<typeof ApplyPendingConfidentialTransferBalance>
550
+ export const ApplyPendingConfidentialTransferBalance = type({
551
+ account: PublicKeyFromString,
552
+ expectedPendingBalanceCreditCounter: union([string(), number()]),
553
+ multisigOwner: optional(PublicKeyFromString),
554
+ newDecryptableAvailableBalance: string(),
555
+ owner: optional(PublicKeyFromString),
556
+ signers: optional(array(PublicKeyFromString)),
557
+ })
558
+
559
+ export type ConfidentialTransferCreditsToggle = Infer<typeof ConfidentialTransferCreditsToggle>
560
+ export const ConfidentialTransferCreditsToggle = type({
561
+ account: PublicKeyFromString,
562
+ multisigOwner: optional(PublicKeyFromString),
563
+ owner: optional(PublicKeyFromString),
564
+ signers: optional(array(PublicKeyFromString)),
565
+ })
566
+
567
+ export type ConfigureConfidentialAccountWithRegistry = Infer<typeof ConfigureConfidentialAccountWithRegistry>
568
+ export const ConfigureConfidentialAccountWithRegistry = type({
569
+ account: PublicKeyFromString,
570
+ mint: PublicKeyFromString,
571
+ registry: PublicKeyFromString,
572
+ })
573
+
574
+ export type WithdrawExcessLamports = Infer<typeof WithdrawExcessLamports>
575
+ export const WithdrawExcessLamports = type({
576
+ authority: optional(PublicKeyFromString),
577
+ destination: PublicKeyFromString,
578
+ multisigAuthority: optional(PublicKeyFromString),
579
+ signers: optional(array(PublicKeyFromString)),
580
+ source: PublicKeyFromString,
581
+ })
582
+
583
+ export type TokenInstructionType = Infer<typeof TokenInstructionType>
584
+ export const TokenInstructionType = enums([
585
+ 'initializeMint',
586
+ 'initializeMint2',
587
+ 'initializeAccount',
588
+ 'initializeAccount2',
589
+ 'initializeAccount3',
590
+ 'initializeGroupMemberPointer',
591
+ 'initializeMultisig',
592
+ 'initializeNonTransferableMint',
593
+ 'initializeTokenGroupMember',
594
+ 'initializeTokenMetadata',
595
+ 'initializePermanentDelegate',
596
+ 'initializeMetadataPointer',
597
+ 'transfer',
598
+ 'approve',
599
+ 'revoke',
600
+ 'setAuthority',
601
+ 'mintTo',
602
+ 'burn',
603
+ 'closeAccount',
604
+ 'freezeAccount',
605
+ 'thawAccount',
606
+ 'transfer2',
607
+ 'approve2',
608
+ 'mintTo2',
609
+ 'burn2',
610
+ 'transferChecked',
611
+ 'approveChecked',
612
+ 'mintToChecked',
613
+ 'burnChecked',
614
+ 'syncNative',
615
+ 'getAccountDataSize',
616
+ 'initializeImmutableOwner',
617
+ 'amountToUiAmount',
618
+ 'uiAmountToAmount',
619
+ 'initializeMintCloseAuthority',
620
+ 'transferFeeExtension',
621
+ 'defaultAccountStateExtension',
622
+ 'reallocate',
623
+ 'memoTransferExtension',
624
+ 'updateTokenMetadataField',
625
+ 'removeTokenMetadataKey',
626
+ 'updateTokenMetadataAuthority',
627
+ 'updateTokenMetadataUpdateAuthority',
628
+ 'emitTokenMetadata',
629
+ 'updateMetadataPointer',
630
+ 'initializeGroupPointer',
631
+ 'updateGroupPointer',
632
+ 'updateGroupMemberPointer',
633
+ 'initializeTokenGroup',
634
+ 'updateTokenGroupMaxSize',
635
+ 'updateTokenGroupUpdateAuthority',
636
+ 'createNativeMint',
637
+ 'initializeConfidentialTransferMint',
638
+ 'updateConfidentialTransferMint',
639
+ 'configureConfidentialTransferAccount',
640
+ 'approveConfidentialTransferAccount',
641
+ 'emptyConfidentialTransferAccount',
642
+ 'depositConfidentialTransfer',
643
+ 'withdrawConfidentialTransfer',
644
+ 'confidentialTransfer',
645
+ 'confidentialTransferWithFee',
646
+ 'applyPendingConfidentialTransferBalance',
647
+ 'enableConfidentialTransferConfidentialCredits',
648
+ 'disableConfidentialTransferConfidentialCredits',
649
+ 'enableConfidentialTransferNonConfidentialCredits',
650
+ 'disableConfidentialTransferNonConfidentialCredits',
651
+ 'configureConfidentialAccountWithRegistry',
652
+ 'withdrawExcessLamports',
653
+ ])
654
+
655
+ export const IX_STRUCTS = {
656
+ amountToUiAmount: AmountToUiAmount,
657
+ applyPendingConfidentialTransferBalance: ApplyPendingConfidentialTransferBalance,
658
+ approve: Approve,
659
+ approve2: ApproveChecked,
660
+ approveChecked: ApproveChecked,
661
+ approveConfidentialTransferAccount: ApproveConfidentialTransferAccount,
662
+ burn: Burn,
663
+ burn2: BurnChecked,
664
+ burnChecked: BurnChecked,
665
+ closeAccount: CloseAccount,
666
+ confidentialTransfer: ConfidentialTransfer,
667
+ confidentialTransferWithFee: ConfidentialTransferWithFee,
668
+ configureConfidentialAccountWithRegistry: ConfigureConfidentialAccountWithRegistry,
669
+ configureConfidentialTransferAccount: ConfigureConfidentialTransferAccount,
670
+ createNativeMint: CreateNativeMint,
671
+ defaultAccountStateExtension: DefaultAccountStateExtension,
672
+ depositConfidentialTransfer: DepositConfidentialTransfer,
673
+ disableConfidentialTransferConfidentialCredits: ConfidentialTransferCreditsToggle,
674
+ disableConfidentialTransferNonConfidentialCredits: ConfidentialTransferCreditsToggle,
675
+ emitTokenMetadata: EmitTokenMetadata,
676
+ emptyConfidentialTransferAccount: EmptyConfidentialTransferAccount,
677
+ enableConfidentialTransferConfidentialCredits: ConfidentialTransferCreditsToggle,
678
+ enableConfidentialTransferNonConfidentialCredits: ConfidentialTransferCreditsToggle,
679
+ freezeAccount: FreezeAccount,
680
+ getAccountDataSize: GetAccountDataSize,
681
+ initializeAccount: InitializeAccount,
682
+ initializeAccount2: InitializeAccount2,
683
+ initializeAccount3: InitializeAccount3,
684
+ initializeConfidentialTransferMint: InitializeConfidentialTransferMint,
685
+ initializeGroupMemberPointer: InitializeGroupMemberPointer,
686
+ initializeGroupPointer: InitializeGroupPointer,
687
+ initializeImmutableOwner: InitializeImmutableOwner,
688
+ initializeMetadataPointer: InitializeMetadataPointer,
689
+ initializeMint: InitializeMint,
690
+ initializeMint2: InitializeMint2,
691
+ initializeMintCloseAuthority: InitializeMintCloseAuthority,
692
+ initializeMultisig: InitializeMultisig,
693
+ initializeNonTransferableMint: InitializeNonTransferableMint,
694
+ initializePermanentDelegate: InitializePermanentDelegate,
695
+ initializeTokenGroup: InitializeTokenGroup,
696
+ initializeTokenGroupMember: InitializeTokenGroupMember,
697
+ initializeTokenMetadata: InitializeTokenMetadata,
698
+ memoTransferExtension: MemoTransferExtension,
699
+ mintTo: MintTo,
700
+ mintTo2: MintToChecked,
701
+ mintToChecked: MintToChecked,
702
+ reallocate: Reallocate,
703
+ removeTokenMetadataKey: RemoveTokenMetadataKey,
704
+ revoke: Revoke,
705
+ setAuthority: SetAuthority,
706
+ syncNative: SyncNative,
707
+ thawAccount: ThawAccount,
708
+ transfer: Transfer,
709
+ transfer2: TransferChecked,
710
+ transferChecked: TransferChecked,
711
+ transferFeeExtension: TransferFeeExtension,
712
+ uiAmountToAmount: UiAmountToAmount,
713
+ updateConfidentialTransferMint: UpdateConfidentialTransferMint,
714
+ updateGroupMemberPointer: UpdateGroupMemberPointer,
715
+ updateGroupPointer: UpdateGroupPointer,
716
+ updateMetadataPointer: UpdateMetadataPointer,
717
+ updateTokenGroupMaxSize: UpdateTokenGroupMaxSize,
718
+ updateTokenGroupUpdateAuthority: UpdateTokenGroupUpdateAuthority,
719
+ updateTokenMetadataAuthority: UpdateTokenMetadataAuthority,
720
+ updateTokenMetadataField: UpdateTokenMetadataField,
721
+ updateTokenMetadataUpdateAuthority: UpdateTokenMetadataUpdateAuthority,
722
+ withdrawConfidentialTransfer: WithdrawConfidentialTransfer,
723
+ withdrawExcessLamports: WithdrawExcessLamports,
724
+ }
725
+
726
+ export const IX_TITLES = {
727
+ amountToUiAmount: 'Amount To UiAmount',
728
+ applyPendingConfidentialTransferBalance: 'Apply Pending Confidential Transfer Balance',
729
+ approve: 'Approve',
730
+ approve2: 'Approve (Checked)',
731
+ approveChecked: 'Approve (Checked)',
732
+ approveConfidentialTransferAccount: 'Approve Confidential Transfer Account',
733
+ burn: 'Burn',
734
+ burn2: 'Burn (Checked)',
735
+ burnChecked: 'Burn (Checked)',
736
+ closeAccount: 'Close Account',
737
+ confidentialTransfer: 'Confidential Transfer',
738
+ confidentialTransferWithFee: 'Confidential Transfer With Fee',
739
+ configureConfidentialAccountWithRegistry: 'Configure Confidential Account With Registry',
740
+ configureConfidentialTransferAccount: 'Configure Confidential Transfer Account',
741
+ createNativeMint: 'Create Native Mint',
742
+ defaultAccountStateExtension: 'Default Account State Extension',
743
+ depositConfidentialTransfer: 'Deposit Confidential Transfer',
744
+ disableConfidentialTransferConfidentialCredits: 'Disable Confidential Credits',
745
+ disableConfidentialTransferNonConfidentialCredits: 'Disable Non-Confidential Credits',
746
+ emitTokenMetadata: 'Emit Token Metadata',
747
+ emptyConfidentialTransferAccount: 'Empty Confidential Transfer Account',
748
+ enableConfidentialTransferConfidentialCredits: 'Enable Confidential Credits',
749
+ enableConfidentialTransferNonConfidentialCredits: 'Enable Non-Confidential Credits',
750
+ freezeAccount: 'Freeze Account',
751
+ getAccountDataSize: 'Get Account Data Size',
752
+ initializeAccount: 'Initialize Account',
753
+ initializeAccount2: 'Initialize Account (2)',
754
+ initializeAccount3: 'Initialize Account (3)',
755
+ initializeConfidentialTransferMint: 'Initialize Confidential Transfer Mint',
756
+ initializeGroupMemberPointer: 'Initialize Group Member Pointer',
757
+ initializeGroupPointer: 'Initialize Group Pointer',
758
+ initializeImmutableOwner: 'Initialize Immutable Owner',
759
+ initializeMetadataPointer: 'Initialize Metadata Pointer',
760
+ initializeMint: 'Initialize Mint',
761
+ initializeMint2: 'Initialize Mint (2)',
762
+ initializeMintCloseAuthority: 'Initialize Mint Close Authority',
763
+ initializeMultisig: 'Initialize Multisig',
764
+ initializeNonTransferableMint: 'Initialize Non-Transferable Mint',
765
+ initializePermanentDelegate: 'Initialize Permanent Delegate',
766
+ initializeTokenGroup: 'Initialize Token Group',
767
+ initializeTokenGroupMember: 'Initialize Token Group Member',
768
+ initializeTokenMetadata: 'Initialize Token Metadata',
769
+ memoTransferExtension: 'Memo Transfer Extension',
770
+ mintTo: 'Mint To',
771
+ mintTo2: 'Mint To (Checked)',
772
+ mintToChecked: 'Mint To (Checked)',
773
+ reallocate: 'Reallocate',
774
+ removeTokenMetadataKey: 'Remove Token Metadata Key',
775
+ revoke: 'Revoke',
776
+ setAuthority: 'Set Authority',
777
+ syncNative: 'Sync Native',
778
+ thawAccount: 'Thaw Account',
779
+ transfer: 'Transfer',
780
+ transfer2: 'Transfer (Checked)',
781
+ transferChecked: 'Transfer (Checked)',
782
+ transferFeeExtension: 'Transfer Fee Extension',
783
+ uiAmountToAmount: 'UiAmount To Amount',
784
+ updateConfidentialTransferMint: 'Update Confidential Transfer Mint',
785
+ updateGroupMemberPointer: 'Update Group Member Pointer',
786
+ updateGroupPointer: 'Update Group Pointer',
787
+ updateMetadataPointer: 'Update Metadata Pointer',
788
+ updateTokenGroupMaxSize: 'Update Token Group Max Size',
789
+ updateTokenGroupUpdateAuthority: 'Update Token Group Update Authority',
790
+ updateTokenMetadataAuthority: 'Update Token Metadata Authority',
791
+ updateTokenMetadataField: 'Update Token Metadata Field',
792
+ updateTokenMetadataUpdateAuthority: 'Update Token Metadata Update Authority',
793
+ withdrawConfidentialTransfer: 'Withdraw Confidential Transfer',
794
+ withdrawExcessLamports: 'Withdraw Excess Lamports',
795
+ }