@metadaoproject/futarchy 0.4.0-alpha.33 → 0.4.0-alpha.34

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 (109) hide show
  1. package/package.json +1 -1
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -2
  4. package/dist/index.js.map +0 -1
  5. package/dist/v0.3/AmmClient.d.ts +0 -223
  6. package/dist/v0.3/AmmClient.js +0 -186
  7. package/dist/v0.3/AmmClient.js.map +0 -1
  8. package/dist/v0.3/AutocratClient.d.ts +0 -234
  9. package/dist/v0.3/AutocratClient.js +0 -270
  10. package/dist/v0.3/AutocratClient.js.map +0 -1
  11. package/dist/v0.3/ConditionalVaultClient.d.ts +0 -281
  12. package/dist/v0.3/ConditionalVaultClient.js +0 -135
  13. package/dist/v0.3/ConditionalVaultClient.js.map +0 -1
  14. package/dist/v0.3/FutarchyClient.d.ts +0 -26
  15. package/dist/v0.3/FutarchyClient.js +0 -47
  16. package/dist/v0.3/FutarchyClient.js.map +0 -1
  17. package/dist/v0.3/constants.d.ts +0 -9
  18. package/dist/v0.3/constants.js +0 -10
  19. package/dist/v0.3/constants.js.map +0 -1
  20. package/dist/v0.3/index.d.ts +0 -7
  21. package/dist/v0.3/index.js +0 -8
  22. package/dist/v0.3/index.js.map +0 -1
  23. package/dist/v0.3/types/amm.d.ts +0 -542
  24. package/dist/v0.3/types/amm.js +0 -542
  25. package/dist/v0.3/types/amm.js.map +0 -1
  26. package/dist/v0.3/types/autocrat.d.ts +0 -632
  27. package/dist/v0.3/types/autocrat.js +0 -632
  28. package/dist/v0.3/types/autocrat.js.map +0 -1
  29. package/dist/v0.3/types/conditional_vault.d.ts +0 -448
  30. package/dist/v0.3/types/conditional_vault.js +0 -448
  31. package/dist/v0.3/types/conditional_vault.js.map +0 -1
  32. package/dist/v0.3/types/index.d.ts +0 -21
  33. package/dist/v0.3/types/index.js +0 -4
  34. package/dist/v0.3/types/index.js.map +0 -1
  35. package/dist/v0.3/types/utils.d.ts +0 -3
  36. package/dist/v0.3/types/utils.js +0 -2
  37. package/dist/v0.3/types/utils.js.map +0 -1
  38. package/dist/v0.3/utils/ammMath.d.ts +0 -39
  39. package/dist/v0.3/utils/ammMath.js +0 -142
  40. package/dist/v0.3/utils/ammMath.js.map +0 -1
  41. package/dist/v0.3/utils/cu.d.ts +0 -10
  42. package/dist/v0.3/utils/cu.js +0 -11
  43. package/dist/v0.3/utils/cu.js.map +0 -1
  44. package/dist/v0.3/utils/filters.d.ts +0 -3
  45. package/dist/v0.3/utils/filters.js +0 -14
  46. package/dist/v0.3/utils/filters.js.map +0 -1
  47. package/dist/v0.3/utils/index.d.ts +0 -16
  48. package/dist/v0.3/utils/index.js +0 -30
  49. package/dist/v0.3/utils/index.js.map +0 -1
  50. package/dist/v0.3/utils/instruction.d.ts +0 -4
  51. package/dist/v0.3/utils/instruction.js +0 -10
  52. package/dist/v0.3/utils/instruction.js.map +0 -1
  53. package/dist/v0.3/utils/metadata.d.ts +0 -4
  54. package/dist/v0.3/utils/metadata.js +0 -26
  55. package/dist/v0.3/utils/metadata.js.map +0 -1
  56. package/dist/v0.3/utils/pda.d.ts +0 -10
  57. package/dist/v0.3/utils/pda.js +0 -47
  58. package/dist/v0.3/utils/pda.js.map +0 -1
  59. package/dist/v0.4/AmmClient.d.ts +0 -266
  60. package/dist/v0.4/AmmClient.js +0 -186
  61. package/dist/v0.4/AmmClient.js.map +0 -1
  62. package/dist/v0.4/AutocratClient.d.ts +0 -234
  63. package/dist/v0.4/AutocratClient.js +0 -377
  64. package/dist/v0.4/AutocratClient.js.map +0 -1
  65. package/dist/v0.4/ConditionalVaultClient.d.ts +0 -315
  66. package/dist/v0.4/ConditionalVaultClient.js +0 -209
  67. package/dist/v0.4/ConditionalVaultClient.js.map +0 -1
  68. package/dist/v0.4/constants.d.ts +0 -9
  69. package/dist/v0.4/constants.js +0 -10
  70. package/dist/v0.4/constants.js.map +0 -1
  71. package/dist/v0.4/index.d.ts +0 -6
  72. package/dist/v0.4/index.js +0 -7
  73. package/dist/v0.4/index.js.map +0 -1
  74. package/dist/v0.4/types/amm.d.ts +0 -813
  75. package/dist/v0.4/types/amm.js +0 -813
  76. package/dist/v0.4/types/amm.js.map +0 -1
  77. package/dist/v0.4/types/autocrat.d.ts +0 -641
  78. package/dist/v0.4/types/autocrat.js +0 -641
  79. package/dist/v0.4/types/autocrat.js.map +0 -1
  80. package/dist/v0.4/types/conditional_vault.d.ts +0 -920
  81. package/dist/v0.4/types/conditional_vault.js +0 -920
  82. package/dist/v0.4/types/conditional_vault.js.map +0 -1
  83. package/dist/v0.4/types/index.d.ts +0 -30
  84. package/dist/v0.4/types/index.js +0 -7
  85. package/dist/v0.4/types/index.js.map +0 -1
  86. package/dist/v0.4/types/utils.d.ts +0 -3
  87. package/dist/v0.4/types/utils.js +0 -2
  88. package/dist/v0.4/types/utils.js.map +0 -1
  89. package/dist/v0.4/utils/cu.d.ts +0 -10
  90. package/dist/v0.4/utils/cu.js +0 -11
  91. package/dist/v0.4/utils/cu.js.map +0 -1
  92. package/dist/v0.4/utils/filters.d.ts +0 -3
  93. package/dist/v0.4/utils/filters.js +0 -14
  94. package/dist/v0.4/utils/filters.js.map +0 -1
  95. package/dist/v0.4/utils/index.d.ts +0 -16
  96. package/dist/v0.4/utils/index.js +0 -30
  97. package/dist/v0.4/utils/index.js.map +0 -1
  98. package/dist/v0.4/utils/instruction.d.ts +0 -4
  99. package/dist/v0.4/utils/instruction.js +0 -10
  100. package/dist/v0.4/utils/instruction.js.map +0 -1
  101. package/dist/v0.4/utils/metadata.d.ts +0 -4
  102. package/dist/v0.4/utils/metadata.js +0 -26
  103. package/dist/v0.4/utils/metadata.js.map +0 -1
  104. package/dist/v0.4/utils/pda.d.ts +0 -17
  105. package/dist/v0.4/utils/pda.js +0 -75
  106. package/dist/v0.4/utils/pda.js.map +0 -1
  107. package/dist/v0.4/utils/priceMath.d.ts +0 -54
  108. package/dist/v0.4/utils/priceMath.js +0 -116
  109. package/dist/v0.4/utils/priceMath.js.map +0 -1
