@pancakeswap/sdk 3.1.5 → 3.2.0

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.
package/dist/index.d.ts CHANGED
@@ -258,10 +258,6 @@ interface SwapParameters {
258
258
  * Represents the Pancake Router, and has static methods for helping execute trades.
259
259
  */
260
260
  declare abstract class Router {
261
- /**
262
- * Cannot be constructed.
263
- */
264
- private constructor();
265
261
  /**
266
262
  * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given trade.
267
263
  * @param trade to produce call parameters for
@@ -270,4 +266,17 @@ declare abstract class Router {
270
266
  static swapCallParameters(trade: Trade<Currency, Currency, TradeType>, options: TradeOptions | TradeOptionsDeadline): SwapParameters;
271
267
  }
272
268
 
273
- export { BestTradeOptions, ChainId, ERC20Token, FACTORY_ADDRESS, FACTORY_ADDRESS_MAP, INIT_CODE_HASH, INIT_CODE_HASH_MAP, NATIVE, Native, ONE_HUNDRED_PERCENT, Pair, Route, Router, SwapParameters, Trade, TradeOptions, TradeOptionsDeadline, WBNB, WETH9, WNATIVE, ZERO_PERCENT, computePairAddress, inputOutputComparator, isTradeBetter, tradeComparator };
269
+ declare function validateAndParseAddress(address: string): string;
270
+
271
+ /**
272
+ * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets
273
+ */
274
+ declare class Ether extends NativeCurrency {
275
+ protected constructor(chainId: number);
276
+ get wrapped(): Token;
277
+ private static _etherCache;
278
+ static onChain(chainId: number): Ether;
279
+ equals(other: Currency): boolean;
280
+ }
281
+
282
+ export { BestTradeOptions, ChainId, ERC20Token, Ether, FACTORY_ADDRESS, FACTORY_ADDRESS_MAP, INIT_CODE_HASH, INIT_CODE_HASH_MAP, NATIVE, Native, ONE_HUNDRED_PERCENT, Pair, Route, Router, SwapParameters, Trade, TradeOptions, TradeOptionsDeadline, WBNB, WETH9, WNATIVE, ZERO_PERCENT, computePairAddress, inputOutputComparator, isTradeBetter, tradeComparator, validateAndParseAddress };
package/dist/index.js CHANGED
@@ -1,99 +1,46 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ 'use strict';
30
2
 
31
- // src/index.ts
32
- var src_exports = {};
33
- __export(src_exports, {
34
- ChainId: () => ChainId,
35
- ERC20Token: () => ERC20Token,
36
- FACTORY_ADDRESS: () => FACTORY_ADDRESS,
37
- FACTORY_ADDRESS_MAP: () => FACTORY_ADDRESS_MAP,
38
- INIT_CODE_HASH: () => INIT_CODE_HASH,
39
- INIT_CODE_HASH_MAP: () => INIT_CODE_HASH_MAP,
40
- JSBI: () => import_jsbi2.default,
41
- NATIVE: () => NATIVE,
42
- Native: () => Native,
43
- ONE_HUNDRED_PERCENT: () => ONE_HUNDRED_PERCENT,
44
- Pair: () => Pair,
45
- Route: () => Route,
46
- Router: () => Router,
47
- Trade: () => Trade,
48
- WBNB: () => WBNB,
49
- WETH9: () => WETH9,
50
- WNATIVE: () => WNATIVE,
51
- ZERO_PERCENT: () => ZERO_PERCENT,
52
- computePairAddress: () => computePairAddress,
53
- inputOutputComparator: () => inputOutputComparator,
54
- isTradeBetter: () => isTradeBetter,
55
- tradeComparator: () => tradeComparator
56
- });
57
- module.exports = __toCommonJS(src_exports);
58
- var import_jsbi2 = __toESM(require("jsbi"));
3
+ var JSBI = require('jsbi');
4
+ var swapSdkCore = require('@pancakeswap/swap-sdk-core');
5
+ var address = require('@ethersproject/address');
6
+ var invariant4 = require('tiny-invariant');
7
+ var warning = require('tiny-warning');
8
+ var solidity = require('@ethersproject/solidity');
59
9
 
60
- // src/constants.ts
61
- var import_swap_sdk_core2 = require("@pancakeswap/swap-sdk-core");
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
62
11
 
63
- // src/entities/token.ts
64
- var import_swap_sdk_core = require("@pancakeswap/swap-sdk-core");
12
+ var JSBI__default = /*#__PURE__*/_interopDefault(JSBI);
13
+ var invariant4__default = /*#__PURE__*/_interopDefault(invariant4);
14
+ var warning__default = /*#__PURE__*/_interopDefault(warning);
65
15
 
66
- // src/utils.ts
67
- var import_address = require("@ethersproject/address");
68
- var import_tiny_invariant = __toESM(require("tiny-invariant"));
69
- var import_tiny_warning = __toESM(require("tiny-warning"));
70
- function validateAndParseAddress(address) {
16
+ // src/index.ts
17
+ function validateAndParseAddress(address$1) {
71
18
  try {
72
- const checksummedAddress = (0, import_address.getAddress)(address);
73
- (0, import_tiny_warning.default)(address === checksummedAddress, `${address} is not checksummed.`);
19
+ const checksummedAddress = address.getAddress(address$1);
20
+ warning__default.default(address$1 === checksummedAddress, `${address$1} is not checksummed.`);
74
21
  return checksummedAddress;
75
22
  } catch (error) {
76
- (0, import_tiny_invariant.default)(false, `${address} is not a valid address.`);
23
+ invariant4__default.default(false, `${address$1} is not a valid address.`);
77
24
  }
78
25
  }
79
26
 
80
27
  // src/entities/token.ts
81
- var ERC20Token = class extends import_swap_sdk_core.Token {
28
+ var ERC20Token = class extends swapSdkCore.Token {
82
29
  constructor(chainId, address, decimals, symbol, name, projectLink) {
83
30
  super(chainId, validateAndParseAddress(address), decimals, symbol, name, projectLink);
84
31
  }
85
32
  };
86
33
 
87
34
  // src/constants.ts
88
- var ChainId = /* @__PURE__ */ ((ChainId2) => {
89
- ChainId2[ChainId2["ETHEREUM"] = 1] = "ETHEREUM";
90
- ChainId2[ChainId2["GOERLI"] = 5] = "GOERLI";
91
- ChainId2[ChainId2["BSC"] = 56] = "BSC";
92
- ChainId2[ChainId2["BSC_TESTNET"] = 97] = "BSC_TESTNET";
93
- return ChainId2;
35
+ var ChainId = /* @__PURE__ */ ((ChainId3) => {
36
+ ChainId3[ChainId3["ETHEREUM"] = 1] = "ETHEREUM";
37
+ ChainId3[ChainId3["GOERLI"] = 5] = "GOERLI";
38
+ ChainId3[ChainId3["BSC"] = 56] = "BSC";
39
+ ChainId3[ChainId3["BSC_TESTNET"] = 97] = "BSC_TESTNET";
40
+ return ChainId3;
94
41
  })(ChainId || {});
95
- var ZERO_PERCENT = new import_swap_sdk_core2.Percent("0");
96
- var ONE_HUNDRED_PERCENT = new import_swap_sdk_core2.Percent("1");
42
+ var ZERO_PERCENT = new swapSdkCore.Percent("0");
43
+ var ONE_HUNDRED_PERCENT = new swapSdkCore.Percent("1");
97
44
  var FACTORY_ADDRESS = "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73";
98
45
  var FACTORY_ADDRESS_ETH = "0x1097053Fd2ea711dad45caCcc45EfF7548fCB362";
99
46
  var FACTORY_ADDRESS_MAP = {
@@ -191,13 +138,6 @@ function isTradeBetter(tradeA, tradeB, minimumDelta = ZERO_PERCENT) {
191
138
  }
192
139
  return tradeA.executionPrice.asFraction.multiply(minimumDelta.add(ONE_HUNDRED_PERCENT)).lessThan(tradeB.executionPrice);
193
140
  }
194
-
195
- // src/entities/pair.ts
196
- var import_swap_sdk_core3 = require("@pancakeswap/swap-sdk-core");
197
- var import_address2 = require("@ethersproject/address");
198
- var import_solidity = require("@ethersproject/solidity");
199
- var import_jsbi = __toESM(require("jsbi"));
200
- var import_tiny_invariant2 = __toESM(require("tiny-invariant"));
201
141
  var PAIR_ADDRESS_CACHE = {};
202
142
  var composeKey = (token0, token1) => `${token0.chainId}-${token0.address}-${token1.address}`;
203
143
  var computePairAddress = ({
@@ -210,9 +150,9 @@ var computePairAddress = ({
210
150
  if ((PAIR_ADDRESS_CACHE == null ? void 0 : PAIR_ADDRESS_CACHE[key]) === void 0) {
211
151
  PAIR_ADDRESS_CACHE = {
212
152
  ...PAIR_ADDRESS_CACHE,
213
- [key]: (0, import_address2.getCreate2Address)(
153
+ [key]: address.getCreate2Address(
214
154
  factoryAddress,
215
- (0, import_solidity.keccak256)(["bytes"], [(0, import_solidity.pack)(["address", "address"], [token0.address, token1.address])]),
155
+ solidity.keccak256(["bytes"], [solidity.pack(["address", "address"], [token0.address, token1.address])]),
216
156
  INIT_CODE_HASH_MAP[token0.chainId]
217
157
  )
218
158
  };
@@ -246,21 +186,21 @@ var Pair = class {
246
186
  */
247
187
  get token0Price() {
248
188
  const result = this.tokenAmounts[1].divide(this.tokenAmounts[0]);
249
- return new import_swap_sdk_core3.Price(this.token0, this.token1, result.denominator, result.numerator);
189
+ return new swapSdkCore.Price(this.token0, this.token1, result.denominator, result.numerator);
250
190
  }
251
191
  /**
252
192
  * Returns the current mid price of the pair in terms of token1, i.e. the ratio of reserve0 to reserve1
253
193
  */
254
194
  get token1Price() {
255
195
  const result = this.tokenAmounts[0].divide(this.tokenAmounts[1]);
256
- return new import_swap_sdk_core3.Price(this.token1, this.token0, result.denominator, result.numerator);
196
+ return new swapSdkCore.Price(this.token1, this.token0, result.denominator, result.numerator);
257
197
  }
258
198
  /**
259
199
  * Return the price of the given token in terms of the other token in the pair.
260
200
  * @param token token to return price of
261
201
  */
262
202
  priceOf(token) {
263
- (0, import_tiny_invariant2.default)(this.involvesToken(token), "TOKEN");
203
+ invariant4__default.default(this.involvesToken(token), "TOKEN");
264
204
  return token.equals(this.token0) ? this.token0Price : this.token1Price;
265
205
  }
266
206
  /**
@@ -282,82 +222,82 @@ var Pair = class {
282
222
  return this.tokenAmounts[1];
283
223
  }
284
224
  reserveOf(token) {
285
- (0, import_tiny_invariant2.default)(this.involvesToken(token), "TOKEN");
225
+ invariant4__default.default(this.involvesToken(token), "TOKEN");
286
226
  return token.equals(this.token0) ? this.reserve0 : this.reserve1;
287
227
  }
288
228
  getOutputAmount(inputAmount) {
289
- (0, import_tiny_invariant2.default)(this.involvesToken(inputAmount.currency), "TOKEN");
290
- if (import_jsbi.default.equal(this.reserve0.quotient, import_swap_sdk_core3.ZERO) || import_jsbi.default.equal(this.reserve1.quotient, import_swap_sdk_core3.ZERO)) {
291
- throw new import_swap_sdk_core3.InsufficientReservesError();
229
+ invariant4__default.default(this.involvesToken(inputAmount.currency), "TOKEN");
230
+ if (JSBI__default.default.equal(this.reserve0.quotient, swapSdkCore.ZERO) || JSBI__default.default.equal(this.reserve1.quotient, swapSdkCore.ZERO)) {
231
+ throw new swapSdkCore.InsufficientReservesError();
292
232
  }
293
233
  const inputReserve = this.reserveOf(inputAmount.currency);
294
234
  const outputReserve = this.reserveOf(inputAmount.currency.equals(this.token0) ? this.token1 : this.token0);
295
- const inputAmountWithFee = import_jsbi.default.multiply(inputAmount.quotient, import_swap_sdk_core3._9975);
296
- const numerator = import_jsbi.default.multiply(inputAmountWithFee, outputReserve.quotient);
297
- const denominator = import_jsbi.default.add(import_jsbi.default.multiply(inputReserve.quotient, import_swap_sdk_core3._10000), inputAmountWithFee);
298
- const outputAmount = import_swap_sdk_core3.CurrencyAmount.fromRawAmount(
235
+ const inputAmountWithFee = JSBI__default.default.multiply(inputAmount.quotient, swapSdkCore._9975);
236
+ const numerator = JSBI__default.default.multiply(inputAmountWithFee, outputReserve.quotient);
237
+ const denominator = JSBI__default.default.add(JSBI__default.default.multiply(inputReserve.quotient, swapSdkCore._10000), inputAmountWithFee);
238
+ const outputAmount = swapSdkCore.CurrencyAmount.fromRawAmount(
299
239
  inputAmount.currency.equals(this.token0) ? this.token1 : this.token0,
300
- import_jsbi.default.divide(numerator, denominator)
240
+ JSBI__default.default.divide(numerator, denominator)
301
241
  );
302
- if (import_jsbi.default.equal(outputAmount.quotient, import_swap_sdk_core3.ZERO)) {
303
- throw new import_swap_sdk_core3.InsufficientInputAmountError();
242
+ if (JSBI__default.default.equal(outputAmount.quotient, swapSdkCore.ZERO)) {
243
+ throw new swapSdkCore.InsufficientInputAmountError();
304
244
  }
305
245
  return [outputAmount, new Pair(inputReserve.add(inputAmount), outputReserve.subtract(outputAmount))];
306
246
  }
307
247
  getInputAmount(outputAmount) {
308
- (0, import_tiny_invariant2.default)(this.involvesToken(outputAmount.currency), "TOKEN");
309
- if (import_jsbi.default.equal(this.reserve0.quotient, import_swap_sdk_core3.ZERO) || import_jsbi.default.equal(this.reserve1.quotient, import_swap_sdk_core3.ZERO) || import_jsbi.default.greaterThanOrEqual(outputAmount.quotient, this.reserveOf(outputAmount.currency).quotient)) {
310
- throw new import_swap_sdk_core3.InsufficientReservesError();
248
+ invariant4__default.default(this.involvesToken(outputAmount.currency), "TOKEN");
249
+ if (JSBI__default.default.equal(this.reserve0.quotient, swapSdkCore.ZERO) || JSBI__default.default.equal(this.reserve1.quotient, swapSdkCore.ZERO) || JSBI__default.default.greaterThanOrEqual(outputAmount.quotient, this.reserveOf(outputAmount.currency).quotient)) {
250
+ throw new swapSdkCore.InsufficientReservesError();
311
251
  }
312
252
  const outputReserve = this.reserveOf(outputAmount.currency);
313
253
  const inputReserve = this.reserveOf(outputAmount.currency.equals(this.token0) ? this.token1 : this.token0);
314
- const numerator = import_jsbi.default.multiply(import_jsbi.default.multiply(inputReserve.quotient, outputAmount.quotient), import_swap_sdk_core3._10000);
315
- const denominator = import_jsbi.default.multiply(import_jsbi.default.subtract(outputReserve.quotient, outputAmount.quotient), import_swap_sdk_core3._9975);
316
- const inputAmount = import_swap_sdk_core3.CurrencyAmount.fromRawAmount(
254
+ const numerator = JSBI__default.default.multiply(JSBI__default.default.multiply(inputReserve.quotient, outputAmount.quotient), swapSdkCore._10000);
255
+ const denominator = JSBI__default.default.multiply(JSBI__default.default.subtract(outputReserve.quotient, outputAmount.quotient), swapSdkCore._9975);
256
+ const inputAmount = swapSdkCore.CurrencyAmount.fromRawAmount(
317
257
  outputAmount.currency.equals(this.token0) ? this.token1 : this.token0,
318
- import_jsbi.default.add(import_jsbi.default.divide(numerator, denominator), import_swap_sdk_core3.ONE)
258
+ JSBI__default.default.add(JSBI__default.default.divide(numerator, denominator), swapSdkCore.ONE)
319
259
  );
320
260
  return [inputAmount, new Pair(inputReserve.add(inputAmount), outputReserve.subtract(outputAmount))];
321
261
  }
322
262
  getLiquidityMinted(totalSupply, tokenAmountA, tokenAmountB) {
323
- (0, import_tiny_invariant2.default)(totalSupply.currency.equals(this.liquidityToken), "LIQUIDITY");
263
+ invariant4__default.default(totalSupply.currency.equals(this.liquidityToken), "LIQUIDITY");
324
264
  const tokenAmounts = tokenAmountA.currency.sortsBefore(tokenAmountB.currency) ? [tokenAmountA, tokenAmountB] : [tokenAmountB, tokenAmountA];
325
- (0, import_tiny_invariant2.default)(tokenAmounts[0].currency.equals(this.token0) && tokenAmounts[1].currency.equals(this.token1), "TOKEN");
265
+ invariant4__default.default(tokenAmounts[0].currency.equals(this.token0) && tokenAmounts[1].currency.equals(this.token1), "TOKEN");
326
266
  let liquidity;
327
- if (import_jsbi.default.equal(totalSupply.quotient, import_swap_sdk_core3.ZERO)) {
328
- liquidity = import_jsbi.default.subtract(
329
- (0, import_swap_sdk_core3.sqrt)(import_jsbi.default.multiply(tokenAmounts[0].quotient, tokenAmounts[1].quotient)),
330
- import_swap_sdk_core3.MINIMUM_LIQUIDITY
267
+ if (JSBI__default.default.equal(totalSupply.quotient, swapSdkCore.ZERO)) {
268
+ liquidity = JSBI__default.default.subtract(
269
+ swapSdkCore.sqrt(JSBI__default.default.multiply(tokenAmounts[0].quotient, tokenAmounts[1].quotient)),
270
+ swapSdkCore.MINIMUM_LIQUIDITY
331
271
  );
332
272
  } else {
333
- const amount0 = import_jsbi.default.divide(import_jsbi.default.multiply(tokenAmounts[0].quotient, totalSupply.quotient), this.reserve0.quotient);
334
- const amount1 = import_jsbi.default.divide(import_jsbi.default.multiply(tokenAmounts[1].quotient, totalSupply.quotient), this.reserve1.quotient);
335
- liquidity = import_jsbi.default.lessThanOrEqual(amount0, amount1) ? amount0 : amount1;
273
+ const amount0 = JSBI__default.default.divide(JSBI__default.default.multiply(tokenAmounts[0].quotient, totalSupply.quotient), this.reserve0.quotient);
274
+ const amount1 = JSBI__default.default.divide(JSBI__default.default.multiply(tokenAmounts[1].quotient, totalSupply.quotient), this.reserve1.quotient);
275
+ liquidity = JSBI__default.default.lessThanOrEqual(amount0, amount1) ? amount0 : amount1;
336
276
  }
337
- if (!import_jsbi.default.greaterThan(liquidity, import_swap_sdk_core3.ZERO)) {
338
- throw new import_swap_sdk_core3.InsufficientInputAmountError();
277
+ if (!JSBI__default.default.greaterThan(liquidity, swapSdkCore.ZERO)) {
278
+ throw new swapSdkCore.InsufficientInputAmountError();
339
279
  }
340
- return import_swap_sdk_core3.CurrencyAmount.fromRawAmount(this.liquidityToken, liquidity);
280
+ return swapSdkCore.CurrencyAmount.fromRawAmount(this.liquidityToken, liquidity);
341
281
  }
342
282
  getLiquidityValue(token, totalSupply, liquidity, feeOn = false, kLast) {
343
- (0, import_tiny_invariant2.default)(this.involvesToken(token), "TOKEN");
344
- (0, import_tiny_invariant2.default)(totalSupply.currency.equals(this.liquidityToken), "TOTAL_SUPPLY");
345
- (0, import_tiny_invariant2.default)(liquidity.currency.equals(this.liquidityToken), "LIQUIDITY");
346
- (0, import_tiny_invariant2.default)(import_jsbi.default.lessThanOrEqual(liquidity.quotient, totalSupply.quotient), "LIQUIDITY");
283
+ invariant4__default.default(this.involvesToken(token), "TOKEN");
284
+ invariant4__default.default(totalSupply.currency.equals(this.liquidityToken), "TOTAL_SUPPLY");
285
+ invariant4__default.default(liquidity.currency.equals(this.liquidityToken), "LIQUIDITY");
286
+ invariant4__default.default(JSBI__default.default.lessThanOrEqual(liquidity.quotient, totalSupply.quotient), "LIQUIDITY");
347
287
  let totalSupplyAdjusted;
348
288
  if (!feeOn) {
349
289
  totalSupplyAdjusted = totalSupply;
350
290
  } else {
351
- (0, import_tiny_invariant2.default)(!!kLast, "K_LAST");
352
- const kLastParsed = import_jsbi.default.BigInt(kLast);
353
- if (!import_jsbi.default.equal(kLastParsed, import_swap_sdk_core3.ZERO)) {
354
- const rootK = (0, import_swap_sdk_core3.sqrt)(import_jsbi.default.multiply(this.reserve0.quotient, this.reserve1.quotient));
355
- const rootKLast = (0, import_swap_sdk_core3.sqrt)(kLastParsed);
356
- if (import_jsbi.default.greaterThan(rootK, rootKLast)) {
357
- const numerator = import_jsbi.default.multiply(totalSupply.quotient, import_jsbi.default.subtract(rootK, rootKLast));
358
- const denominator = import_jsbi.default.add(import_jsbi.default.multiply(rootK, import_swap_sdk_core3.FIVE), rootKLast);
359
- const feeLiquidity = import_jsbi.default.divide(numerator, denominator);
360
- totalSupplyAdjusted = totalSupply.add(import_swap_sdk_core3.CurrencyAmount.fromRawAmount(this.liquidityToken, feeLiquidity));
291
+ invariant4__default.default(!!kLast, "K_LAST");
292
+ const kLastParsed = JSBI__default.default.BigInt(kLast);
293
+ if (!JSBI__default.default.equal(kLastParsed, swapSdkCore.ZERO)) {
294
+ const rootK = swapSdkCore.sqrt(JSBI__default.default.multiply(this.reserve0.quotient, this.reserve1.quotient));
295
+ const rootKLast = swapSdkCore.sqrt(kLastParsed);
296
+ if (JSBI__default.default.greaterThan(rootK, rootKLast)) {
297
+ const numerator = JSBI__default.default.multiply(totalSupply.quotient, JSBI__default.default.subtract(rootK, rootKLast));
298
+ const denominator = JSBI__default.default.add(JSBI__default.default.multiply(rootK, swapSdkCore.FIVE), rootKLast);
299
+ const feeLiquidity = JSBI__default.default.divide(numerator, denominator);
300
+ totalSupplyAdjusted = totalSupply.add(swapSdkCore.CurrencyAmount.fromRawAmount(this.liquidityToken, feeLiquidity));
361
301
  } else {
362
302
  totalSupplyAdjusted = totalSupply;
363
303
  }
@@ -365,32 +305,28 @@ var Pair = class {
365
305
  totalSupplyAdjusted = totalSupply;
366
306
  }
367
307
  }
368
- return import_swap_sdk_core3.CurrencyAmount.fromRawAmount(
308
+ return swapSdkCore.CurrencyAmount.fromRawAmount(
369
309
  token,
370
- import_jsbi.default.divide(import_jsbi.default.multiply(liquidity.quotient, this.reserveOf(token).quotient), totalSupplyAdjusted.quotient)
310
+ JSBI__default.default.divide(JSBI__default.default.multiply(liquidity.quotient, this.reserveOf(token).quotient), totalSupplyAdjusted.quotient)
371
311
  );
372
312
  }
373
313
  };
374
-
375
- // src/entities/route.ts
376
- var import_tiny_invariant3 = __toESM(require("tiny-invariant"));
377
- var import_swap_sdk_core4 = require("@pancakeswap/swap-sdk-core");
378
314
  var Route = class {
379
315
  constructor(pairs, input, output) {
380
316
  this._midPrice = null;
381
- (0, import_tiny_invariant3.default)(pairs.length > 0, "PAIRS");
317
+ invariant4__default.default(pairs.length > 0, "PAIRS");
382
318
  const chainId = pairs[0].chainId;
383
- (0, import_tiny_invariant3.default)(
319
+ invariant4__default.default(
384
320
  pairs.every((pair) => pair.chainId === chainId),
385
321
  "CHAIN_IDS"
386
322
  );
387
323
  const wrappedInput = input.wrapped;
388
- (0, import_tiny_invariant3.default)(pairs[0].involvesToken(wrappedInput), "INPUT");
389
- (0, import_tiny_invariant3.default)(typeof output === "undefined" || pairs[pairs.length - 1].involvesToken(output.wrapped), "OUTPUT");
324
+ invariant4__default.default(pairs[0].involvesToken(wrappedInput), "INPUT");
325
+ invariant4__default.default(typeof output === "undefined" || pairs[pairs.length - 1].involvesToken(output.wrapped), "OUTPUT");
390
326
  const path = [wrappedInput];
391
327
  for (const [i, pair] of pairs.entries()) {
392
328
  const currentInput = path[i];
393
- (0, import_tiny_invariant3.default)(currentInput.equals(pair.token0) || currentInput.equals(pair.token1), "PATH");
329
+ invariant4__default.default(currentInput.equals(pair.token0) || currentInput.equals(pair.token1), "PATH");
394
330
  const output2 = currentInput.equals(pair.token0) ? pair.token1 : pair.token0;
395
331
  path.push(output2);
396
332
  }
@@ -405,23 +341,19 @@ var Route = class {
405
341
  const prices = [];
406
342
  for (const [i, pair] of this.pairs.entries()) {
407
343
  prices.push(
408
- this.path[i].equals(pair.token0) ? new import_swap_sdk_core4.Price(pair.reserve0.currency, pair.reserve1.currency, pair.reserve0.quotient, pair.reserve1.quotient) : new import_swap_sdk_core4.Price(pair.reserve1.currency, pair.reserve0.currency, pair.reserve1.quotient, pair.reserve0.quotient)
344
+ this.path[i].equals(pair.token0) ? new swapSdkCore.Price(pair.reserve0.currency, pair.reserve1.currency, pair.reserve0.quotient, pair.reserve1.quotient) : new swapSdkCore.Price(pair.reserve1.currency, pair.reserve0.currency, pair.reserve1.quotient, pair.reserve0.quotient)
409
345
  );
410
346
  }
411
347
  const reduced = prices.slice(1).reduce((accumulator, currentValue) => accumulator.multiply(currentValue), prices[0]);
412
- return this._midPrice = new import_swap_sdk_core4.Price(this.input, this.output, reduced.denominator, reduced.numerator);
348
+ return this._midPrice = new swapSdkCore.Price(this.input, this.output, reduced.denominator, reduced.numerator);
413
349
  }
414
350
  get chainId() {
415
351
  return this.pairs[0].chainId;
416
352
  }
417
353
  };
418
-
419
- // src/entities/trade.ts
420
- var import_tiny_invariant4 = __toESM(require("tiny-invariant"));
421
- var import_swap_sdk_core5 = require("@pancakeswap/swap-sdk-core");
422
354
  function inputOutputComparator(a, b) {
423
- (0, import_tiny_invariant4.default)(a.inputAmount.currency.equals(b.inputAmount.currency), "INPUT_CURRENCY");
424
- (0, import_tiny_invariant4.default)(a.outputAmount.currency.equals(b.outputAmount.currency), "OUTPUT_CURRENCY");
355
+ invariant4__default.default(a.inputAmount.currency.equals(b.inputAmount.currency), "INPUT_CURRENCY");
356
+ invariant4__default.default(a.outputAmount.currency.equals(b.outputAmount.currency), "OUTPUT_CURRENCY");
425
357
  if (a.outputAmount.equalTo(b.outputAmount)) {
426
358
  if (a.inputAmount.equalTo(b.inputAmount)) {
427
359
  return 0;
@@ -456,7 +388,7 @@ var Trade = class {
456
388
  * @param amountIn the amount being passed in
457
389
  */
458
390
  static exactIn(route, amountIn) {
459
- return new Trade(route, amountIn, import_swap_sdk_core5.TradeType.EXACT_INPUT);
391
+ return new Trade(route, amountIn, swapSdkCore.TradeType.EXACT_INPUT);
460
392
  }
461
393
  /**
462
394
  * Constructs an exact out trade with the given amount out and route
@@ -464,72 +396,72 @@ var Trade = class {
464
396
  * @param amountOut the amount returned by the trade
465
397
  */
466
398
  static exactOut(route, amountOut) {
467
- return new Trade(route, amountOut, import_swap_sdk_core5.TradeType.EXACT_OUTPUT);
399
+ return new Trade(route, amountOut, swapSdkCore.TradeType.EXACT_OUTPUT);
468
400
  }
469
401
  constructor(route, amount, tradeType) {
470
402
  this.route = route;
471
403
  this.tradeType = tradeType;
472
404
  const tokenAmounts = new Array(route.path.length);
473
- if (tradeType === import_swap_sdk_core5.TradeType.EXACT_INPUT) {
474
- (0, import_tiny_invariant4.default)(amount.currency.equals(route.input), "INPUT");
405
+ if (tradeType === swapSdkCore.TradeType.EXACT_INPUT) {
406
+ invariant4__default.default(amount.currency.equals(route.input), "INPUT");
475
407
  tokenAmounts[0] = amount.wrapped;
476
408
  for (let i = 0; i < route.path.length - 1; i++) {
477
409
  const pair = route.pairs[i];
478
410
  const [outputAmount] = pair.getOutputAmount(tokenAmounts[i]);
479
411
  tokenAmounts[i + 1] = outputAmount;
480
412
  }
481
- this.inputAmount = import_swap_sdk_core5.CurrencyAmount.fromFractionalAmount(route.input, amount.numerator, amount.denominator);
482
- this.outputAmount = import_swap_sdk_core5.CurrencyAmount.fromFractionalAmount(
413
+ this.inputAmount = swapSdkCore.CurrencyAmount.fromFractionalAmount(route.input, amount.numerator, amount.denominator);
414
+ this.outputAmount = swapSdkCore.CurrencyAmount.fromFractionalAmount(
483
415
  route.output,
484
416
  tokenAmounts[tokenAmounts.length - 1].numerator,
485
417
  tokenAmounts[tokenAmounts.length - 1].denominator
486
418
  );
487
419
  } else {
488
- (0, import_tiny_invariant4.default)(amount.currency.equals(route.output), "OUTPUT");
420
+ invariant4__default.default(amount.currency.equals(route.output), "OUTPUT");
489
421
  tokenAmounts[tokenAmounts.length - 1] = amount.wrapped;
490
422
  for (let i = route.path.length - 1; i > 0; i--) {
491
423
  const pair = route.pairs[i - 1];
492
424
  const [inputAmount] = pair.getInputAmount(tokenAmounts[i]);
493
425
  tokenAmounts[i - 1] = inputAmount;
494
426
  }
495
- this.inputAmount = import_swap_sdk_core5.CurrencyAmount.fromFractionalAmount(
427
+ this.inputAmount = swapSdkCore.CurrencyAmount.fromFractionalAmount(
496
428
  route.input,
497
429
  tokenAmounts[0].numerator,
498
430
  tokenAmounts[0].denominator
499
431
  );
500
- this.outputAmount = import_swap_sdk_core5.CurrencyAmount.fromFractionalAmount(route.output, amount.numerator, amount.denominator);
432
+ this.outputAmount = swapSdkCore.CurrencyAmount.fromFractionalAmount(route.output, amount.numerator, amount.denominator);
501
433
  }
502
- this.executionPrice = new import_swap_sdk_core5.Price(
434
+ this.executionPrice = new swapSdkCore.Price(
503
435
  this.inputAmount.currency,
504
436
  this.outputAmount.currency,
505
437
  this.inputAmount.quotient,
506
438
  this.outputAmount.quotient
507
439
  );
508
- this.priceImpact = (0, import_swap_sdk_core5.computePriceImpact)(route.midPrice, this.inputAmount, this.outputAmount);
440
+ this.priceImpact = swapSdkCore.computePriceImpact(route.midPrice, this.inputAmount, this.outputAmount);
509
441
  }
510
442
  /**
511
443
  * Get the minimum amount that must be received from this trade for the given slippage tolerance
512
444
  * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade
513
445
  */
514
446
  minimumAmountOut(slippageTolerance) {
515
- (0, import_tiny_invariant4.default)(!slippageTolerance.lessThan(import_swap_sdk_core5.ZERO), "SLIPPAGE_TOLERANCE");
516
- if (this.tradeType === import_swap_sdk_core5.TradeType.EXACT_OUTPUT) {
447
+ invariant4__default.default(!slippageTolerance.lessThan(swapSdkCore.ZERO), "SLIPPAGE_TOLERANCE");
448
+ if (this.tradeType === swapSdkCore.TradeType.EXACT_OUTPUT) {
517
449
  return this.outputAmount;
518
450
  }
519
- const slippageAdjustedAmountOut = new import_swap_sdk_core5.Fraction(import_swap_sdk_core5.ONE).add(slippageTolerance).invert().multiply(this.outputAmount.quotient).quotient;
520
- return import_swap_sdk_core5.CurrencyAmount.fromRawAmount(this.outputAmount.currency, slippageAdjustedAmountOut);
451
+ const slippageAdjustedAmountOut = new swapSdkCore.Fraction(swapSdkCore.ONE).add(slippageTolerance).invert().multiply(this.outputAmount.quotient).quotient;
452
+ return swapSdkCore.CurrencyAmount.fromRawAmount(this.outputAmount.currency, slippageAdjustedAmountOut);
521
453
  }
522
454
  /**
523
455
  * Get the maximum amount in that can be spent via this trade for the given slippage tolerance
524
456
  * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade
525
457
  */
526
458
  maximumAmountIn(slippageTolerance) {
527
- (0, import_tiny_invariant4.default)(!slippageTolerance.lessThan(import_swap_sdk_core5.ZERO), "SLIPPAGE_TOLERANCE");
528
- if (this.tradeType === import_swap_sdk_core5.TradeType.EXACT_INPUT) {
459
+ invariant4__default.default(!slippageTolerance.lessThan(swapSdkCore.ZERO), "SLIPPAGE_TOLERANCE");
460
+ if (this.tradeType === swapSdkCore.TradeType.EXACT_INPUT) {
529
461
  return this.inputAmount;
530
462
  }
531
- const slippageAdjustedAmountIn = new import_swap_sdk_core5.Fraction(import_swap_sdk_core5.ONE).add(slippageTolerance).multiply(this.inputAmount.quotient).quotient;
532
- return import_swap_sdk_core5.CurrencyAmount.fromRawAmount(this.inputAmount.currency, slippageAdjustedAmountIn);
463
+ const slippageAdjustedAmountIn = new swapSdkCore.Fraction(swapSdkCore.ONE).add(slippageTolerance).multiply(this.inputAmount.quotient).quotient;
464
+ return swapSdkCore.CurrencyAmount.fromRawAmount(this.inputAmount.currency, slippageAdjustedAmountIn);
533
465
  }
534
466
  /**
535
467
  * Given a list of pairs, and a fixed amount in, returns the top `maxNumResults` trades that go from an input token
@@ -546,16 +478,16 @@ var Trade = class {
546
478
  * @param bestTrades used in recursion; the current list of best trades
547
479
  */
548
480
  static bestTradeExactIn(pairs, currencyAmountIn, currencyOut, { maxNumResults = 3, maxHops = 3 } = {}, currentPairs = [], nextAmountIn = currencyAmountIn, bestTrades = []) {
549
- (0, import_tiny_invariant4.default)(pairs.length > 0, "PAIRS");
550
- (0, import_tiny_invariant4.default)(maxHops > 0, "MAX_HOPS");
551
- (0, import_tiny_invariant4.default)(currencyAmountIn === nextAmountIn || currentPairs.length > 0, "INVALID_RECURSION");
481
+ invariant4__default.default(pairs.length > 0, "PAIRS");
482
+ invariant4__default.default(maxHops > 0, "MAX_HOPS");
483
+ invariant4__default.default(currencyAmountIn === nextAmountIn || currentPairs.length > 0, "INVALID_RECURSION");
552
484
  const amountIn = nextAmountIn.wrapped;
553
485
  const tokenOut = currencyOut.wrapped;
554
486
  for (let i = 0; i < pairs.length; i++) {
555
487
  const pair = pairs[i];
556
488
  if (!pair.token0.equals(amountIn.currency) && !pair.token1.equals(amountIn.currency))
557
489
  continue;
558
- if (pair.reserve0.equalTo(import_swap_sdk_core5.ZERO) || pair.reserve1.equalTo(import_swap_sdk_core5.ZERO))
490
+ if (pair.reserve0.equalTo(swapSdkCore.ZERO) || pair.reserve1.equalTo(swapSdkCore.ZERO))
559
491
  continue;
560
492
  let amountOut;
561
493
  try {
@@ -568,12 +500,12 @@ var Trade = class {
568
500
  throw error;
569
501
  }
570
502
  if (amountOut.currency.equals(tokenOut)) {
571
- (0, import_swap_sdk_core5.sortedInsert)(
503
+ swapSdkCore.sortedInsert(
572
504
  bestTrades,
573
505
  new Trade(
574
506
  new Route([...currentPairs, pair], currencyAmountIn.currency, currencyOut),
575
507
  currencyAmountIn,
576
- import_swap_sdk_core5.TradeType.EXACT_INPUT
508
+ swapSdkCore.TradeType.EXACT_INPUT
577
509
  ),
578
510
  maxNumResults,
579
511
  tradeComparator
@@ -601,7 +533,7 @@ var Trade = class {
601
533
  * @param slippageTolerance the allowed tolerated slippage
602
534
  */
603
535
  worstExecutionPrice(slippageTolerance) {
604
- return new import_swap_sdk_core5.Price(
536
+ return new swapSdkCore.Price(
605
537
  this.inputAmount.currency,
606
538
  this.outputAmount.currency,
607
539
  this.maximumAmountIn(slippageTolerance).quotient,
@@ -624,16 +556,16 @@ var Trade = class {
624
556
  * @param bestTrades used in recursion; the current list of best trades
625
557
  */
626
558
  static bestTradeExactOut(pairs, currencyIn, currencyAmountOut, { maxNumResults = 3, maxHops = 3 } = {}, currentPairs = [], nextAmountOut = currencyAmountOut, bestTrades = []) {
627
- (0, import_tiny_invariant4.default)(pairs.length > 0, "PAIRS");
628
- (0, import_tiny_invariant4.default)(maxHops > 0, "MAX_HOPS");
629
- (0, import_tiny_invariant4.default)(currencyAmountOut === nextAmountOut || currentPairs.length > 0, "INVALID_RECURSION");
559
+ invariant4__default.default(pairs.length > 0, "PAIRS");
560
+ invariant4__default.default(maxHops > 0, "MAX_HOPS");
561
+ invariant4__default.default(currencyAmountOut === nextAmountOut || currentPairs.length > 0, "INVALID_RECURSION");
630
562
  const amountOut = nextAmountOut.wrapped;
631
563
  const tokenIn = currencyIn.wrapped;
632
564
  for (let i = 0; i < pairs.length; i++) {
633
565
  const pair = pairs[i];
634
566
  if (!pair.token0.equals(amountOut.currency) && !pair.token1.equals(amountOut.currency))
635
567
  continue;
636
- if (pair.reserve0.equalTo(import_swap_sdk_core5.ZERO) || pair.reserve1.equalTo(import_swap_sdk_core5.ZERO))
568
+ if (pair.reserve0.equalTo(swapSdkCore.ZERO) || pair.reserve1.equalTo(swapSdkCore.ZERO))
637
569
  continue;
638
570
  let amountIn;
639
571
  try {
@@ -646,12 +578,12 @@ var Trade = class {
646
578
  throw error;
647
579
  }
648
580
  if (amountIn.currency.equals(tokenIn)) {
649
- (0, import_swap_sdk_core5.sortedInsert)(
581
+ swapSdkCore.sortedInsert(
650
582
  bestTrades,
651
583
  new Trade(
652
584
  new Route([pair, ...currentPairs], currencyIn, currencyAmountOut.currency),
653
585
  currencyAmountOut,
654
- import_swap_sdk_core5.TradeType.EXACT_OUTPUT
586
+ swapSdkCore.TradeType.EXACT_OUTPUT
655
587
  ),
656
588
  maxNumResults,
657
589
  tradeComparator
@@ -675,11 +607,7 @@ var Trade = class {
675
607
  return bestTrades;
676
608
  }
677
609
  };
678
-
679
- // src/entities/native.ts
680
- var import_tiny_invariant5 = __toESM(require("tiny-invariant"));
681
- var import_swap_sdk_core6 = require("@pancakeswap/swap-sdk-core");
682
- var _Native = class extends import_swap_sdk_core6.NativeCurrency {
610
+ var _Native = class extends swapSdkCore.NativeCurrency {
683
611
  constructor({
684
612
  chainId,
685
613
  decimals,
@@ -690,14 +618,14 @@ var _Native = class extends import_swap_sdk_core6.NativeCurrency {
690
618
  }
691
619
  get wrapped() {
692
620
  const wnative = WNATIVE[this.chainId];
693
- (0, import_tiny_invariant5.default)(!!wnative, "WRAPPED");
621
+ invariant4__default.default(!!wnative, "WRAPPED");
694
622
  return wnative;
695
623
  }
696
624
  static onChain(chainId) {
697
625
  if (chainId in this.cache) {
698
626
  return this.cache[chainId];
699
627
  }
700
- (0, import_tiny_invariant5.default)(!!NATIVE[chainId], "NATIVE_CURRENCY");
628
+ invariant4__default.default(!!NATIVE[chainId], "NATIVE_CURRENCY");
701
629
  const { decimals, name, symbol } = NATIVE[chainId];
702
630
  return this.cache[chainId] = new _Native({ chainId, decimals, symbol, name });
703
631
  }
@@ -707,20 +635,11 @@ var _Native = class extends import_swap_sdk_core6.NativeCurrency {
707
635
  };
708
636
  var Native = _Native;
709
637
  Native.cache = {};
710
-
711
- // src/router.ts
712
- var import_swap_sdk_core7 = require("@pancakeswap/swap-sdk-core");
713
- var import_tiny_invariant6 = __toESM(require("tiny-invariant"));
714
638
  function toHex(currencyAmount) {
715
639
  return `0x${currencyAmount.quotient.toString(16)}`;
716
640
  }
717
641
  var ZERO_HEX = "0x0";
718
642
  var Router = class {
719
- /**
720
- * Cannot be constructed.
721
- */
722
- constructor() {
723
- }
724
643
  /**
725
644
  * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given trade.
726
645
  * @param trade to produce call parameters for
@@ -729,19 +648,19 @@ var Router = class {
729
648
  static swapCallParameters(trade, options) {
730
649
  const etherIn = trade.inputAmount.currency.isNative;
731
650
  const etherOut = trade.outputAmount.currency.isNative;
732
- (0, import_tiny_invariant6.default)(!(etherIn && etherOut), "ETHER_IN_OUT");
733
- (0, import_tiny_invariant6.default)(!("ttl" in options) || options.ttl > 0, "TTL");
651
+ invariant4__default.default(!(etherIn && etherOut), "ETHER_IN_OUT");
652
+ invariant4__default.default(!("ttl" in options) || options.ttl > 0, "TTL");
734
653
  const to = validateAndParseAddress(options.recipient);
735
654
  const amountIn = toHex(trade.maximumAmountIn(options.allowedSlippage));
736
655
  const amountOut = toHex(trade.minimumAmountOut(options.allowedSlippage));
737
656
  const path = trade.route.path.map((token) => token.address);
738
- const deadline = "ttl" in options ? `0x${(Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) + options.ttl).toString(16)}` : `0x${options.deadline.toString(16)}`;
657
+ const deadline = "ttl" in options ? `0x${(Math.floor(( new Date()).getTime() / 1e3) + options.ttl).toString(16)}` : `0x${options.deadline.toString(16)}`;
739
658
  const useFeeOnTransfer = Boolean(options.feeOnTransfer);
740
659
  let methodName;
741
660
  let args;
742
661
  let value;
743
662
  switch (trade.tradeType) {
744
- case import_swap_sdk_core7.TradeType.EXACT_INPUT:
663
+ case swapSdkCore.TradeType.EXACT_INPUT:
745
664
  if (etherIn) {
746
665
  methodName = useFeeOnTransfer ? "swapExactETHForTokensSupportingFeeOnTransferTokens" : "swapExactETHForTokens";
747
666
  args = [amountOut, path, to, deadline];
@@ -756,8 +675,8 @@ var Router = class {
756
675
  value = ZERO_HEX;
757
676
  }
758
677
  break;
759
- case import_swap_sdk_core7.TradeType.EXACT_OUTPUT:
760
- (0, import_tiny_invariant6.default)(!useFeeOnTransfer, "EXACT_OUT_FOT");
678
+ case swapSdkCore.TradeType.EXACT_OUTPUT:
679
+ invariant4__default.default(!useFeeOnTransfer, "EXACT_OUT_FOT");
761
680
  if (etherIn) {
762
681
  methodName = "swapETHForExactTokens";
763
682
  args = [amountOut, path, to, deadline];
@@ -780,31 +699,58 @@ var Router = class {
780
699
  };
781
700
  }
782
701
  };
702
+ var _Ether = class extends swapSdkCore.NativeCurrency {
703
+ constructor(chainId) {
704
+ super(chainId, 18, "ETH", "Ether");
705
+ }
706
+ get wrapped() {
707
+ const weth9 = WETH9[this.chainId];
708
+ invariant4__default.default(!!weth9, "WRAPPED");
709
+ return weth9;
710
+ }
711
+ static onChain(chainId) {
712
+ if (!this._etherCache[chainId]) {
713
+ this._etherCache[chainId] = new _Ether(chainId);
714
+ }
715
+ return this._etherCache[chainId];
716
+ }
717
+ equals(other) {
718
+ return other.isNative && other.chainId === this.chainId;
719
+ }
720
+ };
721
+ var Ether = _Ether;
722
+ Ether._etherCache = {};
783
723
 
784
- // src/index.ts
785
- __reExport(src_exports, require("@pancakeswap/swap-sdk-core"), module.exports);
786
- // Annotate the CommonJS export names for ESM import in node:
787
- 0 && (module.exports = {
788
- ChainId,
789
- ERC20Token,
790
- FACTORY_ADDRESS,
791
- FACTORY_ADDRESS_MAP,
792
- INIT_CODE_HASH,
793
- INIT_CODE_HASH_MAP,
794
- JSBI,
795
- NATIVE,
796
- Native,
797
- ONE_HUNDRED_PERCENT,
798
- Pair,
799
- Route,
800
- Router,
801
- Trade,
802
- WBNB,
803
- WETH9,
804
- WNATIVE,
805
- ZERO_PERCENT,
806
- computePairAddress,
807
- inputOutputComparator,
808
- isTradeBetter,
809
- tradeComparator
724
+ Object.defineProperty(exports, 'JSBI', {
725
+ enumerable: true,
726
+ get: function () { return JSBI__default.default; }
727
+ });
728
+ exports.ChainId = ChainId;
729
+ exports.ERC20Token = ERC20Token;
730
+ exports.Ether = Ether;
731
+ exports.FACTORY_ADDRESS = FACTORY_ADDRESS;
732
+ exports.FACTORY_ADDRESS_MAP = FACTORY_ADDRESS_MAP;
733
+ exports.INIT_CODE_HASH = INIT_CODE_HASH;
734
+ exports.INIT_CODE_HASH_MAP = INIT_CODE_HASH_MAP;
735
+ exports.NATIVE = NATIVE;
736
+ exports.Native = Native;
737
+ exports.ONE_HUNDRED_PERCENT = ONE_HUNDRED_PERCENT;
738
+ exports.Pair = Pair;
739
+ exports.Route = Route;
740
+ exports.Router = Router;
741
+ exports.Trade = Trade;
742
+ exports.WBNB = WBNB;
743
+ exports.WETH9 = WETH9;
744
+ exports.WNATIVE = WNATIVE;
745
+ exports.ZERO_PERCENT = ZERO_PERCENT;
746
+ exports.computePairAddress = computePairAddress;
747
+ exports.inputOutputComparator = inputOutputComparator;
748
+ exports.isTradeBetter = isTradeBetter;
749
+ exports.tradeComparator = tradeComparator;
750
+ exports.validateAndParseAddress = validateAndParseAddress;
751
+ Object.keys(swapSdkCore).forEach(function (k) {
752
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
753
+ enumerable: true,
754
+ get: function () { return swapSdkCore[k]; }
755
+ });
810
756
  });
package/dist/index.mjs CHANGED
@@ -1,23 +1,20 @@
1
- // src/index.ts
2
- import JSBI2 from "jsbi";
3
-
4
- // src/constants.ts
5
- import { Percent } from "@pancakeswap/swap-sdk-core";
1
+ import JSBI from 'jsbi';
2
+ export { default as JSBI } from 'jsbi';
3
+ import { Percent, Token, Price, ZERO, InsufficientReservesError, _9975, _10000, CurrencyAmount, InsufficientInputAmountError, ONE, sqrt, MINIMUM_LIQUIDITY, FIVE, TradeType, computePriceImpact, Fraction, sortedInsert, NativeCurrency } from '@pancakeswap/swap-sdk-core';
4
+ export * from '@pancakeswap/swap-sdk-core';
5
+ import { getAddress, getCreate2Address } from '@ethersproject/address';
6
+ import invariant4 from 'tiny-invariant';
7
+ import warning from 'tiny-warning';
8
+ import { keccak256, pack } from '@ethersproject/solidity';
6
9
 
7
- // src/entities/token.ts
8
- import { Token } from "@pancakeswap/swap-sdk-core";
9
-
10
- // src/utils.ts
11
- import { getAddress } from "@ethersproject/address";
12
- import invariant from "tiny-invariant";
13
- import warning from "tiny-warning";
10
+ // src/index.ts
14
11
  function validateAndParseAddress(address) {
15
12
  try {
16
13
  const checksummedAddress = getAddress(address);
17
14
  warning(address === checksummedAddress, `${address} is not checksummed.`);
18
15
  return checksummedAddress;
19
16
  } catch (error) {
20
- invariant(false, `${address} is not a valid address.`);
17
+ invariant4(false, `${address} is not a valid address.`);
21
18
  }
22
19
  }
23
20
 
@@ -29,12 +26,12 @@ var ERC20Token = class extends Token {
29
26
  };
30
27
 
31
28
  // src/constants.ts
32
- var ChainId = /* @__PURE__ */ ((ChainId2) => {
33
- ChainId2[ChainId2["ETHEREUM"] = 1] = "ETHEREUM";
34
- ChainId2[ChainId2["GOERLI"] = 5] = "GOERLI";
35
- ChainId2[ChainId2["BSC"] = 56] = "BSC";
36
- ChainId2[ChainId2["BSC_TESTNET"] = 97] = "BSC_TESTNET";
37
- return ChainId2;
29
+ var ChainId = /* @__PURE__ */ ((ChainId3) => {
30
+ ChainId3[ChainId3["ETHEREUM"] = 1] = "ETHEREUM";
31
+ ChainId3[ChainId3["GOERLI"] = 5] = "GOERLI";
32
+ ChainId3[ChainId3["BSC"] = 56] = "BSC";
33
+ ChainId3[ChainId3["BSC_TESTNET"] = 97] = "BSC_TESTNET";
34
+ return ChainId3;
38
35
  })(ChainId || {});
39
36
  var ZERO_PERCENT = new Percent("0");
40
37
  var ONE_HUNDRED_PERCENT = new Percent("1");
@@ -135,25 +132,6 @@ function isTradeBetter(tradeA, tradeB, minimumDelta = ZERO_PERCENT) {
135
132
  }
136
133
  return tradeA.executionPrice.asFraction.multiply(minimumDelta.add(ONE_HUNDRED_PERCENT)).lessThan(tradeB.executionPrice);
137
134
  }
138
-
139
- // src/entities/pair.ts
140
- import {
141
- InsufficientInputAmountError,
142
- InsufficientReservesError,
143
- sqrt,
144
- CurrencyAmount,
145
- Price,
146
- FIVE,
147
- ONE,
148
- ZERO,
149
- _10000,
150
- _9975,
151
- MINIMUM_LIQUIDITY
152
- } from "@pancakeswap/swap-sdk-core";
153
- import { getCreate2Address } from "@ethersproject/address";
154
- import { keccak256, pack } from "@ethersproject/solidity";
155
- import JSBI from "jsbi";
156
- import invariant2 from "tiny-invariant";
157
135
  var PAIR_ADDRESS_CACHE = {};
158
136
  var composeKey = (token0, token1) => `${token0.chainId}-${token0.address}-${token1.address}`;
159
137
  var computePairAddress = ({
@@ -216,7 +194,7 @@ var Pair = class {
216
194
  * @param token token to return price of
217
195
  */
218
196
  priceOf(token) {
219
- invariant2(this.involvesToken(token), "TOKEN");
197
+ invariant4(this.involvesToken(token), "TOKEN");
220
198
  return token.equals(this.token0) ? this.token0Price : this.token1Price;
221
199
  }
222
200
  /**
@@ -238,11 +216,11 @@ var Pair = class {
238
216
  return this.tokenAmounts[1];
239
217
  }
240
218
  reserveOf(token) {
241
- invariant2(this.involvesToken(token), "TOKEN");
219
+ invariant4(this.involvesToken(token), "TOKEN");
242
220
  return token.equals(this.token0) ? this.reserve0 : this.reserve1;
243
221
  }
244
222
  getOutputAmount(inputAmount) {
245
- invariant2(this.involvesToken(inputAmount.currency), "TOKEN");
223
+ invariant4(this.involvesToken(inputAmount.currency), "TOKEN");
246
224
  if (JSBI.equal(this.reserve0.quotient, ZERO) || JSBI.equal(this.reserve1.quotient, ZERO)) {
247
225
  throw new InsufficientReservesError();
248
226
  }
@@ -261,7 +239,7 @@ var Pair = class {
261
239
  return [outputAmount, new Pair(inputReserve.add(inputAmount), outputReserve.subtract(outputAmount))];
262
240
  }
263
241
  getInputAmount(outputAmount) {
264
- invariant2(this.involvesToken(outputAmount.currency), "TOKEN");
242
+ invariant4(this.involvesToken(outputAmount.currency), "TOKEN");
265
243
  if (JSBI.equal(this.reserve0.quotient, ZERO) || JSBI.equal(this.reserve1.quotient, ZERO) || JSBI.greaterThanOrEqual(outputAmount.quotient, this.reserveOf(outputAmount.currency).quotient)) {
266
244
  throw new InsufficientReservesError();
267
245
  }
@@ -276,9 +254,9 @@ var Pair = class {
276
254
  return [inputAmount, new Pair(inputReserve.add(inputAmount), outputReserve.subtract(outputAmount))];
277
255
  }
278
256
  getLiquidityMinted(totalSupply, tokenAmountA, tokenAmountB) {
279
- invariant2(totalSupply.currency.equals(this.liquidityToken), "LIQUIDITY");
257
+ invariant4(totalSupply.currency.equals(this.liquidityToken), "LIQUIDITY");
280
258
  const tokenAmounts = tokenAmountA.currency.sortsBefore(tokenAmountB.currency) ? [tokenAmountA, tokenAmountB] : [tokenAmountB, tokenAmountA];
281
- invariant2(tokenAmounts[0].currency.equals(this.token0) && tokenAmounts[1].currency.equals(this.token1), "TOKEN");
259
+ invariant4(tokenAmounts[0].currency.equals(this.token0) && tokenAmounts[1].currency.equals(this.token1), "TOKEN");
282
260
  let liquidity;
283
261
  if (JSBI.equal(totalSupply.quotient, ZERO)) {
284
262
  liquidity = JSBI.subtract(
@@ -296,15 +274,15 @@ var Pair = class {
296
274
  return CurrencyAmount.fromRawAmount(this.liquidityToken, liquidity);
297
275
  }
298
276
  getLiquidityValue(token, totalSupply, liquidity, feeOn = false, kLast) {
299
- invariant2(this.involvesToken(token), "TOKEN");
300
- invariant2(totalSupply.currency.equals(this.liquidityToken), "TOTAL_SUPPLY");
301
- invariant2(liquidity.currency.equals(this.liquidityToken), "LIQUIDITY");
302
- invariant2(JSBI.lessThanOrEqual(liquidity.quotient, totalSupply.quotient), "LIQUIDITY");
277
+ invariant4(this.involvesToken(token), "TOKEN");
278
+ invariant4(totalSupply.currency.equals(this.liquidityToken), "TOTAL_SUPPLY");
279
+ invariant4(liquidity.currency.equals(this.liquidityToken), "LIQUIDITY");
280
+ invariant4(JSBI.lessThanOrEqual(liquidity.quotient, totalSupply.quotient), "LIQUIDITY");
303
281
  let totalSupplyAdjusted;
304
282
  if (!feeOn) {
305
283
  totalSupplyAdjusted = totalSupply;
306
284
  } else {
307
- invariant2(!!kLast, "K_LAST");
285
+ invariant4(!!kLast, "K_LAST");
308
286
  const kLastParsed = JSBI.BigInt(kLast);
309
287
  if (!JSBI.equal(kLastParsed, ZERO)) {
310
288
  const rootK = sqrt(JSBI.multiply(this.reserve0.quotient, this.reserve1.quotient));
@@ -327,26 +305,22 @@ var Pair = class {
327
305
  );
328
306
  }
329
307
  };
330
-
331
- // src/entities/route.ts
332
- import invariant3 from "tiny-invariant";
333
- import { Price as Price2 } from "@pancakeswap/swap-sdk-core";
334
308
  var Route = class {
335
309
  constructor(pairs, input, output) {
336
310
  this._midPrice = null;
337
- invariant3(pairs.length > 0, "PAIRS");
311
+ invariant4(pairs.length > 0, "PAIRS");
338
312
  const chainId = pairs[0].chainId;
339
- invariant3(
313
+ invariant4(
340
314
  pairs.every((pair) => pair.chainId === chainId),
341
315
  "CHAIN_IDS"
342
316
  );
343
317
  const wrappedInput = input.wrapped;
344
- invariant3(pairs[0].involvesToken(wrappedInput), "INPUT");
345
- invariant3(typeof output === "undefined" || pairs[pairs.length - 1].involvesToken(output.wrapped), "OUTPUT");
318
+ invariant4(pairs[0].involvesToken(wrappedInput), "INPUT");
319
+ invariant4(typeof output === "undefined" || pairs[pairs.length - 1].involvesToken(output.wrapped), "OUTPUT");
346
320
  const path = [wrappedInput];
347
321
  for (const [i, pair] of pairs.entries()) {
348
322
  const currentInput = path[i];
349
- invariant3(currentInput.equals(pair.token0) || currentInput.equals(pair.token1), "PATH");
323
+ invariant4(currentInput.equals(pair.token0) || currentInput.equals(pair.token1), "PATH");
350
324
  const output2 = currentInput.equals(pair.token0) ? pair.token1 : pair.token0;
351
325
  path.push(output2);
352
326
  }
@@ -361,29 +335,16 @@ var Route = class {
361
335
  const prices = [];
362
336
  for (const [i, pair] of this.pairs.entries()) {
363
337
  prices.push(
364
- this.path[i].equals(pair.token0) ? new Price2(pair.reserve0.currency, pair.reserve1.currency, pair.reserve0.quotient, pair.reserve1.quotient) : new Price2(pair.reserve1.currency, pair.reserve0.currency, pair.reserve1.quotient, pair.reserve0.quotient)
338
+ this.path[i].equals(pair.token0) ? new Price(pair.reserve0.currency, pair.reserve1.currency, pair.reserve0.quotient, pair.reserve1.quotient) : new Price(pair.reserve1.currency, pair.reserve0.currency, pair.reserve1.quotient, pair.reserve0.quotient)
365
339
  );
366
340
  }
367
341
  const reduced = prices.slice(1).reduce((accumulator, currentValue) => accumulator.multiply(currentValue), prices[0]);
368
- return this._midPrice = new Price2(this.input, this.output, reduced.denominator, reduced.numerator);
342
+ return this._midPrice = new Price(this.input, this.output, reduced.denominator, reduced.numerator);
369
343
  }
370
344
  get chainId() {
371
345
  return this.pairs[0].chainId;
372
346
  }
373
347
  };
374
-
375
- // src/entities/trade.ts
376
- import invariant4 from "tiny-invariant";
377
- import {
378
- ONE as ONE2,
379
- TradeType,
380
- ZERO as ZERO2,
381
- CurrencyAmount as CurrencyAmount2,
382
- Fraction,
383
- Price as Price3,
384
- sortedInsert,
385
- computePriceImpact
386
- } from "@pancakeswap/swap-sdk-core";
387
348
  function inputOutputComparator(a, b) {
388
349
  invariant4(a.inputAmount.currency.equals(b.inputAmount.currency), "INPUT_CURRENCY");
389
350
  invariant4(a.outputAmount.currency.equals(b.outputAmount.currency), "OUTPUT_CURRENCY");
@@ -443,8 +404,8 @@ var Trade = class {
443
404
  const [outputAmount] = pair.getOutputAmount(tokenAmounts[i]);
444
405
  tokenAmounts[i + 1] = outputAmount;
445
406
  }
446
- this.inputAmount = CurrencyAmount2.fromFractionalAmount(route.input, amount.numerator, amount.denominator);
447
- this.outputAmount = CurrencyAmount2.fromFractionalAmount(
407
+ this.inputAmount = CurrencyAmount.fromFractionalAmount(route.input, amount.numerator, amount.denominator);
408
+ this.outputAmount = CurrencyAmount.fromFractionalAmount(
448
409
  route.output,
449
410
  tokenAmounts[tokenAmounts.length - 1].numerator,
450
411
  tokenAmounts[tokenAmounts.length - 1].denominator
@@ -457,14 +418,14 @@ var Trade = class {
457
418
  const [inputAmount] = pair.getInputAmount(tokenAmounts[i]);
458
419
  tokenAmounts[i - 1] = inputAmount;
459
420
  }
460
- this.inputAmount = CurrencyAmount2.fromFractionalAmount(
421
+ this.inputAmount = CurrencyAmount.fromFractionalAmount(
461
422
  route.input,
462
423
  tokenAmounts[0].numerator,
463
424
  tokenAmounts[0].denominator
464
425
  );
465
- this.outputAmount = CurrencyAmount2.fromFractionalAmount(route.output, amount.numerator, amount.denominator);
426
+ this.outputAmount = CurrencyAmount.fromFractionalAmount(route.output, amount.numerator, amount.denominator);
466
427
  }
467
- this.executionPrice = new Price3(
428
+ this.executionPrice = new Price(
468
429
  this.inputAmount.currency,
469
430
  this.outputAmount.currency,
470
431
  this.inputAmount.quotient,
@@ -477,24 +438,24 @@ var Trade = class {
477
438
  * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade
478
439
  */
479
440
  minimumAmountOut(slippageTolerance) {
480
- invariant4(!slippageTolerance.lessThan(ZERO2), "SLIPPAGE_TOLERANCE");
441
+ invariant4(!slippageTolerance.lessThan(ZERO), "SLIPPAGE_TOLERANCE");
481
442
  if (this.tradeType === TradeType.EXACT_OUTPUT) {
482
443
  return this.outputAmount;
483
444
  }
484
- const slippageAdjustedAmountOut = new Fraction(ONE2).add(slippageTolerance).invert().multiply(this.outputAmount.quotient).quotient;
485
- return CurrencyAmount2.fromRawAmount(this.outputAmount.currency, slippageAdjustedAmountOut);
445
+ const slippageAdjustedAmountOut = new Fraction(ONE).add(slippageTolerance).invert().multiply(this.outputAmount.quotient).quotient;
446
+ return CurrencyAmount.fromRawAmount(this.outputAmount.currency, slippageAdjustedAmountOut);
486
447
  }
487
448
  /**
488
449
  * Get the maximum amount in that can be spent via this trade for the given slippage tolerance
489
450
  * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade
490
451
  */
491
452
  maximumAmountIn(slippageTolerance) {
492
- invariant4(!slippageTolerance.lessThan(ZERO2), "SLIPPAGE_TOLERANCE");
453
+ invariant4(!slippageTolerance.lessThan(ZERO), "SLIPPAGE_TOLERANCE");
493
454
  if (this.tradeType === TradeType.EXACT_INPUT) {
494
455
  return this.inputAmount;
495
456
  }
496
- const slippageAdjustedAmountIn = new Fraction(ONE2).add(slippageTolerance).multiply(this.inputAmount.quotient).quotient;
497
- return CurrencyAmount2.fromRawAmount(this.inputAmount.currency, slippageAdjustedAmountIn);
457
+ const slippageAdjustedAmountIn = new Fraction(ONE).add(slippageTolerance).multiply(this.inputAmount.quotient).quotient;
458
+ return CurrencyAmount.fromRawAmount(this.inputAmount.currency, slippageAdjustedAmountIn);
498
459
  }
499
460
  /**
500
461
  * Given a list of pairs, and a fixed amount in, returns the top `maxNumResults` trades that go from an input token
@@ -520,7 +481,7 @@ var Trade = class {
520
481
  const pair = pairs[i];
521
482
  if (!pair.token0.equals(amountIn.currency) && !pair.token1.equals(amountIn.currency))
522
483
  continue;
523
- if (pair.reserve0.equalTo(ZERO2) || pair.reserve1.equalTo(ZERO2))
484
+ if (pair.reserve0.equalTo(ZERO) || pair.reserve1.equalTo(ZERO))
524
485
  continue;
525
486
  let amountOut;
526
487
  try {
@@ -566,7 +527,7 @@ var Trade = class {
566
527
  * @param slippageTolerance the allowed tolerated slippage
567
528
  */
568
529
  worstExecutionPrice(slippageTolerance) {
569
- return new Price3(
530
+ return new Price(
570
531
  this.inputAmount.currency,
571
532
  this.outputAmount.currency,
572
533
  this.maximumAmountIn(slippageTolerance).quotient,
@@ -598,7 +559,7 @@ var Trade = class {
598
559
  const pair = pairs[i];
599
560
  if (!pair.token0.equals(amountOut.currency) && !pair.token1.equals(amountOut.currency))
600
561
  continue;
601
- if (pair.reserve0.equalTo(ZERO2) || pair.reserve1.equalTo(ZERO2))
562
+ if (pair.reserve0.equalTo(ZERO) || pair.reserve1.equalTo(ZERO))
602
563
  continue;
603
564
  let amountIn;
604
565
  try {
@@ -640,10 +601,6 @@ var Trade = class {
640
601
  return bestTrades;
641
602
  }
642
603
  };
643
-
644
- // src/entities/native.ts
645
- import invariant5 from "tiny-invariant";
646
- import { NativeCurrency } from "@pancakeswap/swap-sdk-core";
647
604
  var _Native = class extends NativeCurrency {
648
605
  constructor({
649
606
  chainId,
@@ -655,14 +612,14 @@ var _Native = class extends NativeCurrency {
655
612
  }
656
613
  get wrapped() {
657
614
  const wnative = WNATIVE[this.chainId];
658
- invariant5(!!wnative, "WRAPPED");
615
+ invariant4(!!wnative, "WRAPPED");
659
616
  return wnative;
660
617
  }
661
618
  static onChain(chainId) {
662
619
  if (chainId in this.cache) {
663
620
  return this.cache[chainId];
664
621
  }
665
- invariant5(!!NATIVE[chainId], "NATIVE_CURRENCY");
622
+ invariant4(!!NATIVE[chainId], "NATIVE_CURRENCY");
666
623
  const { decimals, name, symbol } = NATIVE[chainId];
667
624
  return this.cache[chainId] = new _Native({ chainId, decimals, symbol, name });
668
625
  }
@@ -672,20 +629,11 @@ var _Native = class extends NativeCurrency {
672
629
  };
673
630
  var Native = _Native;
674
631
  Native.cache = {};
675
-
676
- // src/router.ts
677
- import { TradeType as TradeType2 } from "@pancakeswap/swap-sdk-core";
678
- import invariant6 from "tiny-invariant";
679
632
  function toHex(currencyAmount) {
680
633
  return `0x${currencyAmount.quotient.toString(16)}`;
681
634
  }
682
635
  var ZERO_HEX = "0x0";
683
636
  var Router = class {
684
- /**
685
- * Cannot be constructed.
686
- */
687
- constructor() {
688
- }
689
637
  /**
690
638
  * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given trade.
691
639
  * @param trade to produce call parameters for
@@ -694,19 +642,19 @@ var Router = class {
694
642
  static swapCallParameters(trade, options) {
695
643
  const etherIn = trade.inputAmount.currency.isNative;
696
644
  const etherOut = trade.outputAmount.currency.isNative;
697
- invariant6(!(etherIn && etherOut), "ETHER_IN_OUT");
698
- invariant6(!("ttl" in options) || options.ttl > 0, "TTL");
645
+ invariant4(!(etherIn && etherOut), "ETHER_IN_OUT");
646
+ invariant4(!("ttl" in options) || options.ttl > 0, "TTL");
699
647
  const to = validateAndParseAddress(options.recipient);
700
648
  const amountIn = toHex(trade.maximumAmountIn(options.allowedSlippage));
701
649
  const amountOut = toHex(trade.minimumAmountOut(options.allowedSlippage));
702
650
  const path = trade.route.path.map((token) => token.address);
703
- const deadline = "ttl" in options ? `0x${(Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) + options.ttl).toString(16)}` : `0x${options.deadline.toString(16)}`;
651
+ const deadline = "ttl" in options ? `0x${(Math.floor(( new Date()).getTime() / 1e3) + options.ttl).toString(16)}` : `0x${options.deadline.toString(16)}`;
704
652
  const useFeeOnTransfer = Boolean(options.feeOnTransfer);
705
653
  let methodName;
706
654
  let args;
707
655
  let value;
708
656
  switch (trade.tradeType) {
709
- case TradeType2.EXACT_INPUT:
657
+ case TradeType.EXACT_INPUT:
710
658
  if (etherIn) {
711
659
  methodName = useFeeOnTransfer ? "swapExactETHForTokensSupportingFeeOnTransferTokens" : "swapExactETHForTokens";
712
660
  args = [amountOut, path, to, deadline];
@@ -721,8 +669,8 @@ var Router = class {
721
669
  value = ZERO_HEX;
722
670
  }
723
671
  break;
724
- case TradeType2.EXACT_OUTPUT:
725
- invariant6(!useFeeOnTransfer, "EXACT_OUT_FOT");
672
+ case TradeType.EXACT_OUTPUT:
673
+ invariant4(!useFeeOnTransfer, "EXACT_OUT_FOT");
726
674
  if (etherIn) {
727
675
  methodName = "swapETHForExactTokens";
728
676
  args = [amountOut, path, to, deadline];
@@ -745,30 +693,26 @@ var Router = class {
745
693
  };
746
694
  }
747
695
  };
748
-
749
- // src/index.ts
750
- export * from "@pancakeswap/swap-sdk-core";
751
- export {
752
- ChainId,
753
- ERC20Token,
754
- FACTORY_ADDRESS,
755
- FACTORY_ADDRESS_MAP,
756
- INIT_CODE_HASH,
757
- INIT_CODE_HASH_MAP,
758
- JSBI2 as JSBI,
759
- NATIVE,
760
- Native,
761
- ONE_HUNDRED_PERCENT,
762
- Pair,
763
- Route,
764
- Router,
765
- Trade,
766
- WBNB,
767
- WETH9,
768
- WNATIVE,
769
- ZERO_PERCENT,
770
- computePairAddress,
771
- inputOutputComparator,
772
- isTradeBetter,
773
- tradeComparator
696
+ var _Ether = class extends NativeCurrency {
697
+ constructor(chainId) {
698
+ super(chainId, 18, "ETH", "Ether");
699
+ }
700
+ get wrapped() {
701
+ const weth9 = WETH9[this.chainId];
702
+ invariant4(!!weth9, "WRAPPED");
703
+ return weth9;
704
+ }
705
+ static onChain(chainId) {
706
+ if (!this._etherCache[chainId]) {
707
+ this._etherCache[chainId] = new _Ether(chainId);
708
+ }
709
+ return this._etherCache[chainId];
710
+ }
711
+ equals(other) {
712
+ return other.isNative && other.chainId === this.chainId;
713
+ }
774
714
  };
715
+ var Ether = _Ether;
716
+ Ether._etherCache = {};
717
+
718
+ export { ChainId, ERC20Token, Ether, FACTORY_ADDRESS, FACTORY_ADDRESS_MAP, INIT_CODE_HASH, INIT_CODE_HASH_MAP, NATIVE, Native, ONE_HUNDRED_PERCENT, Pair, Route, Router, Trade, WBNB, WETH9, WNATIVE, ZERO_PERCENT, computePairAddress, inputOutputComparator, isTradeBetter, tradeComparator, validateAndParseAddress };
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@pancakeswap/sdk",
3
3
  "license": "MIT",
4
- "version": "3.1.5",
4
+ "version": "3.2.0",
5
5
  "description": "🛠 An SDK for building applications on top of Pancakeswap.",
6
6
  "main": "dist/index.js",
7
7
  "typings": "dist/index.d.ts",
8
+ "module": "dist/index.mjs",
8
9
  "files": [
9
10
  "dist"
10
11
  ],
@@ -17,10 +18,17 @@
17
18
  "pancakeswap",
18
19
  "bsc"
19
20
  ],
20
- "module": "dist/index.mjs",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.mjs",
25
+ "require": "./dist/index.js"
26
+ },
27
+ "./package.json": "./package.json"
28
+ },
21
29
  "scripts": {
22
- "build": "tsup src/index.ts --format esm,cjs --dts",
23
- "dev": "tsup src/index.ts --format esm,cjs --watch --dts",
30
+ "build": "tsup",
31
+ "dev": "tsup --watch",
24
32
  "test": "jest",
25
33
  "prepublishOnly": "yarn run build",
26
34
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
@@ -51,8 +59,7 @@
51
59
  "@swc/jest": "^0.2.21",
52
60
  "@types/big.js": "^4.0.5",
53
61
  "@types/jest": "^24.0.25",
54
- "babel-plugin-transform-jsbi-to-bigint": "^1.3.1",
55
- "tsup": "^6.6.3"
62
+ "babel-plugin-transform-jsbi-to-bigint": "^1.3.1"
56
63
  },
57
64
  "engines": {
58
65
  "node": ">=10"