@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,186 +0,0 @@
1
- import { Program } from "@coral-xyz/anchor";
2
- import { IDL as AmmIDL } from "./types/amm.js";
3
- import BN from "bn.js";
4
- import { AMM_PROGRAM_ID } from "./constants.js";
5
- import { getAmmLpMintAddr, getAmmAddr } from "./utils/pda.js";
6
- // import { MethodsBuilder } from "@coral-xyz/anchor/dist/cjs/program/namespace/methods";
7
- import { unpackMint, getAssociatedTokenAddressSync, createAssociatedTokenAccountIdempotentInstruction, } from "@solana/spl-token";
8
- import { AmmMath, PriceMath } from "./utils/priceMath.js";
9
- export class AmmClient {
10
- provider;
11
- program;
12
- luts;
13
- constructor(provider, ammProgramId, luts) {
14
- this.provider = provider;
15
- this.program = new Program(AmmIDL, ammProgramId, provider);
16
- this.luts = luts;
17
- }
18
- static createClient(createAutocratClientParams) {
19
- let { provider, ammProgramId: programId } = createAutocratClientParams;
20
- const luts = [];
21
- return new AmmClient(provider, programId || AMM_PROGRAM_ID, luts);
22
- }
23
- getProgramId() {
24
- return this.program.programId;
25
- }
26
- async getAmm(amm) {
27
- return await this.program.account.amm.fetch(amm);
28
- }
29
- async fetchAmm(amm) {
30
- return await this.program.account.amm.fetchNullable(amm);
31
- }
32
- async deserializeAmm(accountInfo) {
33
- return this.program.coder.accounts.decode("amm", accountInfo.data);
34
- }
35
- async createAmm(proposal, baseMint, quoteMint, twapInitialObservation, twapMaxObservationChangePerUpdate) {
36
- if (!twapMaxObservationChangePerUpdate) {
37
- twapMaxObservationChangePerUpdate = twapInitialObservation * 0.02;
38
- }
39
- let [amm] = getAmmAddr(this.getProgramId(), baseMint, quoteMint);
40
- let baseDecimals = unpackMint(baseMint, await this.provider.connection.getAccountInfo(baseMint)).decimals;
41
- let quoteDecimals = unpackMint(quoteMint, await this.provider.connection.getAccountInfo(quoteMint)).decimals;
42
- let [twapFirstObservationScaled, twapMaxObservationChangePerUpdateScaled] = PriceMath.getAmmPrices(baseDecimals, quoteDecimals, twapInitialObservation, twapMaxObservationChangePerUpdate);
43
- await this.initializeAmmIx(baseMint, quoteMint, twapFirstObservationScaled, twapMaxObservationChangePerUpdateScaled).rpc();
44
- return amm;
45
- }
46
- // both twap values need to be scaled beforehand
47
- initializeAmmIx(baseMint, quoteMint, twapInitialObservation, twapMaxObservationChangePerUpdate) {
48
- let [amm] = getAmmAddr(this.getProgramId(), baseMint, quoteMint);
49
- let [lpMint] = getAmmLpMintAddr(this.getProgramId(), amm);
50
- let vaultAtaBase = getAssociatedTokenAddressSync(baseMint, amm, true);
51
- let vaultAtaQuote = getAssociatedTokenAddressSync(quoteMint, amm, true);
52
- return this.program.methods
53
- .createAmm({
54
- twapInitialObservation,
55
- twapMaxObservationChangePerUpdate,
56
- })
57
- .accounts({
58
- user: this.provider.publicKey,
59
- amm,
60
- lpMint,
61
- baseMint,
62
- quoteMint,
63
- vaultAtaBase,
64
- vaultAtaQuote,
65
- });
66
- }
67
- async addLiquidity(amm, quoteAmount, baseAmount) {
68
- let storedAmm = await this.getAmm(amm);
69
- let lpMintSupply = unpackMint(storedAmm.lpMint, await this.provider.connection.getAccountInfo(storedAmm.lpMint)).supply;
70
- let quoteAmountCasted;
71
- let baseAmountCasted;
72
- if (quoteAmount != undefined) {
73
- let quoteDecimals = unpackMint(storedAmm.quoteMint, await this.provider.connection.getAccountInfo(storedAmm.quoteMint)).decimals;
74
- quoteAmountCasted = new BN(quoteAmount).mul(new BN(10).pow(new BN(quoteDecimals)));
75
- }
76
- if (baseAmount != undefined) {
77
- let baseDecimals = unpackMint(storedAmm.baseMint, await this.provider.connection.getAccountInfo(storedAmm.baseMint)).decimals;
78
- baseAmountCasted = new BN(baseAmount).mul(new BN(10).pow(new BN(baseDecimals)));
79
- }
80
- if (lpMintSupply == 0n) {
81
- if (quoteAmount == undefined || baseAmount == undefined) {
82
- throw new Error("No pool created yet, you need to specify both base and quote");
83
- }
84
- // console.log(quoteAmountCasted?.toString());
85
- // console.log(baseAmountCasted?.toString())
86
- return await this.addLiquidityIx(amm, storedAmm.baseMint, storedAmm.quoteMint, quoteAmountCasted, baseAmountCasted, new BN(0)).rpc();
87
- }
88
- // quoteAmount == undefined ? undefined : new BN(quoteAmount);
89
- // let baseAmountCasted: BN | undefined =
90
- // baseAmount == undefined ? undefined : new BN(baseAmount);
91
- let sim = AmmMath.simulateAddLiquidity(storedAmm.baseAmount, storedAmm.quoteAmount, Number(lpMintSupply), baseAmountCasted, quoteAmountCasted);
92
- await this.addLiquidityIx(amm, storedAmm.baseMint, storedAmm.quoteMint, sim.quoteAmount, sim.baseAmount, sim.expectedLpTokens).rpc();
93
- }
94
- addLiquidityIx(amm, baseMint, quoteMint, quoteAmount, maxBaseAmount, minLpTokens, user = this.provider.publicKey) {
95
- const [lpMint] = getAmmLpMintAddr(this.program.programId, amm);
96
- const userLpAccount = getAssociatedTokenAddressSync(lpMint, user);
97
- return this.program.methods
98
- .addLiquidity({
99
- quoteAmount,
100
- maxBaseAmount,
101
- minLpTokens,
102
- })
103
- .accounts({
104
- user,
105
- amm,
106
- lpMint,
107
- userLpAccount,
108
- userBaseAccount: getAssociatedTokenAddressSync(baseMint, user),
109
- userQuoteAccount: getAssociatedTokenAddressSync(quoteMint, user),
110
- vaultAtaBase: getAssociatedTokenAddressSync(baseMint, amm, true),
111
- vaultAtaQuote: getAssociatedTokenAddressSync(quoteMint, amm, true),
112
- })
113
- .preInstructions([
114
- createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, userLpAccount, this.provider.publicKey, lpMint),
115
- ]);
116
- }
117
- removeLiquidityIx(ammAddr, baseMint, quoteMint, lpTokensToBurn, minBaseAmount, minQuoteAmount) {
118
- const [lpMint] = getAmmLpMintAddr(this.program.programId, ammAddr);
119
- return this.program.methods
120
- .removeLiquidity({
121
- lpTokensToBurn,
122
- minBaseAmount,
123
- minQuoteAmount,
124
- })
125
- .accounts({
126
- user: this.provider.publicKey,
127
- amm: ammAddr,
128
- lpMint,
129
- userLpAccount: getAssociatedTokenAddressSync(lpMint, this.provider.publicKey),
130
- userBaseAccount: getAssociatedTokenAddressSync(baseMint, this.provider.publicKey),
131
- userQuoteAccount: getAssociatedTokenAddressSync(quoteMint, this.provider.publicKey),
132
- vaultAtaBase: getAssociatedTokenAddressSync(baseMint, ammAddr, true),
133
- vaultAtaQuote: getAssociatedTokenAddressSync(quoteMint, ammAddr, true),
134
- });
135
- }
136
- async swap(amm, swapType, inputAmount, outputAmountMin) {
137
- const storedAmm = await this.getAmm(amm);
138
- let quoteDecimals = await this.getDecimals(storedAmm.quoteMint);
139
- let baseDecimals = await this.getDecimals(storedAmm.baseMint);
140
- let inputAmountScaled;
141
- let outputAmountMinScaled;
142
- if (swapType.buy) {
143
- inputAmountScaled = PriceMath.scale(inputAmount, quoteDecimals);
144
- outputAmountMinScaled = PriceMath.scale(outputAmountMin, baseDecimals);
145
- }
146
- else {
147
- inputAmountScaled = PriceMath.scale(inputAmount, baseDecimals);
148
- outputAmountMinScaled = PriceMath.scale(outputAmountMin, quoteDecimals);
149
- }
150
- return await this.swapIx(amm, storedAmm.baseMint, storedAmm.quoteMint, swapType, inputAmountScaled, outputAmountMinScaled).rpc();
151
- }
152
- swapIx(amm, baseMint, quoteMint, swapType, inputAmount, outputAmountMin, user = this.provider.publicKey) {
153
- const receivingToken = swapType.buy ? baseMint : quoteMint;
154
- return this.program.methods
155
- .swap({
156
- swapType,
157
- inputAmount,
158
- outputAmountMin,
159
- })
160
- .accounts({
161
- user,
162
- amm,
163
- userBaseAccount: getAssociatedTokenAddressSync(baseMint, user, true),
164
- userQuoteAccount: getAssociatedTokenAddressSync(quoteMint, user, true),
165
- vaultAtaBase: getAssociatedTokenAddressSync(baseMint, amm, true),
166
- vaultAtaQuote: getAssociatedTokenAddressSync(quoteMint, amm, true),
167
- })
168
- .preInstructions([
169
- // create the receiving token account if it doesn't exist
170
- createAssociatedTokenAccountIdempotentInstruction(this.provider.publicKey, getAssociatedTokenAddressSync(receivingToken, user), user, receivingToken),
171
- ]);
172
- }
173
- async crankThatTwap(amm) {
174
- return this.crankThatTwapIx(amm).rpc();
175
- }
176
- crankThatTwapIx(amm) {
177
- return this.program.methods.crankThatTwap().accounts({
178
- amm,
179
- });
180
- }
181
- async getDecimals(mint) {
182
- return unpackMint(mint, await this.provider.connection.getAccountInfo(mint))
183
- .decimals;
184
- }
185
- }
186
- //# sourceMappingURL=AmmClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AmmClient.js","sourceRoot":"","sources":["../../src/v0.4/AmmClient.ts"],"names":[],"mappings":"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"}
@@ -1,234 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { AnchorProvider, Program } from "@coral-xyz/anchor";
3
- import { AccountInfo, AddressLookupTableAccount, Keypair, PublicKey } from "@solana/web3.js";
4
- import { ProposalInstruction, InitializeDaoParams } from "./types/index.js";
5
- import { Autocrat } from "./types/autocrat.js";
6
- import BN from "bn.js";
7
- import { ConditionalVaultClient } from "./ConditionalVaultClient.js";
8
- import { AmmClient } from "./AmmClient.js";
9
- import { Dao, Proposal } from "./types/index.js";
10
- export type CreateClientParams = {
11
- provider: AnchorProvider;
12
- autocratProgramId?: PublicKey;
13
- conditionalVaultProgramId?: PublicKey;
14
- ammProgramId?: PublicKey;
15
- };
16
- export type ProposalVaults = {
17
- baseVault: PublicKey;
18
- quoteVault: PublicKey;
19
- };
20
- export declare class AutocratClient {
21
- readonly provider: AnchorProvider;
22
- readonly autocrat: Program<Autocrat>;
23
- readonly vaultClient: ConditionalVaultClient;
24
- readonly ammClient: AmmClient;
25
- readonly luts: AddressLookupTableAccount[];
26
- constructor(provider: AnchorProvider, autocratProgramId: PublicKey, conditionalVaultProgramId: PublicKey, ammProgramId: PublicKey, luts: AddressLookupTableAccount[]);
27
- static createClient(createAutocratClientParams: CreateClientParams): AutocratClient;
28
- getProposal(proposal: PublicKey): Promise<Proposal>;
29
- getDao(dao: PublicKey): Promise<Dao>;
30
- fetchProposal(proposal: PublicKey): Promise<Proposal | null>;
31
- fetchDao(dao: PublicKey): Promise<Dao | null>;
32
- deserializeProposal(accountInfo: AccountInfo<Buffer>): Promise<Proposal>;
33
- deserializeDao(accountInfo: AccountInfo<Buffer>): Promise<Dao>;
34
- getProposalPdas(proposal: PublicKey, baseMint: PublicKey, quoteMint: PublicKey, dao: PublicKey): {
35
- question: PublicKey;
36
- baseVault: PublicKey;
37
- quoteVault: PublicKey;
38
- passBaseMint: PublicKey;
39
- passQuoteMint: PublicKey;
40
- failBaseMint: PublicKey;
41
- failQuoteMint: PublicKey;
42
- passAmm: PublicKey;
43
- failAmm: PublicKey;
44
- passLp: PublicKey;
45
- failLp: PublicKey;
46
- };
47
- initializeDao(tokenMint: PublicKey, tokenPriceUiAmount: number, minBaseFutarchicLiquidity: number, minQuoteFutarchicLiquidity: number, usdcMint?: PublicKey, daoKeypair?: Keypair): Promise<PublicKey>;
48
- initializeDaoIx(daoKeypair: Keypair, tokenMint: PublicKey, params: InitializeDaoParams, usdcMint?: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Autocrat, {
49
- name: "initializeDao";
50
- accounts: [{
51
- name: "dao";
52
- isMut: true;
53
- isSigner: true;
54
- }, {
55
- name: "payer";
56
- isMut: true;
57
- isSigner: true;
58
- }, {
59
- name: "systemProgram";
60
- isMut: false;
61
- isSigner: false;
62
- }, {
63
- name: "tokenMint";
64
- isMut: false;
65
- isSigner: false;
66
- }, {
67
- name: "usdcMint";
68
- isMut: false;
69
- isSigner: false;
70
- }];
71
- args: [{
72
- name: "params";
73
- type: {
74
- defined: "InitializeDaoParams";
75
- };
76
- }];
77
- } & {
78
- name: "initializeDao";
79
- }>;
80
- initializeProposal(dao: PublicKey, descriptionUrl: string, instruction: ProposalInstruction, baseTokensToLP: BN, quoteTokensToLP: BN): Promise<PublicKey>;
81
- initializeProposalIx(descriptionUrl: string, instruction: ProposalInstruction, dao: PublicKey, baseMint: PublicKey, quoteMint: PublicKey, passLpTokensToLock: BN, failLpTokensToLock: BN, nonce: BN, question: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Autocrat, {
82
- name: "initializeProposal";
83
- accounts: [{
84
- name: "proposal";
85
- isMut: true;
86
- isSigner: false;
87
- }, {
88
- name: "dao";
89
- isMut: true;
90
- isSigner: false;
91
- }, {
92
- name: "question";
93
- isMut: false;
94
- isSigner: false;
95
- }, {
96
- name: "quoteVault";
97
- isMut: false;
98
- isSigner: false;
99
- }, {
100
- name: "baseVault";
101
- isMut: false;
102
- isSigner: false;
103
- }, {
104
- name: "passAmm";
105
- isMut: false;
106
- isSigner: false;
107
- }, {
108
- name: "passLpMint";
109
- isMut: false;
110
- isSigner: false;
111
- }, {
112
- name: "failLpMint";
113
- isMut: false;
114
- isSigner: false;
115
- }, {
116
- name: "failAmm";
117
- isMut: false;
118
- isSigner: false;
119
- }, {
120
- name: "passLpUserAccount";
121
- isMut: true;
122
- isSigner: false;
123
- }, {
124
- name: "failLpUserAccount";
125
- isMut: true;
126
- isSigner: false;
127
- }, {
128
- name: "passLpVaultAccount";
129
- isMut: true;
130
- isSigner: false;
131
- }, {
132
- name: "failLpVaultAccount";
133
- isMut: true;
134
- isSigner: false;
135
- }, {
136
- name: "proposer";
137
- isMut: true;
138
- isSigner: true;
139
- }, {
140
- name: "tokenProgram";
141
- isMut: false;
142
- isSigner: false;
143
- }, {
144
- name: "systemProgram";
145
- isMut: false;
146
- isSigner: false;
147
- }];
148
- args: [{
149
- name: "params";
150
- type: {
151
- defined: "InitializeProposalParams";
152
- };
153
- }];
154
- } & {
155
- name: "initializeProposal";
156
- }>;
157
- finalizeProposal(proposal: PublicKey): Promise<string>;
158
- finalizeProposalIx(proposal: PublicKey, instruction: any, dao: PublicKey, daoToken: PublicKey, usdc: PublicKey, proposer: PublicKey): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Autocrat, {
159
- name: "finalizeProposal";
160
- accounts: [{
161
- name: "proposal";
162
- isMut: true;
163
- isSigner: false;
164
- }, {
165
- name: "passAmm";
166
- isMut: false;
167
- isSigner: false;
168
- }, {
169
- name: "failAmm";
170
- isMut: false;
171
- isSigner: false;
172
- }, {
173
- name: "dao";
174
- isMut: false;
175
- isSigner: false;
176
- }, {
177
- name: "question";
178
- isMut: true;
179
- isSigner: false;
180
- }, {
181
- name: "treasury";
182
- isMut: false;
183
- isSigner: false;
184
- }, {
185
- name: "passLpUserAccount";
186
- isMut: true;
187
- isSigner: false;
188
- }, {
189
- name: "failLpUserAccount";
190
- isMut: true;
191
- isSigner: false;
192
- }, {
193
- name: "passLpVaultAccount";
194
- isMut: true;
195
- isSigner: false;
196
- }, {
197
- name: "failLpVaultAccount";
198
- isMut: true;
199
- isSigner: false;
200
- }, {
201
- name: "tokenProgram";
202
- isMut: false;
203
- isSigner: false;
204
- }, {
205
- name: "vaultProgram";
206
- isMut: false;
207
- isSigner: false;
208
- }, {
209
- name: "vaultEventAuthority";
210
- isMut: false;
211
- isSigner: false;
212
- }];
213
- args: [];
214
- } & {
215
- name: "finalizeProposal";
216
- }>;
217
- executeProposal(proposal: PublicKey): Promise<string>;
218
- executeProposalIx(proposal: PublicKey, dao: PublicKey, instruction: any): import("@coral-xyz/anchor/dist/cjs/program/namespace/methods.js").MethodsBuilder<Autocrat, {
219
- name: "executeProposal";
220
- accounts: [{
221
- name: "proposal";
222
- isMut: true;
223
- isSigner: false;
224
- }, {
225
- name: "dao";
226
- isMut: false;
227
- isSigner: false;
228
- }];
229
- args: [];
230
- } & {
231
- name: "executeProposal";
232
- }>;
233
- crankProposalMarkets(proposals: PublicKey[], priorityFeeMicroLamports: number): Promise<void>;
234
- }