Skip to content

Commit edc2e1f

Browse files
committed
Set instruction account defaults for token metadata program
1 parent ddbbb20 commit edc2e1f

39 files changed

+861
-173
lines changed

clients/token-metadata/coda.config.mjs

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import {
33
constantPdaSeedNodeFromString,
44
defineConfig,
55
publicKeyTypeNode,
6+
publicKeyValueNode,
7+
setInstructionAccountDefaultValuesVisitor,
68
variablePdaSeedNode,
79
} from "@macalinao/coda";
810

@@ -49,5 +51,49 @@ export default defineConfig({
4951
docs: {
5052
npmPackageName: "@macalinao/clients-token-metadata",
5153
},
52-
visitors: [addCustomPDAsVisitor],
54+
visitors: [
55+
addCustomPDAsVisitor,
56+
setInstructionAccountDefaultValuesVisitor([
57+
{
58+
account: "systemProgram",
59+
defaultValue: publicKeyValueNode("11111111111111111111111111111111"),
60+
},
61+
{
62+
account: "sysvarInstructions",
63+
defaultValue: publicKeyValueNode(
64+
"Sysvar1nstructions1111111111111111111111111",
65+
),
66+
},
67+
{
68+
account: "tokenProgram",
69+
defaultValue: publicKeyValueNode(
70+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
71+
),
72+
},
73+
{
74+
account: "splTokenProgram",
75+
defaultValue: publicKeyValueNode(
76+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
77+
),
78+
},
79+
{
80+
account: "ataProgram",
81+
defaultValue: publicKeyValueNode(
82+
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
83+
),
84+
},
85+
{
86+
account: "splAtaProgram",
87+
defaultValue: publicKeyValueNode(
88+
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
89+
),
90+
},
91+
{
92+
account: "rent",
93+
defaultValue: publicKeyValueNode(
94+
"SysvarRent111111111111111111111111111111111",
95+
),
96+
},
97+
]),
98+
],
5399
});

clients/token-metadata/src/generated/instructions/approveCollectionAuthority.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ export type ApproveCollectionAuthorityInstruction<
4848
TAccountPayer extends string | AccountMeta = string,
4949
TAccountMetadata extends string | AccountMeta = string,
5050
TAccountMint extends string | AccountMeta = string,
51-
TAccountSystemProgram extends string | AccountMeta = string,
51+
TAccountSystemProgram extends
52+
| string
53+
| AccountMeta = "11111111111111111111111111111111",
5254
TAccountRent extends string | AccountMeta | undefined = undefined,
5355
TRemainingAccounts extends readonly AccountMeta[] = [],
5456
> = Instruction<TProgram> &
@@ -142,7 +144,7 @@ export interface ApproveCollectionAuthorityInput<
142144
/** Mint of Collection Metadata */
143145
mint: Address<TAccountMint>;
144146
/** System program */
145-
systemProgram: Address<TAccountSystemProgram>;
147+
systemProgram?: Address<TAccountSystemProgram>;
146148
/** Rent info */
147149
rent?: Address<TAccountRent>;
148150
}
@@ -206,6 +208,16 @@ export function getApproveCollectionAuthorityInstruction<
206208
ResolvedAccount
207209
>;
208210

