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

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