@metadaoproject/futarchy 0.6.0-alpha.1 → 0.6.0-alpha.10

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 (61) hide show
  1. package/dist/v0.6/ConditionalVaultClient.d.ts +314 -0
  2. package/dist/v0.6/ConditionalVaultClient.js +209 -0
  3. package/dist/v0.6/ConditionalVaultClient.js.map +1 -0
  4. package/dist/v0.6/FutarchyClient.d.ts +893 -0
  5. package/dist/v0.6/FutarchyClient.js +392 -0
  6. package/dist/v0.6/FutarchyClient.js.map +1 -0
  7. package/dist/v0.6/LaunchpadClient.d.ts +540 -0
  8. package/dist/v0.6/LaunchpadClient.js +270 -0
  9. package/dist/v0.6/LaunchpadClient.js.map +1 -0
  10. package/dist/v0.6/PriceBasedPerformancePackageClient.d.ts +345 -0
  11. package/dist/v0.6/PriceBasedPerformancePackageClient.js +116 -0
  12. package/dist/v0.6/PriceBasedPerformancePackageClient.js.map +1 -0
  13. package/dist/v0.6/constants.d.ts +28 -0
  14. package/dist/v0.6/constants.js +39 -0
  15. package/dist/v0.6/constants.js.map +1 -0
  16. package/dist/v0.6/index.d.ts +7 -0
  17. package/dist/v0.6/index.js +8 -0
  18. package/dist/v0.6/index.js.map +1 -0
  19. package/dist/v0.6/types/amm.d.ts +832 -0
  20. package/dist/v0.6/types/amm.js +832 -0
  21. package/dist/v0.6/types/amm.js.map +1 -0
  22. package/dist/v0.6/types/conditional_vault.d.ts +925 -0
  23. package/dist/v0.6/types/conditional_vault.js +925 -0
  24. package/dist/v0.6/types/conditional_vault.js.map +1 -0
  25. package/dist/v0.6/types/futarchy.d.ts +2567 -0
  26. package/dist/v0.6/types/futarchy.js +2567 -0
  27. package/dist/v0.6/types/futarchy.js.map +1 -0
  28. package/dist/v0.6/types/index.d.ts +50 -0
  29. package/dist/v0.6/types/index.js +19 -0
  30. package/dist/v0.6/types/index.js.map +1 -0
  31. package/dist/v0.6/types/launchpad.d.ts +1267 -0
  32. package/dist/v0.6/types/launchpad.js +1267 -0
  33. package/dist/v0.6/types/launchpad.js.map +1 -0
  34. package/dist/v0.6/types/price_based_performance_package.d.ts +871 -0
  35. package/dist/v0.6/types/price_based_performance_package.js +871 -0
  36. package/dist/v0.6/types/price_based_performance_package.js.map +1 -0
  37. package/dist/v0.6/types/utils.d.ts +3 -0
  38. package/dist/v0.6/types/utils.js +2 -0
  39. package/dist/v0.6/types/utils.js.map +1 -0
  40. package/dist/v0.6/utils/cu.d.ts +10 -0
  41. package/dist/v0.6/utils/cu.js +11 -0
  42. package/dist/v0.6/utils/cu.js.map +1 -0
  43. package/dist/v0.6/utils/filters.d.ts +3 -0
  44. package/dist/v0.6/utils/filters.js +14 -0
  45. package/dist/v0.6/utils/filters.js.map +1 -0
  46. package/dist/v0.6/utils/index.d.ts +16 -0
  47. package/dist/v0.6/utils/index.js +30 -0
  48. package/dist/v0.6/utils/index.js.map +1 -0
  49. package/dist/v0.6/utils/instruction.d.ts +4 -0
  50. package/dist/v0.6/utils/instruction.js +10 -0
  51. package/dist/v0.6/utils/instruction.js.map +1 -0
  52. package/dist/v0.6/utils/metadata.d.ts +4 -0
  53. package/dist/v0.6/utils/metadata.js +22 -0
  54. package/dist/v0.6/utils/metadata.js.map +1 -0
  55. package/dist/v0.6/utils/pda.d.ts +36 -0
  56. package/dist/v0.6/utils/pda.js +84 -0
  57. package/dist/v0.6/utils/pda.js.map +1 -0
  58. package/dist/v0.6/utils/priceMath.d.ts +39 -0
  59. package/dist/v0.6/utils/priceMath.js +48 -0
  60. package/dist/v0.6/utils/priceMath.js.map +1 -0
  61. package/package.json +4 -3
