@metadaoproject/futarchy 0.4.0-alpha.22 → 0.4.0-alpha.23

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.
@@ -8,25 +8,6 @@ export type CreateAmmClientParams = {
8
8
  provider: AnchorProvider;
9
9
  ammProgramId?: PublicKey;
10
10
  };
11
- export type AddLiquiditySimulation = {
12
- baseAmount: BN;
13
- quoteAmount: BN;
14
- expectedLpTokens: BN;
15
- minLpTokens?: BN;
16
- maxBaseAmount?: BN;
17
- };
18
- export type SwapSimulation = {
19
- expectedOut: BN;
20
- newBaseReserves: BN;
21
- newQuoteReserves: BN;
22
- minExpectedOut?: BN;
23
- };
24
- export type RemoveLiquiditySimulation = {
25
- expectedBaseOut: BN;
26
- expectedQuoteOut: BN;
27
- minBaseOut?: BN;
28
- minQuoteOut?: BN;
29
- };
30
11
  export declare class AmmClient {
31
12
  readonly provider: AnchorProvider;
32
13
  readonly program: Program<AmmIDLType>;
@@ -238,9 +219,5 @@ export declare class AmmClient {
238
219
  name: "crankThatTwap";
239
220
  }>;
240
221
  getAmm(amm: PublicKey): Promise<AmmAccount>;
241
- getTwap(amm: AmmAccount): BN;
242
- simulateAddLiquidity(baseReserves: BN, quoteReserves: BN, lpMintSupply: number, baseAmount?: BN, quoteAmount?: BN, slippageBps?: BN): AddLiquiditySimulation;
243
- simulateSwap(inputAmount: BN, swapType: SwapType, baseReserves: BN, quoteReserves: BN, slippageBps?: BN): SwapSimulation;
244
- simulateRemoveLiquidity(lpTokensToBurn: BN, baseReserves: BN, quoteReserves: BN, lpTotalSupply: BN, slippageBps?: BN): RemoveLiquiditySimulation;
245
222
  getDecimals(mint: PublicKey): Promise<number>;
246
223
  }
@@ -4,7 +4,7 @@ import BN from "bn.js";
4
4
  import { AMM_PROGRAM_ID } from "./constants.js";
5
5
  import { getAmmLpMintAddr, getAmmAddr } from "./utils/pda.js";
6
6
  import { unpackMint, getAssociatedTokenAddressSync, createAssociatedTokenAccountIdempotentInstruction, } from "@solana/spl-token";