211+
// Resolve default values.
212+
if (!accounts.systemProgram.value) {
213+
accounts.systemProgram.value =
214+
"11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
215+
}
216+
if (!accounts.rent.value) {
217+
accounts.rent.value =
218+
"SysvarRent111111111111111111111111111111111" as Address<"SysvarRent111111111111111111111111111111111">;
219+
}
220+
209221
const getAccountMeta = getAccountMetaFactory(programAddress, "omitted");
210222
return Object.freeze({
211223
accounts: [

clients/token-metadata/src/generated/instructions/approveUseAuthority.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,12 @@ export type ApproveUseAuthorityInstruction<
5858
TAccountMetadata extends string | AccountMeta = string,
5959
TAccountMint extends string | AccountMeta = string,
6060
TAccountBurner extends string | AccountMeta = string,
61-
TAccountTokenProgram extends string | AccountMeta = string,
62-
TAccountSystemProgram extends string | AccountMeta = string,
61+
TAccountTokenProgram extends
62+
| string
63+
| AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
64+
TAccountSystemProgram extends
65+
| string
66+
| AccountMeta = "11111111111111111111111111111111",
6367
TAccountRent extends string | AccountMeta | undefined = undefined,
6468
TRemainingAccounts extends readonly AccountMeta[] = [],
6569
> = Instruction<TProgram> &
@@ -178,9 +182,9 @@ export interface ApproveUseAuthorityInput<
178182
/** Program As Signer (Burner) */
179183
burner: Address<TAccountBurner>;
180184
/** Token program */
181-
tokenProgram: Address<TAccountTokenProgram>;
185+
tokenProgram?: Address<TAccountTokenProgram>;
182186
/** System program */
183-
systemProgram: Address<TAccountSystemProgram>;
187+
systemProgram?: Address<TAccountSystemProgram>;
184188
/** Rent info */
185189
rent?: Address<TAccountRent>;
186190
approveUseAuthorityArgs: ApproveUseAuthorityInstructionDataArgs["approveUseAuthorityArgs"];
@@ -260,6 +264,20 @@ export function getApproveUseAuthorityInstruction<
260264
// Original args.
261265
const args = { ...input };
262266

267+
// Resolve default values.
268+
if (!accounts.tokenProgram.value) {
269+
accounts.tokenProgram.value =
270+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" as Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
271+
}
272+
if (!accounts.systemProgram.value) {
273+
accounts.systemProgram.value =
274+
"11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
275+
}
276+
if (!accounts.rent.value) {
277+
accounts.rent.value =
278+
"SysvarRent111111111111111111111111111111111" as Address<"SysvarRent111111111111111111111111111111111">;
279+
}
280+
263281
const getAccountMeta = getAccountMetaFactory(programAddress, "omitted");
264282
return Object.freeze({
265283
accounts: [

clients/token-metadata/src/generated/instructions/burn.ts

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,15 @@ export type BurnInstruction<
5555
TAccountMasterEditionToken extends string | AccountMeta = string,
5656
TAccountEditionMarker extends string | AccountMeta = string,
5757
TAccountTokenRecord extends string | AccountMeta = string,
58-
TAccountSystemProgram extends string | AccountMeta = string,
59-
TAccountSysvarInstructions extends string | AccountMeta = string,
60-
TAccountSplTokenProgram extends string | AccountMeta = string,
58+
TAccountSystemProgram extends
59+
| string
60+
| AccountMeta = "11111111111111111111111111111111",
61+
TAccountSysvarInstructions extends
62+
| string
63+
| AccountMeta = "Sysvar1nstructions1111111111111111111111111",
64+
TAccountSplTokenProgram extends
65+
| string
66+
| AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
6167
TRemainingAccounts extends readonly AccountMeta[] = [],
6268
> = Instruction<TProgram> &
6369
InstructionWithData<ReadonlyUint8Array> &
@@ -185,11 +191,11 @@ export interface BurnInput<
185191
/** Token record account */
186192
tokenRecord?: Address<TAccountTokenRecord>;
187193
/** System program */
188-
systemProgram: Address<TAccountSystemProgram>;
194+
systemProgram?: Address<TAccountSystemProgram>;
189195
/** Instructions sysvar account */
190-
sysvarInstructions: Address<TAccountSysvarInstructions>;
196+
sysvarInstructions?: Address<TAccountSysvarInstructions>;
191197
/** SPL Token Program */
192-
splTokenProgram: Address<TAccountSplTokenProgram>;
198+
splTokenProgram?: Address<TAccountSplTokenProgram>;
193199
burnArgs: BurnInstructionDataArgs["burnArgs"];
194200
}
195201

@@ -288,6 +294,20 @@ export function getBurnInstruction<
288294
// Original args.
289295
const args = { ...input };
290296

297+
// Resolve default values.
298+
if (!accounts.systemProgram.value) {
299+
accounts.systemProgram.value =
300+
"11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
301+
}
302+
if (!accounts.sysvarInstructions.value) {
303+
accounts.sysvarInstructions.value =
304+
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
305+
}
306+
if (!accounts.splTokenProgram.value) {
307+
accounts.splTokenProgram.value =
308+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" as Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
309+
}
310+
291311
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
292312
return Object.freeze({
293313
accounts: [

clients/token-metadata/src/generated/instructions/burnEditionNft.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ export type BurnEditionNftInstruction<
5151
TAccountMasterEditionAccount extends string | AccountMeta = string,
5252
TAccountPrintEditionAccount extends string | AccountMeta = string,
5353
TAccountEditionMarkerAccount extends string | AccountMeta = string,
54-
TAccountSplTokenProgram extends string | AccountMeta = string,
54+
TAccountSplTokenProgram extends
55+
| string
56+
| AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
5557
TRemainingAccounts extends readonly AccountMeta[] = [],
5658
> = Instruction<TProgram> &
5759
InstructionWithData<ReadonlyUint8Array> &
@@ -150,7 +152,7 @@ export interface BurnEditionNftInput<
150152
/** Edition Marker PDA of the NFT */
151153
editionMarkerAccount: Address<TAccountEditionMarkerAccount>;
152154
/** SPL Token Program */
153-
splTokenProgram: Address<TAccountSplTokenProgram>;
155+
splTokenProgram?: Address<TAccountSplTokenProgram>;
154156
}
155157

156158
export function getBurnEditionNftInstruction<
@@ -238,6 +240,12 @@ export function getBurnEditionNftInstruction<
238240
ResolvedAccount
239241
>;
240242

243+
// Resolve default values.
244+
if (!accounts.splTokenProgram.value) {
245+
accounts.splTokenProgram.value =
246+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" as Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
247+
}
248+
241249
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
242250
return Object.freeze({
243251
accounts: [

clients/token-metadata/src/generated/instructions/burnNft.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ export type BurnNftInstruction<
4747
TAccountMint extends string | AccountMeta = string,
4848
TAccountTokenAccount extends string | AccountMeta = string,
4949
TAccountMasterEditionAccount extends string | AccountMeta = string,
50-
TAccountSplTokenProgram extends string | AccountMeta = string,
50+
TAccountSplTokenProgram extends
51+
| string
52+
| AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
5153
TAccountCollectionMetadata extends
5254
| string
5355
| AccountMeta
@@ -134,7 +136,7 @@ export interface BurnNftInput<
134136
/** MasterEdition2 of the NFT */
135137
masterEditionAccount: Address<TAccountMasterEditionAccount>;
136138
/** SPL Token Program */
137-
splTokenProgram: Address<TAccountSplTokenProgram>;
139+
splTokenProgram?: Address<TAccountSplTokenProgram>;
138140
/** Metadata of the Collection */
139141
collectionMetadata?: Address<TAccountCollectionMetadata>;
140142
}
@@ -197,6 +199,12 @@ export function getBurnNftInstruction<
197199
ResolvedAccount
198200
>;
199201

202+
// Resolve default values.
203+
if (!accounts.splTokenProgram.value) {
204+
accounts.splTokenProgram.value =
205+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" as Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
206+
}
207+
200208
const getAccountMeta = getAccountMetaFactory(programAddress, "omitted");
201209
return Object.freeze({
202210
accounts: [

clients/token-metadata/src/generated/instructions/closeEscrowAccount.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,12 @@ export type CloseEscrowAccountInstruction<
4848
TAccountTokenAccount extends string | AccountMeta = string,
4949
TAccountEdition extends string | AccountMeta = string,
5050
TAccountPayer extends string | AccountMeta = string,
51-
TAccountSystemProgram extends string | AccountMeta = string,
52-
TAccountSysvarInstructions extends string | AccountMeta = string,
51+
TAccountSystemProgram extends
52+
| string
53+
| AccountMeta = "11111111111111111111111111111111",
54+
TAccountSysvarInstructions extends
55+
| string
56+
| AccountMeta = "Sysvar1nstructions1111111111111111111111111",
5357
TRemainingAccounts extends readonly AccountMeta[] = [],
5458
> = Instruction<TProgram> &
5559
InstructionWithData<ReadonlyUint8Array> &
@@ -137,9 +141,9 @@ export interface CloseEscrowAccountInput<
137141
/** Wallet paying for the transaction and new account */
138142
payer: TransactionSigner<TAccountPayer>;
139143
/** System program */
140-
systemProgram: Address<TAccountSystemProgram>;
144+
systemProgram?: Address<TAccountSystemProgram>;
141145
/** Instructions sysvar account */
142-
sysvarInstructions: Address<TAccountSysvarInstructions>;
146+
sysvarInstructions?: Address<TAccountSysvarInstructions>;
143147
}
144148

145149
export function getCloseEscrowAccountInstruction<
@@ -198,6 +202,16 @@ export function getCloseEscrowAccountInstruction<
198202
ResolvedAccount
199203
>;
200204

205+
// Resolve default values.
206+
if (!accounts.systemProgram.value) {
207+
accounts.systemProgram.value =
208+
"11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
209+
}
210+
if (!accounts.sysvarInstructions.value) {
211+
accounts.sysvarInstructions.value =
212+
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
213+
}
214+
201215
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
202216
return Object.freeze({
203217
accounts: [

clients/token-metadata/src/generated/instructions/create.ts

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,15 @@ export type CreateInstruction<
5151
TAccountAuthority extends string | AccountMeta = string,
5252
TAccountPayer extends string | AccountMeta = string,
5353
TAccountUpdateAuthority extends string | AccountMeta = string,
54-
TAccountSystemProgram extends string | AccountMeta = string,
55-
TAccountSysvarInstructions extends string | AccountMeta = string,
56-
TAccountSplTokenProgram extends string | AccountMeta = string,
54+
TAccountSystemProgram extends
55+
| string
56+
| AccountMeta = "11111111111111111111111111111111",
57+
TAccountSysvarInstructions extends
58+
| string
59+
| AccountMeta = "Sysvar1nstructions1111111111111111111111111",
60+
TAccountSplTokenProgram extends
61+
| string
62+
| AccountMeta = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
5763
TRemainingAccounts extends readonly AccountMeta[] = [],
5864
> = Instruction<TProgram> &
5965
InstructionWithData<ReadonlyUint8Array> &
@@ -152,9 +158,9 @@ export interface CreateInput<
152158
/** Update authority for the metadata account */
153159
updateAuthority: Address<TAccountUpdateAuthority>;
154160
/** System program */
155-
systemProgram: Address<TAccountSystemProgram>;
161+
systemProgram?: Address<TAccountSystemProgram>;
156162
/** Instructions sysvar account */
157-
sysvarInstructions: Address<TAccountSysvarInstructions>;
163+
sysvarInstructions?: Address<TAccountSysvarInstructions>;
158164
/** SPL Token program */
159165
splTokenProgram?: Address<TAccountSplTokenProgram>;
160166
createArgs: CreateInstructionDataArgs["createArgs"];
@@ -229,6 +235,20 @@ export function getCreateInstruction<
229235
// Original args.
230236
const args = { ...input };
231237

238+
// Resolve default values.
239+
if (!accounts.systemProgram.value) {
240+
accounts.systemProgram.value =
241+
"11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
242+
}
243+
if (!accounts.sysvarInstructions.value) {
244+
accounts.sysvarInstructions.value =
245+
"Sysvar1nstructions1111111111111111111111111" as Address<"Sysvar1nstructions1111111111111111111111111">;
246+
}
247+
if (!accounts.splTokenProgram.value) {
248+
accounts.splTokenProgram.value =
249+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" as Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
250+
}
251+
232252
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
233253
return Object.freeze({
234254
accounts: [

0 commit comments

Comments
 (0)