@metadaoproject/futarchy 0.4.0-alpha.6 → 0.4.0-alpha.61

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 (95) hide show
  1. package/dist/v0.3/AmmClient.d.ts +223 -0
  2. package/dist/v0.3/AmmClient.js +186 -0
  3. package/dist/v0.3/AmmClient.js.map +1 -0
  4. package/dist/v0.3/AutocratClient.d.ts +234 -0
  5. package/dist/v0.3/AutocratClient.js +271 -0
  6. package/dist/v0.3/AutocratClient.js.map +1 -0
  7. package/dist/v0.3/ConditionalVaultClient.d.ts +281 -0
  8. package/dist/v0.3/ConditionalVaultClient.js +135 -0
  9. package/dist/v0.3/ConditionalVaultClient.js.map +1 -0
  10. package/dist/v0.3/FutarchyClient.d.ts +27 -0
  11. package/dist/v0.3/FutarchyClient.js +57 -0
  12. package/dist/v0.3/FutarchyClient.js.map +1 -0
  13. package/dist/v0.3/constants.d.ts +9 -0
  14. package/dist/v0.3/constants.js +10 -0
  15. package/dist/v0.3/constants.js.map +1 -0
  16. package/dist/v0.3/index.d.ts +7 -0
  17. package/dist/v0.3/index.js +8 -0
  18. package/dist/v0.3/index.js.map +1 -0
  19. package/dist/v0.3/types/amm.d.ts +542 -0
  20. package/dist/v0.3/types/amm.js +542 -0
  21. package/dist/v0.3/types/amm.js.map +1 -0
  22. package/dist/v0.3/types/autocrat.d.ts +632 -0
  23. package/dist/v0.3/types/autocrat.js +632 -0
  24. package/dist/v0.3/types/autocrat.js.map +1 -0
  25. package/dist/v0.3/types/conditional_vault.d.ts +448 -0
  26. package/dist/v0.3/types/conditional_vault.js +448 -0
  27. package/dist/v0.3/types/conditional_vault.js.map +1 -0
  28. package/dist/v0.3/types/index.d.ts +21 -0
  29. package/dist/v0.3/types/index.js +4 -0
  30. package/dist/v0.3/types/index.js.map +1 -0
  31. package/dist/v0.3/types/utils.d.ts +3 -0
  32. package/dist/v0.3/types/utils.js +2 -0
  33. package/dist/v0.3/types/utils.js.map +1 -0
  34. package/dist/v0.3/utils/ammMath.d.ts +39 -0
  35. package/dist/v0.3/utils/ammMath.js +142 -0
  36. package/dist/v0.3/utils/ammMath.js.map +1 -0
  37. package/dist/v0.3/utils/cu.d.ts +10 -0
  38. package/dist/v0.3/utils/cu.js +11 -0
  39. package/dist/v0.3/utils/cu.js.map +1 -0
  40. package/dist/v0.3/utils/filters.d.ts +3 -0
  41. package/dist/v0.3/utils/filters.js +14 -0
  42. package/dist/v0.3/utils/filters.js.map +1 -0
  43. package/dist/v0.3/utils/index.d.ts +16 -0
  44. package/dist/v0.3/utils/index.js +30 -0
  45. package/dist/v0.3/utils/index.js.map +1 -0
  46. package/dist/v0.3/utils/instruction.d.ts +4 -0
  47. package/dist/v0.3/utils/instruction.js +10 -0
  48. package/dist/v0.3/utils/instruction.js.map +1 -0
  49. package/dist/v0.3/utils/metadata.d.ts +4 -0
  50. package/dist/v0.3/utils/metadata.js +26 -0
  51. package/dist/v0.3/utils/metadata.js.map +1 -0
  52. package/dist/v0.3/utils/pda.d.ts +10 -0
  53. package/dist/v0.3/utils/pda.js +47 -0
  54. package/dist/v0.3/utils/pda.js.map +1 -0
  55. package/dist/v0.4/AmmClient.d.ts +42 -25
  56. package/dist/v0.4/AmmClient.js +8 -99
  57. package/dist/v0.4/AmmClient.js.map +1 -1
  58. package/dist/v0.4/AutocratClient.d.ts +39 -2
  59. package/dist/v0.4/AutocratClient.js +19 -11
  60. package/dist/v0.4/AutocratClient.js.map +1 -1
  61. package/dist/v0.4/ConditionalVaultClient.d.ts +66 -10
  62. package/dist/v0.4/ConditionalVaultClient.js +17 -33
  63. package/dist/v0.4/ConditionalVaultClient.js.map +1 -1
  64. package/dist/v0.4/LaunchpadClient.d.ts +416 -0
  65. package/dist/v0.4/LaunchpadClient.js +198 -0
  66. package/dist/v0.4/LaunchpadClient.js.map +1 -0
  67. package/dist/v0.4/constants.d.ts +10 -0
  68. package/dist/v0.4/constants.js +18 -3
  69. package/dist/v0.4/constants.js.map +1 -1
  70. package/dist/v0.4/index.d.ts +1 -0
  71. package/dist/v0.4/index.js +1 -0
  72. package/dist/v0.4/index.js.map +1 -1
  73. package/dist/v0.4/types/amm.d.ts +279 -2
  74. package/dist/v0.4/types/amm.js +279 -2
  75. package/dist/v0.4/types/amm.js.map +1 -1
  76. package/dist/v0.4/types/autocrat.d.ts +379 -8
  77. package/dist/v0.4/types/autocrat.js +379 -8
  78. package/dist/v0.4/types/autocrat.js.map +1 -1
  79. package/dist/v0.4/types/conditional_vault.d.ts +416 -4
  80. package/dist/v0.4/types/conditional_vault.js +416 -4
  81. package/dist/v0.4/types/conditional_vault.js.map +1 -1
  82. package/dist/v0.4/types/index.d.ts +32 -1
  83. package/dist/v0.4/types/index.js +2 -0
  84. package/dist/v0.4/types/index.js.map +1 -1
  85. package/dist/v0.4/types/launchpad.d.ts +1000 -0
  86. package/dist/v0.4/types/launchpad.js +1000 -0
  87. package/dist/v0.4/types/launchpad.js.map +1 -0
  88. package/dist/v0.4/utils/cu.js +1 -1
  89. package/dist/v0.4/utils/pda.d.ts +16 -3
  90. package/dist/v0.4/utils/pda.js +39 -11
  91. package/dist/v0.4/utils/pda.js.map +1 -1
  92. package/dist/v0.4/utils/priceMath.d.ts +51 -9
  93. package/dist/v0.4/utils/priceMath.js +102 -38
  94. package/dist/v0.4/utils/priceMath.js.map +1 -1
  95. package/package.json +2 -1