7
- import { PriceMath } from "./utils/priceMath.js";
7
+ import { AmmMath, PriceMath } from "./utils/ammMath.js";
8
8
  export class AmmClient {
9
9
  provider;
10
10
  program;
@@ -78,7 +78,7 @@ export class AmmClient {
78
78
  // quoteAmount == undefined ? undefined : new BN(quoteAmount);
79
79
  // let baseAmountCasted: BN | undefined =
80
80
  // baseAmount == undefined ? undefined : new BN(baseAmount);
81
- let sim = this.simulateAddLiquidity(storedAmm.baseAmount, storedAmm.quoteAmount, Number(lpMintSupply), baseAmountCasted, quoteAmountCasted);
81
+ let sim = AmmMath.simulateAddLiquidity(storedAmm.baseAmount, storedAmm.quoteAmount, Number(lpMintSupply), baseAmountCasted, quoteAmountCasted);
82
82
  await this.addLiquidityIx(amm, storedAmm.baseMint, storedAmm.quoteMint, sim.quoteAmount, sim.baseAmount, sim.expectedLpTokens).rpc();
83
83
  }
84
84
  addLiquidityIx(amm, baseMint, quoteMint, quoteAmount, maxBaseAmount, minLpTokens, user = this.provider.publicKey) {
@@ -178,91 +178,6 @@ export class AmmClient {
178
178
  async getAmm(amm) {
179
179
  return await this.program.account.amm.fetch(amm);
180
180
  }
181
- getTwap(amm) {
182
- return amm.oracle.aggregator.div(amm.oracle.lastUpdatedSlot.sub(amm.createdAtSlot));
183
- }
184
- simulateAddLiquidity(baseReserves, quoteReserves, lpMintSupply, baseAmount, quoteAmount, slippageBps) {
185
- if (lpMintSupply == 0) {
186
- throw new Error("This AMM doesn't have existing liquidity so we can't fill in the blanks");
187
- }
188
- if (baseAmount == undefined && quoteAmount == undefined) {
189
- throw new Error("Must specify either a base amount or a quote amount");
190
- }
191
- let expectedLpTokens;
192
- if (quoteAmount == undefined) {
193
- quoteAmount = baseAmount?.mul(quoteReserves).div(baseReserves);
194
- }
195
- baseAmount = quoteAmount?.mul(baseReserves).div(quoteReserves).addn(1);
196
- expectedLpTokens = quoteAmount
197
- ?.mul(new BN(lpMintSupply))
198
- .div(quoteReserves);
199
- let minLpTokens, maxBaseAmount;
200
- if (slippageBps) {
201
- minLpTokens = PriceMath.subtractSlippage(expectedLpTokens, slippageBps);
202
- maxBaseAmount = PriceMath.addSlippage(baseAmount, slippageBps);
203
- }
204
- return {
205
- quoteAmount: quoteAmount,
206
- baseAmount: baseAmount,
207
- expectedLpTokens,
208
- minLpTokens,
209
- maxBaseAmount,
210
- };
211
- }
212
- simulateSwap(inputAmount, swapType, baseReserves, quoteReserves, slippageBps) {
213
- if (baseReserves.eqn(0) || quoteReserves.eqn(0)) {
214
- throw new Error("reserves must be non-zero");
215
- }
216
- let inputReserves, outputReserves;
217
- if (swapType.buy) {
218
- inputReserves = quoteReserves;
219
- outputReserves = baseReserves;
220
- }
221
- else {
222
- inputReserves = baseReserves;
223
- outputReserves = quoteReserves;
224
- }
225
- let inputAmountWithFee = inputAmount.muln(990);
226
- let numerator = inputAmountWithFee.mul(outputReserves);
227
- let denominator = inputReserves.muln(1000).add(inputAmountWithFee);
228
- let expectedOut = numerator.div(denominator);
229
- let minExpectedOut;
230
- if (slippageBps) {
231
- minExpectedOut = PriceMath.subtractSlippage(expectedOut, slippageBps);
232
- }
233
- let newBaseReserves, newQuoteReserves;
234
- if (swapType.buy) {
235
- newBaseReserves = baseReserves.sub(expectedOut);
236
- newQuoteReserves = quoteReserves.add(inputAmount);
237
- }
238
- else {
239
- newBaseReserves = baseReserves.add(inputAmount);
240
- newQuoteReserves = quoteReserves.sub(expectedOut);
241
- }
242
- return {
243
- expectedOut,
244
- newBaseReserves,
245
- newQuoteReserves,
246
- minExpectedOut,
247
- };
248
- }
249
- simulateRemoveLiquidity(lpTokensToBurn, baseReserves, quoteReserves, lpTotalSupply, slippageBps) {
250
- const expectedBaseOut = lpTokensToBurn.mul(baseReserves).div(lpTotalSupply);
251
- const expectedQuoteOut = lpTokensToBurn
252
- .mul(quoteReserves)
253
- .div(lpTotalSupply);
254
- let minBaseOut, minQuoteOut;
255
- if (slippageBps) {
256
- minBaseOut = PriceMath.subtractSlippage(expectedBaseOut, slippageBps);
257
- minQuoteOut = PriceMath.subtractSlippage(expectedQuoteOut, slippageBps);
258
- }
259
- return {
260
- expectedBaseOut,
261
- expectedQuoteOut,
262
- minBaseOut,
263
- minQuoteOut,
264
- };
265
- }
266
181
  async getDecimals(mint) {
267
182
  return unpackMint(mint, await this.provider.connection.getAccountInfo(mint))
268
183
  .decimals;
@@ -1 +1 @@
1
- {"version":3,"file":"AmmClient.js","sourceRoot":"","sources":["../../src/v0.3/AmmClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AmmClient.js","sourceRoot":"","sources":["../../src/v0.3/AmmClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Program } from "@coral-xyz/anchor";
2
2
  import { ComputeBudgetProgram, Keypair, Transaction, } from "@solana/web3.js";
3
- import { PriceMath } from "./utils/priceMath.js";
3
+ import { PriceMath } from "./utils/ammMath.js";
4
4
  import { IDL as AutocratIDL } from "./types/autocrat.js";
5
5
  import BN from "bn.js";
6
6
  import { AMM_PROGRAM_ID, AUTOCRAT_PROGRAM_ID, CONDITIONAL_VAULT_PROGRAM_ID, MAINNET_USDC, USDC_DECIMALS, } from "./constants.js";
@@ -1 +1 @@
1
- {"version":3,"file":"AutocratClient.js","sourceRoot":"","sources":["../../src/v0.3/AutocratClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutocratClient.js","sourceRoot":"","sources":["../../src/v0.3/AutocratClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
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 getAmmPriceFromReserves(baseReserves: BN, quoteReserves: BN): BN;
25
+ static getChainAmount(humanAmount: number, decimals: number): BN;
26
+ static getHumanAmount(chainAmount: BN, decimals: number): number;
27
+ static getHumanPrice(ammPrice: BN, baseDecimals: number, quoteDecimals: number): number;
28
+ static getAmmPrice(humanPrice: number, baseDecimals: number, quoteDecimals: number): BN;
29
+ static getAmmPrices(baseDecimals: number, quoteDecimals: number, ...prices: number[]): BN[];
30
+ static scale(number: number, decimals: number): BN;
31
+ static addSlippage(chainAmount: BN, slippageBps: BN): BN;
32
+ static subtractSlippage(chainAmount: BN, slippageBps: BN): BN;
33
+ static getTwap(amm: AmmAccount): BN;
34
+ static simulateAddLiquidity(baseReserves: BN, quoteReserves: BN, lpMintSupply: number, baseAmount?: BN, quoteAmount?: BN, slippageBps?: BN): AddLiquiditySimulation;
35
+ static simulateSwap(inputAmount: BN, swapType: SwapType, baseReserves: BN, quoteReserves: BN, slippageBps?: BN): SwapSimulation;
36
+ static simulateRemoveLiquidity(lpTokensToBurn: BN, baseReserves: BN, quoteReserves: BN, lpTotalSupply: BN, slippageBps?: BN): RemoveLiquiditySimulation;
37
+ }
38
+ export { AmmMath as PriceMath };
@@ -0,0 +1,139 @@
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 getAmmPriceFromReserves(baseReserves, quoteReserves) {
7
+ return quoteReserves.mul(PRICE_SCALE).div(baseReserves);
8
+ }
9
+ static getChainAmount(humanAmount, decimals) {
10
+ // you have to do it this weird way because BN can't be constructed with
11
+ // numbers larger than 2**50
12
+ const [integerPart, fractionalPart = ""] = humanAmount
13
+ .toString()
14
+ .split(".");
15
+ return new BN(integerPart + fractionalPart)
16
+ .mul(new BN(10).pow(new BN(decimals)))
17
+ .div(new BN(10).pow(new BN(fractionalPart.length)));
18
+ }
19
+ static getHumanAmount(chainAmount, decimals) {
20
+ return chainAmount.toNumber() / 10 ** decimals;
21
+ }
22
+ static getHumanPrice(ammPrice, baseDecimals, quoteDecimals) {
23
+ let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
24
+ let price1e12 = quoteDecimals > baseDecimals
25
+ ? ammPrice.div(decimalScalar)
26
+ : ammPrice.mul(decimalScalar);
27
+ return price1e12.toNumber() / 1e12;
28
+ }
29
+ static getAmmPrice(humanPrice, baseDecimals, quoteDecimals) {
30
+ let price1e12 = new BN(humanPrice * PRICE_SCALE_NUMBER);
31
+ let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
32
+ let scaledPrice = quoteDecimals > baseDecimals
33
+ ? price1e12.mul(decimalScalar)
34
+ : price1e12.div(decimalScalar);
35
+ return scaledPrice;
36
+ }
37
+ static getAmmPrices(baseDecimals, quoteDecimals, ...prices) {
38
+ // Map through each price, scaling it using the scalePrice method
39
+ return prices.map((price) => this.getAmmPrice(price, baseDecimals, quoteDecimals));
40
+ }
41
+ static scale(number, decimals) {
42
+ return new BN(number * 10 ** decimals);
43
+ // return new BN(number).mul(new BN(10).pow(new BN(decimals)));
44
+ }
45
+ static addSlippage(chainAmount, slippageBps) {
46
+ return chainAmount.mul(slippageBps.addn(10_000)).divn(10_000);
47
+ }
48
+ static subtractSlippage(chainAmount, slippageBps) {
49
+ return chainAmount.mul(new BN(10_000).sub(slippageBps)).divn(10_000);
50
+ }
51
+ static getTwap(amm) {
52
+ return amm.oracle.aggregator.div(amm.oracle.lastUpdatedSlot.sub(amm.createdAtSlot));
53
+ }
54
+ static simulateAddLiquidity(baseReserves, quoteReserves, lpMintSupply, baseAmount, quoteAmount, slippageBps) {
55
+ if (lpMintSupply == 0) {
56
+ throw new Error("This AMM doesn't have existing liquidity so we can't fill in the blanks");
57
+ }
58
+ if (baseAmount == undefined && quoteAmount == undefined) {
59
+ throw new Error("Must specify either a base amount or a quote amount");
60
+ }
61
+ let expectedLpTokens;
62
+ if (quoteAmount == undefined) {
63
+ quoteAmount = baseAmount?.mul(quoteReserves).div(baseReserves);
64
+ }
65
+ baseAmount = quoteAmount?.mul(baseReserves).div(quoteReserves).addn(1);
66
+ expectedLpTokens = quoteAmount
67
+ ?.mul(new BN(lpMintSupply))
68
+ .div(quoteReserves);
69
+ let minLpTokens, maxBaseAmount;
70
+ if (slippageBps) {
71
+ minLpTokens = AmmMath.subtractSlippage(expectedLpTokens, slippageBps);
72
+ maxBaseAmount = AmmMath.addSlippage(baseAmount, slippageBps);
73
+ }
74
+ return {
75
+ quoteAmount: quoteAmount,
76
+ baseAmount: baseAmount,
77
+ expectedLpTokens,
78
+ minLpTokens,
79
+ maxBaseAmount,
80
+ };
81
+ }
82
+ static simulateSwap(inputAmount, swapType, baseReserves, quoteReserves, slippageBps) {
83
+ if (baseReserves.eqn(0) || quoteReserves.eqn(0)) {
84
+ throw new Error("reserves must be non-zero");
85
+ }
86
+ let inputReserves, outputReserves;
87
+ if (swapType.buy) {
88
+ inputReserves = quoteReserves;
89
+ outputReserves = baseReserves;
90
+ }
91
+ else {
92
+ inputReserves = baseReserves;
93
+ outputReserves = quoteReserves;
94
+ }
95
+ let inputAmountWithFee = inputAmount.muln(990);
96
+ let numerator = inputAmountWithFee.mul(outputReserves);
97
+ let denominator = inputReserves.muln(1000).add(inputAmountWithFee);
98
+ let expectedOut = numerator.div(denominator);
99
+ let minExpectedOut;
100
+ if (slippageBps) {
101
+ minExpectedOut = AmmMath.subtractSlippage(expectedOut, slippageBps);
102
+ }
103
+ let newBaseReserves, newQuoteReserves;
104
+ if (swapType.buy) {
105
+ newBaseReserves = baseReserves.sub(expectedOut);
106
+ newQuoteReserves = quoteReserves.add(inputAmount);
107
+ }
108
+ else {
109
+ newBaseReserves = baseReserves.add(inputAmount);
110
+ newQuoteReserves = quoteReserves.sub(expectedOut);
111
+ }
112
+ return {
113
+ expectedOut,
114
+ newBaseReserves,
115
+ newQuoteReserves,
116
+ minExpectedOut,
117
+ };
118
+ }
119
+ static simulateRemoveLiquidity(lpTokensToBurn, baseReserves, quoteReserves, lpTotalSupply, slippageBps) {
120
+ const expectedBaseOut = lpTokensToBurn.mul(baseReserves).div(lpTotalSupply);
121
+ const expectedQuoteOut = lpTokensToBurn
122
+ .mul(quoteReserves)
123
+ .div(lpTotalSupply);
124
+ let minBaseOut, minQuoteOut;
125
+ if (slippageBps) {
126
+ minBaseOut = AmmMath.subtractSlippage(expectedBaseOut, slippageBps);
127
+ minQuoteOut = AmmMath.subtractSlippage(expectedQuoteOut, slippageBps);
128
+ }
129
+ return {
130
+ expectedBaseOut,
131
+ expectedQuoteOut,
132
+ minBaseOut,
133
+ minQuoteOut,
134
+ };
135
+ }
136
+ }
137
+ // Add backwards compatibility alias
138
+ export { AmmMath as PriceMath };
139
+ //# sourceMappingURL=ammMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ammMath.js","sourceRoot":"","sources":["../../../src/v0.3/utils/ammMath.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export * from "./filters.js";
2
2
  export * from "./pda.js";
3
- export * from "./priceMath.js";
3
+ export * from "./ammMath.js";
4
4
  export * from "./metadata.js";
5
5
  export * from "./cu.js";
6
6
  export * from "./instruction.js";
@@ -1,6 +1,6 @@
1
1
  export * from "./filters.js";
2
2
  export * from "./pda.js";
3
- export * from "./priceMath.js";
3
+ export * from "./ammMath.js";
4
4
  export * from "./metadata.js";
5
5
  export * from "./cu.js";
6
6
  export * from "./instruction.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v0.3/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAe,oBAAoB,EAAa,MAAM,iBAAiB,CAAC;AAE/E,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,0DAAW,CAAA;IACX,wDAAW,CAAA;IACX,4DAAc,CAAA;AAChB,CAAC,EAJW,eAAe,GAAf,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAoB,SAAS,EAAE,EAAE,CAC/D,oBAAoB,CAAC,mBAAmB,CAAC;IACvC,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAC3C,oBAAoB,CAAC,mBAAmB,CAAC;IACvC,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAiB,EACjB,UAAmB,EACnB,QAAQ,GAAG,KAAK,EACH,EAAE;IACf,OAAO;QACL,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v0.3/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAe,oBAAoB,EAAa,MAAM,iBAAiB,CAAC;AAE/E,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,0DAAW,CAAA;IACX,wDAAW,CAAA;IACX,4DAAc,CAAA;AAChB,CAAC,EAJW,eAAe,GAAf,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAoB,SAAS,EAAE,EAAE,CAC/D,oBAAoB,CAAC,mBAAmB,CAAC;IACvC,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAC3C,oBAAoB,CAAC,mBAAmB,CAAC;IACvC,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAiB,EACjB,UAAmB,EACnB,QAAQ,GAAG,KAAK,EACH,EAAE;IACf,OAAO;QACL,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -9,25 +9,6 @@ export type CreateAmmClientParams = {
9
9
  provider: AnchorProvider;
10
10
  ammProgramId?: PublicKey;
11
11
  };
12
- export type AddLiquiditySimulation = {
13
- baseAmount: BN;
14
- quoteAmount: BN;
15
- expectedLpTokens: BN;
16
- minLpTokens?: BN;
17
- maxBaseAmount?: BN;
18
- };
19
- export type SwapSimulation = {
20
- expectedOut: BN;
21
- newBaseReserves: BN;
22
- newQuoteReserves: BN;
23
- minExpectedOut?: BN;
24
- };
25
- export type RemoveLiquiditySimulation = {
26
- expectedBaseOut: BN;
27
- expectedQuoteOut: BN;
28
- minBaseOut?: BN;
29
- minQuoteOut?: BN;
30
- };
31
12
  export declare class AmmClient {
32
13
  readonly provider: AnchorProvider;
33
14
  readonly program: Program<AmmIDLType>;
@@ -281,23 +262,5 @@ export declare class AmmClient {
281
262
  } & {
282
263
  name: "crankThatTwap";
283
264
  }>;
284
- getTwap(amm: Amm): BN;
285
- simulateAddLiquidity(baseReserves: BN, quoteReserves: BN, lpMintSupply: number, baseAmount?: BN, quoteAmount?: BN, slippageBps?: BN): AddLiquiditySimulation;
286
- simulateSwapInner(inputAmount: BN, inputReserves: BN, outputReserves: BN): BN;
287
- simulateSwap(inputAmount: BN, swapType: SwapType, baseReserves: BN, quoteReserves: BN, slippageBps?: BN): SwapSimulation;
288
- simulateRemoveLiquidity(lpTokensToBurn: BN, baseReserves: BN, quoteReserves: BN, lpTotalSupply: BN, slippageBps?: BN): RemoveLiquiditySimulation;
289
265
  getDecimals(mint: PublicKey): Promise<number>;
290
- /**
291
- * Calculates the optimal swap amount and mergeable tokens without using square roots.
292
- * @param userBalanceIn BN – Tokens that a user wants to dispose of.
293
- * @param ammReserveIn BN – Amount of tokens in the AMM of the token that the user wants to dispose of.
294
- * @param ammReserveOut BN – Amount of tokens in the AMM of the token that the user wants to receive.
295
- * @returns An object containing the optimal swap amount, expected quote received, and expected mergeable tokens.
296
- */
297
- calculateOptimalSwapForMerge(userBalanceIn: BN, ammReserveIn: BN, ammReserveOut: BN, slippageBps: BN): {
298
- optimalSwapAmount: BN;
299
- userInAfterSwap: BN;
300
- expectedOut: BN;
301
- minimumExpectedOut: BN;
302
- };
303
266
  }
@@ -5,7 +5,7 @@ import { AMM_PROGRAM_ID } from "./constants.js";
5
5
  import { getAmmLpMintAddr, getAmmAddr } from "./utils/pda.js";
6
6
  // import { MethodsBuilder } from "@coral-xyz/anchor/dist/cjs/program/namespace/methods";
7
7
  import { unpackMint, getAssociatedTokenAddressSync, createAssociatedTokenAccountIdempotentInstruction, } from "@solana/spl-token";
8
- import { PriceMath } from "./utils/priceMath.js";
8
+ import { AmmMath, PriceMath } from "./utils/priceMath.js";
9
9
  export class AmmClient {
10
10
  provider;
11
11
  program;
@@ -88,7 +88,7 @@ export class AmmClient {
88
88
  // quoteAmount == undefined ? undefined : new BN(quoteAmount);
89
89
  // let baseAmountCasted: BN | undefined =
90
90
  // baseAmount == undefined ? undefined : new BN(baseAmount);
91
- let sim = this.simulateAddLiquidity(storedAmm.baseAmount, storedAmm.quoteAmount, Number(lpMintSupply), baseAmountCasted, quoteAmountCasted);
91
+ let sim = AmmMath.simulateAddLiquidity(storedAmm.baseAmount, storedAmm.quoteAmount, Number(lpMintSupply), baseAmountCasted, quoteAmountCasted);
92
92
  await this.addLiquidityIx(amm, storedAmm.baseMint, storedAmm.quoteMint, sim.quoteAmount, sim.baseAmount, sim.expectedLpTokens).rpc();
93
93
  }
94
94
  addLiquidityIx(amm, baseMint, quoteMint, quoteAmount, maxBaseAmount, minLpTokens, user = this.provider.publicKey) {
@@ -178,141 +178,9 @@ export class AmmClient {
178
178
  amm,
179
179
  });
180
180
  }
181
- // getter functions
182
- // async getLTWAP(ammAddr: PublicKey): Promise<number> {
183
- // const amm = await this.program.account.amm.fetch(ammAddr);
184
- // return amm.twapLastObservationUq64X32
185
- // .div(new BN(2).pow(new BN(32)))
186
- // .toNumber();
187
- // }
188
- getTwap(amm) {
189
- return amm.oracle.aggregator.div(amm.oracle.lastUpdatedSlot.sub(amm.createdAtSlot));
190
- }
191
- simulateAddLiquidity(baseReserves, quoteReserves, lpMintSupply, baseAmount, quoteAmount, slippageBps) {
192
- if (lpMintSupply == 0) {
193
- throw new Error("This AMM doesn't have existing liquidity so we can't fill in the blanks");
194
- }
195
- if (baseAmount == undefined && quoteAmount == undefined) {
196
- throw new Error("Must specify either a base amount or a quote amount");
197
- }
198
- let expectedLpTokens;
199
- if (quoteAmount == undefined) {
200
- quoteAmount = baseAmount?.mul(quoteReserves).div(baseReserves);
201
- }
202
- baseAmount = quoteAmount?.mul(baseReserves).div(quoteReserves).addn(1);
203
- expectedLpTokens = quoteAmount
204
- ?.mul(new BN(lpMintSupply))
205
- .div(quoteReserves);
206
- let minLpTokens, maxBaseAmount;
207
- if (slippageBps) {
208
- minLpTokens = PriceMath.subtractSlippage(expectedLpTokens, slippageBps);
209
- maxBaseAmount = PriceMath.addSlippage(baseAmount, slippageBps);
210
- }
211
- return {
212
- quoteAmount: quoteAmount,
213
- baseAmount: baseAmount,
214
- expectedLpTokens,
215
- minLpTokens,
216
- maxBaseAmount,
217
- };
218
- }
219
- simulateSwapInner(inputAmount, inputReserves, outputReserves) {
220
- if (inputReserves.eqn(0) || outputReserves.eqn(0)) {
221
- throw new Error("reserves must be non-zero");
222
- }
223
- let inputAmountWithFee = inputAmount.muln(990);
224
- let numerator = inputAmountWithFee.mul(outputReserves);
225
- let denominator = inputReserves.muln(1000).add(inputAmountWithFee);
226
- return numerator.div(denominator);
227
- }
228
- simulateSwap(inputAmount, swapType, baseReserves, quoteReserves, slippageBps) {
229
- let inputReserves, outputReserves;
230
- if (swapType.buy) {
231
- inputReserves = quoteReserves;
232
- outputReserves = baseReserves;
233
- }
234
- else {
235
- inputReserves = baseReserves;
236
- outputReserves = quoteReserves;
237
- }
238
- let expectedOut = this.simulateSwapInner(inputAmount, inputReserves, outputReserves);
239
- let minExpectedOut;
240
- if (slippageBps) {
241
- minExpectedOut = PriceMath.subtractSlippage(expectedOut, slippageBps);
242
- }
243
- let newBaseReserves, newQuoteReserves;
244
- if (swapType.buy) {
245
- newBaseReserves = baseReserves.sub(expectedOut);
246
- newQuoteReserves = quoteReserves.add(inputAmount);
247
- }
248
- else {
249
- newBaseReserves = baseReserves.add(inputAmount);
250
- newQuoteReserves = quoteReserves.sub(expectedOut);
251
- }
252
- return {
253
- expectedOut,
254
- newBaseReserves,
255
- newQuoteReserves,
256
- minExpectedOut,
257
- };
258
- }
259
- simulateRemoveLiquidity(lpTokensToBurn, baseReserves, quoteReserves, lpTotalSupply, slippageBps) {
260
- const expectedBaseOut = lpTokensToBurn.mul(baseReserves).div(lpTotalSupply);
261
- const expectedQuoteOut = lpTokensToBurn
262
- .mul(quoteReserves)
263
- .div(lpTotalSupply);
264
- let minBaseOut, minQuoteOut;
265
- if (slippageBps) {
266
- minBaseOut = PriceMath.subtractSlippage(expectedBaseOut, slippageBps);
267
- minQuoteOut = PriceMath.subtractSlippage(expectedQuoteOut, slippageBps);
268
- }
269
- return {
270
- expectedBaseOut,
271
- expectedQuoteOut,
272
- minBaseOut,
273
- minQuoteOut,
274
- };
275
- }
276
181
  async getDecimals(mint) {
277
182
  return unpackMint(mint, await this.provider.connection.getAccountInfo(mint))
278
183
  .decimals;
279
184
  }
280
- /**
281
- * Calculates the optimal swap amount and mergeable tokens without using square roots.
282
- * @param userBalanceIn BN – Tokens that a user wants to dispose of.
283
- * @param ammReserveIn BN – Amount of tokens in the AMM of the token that the user wants to dispose of.
284
- * @param ammReserveOut BN – Amount of tokens in the AMM of the token that the user wants to receive.
285
- * @returns An object containing the optimal swap amount, expected quote received, and expected mergeable tokens.
286
- */
287
- calculateOptimalSwapForMerge(userBalanceIn, ammReserveIn, ammReserveOut, slippageBps) {
288
- // essentially, we want to calculate the swap amount so that the remaining user balance = received token amount
289
- // solve this system of equations for swapAmount, outputAmount (we only care about swap amount tho)
290
- // (baseReserve + swapAmount) * (quoteReserve - outputAmount) = baseReserve * quoteReserve
291
- // baseAmount - swapAmount = outputAmount
292
- //solve equation
293
- // (baseReserve + .99*swapAmount) * (quoteReserve - (userTokens - swapAmount)) = baseReserve * quoteReserve
294
- // multiplying out the left hand side and subtracting baseReserve * quoteReserve from both sides yields the following:
295
- // baseReserve*quoteReserve - baseReserve*userTokens + baseReserve*swapAmount + .99*swapAmount*quoteReserve - .99*swapAmount*userTokens + .99*swapAmount^2 = baseReserve*quoteReserve
296
- // .99*swapAmount^2 + baseReserve*swapAmount + .99*swapAmount*quoteReserve - baseReserve*userTokens - .99*swapAmount*userTokens = 0
297
- // in the quadratic equation, a = .99, b = (baseReserve + .99*quoteReserve - .99*userTokens), c = -baseReserve*userTokens
298
- // x = (-b + sqrt(b^2 - 4ac)) / 2a
299
- let a = 0.99;
300
- let b = Number(ammReserveIn) +
301
- 0.99 * Number(ammReserveOut) -
302
- 0.99 * Number(userBalanceIn);
303
- let c = -Number(ammReserveIn) * Number(userBalanceIn);
304
- let x = (-b + Math.sqrt(b ** 2 - 4 * a * c)) / (2 * a);
305
- //this should mathematically return a positive number assuming userBalanceIn, ammReserveIn, and ammReserveOut are all positive (which they should be)
306
- // -b + Math.sqrt(b ** 2 - 4 * a * c) > 0 because -4*a*c > 0 and sqrt(b**2 + positive number) > b
307
- const swapAmount = x;
308
- let expectedOut = this.simulateSwapInner(new BN(swapAmount), ammReserveIn, ammReserveOut);
309
- let minimumExpectedOut = Number(expectedOut) - (Number(expectedOut) * Number(slippageBps)) / 10000;
310
- return {
311
- optimalSwapAmount: new BN(swapAmount),
312
- userInAfterSwap: new BN(Number(userBalanceIn) - swapAmount),
313
- expectedOut: expectedOut,
314
- minimumExpectedOut: new BN(minimumExpectedOut),
315
- };
316
- }
317
185
  }
318
186
  //# sourceMappingURL=AmmClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmmClient.js","sourceRoot":"","sources":["../../src/v0.4/AmmClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AmmClient.js","sourceRoot":"","sources":["../../src/v0.4/AmmClient.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,26 @@
1
1
  import BN from "bn.js";
2
- export declare class PriceMath {
2
+ import { Amm } 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 {
3
24
  static getAmmPriceFromReserves(baseReserves: BN, quoteReserves: BN): BN;
4
25
  static getChainAmount(humanAmount: number, decimals: number): BN;
5
26
  static getHumanAmount(chainAmount: BN, decimals: number): number;
@@ -9,4 +30,23 @@ export declare class PriceMath {
9
30
  static scale(number: number, decimals: number): BN;
10
31
  static addSlippage(chainAmount: BN, slippageBps: BN): BN;
11
32
  static subtractSlippage(chainAmount: BN, slippageBps: BN): BN;
33
+ static getTwap(amm: Amm): BN;
34
+ static simulateAddLiquidity(baseReserves: BN, quoteReserves: BN, lpMintSupply: number, baseAmount?: BN, quoteAmount?: BN, slippageBps?: BN): AddLiquiditySimulation;
35
+ static simulateSwapInner(inputAmount: BN, inputReserves: BN, outputReserves: BN): BN;
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
+ * Calculates the optimal swap amount and mergeable tokens without using square roots.
40
+ * @param userBalanceIn BN – Tokens that a user wants to dispose of.
41
+ * @param ammReserveIn BN – Amount of tokens in the AMM of the token that the user wants to dispose of.
42
+ * @param ammReserveOut BN – Amount of tokens in the AMM of the token that the user wants to receive.
43
+ * @returns An object containing the optimal swap amount, expected quote received, and expected mergeable tokens.
44
+ */
45
+ static calculateOptimalSwapForMerge(userBalanceIn: BN, ammReserveIn: BN, ammReserveOut: BN, slippageBps: BN): {
46
+ optimalSwapAmount: BN;
47
+ userInAfterSwap: BN;
48
+ expectedOut: BN;
49
+ minimumExpectedOut: BN;
50
+ };
12
51
  }
52
+ export { AmmMath as PriceMath };
@@ -2,7 +2,7 @@ import BN from "bn.js";
2
2
  const BN_TEN = new BN(10);
3
3
  const PRICE_SCALE = BN_TEN.pow(new BN(12));
4
4
  const PRICE_SCALE_NUMBER = 1e12;
5
- export class PriceMath {
5
+ export class AmmMath {
6
6
  static getAmmPriceFromReserves(baseReserves, quoteReserves) {
7
7
  return quoteReserves.mul(PRICE_SCALE).div(baseReserves);
8
8
  }
@@ -55,5 +55,132 @@ export class PriceMath {
55
55
  static subtractSlippage(chainAmount, slippageBps) {
56
56
  return chainAmount.mul(new BN(10_000).sub(slippageBps)).divn(10_000);
57
57
  }
58
+ static getTwap(amm) {
59
+ return amm.oracle.aggregator.div(amm.oracle.lastUpdatedSlot.sub(amm.createdAtSlot));
60
+ }
61
+ static simulateAddLiquidity(baseReserves, quoteReserves, lpMintSupply, baseAmount, quoteAmount, slippageBps) {
62
+ if (lpMintSupply == 0) {
63
+ throw new Error("This AMM doesn't have existing liquidity so we can't fill in the blanks");
64
+ }
65
+ if (baseAmount == undefined && quoteAmount == undefined) {
66
+ throw new Error("Must specify either a base amount or a quote amount");
67
+ }
68
+ let expectedLpTokens;
69
+ if (quoteAmount == undefined) {
70
+ quoteAmount = baseAmount?.mul(quoteReserves).div(baseReserves);
71
+ }
72
+ baseAmount = quoteAmount?.mul(baseReserves).div(quoteReserves).addn(1);
73
+ expectedLpTokens = quoteAmount
74
+ ?.mul(new BN(lpMintSupply))
75
+ .div(quoteReserves);
76
+ let minLpTokens, maxBaseAmount;
77
+ if (slippageBps) {
78
+ minLpTokens = AmmMath.subtractSlippage(expectedLpTokens, slippageBps);
79
+ maxBaseAmount = AmmMath.addSlippage(baseAmount, slippageBps);
80
+ }
81
+ return {
82
+ quoteAmount: quoteAmount,
83
+ baseAmount: baseAmount,
84
+ expectedLpTokens,
85
+ minLpTokens,
86
+ maxBaseAmount,
87
+ };
88
+ }
89
+ static simulateSwapInner(inputAmount, inputReserves, outputReserves) {
90
+ if (inputReserves.eqn(0) || outputReserves.eqn(0)) {
91
+ throw new Error("reserves must be non-zero");
92
+ }
93
+ let inputAmountWithFee = inputAmount.muln(990);
94
+ let numerator = inputAmountWithFee.mul(outputReserves);
95
+ let denominator = inputReserves.muln(1000).add(inputAmountWithFee);
96
+ return numerator.div(denominator);
97
+ }
98
+ static simulateSwap(inputAmount, swapType, baseReserves, quoteReserves, slippageBps) {
99
+ let inputReserves, outputReserves;
100
+ if (swapType.buy) {
101
+ inputReserves = quoteReserves;
102
+ outputReserves = baseReserves;
103
+ }
104
+ else {
105
+ inputReserves = baseReserves;
106
+ outputReserves = quoteReserves;
107
+ }
108
+ let expectedOut = this.simulateSwapInner(inputAmount, inputReserves, outputReserves);
109
+ let minExpectedOut;
110
+ if (slippageBps) {
111
+ minExpectedOut = AmmMath.subtractSlippage(expectedOut, slippageBps);
112
+ }
113
+ let newBaseReserves, newQuoteReserves;
114
+ if (swapType.buy) {
115
+ newBaseReserves = baseReserves.sub(expectedOut);
116
+ newQuoteReserves = quoteReserves.add(inputAmount);
117
+ }
118
+ else {
119
+ newBaseReserves = baseReserves.add(inputAmount);
120
+ newQuoteReserves = quoteReserves.sub(expectedOut);
121
+ }
122
+ return {
123
+ expectedOut,
124
+ newBaseReserves,
125
+ newQuoteReserves,
126
+ minExpectedOut,
127
+ };
128
+ }
129
+ static simulateRemoveLiquidity(lpTokensToBurn, baseReserves, quoteReserves, lpTotalSupply, slippageBps) {
130
+ const expectedBaseOut = lpTokensToBurn.mul(baseReserves).div(lpTotalSupply);
131
+ const expectedQuoteOut = lpTokensToBurn
132
+ .mul(quoteReserves)
133
+ .div(lpTotalSupply);
134
+ let minBaseOut, minQuoteOut;
135
+ if (slippageBps) {
136
+ minBaseOut = AmmMath.subtractSlippage(expectedBaseOut, slippageBps);
137
+ minQuoteOut = AmmMath.subtractSlippage(expectedQuoteOut, slippageBps);
138
+ }
139
+ return {
140
+ expectedBaseOut,
141
+ expectedQuoteOut,
142
+ minBaseOut,
143
+ minQuoteOut,
144
+ };
145
+ }
146
+ /**
147
+ * Calculates the optimal swap amount and mergeable tokens without using square roots.
148
+ * @param userBalanceIn BN – Tokens that a user wants to dispose of.
149
+ * @param ammReserveIn BN – Amount of tokens in the AMM of the token that the user wants to dispose of.
150
+ * @param ammReserveOut BN – Amount of tokens in the AMM of the token that the user wants to receive.
151
+ * @returns An object containing the optimal swap amount, expected quote received, and expected mergeable tokens.
152
+ */
153
+ static calculateOptimalSwapForMerge(userBalanceIn, ammReserveIn, ammReserveOut, slippageBps) {
154
+ // essentially, we want to calculate the swap amount so that the remaining user balance = received token amount
155
+ // solve this system of equations for swapAmount, outputAmount (we only care about swap amount tho)
156
+ // (baseReserve + swapAmount) * (quoteReserve - outputAmount) = baseReserve * quoteReserve
157
+ // baseAmount - swapAmount = outputAmount
158
+ //solve equation
159
+ // (baseReserve + .99*swapAmount) * (quoteReserve - (userTokens - swapAmount)) = baseReserve * quoteReserve
160
+ // multiplying out the left hand side and subtracting baseReserve * quoteReserve from both sides yields the following:
161
+ // baseReserve*quoteReserve - baseReserve*userTokens + baseReserve*swapAmount + .99*swapAmount*quoteReserve - .99*swapAmount*userTokens + .99*swapAmount^2 = baseReserve*quoteReserve
162
+ // .99*swapAmount^2 + baseReserve*swapAmount + .99*swapAmount*quoteReserve - baseReserve*userTokens - .99*swapAmount*userTokens = 0
163
+ // in the quadratic equation, a = .99, b = (baseReserve + .99*quoteReserve - .99*userTokens), c = -baseReserve*userTokens
164
+ // x = (-b + sqrt(b^2 - 4ac)) / 2a
165
+ let a = 0.99;
166
+ let b = Number(ammReserveIn) +
167
+ 0.99 * Number(ammReserveOut) -
168
+ 0.99 * Number(userBalanceIn);
169
+ let c = -Number(ammReserveIn) * Number(userBalanceIn);
170
+ let x = (-b + Math.sqrt(b ** 2 - 4 * a * c)) / (2 * a);
171
+ //this should mathematically return a positive number assuming userBalanceIn, ammReserveIn, and ammReserveOut are all positive (which they should be)
172
+ // -b + Math.sqrt(b ** 2 - 4 * a * c) > 0 because -4*a*c > 0 and sqrt(b**2 + positive number) > b
173
+ const swapAmount = x;
174
+ let expectedOut = this.simulateSwapInner(new BN(swapAmount), ammReserveIn, ammReserveOut);
175
+ let minimumExpectedOut = Number(expectedOut) - (Number(expectedOut) * Number(slippageBps)) / 10000;
176
+ return {
177
+ optimalSwapAmount: new BN(swapAmount),
178
+ userInAfterSwap: new BN(Number(userBalanceIn) - swapAmount),
179
+ expectedOut: expectedOut,
180
+ minimumExpectedOut: new BN(minimumExpectedOut),
181
+ };
182
+ }
58
183
  }
184
+ // Add backwards compatibility alias
185
+ export { AmmMath as PriceMath };
59
186
  //# sourceMappingURL=priceMath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"priceMath.js","sourceRoot":"","sources":["../../../src/v0.4/utils/priceMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"priceMath.js","sourceRoot":"","sources":["../../../src/v0.4/utils/priceMath.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metadaoproject/futarchy",
3
- "version": "0.4.0-alpha.22",
3
+ "version": "0.4.0-alpha.23",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -1,12 +0,0 @@
1
- import BN from "bn.js";
2
- export declare class PriceMath {
3
- static getAmmPriceFromReserves(baseReserves: BN, quoteReserves: BN): BN;
4
- static getChainAmount(humanAmount: number, decimals: number): BN;
5
- static getHumanAmount(chainAmount: BN, decimals: number): number;
6
- static getHumanPrice(ammPrice: BN, baseDecimals: number, quoteDecimals: number): number;
7
- static getAmmPrice(humanPrice: number, baseDecimals: number, quoteDecimals: number): BN;
8
- static getAmmPrices(baseDecimals: number, quoteDecimals: number, ...prices: number[]): BN[];
9
- static scale(number: number, decimals: number): BN;
10
- static addSlippage(chainAmount: BN, slippageBps: BN): BN;
11
- static subtractSlippage(chainAmount: BN, slippageBps: BN): BN;
12
- }
@@ -1,52 +0,0 @@
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 PriceMath {
6
- static getAmmPriceFromReserves(baseReserves, quoteReserves) {
7
- return quoteReserves.mul(PRICE_SCALE).div(baseReserves);
8
- }
9
- static getChainAmount(humanAmount, decimals) {
10
- // you have to do it this weird way because BN can't be constructed with
11
- // numbers larger than 2**50
12
- const [integerPart, fractionalPart = ""] = humanAmount
13
- .toString()
14
- .split(".");
15
- return new BN(integerPart + fractionalPart)
16
- .mul(new BN(10).pow(new BN(decimals)))
17
- .div(new BN(10).pow(new BN(fractionalPart.length)));
18
- }
19
- static getHumanAmount(chainAmount, decimals) {
20
- return chainAmount.toNumber() / 10 ** decimals;
21
- }
22
- static getHumanPrice(ammPrice, baseDecimals, quoteDecimals) {
23
- let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
24
- let price1e12 = quoteDecimals > baseDecimals
25
- ? ammPrice.div(decimalScalar)
26
- : ammPrice.mul(decimalScalar);
27
- return price1e12.toNumber() / 1e12;
28
- }
29
- static getAmmPrice(humanPrice, baseDecimals, quoteDecimals) {
30
- let price1e12 = new BN(humanPrice * PRICE_SCALE_NUMBER);
31
- let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
32
- let scaledPrice = quoteDecimals > baseDecimals
33
- ? price1e12.mul(decimalScalar)
34
- : price1e12.div(decimalScalar);
35
- return scaledPrice;
36
- }
37
- static getAmmPrices(baseDecimals, quoteDecimals, ...prices) {
38
- // Map through each price, scaling it using the scalePrice method
39
- return prices.map((price) => this.getAmmPrice(price, baseDecimals, quoteDecimals));
40
- }
41
- static scale(number, decimals) {
42
- return new BN(number * 10 ** decimals);
43
- // return new BN(number).mul(new BN(10).pow(new BN(decimals)));
44
- }
45
- static addSlippage(chainAmount, slippageBps) {
46
- return chainAmount.mul(slippageBps.addn(10_000)).divn(10_000);
47
- }
48
- static subtractSlippage(chainAmount, slippageBps) {
49
- return chainAmount.mul(new BN(10_000).sub(slippageBps)).divn(10_000);
50
- }
51
- }
52
- //# sourceMappingURL=priceMath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"priceMath.js","sourceRoot":"","sources":["../../../src/v0.3/utils/priceMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,uBAAuB,CACnC,YAAgB,EAChB,aAAiB;QAEjB,OAAO,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,WAAmB,EAAE,QAAgB;QAChE,wEAAwE;QACxE,4BAA4B;QAC5B,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,EAAE,CAAC,GAAG,WAAW;aACnD,QAAQ,EAAE;aACV,KAAK,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,EAAE,CAAC,WAAW,GAAG,cAAc,CAAC;aACxC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;aACrC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,WAAe,EAAE,QAAgB;QAC5D,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,aAAa,CACzB,QAAY,EACZ,YAAoB,EACpB,aAAqB;QAErB,IAAI,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3E,IAAI,SAAS,GACX,aAAa,GAAG,YAAY;YAC1B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAElC,OAAO,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,UAAkB,EAClB,YAAoB,EACpB,aAAqB;QAErB,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC,CAAC;QAExD,IAAI,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3E,IAAI,WAAW,GACb,aAAa,GAAG,YAAY;YAC1B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;YAC9B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEnC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,YAAY,CACxB,YAAoB,EACpB,aAAqB,EACrB,GAAG,MAAgB;QAEnB,iEAAiE;QACjE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,CACrD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAc,EAAE,QAAgB;QAClD,OAAO,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;QACvC,+DAA+D;IACjE,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,WAAe,EAAE,WAAe;QACxD,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,WAAe,EAAE,WAAe;QAC7D,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;CACF"}