@send-fun/sdk 1.0.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.
Files changed (172) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -0
  3. package/dist/index.cjs +12808 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +4406 -0
  6. package/dist/index.d.cts.map +1 -0
  7. package/dist/index.d.mts +4405 -0
  8. package/dist/index.d.mts.map +1 -0
  9. package/dist/index.mjs +12749 -0
  10. package/dist/index.mjs.map +1 -0
  11. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  12. package/package.json +72 -0
  13. package/src/constants.ts +38 -0
  14. package/src/dex/generated/accounts/globalConfig.ts +189 -0
  15. package/src/dex/generated/accounts/index.ts +12 -0
  16. package/src/dex/generated/accounts/pool.ts +244 -0
  17. package/src/dex/generated/accounts/rewardAccrual.ts +191 -0
  18. package/src/dex/generated/accounts/sendDex.accounts.ts +47 -0
  19. package/src/dex/generated/errors/index.ts +9 -0
  20. package/src/dex/generated/errors/sendDex.ts +161 -0
  21. package/src/dex/generated/events/anchorEventCpiDiscriminator.framing.ts +28 -0
  22. package/src/dex/generated/events/creatorClaimEvent.ts +119 -0
  23. package/src/dex/generated/events/depositQuoteEvent.ts +115 -0
  24. package/src/dex/generated/events/index.ts +16 -0
  25. package/src/dex/generated/events/poolCreateEvent.ts +128 -0
  26. package/src/dex/generated/events/protocolClaimEvent.ts +111 -0
  27. package/src/dex/generated/events/sendDex.events.ts +184 -0
  28. package/src/dex/generated/events/tokenCreateEvent.ts +143 -0
  29. package/src/dex/generated/events/tradeEvent.ts +143 -0
  30. package/src/dex/generated/index.ts +16 -0
  31. package/src/dex/generated/instructions/buyExactIn.ts +815 -0
  32. package/src/dex/generated/instructions/buyExactOut.ts +815 -0
  33. package/src/dex/generated/instructions/claimCreatorFees.ts +648 -0
  34. package/src/dex/generated/instructions/claimProtocolFees.ts +640 -0
  35. package/src/dex/generated/instructions/index.ts +15 -0
  36. package/src/dex/generated/instructions/sellExactIn.ts +815 -0
  37. package/src/dex/generated/instructions/sellExactOut.ts +815 -0
  38. package/src/dex/generated/instructions/sendDex.instructions.ts +173 -0
  39. package/src/dex/generated/pdas/eventAuthority.ts +20 -0
  40. package/src/dex/generated/pdas/globalConfig.ts +20 -0
  41. package/src/dex/generated/pdas/index.ts +14 -0
  42. package/src/dex/generated/pdas/lpMint.ts +36 -0
  43. package/src/dex/generated/pdas/pool.ts +34 -0
  44. package/src/dex/generated/pdas/rewardAccrual.ts +37 -0
  45. package/src/dex/generated/pdas/wsolRewardAccrual.ts +20 -0
  46. package/src/dex/generated/plugins/index.ts +9 -0
  47. package/src/dex/generated/plugins/sendDex.ts +282 -0
  48. package/src/dex/generated/programs/index.ts +9 -0
  49. package/src/dex/generated/programs/sendDex.ts +12 -0
  50. package/src/dex/generated/types/index.ts +10 -0
  51. package/src/dex/generated/types/poolStatus.ts +38 -0
  52. package/src/dex/generated/types/tradeDirection.ts +38 -0
  53. package/src/dex/index.ts +8 -0
  54. package/src/dex/trade.ts +215 -0
  55. package/src/index.ts +8 -0
  56. package/src/launchpad/create.ts +116 -0
  57. package/src/launchpad/generated/accounts/bondingCurve.ts +273 -0
  58. package/src/launchpad/generated/accounts/globalConfig.ts +211 -0
  59. package/src/launchpad/generated/accounts/index.ts +12 -0
  60. package/src/launchpad/generated/accounts/rewardAccrual.ts +191 -0
  61. package/src/launchpad/generated/accounts/sendLaunchpad.accounts.ts +50 -0
  62. package/src/launchpad/generated/errors/index.ts +9 -0
  63. package/src/launchpad/generated/errors/sendLaunchpad.ts +175 -0
  64. package/src/launchpad/generated/events/anchorEventCpiDiscriminator.framing.ts +28 -0
  65. package/src/launchpad/generated/events/completeEvent.ts +120 -0
  66. package/src/launchpad/generated/events/creatorClaimEvent.ts +122 -0
  67. package/src/launchpad/generated/events/index.ts +17 -0
  68. package/src/launchpad/generated/events/migrateEvent.ts +121 -0
  69. package/src/launchpad/generated/events/protocolClaimEvent.ts +114 -0
  70. package/src/launchpad/generated/events/recycleEvent.ts +113 -0
  71. package/src/launchpad/generated/events/sendLaunchpad.events.ts +207 -0
  72. package/src/launchpad/generated/events/tokenCreateEvent.ts +156 -0
  73. package/src/launchpad/generated/events/tradeEvent.ts +148 -0
  74. package/src/launchpad/generated/index.ts +16 -0
  75. package/src/launchpad/generated/instructions/buyExactIn.ts +818 -0
  76. package/src/launchpad/generated/instructions/buyExactOut.ts +818 -0
  77. package/src/launchpad/generated/instructions/claimCreatorFees.ts +651 -0
  78. package/src/launchpad/generated/instructions/claimProtocolFees.ts +640 -0
  79. package/src/launchpad/generated/instructions/createToken.ts +1150 -0
  80. package/src/launchpad/generated/instructions/index.ts +17 -0
  81. package/src/launchpad/generated/instructions/migrate.ts +840 -0
  82. package/src/launchpad/generated/instructions/sellExactIn.ts +818 -0
  83. package/src/launchpad/generated/instructions/sellExactOut.ts +818 -0
  84. package/src/launchpad/generated/instructions/sendLaunchpad.instructions.ts +210 -0
  85. package/src/launchpad/generated/pdas/bondingCurve.ts +39 -0
  86. package/src/launchpad/generated/pdas/eventAuthority.ts +20 -0
  87. package/src/launchpad/generated/pdas/globalConfig.ts +20 -0
  88. package/src/launchpad/generated/pdas/index.ts +14 -0
  89. package/src/launchpad/generated/pdas/migrationAuthority.ts +20 -0
  90. package/src/launchpad/generated/pdas/rewardAccrual.ts +37 -0
  91. package/src/launchpad/generated/pdas/wsolRewardAccrual.ts +20 -0
  92. package/src/launchpad/generated/plugins/index.ts +9 -0
  93. package/src/launchpad/generated/plugins/sendLaunchpad.ts +315 -0
  94. package/src/launchpad/generated/programs/index.ts +9 -0
  95. package/src/launchpad/generated/programs/sendLaunchpad.ts +12 -0
  96. package/src/launchpad/generated/types/bondingCurveStatus.ts +43 -0
  97. package/src/launchpad/generated/types/index.ts +10 -0
  98. package/src/launchpad/generated/types/tradeDirection.ts +38 -0
  99. package/src/launchpad/index.ts +10 -0
  100. package/src/launchpad/migrate.ts +54 -0
  101. package/src/launchpad/trade.ts +247 -0
  102. package/src/math/amm.ts +511 -0
  103. package/src/math/fee-decay.ts +49 -0
  104. package/src/math/fees.ts +75 -0
  105. package/src/math/index.ts +3 -0
  106. package/src/math/internal.ts +16 -0
  107. package/src/nexus/fee-helpers.ts +49 -0
  108. package/src/nexus/generated/accounts/altRegistry.ts +177 -0
  109. package/src/nexus/generated/accounts/creatorFeeConfig.ts +200 -0
  110. package/src/nexus/generated/accounts/feePreset.ts +196 -0
  111. package/src/nexus/generated/accounts/globalConfig.ts +188 -0
  112. package/src/nexus/generated/accounts/index.ts +19 -0
  113. package/src/nexus/generated/accounts/partnerConfig.ts +209 -0
  114. package/src/nexus/generated/accounts/partnerMetadata.ts +216 -0
  115. package/src/nexus/generated/accounts/rewardState.ts +209 -0
  116. package/src/nexus/generated/accounts/sendNexus.accounts.ts +85 -0
  117. package/src/nexus/generated/accounts/stakingConfig.ts +197 -0
  118. package/src/nexus/generated/accounts/userRewardDebt.ts +221 -0
  119. package/src/nexus/generated/accounts/userStakePosition.ts +218 -0
  120. package/src/nexus/generated/constants/index.ts +9 -0
  121. package/src/nexus/generated/constants/sendNexus.ts +13 -0
  122. package/src/nexus/generated/errors/index.ts +9 -0
  123. package/src/nexus/generated/errors/sendNexus.ts +229 -0
  124. package/src/nexus/generated/events/anchorEventCpiDiscriminator.framing.ts +28 -0
  125. package/src/nexus/generated/events/claimEvent.ts +106 -0
  126. package/src/nexus/generated/events/index.ts +13 -0
  127. package/src/nexus/generated/events/sendNexus.events.ts +121 -0
  128. package/src/nexus/generated/events/stakeEvent.ts +106 -0
  129. package/src/nexus/generated/events/unstakeEvent.ts +106 -0
  130. package/src/nexus/generated/index.ts +17 -0
  131. package/src/nexus/generated/instructions/claim.ts +740 -0
  132. package/src/nexus/generated/instructions/createUserRewardDebt.ts +498 -0
  133. package/src/nexus/generated/instructions/index.ts +14 -0
  134. package/src/nexus/generated/instructions/sendNexus.instructions.ts +146 -0
  135. package/src/nexus/generated/instructions/settle.ts +517 -0
  136. package/src/nexus/generated/instructions/stake.ts +615 -0
  137. package/src/nexus/generated/instructions/unstake.ts +593 -0
  138. package/src/nexus/generated/pdas/altRegistry.ts +20 -0
  139. package/src/nexus/generated/pdas/creatorFeeConfig.ts +39 -0
  140. package/src/nexus/generated/pdas/defaultFeePreset.ts +37 -0
  141. package/src/nexus/generated/pdas/defaultPartner.ts +40 -0
  142. package/src/nexus/generated/pdas/defaultPartnerMetadata.ts +42 -0
  143. package/src/nexus/generated/pdas/eventAuthority.ts +20 -0
  144. package/src/nexus/generated/pdas/feePreset.ts +39 -0
  145. package/src/nexus/generated/pdas/globalConfig.ts +20 -0
  146. package/src/nexus/generated/pdas/index.ts +22 -0
  147. package/src/nexus/generated/pdas/partnerConfig.ts +36 -0
  148. package/src/nexus/generated/pdas/partnerMetadata.ts +38 -0
  149. package/src/nexus/generated/pdas/rewardState.ts +36 -0
  150. package/src/nexus/generated/pdas/stakingConfig.ts +20 -0
  151. package/src/nexus/generated/pdas/userRewardDebt.ts +41 -0
  152. package/src/nexus/generated/pdas/userStakePosition.ts +39 -0
  153. package/src/nexus/generated/plugins/index.ts +9 -0
  154. package/src/nexus/generated/plugins/sendNexus.ts +494 -0
  155. package/src/nexus/generated/programs/index.ts +9 -0
  156. package/src/nexus/generated/programs/sendNexus.ts +12 -0
  157. package/src/nexus/generated/types/authPlatformEntry.ts +52 -0
  158. package/src/nexus/generated/types/callerType.ts +38 -0
  159. package/src/nexus/generated/types/dexFees.ts +64 -0
  160. package/src/nexus/generated/types/feeConfig.ts +73 -0
  161. package/src/nexus/generated/types/index.ts +13 -0
  162. package/src/nexus/generated/types/launchpadFees.ts +63 -0
  163. package/src/nexus/index.ts +9 -0
  164. package/src/nexus/staking.ts +581 -0
  165. package/src/platform.ts +19 -0
  166. package/src/transfer-fee.ts +216 -0
  167. package/src/utils/chunk.ts +21 -0
  168. package/src/utils/creator-hash.ts +57 -0
  169. package/src/utils/index.ts +9 -0
  170. package/src/utils/mint-info.ts +102 -0
  171. package/src/utils/partner.ts +5 -0
  172. package/src/utils/pda.ts +24 -0
