Skip to content

Commit 345a145

Browse files
authored
[0.21] Add an optional programAddress override to instruction builders of JS renderer (#224)
* Add an optional config parameter to override programAddress when creating an instruction * Add a test to check the program address config works as expected * Add changeset
1 parent 18f8633 commit 345a145

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+430
-269
lines changed

.changeset/lovely-worms-rhyme.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@kinobi-so/renderers-js': patch
3+
---
4+
5+
Add an optional programAddress override to instruction builders

packages/renderers-js/e2e/anchor/src/generated/instructions/createGuard.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ export async function getCreateGuardInstructionAsync<
224224
TAccountAssociatedTokenProgram extends string,
225225
TAccountTokenProgram extends string,
226226
TAccountSystemProgram extends string,
227+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
227228
>(
228229
input: CreateGuardAsyncInput<
229230
TAccountGuard,
@@ -234,10 +235,11 @@ export async function getCreateGuardInstructionAsync<
234235
TAccountAssociatedTokenProgram,
235236
TAccountTokenProgram,
236237
TAccountSystemProgram
237-
>
238+
>,
239+
config?: { programAddress?: TProgramAddress }
238240
): Promise<
239241
CreateGuardInstruction<
240-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
242+
TProgramAddress,
241243
TAccountGuard,
242244
TAccountMint,
243245
TAccountMintTokenAccount,
@@ -249,7 +251,8 @@ export async function getCreateGuardInstructionAsync<
249251
>
250252
> {
251253
// Program address.
252-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
254+
const programAddress =
255+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
253256

254257
// Original accounts.
255258
const originalAccounts = {
@@ -336,7 +339,7 @@ export async function getCreateGuardInstructionAsync<
336339
args as CreateGuardInstructionDataArgs
337340
),
338341
} as CreateGuardInstruction<
339-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
342+
TProgramAddress,
340343
TAccountGuard,
341344
TAccountMint,
342345
TAccountMintTokenAccount,
@@ -385,6 +388,7 @@ export function getCreateGuardInstruction<
385388
TAccountAssociatedTokenProgram extends string,
386389
TAccountTokenProgram extends string,
387390
TAccountSystemProgram extends string,
391+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
388392
>(
389393
input: CreateGuardInput<
390394
TAccountGuard,
@@ -395,9 +399,10 @@ export function getCreateGuardInstruction<
395399
TAccountAssociatedTokenProgram,
396400
TAccountTokenProgram,
397401
TAccountSystemProgram
398-
>
402+
>,
403+
config?: { programAddress?: TProgramAddress }
399404
): CreateGuardInstruction<
400-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
405+
TProgramAddress,
401406
TAccountGuard,
402407
TAccountMint,
403408
TAccountMintTokenAccount,
@@ -408,7 +413,8 @@ export function getCreateGuardInstruction<
408413
TAccountSystemProgram
409414
> {
410415
// Program address.
411-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
416+
const programAddress =
417+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
412418

413419
// Original accounts.
414420
const originalAccounts = {
@@ -466,7 +472,7 @@ export function getCreateGuardInstruction<
466472
args as CreateGuardInstructionDataArgs
467473
),
468474
} as CreateGuardInstruction<
469-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
475+
TProgramAddress,
470476
TAccountGuard,
471477
TAccountMint,
472478
TAccountMintTokenAccount,

packages/renderers-js/e2e/anchor/src/generated/instructions/execute.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ export async function getExecuteInstructionAsync<
147147
TAccountExtraMetasAccount extends string,
148148
TAccountGuard extends string,
149149
TAccountInstructionSysvarAccount extends string,
150+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
150151
>(
151152
input: ExecuteAsyncInput<
152153
TAccountSourceAccount,
@@ -156,10 +157,11 @@ export async function getExecuteInstructionAsync<
156157
TAccountExtraMetasAccount,
157158
TAccountGuard,
158159
TAccountInstructionSysvarAccount
159-
>
160+
>,
161+
config?: { programAddress?: TProgramAddress }
160162
): Promise<
161163
ExecuteInstruction<
162-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
164+
TProgramAddress,
163165
TAccountSourceAccount,
164166
TAccountMint,
165167
TAccountDestinationAccount,
@@ -170,7 +172,8 @@ export async function getExecuteInstructionAsync<
170172
>
171173
> {
172174
// Program address.
173-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
175+
const programAddress =
176+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
174177

175178
// Original accounts.
176179
const originalAccounts = {
@@ -235,7 +238,7 @@ export async function getExecuteInstructionAsync<
235238
args as ExecuteInstructionDataArgs
236239
),
237240
} as ExecuteInstruction<
238-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
241+
TProgramAddress,
239242
TAccountSourceAccount,
240243
TAccountMint,
241244
TAccountDestinationAccount,
@@ -275,6 +278,7 @@ export function getExecuteInstruction<
275278
TAccountExtraMetasAccount extends string,
276279
TAccountGuard extends string,
277280
TAccountInstructionSysvarAccount extends string,
281+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
278282
>(
279283
input: ExecuteInput<
280284
TAccountSourceAccount,
@@ -284,9 +288,10 @@ export function getExecuteInstruction<
284288
TAccountExtraMetasAccount,
285289
TAccountGuard,
286290
TAccountInstructionSysvarAccount
287-
>
291+
>,
292+
config?: { programAddress?: TProgramAddress }
288293
): ExecuteInstruction<
289-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
294+
TProgramAddress,
290295
TAccountSourceAccount,
291296
TAccountMint,
292297
TAccountDestinationAccount,
@@ -296,7 +301,8 @@ export function getExecuteInstruction<
296301
TAccountInstructionSysvarAccount
297302
> {
298303
// Program address.
299-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
304+
const programAddress =
305+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
300306

301307
// Original accounts.
302308
const originalAccounts = {
@@ -347,7 +353,7 @@ export function getExecuteInstruction<
347353
args as ExecuteInstructionDataArgs
348354
),
349355
} as ExecuteInstruction<
350-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
356+
TProgramAddress,
351357
TAccountSourceAccount,
352358
TAccountMint,
353359
TAccountDestinationAccount,

packages/renderers-js/e2e/anchor/src/generated/instructions/initialize.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ export async function getInitializeInstructionAsync<
136136
TAccountTransferHookAuthority extends string,
137137
TAccountSystemProgram extends string,
138138
TAccountPayer extends string,
139+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
139140
>(
140141
input: InitializeAsyncInput<
141142
TAccountExtraMetasAccount,
@@ -144,10 +145,11 @@ export async function getInitializeInstructionAsync<
144145
TAccountTransferHookAuthority,
145146
TAccountSystemProgram,
146147
TAccountPayer
147-
>
148+
>,
149+
config?: { programAddress?: TProgramAddress }
148150
): Promise<
149151
InitializeInstruction<
150-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
152+
TProgramAddress,
151153
TAccountExtraMetasAccount,
152154
TAccountGuard,
153155
TAccountMint,
@@ -157,7 +159,8 @@ export async function getInitializeInstructionAsync<
157159
>
158160
> {
159161
// Program address.
160-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
162+
const programAddress =
163+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
161164

162165
// Original accounts.
163166
const originalAccounts = {
@@ -212,7 +215,7 @@ export async function getInitializeInstructionAsync<
212215
programAddress,
213216
data: getInitializeInstructionDataEncoder().encode({}),
214217
} as InitializeInstruction<
215-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
218+
TProgramAddress,
216219
TAccountExtraMetasAccount,
217220
TAccountGuard,
218221
TAccountMint,
@@ -247,6 +250,7 @@ export function getInitializeInstruction<
247250
TAccountTransferHookAuthority extends string,
248251
TAccountSystemProgram extends string,
249252
TAccountPayer extends string,
253+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
250254
>(
251255
input: InitializeInput<
252256
TAccountExtraMetasAccount,
@@ -255,9 +259,10 @@ export function getInitializeInstruction<
255259
TAccountTransferHookAuthority,
256260
TAccountSystemProgram,
257261
TAccountPayer
258-
>
262+
>,
263+
config?: { programAddress?: TProgramAddress }
259264
): InitializeInstruction<
260-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
265+
TProgramAddress,
261266
TAccountExtraMetasAccount,
262267
TAccountGuard,
263268
TAccountMint,
@@ -266,7 +271,8 @@ export function getInitializeInstruction<
266271
TAccountPayer
267272
> {
268273
// Program address.
269-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
274+
const programAddress =
275+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
270276

271277
// Original accounts.
272278
const originalAccounts = {
@@ -307,7 +313,7 @@ export function getInitializeInstruction<
307313
programAddress,
308314
data: getInitializeInstructionDataEncoder().encode({}),
309315
} as InitializeInstruction<
310-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
316+
TProgramAddress,
311317
TAccountExtraMetasAccount,
312318
TAccountGuard,
313319
TAccountMint,

packages/renderers-js/e2e/anchor/src/generated/instructions/updateGuard.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ export async function getUpdateGuardInstructionAsync<
185185
TAccountGuardAuthority extends string,
186186
TAccountTokenProgram extends string,
187187
TAccountSystemProgram extends string,
188+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
188189
>(
189190
input: UpdateGuardAsyncInput<
190191
TAccountGuard,
@@ -193,10 +194,11 @@ export async function getUpdateGuardInstructionAsync<
193194
TAccountGuardAuthority,
194195
TAccountTokenProgram,
195196
TAccountSystemProgram
196-
>
197+
>,
198+
config?: { programAddress?: TProgramAddress }
197199
): Promise<
198200
UpdateGuardInstruction<
199-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
201+
TProgramAddress,
200202
TAccountGuard,
201203
TAccountMint,
202204
TAccountTokenAccount,
@@ -206,7 +208,8 @@ export async function getUpdateGuardInstructionAsync<
206208
>
207209
> {
208210
// Program address.
209-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
211+
const programAddress =
212+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
210213

211214
// Original accounts.
212215
const originalAccounts = {
@@ -279,7 +282,7 @@ export async function getUpdateGuardInstructionAsync<
279282
args as UpdateGuardInstructionDataArgs
280283
),
281284
} as UpdateGuardInstruction<
282-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
285+
TProgramAddress,
283286
TAccountGuard,
284287
TAccountMint,
285288
TAccountTokenAccount,
@@ -317,6 +320,7 @@ export function getUpdateGuardInstruction<
317320
TAccountGuardAuthority extends string,
318321
TAccountTokenProgram extends string,
319322
TAccountSystemProgram extends string,
323+
TProgramAddress extends Address = typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
320324
>(
321325
input: UpdateGuardInput<
322326
TAccountGuard,
@@ -325,9 +329,10 @@ export function getUpdateGuardInstruction<
325329
TAccountGuardAuthority,
326330
TAccountTokenProgram,
327331
TAccountSystemProgram
328-
>
332+
>,
333+
config?: { programAddress?: TProgramAddress }
329334
): UpdateGuardInstruction<
330-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
335+
TProgramAddress,
331336
TAccountGuard,
332337
TAccountMint,
333338
TAccountTokenAccount,
@@ -336,7 +341,8 @@ export function getUpdateGuardInstruction<
336341
TAccountSystemProgram
337342
> {
338343
// Program address.
339-
const programAddress = WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
344+
const programAddress =
345+
config?.programAddress ?? WEN_TRANSFER_GUARD_PROGRAM_ADDRESS;
340346

341347
// Original accounts.
342348
const originalAccounts = {
@@ -380,7 +386,7 @@ export function getUpdateGuardInstruction<
380386
args as UpdateGuardInstructionDataArgs
381387
),
382388
} as UpdateGuardInstruction<
383-
typeof WEN_TRANSFER_GUARD_PROGRAM_ADDRESS,
389+
TProgramAddress,
384390
TAccountGuard,
385391
TAccountMint,
386392
TAccountTokenAccount,

packages/renderers-js/e2e/memo/src/generated/instructions/addMemo.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,14 @@ export type AddMemoInput = {
5959
signers?: Array<TransactionSigner>;
6060
};
6161

62-
export function getAddMemoInstruction(
63-
input: AddMemoInput
64-
): AddMemoInstruction<typeof MEMO_PROGRAM_ADDRESS> {
62+
export function getAddMemoInstruction<
63+
TProgramAddress extends Address = typeof MEMO_PROGRAM_ADDRESS,
64+
>(
65+
input: AddMemoInput,
66+
config?: { programAddress?: TProgramAddress }
67+
): AddMemoInstruction<TProgramAddress> {
6568
// Program address.
66-
const programAddress = MEMO_PROGRAM_ADDRESS;
69+
const programAddress = config?.programAddress ?? MEMO_PROGRAM_ADDRESS;
6770

6871
// Original args.
6972
const args = { ...input };
@@ -83,7 +86,7 @@ export function getAddMemoInstruction(
8386
data: getAddMemoInstructionDataEncoder().encode(
8487
args as AddMemoInstructionDataArgs
8588
),
86-
} as AddMemoInstruction<typeof MEMO_PROGRAM_ADDRESS>;
89+
} as AddMemoInstruction<TProgramAddress>;
8790

8891
return instruction;
8992
}

packages/renderers-js/e2e/system/src/generated/instructions/advanceNonceAccount.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,20 +104,22 @@ export function getAdvanceNonceAccountInstruction<
104104
TAccountNonceAccount extends string,
105105
TAccountRecentBlockhashesSysvar extends string,
106106
TAccountNonceAuthority extends string,
107+
TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,
107108
>(
108109
input: AdvanceNonceAccountInput<
109110
TAccountNonceAccount,
110111
TAccountRecentBlockhashesSysvar,
111112
TAccountNonceAuthority
112-
>
113+
>,
114+
config?: { programAddress?: TProgramAddress }
113115
): AdvanceNonceAccountInstruction<
114-
typeof SYSTEM_PROGRAM_ADDRESS,
116+
TProgramAddress,
115117
TAccountNonceAccount,
116118
TAccountRecentBlockhashesSysvar,
117119
TAccountNonceAuthority
118120
> {
119121
// Program address.
120-
const programAddress = SYSTEM_PROGRAM_ADDRESS;
122+
const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;
121123

122124
// Original accounts.
123125
const originalAccounts = {
@@ -149,7 +151,7 @@ export function getAdvanceNonceAccountInstruction<
149151
programAddress,
150152
data: getAdvanceNonceAccountInstructionDataEncoder().encode({}),
151153
} as AdvanceNonceAccountInstruction<
152-
typeof SYSTEM_PROGRAM_ADDRESS,
154+
TProgramAddress,
153155
TAccountNonceAccount,
154156
TAccountRecentBlockhashesSysvar,
155157
TAccountNonceAuthority

0 commit comments

Comments
 (0)