@nosana/jobs-program 2.14.2 → 2.23.0
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.
- package/dist/accounts/index.d.ts +1 -0
- package/dist/accounts/index.d.ts.map +1 -1
- package/dist/accounts/index.js +1 -0
- package/dist/accounts/jobAccount.d.ts +0 -1
- package/dist/accounts/jobAccount.d.ts.map +1 -1
- package/dist/accounts/marketAccount.d.ts +0 -1
- package/dist/accounts/marketAccount.d.ts.map +1 -1
- package/dist/accounts/marketSettingsAccount.d.ts +31 -0
- package/dist/accounts/marketSettingsAccount.d.ts.map +1 -0
- package/dist/accounts/marketSettingsAccount.js +59 -0
- package/dist/accounts/runAccount.d.ts +0 -1
- package/dist/accounts/runAccount.d.ts.map +1 -1
- package/dist/errors/nosanaJobs.d.ts +27 -17
- package/dist/errors/nosanaJobs.d.ts.map +1 -1
- package/dist/errors/nosanaJobs.js +31 -16
- package/dist/instructions/assign.d.ts +43 -5
- package/dist/instructions/assign.d.ts.map +1 -1
- package/dist/instructions/assign.js +105 -3
- package/dist/instructions/cleanAdmin.d.ts +2 -2
- package/dist/instructions/cleanAdmin.d.ts.map +1 -1
- package/dist/instructions/cleanAdmin.js +5 -0
- package/dist/instructions/close.d.ts +19 -4
- package/dist/instructions/close.d.ts.map +1 -1
- package/dist/instructions/close.js +54 -3
- package/dist/instructions/closeAdmin.d.ts +20 -5
- package/dist/instructions/closeAdmin.d.ts.map +1 -1
- package/dist/instructions/closeAdmin.js +62 -3
- package/dist/instructions/closeSettings.d.ts +57 -0
- package/dist/instructions/closeSettings.d.ts.map +1 -0
- package/dist/instructions/closeSettings.js +105 -0
- package/dist/instructions/extend.d.ts +2 -2
- package/dist/instructions/extend.d.ts.map +1 -1
- package/dist/instructions/extend.js +4 -0
- package/dist/instructions/index.d.ts +2 -1
- package/dist/instructions/index.d.ts.map +1 -1
- package/dist/instructions/index.js +2 -1
- package/dist/instructions/list.d.ts +42 -5
- package/dist/instructions/list.d.ts.map +1 -1
- package/dist/instructions/list.js +103 -3
- package/dist/instructions/open.d.ts +20 -2
- package/dist/instructions/open.d.ts.map +1 -1
- package/dist/instructions/open.js +65 -2
- package/dist/instructions/quitAdmin.d.ts +2 -2
- package/dist/instructions/quitAdmin.d.ts.map +1 -1
- package/dist/instructions/quitAdmin.js +5 -0
- package/dist/instructions/setSettings.d.ts +67 -0
- package/dist/instructions/setSettings.d.ts.map +1 -0
- package/dist/instructions/setSettings.js +132 -0
- package/dist/programs/nosanaJobs.d.ts +42 -38
- package/dist/programs/nosanaJobs.d.ts.map +1 -1
- package/dist/programs/nosanaJobs.js +52 -44
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -3
- package/dist/types/reflectionAccount.d.ts +27 -0
- package/dist/types/reflectionAccount.d.ts.map +1 -0
- package/dist/types/reflectionAccount.js +29 -0
- package/dist/types/stakeAccount.d.ts +31 -0
- package/dist/types/stakeAccount.d.ts.map +1 -0
- package/dist/types/stakeAccount.js +33 -0
- package/package.json +2 -2
- package/dist/instructions/claim.d.ts +0 -73
- package/dist/instructions/claim.d.ts.map +0 -1
- package/dist/instructions/claim.js +0 -103
- package/dist/types/jobState.d.ts +0 -20
- package/dist/types/jobState.d.ts.map +0 -1
- package/dist/types/jobState.js +0 -23
- package/dist/types/jobType.d.ts +0 -23
- package/dist/types/jobType.d.ts.map +0 -1
- package/dist/types/jobType.js +0 -26
- package/dist/types/queueType.d.ts +0 -20
- package/dist/types/queueType.d.ts.map +0 -1
- package/dist/types/queueType.js +0 -23
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @see https://github.com/codama-idl/codama
|
|
7
7
|
*/
|
|
8
|
-
import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getI64Decoder, getI64Encoder, getStructDecoder, getStructEncoder, transformEncoder, } from "@solana/kit";
|
|
8
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getI64Decoder, getI64Encoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, transformEncoder, } from "@solana/kit";
|
|
9
9
|
import { NOSANA_JOBS_PROGRAM_ADDRESS } from "../programs/index.js";
|
|
10
|
-
import { getAccountMetaFactory } from "../shared/index.js";
|
|
11
10
|
export const ASSIGN_INSTRUCTION_ACCOUNTS = {
|
|
12
11
|
job: 0,
|
|
13
12
|
market: 1,
|
|
@@ -22,7 +21,11 @@ export const ASSIGN_INSTRUCTION_ACCOUNTS = {
|
|
|
22
21
|
rewardsProgram: 10,
|
|
23
22
|
tokenProgram: 11,
|
|
24
23
|
systemProgram: 12,
|
|
24
|
+
marketSettings: 13,
|
|
25
|
+
projectNft: 14,
|
|
26
|
+
projectMetadata: 15,
|
|
25
27
|
};
|
|
28
|
+
import { expectAddress, getAccountMetaFactory, } from "../shared/index.js";
|
|
26
29
|
export const ASSIGN_DISCRIMINATOR = new Uint8Array([
|
|
27
30
|
73, 66, 125, 203, 81, 41, 64, 135,
|
|
28
31
|
]);
|
|
@@ -46,6 +49,83 @@ export function getAssignInstructionDataDecoder() {
|
|
|
46
49
|
export function getAssignInstructionDataCodec() {
|
|
47
50
|
return combineCodec(getAssignInstructionDataEncoder(), getAssignInstructionDataDecoder());
|
|
48
51
|
}
|
|
52
|
+
export async function getAssignInstructionAsync(input, config) {
|
|
53
|
+
// Program address.
|
|
54
|
+
const programAddress = config?.programAddress ?? NOSANA_JOBS_PROGRAM_ADDRESS;
|
|
55
|
+
// Original accounts.
|
|
56
|
+
const originalAccounts = {
|
|
57
|
+
job: { value: input.job ?? null, isWritable: true },
|
|
58
|
+
market: { value: input.market ?? null, isWritable: true },
|
|
59
|
+
run: { value: input.run ?? null, isWritable: true },
|
|
60
|
+
node: { value: input.node ?? null, isWritable: false },
|
|
61
|
+
user: { value: input.user ?? null, isWritable: true },
|
|
62
|
+
vault: { value: input.vault ?? null, isWritable: true },
|
|
63
|
+
payer: { value: input.payer ?? null, isWritable: true },
|
|
64
|
+
rewardsReflection: {
|
|
65
|
+
value: input.rewardsReflection ?? null,
|
|
66
|
+
isWritable: true,
|
|
67
|
+
},
|
|
68
|
+
rewardsVault: { value: input.rewardsVault ?? null, isWritable: true },
|
|
69
|
+
authority: { value: input.authority ?? null, isWritable: false },
|
|
70
|
+
rewardsProgram: { value: input.rewardsProgram ?? null, isWritable: false },
|
|
71
|
+
tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },
|
|
72
|
+
systemProgram: { value: input.systemProgram ?? null, isWritable: false },
|
|
73
|
+
marketSettings: { value: input.marketSettings ?? null, isWritable: false },
|
|
74
|
+
projectNft: { value: input.projectNft ?? null, isWritable: false },
|
|
75
|
+
projectMetadata: {
|
|
76
|
+
value: input.projectMetadata ?? null,
|
|
77
|
+
isWritable: false,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const accounts = originalAccounts;
|
|
81
|
+
// Original args.
|
|
82
|
+
const args = { ...input };
|
|
83
|
+
// Resolve default values.
|
|
84
|
+
if (!accounts.rewardsProgram.value) {
|
|
85
|
+
accounts.rewardsProgram.value =
|
|
86
|
+
"nosRB8DUV67oLNrL45bo2pFLrmsWPiewe2Lk2DRNYCp";
|
|
87
|
+
}
|
|
88
|
+
if (!accounts.tokenProgram.value) {
|
|
89
|
+
accounts.tokenProgram.value =
|
|
90
|
+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
91
|
+
}
|
|
92
|
+
if (!accounts.systemProgram.value) {
|
|
93
|
+
accounts.systemProgram.value =
|
|
94
|
+
"11111111111111111111111111111111";
|
|
95
|
+
}
|
|
96
|
+
if (!accounts.marketSettings.value) {
|
|
97
|
+
accounts.marketSettings.value = await getProgramDerivedAddress({
|
|
98
|
+
programAddress,
|
|
99
|
+
seeds: [
|
|
100
|
+
getBytesEncoder().encode(new Uint8Array([115, 101, 116, 116, 105, 110, 103, 115])),
|
|
101
|
+
getAddressEncoder().encode(expectAddress(accounts.market.value)),
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
|
|
106
|
+
return Object.freeze({
|
|
107
|
+
accounts: [
|
|
108
|
+
getAccountMeta(accounts.job),
|
|
109
|
+
getAccountMeta(accounts.market),
|
|
110
|
+
getAccountMeta(accounts.run),
|
|
111
|
+
getAccountMeta(accounts.node),
|
|
112
|
+
getAccountMeta(accounts.user),
|
|
113
|
+
getAccountMeta(accounts.vault),
|
|
114
|
+
getAccountMeta(accounts.payer),
|
|
115
|
+
getAccountMeta(accounts.rewardsReflection),
|
|
116
|
+
getAccountMeta(accounts.rewardsVault),
|
|
117
|
+
getAccountMeta(accounts.authority),
|
|
118
|
+
getAccountMeta(accounts.rewardsProgram),
|
|
119
|
+
getAccountMeta(accounts.tokenProgram),
|
|
120
|
+
getAccountMeta(accounts.systemProgram),
|
|
121
|
+
getAccountMeta(accounts.marketSettings),
|
|
122
|
+
getAccountMeta(accounts.projectNft),
|
|
123
|
+
getAccountMeta(accounts.projectMetadata),
|
|
124
|
+
],
|
|
125
|
+
data: getAssignInstructionDataEncoder().encode(args),
|
|
126
|
+
programAddress,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
49
129
|
export function getAssignInstruction(input, config) {
|
|
50
130
|
// Program address.
|
|
51
131
|
const programAddress = config?.programAddress ?? NOSANA_JOBS_PROGRAM_ADDRESS;
|
|
@@ -67,11 +147,21 @@ export function getAssignInstruction(input, config) {
|
|
|
67
147
|
rewardsProgram: { value: input.rewardsProgram ?? null, isWritable: false },
|
|
68
148
|
tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },
|
|
69
149
|
systemProgram: { value: input.systemProgram ?? null, isWritable: false },
|
|
150
|
+
marketSettings: { value: input.marketSettings ?? null, isWritable: false },
|
|
151
|
+
projectNft: { value: input.projectNft ?? null, isWritable: false },
|
|
152
|
+
projectMetadata: {
|
|
153
|
+
value: input.projectMetadata ?? null,
|
|
154
|
+
isWritable: false,
|
|
155
|
+
},
|
|
70
156
|
};
|
|
71
157
|
const accounts = originalAccounts;
|
|
72
158
|
// Original args.
|
|
73
159
|
const args = { ...input };
|
|
74
160
|
// Resolve default values.
|
|
161
|
+
if (!accounts.rewardsProgram.value) {
|
|
162
|
+
accounts.rewardsProgram.value =
|
|
163
|
+
"nosRB8DUV67oLNrL45bo2pFLrmsWPiewe2Lk2DRNYCp";
|
|
164
|
+
}
|
|
75
165
|
if (!accounts.tokenProgram.value) {
|
|
76
166
|
accounts.tokenProgram.value =
|
|
77
167
|
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
@@ -96,13 +186,16 @@ export function getAssignInstruction(input, config) {
|
|
|
96
186
|
getAccountMeta(accounts.rewardsProgram),
|
|
97
187
|
getAccountMeta(accounts.tokenProgram),
|
|
98
188
|
getAccountMeta(accounts.systemProgram),
|
|
189
|
+
getAccountMeta(accounts.marketSettings),
|
|
190
|
+
getAccountMeta(accounts.projectNft),
|
|
191
|
+
getAccountMeta(accounts.projectMetadata),
|
|
99
192
|
],
|
|
100
193
|
data: getAssignInstructionDataEncoder().encode(args),
|
|
101
194
|
programAddress,
|
|
102
195
|
});
|
|
103
196
|
}
|
|
104
197
|
export function parseAssignInstruction(instruction) {
|
|
105
|
-
if (instruction.accounts.length <
|
|
198
|
+
if (instruction.accounts.length < 16) {
|
|
106
199
|
// TODO: Coded error.
|
|
107
200
|
throw new Error("Not enough accounts");
|
|
108
201
|
}
|
|
@@ -112,6 +205,12 @@ export function parseAssignInstruction(instruction) {
|
|
|
112
205
|
accountIndex += 1;
|
|
113
206
|
return accountMeta;
|
|
114
207
|
};
|
|
208
|
+
const getNextOptionalAccount = () => {
|
|
209
|
+
const accountMeta = getNextAccount();
|
|
210
|
+
return accountMeta.address === NOSANA_JOBS_PROGRAM_ADDRESS
|
|
211
|
+
? undefined
|
|
212
|
+
: accountMeta;
|
|
213
|
+
};
|
|
115
214
|
return {
|
|
116
215
|
programAddress: instruction.programAddress,
|
|
117
216
|
accounts: {
|
|
@@ -128,6 +227,9 @@ export function parseAssignInstruction(instruction) {
|
|
|
128
227
|
rewardsProgram: getNextAccount(),
|
|
129
228
|
tokenProgram: getNextAccount(),
|
|
130
229
|
systemProgram: getNextAccount(),
|
|
230
|
+
marketSettings: getNextOptionalAccount(),
|
|
231
|
+
projectNft: getNextOptionalAccount(),
|
|
232
|
+
projectMetadata: getNextOptionalAccount(),
|
|
131
233
|
},
|
|
132
234
|
data: getAssignInstructionDataDecoder().decode(instruction.data),
|
|
133
235
|
};
|
|
@@ -15,7 +15,7 @@ export declare const CLEAN_ADMIN_INSTRUCTION_ACCOUNTS: {
|
|
|
15
15
|
export type CleanAdminInstructionAccountName = keyof typeof CLEAN_ADMIN_INSTRUCTION_ACCOUNTS;
|
|
16
16
|
export declare const CLEAN_ADMIN_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
17
17
|
export declare function getCleanAdminDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
|
|
18
|
-
export type CleanAdminInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountJob extends string | AccountMeta<string> = string, TAccountPayer extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> =
|
|
18
|
+
export type CleanAdminInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountJob extends string | AccountMeta<string> = string, TAccountPayer extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> = "XXXxddiNnmoD2h2LbQYaL76Swi21MaQbtBbRynAdQL8", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
|
|
19
19
|
TAccountJob extends string ? WritableAccount<TAccountJob> : TAccountJob,
|
|
20
20
|
TAccountPayer extends string ? WritableAccount<TAccountPayer> : TAccountPayer,
|
|
21
21
|
TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
|
|
@@ -31,7 +31,7 @@ export declare function getCleanAdminInstructionDataCodec(): FixedSizeCodec<Clea
|
|
|
31
31
|
export type CleanAdminInput<TAccountJob extends string = string, TAccountPayer extends string = string, TAccountAuthority extends string = string> = {
|
|
32
32
|
job: Address<TAccountJob>;
|
|
33
33
|
payer: Address<TAccountPayer>;
|
|
34
|
-
authority
|
|
34
|
+
authority?: TransactionSigner<TAccountAuthority>;
|
|
35
35
|
};
|
|
36
36
|
export declare function getCleanAdminInstruction<TAccountJob extends string, TAccountPayer extends string, TAccountAuthority extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: CleanAdminInput<TAccountJob, TAccountPayer, TAccountAuthority>, config?: {
|
|
37
37
|
programAddress?: TProgramAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanAdmin.d.ts","sourceRoot":"","sources":["../../src/instructions/cleanAdmin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EASL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGnE,eAAO,MAAM,gCAAgC;;;;CAInC,CAAC;AAEX,MAAM,MAAM,gCAAgC,GAAG,MAAM,OAAO,gCAAgC,CAAC;AAC7F,eAAO,MAAM,yBAAyB,yBAEpC,CAAC;AAEH,wBAAgB,+BAA+B,oCAE9C;AAED,MAAM,MAAM,qBAAqB,CAC/B,QAAQ,SAAS,MAAM,GAAG,OAAO,2BAA2B,EAC5D,WAAW,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACzD,aAAa,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAC3D,iBAAiB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"cleanAdmin.d.ts","sourceRoot":"","sources":["../../src/instructions/cleanAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,11 @@ export function getCleanAdminInstruction(input, config) {
|
|
|
40
40
|
authority: { value: input.authority ?? null, isWritable: false },
|
|
41
41
|
};
|
|
42
42
|
const accounts = originalAccounts;
|
|
43
|
+
// Resolve default values.
|
|
44
|
+
if (!accounts.authority.value) {
|
|
45
|
+
accounts.authority.value =
|
|
46
|
+
"XXXxddiNnmoD2h2LbQYaL76Swi21MaQbtBbRynAdQL8";
|
|
47
|
+
}
|
|
43
48
|
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
|
|
44
49
|
return Object.freeze({
|
|
45
50
|
accounts: [
|
|
@@ -13,16 +13,18 @@ export declare const CLOSE_INSTRUCTION_ACCOUNTS: {
|
|
|
13
13
|
readonly user: 2;
|
|
14
14
|
readonly authority: 3;
|
|
15
15
|
readonly tokenProgram: 4;
|
|
16
|
+
readonly marketSettings: 5;
|
|
16
17
|
};
|
|
17
18
|
export type CloseInstructionAccountName = keyof typeof CLOSE_INSTRUCTION_ACCOUNTS;
|
|
18
19
|
export declare const CLOSE_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
19
20
|
export declare function getCloseDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
|
|
20
|
-
export type CloseInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMarket extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUser extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
|
|
21
|
+
export type CloseInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMarket extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUser extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountMarketSettings extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
|
|
21
22
|
TAccountMarket extends string ? WritableAccount<TAccountMarket> : TAccountMarket,
|
|
22
23
|
TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
|
|
23
24
|
TAccountUser extends string ? WritableAccount<TAccountUser> : TAccountUser,
|
|
24
25
|
TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
|
|
25
26
|
TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
|
|
27
|
+
TAccountMarketSettings extends string ? WritableAccount<TAccountMarketSettings> : TAccountMarketSettings,
|
|
26
28
|
...TRemainingAccounts
|
|
27
29
|
]>;
|
|
28
30
|
export type CloseInstructionData = {
|
|
@@ -32,16 +34,28 @@ export type CloseInstructionDataArgs = {};
|
|
|
32
34
|
export declare function getCloseInstructionDataEncoder(): FixedSizeEncoder<CloseInstructionDataArgs>;
|
|
33
35
|
export declare function getCloseInstructionDataDecoder(): FixedSizeDecoder<CloseInstructionData>;
|
|
34
36
|
export declare function getCloseInstructionDataCodec(): FixedSizeCodec<CloseInstructionDataArgs, CloseInstructionData>;
|
|
35
|
-
export type
|
|
37
|
+
export type CloseAsyncInput<TAccountMarket extends string = string, TAccountVault extends string = string, TAccountUser extends string = string, TAccountAuthority extends string = string, TAccountTokenProgram extends string = string, TAccountMarketSettings extends string = string> = {
|
|
36
38
|
market: Address<TAccountMarket>;
|
|
37
39
|
vault: Address<TAccountVault>;
|
|
38
40
|
user: Address<TAccountUser>;
|
|
39
41
|
authority: TransactionSigner<TAccountAuthority>;
|
|
40
42
|
tokenProgram?: Address<TAccountTokenProgram>;
|
|
43
|
+
marketSettings?: Address<TAccountMarketSettings>;
|
|
41
44
|
};
|
|
42
|
-
export declare function
|
|
45
|
+
export declare function getCloseInstructionAsync<TAccountMarket extends string, TAccountVault extends string, TAccountUser extends string, TAccountAuthority extends string, TAccountTokenProgram extends string, TAccountMarketSettings extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: CloseAsyncInput<TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>, config?: {
|
|
43
46
|
programAddress?: TProgramAddress;
|
|
44
|
-
}): CloseInstruction<TProgramAddress, TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram
|
|
47
|
+
}): Promise<CloseInstruction<TProgramAddress, TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>>;
|
|
48
|
+
export type CloseInput<TAccountMarket extends string = string, TAccountVault extends string = string, TAccountUser extends string = string, TAccountAuthority extends string = string, TAccountTokenProgram extends string = string, TAccountMarketSettings extends string = string> = {
|
|
49
|
+
market: Address<TAccountMarket>;
|
|
50
|
+
vault: Address<TAccountVault>;
|
|
51
|
+
user: Address<TAccountUser>;
|
|
52
|
+
authority: TransactionSigner<TAccountAuthority>;
|
|
53
|
+
tokenProgram?: Address<TAccountTokenProgram>;
|
|
54
|
+
marketSettings?: Address<TAccountMarketSettings>;
|
|
55
|
+
};
|
|
56
|
+
export declare function getCloseInstruction<TAccountMarket extends string, TAccountVault extends string, TAccountUser extends string, TAccountAuthority extends string, TAccountTokenProgram extends string, TAccountMarketSettings extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: CloseInput<TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>, config?: {
|
|
57
|
+
programAddress?: TProgramAddress;
|
|
58
|
+
}): CloseInstruction<TProgramAddress, TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>;
|
|
45
59
|
export type ParsedCloseInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
|
|
46
60
|
programAddress: Address<TProgram>;
|
|
47
61
|
accounts: {
|
|
@@ -50,6 +64,7 @@ export type ParsedCloseInstruction<TProgram extends string = typeof NOSANA_JOBS_
|
|
|
50
64
|
user: TAccountMetas[2];
|
|
51
65
|
authority: TAccountMetas[3];
|
|
52
66
|
tokenProgram: TAccountMetas[4];
|
|
67
|
+
marketSettings?: TAccountMetas[5] | undefined;
|
|
53
68
|
};
|
|
54
69
|
data: CloseInstructionData;
|
|
55
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/instructions/close.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/instructions/close.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @see https://github.com/codama-idl/codama
|
|
7
7
|
*/
|
|
8
|
-
import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, transformEncoder, } from "@solana/kit";
|
|
8
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, transformEncoder, } from "@solana/kit";
|
|
9
9
|
import { NOSANA_JOBS_PROGRAM_ADDRESS } from "../programs/index.js";
|
|
10
|
-
import { getAccountMetaFactory } from "../shared/index.js";
|
|
11
10
|
export const CLOSE_INSTRUCTION_ACCOUNTS = {
|
|
12
11
|
market: 0,
|
|
13
12
|
vault: 1,
|
|
14
13
|
user: 2,
|
|
15
14
|
authority: 3,
|
|
16
15
|
tokenProgram: 4,
|
|
16
|
+
marketSettings: 5,
|
|
17
17
|
};
|
|
18
|
+
import { expectAddress, getAccountMetaFactory, } from "../shared/index.js";
|
|
18
19
|
export const CLOSE_DISCRIMINATOR = new Uint8Array([
|
|
19
20
|
98, 165, 201, 177, 108, 65, 206, 96,
|
|
20
21
|
]);
|
|
@@ -32,6 +33,47 @@ export function getCloseInstructionDataDecoder() {
|
|
|
32
33
|
export function getCloseInstructionDataCodec() {
|
|
33
34
|
return combineCodec(getCloseInstructionDataEncoder(), getCloseInstructionDataDecoder());
|
|
34
35
|
}
|
|
36
|
+
export async function getCloseInstructionAsync(input, config) {
|
|
37
|
+
// Program address.
|
|
38
|
+
const programAddress = config?.programAddress ?? NOSANA_JOBS_PROGRAM_ADDRESS;
|
|
39
|
+
// Original accounts.
|
|
40
|
+
const originalAccounts = {
|
|
41
|
+
market: { value: input.market ?? null, isWritable: true },
|
|
42
|
+
vault: { value: input.vault ?? null, isWritable: true },
|
|
43
|
+
user: { value: input.user ?? null, isWritable: true },
|
|
44
|
+
authority: { value: input.authority ?? null, isWritable: false },
|
|
45
|
+
tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },
|
|
46
|
+
marketSettings: { value: input.marketSettings ?? null, isWritable: true },
|
|
47
|
+
};
|
|
48
|
+
const accounts = originalAccounts;
|
|
49
|
+
// Resolve default values.
|
|
50
|
+
if (!accounts.tokenProgram.value) {
|
|
51
|
+
accounts.tokenProgram.value =
|
|
52
|
+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
53
|
+
}
|
|
54
|
+
if (!accounts.marketSettings.value) {
|
|
55
|
+
accounts.marketSettings.value = await getProgramDerivedAddress({
|
|
56
|
+
programAddress,
|
|
57
|
+
seeds: [
|
|
58
|
+
getBytesEncoder().encode(new Uint8Array([115, 101, 116, 116, 105, 110, 103, 115])),
|
|
59
|
+
getAddressEncoder().encode(expectAddress(accounts.market.value)),
|
|
60
|
+
],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
|
|
64
|
+
return Object.freeze({
|
|
65
|
+
accounts: [
|
|
66
|
+
getAccountMeta(accounts.market),
|
|
67
|
+
getAccountMeta(accounts.vault),
|
|
68
|
+
getAccountMeta(accounts.user),
|
|
69
|
+
getAccountMeta(accounts.authority),
|
|
70
|
+
getAccountMeta(accounts.tokenProgram),
|
|
71
|
+
getAccountMeta(accounts.marketSettings),
|
|
72
|
+
],
|
|
73
|
+
data: getCloseInstructionDataEncoder().encode({}),
|
|
74
|
+
programAddress,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
35
77
|
export function getCloseInstruction(input, config) {
|
|
36
78
|
// Program address.
|
|
37
79
|
const programAddress = config?.programAddress ?? NOSANA_JOBS_PROGRAM_ADDRESS;
|
|
@@ -42,6 +84,7 @@ export function getCloseInstruction(input, config) {
|
|
|
42
84
|
user: { value: input.user ?? null, isWritable: true },
|
|
43
85
|
authority: { value: input.authority ?? null, isWritable: false },
|
|
44
86
|
tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },
|
|
87
|
+
marketSettings: { value: input.marketSettings ?? null, isWritable: true },
|
|
45
88
|
};
|
|
46
89
|
const accounts = originalAccounts;
|
|
47
90
|
// Resolve default values.
|
|
@@ -57,13 +100,14 @@ export function getCloseInstruction(input, config) {
|
|
|
57
100
|
getAccountMeta(accounts.user),
|
|
58
101
|
getAccountMeta(accounts.authority),
|
|
59
102
|
getAccountMeta(accounts.tokenProgram),
|
|
103
|
+
getAccountMeta(accounts.marketSettings),
|
|
60
104
|
],
|
|
61
105
|
data: getCloseInstructionDataEncoder().encode({}),
|
|
62
106
|
programAddress,
|
|
63
107
|
});
|
|
64
108
|
}
|
|
65
109
|
export function parseCloseInstruction(instruction) {
|
|
66
|
-
if (instruction.accounts.length <
|
|
110
|
+
if (instruction.accounts.length < 6) {
|
|
67
111
|
// TODO: Coded error.
|
|
68
112
|
throw new Error("Not enough accounts");
|
|
69
113
|
}
|
|
@@ -73,6 +117,12 @@ export function parseCloseInstruction(instruction) {
|
|
|
73
117
|
accountIndex += 1;
|
|
74
118
|
return accountMeta;
|
|
75
119
|
};
|
|
120
|
+
const getNextOptionalAccount = () => {
|
|
121
|
+
const accountMeta = getNextAccount();
|
|
122
|
+
return accountMeta.address === NOSANA_JOBS_PROGRAM_ADDRESS
|
|
123
|
+
? undefined
|
|
124
|
+
: accountMeta;
|
|
125
|
+
};
|
|
76
126
|
return {
|
|
77
127
|
programAddress: instruction.programAddress,
|
|
78
128
|
accounts: {
|
|
@@ -81,6 +131,7 @@ export function parseCloseInstruction(instruction) {
|
|
|
81
131
|
user: getNextAccount(),
|
|
82
132
|
authority: getNextAccount(),
|
|
83
133
|
tokenProgram: getNextAccount(),
|
|
134
|
+
marketSettings: getNextOptionalAccount(),
|
|
84
135
|
},
|
|
85
136
|
data: getCloseInstructionDataDecoder().decode(instruction.data),
|
|
86
137
|
};
|
|
@@ -13,16 +13,18 @@ export declare const CLOSE_ADMIN_INSTRUCTION_ACCOUNTS: {
|
|
|
13
13
|
readonly user: 2;
|
|
14
14
|
readonly authority: 3;
|
|
15
15
|
readonly tokenProgram: 4;
|
|
16
|
+
readonly marketSettings: 5;
|
|
16
17
|
};
|
|
17
18
|
export type CloseAdminInstructionAccountName = keyof typeof CLOSE_ADMIN_INSTRUCTION_ACCOUNTS;
|
|
18
19
|
export declare const CLOSE_ADMIN_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
19
20
|
export declare function getCloseAdminDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
|
|
20
|
-
export type CloseAdminInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMarket extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUser extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> =
|
|
21
|
+
export type CloseAdminInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMarket extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountUser extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> = "XXXxddiNnmoD2h2LbQYaL76Swi21MaQbtBbRynAdQL8", TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountMarketSettings extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
|
|
21
22
|
TAccountMarket extends string ? WritableAccount<TAccountMarket> : TAccountMarket,
|
|
22
23
|
TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
|
|
23
24
|
TAccountUser extends string ? WritableAccount<TAccountUser> : TAccountUser,
|
|
24
25
|
TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
|
|
25
26
|
TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
|
|
27
|
+
TAccountMarketSettings extends string ? WritableAccount<TAccountMarketSettings> : TAccountMarketSettings,
|
|
26
28
|
...TRemainingAccounts
|
|
27
29
|
]>;
|
|
28
30
|
export type CloseAdminInstructionData = {
|
|
@@ -32,16 +34,28 @@ export type CloseAdminInstructionDataArgs = {};
|
|
|
32
34
|
export declare function getCloseAdminInstructionDataEncoder(): FixedSizeEncoder<CloseAdminInstructionDataArgs>;
|
|
33
35
|
export declare function getCloseAdminInstructionDataDecoder(): FixedSizeDecoder<CloseAdminInstructionData>;
|
|
34
36
|
export declare function getCloseAdminInstructionDataCodec(): FixedSizeCodec<CloseAdminInstructionDataArgs, CloseAdminInstructionData>;
|
|
35
|
-
export type
|
|
37
|
+
export type CloseAdminAsyncInput<TAccountMarket extends string = string, TAccountVault extends string = string, TAccountUser extends string = string, TAccountAuthority extends string = string, TAccountTokenProgram extends string = string, TAccountMarketSettings extends string = string> = {
|
|
36
38
|
market: Address<TAccountMarket>;
|
|
37
39
|
vault: Address<TAccountVault>;
|
|
38
40
|
user: Address<TAccountUser>;
|
|
39
|
-
authority
|
|
41
|
+
authority?: TransactionSigner<TAccountAuthority>;
|
|
40
42
|
tokenProgram?: Address<TAccountTokenProgram>;
|
|
43
|
+
marketSettings?: Address<TAccountMarketSettings>;
|
|
41
44
|
};
|
|
42
|
-
export declare function
|
|
45
|
+
export declare function getCloseAdminInstructionAsync<TAccountMarket extends string, TAccountVault extends string, TAccountUser extends string, TAccountAuthority extends string, TAccountTokenProgram extends string, TAccountMarketSettings extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: CloseAdminAsyncInput<TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>, config?: {
|
|
43
46
|
programAddress?: TProgramAddress;
|
|
44
|
-
}): CloseAdminInstruction<TProgramAddress, TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram
|
|
47
|
+
}): Promise<CloseAdminInstruction<TProgramAddress, TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>>;
|
|
48
|
+
export type CloseAdminInput<TAccountMarket extends string = string, TAccountVault extends string = string, TAccountUser extends string = string, TAccountAuthority extends string = string, TAccountTokenProgram extends string = string, TAccountMarketSettings extends string = string> = {
|
|
49
|
+
market: Address<TAccountMarket>;
|
|
50
|
+
vault: Address<TAccountVault>;
|
|
51
|
+
user: Address<TAccountUser>;
|
|
52
|
+
authority?: TransactionSigner<TAccountAuthority>;
|
|
53
|
+
tokenProgram?: Address<TAccountTokenProgram>;
|
|
54
|
+
marketSettings?: Address<TAccountMarketSettings>;
|
|
55
|
+
};
|
|
56
|
+
export declare function getCloseAdminInstruction<TAccountMarket extends string, TAccountVault extends string, TAccountUser extends string, TAccountAuthority extends string, TAccountTokenProgram extends string, TAccountMarketSettings extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: CloseAdminInput<TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>, config?: {
|
|
57
|
+
programAddress?: TProgramAddress;
|
|
58
|
+
}): CloseAdminInstruction<TProgramAddress, TAccountMarket, TAccountVault, TAccountUser, TAccountAuthority, TAccountTokenProgram, TAccountMarketSettings>;
|
|
45
59
|
export type ParsedCloseAdminInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
|
|
46
60
|
programAddress: Address<TProgram>;
|
|
47
61
|
accounts: {
|
|
@@ -50,6 +64,7 @@ export type ParsedCloseAdminInstruction<TProgram extends string = typeof NOSANA_
|
|
|
50
64
|
user: TAccountMetas[2];
|
|
51
65
|
authority: TAccountMetas[3];
|
|
52
66
|
tokenProgram: TAccountMetas[4];
|
|
67
|
+
marketSettings?: TAccountMetas[5] | undefined;
|
|
53
68
|
};
|
|
54
69
|
data: CloseAdminInstructionData;
|
|
55
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeAdmin.d.ts","sourceRoot":"","sources":["../../src/instructions/closeAdmin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"closeAdmin.d.ts","sourceRoot":"","sources":["../../src/instructions/closeAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @see https://github.com/codama-idl/codama
|
|
7
7
|
*/
|
|
8
|
-
import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, transformEncoder, } from "@solana/kit";
|
|
8
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, transformEncoder, } from "@solana/kit";
|
|
9
9
|
import { NOSANA_JOBS_PROGRAM_ADDRESS } from "../programs/index.js";
|
|
10
|
-
import { getAccountMetaFactory } from "../shared/index.js";
|
|
11
10
|
export const CLOSE_ADMIN_INSTRUCTION_ACCOUNTS = {
|
|
12
11
|
market: 0,
|
|
13
12
|
vault: 1,
|
|
14
13
|
user: 2,
|
|
15
14
|
authority: 3,
|
|
16
15
|
tokenProgram: 4,
|
|
16
|
+
marketSettings: 5,
|
|
17
17
|
};
|
|
18
|
+
import { expectAddress, getAccountMetaFactory, } from "../shared/index.js";
|
|
18
19
|
export const CLOSE_ADMIN_DISCRIMINATOR = new Uint8Array([
|
|
19
20
|
202, 182, 185, 142, 208, 161, 145, 189,
|
|
20
21
|
]);
|
|
@@ -32,6 +33,51 @@ export function getCloseAdminInstructionDataDecoder() {
|
|
|
32
33
|
export function getCloseAdminInstructionDataCodec() {
|
|
33
34
|
return combineCodec(getCloseAdminInstructionDataEncoder(), getCloseAdminInstructionDataDecoder());
|
|
34
35
|
}
|
|
36
|
+
export async function getCloseAdminInstructionAsync(input, config) {
|
|
37
|
+
// Program address.
|
|
38
|
+
const programAddress = config?.programAddress ?? NOSANA_JOBS_PROGRAM_ADDRESS;
|
|
39
|
+
// Original accounts.
|
|
40
|
+
const originalAccounts = {
|
|
41
|
+
market: { value: input.market ?? null, isWritable: true },
|
|
42
|
+
vault: { value: input.vault ?? null, isWritable: true },
|
|
43
|
+
user: { value: input.user ?? null, isWritable: true },
|
|
44
|
+
authority: { value: input.authority ?? null, isWritable: false },
|
|
45
|
+
tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },
|
|
46
|
+
marketSettings: { value: input.marketSettings ?? null, isWritable: true },
|
|
47
|
+
};
|
|
48
|
+
const accounts = originalAccounts;
|
|
49
|
+
// Resolve default values.
|
|
50
|
+
if (!accounts.authority.value) {
|
|
51
|
+
accounts.authority.value =
|
|
52
|
+
"XXXxddiNnmoD2h2LbQYaL76Swi21MaQbtBbRynAdQL8";
|
|
53
|
+
}
|
|
54
|
+
if (!accounts.tokenProgram.value) {
|
|
55
|
+
accounts.tokenProgram.value =
|
|
56
|
+
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
57
|
+
}
|
|
58
|
+
if (!accounts.marketSettings.value) {
|
|
59
|
+
accounts.marketSettings.value = await getProgramDerivedAddress({
|
|
60
|
+
programAddress,
|
|
61
|
+
seeds: [
|
|
62
|
+
getBytesEncoder().encode(new Uint8Array([115, 101, 116, 116, 105, 110, 103, 115])),
|
|
63
|
+
getAddressEncoder().encode(expectAddress(accounts.market.value)),
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
|
|
68
|
+
return Object.freeze({
|
|
69
|
+
accounts: [
|
|
70
|
+
getAccountMeta(accounts.market),
|
|
71
|
+
getAccountMeta(accounts.vault),
|
|
72
|
+
getAccountMeta(accounts.user),
|
|
73
|
+
getAccountMeta(accounts.authority),
|
|
74
|
+
getAccountMeta(accounts.tokenProgram),
|
|
75
|
+
getAccountMeta(accounts.marketSettings),
|
|
76
|
+
],
|
|
77
|
+
data: getCloseAdminInstructionDataEncoder().encode({}),
|
|
78
|
+
programAddress,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
35
81
|
export function getCloseAdminInstruction(input, config) {
|
|
36
82
|
// Program address.
|
|
37
83
|
const programAddress = config?.programAddress ?? NOSANA_JOBS_PROGRAM_ADDRESS;
|
|
@@ -42,9 +88,14 @@ export function getCloseAdminInstruction(input, config) {
|
|
|
42
88
|
user: { value: input.user ?? null, isWritable: true },
|
|
43
89
|
authority: { value: input.authority ?? null, isWritable: false },
|
|
44
90
|
tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },
|
|
91
|
+
marketSettings: { value: input.marketSettings ?? null, isWritable: true },
|
|
45
92
|
};
|
|
46
93
|
const accounts = originalAccounts;
|
|
47
94
|
// Resolve default values.
|
|
95
|
+
if (!accounts.authority.value) {
|
|
96
|
+
accounts.authority.value =
|
|
97
|
+
"XXXxddiNnmoD2h2LbQYaL76Swi21MaQbtBbRynAdQL8";
|
|
98
|
+
}
|
|
48
99
|
if (!accounts.tokenProgram.value) {
|
|
49
100
|
accounts.tokenProgram.value =
|
|
50
101
|
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
@@ -57,13 +108,14 @@ export function getCloseAdminInstruction(input, config) {
|
|
|
57
108
|
getAccountMeta(accounts.user),
|
|
58
109
|
getAccountMeta(accounts.authority),
|
|
59
110
|
getAccountMeta(accounts.tokenProgram),
|
|
111
|
+
getAccountMeta(accounts.marketSettings),
|
|
60
112
|
],
|
|
61
113
|
data: getCloseAdminInstructionDataEncoder().encode({}),
|
|
62
114
|
programAddress,
|
|
63
115
|
});
|
|
64
116
|
}
|
|
65
117
|
export function parseCloseAdminInstruction(instruction) {
|
|
66
|
-
if (instruction.accounts.length <
|
|
118
|
+
if (instruction.accounts.length < 6) {
|
|
67
119
|
// TODO: Coded error.
|
|
68
120
|
throw new Error("Not enough accounts");
|
|
69
121
|
}
|
|
@@ -73,6 +125,12 @@ export function parseCloseAdminInstruction(instruction) {
|
|
|
73
125
|
accountIndex += 1;
|
|
74
126
|
return accountMeta;
|
|
75
127
|
};
|
|
128
|
+
const getNextOptionalAccount = () => {
|
|
129
|
+
const accountMeta = getNextAccount();
|
|
130
|
+
return accountMeta.address === NOSANA_JOBS_PROGRAM_ADDRESS
|
|
131
|
+
? undefined
|
|
132
|
+
: accountMeta;
|
|
133
|
+
};
|
|
76
134
|
return {
|
|
77
135
|
programAddress: instruction.programAddress,
|
|
78
136
|
accounts: {
|
|
@@ -81,6 +139,7 @@ export function parseCloseAdminInstruction(instruction) {
|
|
|
81
139
|
user: getNextAccount(),
|
|
82
140
|
authority: getNextAccount(),
|
|
83
141
|
tokenProgram: getNextAccount(),
|
|
142
|
+
marketSettings: getNextOptionalAccount(),
|
|
84
143
|
},
|
|
85
144
|
data: getCloseAdminInstructionDataDecoder().decode(instruction.data),
|
|
86
145
|
};
|