@@ -0,0 +1,448 @@
1
+ export const IDL = {
2
+ version: "0.3.0",
3
+ name: "conditional_vault",
4
+ instructions: [
5
+ {
6
+ name: "initializeConditionalVault",
7
+ accounts: [
8
+ {
9
+ name: "vault",
10
+ isMut: true,
11
+ isSigner: false,
12
+ },
13
+ {
14
+ name: "underlyingTokenMint",
15
+ isMut: false,
16
+ isSigner: false,
17
+ },
18
+ {
19
+ name: "conditionalOnFinalizeTokenMint",
20
+ isMut: true,
21
+ isSigner: false,
22
+ },
23
+ {
24
+ name: "conditionalOnRevertTokenMint",
25
+ isMut: true,
26
+ isSigner: false,
27
+ },
28
+ {
29
+ name: "vaultUnderlyingTokenAccount",
30
+ isMut: false,
31
+ isSigner: false,
32
+ },
33
+ {
34
+ name: "payer",
35
+ isMut: true,
36
+ isSigner: true,
37
+ },
38
+ {
39
+ name: "tokenProgram",
40
+ isMut: false,
41
+ isSigner: false,
42
+ },
43
+ {
44
+ name: "associatedTokenProgram",
45
+ isMut: false,
46
+ isSigner: false,
47
+ },
48
+ {
49
+ name: "systemProgram",
50
+ isMut: false,
51
+ isSigner: false,
52
+ },
53
+ ],
54
+ args: [
55
+ {
56
+ name: "args",
57
+ type: {
58
+ defined: "InitializeConditionalVaultArgs",
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ {
64
+ name: "addMetadataToConditionalTokens",
65
+ accounts: [
66
+ {
67
+ name: "payer",
68
+ isMut: true,
69
+ isSigner: true,
70
+ },
71
+ {
72
+ name: "vault",
73
+ isMut: true,
74
+ isSigner: false,
75
+ },
76
+ {
77
+ name: "underlyingTokenMint",
78
+ isMut: true,
79
+ isSigner: false,
80
+ },
81
+ {
82
+ name: "underlyingTokenMetadata",
83
+ isMut: false,
84
+ isSigner: false,
85
+ },
86
+ {
87
+ name: "conditionalOnFinalizeTokenMint",
88
+ isMut: true,
89
+ isSigner: false,
90
+ },
91
+ {
92
+ name: "conditionalOnRevertTokenMint",
93
+ isMut: true,
94
+ isSigner: false,
95
+ },
96
+ {
97
+ name: "conditionalOnFinalizeTokenMetadata",
98
+ isMut: true,
99
+ isSigner: false,
100
+ },
101
+ {
102
+ name: "conditionalOnRevertTokenMetadata",
103
+ isMut: true,
104
+ isSigner: false,
105
+ },
106
+ {
107
+ name: "tokenMetadataProgram",
108
+ isMut: false,
109
+ isSigner: false,
110
+ },
111
+ {
112
+ name: "systemProgram",
113
+ isMut: false,
114
+ isSigner: false,
115
+ },
116
+ {
117
+ name: "rent",
118
+ isMut: false,
119
+ isSigner: false,
120
+ },
121
+ ],
122
+ args: [
123
+ {
124
+ name: "args",
125
+ type: {
126
+ defined: "AddMetadataToConditionalTokensArgs",
127
+ },
128
+ },
129
+ ],
130
+ },
131
+ {
132
+ name: "settleConditionalVault",
133
+ accounts: [
134
+ {
135
+ name: "settlementAuthority",
136
+ isMut: false,
137
+ isSigner: true,
138
+ },
139
+ {
140
+ name: "vault",
141
+ isMut: true,
142
+ isSigner: false,
143
+ },
144
+ ],
145
+ args: [
146
+ {
147
+ name: "newStatus",
148
+ type: {
149
+ defined: "VaultStatus",
150
+ },
151
+ },
152
+ ],
153
+ },
154
+ {
155
+ name: "mergeConditionalTokensForUnderlyingTokens",
156
+ accounts: [
157
+ {
158
+ name: "vault",
159
+ isMut: false,
160
+ isSigner: false,
161
+ },
162
+ {
163
+ name: "conditionalOnFinalizeTokenMint",
164
+ isMut: true,
165
+ isSigner: false,
166
+ },
167
+ {
168
+ name: "conditionalOnRevertTokenMint",
169
+ isMut: true,
170
+ isSigner: false,
171
+ },
172
+ {
173
+ name: "vaultUnderlyingTokenAccount",
174
+ isMut: true,
175
+ isSigner: false,
176
+ },
177
+ {
178
+ name: "authority",
179
+ isMut: false,
180
+ isSigner: true,
181
+ },
182
+ {
183
+ name: "userConditionalOnFinalizeTokenAccount",
184
+ isMut: true,
185
+ isSigner: false,
186
+ },
187
+ {
188
+ name: "userConditionalOnRevertTokenAccount",
189
+ isMut: true,
190
+ isSigner: false,
191
+ },
192
+ {
193
+ name: "userUnderlyingTokenAccount",
194
+ isMut: true,
195
+ isSigner: false,
196
+ },
197
+ {
198
+ name: "tokenProgram",
199
+ isMut: false,
200
+ isSigner: false,
201
+ },
202
+ ],
203
+ args: [
204
+ {
205
+ name: "amount",
206
+ type: "u64",
207
+ },
208
+ ],
209
+ },
210
+ {
211
+ name: "mintConditionalTokens",
212
+ accounts: [
213
+ {
214
+ name: "vault",
215
+ isMut: false,
216
+ isSigner: false,
217
+ },
218
+ {
219
+ name: "conditionalOnFinalizeTokenMint",
220
+ isMut: true,
221
+ isSigner: false,
222
+ },
223
+ {
224
+ name: "conditionalOnRevertTokenMint",
225
+ isMut: true,
226
+ isSigner: false,
227
+ },
228
+ {
229
+ name: "vaultUnderlyingTokenAccount",
230
+ isMut: true,
231
+ isSigner: false,
232
+ },
233
+ {
234
+ name: "authority",
235
+ isMut: false,
236
+ isSigner: true,
237
+ },
238
+ {
239
+ name: "userConditionalOnFinalizeTokenAccount",
240
+ isMut: true,
241
+ isSigner: false,
242
+ },
243
+ {
244
+ name: "userConditionalOnRevertTokenAccount",
245
+ isMut: true,
246
+ isSigner: false,
247
+ },
248
+ {
249
+ name: "userUnderlyingTokenAccount",
250
+ isMut: true,
251
+ isSigner: false,
252
+ },
253
+ {
254
+ name: "tokenProgram",
255
+ isMut: false,
256
+ isSigner: false,
257
+ },
258
+ ],
259
+ args: [
260
+ {
261
+ name: "amount",
262
+ type: "u64",
263
+ },
264
+ ],
265
+ },
266
+ {
267
+ name: "redeemConditionalTokensForUnderlyingTokens",
268
+ accounts: [
269
+ {
270
+ name: "vault",
271
+ isMut: false,
272
+ isSigner: false,
273
+ },
274
+ {
275
+ name: "conditionalOnFinalizeTokenMint",
276
+ isMut: true,
277
+ isSigner: false,
278
+ },
279
+ {
280
+ name: "conditionalOnRevertTokenMint",
281
+ isMut: true,
282
+ isSigner: false,
283
+ },
284
+ {
285
+ name: "vaultUnderlyingTokenAccount",
286
+ isMut: true,
287
+ isSigner: false,
288
+ },
289
+ {
290
+ name: "authority",
291
+ isMut: false,
292
+ isSigner: true,
293
+ },
294
+ {
295
+ name: "userConditionalOnFinalizeTokenAccount",
296
+ isMut: true,
297
+ isSigner: false,
298
+ },
299
+ {
300
+ name: "userConditionalOnRevertTokenAccount",
301
+ isMut: true,
302
+ isSigner: false,
303
+ },
304
+ {
305
+ name: "userUnderlyingTokenAccount",
306
+ isMut: true,
307
+ isSigner: false,
308
+ },
309
+ {
310
+ name: "tokenProgram",
311
+ isMut: false,
312
+ isSigner: false,
313
+ },
314
+ ],
315
+ args: [],
316
+ },
317
+ ],
318
+ accounts: [
319
+ {
320
+ name: "conditionalVault",
321
+ type: {
322
+ kind: "struct",
323
+ fields: [
324
+ {
325
+ name: "status",
326
+ type: {
327
+ defined: "VaultStatus",
328
+ },
329
+ },
330
+ {
331
+ name: "settlementAuthority",
332
+ docs: [
333
+ "The account that can either finalize the vault to make conditional tokens",
334
+ "redeemable for underlying tokens or revert the vault to make deposit",
335
+ "slips redeemable for underlying tokens.",
336
+ ],
337
+ type: "publicKey",
338
+ },
339
+ {
340
+ name: "underlyingTokenMint",
341
+ docs: ["The mint of the tokens that are deposited into the vault."],
342
+ type: "publicKey",
343
+ },
344
+ {
345
+ name: "underlyingTokenAccount",
346
+ docs: ["The vault's storage account for deposited funds."],
347
+ type: "publicKey",
348
+ },
349
+ {
350
+ name: "conditionalOnFinalizeTokenMint",
351
+ type: "publicKey",
352
+ },
353
+ {
354
+ name: "conditionalOnRevertTokenMint",
355
+ type: "publicKey",
356
+ },
357
+ {
358
+ name: "pdaBump",
359
+ type: "u8",
360
+ },
361
+ {
362
+ name: "decimals",
363
+ type: "u8",
364
+ },
365
+ ],
366
+ },
367
+ },
368
+ ],
369
+ types: [
370
+ {
371
+ name: "AddMetadataToConditionalTokensArgs",
372
+ type: {
373
+ kind: "struct",
374
+ fields: [
375
+ {
376
+ name: "proposalNumber",
377
+ type: "u64",
378
+ },
379
+ {
380
+ name: "onFinalizeUri",
381
+ type: "string",
382
+ },
383
+ {
384
+ name: "onRevertUri",
385
+ type: "string",
386
+ },
387
+ ],
388
+ },
389
+ },
390
+ {
391
+ name: "InitializeConditionalVaultArgs",
392
+ type: {
393
+ kind: "struct",
394
+ fields: [
395
+ {
396
+ name: "settlementAuthority",
397
+ type: "publicKey",
398
+ },
399
+ ],
400
+ },
401
+ },
402
+ {
403
+ name: "VaultStatus",
404
+ type: {
405
+ kind: "enum",
406
+ variants: [
407
+ {
408
+ name: "Active",
409
+ },
410
+ {
411
+ name: "Finalized",
412
+ },
413
+ {
414
+ name: "Reverted",
415
+ },
416
+ ],
417
+ },
418
+ },
419
+ ],
420
+ errors: [
421
+ {
422
+ code: 6000,
423
+ name: "InsufficientUnderlyingTokens",
424
+ msg: "Insufficient underlying token balance to mint this amount of conditional tokens",
425
+ },
426
+ {
427
+ code: 6001,
428
+ name: "InvalidVaultUnderlyingTokenAccount",
429
+ msg: "This `vault_underlying_token_account` is not this vault's `underlying_token_account`",
430
+ },
431
+ {
432
+ code: 6002,
433
+ name: "InvalidConditionalTokenMint",
434
+ msg: "This conditional token mint is not this vault's conditional token mint",
435
+ },
436
+ {
437
+ code: 6003,
438
+ name: "CantRedeemConditionalTokens",
439
+ msg: "Vault needs to be settled as finalized before users can redeem conditional tokens for underlying tokens",
440
+ },
441
+ {
442
+ code: 6004,
443
+ name: "VaultAlreadySettled",
444
+ msg: "Once a vault has been settled, its status as either finalized or reverted cannot be changed",
445
+ },
446
+ ],
447
+ };
448
+ //# sourceMappingURL=conditional_vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional_vault.js","sourceRoot":"","sources":["../../../src/v0.3/types/conditional_vault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Autocrat } from "./autocrat.js";
2
+ export { Autocrat, IDL as AutocratIDL } from "./autocrat.js";
3
+ import { Amm } from "./amm.js";
4
+ export { Amm, IDL as AmmIDL } from "./amm.js";
5
+ import { ConditionalVault } from "./conditional_vault.js";
6
+ export { ConditionalVault, IDL as ConditionalVaultIDL, } from "./conditional_vault.js";
7
+ export { LowercaseKeys } from "./utils.js";
8
+ import type { IdlAccounts, IdlTypes } from "@coral-xyz/anchor";
9
+ import { PublicKey } from "@solana/web3.js";
10
+ export type InitializeDaoParams = IdlTypes<Autocrat>["InitializeDaoParams"];
11
+ export type UpdateDaoParams = IdlTypes<Autocrat>["UpdateDaoParams"];
12
+ export type ProposalInstruction = IdlTypes<Autocrat>["ProposalInstruction"];
13
+ export type Proposal = IdlAccounts<Autocrat>["proposal"];
14
+ export type ProposalWrapper = {
15
+ account: Proposal;
16
+ publicKey: PublicKey;
17
+ };
18
+ export type DaoAccount = IdlAccounts<Autocrat>["dao"];
19
+ export type ProposalAccount = IdlAccounts<Autocrat>["proposal"];
20
+ export type AmmAccount = IdlAccounts<Amm>["amm"];
21
+ export type ConditionalVaultAccount = IdlAccounts<ConditionalVault>["conditionalVault"];
@@ -0,0 +1,4 @@
1
+ export { IDL as AutocratIDL } from "./autocrat.js";
2
+ export { IDL as AmmIDL } from "./amm.js";
3
+ export { IDL as ConditionalVaultIDL, } from "./conditional_vault.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v0.3/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,GAAG,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,EAAO,GAAG,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAEL,GAAG,IAAI,mBAAmB,GAC3B,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type LowercaseKeys<T> = {
2
+ [K in keyof T as Lowercase<string & K>]: T[K];
3
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/v0.3/types/utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import BN from "bn.js";
2
+ import { AmmAccount } from "../types/index.js";
3
+ import { SwapType } from "../AmmClient.js";
4
+ export type AddLiquiditySimulation = {
5
+ baseAmount: BN;
6
+ quoteAmount: BN;
7
+ expectedLpTokens: BN;
8
+ minLpTokens?: BN;
9
+ maxBaseAmount?: BN;
10
+ };
11
+ export type SwapSimulation = {
12
+ expectedOut: BN;
13
+ newBaseReserves: BN;
14
+ newQuoteReserves: BN;
15
+ minExpectedOut?: BN;
16
+ };
17
+ export type RemoveLiquiditySimulation = {
18
+ expectedBaseOut: BN;
19
+ expectedQuoteOut: BN;
20
+ minBaseOut?: BN;
21
+ minQuoteOut?: BN;
22
+ };
23
+ export declare class AmmMath {
24
+ static getHumanPriceFromReserves(baseReserves: BN, quoteReserves: BN, baseDecimals: number, quoteDecimals: number): number;
25
+ static getAmmPriceFromReserves(baseReserves: BN, quoteReserves: BN): BN;
26
+ static getChainAmount(humanAmount: number, decimals: number): BN;
27
+ static getHumanAmount(chainAmount: BN, decimals: number): number;
28
+ static getHumanPrice(ammPrice: BN, baseDecimals: number, quoteDecimals: number): number;
29
+ static getAmmPrice(humanPrice: number, baseDecimals: number, quoteDecimals: number): BN;
30
+ static getAmmPrices(baseDecimals: number, quoteDecimals: number, ...prices: number[]): BN[];
31
+ static scale(number: number, decimals: number): BN;
32
+ static addSlippage(chainAmount: BN, slippageBps: BN): BN;
33
+ static subtractSlippage(chainAmount: BN, slippageBps: BN): BN;
34
+ static getTwap(amm: AmmAccount): BN;
35
+ static simulateAddLiquidity(baseReserves: BN, quoteReserves: BN, lpMintSupply: number, baseAmount?: BN, quoteAmount?: BN, slippageBps?: BN): AddLiquiditySimulation;
36
+ static simulateSwap(inputAmount: BN, swapType: SwapType, baseReserves: BN, quoteReserves: BN, slippageBps?: BN): SwapSimulation;
37
+ static simulateRemoveLiquidity(lpTokensToBurn: BN, baseReserves: BN, quoteReserves: BN, lpTotalSupply: BN, slippageBps?: BN): RemoveLiquiditySimulation;
38
+ }
39
+ export { AmmMath as PriceMath };
@@ -0,0 +1,142 @@
1
+ import BN from "bn.js";
2
+ const BN_TEN = new BN(10);
3
+ const PRICE_SCALE = BN_TEN.pow(new BN(12));
4
+ const PRICE_SCALE_NUMBER = 1e12;
5
+ export class AmmMath {
6
+ static getHumanPriceFromReserves(baseReserves, quoteReserves, baseDecimals, quoteDecimals) {
7
+ return this.getHumanPrice(this.getAmmPriceFromReserves(baseReserves, quoteReserves), baseDecimals, quoteDecimals);
8
+ }
9
+ static getAmmPriceFromReserves(baseReserves, quoteReserves) {
10
+ return quoteReserves.mul(PRICE_SCALE).div(baseReserves);
11
+ }
12
+ static getChainAmount(humanAmount, decimals) {
13
+ // you have to do it this weird way because BN can't be constructed with
14
+ // numbers larger than 2**50
15
+ const [integerPart, fractionalPart = ""] = humanAmount
16
+ .toString()
17
+ .split(".");
18
+ return new BN(integerPart + fractionalPart)
19
+ .mul(new BN(10).pow(new BN(decimals)))
20
+ .div(new BN(10).pow(new BN(fractionalPart.length)));
21
+ }
22
+ static getHumanAmount(chainAmount, decimals) {
23
+ return chainAmount.toNumber() / 10 ** decimals;
24
+ }
25
+ static getHumanPrice(ammPrice, baseDecimals, quoteDecimals) {
26
+ let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
27
+ let price1e12 = quoteDecimals > baseDecimals
28
+ ? ammPrice.div(decimalScalar)
29
+ : ammPrice.mul(decimalScalar);
30
+ return price1e12.toNumber() / 1e12;
31
+ }
32
+ static getAmmPrice(humanPrice, baseDecimals, quoteDecimals) {
33
+ let price1e12 = new BN(humanPrice * PRICE_SCALE_NUMBER);
34
+ let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
35
+ let scaledPrice = quoteDecimals > baseDecimals
36
+ ? price1e12.mul(decimalScalar)
37
+ : price1e12.div(decimalScalar);
38
+ return scaledPrice;
39
+ }
40
+ static getAmmPrices(baseDecimals, quoteDecimals, ...prices) {
41
+ // Map through each price, scaling it using the scalePrice method
42
+ return prices.map((price) => this.getAmmPrice(price, baseDecimals, quoteDecimals));
43
+ }
44
+ static scale(number, decimals) {
45
+ return new BN(number * 10 ** decimals);
46
+ // return new BN(number).mul(new BN(10).pow(new BN(decimals)));
47
+ }
48
+ static addSlippage(chainAmount, slippageBps) {
49
+ return chainAmount.mul(slippageBps.addn(10_000)).divn(10_000);
50
+ }
51
+ static subtractSlippage(chainAmount, slippageBps) {
52
+ return chainAmount.mul(new BN(10_000).sub(slippageBps)).divn(10_000);
53
+ }
54
+ static getTwap(amm) {
55
+ return amm.oracle.aggregator.div(amm.oracle.lastUpdatedSlot.sub(amm.createdAtSlot));
56
+ }
57
+ static simulateAddLiquidity(baseReserves, quoteReserves, lpMintSupply, baseAmount, quoteAmount, slippageBps) {
58
+ if (lpMintSupply == 0) {
59
+ throw new Error("This AMM doesn't have existing liquidity so we can't fill in the blanks");
60
+ }
61
+ if (baseAmount == undefined && quoteAmount == undefined) {
62
+ throw new Error("Must specify either a base amount or a quote amount");
63
+ }
64
+ let expectedLpTokens;
65
+ if (quoteAmount == undefined) {
66
+ quoteAmount = baseAmount?.mul(quoteReserves).div(baseReserves);
67
+ }
68
+ baseAmount = quoteAmount?.mul(baseReserves).div(quoteReserves).addn(1);
69
+ expectedLpTokens = quoteAmount
70
+ ?.mul(new BN(lpMintSupply))
71
+ .div(quoteReserves);
72
+ let minLpTokens, maxBaseAmount;
73
+ if (slippageBps) {
74
+ minLpTokens = AmmMath.subtractSlippage(expectedLpTokens, slippageBps);
75
+ maxBaseAmount = AmmMath.addSlippage(baseAmount, slippageBps);
76
+ }
77
+ return {
78
+ quoteAmount: quoteAmount,
79
+ baseAmount: baseAmount,
80
+ expectedLpTokens,
81
+ minLpTokens,
82
+ maxBaseAmount,
83
+ };
84
+ }
85
+ static simulateSwap(inputAmount, swapType, baseReserves, quoteReserves, slippageBps) {
86
+ if (baseReserves.eqn(0) || quoteReserves.eqn(0)) {
87
+ throw new Error("reserves must be non-zero");
88
+ }
89
+ let inputReserves, outputReserves;
90
+ if (swapType.buy) {
91
+ inputReserves = quoteReserves;
92
+ outputReserves = baseReserves;
93
+ }
94
+ else {
95
+ inputReserves = baseReserves;
96
+ outputReserves = quoteReserves;
97
+ }
98
+ let inputAmountWithFee = inputAmount.muln(990);
99
+ let numerator = inputAmountWithFee.mul(outputReserves);
100
+ let denominator = inputReserves.muln(1000).add(inputAmountWithFee);
101
+ let expectedOut = numerator.div(denominator);
102
+ let minExpectedOut;
103
+ if (slippageBps) {
104
+ minExpectedOut = AmmMath.subtractSlippage(expectedOut, slippageBps);
105
+ }
106
+ let newBaseReserves, newQuoteReserves;
107
+ if (swapType.buy) {
108
+ newBaseReserves = baseReserves.sub(expectedOut);
109
+ newQuoteReserves = quoteReserves.add(inputAmount);
110
+ }
111
+ else {
112
+ newBaseReserves = baseReserves.add(inputAmount);
113
+ newQuoteReserves = quoteReserves.sub(expectedOut);
114
+ }
115
+ return {
116
+ expectedOut,
117
+ newBaseReserves,
118
+ newQuoteReserves,
119
+ minExpectedOut,
120
+ };
121
+ }
122
+ static simulateRemoveLiquidity(lpTokensToBurn, baseReserves, quoteReserves, lpTotalSupply, slippageBps) {
123
+ const expectedBaseOut = lpTokensToBurn.mul(baseReserves).div(lpTotalSupply);
124
+ const expectedQuoteOut = lpTokensToBurn
125
+ .mul(quoteReserves)
126
+ .div(lpTotalSupply);
127
+ let minBaseOut, minQuoteOut;
128
+ if (slippageBps) {
129
+ minBaseOut = AmmMath.subtractSlippage(expectedBaseOut, slippageBps);
130
+ minQuoteOut = AmmMath.subtractSlippage(expectedQuoteOut, slippageBps);
131
+ }
132
+ return {
133
+ expectedBaseOut,
134
+ expectedQuoteOut,
135
+ minBaseOut,
136
+ minQuoteOut,
137
+ };
138
+ }
139
+ }
140
+ // Add backwards compatibility alias
141
+ export { AmmMath as PriceMath };
142
+ //# sourceMappingURL=ammMath.js.map