@@ -1,270 +0,0 @@
1
- import { Program } from "@coral-xyz/anchor";
2
- import { ComputeBudgetProgram, Keypair, Transaction, } from "@solana/web3.js";
3
- import { PriceMath } from "./utils/ammMath.js";
4
- import { IDL as AutocratIDL } from "./types/autocrat.js";
5
- import BN from "bn.js";
6
- import { AMM_PROGRAM_ID, AUTOCRAT_PROGRAM_ID, CONDITIONAL_VAULT_PROGRAM_ID, MAINNET_USDC, USDC_DECIMALS, } from "./constants.js";
7
- import { DEFAULT_CU_PRICE, InstructionUtils, MaxCUs, getAmmAddr, getAmmLpMintAddr, getDaoTreasuryAddr, getProposalAddr, getVaultAddr, getVaultFinalizeMintAddr, getVaultRevertMintAddr, } from "./utils/index.js";
8
- import { ConditionalVaultClient } from "./ConditionalVaultClient.js";
9
- import { AmmClient } from "./AmmClient.js";
10
- import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, unpackMint, } from "@solana/spl-token";
11
- export class AutocratClient {
12
- provider;
13
- autocrat;
14
- vaultClient;
15
- ammClient;
16
- luts;
17
- constructor(provider, autocratProgramId, conditionalVaultProgramId, ammProgramId, luts) {
18
- this.provider = provider;
19
- this.autocrat = new Program(AutocratIDL, autocratProgramId, provider);
20
- this.vaultClient = ConditionalVaultClient.createClient({
21
- provider,
22
- conditionalVaultProgramId,
23
- });
24
- this.ammClient = AmmClient.createClient({ provider, ammProgramId });
25
- this.luts = luts;
26
- }
27
- static createClient(createAutocratClientParams) {
28
- let { provider, autocratProgramId, conditionalVaultProgramId, ammProgramId, } = createAutocratClientParams;
29
- const luts = [];
30
- return new AutocratClient(provider, autocratProgramId || AUTOCRAT_PROGRAM_ID, conditionalVaultProgramId || CONDITIONAL_VAULT_PROGRAM_ID, ammProgramId || AMM_PROGRAM_ID, luts);
31
- }
32
- async getProposal(proposal) {
33
- return this.autocrat.account.proposal.fetch(proposal);
34
- }
35
- async getDao(dao) {
36
- return this.autocrat.account.dao.fetch(dao);
37
- }
38
- getProposalPdas(proposal, baseMint, quoteMint, dao) {
39
- let vaultProgramId = this.vaultClient.vaultProgram.programId;
40
- const [daoTreasury] = getDaoTreasuryAddr(this.autocrat.programId, dao);
41
- const [baseVault] = getVaultAddr(this.vaultClient.vaultProgram.programId, proposal, baseMint);
42
- const [quoteVault] = getVaultAddr(this.vaultClient.vaultProgram.programId, proposal, quoteMint);
43
- const [passBaseMint] = getVaultFinalizeMintAddr(vaultProgramId, baseVault);
44
- const [passQuoteMint] = getVaultFinalizeMintAddr(vaultProgramId, quoteVault);
45
- const [failBaseMint] = getVaultRevertMintAddr(vaultProgramId, baseVault);
46
- const [failQuoteMint] = getVaultRevertMintAddr(vaultProgramId, quoteVault);
47
- const [passAmm] = getAmmAddr(this.ammClient.program.programId, passBaseMint, passQuoteMint);
48
- const [failAmm] = getAmmAddr(this.ammClient.program.programId, failBaseMint, failQuoteMint);
49
- const [passLp] = getAmmLpMintAddr(this.ammClient.program.programId, passAmm);
50
- const [failLp] = getAmmLpMintAddr(this.ammClient.program.programId, failAmm);
51
- return {
52
- baseVault,
53
- quoteVault,
54
- passBaseMint,
55
- passQuoteMint,
56
- failBaseMint,
57
- failQuoteMint,
58
- passAmm,
59
- failAmm,
60
- passLp,
61
- failLp,
62
- };
63
- }
64
- async initializeDao(tokenMint, tokenPriceUiAmount, minBaseFutarchicLiquidity, minQuoteFutarchicLiquidity, usdcMint = MAINNET_USDC, daoKeypair = Keypair.generate()) {
65
- let tokenDecimals = unpackMint(tokenMint, await this.provider.connection.getAccountInfo(tokenMint)).decimals;
66
- let scaledPrice = PriceMath.getAmmPrice(tokenPriceUiAmount, tokenDecimals, USDC_DECIMALS);
67
- // console.log(
68
- // PriceMath.getHumanPrice(scaledPrice, tokenDecimals, USDC_DECIMALS)
69
- // );
70
- await this.initializeDaoIx(daoKeypair, tokenMint, {
71
- twapInitialObservation: scaledPrice,
72
- twapMaxObservationChangePerUpdate: scaledPrice.divn(50),
73
- minQuoteFutarchicLiquidity: new BN(minQuoteFutarchicLiquidity).mul(new BN(10).pow(new BN(USDC_DECIMALS))),
74
- minBaseFutarchicLiquidity: new BN(minBaseFutarchicLiquidity).mul(new BN(10).pow(new BN(tokenDecimals))),
75
- passThresholdBps: null,
76
- slotsPerProposal: null,
77
- }, usdcMint)
78
- .postInstructions([
79
- ComputeBudgetProgram.setComputeUnitLimit({
80
- units: MaxCUs.initializeDao,
81
- }),
82
- ComputeBudgetProgram.setComputeUnitPrice({
83
- microLamports: DEFAULT_CU_PRICE,
84
- }),
85
- ])
86
- .rpc({ maxRetries: 5 });
87
- return daoKeypair.publicKey;
88
- }
89
- initializeDaoIx(daoKeypair, tokenMint, params, usdcMint = MAINNET_USDC) {
90
- return this.autocrat.methods
91
- .initializeDao(params)
92
- .accounts({
93
- dao: daoKeypair.publicKey,
94
- tokenMint,
95
- usdcMint,
96
- })
97
- .signers([daoKeypair]);
98
- }
99
- async initializeProposal(dao, descriptionUrl, instruction, baseTokensToLP, quoteTokensToLP) {
100
- const storedDao = await this.getDao(dao);
101
- const nonce = new BN(Math.random() * 2 ** 50);
102
- let [proposal] = getProposalAddr(this.autocrat.programId, this.provider.publicKey, nonce);
103
- const { baseVault, quoteVault, passAmm, failAmm, passBaseMint, passQuoteMint, failBaseMint, failQuoteMint, } = this.getProposalPdas(proposal, storedDao.tokenMint, storedDao.usdcMint, dao);
104
- // it's important that these happen in a single atomic transaction
105
- await this.vaultClient
106
- .initializeVaultIx(proposal, storedDao.tokenMint)
107
- .postInstructions(await InstructionUtils.getInstructions(this.vaultClient.initializeVaultIx(proposal, storedDao.usdcMint), this.ammClient.createAmmIx(passBaseMint, passQuoteMint, storedDao.twapInitialObservation, storedDao.twapMaxObservationChangePerUpdate), this.ammClient.createAmmIx(failBaseMint, failQuoteMint, storedDao.twapInitialObservation, storedDao.twapMaxObservationChangePerUpdate)))
108
- .rpc();
109
- await this.vaultClient
110
- .mintConditionalTokensIx(baseVault, storedDao.tokenMint, baseTokensToLP)
111
- .postInstructions(await InstructionUtils.getInstructions(this.vaultClient.mintConditionalTokensIx(quoteVault, storedDao.usdcMint, quoteTokensToLP)))
112
- .rpc();
113
- await this.ammClient
114
- .addLiquidityIx(passAmm, passBaseMint, passQuoteMint, quoteTokensToLP, baseTokensToLP, new BN(0))
115
- .postInstructions(await InstructionUtils.getInstructions(this.ammClient.addLiquidityIx(failAmm, failBaseMint, failQuoteMint, quoteTokensToLP, baseTokensToLP, new BN(0))))
116
- .rpc();
117
- // this is how many original tokens are created
118
- const lpTokens = quoteTokensToLP;
119
- await this.initializeProposalIx(descriptionUrl, instruction, dao, storedDao.tokenMint, storedDao.usdcMint, lpTokens, lpTokens, nonce).rpc();
120
- return proposal;
121
- }
122
- async createProposalTxAndPDAs(dao, descriptionUrl, instruction, baseTokensToLP, quoteTokensToLP) {
123
- const storedDao = await this.getDao(dao);
124
- const nonce = new BN(Math.random() * 2 ** 50);
125
- let [proposal] = getProposalAddr(this.autocrat.programId, this.provider.publicKey, nonce);
126
- const { baseVault, quoteVault, passAmm, failAmm, passBaseMint, passQuoteMint, failBaseMint, failQuoteMint, } = this.getProposalPdas(proposal, storedDao.tokenMint, storedDao.usdcMint, dao);
127
- // it's important that these happen in a single atomic transaction
128
- const initVaultTx = await this.vaultClient
129
- .initializeVaultIx(proposal, storedDao.tokenMint)
130
- .postInstructions(await InstructionUtils.getInstructions(this.vaultClient.initializeVaultIx(proposal, storedDao.usdcMint), this.ammClient.createAmmIx(passBaseMint, passQuoteMint, storedDao.twapInitialObservation, storedDao.twapMaxObservationChangePerUpdate), this.ammClient.createAmmIx(failBaseMint, failQuoteMint, storedDao.twapInitialObservation, storedDao.twapMaxObservationChangePerUpdate)))
131
- .transaction();
132
- const mintConditionalTokensTx = await this.vaultClient
133
- .mintConditionalTokensIx(baseVault, storedDao.tokenMint, baseTokensToLP)
134
- .postInstructions(await InstructionUtils.getInstructions(this.vaultClient.mintConditionalTokensIx(quoteVault, storedDao.usdcMint, quoteTokensToLP)))
135
- .transaction();
136
- const addLiquidityTx = await this.ammClient
137
- .addLiquidityIx(passAmm, passBaseMint, passQuoteMint, quoteTokensToLP, baseTokensToLP, new BN(0))
138
- .postInstructions(await InstructionUtils.getInstructions(this.ammClient.addLiquidityIx(failAmm, failBaseMint, failQuoteMint, quoteTokensToLP, baseTokensToLP, new BN(0))))
139
- .transaction();
140
- // this is how many original tokens are created
141
- const lpTokens = quoteTokensToLP;
142
- const initTx = await this.initializeProposalIx(descriptionUrl, instruction, dao, storedDao.tokenMint, storedDao.usdcMint, lpTokens, lpTokens, nonce).transaction();
143
- return [
144
- [initVaultTx, mintConditionalTokensTx, addLiquidityTx, initTx],
145
- {
146
- baseCondVaultAcct: baseVault,
147
- quoteCondVaultAcct: quoteVault,
148
- failMarketAcct: failAmm,
149
- passMarketAcct: passAmm,
150
- proposalAcct: proposal,
151
- },
152
- ];
153
- }
154
- initializeProposalIx(descriptionUrl, instruction, dao, baseMint, quoteMint, passLpTokensToLock, failLpTokensToLock, nonce) {
155
- let [proposal] = getProposalAddr(this.autocrat.programId, this.provider.publicKey, nonce);
156
- const [daoTreasury] = getDaoTreasuryAddr(this.autocrat.programId, dao);
157
- const { baseVault, quoteVault, passAmm, failAmm } = this.getProposalPdas(proposal, baseMint, quoteMint, dao);
158
- const [passLp] = getAmmLpMintAddr(this.ammClient.program.programId, passAmm);
159
- const [failLp] = getAmmLpMintAddr(this.ammClient.program.programId, failAmm);
160
- const passLpVaultAccount = getAssociatedTokenAddressSync(passLp, daoTreasury, true);
161
- const failLpVaultAccount = getAssociatedTokenAddressSync(failLp, daoTreasury, true);
162
- return this.autocrat.methods
163
- .initializeProposal({
164
- descriptionUrl,
165
- instruction,
166
- passLpTokensToLock,
167
- failLpTokensToLock,
168
- nonce,
169
- })
170
- .accounts({
171
- proposal,
172
- dao,
173
- baseVault,
174
- quoteVault,
175
- passAmm,
176
- failAmm,
177
- passLpMint: passLp,
178
- failLpMint: failLp,
179
- passLpUserAccount: getAssociatedTokenAddressSync(passLp, this.provider.publicKey),
180
- failLpUserAccount: getAssociatedTokenAddressSync(failLp, this.provider.publicKey),
181
- passLpVaultAccount,
182
- failLpVaultAccount,
183
- proposer: this.provider.publicKey,
184
- })
185
- .preInstructions([
186
- createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, passLpVaultAccount, daoTreasury, passLp),
187
- createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, failLpVaultAccount, daoTreasury, failLp),
188
- ]);
189
- }
190
- async finalizeProposal(proposal) {
191
- let storedProposal = await this.getProposal(proposal);
192
- let storedDao = await this.getDao(storedProposal.dao);
193
- return this.finalizeProposalIx(proposal, storedProposal.instruction, storedProposal.dao, storedDao.tokenMint, storedDao.usdcMint, storedProposal.proposer).rpc();
194
- }
195
- finalizeProposalIx(proposal, instruction, dao, daoToken, usdc, proposer) {
196
- let vaultProgramId = this.vaultClient.vaultProgram.programId;
197
- const [daoTreasury] = getDaoTreasuryAddr(this.autocrat.programId, dao);
198
- const { baseVault, quoteVault, passAmm, failAmm } = this.getProposalPdas(proposal, daoToken, usdc, dao);
199
- const [passLp] = getAmmLpMintAddr(this.ammClient.program.programId, passAmm);
200
- const [failLp] = getAmmLpMintAddr(this.ammClient.program.programId, failAmm);
201
- return this.autocrat.methods.finalizeProposal().accounts({
202
- proposal,
203
- passAmm,
204
- failAmm,
205
- dao,
206
- baseVault,
207
- quoteVault,
208
- passLpUserAccount: getAssociatedTokenAddressSync(passLp, proposer),
209
- failLpUserAccount: getAssociatedTokenAddressSync(failLp, proposer),
210
- passLpVaultAccount: getAssociatedTokenAddressSync(passLp, daoTreasury, true),
211
- failLpVaultAccount: getAssociatedTokenAddressSync(failLp, daoTreasury, true),
212
- vaultProgram: this.vaultClient.vaultProgram.programId,
213
- treasury: daoTreasury,
214
- });
215
- }
216
- async executeProposal(proposal) {
217
- let storedProposal = await this.getProposal(proposal);
218
- return this.executeProposalIx(proposal, storedProposal.dao, storedProposal.instruction).rpc();
219
- }
220
- executeProposalIx(proposal, dao, instruction) {
221
- const [daoTreasury] = getDaoTreasuryAddr(this.autocrat.programId, dao);
222
- return this.autocrat.methods
223
- .executeProposal()
224
- .accounts({
225
- proposal,
226
- dao,
227
- // daoTreasury,
228
- })
229
- .remainingAccounts(instruction.accounts
230
- .concat({
231
- pubkey: instruction.programId,
232
- isWritable: false,
233
- isSigner: false,
234
- })
235
- .map((meta) => meta.pubkey.equals(daoTreasury)
236
- ? { ...meta, isSigner: false }
237
- : meta));
238
- }
239
- // cranks the TWAPs of multiple proposals' markets. there's a limit on the
240
- // number of proposals you can pass in, which I can't determine rn because
241
- // there aren't enough proposals on devnet
242
- async crankProposalMarkets(proposals, priorityFeeMicroLamports) {
243
- const amms = [];
244
- for (const proposal of proposals) {
245
- const storedProposal = await this.getProposal(proposal);
246
- amms.push(storedProposal.passAmm);
247
- amms.push(storedProposal.failAmm);
248
- }
249
- while (true) {
250
- let ixs = [];
251
- for (const amm of amms) {
252
- ixs.push(await this.ammClient.crankThatTwapIx(amm).instruction());
253
- }
254
- let tx = new Transaction();
255
- tx.add(ComputeBudgetProgram.setComputeUnitLimit({ units: 4_000 * ixs.length }));
256
- tx.add(ComputeBudgetProgram.setComputeUnitPrice({
257
- microLamports: priorityFeeMicroLamports,
258
- }));
259
- tx.add(...ixs);
260
- try {
261
- await this.provider.sendAndConfirm(tx);
262
- }
263
- catch (err) {
264
- console.log("err", err);
265
- }
266
- await new Promise((resolve) => setTimeout(resolve, 65 * 1000)); // 65,000 milliseconds = 1 minute and 5 seconds
267
- }
268
- }
269
- }
270
- //# sourceMappingURL=AutocratClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutocratClient.js","sourceRoot":"","sources":["../../src/v0.3/AutocratClient.ts"],"names":[],"mappings":"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"}
@@ -1,281 +0,0 @@
1
- import { AnchorProvider, Program } from "@coral-xyz/anchor";
2
- import { AddressLookupTableAccount, PublicKey } from "@solana/web3.js";
3
- import { ConditionalVault } from "./types/conditional_vault.js";
4
- import BN from "bn.js";
5
- export type CreateVaultClientParams = {
6
- provider: AnchorProvider;
7
- conditionalVaultProgramId?: PublicKey;
8
- };
9
- export declare class ConditionalVaultClient {
10
- readonly provider: AnchorProvider;
11
- readonly vaultProgram: Program<ConditionalVault>;
12
- readonly luts: AddressLookupTableAccount[];
13
- constructor(provider: AnchorProvider, conditionalVaultProgramId: PublicKey, luts: AddressLookupTableAccount[]);
14
- static createClient(createVaultClientParams: CreateVaultClientParams): ConditionalVaultClient;
15
- getVault(vault: PublicKey): Promise<{
16
- status: ({
17
- finalized?: undefined;
18
- reverted?: undefined;
19
- } & {
20
- active: Record<string, never>;
21
- }) | ({
22
- active?: undefined;
23
- reverted?: undefined;
24
- } & {
25
- finalized: Record<string, never>;
26
- }) | ({
27
- active?: undefined;
28
- finalized?: undefined;
29
- } & {
30
- reverted: Record<string, never>;
31
- });
32
- settlementAuthority: PublicKey;
33
- underlyingTokenMint: PublicKey;
34
- underlyingTokenAccount: PublicKey;
35
- conditionalOnFinalizeTokenMint: PublicKey;
36
- conditionalOnRevertTokenMint: PublicKey;
37
- pdaBump: number;
38
- decimals: number;
39
- }>;
40
- mintConditionalTokens(vault: PublicKey, uiAmount: number, user?: PublicKey): Promise<string>;
41
- mintConditionalTokensIx(vault: PublicKey, underlyingTokenMint: PublicKey, amount: BN, user?: PublicKey, payer?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<ConditionalVault, {
42
- name: "mintConditionalTokens";
43
- accounts: [{
44
- name: "vault";
45
- isMut: false;
46
- isSigner: false;
47
- }, {
48
- name: "conditionalOnFinalizeTokenMint";
49
- isMut: true;
50
- isSigner: false;
51
- }, {
52
- name: "conditionalOnRevertTokenMint";
53
- isMut: true;
54
- isSigner: false;
55
- }, {
56
- name: "vaultUnderlyingTokenAccount";
57
- isMut: true;
58
- isSigner: false;
59
- }, {
60
- name: "authority";
61
- isMut: false;
62
- isSigner: true;
63
- }, {
64
- name: "userConditionalOnFinalizeTokenAccount";
65
- isMut: true;
66
- isSigner: false;
67
- }, {
68
- name: "userConditionalOnRevertTokenAccount";
69
- isMut: true;
70
- isSigner: false;
71
- }, {
72
- name: "userUnderlyingTokenAccount";
73
- isMut: true;
74
- isSigner: false;
75
- }, {
76
- name: "tokenProgram";
77
- isMut: false;
78
- isSigner: false;
79
- }];
80
- args: [{
81
- name: "amount";
82
- type: "u64";
83
- }];
84
- } & {
85
- name: "mintConditionalTokens";
86
- }>;
87
- initializeVaultIx(settlementAuthority: PublicKey, underlyingTokenMint: PublicKey, payer?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<ConditionalVault, {
88
- name: "initializeConditionalVault";
89
- accounts: [{
90
- name: "vault";
91
- isMut: true;
92
- isSigner: false;
93
- }, {
94
- name: "underlyingTokenMint";
95
- isMut: false;
96
- isSigner: false;
97
- }, {
98
- name: "conditionalOnFinalizeTokenMint";
99
- isMut: true;
100
- isSigner: false;
101
- }, {
102
- name: "conditionalOnRevertTokenMint";
103
- isMut: true;
104
- isSigner: false;
105
- }, {
106
- name: "vaultUnderlyingTokenAccount";
107
- isMut: false;
108
- isSigner: false;
109
- }, {
110
- name: "payer";
111
- isMut: true;
112
- isSigner: true;
113
- }, {
114
- name: "tokenProgram";
115
- isMut: false;
116
- isSigner: false;
117
- }, {
118
- name: "associatedTokenProgram";
119
- isMut: false;
120
- isSigner: false;
121
- }, {
122
- name: "systemProgram";
123
- isMut: false;
124
- isSigner: false;
125
- }];
126
- args: [{
127
- name: "args";
128
- type: {
129
- defined: "InitializeConditionalVaultArgs";
130
- };
131
- }];
132
- } & {
133
- name: "initializeConditionalVault";
134
- }>;
135
- addMetadataToConditionalTokensIx(vault: PublicKey, underlyingTokenMint: PublicKey, proposalNumber: number, onFinalizeUri: string, onRevertUri: string, payer?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<ConditionalVault, {
136
- name: "addMetadataToConditionalTokens";
137
- accounts: [{
138
- name: "payer";
139
- isMut: true;
140
- isSigner: true;
141
- }, {
142
- name: "vault";
143
- isMut: true;
144
- isSigner: false;
145
- }, {
146
- name: "underlyingTokenMint";
147
- isMut: true;
148
- isSigner: false;
149
- }, {
150
- name: "underlyingTokenMetadata";
151
- isMut: false;
152
- isSigner: false;
153
- }, {
154
- name: "conditionalOnFinalizeTokenMint";
155
- isMut: true;
156
- isSigner: false;
157
- }, {
158
- name: "conditionalOnRevertTokenMint";
159
- isMut: true;
160
- isSigner: false;
161
- }, {
162
- name: "conditionalOnFinalizeTokenMetadata";
163
- isMut: true;
164
- isSigner: false;
165
- }, {
166
- name: "conditionalOnRevertTokenMetadata";
167
- isMut: true;
168
- isSigner: false;
169
- }, {
170
- name: "tokenMetadataProgram";
171
- isMut: false;
172
- isSigner: false;
173
- }, {
174
- name: "systemProgram";
175
- isMut: false;
176
- isSigner: false;
177
- }, {
178
- name: "rent";
179
- isMut: false;
180
- isSigner: false;
181
- }];
182
- args: [{
183
- name: "args";
184
- type: {
185
- defined: "AddMetadataToConditionalTokensArgs";
186
- };
187
- }];
188
- } & {
189
- name: "addMetadataToConditionalTokens";
190
- }>;
191
- redeemConditionalTokensIx(vault: PublicKey, underlyingTokenMint: PublicKey, user?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<ConditionalVault, {
192
- name: "redeemConditionalTokensForUnderlyingTokens";
193
- accounts: [{
194
- name: "vault";
195
- isMut: false;
196
- isSigner: false;
197
- }, {
198
- name: "conditionalOnFinalizeTokenMint";
199
- isMut: true;
200
- isSigner: false;
201
- }, {
202
- name: "conditionalOnRevertTokenMint";
203
- isMut: true;
204
- isSigner: false;
205
- }, {
206
- name: "vaultUnderlyingTokenAccount";
207
- isMut: true;
208
- isSigner: false;
209
- }, {
210
- name: "authority";
211
- isMut: false;
212
- isSigner: true;
213
- }, {
214
- name: "userConditionalOnFinalizeTokenAccount";
215
- isMut: true;
216
- isSigner: false;
217
- }, {
218
- name: "userConditionalOnRevertTokenAccount";
219
- isMut: true;
220
- isSigner: false;
221
- }, {
222
- name: "userUnderlyingTokenAccount";
223
- isMut: true;
224
- isSigner: false;
225
- }, {
226
- name: "tokenProgram";
227
- isMut: false;
228
- isSigner: false;
229
- }];
230
- args: [];
231
- } & {
232
- name: "redeemConditionalTokensForUnderlyingTokens";
233
- }>;
234
- mergeConditionalTokensIx(vault: PublicKey, underlyingTokenMint: PublicKey, amount: BN, user?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<ConditionalVault, {
235
- name: "mergeConditionalTokensForUnderlyingTokens";
236
- accounts: [{
237
- name: "vault";
238
- isMut: false;
239
- isSigner: false;
240
- }, {
241
- name: "conditionalOnFinalizeTokenMint";
242
- isMut: true;
243
- isSigner: false;
244
- }, {
245
- name: "conditionalOnRevertTokenMint";
246
- isMut: true;
247
- isSigner: false;
248
- }, {
249
- name: "vaultUnderlyingTokenAccount";
250
- isMut: true;
251
- isSigner: false;
252
- }, {
253
- name: "authority";
254
- isMut: false;
255
- isSigner: true;
256
- }, {
257
- name: "userConditionalOnFinalizeTokenAccount";
258
- isMut: true;
259
- isSigner: false;
260
- }, {
261
- name: "userConditionalOnRevertTokenAccount";
262
- isMut: true;
263
- isSigner: false;
264
- }, {
265
- name: "userUnderlyingTokenAccount";
266
- isMut: true;
267
- isSigner: false;
268
- }, {
269
- name: "tokenProgram";
270
- isMut: false;
271
- isSigner: false;
272
- }];
273
- args: [{
274
- name: "amount";
275
- type: "u64";
276
- }];
277
- } & {
278
- name: "mergeConditionalTokensForUnderlyingTokens";
279
- }>;
280
- initializeVault(settlementAuthority: PublicKey, underlyingTokenMint: PublicKey, payer?: PublicKey): Promise<PublicKey>;
281
- }