@@ -0,0 +1,1150 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ addDecoderSizePrefix,
11
+ addEncoderSizePrefix,
12
+ address,
13
+ assertIsInstructionForProgram,
14
+ combineCodec,
15
+ containsBytes,
16
+ fixDecoderSize,
17
+ fixEncoderSize,
18
+ getAddressDecoder,
19
+ getAddressEncoder,
20
+ getBytesDecoder,
21
+ getBytesEncoder,
22
+ getProgramDerivedAddress,
23
+ getStructDecoder,
24
+ getStructEncoder,
25
+ getU32Decoder,
26
+ getU32Encoder,
27
+ getUtf8Decoder,
28
+ getUtf8Encoder,
29
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
30
+ SolanaError,
31
+ transformEncoder,
32
+ type AccountMeta,
33
+ type AccountSignerMeta,
34
+ type Address,
35
+ type Codec,
36
+ type Decoder,
37
+ type Encoder,
38
+ type Instruction,
39
+ type InstructionWithAccounts,
40
+ type InstructionWithData,
41
+ type ReadonlyAccount,
42
+ type ReadonlySignerAccount,
43
+ type ReadonlyUint8Array,
44
+ type TransactionSigner,
45
+ type WritableAccount,
46
+ type WritableSignerAccount,
47
+ } from '@solana/kit';
48
+ import {
49
+ getAccountMetaFactory,
50
+ getAddressFromResolvedInstructionAccount,
51
+ getNonNullResolvedInstructionInput,
52
+ type ResolvedInstructionAccount,
53
+ } from '@solana/program-client-core';
54
+ import {
55
+ EVENT_AUTHORITY_PDA_ADDRESS,
56
+ findBondingCurvePda,
57
+ findRewardAccrualPda,
58
+ GLOBAL_CONFIG_PDA_ADDRESS,
59
+ WSOL_REWARD_ACCRUAL_PDA_ADDRESS,
60
+ } from '../pdas/index.js';
61
+ import { SEND_LAUNCHPAD_PROGRAM_ADDRESS } from '../programs/index.js';
62
+
63
+ export const CREATE_TOKEN_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([
64
+ 84, 52, 204, 228, 24, 140, 234, 75,
65
+ ]);
66
+
67
+ export function getCreateTokenDiscriminatorBytes(): ReadonlyUint8Array {
68
+ return fixEncoderSize(getBytesEncoder(), 8).encode(
69
+ CREATE_TOKEN_DISCRIMINATOR,
70
+ );
71
+ }
72
+
73
+ export type CreateTokenInstruction<
74
+ TProgram extends string = typeof SEND_LAUNCHPAD_PROGRAM_ADDRESS,
75
+ TAccountUser extends string | AccountMeta<string> = string,
76
+ TAccountPayer extends string | AccountMeta<string> = string,
77
+ TAccountCoinCreator extends string | AccountMeta<string> = string,
78
+ TAccountGlobalConfig extends string | AccountMeta<string> =
79
+ 'H3csa1cgR7zPJdxCzNbS5chYymHMKS3XivDA5nRx4Bdq',
80
+ TAccountBaseMint extends string | AccountMeta<string> = string,
81
+ TAccountQuoteMint extends string | AccountMeta<string> = string,
82
+ TAccountBondingCurve extends string | AccountMeta<string> = string,
83
+ TAccountBaseVault extends string | AccountMeta<string> = string,
84
+ TAccountQuoteVault extends string | AccountMeta<string> = string,
85
+ TAccountCreatorFeeConfig extends string | AccountMeta<string> = string,
86
+ TAccountNexusProgram extends string | AccountMeta<string> =
87
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX',
88
+ TAccountNexusGlobalConfig extends string | AccountMeta<string> =
89
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr',
90
+ TAccountPartner extends string | AccountMeta<string> = string,
91
+ TAccountPartnerConfig extends string | AccountMeta<string> = string,
92
+ TAccountNexusStakingConfig extends string | AccountMeta<string> =
93
+ '9WUowYRb6KAWjWVB5KMmTngBidZXEXgQcQRTXbhxeGbF',
94
+ TAccountStakingRewardState extends string | AccountMeta<string> = string,
95
+ TAccountRewardAccrual extends string | AccountMeta<string> = string,
96
+ TAccountStakingVault extends string | AccountMeta<string> = string,
97
+ TAccountStakingWsolVault extends string | AccountMeta<string> =
98
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz',
99
+ TAccountWsolRewardAccrual extends string | AccountMeta<string> =
100
+ '91AVurtPdUC2yG3joLoujzC216KAfH5HEKnZEELFMmVH',
101
+ TAccountPythPriceFeed extends string | AccountMeta<string> =
102
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE',
103
+ TAccountBaseTokenProgram extends string | AccountMeta<string> =
104
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
105
+ TAccountQuoteTokenProgram extends string | AccountMeta<string> = string,
106
+ TAccountWsolTokenProgram extends string | AccountMeta<string> =
107
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
108
+ TAccountAssociatedTokenProgram extends string | AccountMeta<string> =
109
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
110
+ TAccountSystemProgram extends string | AccountMeta<string> =
111
+ '11111111111111111111111111111111',
112
+ TAccountEventAuthority extends string | AccountMeta<string> =
113
+ 'FJVebqCthxH6JM8vvkJb7yRYA7Emsib1C1vu4ZePSP3T',
114
+ TAccountProgram extends string | AccountMeta<string> =
115
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP',
116
+ TRemainingAccounts extends readonly AccountMeta<string>[] = [],
117
+ > = Instruction<TProgram> &
118
+ InstructionWithData<ReadonlyUint8Array> &
119
+ InstructionWithAccounts<
120
+ [
121
+ TAccountUser extends string
122
+ ? WritableSignerAccount<TAccountUser> &
123
+ AccountSignerMeta<TAccountUser>
124
+ : TAccountUser,
125
+ TAccountPayer extends string
126
+ ? WritableSignerAccount<TAccountPayer> &
127
+ AccountSignerMeta<TAccountPayer>
128
+ : TAccountPayer,
129
+ TAccountCoinCreator extends string
130
+ ? ReadonlyAccount<TAccountCoinCreator>
131
+ : TAccountCoinCreator,
132
+ TAccountGlobalConfig extends string
133
+ ? ReadonlyAccount<TAccountGlobalConfig>
134
+ : TAccountGlobalConfig,
135
+ TAccountBaseMint extends string
136
+ ? WritableSignerAccount<TAccountBaseMint> &
137
+ AccountSignerMeta<TAccountBaseMint>
138
+ : TAccountBaseMint,
139
+ TAccountQuoteMint extends string
140
+ ? ReadonlyAccount<TAccountQuoteMint>
141
+ : TAccountQuoteMint,
142
+ TAccountBondingCurve extends string
143
+ ? WritableAccount<TAccountBondingCurve>
144
+ : TAccountBondingCurve,
145
+ TAccountBaseVault extends string
146
+ ? WritableAccount<TAccountBaseVault>
147
+ : TAccountBaseVault,
148
+ TAccountQuoteVault extends string
149
+ ? WritableAccount<TAccountQuoteVault>
150
+ : TAccountQuoteVault,
151
+ TAccountCreatorFeeConfig extends string
152
+ ? WritableAccount<TAccountCreatorFeeConfig>
153
+ : TAccountCreatorFeeConfig,
154
+ TAccountNexusProgram extends string
155
+ ? ReadonlyAccount<TAccountNexusProgram>
156
+ : TAccountNexusProgram,
157
+ TAccountNexusGlobalConfig extends string
158
+ ? ReadonlyAccount<TAccountNexusGlobalConfig>
159
+ : TAccountNexusGlobalConfig,
160
+ TAccountPartner extends string
161
+ ? ReadonlyAccount<TAccountPartner>
162
+ : TAccountPartner,
163
+ TAccountPartnerConfig extends string
164
+ ? ReadonlyAccount<TAccountPartnerConfig>
165
+ : TAccountPartnerConfig,
166
+ TAccountNexusStakingConfig extends string
167
+ ? ReadonlyAccount<TAccountNexusStakingConfig>
168
+ : TAccountNexusStakingConfig,
169
+ TAccountStakingRewardState extends string
170
+ ? WritableAccount<TAccountStakingRewardState>
171
+ : TAccountStakingRewardState,
172
+ TAccountRewardAccrual extends string
173
+ ? WritableAccount<TAccountRewardAccrual>
174
+ : TAccountRewardAccrual,
175
+ TAccountStakingVault extends string
176
+ ? WritableAccount<TAccountStakingVault>
177
+ : TAccountStakingVault,
178
+ TAccountStakingWsolVault extends string
179
+ ? WritableAccount<TAccountStakingWsolVault>
180
+ : TAccountStakingWsolVault,
181
+ TAccountWsolRewardAccrual extends string
182
+ ? WritableAccount<TAccountWsolRewardAccrual>
183
+ : TAccountWsolRewardAccrual,
184
+ TAccountPythPriceFeed extends string
185
+ ? ReadonlyAccount<TAccountPythPriceFeed>
186
+ : TAccountPythPriceFeed,
187
+ TAccountBaseTokenProgram extends string
188
+ ? ReadonlyAccount<TAccountBaseTokenProgram>
189
+ : TAccountBaseTokenProgram,
190
+ TAccountQuoteTokenProgram extends string
191
+ ? ReadonlyAccount<TAccountQuoteTokenProgram>
192
+ : TAccountQuoteTokenProgram,
193
+ TAccountWsolTokenProgram extends string
194
+ ? ReadonlyAccount<TAccountWsolTokenProgram>
195
+ : TAccountWsolTokenProgram,
196
+ TAccountAssociatedTokenProgram extends string
197
+ ? ReadonlyAccount<TAccountAssociatedTokenProgram>
198
+ : TAccountAssociatedTokenProgram,
199
+ TAccountSystemProgram extends string
200
+ ? ReadonlyAccount<TAccountSystemProgram>
201
+ : TAccountSystemProgram,
202
+ TAccountEventAuthority extends string
203
+ ? ReadonlyAccount<TAccountEventAuthority>
204
+ : TAccountEventAuthority,
205
+ TAccountProgram extends string
206
+ ? ReadonlyAccount<TAccountProgram>
207
+ : TAccountProgram,
208
+ ...TRemainingAccounts,
209
+ ]
210
+ >;
211
+
212
+ export type CreateTokenInstructionData = {
213
+ discriminator: ReadonlyUint8Array;
214
+ platformConfig: Address;
215
+ creatorPlatform: string;
216
+ creatorId: string;
217
+ creatorHash: Address;
218
+ name: string;
219
+ symbol: string;
220
+ uri: string;
221
+ };
222
+
223
+ export type CreateTokenInstructionDataArgs = {
224
+ platformConfig: Address;
225
+ creatorPlatform: string;
226
+ creatorId: string;
227
+ creatorHash: Address;
228
+ name: string;
229
+ symbol: string;
230
+ uri: string;
231
+ };
232
+
233
+ export function getCreateTokenInstructionDataEncoder(): Encoder<CreateTokenInstructionDataArgs> {
234
+ return transformEncoder(
235
+ getStructEncoder([
236
+ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
237
+ ['platformConfig', getAddressEncoder()],
238
+ [
239
+ 'creatorPlatform',
240
+ addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder()),
241
+ ],
242
+ [
243
+ 'creatorId',
244
+ addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder()),
245
+ ],
246
+ ['creatorHash', getAddressEncoder()],
247
+ ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
248
+ ['symbol', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
249
+ ['uri', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
250
+ ]),
251
+ (value) => ({ ...value, discriminator: CREATE_TOKEN_DISCRIMINATOR }),
252
+ );
253
+ }
254
+
255
+ export function getCreateTokenInstructionDataDecoder(): Decoder<CreateTokenInstructionData> {
256
+ return getStructDecoder([
257
+ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
258
+ ['platformConfig', getAddressDecoder()],
259
+ [
260
+ 'creatorPlatform',
261
+ addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder()),
262
+ ],
263
+ ['creatorId', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
264
+ ['creatorHash', getAddressDecoder()],
265
+ ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
266
+ ['symbol', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
267
+ ['uri', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
268
+ ]);
269
+ }
270
+
271
+ export function getCreateTokenInstructionDataCodec(): Codec<
272
+ CreateTokenInstructionDataArgs,
273
+ CreateTokenInstructionData
274
+ > {
275
+ return combineCodec(
276
+ getCreateTokenInstructionDataEncoder(),
277
+ getCreateTokenInstructionDataDecoder(),
278
+ );
279
+ }
280
+
281
+ export type CreateTokenAsyncInput<
282
+ TAccountUser extends string = string,
283
+ TAccountPayer extends string = string,
284
+ TAccountCoinCreator extends string = string,
285
+ TAccountBaseMint extends string = string,
286
+ TAccountQuoteMint extends string = string,
287
+ TAccountBondingCurve extends string = string,
288
+ TAccountBaseVault extends string = string,
289
+ TAccountQuoteVault extends string = string,
290
+ TAccountCreatorFeeConfig extends string = string,
291
+ TAccountPartner extends string = string,
292
+ TAccountPartnerConfig extends string = string,
293
+ TAccountNexusStakingConfig extends string = string,
294
+ TAccountStakingRewardState extends string = string,
295
+ TAccountRewardAccrual extends string = string,
296
+ TAccountStakingVault extends string = string,
297
+ TAccountQuoteTokenProgram extends string = string,
298
+ > = {
299
+ user: TransactionSigner<TAccountUser>;
300
+ payer: TransactionSigner<TAccountPayer>;
301
+ coinCreator: Address<TAccountCoinCreator>;
302
+ baseMint: TransactionSigner<TAccountBaseMint>;
303
+ quoteMint: Address<TAccountQuoteMint>;
304
+ bondingCurve?: Address<TAccountBondingCurve>;
305
+ baseVault?: Address<TAccountBaseVault>;
306
+ quoteVault?: Address<TAccountQuoteVault>;
307
+ creatorFeeConfig?: Address<TAccountCreatorFeeConfig>;
308
+ /** The partner must sign. `DEFAULT_PARTNER`, the system program, does not sign. */
309
+ partner: Address<TAccountPartner> | TransactionSigner<TAccountPartner>;
310
+ partnerConfig?: Address<TAccountPartnerConfig>;
311
+ nexusStakingConfig?: Address<TAccountNexusStakingConfig>;
312
+ stakingRewardState?: Address<TAccountStakingRewardState>;
313
+ rewardAccrual?: Address<TAccountRewardAccrual>;
314
+ stakingVault?: Address<TAccountStakingVault>;
315
+ quoteTokenProgram: Address<TAccountQuoteTokenProgram>;
316
+ platformConfig: CreateTokenInstructionDataArgs['platformConfig'];
317
+ creatorPlatform: CreateTokenInstructionDataArgs['creatorPlatform'];
318
+ creatorId: CreateTokenInstructionDataArgs['creatorId'];
319
+ creatorHash: CreateTokenInstructionDataArgs['creatorHash'];
320
+ name: CreateTokenInstructionDataArgs['name'];
321
+ symbol: CreateTokenInstructionDataArgs['symbol'];
322
+ uri: CreateTokenInstructionDataArgs['uri'];
323
+ };
324
+
325
+ export async function getCreateTokenInstructionAsync<
326
+ TAccountUser extends string,
327
+ TAccountPayer extends string,
328
+ TAccountCoinCreator extends string,
329
+ TAccountBaseMint extends string,
330
+ TAccountQuoteMint extends string,
331
+ TAccountBondingCurve extends string,
332
+ TAccountBaseVault extends string,
333
+ TAccountQuoteVault extends string,
334
+ TAccountCreatorFeeConfig extends string,
335
+ TAccountPartner extends string,
336
+ TAccountPartnerConfig extends string,
337
+ TAccountNexusStakingConfig extends string,
338
+ TAccountStakingRewardState extends string,
339
+ TAccountRewardAccrual extends string,
340
+ TAccountStakingVault extends string,
341
+ TAccountQuoteTokenProgram extends string,
342
+ >(
343
+ input: CreateTokenAsyncInput<
344
+ TAccountUser,
345
+ TAccountPayer,
346
+ TAccountCoinCreator,
347
+ TAccountBaseMint,
348
+ TAccountQuoteMint,
349
+ TAccountBondingCurve,
350
+ TAccountBaseVault,
351
+ TAccountQuoteVault,
352
+ TAccountCreatorFeeConfig,
353
+ TAccountPartner,
354
+ TAccountPartnerConfig,
355
+ TAccountNexusStakingConfig,
356
+ TAccountStakingRewardState,
357
+ TAccountRewardAccrual,
358
+ TAccountStakingVault,
359
+ TAccountQuoteTokenProgram
360
+ >,
361
+ ): Promise<
362
+ CreateTokenInstruction<
363
+ typeof SEND_LAUNCHPAD_PROGRAM_ADDRESS,
364
+ TAccountUser,
365
+ TAccountPayer,
366
+ TAccountCoinCreator,
367
+ 'H3csa1cgR7zPJdxCzNbS5chYymHMKS3XivDA5nRx4Bdq',
368
+ TAccountBaseMint,
369
+ TAccountQuoteMint,
370
+ TAccountBondingCurve,
371
+ TAccountBaseVault,
372
+ TAccountQuoteVault,
373
+ TAccountCreatorFeeConfig,
374
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX',
375
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr',
376
+ (typeof input)['partner'] extends TransactionSigner<TAccountPartner>
377
+ ? ReadonlySignerAccount<TAccountPartner> &
378
+ AccountSignerMeta<TAccountPartner>
379
+ : TAccountPartner,
380
+ TAccountPartnerConfig,
381
+ TAccountNexusStakingConfig,
382
+ TAccountStakingRewardState,
383
+ TAccountRewardAccrual,
384
+ TAccountStakingVault,
385
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz',
386
+ '91AVurtPdUC2yG3joLoujzC216KAfH5HEKnZEELFMmVH',
387
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE',
388
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
389
+ TAccountQuoteTokenProgram,
390
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
391
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
392
+ '11111111111111111111111111111111',
393
+ 'FJVebqCthxH6JM8vvkJb7yRYA7Emsib1C1vu4ZePSP3T',
394
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP'
395
+ >
396
+ > {
397
+ // Program address.
398
+ const programAddress = SEND_LAUNCHPAD_PROGRAM_ADDRESS;
399
+
400
+ // Original accounts.
401
+ const originalAccounts = {
402
+ user: { value: input.user ?? null, isWritable: true },
403
+ payer: { value: input.payer ?? null, isWritable: true },
404
+ coinCreator: { value: input.coinCreator ?? null, isWritable: false },
405
+ globalConfig: { value: null, isWritable: false },
406
+ baseMint: { value: input.baseMint ?? null, isWritable: true },
407
+ quoteMint: { value: input.quoteMint ?? null, isWritable: false },
408
+ bondingCurve: { value: input.bondingCurve ?? null, isWritable: true },
409
+ baseVault: { value: input.baseVault ?? null, isWritable: true },
410
+ quoteVault: { value: input.quoteVault ?? null, isWritable: true },
411
+ creatorFeeConfig: {
412
+ value: input.creatorFeeConfig ?? null,
413
+ isWritable: true,
414
+ },
415
+ nexusProgram: { value: null, isWritable: false },
416
+ nexusGlobalConfig: { value: null, isWritable: false },
417
+ partner: { value: input.partner ?? null, isWritable: false },
418
+ partnerConfig: {
419
+ value: input.partnerConfig ?? null,
420
+ isWritable: false,
421
+ },
422
+ nexusStakingConfig: {
423
+ value: input.nexusStakingConfig ?? null,
424
+ isWritable: false,
425
+ },
426
+ stakingRewardState: {
427
+ value: input.stakingRewardState ?? null,
428
+ isWritable: true,
429
+ },
430
+ rewardAccrual: { value: input.rewardAccrual ?? null, isWritable: true },
431
+ stakingVault: { value: input.stakingVault ?? null, isWritable: true },
432
+ stakingWsolVault: { value: null, isWritable: true },
433
+ wsolRewardAccrual: { value: null, isWritable: true },
434
+ pythPriceFeed: { value: null, isWritable: false },
435
+ baseTokenProgram: { value: null, isWritable: false },
436
+ quoteTokenProgram: {
437
+ value: input.quoteTokenProgram ?? null,
438
+ isWritable: false,
439
+ },
440
+ wsolTokenProgram: { value: null, isWritable: false },
441
+ associatedTokenProgram: { value: null, isWritable: false },
442
+ systemProgram: { value: null, isWritable: false },
443
+ eventAuthority: { value: null, isWritable: false },
444
+ program: { value: null, isWritable: false },
445
+ };
446
+ const accounts = originalAccounts as Record<
447
+ keyof typeof originalAccounts,
448
+ ResolvedInstructionAccount
449
+ >;
450
+
451
+ // Original args.
452
+ const args = { ...input };
453
+
454
+ // Resolve default values.
455
+ if (!accounts.globalConfig.value) {
456
+ accounts.globalConfig.value = GLOBAL_CONFIG_PDA_ADDRESS;
457
+ }
458
+ if (!accounts.bondingCurve.value) {
459
+ accounts.bondingCurve.value = await findBondingCurvePda({
460
+ baseMint: getAddressFromResolvedInstructionAccount(
461
+ 'baseMint',
462
+ accounts.baseMint.value,
463
+ ),
464
+ quoteMint: getAddressFromResolvedInstructionAccount(
465
+ 'quoteMint',
466
+ accounts.quoteMint.value,
467
+ ),
468
+ });
469
+ }
470
+ if (!accounts.baseVault.value) {
471
+ accounts.baseVault.value = await getProgramDerivedAddress({
472
+ programAddress:
473
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>,
474
+ seeds: [
475
+ getAddressEncoder().encode(
476
+ getAddressFromResolvedInstructionAccount(
477
+ 'bondingCurve',
478
+ accounts.bondingCurve.value,
479
+ ),
480
+ ),
481
+ getAddressEncoder().encode(
482
+ address('TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'),
483
+ ),
484
+ getAddressEncoder().encode(
485
+ getAddressFromResolvedInstructionAccount(
486
+ 'baseMint',
487
+ accounts.baseMint.value,
488
+ ),
489
+ ),
490
+ ],
491
+ });
492
+ }
493
+ if (!accounts.quoteVault.value) {
494
+ accounts.quoteVault.value = await getProgramDerivedAddress({
495
+ programAddress:
496
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>,
497
+ seeds: [
498
+ getAddressEncoder().encode(
499
+ getAddressFromResolvedInstructionAccount(
500
+ 'bondingCurve',
501
+ accounts.bondingCurve.value,
502
+ ),
503
+ ),
504
+ getAddressEncoder().encode(
505
+ getAddressFromResolvedInstructionAccount(
506
+ 'quoteTokenProgram',
507
+ accounts.quoteTokenProgram.value,
508
+ ),
509
+ ),
510
+ getAddressEncoder().encode(
511
+ getAddressFromResolvedInstructionAccount(
512
+ 'quoteMint',
513
+ accounts.quoteMint.value,
514
+ ),
515
+ ),
516
+ ],
517
+ });
518
+ }
519
+ if (!accounts.creatorFeeConfig.value) {
520
+ accounts.creatorFeeConfig.value = await getProgramDerivedAddress({
521
+ programAddress:
522
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX' as Address<'7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX'>,
523
+ seeds: [
524
+ getBytesEncoder().encode(
525
+ new Uint8Array([
526
+ 99, 114, 101, 97, 116, 111, 114, 95, 102, 101, 101, 95,
527
+ 98, 97, 108, 97, 110, 99, 101,
528
+ ]),
529
+ ),
530
+ getAddressEncoder().encode(
531
+ getNonNullResolvedInstructionInput(
532
+ 'creatorHash',
533
+ args.creatorHash,
534
+ ),
535
+ ),
536
+ getAddressEncoder().encode(
537
+ getAddressFromResolvedInstructionAccount(
538
+ 'quoteMint',
539
+ accounts.quoteMint.value,
540
+ ),
541
+ ),
542
+ ],
543
+ });
544
+ }
545
+ if (!accounts.nexusProgram.value) {
546
+ accounts.nexusProgram.value =
547
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX' as Address<'7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX'>;
548
+ }
549
+ if (!accounts.nexusGlobalConfig.value) {
550
+ accounts.nexusGlobalConfig.value =
551
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr' as Address<'3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr'>;
552
+ }
553
+ if (!accounts.partnerConfig.value) {
554
+ accounts.partnerConfig.value = await getProgramDerivedAddress({
555
+ programAddress:
556
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX' as Address<'7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX'>,
557
+ seeds: [
558
+ getBytesEncoder().encode(
559
+ new Uint8Array([112, 97, 114, 116, 110, 101, 114]),
560
+ ),
561
+ getAddressEncoder().encode(
562
+ getNonNullResolvedInstructionInput(
563
+ 'platformConfig',
564
+ args.platformConfig,
565
+ ),
566
+ ),
567
+ getAddressEncoder().encode(
568
+ getAddressFromResolvedInstructionAccount(
569
+ 'partner',
570
+ accounts.partner.value,
571
+ ),
572
+ ),
573
+ ],
574
+ });
575
+ }
576
+ if (!accounts.nexusStakingConfig.value) {
577
+ accounts.nexusStakingConfig.value =
578
+ '9WUowYRb6KAWjWVB5KMmTngBidZXEXgQcQRTXbhxeGbF' as Address<'9WUowYRb6KAWjWVB5KMmTngBidZXEXgQcQRTXbhxeGbF'>;
579
+ }
580
+ if (!accounts.stakingRewardState.value) {
581
+ accounts.stakingRewardState.value = await getProgramDerivedAddress({
582
+ programAddress:
583
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX' as Address<'7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX'>,
584
+ seeds: [
585
+ getBytesEncoder().encode(
586
+ new Uint8Array([114, 101, 119, 97, 114, 100]),
587
+ ),
588
+ getAddressEncoder().encode(
589
+ getAddressFromResolvedInstructionAccount(
590
+ 'nexusStakingConfig',
591
+ accounts.nexusStakingConfig.value,
592
+ ),
593
+ ),
594
+ getAddressEncoder().encode(
595
+ getAddressFromResolvedInstructionAccount(
596
+ 'quoteMint',
597
+ accounts.quoteMint.value,
598
+ ),
599
+ ),
600
+ ],
601
+ });
602
+ }
603
+ if (!accounts.rewardAccrual.value) {
604
+ accounts.rewardAccrual.value = await findRewardAccrualPda({
605
+ quoteMint: getAddressFromResolvedInstructionAccount(
606
+ 'quoteMint',
607
+ accounts.quoteMint.value,
608
+ ),
609
+ });
610
+ }
611
+ if (!accounts.stakingVault.value) {
612
+ accounts.stakingVault.value = await getProgramDerivedAddress({
613
+ programAddress:
614
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>,
615
+ seeds: [
616
+ getAddressEncoder().encode(
617
+ getAddressFromResolvedInstructionAccount(
618
+ 'nexusStakingConfig',
619
+ accounts.nexusStakingConfig.value,
620
+ ),
621
+ ),
622
+ getAddressEncoder().encode(
623
+ getAddressFromResolvedInstructionAccount(
624
+ 'quoteTokenProgram',
625
+ accounts.quoteTokenProgram.value,
626
+ ),
627
+ ),
628
+ getAddressEncoder().encode(
629
+ getAddressFromResolvedInstructionAccount(
630
+ 'quoteMint',
631
+ accounts.quoteMint.value,
632
+ ),
633
+ ),
634
+ ],
635
+ });
636
+ }
637
+ if (!accounts.stakingWsolVault.value) {
638
+ accounts.stakingWsolVault.value =
639
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz' as Address<'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz'>;
640
+ }
641
+ if (!accounts.wsolRewardAccrual.value) {
642
+ accounts.wsolRewardAccrual.value = WSOL_REWARD_ACCRUAL_PDA_ADDRESS;
643
+ }
644
+ if (!accounts.pythPriceFeed.value) {
645
+ accounts.pythPriceFeed.value =
646
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE' as Address<'7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE'>;
647
+ }
648
+ if (!accounts.baseTokenProgram.value) {
649
+ accounts.baseTokenProgram.value =
650
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address<'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'>;
651
+ }
652
+ if (!accounts.wsolTokenProgram.value) {
653
+ accounts.wsolTokenProgram.value =
654
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;
655
+ }
656
+ if (!accounts.associatedTokenProgram.value) {
657
+ accounts.associatedTokenProgram.value =
658
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;
659
+ }
660
+ if (!accounts.systemProgram.value) {
661
+ accounts.systemProgram.value =
662
+ '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;
663
+ }
664
+ if (!accounts.eventAuthority.value) {
665
+ accounts.eventAuthority.value = EVENT_AUTHORITY_PDA_ADDRESS;
666
+ }
667
+ if (!accounts.program.value) {
668
+ accounts.program.value =
669
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP' as Address<'5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP'>;
670
+ }
671
+
672
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
673
+ return Object.freeze({
674
+ accounts: [
675
+ getAccountMeta('user', accounts.user),
676
+ getAccountMeta('payer', accounts.payer),
677
+ getAccountMeta('coinCreator', accounts.coinCreator),
678
+ getAccountMeta('globalConfig', accounts.globalConfig),
679
+ getAccountMeta('baseMint', accounts.baseMint),
680
+ getAccountMeta('quoteMint', accounts.quoteMint),
681
+ getAccountMeta('bondingCurve', accounts.bondingCurve),
682
+ getAccountMeta('baseVault', accounts.baseVault),
683
+ getAccountMeta('quoteVault', accounts.quoteVault),
684
+ getAccountMeta('creatorFeeConfig', accounts.creatorFeeConfig),
685
+ getAccountMeta('nexusProgram', accounts.nexusProgram),
686
+ getAccountMeta('nexusGlobalConfig', accounts.nexusGlobalConfig),
687
+ getAccountMeta('partner', accounts.partner),
688
+ getAccountMeta('partnerConfig', accounts.partnerConfig),
689
+ getAccountMeta('nexusStakingConfig', accounts.nexusStakingConfig),
690
+ getAccountMeta('stakingRewardState', accounts.stakingRewardState),
691
+ getAccountMeta('rewardAccrual', accounts.rewardAccrual),
692
+ getAccountMeta('stakingVault', accounts.stakingVault),
693
+ getAccountMeta('stakingWsolVault', accounts.stakingWsolVault),
694
+ getAccountMeta('wsolRewardAccrual', accounts.wsolRewardAccrual),
695
+ getAccountMeta('pythPriceFeed', accounts.pythPriceFeed),
696
+ getAccountMeta('baseTokenProgram', accounts.baseTokenProgram),
697
+ getAccountMeta('quoteTokenProgram', accounts.quoteTokenProgram),
698
+ getAccountMeta('wsolTokenProgram', accounts.wsolTokenProgram),
699
+ getAccountMeta(
700
+ 'associatedTokenProgram',
701
+ accounts.associatedTokenProgram,
702
+ ),
703
+ getAccountMeta('systemProgram', accounts.systemProgram),
704
+ getAccountMeta('eventAuthority', accounts.eventAuthority),
705
+ getAccountMeta('program', accounts.program),
706
+ ],
707
+ data: getCreateTokenInstructionDataEncoder().encode(
708
+ args as CreateTokenInstructionDataArgs,
709
+ ),
710
+ programAddress,
711
+ } as CreateTokenInstruction<
712
+ typeof SEND_LAUNCHPAD_PROGRAM_ADDRESS,
713
+ TAccountUser,
714
+ TAccountPayer,
715
+ TAccountCoinCreator,
716
+ 'H3csa1cgR7zPJdxCzNbS5chYymHMKS3XivDA5nRx4Bdq',
717
+ TAccountBaseMint,
718
+ TAccountQuoteMint,
719
+ TAccountBondingCurve,
720
+ TAccountBaseVault,
721
+ TAccountQuoteVault,
722
+ TAccountCreatorFeeConfig,
723
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX',
724
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr',
725
+ (typeof input)['partner'] extends TransactionSigner<TAccountPartner>
726
+ ? ReadonlySignerAccount<TAccountPartner> &
727
+ AccountSignerMeta<TAccountPartner>
728
+ : TAccountPartner,
729
+ TAccountPartnerConfig,
730
+ TAccountNexusStakingConfig,
731
+ TAccountStakingRewardState,
732
+ TAccountRewardAccrual,
733
+ TAccountStakingVault,
734
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz',
735
+ '91AVurtPdUC2yG3joLoujzC216KAfH5HEKnZEELFMmVH',
736
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE',
737
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
738
+ TAccountQuoteTokenProgram,
739
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
740
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
741
+ '11111111111111111111111111111111',
742
+ 'FJVebqCthxH6JM8vvkJb7yRYA7Emsib1C1vu4ZePSP3T',
743
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP'
744
+ >);
745
+ }
746
+
747
+ export type CreateTokenInput<
748
+ TAccountUser extends string = string,
749
+ TAccountPayer extends string = string,
750
+ TAccountCoinCreator extends string = string,
751
+ TAccountBaseMint extends string = string,
752
+ TAccountQuoteMint extends string = string,
753
+ TAccountBondingCurve extends string = string,
754
+ TAccountBaseVault extends string = string,
755
+ TAccountQuoteVault extends string = string,
756
+ TAccountCreatorFeeConfig extends string = string,
757
+ TAccountPartner extends string = string,
758
+ TAccountPartnerConfig extends string = string,
759
+ TAccountNexusStakingConfig extends string = string,
760
+ TAccountStakingRewardState extends string = string,
761
+ TAccountRewardAccrual extends string = string,
762
+ TAccountStakingVault extends string = string,
763
+ TAccountQuoteTokenProgram extends string = string,
764
+ > = {
765
+ user: TransactionSigner<TAccountUser>;
766
+ payer: TransactionSigner<TAccountPayer>;
767
+ coinCreator: Address<TAccountCoinCreator>;
768
+ baseMint: TransactionSigner<TAccountBaseMint>;
769
+ quoteMint: Address<TAccountQuoteMint>;
770
+ bondingCurve: Address<TAccountBondingCurve>;
771
+ baseVault: Address<TAccountBaseVault>;
772
+ quoteVault: Address<TAccountQuoteVault>;
773
+ creatorFeeConfig: Address<TAccountCreatorFeeConfig>;
774
+ /** The partner must sign. `DEFAULT_PARTNER`, the system program, does not sign. */
775
+ partner: Address<TAccountPartner> | TransactionSigner<TAccountPartner>;
776
+ partnerConfig: Address<TAccountPartnerConfig>;
777
+ nexusStakingConfig?: Address<TAccountNexusStakingConfig>;
778
+ stakingRewardState: Address<TAccountStakingRewardState>;
779
+ rewardAccrual: Address<TAccountRewardAccrual>;
780
+ stakingVault: Address<TAccountStakingVault>;
781
+ quoteTokenProgram: Address<TAccountQuoteTokenProgram>;
782
+ platformConfig: CreateTokenInstructionDataArgs['platformConfig'];
783
+ creatorPlatform: CreateTokenInstructionDataArgs['creatorPlatform'];
784
+ creatorId: CreateTokenInstructionDataArgs['creatorId'];
785
+ creatorHash: CreateTokenInstructionDataArgs['creatorHash'];
786
+ name: CreateTokenInstructionDataArgs['name'];
787
+ symbol: CreateTokenInstructionDataArgs['symbol'];
788
+ uri: CreateTokenInstructionDataArgs['uri'];
789
+ };
790
+
791
+ export function getCreateTokenInstruction<
792
+ TAccountUser extends string,
793
+ TAccountPayer extends string,
794
+ TAccountCoinCreator extends string,
795
+ TAccountBaseMint extends string,
796
+ TAccountQuoteMint extends string,
797
+ TAccountBondingCurve extends string,
798
+ TAccountBaseVault extends string,
799
+ TAccountQuoteVault extends string,
800
+ TAccountCreatorFeeConfig extends string,
801
+ TAccountPartner extends string,
802
+ TAccountPartnerConfig extends string,
803
+ TAccountNexusStakingConfig extends string,
804
+ TAccountStakingRewardState extends string,
805
+ TAccountRewardAccrual extends string,
806
+ TAccountStakingVault extends string,
807
+ TAccountQuoteTokenProgram extends string,
808
+ >(
809
+ input: CreateTokenInput<
810
+ TAccountUser,
811
+ TAccountPayer,
812
+ TAccountCoinCreator,
813
+ TAccountBaseMint,
814
+ TAccountQuoteMint,
815
+ TAccountBondingCurve,
816
+ TAccountBaseVault,
817
+ TAccountQuoteVault,
818
+ TAccountCreatorFeeConfig,
819
+ TAccountPartner,
820
+ TAccountPartnerConfig,
821
+ TAccountNexusStakingConfig,
822
+ TAccountStakingRewardState,
823
+ TAccountRewardAccrual,
824
+ TAccountStakingVault,
825
+ TAccountQuoteTokenProgram
826
+ >,
827
+ ): CreateTokenInstruction<
828
+ typeof SEND_LAUNCHPAD_PROGRAM_ADDRESS,
829
+ TAccountUser,
830
+ TAccountPayer,
831
+ TAccountCoinCreator,
832
+ 'H3csa1cgR7zPJdxCzNbS5chYymHMKS3XivDA5nRx4Bdq',
833
+ TAccountBaseMint,
834
+ TAccountQuoteMint,
835
+ TAccountBondingCurve,
836
+ TAccountBaseVault,
837
+ TAccountQuoteVault,
838
+ TAccountCreatorFeeConfig,
839
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX',
840
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr',
841
+ (typeof input)['partner'] extends TransactionSigner<TAccountPartner>
842
+ ? ReadonlySignerAccount<TAccountPartner> &
843
+ AccountSignerMeta<TAccountPartner>
844
+ : TAccountPartner,
845
+ TAccountPartnerConfig,
846
+ TAccountNexusStakingConfig,
847
+ TAccountStakingRewardState,
848
+ TAccountRewardAccrual,
849
+ TAccountStakingVault,
850
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz',
851
+ '91AVurtPdUC2yG3joLoujzC216KAfH5HEKnZEELFMmVH',
852
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE',
853
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
854
+ TAccountQuoteTokenProgram,
855
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
856
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
857
+ '11111111111111111111111111111111',
858
+ 'FJVebqCthxH6JM8vvkJb7yRYA7Emsib1C1vu4ZePSP3T',
859
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP'
860
+ > {
861
+ // Program address.
862
+ const programAddress = SEND_LAUNCHPAD_PROGRAM_ADDRESS;
863
+
864
+ // Original accounts.
865
+ const originalAccounts = {
866
+ user: { value: input.user ?? null, isWritable: true },
867
+ payer: { value: input.payer ?? null, isWritable: true },
868
+ coinCreator: { value: input.coinCreator ?? null, isWritable: false },
869
+ globalConfig: { value: null, isWritable: false },
870
+ baseMint: { value: input.baseMint ?? null, isWritable: true },
871
+ quoteMint: { value: input.quoteMint ?? null, isWritable: false },
872
+ bondingCurve: { value: input.bondingCurve ?? null, isWritable: true },
873
+ baseVault: { value: input.baseVault ?? null, isWritable: true },
874
+ quoteVault: { value: input.quoteVault ?? null, isWritable: true },
875
+ creatorFeeConfig: {
876
+ value: input.creatorFeeConfig ?? null,
877
+ isWritable: true,
878
+ },
879
+ nexusProgram: { value: null, isWritable: false },
880
+ nexusGlobalConfig: { value: null, isWritable: false },
881
+ partner: { value: input.partner ?? null, isWritable: false },
882
+ partnerConfig: {
883
+ value: input.partnerConfig ?? null,
884
+ isWritable: false,
885
+ },
886
+ nexusStakingConfig: {
887
+ value: input.nexusStakingConfig ?? null,
888
+ isWritable: false,
889
+ },
890
+ stakingRewardState: {
891
+ value: input.stakingRewardState ?? null,
892
+ isWritable: true,
893
+ },
894
+ rewardAccrual: { value: input.rewardAccrual ?? null, isWritable: true },
895
+ stakingVault: { value: input.stakingVault ?? null, isWritable: true },
896
+ stakingWsolVault: { value: null, isWritable: true },
897
+ wsolRewardAccrual: { value: null, isWritable: true },
898
+ pythPriceFeed: { value: null, isWritable: false },
899
+ baseTokenProgram: { value: null, isWritable: false },
900
+ quoteTokenProgram: {
901
+ value: input.quoteTokenProgram ?? null,
902
+ isWritable: false,
903
+ },
904
+ wsolTokenProgram: { value: null, isWritable: false },
905
+ associatedTokenProgram: { value: null, isWritable: false },
906
+ systemProgram: { value: null, isWritable: false },
907
+ eventAuthority: { value: null, isWritable: false },
908
+ program: { value: null, isWritable: false },
909
+ };
910
+ const accounts = originalAccounts as Record<
911
+ keyof typeof originalAccounts,
912
+ ResolvedInstructionAccount
913
+ >;
914
+
915
+ // Original args.
916
+ const args = { ...input };
917
+
918
+ // Resolve default values.
919
+ if (!accounts.globalConfig.value) {
920
+ accounts.globalConfig.value = GLOBAL_CONFIG_PDA_ADDRESS;
921
+ }
922
+ if (!accounts.nexusProgram.value) {
923
+ accounts.nexusProgram.value =
924
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX' as Address<'7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX'>;
925
+ }
926
+ if (!accounts.nexusGlobalConfig.value) {
927
+ accounts.nexusGlobalConfig.value =
928
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr' as Address<'3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr'>;
929
+ }
930
+ if (!accounts.nexusStakingConfig.value) {
931
+ accounts.nexusStakingConfig.value =
932
+ '9WUowYRb6KAWjWVB5KMmTngBidZXEXgQcQRTXbhxeGbF' as Address<'9WUowYRb6KAWjWVB5KMmTngBidZXEXgQcQRTXbhxeGbF'>;
933
+ }
934
+ if (!accounts.stakingWsolVault.value) {
935
+ accounts.stakingWsolVault.value =
936
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz' as Address<'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz'>;
937
+ }
938
+ if (!accounts.wsolRewardAccrual.value) {
939
+ accounts.wsolRewardAccrual.value = WSOL_REWARD_ACCRUAL_PDA_ADDRESS;
940
+ }
941
+ if (!accounts.pythPriceFeed.value) {
942
+ accounts.pythPriceFeed.value =
943
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE' as Address<'7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE'>;
944
+ }
945
+ if (!accounts.baseTokenProgram.value) {
946
+ accounts.baseTokenProgram.value =
947
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address<'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'>;
948
+ }
949
+ if (!accounts.wsolTokenProgram.value) {
950
+ accounts.wsolTokenProgram.value =
951
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address<'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'>;
952
+ }
953
+ if (!accounts.associatedTokenProgram.value) {
954
+ accounts.associatedTokenProgram.value =
955
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;
956
+ }
957
+ if (!accounts.systemProgram.value) {
958
+ accounts.systemProgram.value =
959
+ '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;
960
+ }
961
+ if (!accounts.eventAuthority.value) {
962
+ accounts.eventAuthority.value = EVENT_AUTHORITY_PDA_ADDRESS;
963
+ }
964
+ if (!accounts.program.value) {
965
+ accounts.program.value =
966
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP' as Address<'5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP'>;
967
+ }
968
+
969
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
970
+ return Object.freeze({
971
+ accounts: [
972
+ getAccountMeta('user', accounts.user),
973
+ getAccountMeta('payer', accounts.payer),
974
+ getAccountMeta('coinCreator', accounts.coinCreator),
975
+ getAccountMeta('globalConfig', accounts.globalConfig),
976
+ getAccountMeta('baseMint', accounts.baseMint),
977
+ getAccountMeta('quoteMint', accounts.quoteMint),
978
+ getAccountMeta('bondingCurve', accounts.bondingCurve),
979
+ getAccountMeta('baseVault', accounts.baseVault),
980
+ getAccountMeta('quoteVault', accounts.quoteVault),
981
+ getAccountMeta('creatorFeeConfig', accounts.creatorFeeConfig),
982
+ getAccountMeta('nexusProgram', accounts.nexusProgram),
983
+ getAccountMeta('nexusGlobalConfig', accounts.nexusGlobalConfig),
984
+ getAccountMeta('partner', accounts.partner),
985
+ getAccountMeta('partnerConfig', accounts.partnerConfig),
986
+ getAccountMeta('nexusStakingConfig', accounts.nexusStakingConfig),
987
+ getAccountMeta('stakingRewardState', accounts.stakingRewardState),
988
+ getAccountMeta('rewardAccrual', accounts.rewardAccrual),
989
+ getAccountMeta('stakingVault', accounts.stakingVault),
990
+ getAccountMeta('stakingWsolVault', accounts.stakingWsolVault),
991
+ getAccountMeta('wsolRewardAccrual', accounts.wsolRewardAccrual),
992
+ getAccountMeta('pythPriceFeed', accounts.pythPriceFeed),
993
+ getAccountMeta('baseTokenProgram', accounts.baseTokenProgram),
994
+ getAccountMeta('quoteTokenProgram', accounts.quoteTokenProgram),
995
+ getAccountMeta('wsolTokenProgram', accounts.wsolTokenProgram),
996
+ getAccountMeta(
997
+ 'associatedTokenProgram',
998
+ accounts.associatedTokenProgram,
999
+ ),
1000
+ getAccountMeta('systemProgram', accounts.systemProgram),
1001
+ getAccountMeta('eventAuthority', accounts.eventAuthority),
1002
+ getAccountMeta('program', accounts.program),
1003
+ ],
1004
+ data: getCreateTokenInstructionDataEncoder().encode(
1005
+ args as CreateTokenInstructionDataArgs,
1006
+ ),
1007
+ programAddress,
1008
+ } as CreateTokenInstruction<
1009
+ typeof SEND_LAUNCHPAD_PROGRAM_ADDRESS,
1010
+ TAccountUser,
1011
+ TAccountPayer,
1012
+ TAccountCoinCreator,
1013
+ 'H3csa1cgR7zPJdxCzNbS5chYymHMKS3XivDA5nRx4Bdq',
1014
+ TAccountBaseMint,
1015
+ TAccountQuoteMint,
1016
+ TAccountBondingCurve,
1017
+ TAccountBaseVault,
1018
+ TAccountQuoteVault,
1019
+ TAccountCreatorFeeConfig,
1020
+ '7rrCurqdWFesbzwtYPo95fM8waTtVXgXwCom45x1sfNX',
1021
+ '3bycfBeRULfXYqcg3DmiYFBjv6mMVidMuqKdFZJTGdNr',
1022
+ (typeof input)['partner'] extends TransactionSigner<TAccountPartner>
1023
+ ? ReadonlySignerAccount<TAccountPartner> &
1024
+ AccountSignerMeta<TAccountPartner>
1025
+ : TAccountPartner,
1026
+ TAccountPartnerConfig,
1027
+ TAccountNexusStakingConfig,
1028
+ TAccountStakingRewardState,
1029
+ TAccountRewardAccrual,
1030
+ TAccountStakingVault,
1031
+ 'AyisZJxXz9ywXhMwR3sb3oePxBB6UBvixXycAQCdSgrz',
1032
+ '91AVurtPdUC2yG3joLoujzC216KAfH5HEKnZEELFMmVH',
1033
+ '7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE',
1034
+ 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
1035
+ TAccountQuoteTokenProgram,
1036
+ 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
1037
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
1038
+ '11111111111111111111111111111111',
1039
+ 'FJVebqCthxH6JM8vvkJb7yRYA7Emsib1C1vu4ZePSP3T',
1040
+ '5R1uFyEE4oxqkm7hJDqHq6gXaLVF9dxeF3LF4yz1sfLP'
1041
+ >);
1042
+ }
1043
+
1044
+ export type ParsedCreateTokenInstruction<
1045
+ TProgram extends string = typeof SEND_LAUNCHPAD_PROGRAM_ADDRESS,
1046
+ TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],
1047
+ > = {
1048
+ programAddress: Address<TProgram>;
1049
+ accounts: {
1050
+ user: TAccountMetas[0];
1051
+ payer: TAccountMetas[1];
1052
+ coinCreator: TAccountMetas[2];
1053
+ globalConfig: TAccountMetas[3];
1054
+ baseMint: TAccountMetas[4];
1055
+ quoteMint: TAccountMetas[5];
1056
+ bondingCurve: TAccountMetas[6];
1057
+ baseVault: TAccountMetas[7];
1058
+ quoteVault: TAccountMetas[8];
1059
+ creatorFeeConfig: TAccountMetas[9];
1060
+ nexusProgram: TAccountMetas[10];
1061
+ nexusGlobalConfig: TAccountMetas[11];
1062
+ /** The partner must sign. `DEFAULT_PARTNER`, the system program, does not sign. */
1063
+ partner: TAccountMetas[12];
1064
+ partnerConfig: TAccountMetas[13];
1065
+ nexusStakingConfig: TAccountMetas[14];
1066
+ stakingRewardState: TAccountMetas[15];
1067
+ rewardAccrual: TAccountMetas[16];
1068
+ stakingVault: TAccountMetas[17];
1069
+ stakingWsolVault: TAccountMetas[18];
1070
+ wsolRewardAccrual: TAccountMetas[19];
1071
+ pythPriceFeed: TAccountMetas[20];
1072
+ baseTokenProgram: TAccountMetas[21];
1073
+ quoteTokenProgram: TAccountMetas[22];
1074
+ wsolTokenProgram: TAccountMetas[23];
1075
+ associatedTokenProgram: TAccountMetas[24];
1076
+ systemProgram: TAccountMetas[25];
1077
+ eventAuthority: TAccountMetas[26];
1078
+ program: TAccountMetas[27];
1079
+ };
1080
+ data: CreateTokenInstructionData;
1081
+ };
1082
+
1083
+ export function parseCreateTokenInstruction<
1084
+ TProgram extends string,
1085
+ TAccountMetas extends readonly AccountMeta[],
1086
+ >(
1087
+ instruction: Instruction<TProgram> &
1088
+ InstructionWithAccounts<TAccountMetas> &
1089
+ InstructionWithData<ReadonlyUint8Array>,
1090
+ ): ParsedCreateTokenInstruction<TProgram, TAccountMetas> {
1091
+ assertIsInstructionForProgram(instruction, SEND_LAUNCHPAD_PROGRAM_ADDRESS);
1092
+ if (!containsBytes(instruction.data, CREATE_TOKEN_DISCRIMINATOR, 0)) {
1093
+ const error = new Error(
1094
+ `parseCreateTokenInstruction: instruction data does not match the CreateToken discriminator`,
1095
+ );
1096
+ error.name = 'InstructionDiscriminatorMismatchError';
1097
+ throw error;
1098
+ }
1099
+ if (instruction.accounts.length < 28) {
1100
+ throw new SolanaError(
1101
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
1102
+ {
1103
+ actualAccountMetas: instruction.accounts.length,
1104
+ expectedAccountMetas: 28,
1105
+ },
1106
+ );
1107
+ }
1108
+ let accountIndex = 0;
1109
+ const getNextAccount = () => {
1110
+ const accountMeta = (instruction.accounts as TAccountMetas)[
1111
+ accountIndex
1112
+ ]!;
1113
+ accountIndex += 1;
1114
+ return accountMeta;
1115
+ };
1116
+ return {
1117
+ programAddress: instruction.programAddress,
1118
+ accounts: {
1119
+ user: getNextAccount(),
1120
+ payer: getNextAccount(),
1121
+ coinCreator: getNextAccount(),
1122
+ globalConfig: getNextAccount(),
1123
+ baseMint: getNextAccount(),
1124
+ quoteMint: getNextAccount(),
1125
+ bondingCurve: getNextAccount(),
1126
+ baseVault: getNextAccount(),
1127
+ quoteVault: getNextAccount(),
1128
+ creatorFeeConfig: getNextAccount(),
1129
+ nexusProgram: getNextAccount(),
1130
+ nexusGlobalConfig: getNextAccount(),
1131
+ partner: getNextAccount(),
1132
+ partnerConfig: getNextAccount(),
1133
+ nexusStakingConfig: getNextAccount(),
1134
+ stakingRewardState: getNextAccount(),
1135
+ rewardAccrual: getNextAccount(),
1136
+ stakingVault: getNextAccount(),
1137
+ stakingWsolVault: getNextAccount(),
1138
+ wsolRewardAccrual: getNextAccount(),
1139
+ pythPriceFeed: getNextAccount(),
1140
+ baseTokenProgram: getNextAccount(),
1141
+ quoteTokenProgram: getNextAccount(),
1142
+ wsolTokenProgram: getNextAccount(),
1143
+ associatedTokenProgram: getNextAccount(),
1144
+ systemProgram: getNextAccount(),
1145
+ eventAuthority: getNextAccount(),
1146
+ program: getNextAccount(),
1147
+ },
1148
+ data: getCreateTokenInstructionDataDecoder().decode(instruction.data),
1149
+ };
1150
+ }