@@ -0,0 +1,270 @@
1
+ import { Program } from "@coral-xyz/anchor";
2
+ import { PublicKey, ComputeBudgetProgram, } from "@solana/web3.js";
3
+ import { IDL as LaunchpadIDL } from "./types/launchpad.js";
4
+ import { LAUNCHPAD_PROGRAM_ID, MPL_TOKEN_METADATA_PROGRAM_ID, MAINNET_USDC, SQUADS_PROGRAM_ID, SQUADS_PROGRAM_CONFIG, SQUADS_PROGRAM_CONFIG_TREASURY, DAMM_V2_PROGRAM_ID, } from "./constants.js";
5
+ import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, } from "@solana/spl-token";
6
+ import BN from "bn.js";
7
+ import { getDaoAddr, getEventAuthorityAddr, getFundingRecordAddr, getLaunchAddr, getLaunchSignerAddr, getMetadataAddr, getPerformancePackageAddr, } from "./utils/pda.js";
8
+ import { FutarchyClient } from "./FutarchyClient.js";
9
+ import * as multisig from "@sqds/multisig";
10
+ import { PriceBasedPerformancePackageClient } from "./PriceBasedPerformancePackageClient.js";
11
+ export class LaunchpadClient {
12
+ launchpad;
13
+ provider;
14
+ autocratClient;
15
+ priceBasedUnlock;
16
+ constructor(params) {
17
+ this.provider = params.provider;
18
+ this.launchpad = new Program(LaunchpadIDL, params.launchpadProgramId || LAUNCHPAD_PROGRAM_ID, this.provider);
19
+ this.autocratClient = FutarchyClient.createClient({
20
+ provider: this.provider,
21
+ autocratProgramId: params.autocratProgramId,
22
+ conditionalVaultProgramId: params.conditionalVaultProgramId,
23
+ });
24
+ this.priceBasedUnlock = PriceBasedPerformancePackageClient.createClient({
25
+ provider: this.provider,
26
+ priceBasedTokenLockProgramId: params.priceBasedUnlockProgramId,
27
+ });
28
+ }
29
+ static createClient(params) {
30
+ return new LaunchpadClient(params);
31
+ }
32
+ getProgramId() {
33
+ return this.launchpad.programId;
34
+ }
35
+ async getLaunch(launch) {
36
+ return await this.launchpad.account.launch.fetch(launch);
37
+ }
38
+ async fetchLaunch(launch) {
39
+ return await this.launchpad.account.launch.fetchNullable(launch);
40
+ }
41
+ async deserializeLaunch(accountInfo) {
42
+ return this.launchpad.coder.accounts.decode("launch", accountInfo.data);
43
+ }
44
+ async getFundingRecord(fundingRecord) {
45
+ return await this.launchpad.account.fundingRecord.fetch(fundingRecord);
46
+ }
47
+ async fetchFundingRecord(fundingRecord) {
48
+ return await this.launchpad.account.fundingRecord.fetchNullable(fundingRecord);
49
+ }
50
+ async deserializeFundingRecord(accountInfo) {
51
+ return this.launchpad.coder.accounts.decode("fundingRecord", accountInfo.data);
52
+ }
53
+ initializeLaunchIx({ tokenName, tokenSymbol, tokenUri, minimumRaiseAmount, secondsForLaunch = 60 * 60 * 24 * 5, // 5 days
54
+ baseMint, quoteMint = MAINNET_USDC, monthlySpendingLimitAmount, monthlySpendingLimitMembers, performancePackageGrantee, performancePackageTokenAmount, monthsUntilInsidersCanUnlock, launchAuthority = this.provider.publicKey, payer = this.provider.publicKey, }) {
55
+ const [launch] = getLaunchAddr(this.launchpad.programId, baseMint);
56
+ const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
57
+ const quoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
58
+ const baseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
59
+ const [tokenMetadata] = getMetadataAddr(baseMint);
60
+ return this.launchpad.methods
61
+ .initializeLaunch({
62
+ minimumRaiseAmount,
63
+ secondsForLaunch,
64
+ tokenName,
65
+ tokenSymbol,
66
+ tokenUri,
67
+ monthlySpendingLimitAmount,
68
+ monthlySpendingLimitMembers,
69
+ performancePackageGrantee,
70
+ performancePackageTokenAmount,
71
+ monthsUntilInsidersCanUnlock,
72
+ })
73
+ .accounts({
74
+ launch,
75
+ launchSigner,
76
+ quoteVault,
77
+ baseVault,
78
+ launchAuthority,
79
+ quoteMint,
80
+ baseMint,
81
+ tokenMetadata,
82
+ tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
83
+ payer,
84
+ })
85
+ .preInstructions([
86
+ createAssociatedTokenAccountIdempotentInstruction(payer, getAssociatedTokenAddressSync(quoteMint, launchSigner, true), launchSigner, quoteMint),
87
+ ]);
88
+ // .signers([tokenMintKp]);
89
+ }
90
+ startLaunchIx({ launch, launchAuthority = this.provider.publicKey, }) {
91
+ return this.launchpad.methods.startLaunch().accounts({
92
+ launch,
93
+ launchAuthority,
94
+ });
95
+ }
96
+ fundIx({ launch, amount, funder = this.provider.publicKey, quoteMint = MAINNET_USDC, }) {
97
+ const launchSigner = this.getLaunchSignerAddress({ launch });
98
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
99
+ const funderQuoteAccount = getAssociatedTokenAddressSync(quoteMint, funder, true);
100
+ const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
101
+ return this.launchpad.methods.fund(amount).accounts({
102
+ launch,
103
+ launchQuoteVault,
104
+ fundingRecord,
105
+ funder,
106
+ funderQuoteAccount,
107
+ launchSigner,
108
+ });
109
+ }
110
+ closeLaunchIx({ launch }) {
111
+ return this.launchpad.methods.closeLaunch().accounts({
112
+ launch,
113
+ });
114
+ }
115
+ completeLaunchIx({ launch, quoteMint = MAINNET_USDC, baseMint, finalRaiseAmount, launchAuthority, }) {
116
+ const launchSigner = this.getLaunchSignerAddress({ launch });
117
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
118
+ const launchBaseVault = getAssociatedTokenAddressSync(baseMint, launchSigner, true);
119
+ // const daoKp = Keypair.generate();
120
+ const [dao] = getDaoAddr({
121
+ nonce: new BN(0),
122
+ daoCreator: launchSigner,
123
+ });
124
+ const [autocratEventAuthority] = getEventAuthorityAddr(this.autocratClient.getProgramId());
125
+ const [tokenMetadata] = getMetadataAddr(baseMint);
126
+ const [multisigPda] = multisig.getMultisigPda({ createKey: dao });
127
+ const [multisigVault] = multisig.getVaultPda({
128
+ multisigPda,
129
+ index: 0,
130
+ });
131
+ const [spendingLimit] = multisig.getSpendingLimitPda({
132
+ multisigPda,
133
+ createKey: dao,
134
+ });
135
+ const treasuryQuoteAccount = getAssociatedTokenAddressSync(quoteMint, multisigVault, true);
136
+ const [ammPosition] = PublicKey.findProgramAddressSync([Buffer.from("amm_position"), dao.toBuffer(), multisigVault.toBuffer()], this.autocratClient.getProgramId());
137
+ const [performancePackage] = getPerformancePackageAddr({
138
+ createKey: launchSigner,
139
+ });
140
+ const performancePackageTokenAccount = getAssociatedTokenAddressSync(baseMint, performancePackage, true);
141
+ const [poolAuthority] = PublicKey.findProgramAddressSync([Buffer.from("pool_authority")], DAMM_V2_PROGRAM_ID);
142
+ const [positionNftMint] = PublicKey.findProgramAddressSync([Buffer.from("position_nft_mint"), baseMint.toBuffer()], LAUNCHPAD_PROGRAM_ID);
143
+ const [positionNftAccount] = PublicKey.findProgramAddressSync([Buffer.from("position_nft_account"), positionNftMint.toBuffer()], DAMM_V2_PROGRAM_ID);
144
+ function getFirstKey(key1, key2) {
145
+ const buf1 = key1.toBuffer();
146
+ const buf2 = key2.toBuffer();
147
+ // Buf1 > buf2
148
+ if (Buffer.compare(buf1, buf2) === 1) {
149
+ return buf1;
150
+ }
151
+ return buf2;
152
+ }
153
+ function getSecondKey(key1, key2) {
154
+ const buf1 = key1.toBuffer();
155
+ const buf2 = key2.toBuffer();
156
+ // Buf1 > buf2
157
+ if (Buffer.compare(buf1, buf2) === 1) {
158
+ return buf2;
159
+ }
160
+ return buf1;
161
+ }
162
+ const config = new PublicKey("4mPQ4VuvvtYL3CeMPt14Uj1CLpBWcVdJoLoTH9ea4Kod");
163
+ const [pool] = PublicKey.findProgramAddressSync([
164
+ Buffer.from("pool"),
165
+ config.toBuffer(),
166
+ getFirstKey(baseMint, quoteMint),
167
+ getSecondKey(baseMint, quoteMint),
168
+ ], DAMM_V2_PROGRAM_ID);
169
+ const [position] = PublicKey.findProgramAddressSync([Buffer.from("position"), positionNftMint.toBuffer()], DAMM_V2_PROGRAM_ID);
170
+ const [tokenAVault] = PublicKey.findProgramAddressSync([Buffer.from("token_vault"), baseMint.toBuffer(), pool.toBuffer()], DAMM_V2_PROGRAM_ID);
171
+ const [tokenBVault] = PublicKey.findProgramAddressSync([Buffer.from("token_vault"), quoteMint.toBuffer(), pool.toBuffer()], DAMM_V2_PROGRAM_ID);
172
+ const [poolCreatorAuthority] = PublicKey.findProgramAddressSync([Buffer.from("damm_pool_creator_authority")], LAUNCHPAD_PROGRAM_ID);
173
+ const [dammV2EventAuthority] = getEventAuthorityAddr(DAMM_V2_PROGRAM_ID);
174
+ return this.launchpad.methods
175
+ .completeLaunch({ finalRaiseAmount })
176
+ .accounts({
177
+ launch,
178
+ launchSigner,
179
+ launchQuoteVault,
180
+ launchBaseVault,
181
+ launchAuthority,
182
+ dao,
183
+ treasuryQuoteAccount,
184
+ quoteMint,
185
+ baseMint,
186
+ tokenMetadata,
187
+ daoOwnedLpPosition: ammPosition,
188
+ futarchyAmmQuoteVault: getAssociatedTokenAddressSync(quoteMint, dao, true),
189
+ futarchyAmmBaseVault: getAssociatedTokenAddressSync(baseMint, dao, true),
190
+ staticAccounts: {
191
+ futarchyProgram: this.autocratClient.getProgramId(),
192
+ tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
193
+ autocratEventAuthority,
194
+ squadsProgram: SQUADS_PROGRAM_ID,
195
+ squadsProgramConfig: SQUADS_PROGRAM_CONFIG,
196
+ squadsProgramConfigTreasury: SQUADS_PROGRAM_CONFIG_TREASURY,
197
+ priceBasedPerformancePackageProgram: this.priceBasedUnlock.programId,
198
+ priceBasedPerformancePackageEventAuthority: this.priceBasedUnlock.getEventAuthorityAddress(),
199
+ },
200
+ squadsMultisig: multisigPda,
201
+ squadsMultisigVault: multisigVault,
202
+ spendingLimit,
203
+ performancePackage,
204
+ performancePackageTokenAccount,
205
+ positionNftMint,
206
+ meteoraAccounts: {
207
+ dammV2Program: DAMM_V2_PROGRAM_ID,
208
+ config,
209
+ token2022Program: TOKEN_2022_PROGRAM_ID,
210
+ positionNftAccount,
211
+ pool,
212
+ // baseMint,
213
+ // quoteMint,
214
+ poolCreatorAuthority,
215
+ position,
216
+ tokenAVault,
217
+ tokenBVault,
218
+ poolAuthority,
219
+ dammV2EventAuthority,
220
+ },
221
+ // poolCreatorAuthority,
222
+ })
223
+ .preInstructions([
224
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 800_000 }),
225
+ ComputeBudgetProgram.requestHeapFrame({ bytes: 255 * 1024 }),
226
+ ]);
227
+ }
228
+ refundIx({ launch, funder = this.provider.publicKey, quoteMint = MAINNET_USDC, }) {
229
+ const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
230
+ const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
231
+ const launchQuoteVault = getAssociatedTokenAddressSync(quoteMint, launchSigner, true);
232
+ const funderQuoteAccount = getAssociatedTokenAddressSync(quoteMint, funder, true);
233
+ return this.launchpad.methods.refund().accounts({
234
+ launch,
235
+ launchSigner,
236
+ launchQuoteVault,
237
+ funder,
238
+ funderQuoteAccount,
239
+ fundingRecord,
240
+ });
241
+ }
242
+ claimIx(launch, baseMint, funder = this.provider.publicKey) {
243
+ const [launchSigner] = getLaunchSignerAddr(this.launchpad.programId, launch);
244
+ const [fundingRecord] = getFundingRecordAddr(this.launchpad.programId, launch, funder);
245
+ return this.launchpad.methods
246
+ .claim()
247
+ .accounts({
248
+ launch,
249
+ fundingRecord,
250
+ launchSigner,
251
+ funder,
252
+ funderTokenAccount: getAssociatedTokenAddressSync(baseMint, funder, true),
253
+ baseMint,
254
+ launchBaseVault: getAssociatedTokenAddressSync(baseMint, launchSigner, true),
255
+ })
256
+ .preInstructions([
257
+ createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, getAssociatedTokenAddressSync(baseMint, funder, true), funder, baseMint),
258
+ ]);
259
+ }
260
+ getLaunchAddress({ baseMint }) {
261
+ return getLaunchAddr(this.launchpad.programId, baseMint)[0];
262
+ }
263
+ getLaunchSignerAddress({ launch }) {
264
+ return getLaunchSignerAddr(this.launchpad.programId, launch)[0];
265
+ }
266
+ getFundingRecordAddress({ launch, funder, }) {
267
+ return getFundingRecordAddr(this.launchpad.programId, launch, funder)[0];
268
+ }
269
+ }
270
+ //# sourceMappingURL=LaunchpadClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchpadClient.js","sourceRoot":"","sources":["../../src/v0.6/LaunchpadClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,SAAS,EAGT,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,GAAG,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,oBAAoB,EASpB,6BAA6B,EAC7B,YAAY,EAEZ,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iDAAiD,EACjD,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAU7F,MAAM,OAAO,eAAe;IACnB,SAAS,CAAqB;IAC9B,QAAQ,CAAiB;IACzB,cAAc,CAAiB;IAC/B,gBAAgB,CAAqC;IAE5D,YAAoB,MAAmC;QACrD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAC1B,YAAY,EACZ,MAAM,CAAC,kBAAkB,IAAI,oBAAoB,EACjD,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,YAAY,CAAC;YAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,kCAAkC,CAAC,YAAY,CAAC;YACtE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,4BAA4B,EAAE,MAAM,CAAC,yBAAyB;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAmC;QACrD,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAiB;QAC/B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAiB;QACjC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAgC;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,aAAwB;QAC7C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,aAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAC7D,aAAa,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,WAAgC;QAEhC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CACzC,eAAe,EACf,WAAW,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,EACjB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS;IAC9C,QAAQ,EACR,SAAS,GAAG,YAAY,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EACzC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAgBhC;QACC,MAAM,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,GAAG,mBAAmB,CACxC,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,MAAM,CACP,CAAC;QACF,MAAM,UAAU,GAAG,6BAA6B,CAC9C,SAAS,EACT,YAAY,EACZ,IAAI,CACL,CAAC;QAEF,MAAM,SAAS,GAAG,6BAA6B,CAC7C,QAAQ,EACR,YAAY,EACZ,IAAI,CACL,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;aAC1B,gBAAgB,CAAC;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,0BAA0B;YAC1B,2BAA2B;YAC3B,yBAAyB;YACzB,6BAA6B;YAC7B,4BAA4B;SAC7B,CAAC;aACD,QAAQ,CAAC;YACR,MAAM;YACN,YAAY;YACZ,UAAU;YACV,SAAS;YACT,eAAe;YACf,SAAS;YACT,QAAQ;YACR,aAAa;YACb,oBAAoB,EAAE,6BAA6B;YACnD,KAAK;SACN,CAAC;aACD,eAAe,CAAC;YACf,iDAAiD,CAC/C,KAAK,EACL,6BAA6B,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,EAC5D,YAAY,EACZ,SAAS,CACV;SACF,CAAC,CAAC;QACL,2BAA2B;IAC7B,CAAC;IAED,aAAa,CAAC,EACZ,MAAM,EACN,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAI1C;QACC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YACnD,MAAM;YACN,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EACL,MAAM,EACN,MAAM,EACN,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAChC,SAAS,GAAG,YAAY,GAMzB;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7D,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,SAAS,EACT,YAAY,EACZ,IAAI,CACL,CAAC;QACF,MAAM,kBAAkB,GAAG,6BAA6B,CACtD,SAAS,EACT,MAAM,EACN,IAAI,CACL,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,GAAG,oBAAoB,CAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,MAAM,EACN,MAAM,CACP,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;YAClD,MAAM;YACN,gBAAgB;YAChB,aAAa;YACb,MAAM;YACN,kBAAkB;YAClB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAE,MAAM,EAAyB;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YACnD,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,EACf,MAAM,EACN,SAAS,GAAG,YAAY,EACxB,QAAQ,EACR,gBAAgB,EAChB,eAAe,GAOhB;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7D,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,SAAS,EACT,YAAY,EACZ,IAAI,CACL,CAAC;QACF,MAAM,eAAe,GAAG,6BAA6B,CACnD,QAAQ,EACR,YAAY,EACZ,IAAI,CACL,CAAC;QAEF,oCAAoC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YACvB,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChB,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,MAAM,CAAC,sBAAsB,CAAC,GAAG,qBAAqB,CACpD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CACnC,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;YAC3C,WAAW;YACX,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC;YACnD,WAAW;YACX,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,6BAA6B,CACxD,SAAS,EACT,aAAa,EACb,IAAI,CACL,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,sBAAsB,CACpD,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,EACvE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CACnC,CAAC;QAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,yBAAyB,CAAC;YACrD,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;QACH,MAAM,8BAA8B,GAAG,6BAA6B,CAClE,QAAQ,EACR,kBAAkB,EAClB,IAAI,CACL,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,sBAAsB,CACtD,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAC/B,kBAAkB,CACnB,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,sBAAsB,CACxD,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EACvD,oBAAoB,CACrB,CAAC;QAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAC3D,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,EACjE,kBAAkB,CACnB,CAAC;QAEF,SAAS,WAAW,CAAC,IAAe,EAAE,IAAe;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc;YACd,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,YAAY,CAAC,IAAe,EAAE,IAAe;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc;YACd,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,8CAA8C,CAC/C,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAC7C;YACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACnB,MAAM,CAAC,QAAQ,EAAE;YACjB,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;YAChC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;SAClC,EACD,kBAAkB,CACnB,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,sBAAsB,CACjD,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,EACrD,kBAAkB,CACnB,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,sBAAsB,CACpD,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAClE,kBAAkB,CACnB,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,sBAAsB,CACpD,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EACnE,kBAAkB,CACnB,CAAC;QAEF,MAAM,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAC7D,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAC5C,oBAAoB,CACrB,CAAC;QAEF,MAAM,CAAC,oBAAoB,CAAC,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;aAC1B,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;aACpC,QAAQ,CAAC;YACR,MAAM;YACN,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,GAAG;YACH,oBAAoB;YACpB,SAAS;YACT,QAAQ;YACR,aAAa;YACb,kBAAkB,EAAE,WAAW;YAC/B,qBAAqB,EAAE,6BAA6B,CAClD,SAAS,EACT,GAAG,EACH,IAAI,CACL;YACD,oBAAoB,EAAE,6BAA6B,CACjD,QAAQ,EACR,GAAG,EACH,IAAI,CACL;YACD,cAAc,EAAE;gBACd,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;gBACnD,oBAAoB,EAAE,6BAA6B;gBACnD,sBAAsB;gBACtB,aAAa,EAAE,iBAAiB;gBAChC,mBAAmB,EAAE,qBAAqB;gBAC1C,2BAA2B,EAAE,8BAA8B;gBAC3D,mCAAmC,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS;gBACpE,0CAA0C,EACxC,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE;aACnD;YACD,cAAc,EAAE,WAAW;YAC3B,mBAAmB,EAAE,aAAa;YAClC,aAAa;YACb,kBAAkB;YAClB,8BAA8B;YAC9B,eAAe;YACf,eAAe,EAAE;gBACf,aAAa,EAAE,kBAAkB;gBACjC,MAAM;gBACN,gBAAgB,EAAE,qBAAqB;gBACvC,kBAAkB;gBAClB,IAAI;gBACJ,YAAY;gBACZ,aAAa;gBACb,oBAAoB;gBACpB,QAAQ;gBACR,WAAW;gBACX,WAAW;gBACX,aAAa;gBACb,oBAAoB;aACrB;YACD,wBAAwB;SACzB,CAAC;aACD,eAAe,CAAC;YACf,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC5D,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC;SAC7D,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,EACP,MAAM,EACN,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAChC,SAAS,GAAG,YAAY,GAKzB;QACC,MAAM,CAAC,YAAY,CAAC,GAAG,mBAAmB,CACxC,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,MAAM,CACP,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,GAAG,oBAAoB,CAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,MAAM,EACN,MAAM,CACP,CAAC;QAEF,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,SAAS,EACT,YAAY,EACZ,IAAI,CACL,CAAC;QACF,MAAM,kBAAkB,GAAG,6BAA6B,CACtD,SAAS,EACT,MAAM,EACN,IAAI,CACL,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;YAC9C,MAAM;YACN,YAAY;YACZ,gBAAgB;YAChB,MAAM;YACN,kBAAkB;YAClB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,MAAiB,EACjB,QAAmB,EACnB,SAAoB,IAAI,CAAC,QAAQ,CAAC,SAAS;QAE3C,MAAM,CAAC,YAAY,CAAC,GAAG,mBAAmB,CACxC,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,MAAM,CACP,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,GAAG,oBAAoB,CAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,EACxB,MAAM,EACN,MAAM,CACP,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;aAC1B,KAAK,EAAE;aACP,QAAQ,CAAC;YACR,MAAM;YACN,aAAa;YACb,YAAY;YACZ,MAAM;YACN,kBAAkB,EAAE,6BAA6B,CAC/C,QAAQ,EACR,MAAM,EACN,IAAI,CACL;YACD,QAAQ;YACR,eAAe,EAAE,6BAA6B,CAC5C,QAAQ,EACR,YAAY,EACZ,IAAI,CACL;SACF,CAAC;aACD,eAAe,CAAC;YACf,iDAAiD,CAC/C,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EACrD,MAAM,EACN,QAAQ,CACT;SACF,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,EAAE,QAAQ,EAA2B;QACpD,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,sBAAsB,CAAC,EAAE,MAAM,EAAyB;QACtD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,uBAAuB,CAAC,EACtB,MAAM,EACN,MAAM,GAIP;QACC,OAAO,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -0,0 +1,345 @@
1
+ import { AnchorProvider, Program } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { PriceBasedPerformancePackage } from "./types/price_based_performance_package.js";
4
+ import BN from "bn.js";
5
+ import { InitializePerformancePackageParams } from "./types/index.js";
6
+ export type CreatePriceBasedPerformancePackageClientParams = {
7
+ provider: AnchorProvider;
8
+ priceBasedTokenLockProgramId?: PublicKey;
9
+ };
10
+ export declare class PriceBasedPerformancePackageClient {
11
+ readonly provider: AnchorProvider;
12
+ readonly program: Program<PriceBasedPerformancePackage>;
13
+ readonly programId: PublicKey;
14
+ constructor(provider: AnchorProvider, priceBasedTokenLockProgramId: PublicKey);
15
+ static createClient(createClientParams: CreatePriceBasedPerformancePackageClientParams): PriceBasedPerformancePackageClient;
16
+ initializePerformancePackageIx(params: {
17
+ params: InitializePerformancePackageParams;
18
+ createKey: PublicKey;
19
+ tokenMint: PublicKey;
20
+ grantor: PublicKey;
21
+ grantorTokenAccount?: PublicKey;
22
+ }): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<PriceBasedPerformancePackage, {
23
+ name: "initializePerformancePackage";
24
+ accounts: [{
25
+ name: "performancePackage";
26
+ isMut: true;
27
+ isSigner: false;
28
+ }, {
29
+ name: "createKey";
30
+ isMut: false;
31
+ isSigner: true;
32
+ docs: ["Used to derive the PDA"];
33
+ }, {
34
+ name: "tokenMint";
35
+ isMut: false;
36
+ isSigner: false;
37
+ docs: ["The mint of the tokens to be locked"];
38
+ }, {
39
+ name: "grantorTokenAccount";
40
+ isMut: true;
41
+ isSigner: false;
42
+ docs: ["The token account containing the tokens to be locked"];
43
+ }, {
44
+ name: "grantor";
45
+ isMut: false;
46
+ isSigner: true;
47
+ docs: ["The authority of the token account"];
48
+ }, {
49
+ name: "performancePackageTokenVault";
50
+ isMut: true;
51
+ isSigner: false;
52
+ docs: ["The locker's token account where tokens will be stored"];
53
+ }, {
54
+ name: "payer";
55
+ isMut: true;
56
+ isSigner: true;
57
+ }, {
58
+ name: "systemProgram";
59
+ isMut: false;
60
+ isSigner: false;
61
+ }, {
62
+ name: "tokenProgram";
63
+ isMut: false;
64
+ isSigner: false;
65
+ }, {
66
+ name: "associatedTokenProgram";
67
+ isMut: false;
68
+ isSigner: false;
69
+ }, {
70
+ name: "eventAuthority";
71
+ isMut: false;
72
+ isSigner: false;
73
+ }, {
74
+ name: "program";
75
+ isMut: false;
76
+ isSigner: false;
77
+ }];
78
+ args: [{
79
+ name: "params";
80
+ type: {
81
+ defined: "InitializePerformancePackageParams";
82
+ };
83
+ }];
84
+ } & {
85
+ name: "initializePerformancePackage";
86
+ }>;
87
+ startUnlockIx(params: {
88
+ performancePackage: PublicKey;
89
+ oracleAccount: PublicKey;
90
+ recipient: PublicKey;
91
+ }): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<PriceBasedPerformancePackage, {
92
+ name: "startUnlock";
93
+ accounts: [{
94
+ name: "performancePackage";
95
+ isMut: true;
96
+ isSigner: false;
97
+ }, {
98
+ name: "oracleAccount";
99
+ isMut: false;
100
+ isSigner: false;
101
+ }, {
102
+ name: "recipient";
103
+ isMut: false;
104
+ isSigner: true;
105
+ docs: ["Only the token recipient can start unlock"];
106
+ }, {
107
+ name: "eventAuthority";
108
+ isMut: false;
109
+ isSigner: false;
110
+ }, {
111
+ name: "program";
112
+ isMut: false;
113
+ isSigner: false;
114
+ }];
115
+ args: [];
116
+ } & {
117
+ name: "startUnlock";
118
+ }>;
119
+ completeUnlockIx(params: {
120
+ performancePackage: PublicKey;
121
+ oracleAccount: PublicKey;
122
+ tokenMint: PublicKey;
123
+ tokenRecipient: PublicKey;
124
+ }): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<PriceBasedPerformancePackage, {
125
+ name: "completeUnlock";
126
+ accounts: [{
127
+ name: "performancePackage";
128
+ isMut: true;
129
+ isSigner: false;
130
+ }, {
131
+ name: "oracleAccount";
132
+ isMut: false;
133
+ isSigner: false;
134
+ }, {
135
+ name: "performancePackageTokenVault";
136
+ isMut: true;
137
+ isSigner: false;
138
+ docs: ["The token account where locked tokens are stored"];
139
+ }, {
140
+ name: "tokenMint";
141
+ isMut: false;
142
+ isSigner: false;
143
+ docs: ["The token mint - validated via has_one constraint on locker"];
144
+ }, {
145
+ name: "recipientTokenAccount";
146
+ isMut: true;
147
+ isSigner: false;
148
+ docs: ["The recipient's ATA where tokens will be sent - created if needed"];
149
+ }, {
150
+ name: "tokenRecipient";
151
+ isMut: false;
152
+ isSigner: false;
153
+ }, {
154
+ name: "payer";
155
+ isMut: true;
156
+ isSigner: true;
157
+ docs: ["Payer for creating the ATA if needed"];
158
+ }, {
159
+ name: "systemProgram";
160
+ isMut: false;
161
+ isSigner: false;
162
+ }, {
163
+ name: "tokenProgram";
164
+ isMut: false;
165
+ isSigner: false;
166
+ }, {
167
+ name: "associatedTokenProgram";
168
+ isMut: false;
169
+ isSigner: false;
170
+ }, {
171
+ name: "eventAuthority";
172
+ isMut: false;
173
+ isSigner: false;
174
+ }, {
175
+ name: "program";
176
+ isMut: false;
177
+ isSigner: false;
178
+ }];
179
+ args: [];
180
+ } & {
181
+ name: "completeUnlock";
182
+ }>;
183
+ proposeChangeIx(params: {
184
+ params: {
185
+ changeType: any;
186
+ pdaNonce: number;
187
+ };
188
+ performancePackage: PublicKey;
189
+ proposer: PublicKey;
190
+ }): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<PriceBasedPerformancePackage, {
191
+ name: "proposeChange";
192
+ accounts: [{
193
+ name: "changeRequest";
194
+ isMut: true;
195
+ isSigner: false;
196
+ }, {
197
+ name: "performancePackage";
198
+ isMut: true;
199
+ isSigner: false;
200
+ }, {
201
+ name: "proposer";
202
+ isMut: false;
203
+ isSigner: true;
204
+ }, {
205
+ name: "payer";
206
+ isMut: true;
207
+ isSigner: true;
208
+ }, {
209
+ name: "systemProgram";
210
+ isMut: false;
211
+ isSigner: false;
212
+ }, {
213
+ name: "eventAuthority";
214
+ isMut: false;
215
+ isSigner: false;
216
+ }, {
217
+ name: "program";
218
+ isMut: false;
219
+ isSigner: false;
220
+ }];
221
+ args: [{
222
+ name: "params";
223
+ type: {
224
+ defined: "ProposeChangeParams";
225
+ };
226
+ }];
227
+ } & {
228
+ name: "proposeChange";
229
+ }>;
230
+ executeChangeIx(params: {
231
+ performancePackage: PublicKey;
232
+ changeRequest: PublicKey;
233
+ executor: PublicKey;
234
+ }): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<PriceBasedPerformancePackage, {
235
+ name: "executeChange";
236
+ accounts: [{
237
+ name: "changeRequest";
238
+ isMut: true;
239
+ isSigner: false;
240
+ }, {
241
+ name: "performancePackage";
242
+ isMut: true;
243
+ isSigner: false;
244
+ }, {
245
+ name: "executor";
246
+ isMut: true;
247
+ isSigner: true;
248
+ docs: ["The party executing the change (must be opposite of proposer)"];
249
+ }];
250
+ args: [];
251
+ } & {
252
+ name: "executeChange";
253
+ }>;
254
+ changePerformancePackageAuthorityIx(params: {
255
+ performancePackage: PublicKey;
256
+ currentAuthority: PublicKey;
257
+ newPerformancePackageAuthority: PublicKey;
258
+ }): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<PriceBasedPerformancePackage, {
259
+ name: "changePerformancePackageAuthority";
260
+ accounts: [{
261
+ name: "performancePackage";
262
+ isMut: true;
263
+ isSigner: false;
264
+ }, {
265
+ name: "currentAuthority";
266
+ isMut: false;
267
+ isSigner: true;
268
+ }];
269
+ args: [{
270
+ name: "params";
271
+ type: {
272
+ defined: "ChangePerformancePackageAuthorityParams";
273
+ };
274
+ }];
275
+ } & {
276
+ name: "changePerformancePackageAuthority";
277
+ }>;
278
+ getPerformancePackage(performancePackageAddress: PublicKey): Promise<{
279
+ tranches: {
280
+ priceThreshold: BN;
281
+ tokenAmount: BN;
282
+ isUnlocked: boolean;
283
+ }[];
284
+ totalTokenAmount: BN;
285
+ alreadyUnlockedAmount: BN;
286
+ minUnlockTimestamp: BN;
287
+ oracleConfig: {
288
+ oracleAccount: PublicKey;
289
+ byteOffset: number;
290
+ };
291
+ twapLengthSeconds: BN;
292
+ recipient: PublicKey;
293
+ state: ({
294
+ unlocking?: undefined;
295
+ unlocked?: undefined;
296
+ } & {
297
+ locked: Record<string, never>;
298
+ }) | ({
299
+ locked?: undefined;
300
+ unlocked?: undefined;
301
+ } & {
302
+ unlocking: {
303
+ startAggregator: BN;
304
+ startTimestamp: BN;
305
+ };
306
+ }) | ({
307
+ locked?: undefined;
308
+ unlocking?: undefined;
309
+ } & {
310
+ unlocked: Record<string, never>;
311
+ });
312
+ createKey: PublicKey;
313
+ pdaBump: number;
314
+ performancePackageAuthority: PublicKey;
315
+ tokenMint: PublicKey;
316
+ seqNum: BN;
317
+ performancePackageTokenVault: PublicKey;
318
+ }>;
319
+ getChangeRequest(changeRequestAddress: PublicKey): Promise<{
320
+ performancePackage: PublicKey;
321
+ changeType: ({
322
+ recipient?: undefined;
323
+ } & {
324
+ oracle: {
325
+ newOracleConfig: {
326
+ oracleAccount: PublicKey;
327
+ byteOffset: number;
328
+ };
329
+ };
330
+ }) | ({
331
+ oracle?: undefined;
332
+ } & {
333
+ recipient: {
334
+ newRecipient: PublicKey;
335
+ };
336
+ });
337
+ proposedAt: BN;
338
+ proposer: PublicKey;
339
+ pdaNonce: number;
340
+ pdaBump: number;
341
+ }>;
342
+ getChangeRequestAddress(performancePackage: PublicKey, proposer: PublicKey, pdaNonce: number): PublicKey;
343
+ getPerformancePackageTokenAccountAddress(performancePackage: PublicKey): PublicKey;
344
+ getEventAuthorityAddress(): PublicKey;
345
+ }