@pancakeswap/sdk 3.0.0 → 3.1.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
@@ -34,7 +34,7 @@ declare abstract class BaseCurrency {
34
34
  /**
35
35
  * The symbol of the currency, i.e. a short textual non-unique identifier
36
36
  */
37
- readonly symbol?: string;
37
+ readonly symbol: string;
38
38
  /**
39
39
  * The name of the currency, i.e. a descriptive textual non-unique identifier
40
40
  */
@@ -46,7 +46,7 @@ declare abstract class BaseCurrency {
46
46
  * @param symbol symbol of the currency
47
47
  * @param name of the currency
48
48
  */
49
- protected constructor(chainId: number, decimals: number, symbol?: string, name?: string);
49
+ protected constructor(chainId: number, decimals: number, symbol: string, name?: string);
50
50
  /**
51
51
  * Returns whether this currency is functionally equivalent to the other currency
52
52
  * @param other the other currency
@@ -59,6 +59,14 @@ declare abstract class BaseCurrency {
59
59
  abstract get wrapped(): Token;
60
60
  }
61
61
 
62
+ interface SerializedToken {
63
+ chainId: number;
64
+ address: string;
65
+ decimals: number;
66
+ symbol: string;
67
+ name?: string;
68
+ projectLink?: string;
69
+ }
62
70
  /**
63
71
  * Represents an ERC20 token with a unique address and some metadata.
64
72
  */
@@ -70,7 +78,7 @@ declare class Token extends BaseCurrency {
70
78
  */
71
79
  readonly address: string;
72
80
  readonly projectLink?: string;
73
- constructor(chainId: number, address: string, decimals: number, symbol?: string, name?: string, projectLink?: string);
81
+ constructor(chainId: number, address: string, decimals: number, symbol: string, name?: string, projectLink?: string);
74
82
  /**
75
83
  * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
76
84
  * @param other other token to compare
@@ -87,6 +95,7 @@ declare class Token extends BaseCurrency {
87
95
  * Return this token, which does not need to be wrapped
88
96
  */
89
97
  get wrapped(): Token;
98
+ get serialize(): SerializedToken;
90
99
  }
91
100
 
92
101
  declare type BigintIsh = JSBI | number | string;
@@ -503,4 +512,4 @@ declare abstract class Router {
503
512
  */
504
513
  declare function computePriceImpact<TBase extends Currency, TQuote extends Currency>(midPrice: Price<TBase, TQuote>, inputAmount: CurrencyAmount<TBase>, outputAmount: CurrencyAmount<TQuote>): Percent;
505
514
 
506
- export { BaseCurrency, BestTradeOptions, BigintIsh, ChainId, Currency, CurrencyAmount, FACTORY_ADDRESS, FACTORY_ADDRESS_MAP, FIVE, Fraction, INIT_CODE_HASH, INIT_CODE_HASH_MAP, InsufficientInputAmountError, InsufficientReservesError, MINIMUM_LIQUIDITY, MaxUint256, NATIVE, Native, NativeCurrency, ONE, Pair, Percent, Price, Rounding, Route, Router, SOLIDITY_TYPE_MAXIMA, SolidityType, SwapParameters, TEN, THREE, TWO, Token, Trade, TradeOptions, TradeOptionsDeadline, TradeType, WBNB, WETH9, WNATIVE, ZERO, _100, _10000, _9975, computePairAddress, computePriceImpact, inputOutputComparator, tradeComparator };
515
+ export { BaseCurrency, BestTradeOptions, BigintIsh, ChainId, Currency, CurrencyAmount, FACTORY_ADDRESS, FACTORY_ADDRESS_MAP, FIVE, Fraction, INIT_CODE_HASH, INIT_CODE_HASH_MAP, InsufficientInputAmountError, InsufficientReservesError, MINIMUM_LIQUIDITY, MaxUint256, NATIVE, Native, NativeCurrency, ONE, Pair, Percent, Price, Rounding, Route, Router, SOLIDITY_TYPE_MAXIMA, SerializedToken, SolidityType, SwapParameters, TEN, THREE, TWO, Token, Trade, TradeOptions, TradeOptionsDeadline, TradeType, WBNB, WETH9, WNATIVE, ZERO, _100, _10000, _9975, computePairAddress, computePriceImpact, inputOutputComparator, tradeComparator };
package/dist/index.js CHANGED
@@ -173,6 +173,16 @@ var Token = class extends BaseCurrency {
173
173
  get wrapped() {
174
174
  return this;
175
175
  }
176
+ get serialize() {
177
+ return {
178
+ address: this.address,
179
+ chainId: this.chainId,
180
+ decimals: this.decimals,
181
+ symbol: this.symbol,
182
+ name: this.name,
183
+ projectLink: this.projectLink
184
+ };
185
+ }
176
186
  };
177
187
 
178
188
  // src/constants.ts
@@ -196,7 +206,7 @@ var Rounding = /* @__PURE__ */ ((Rounding2) => {
196
206
  return Rounding2;
197
207
  })(Rounding || {});
198
208
  var FACTORY_ADDRESS = "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73";
199
- var FACTORY_ADDRESS_ETH = "0xD93801d7D3a368D94A3A32E97A20f7aC1948a5dB";
209
+ var FACTORY_ADDRESS_ETH = "0x1097053Fd2ea711dad45caCcc45EfF7548fCB362";
200
210
  var FACTORY_ADDRESS_MAP = {
201
211
  [1 /* ETHEREUM */]: FACTORY_ADDRESS_ETH,
202
212
  [4 /* RINKEBY */]: FACTORY_ADDRESS_ETH,
@@ -521,13 +531,22 @@ var Percent = class extends Fraction {
521
531
  };
522
532
 
523
533
  // src/entities/pair.ts
534
+ var PAIR_ADDRESS_CACHE = {};
535
+ var composeKey = (token0, token1) => `${token0.chainId}-${token0.address}-${token1.address}`;
524
536
  var computePairAddress = ({
525
537
  factoryAddress,
526
538
  tokenA,
527
539
  tokenB
528
540
  }) => {
529
541
  const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA];
530
- return (0, import_address2.getCreate2Address)(factoryAddress, (0, import_solidity.keccak256)(["bytes"], [(0, import_solidity.pack)(["address", "address"], [token0.address, token1.address])]), INIT_CODE_HASH_MAP[token0.chainId]);
542
+ const key = composeKey(token0, token1);
543
+ if ((PAIR_ADDRESS_CACHE == null ? void 0 : PAIR_ADDRESS_CACHE[key]) === void 0) {
544
+ PAIR_ADDRESS_CACHE = {
545
+ ...PAIR_ADDRESS_CACHE,
546
+ [key]: (0, import_address2.getCreate2Address)(factoryAddress, (0, import_solidity.keccak256)(["bytes"], [(0, import_solidity.pack)(["address", "address"], [token0.address, token1.address])]), INIT_CODE_HASH_MAP[token0.chainId])
547
+ };
548
+ }
549
+ return PAIR_ADDRESS_CACHE[key];
531
550
  };
532
551
  var Pair = class {
533
552
  static getAddress(tokenA, tokenB) {
package/dist/index.mjs CHANGED
@@ -104,6 +104,16 @@ var Token = class extends BaseCurrency {
104
104
  get wrapped() {
105
105
  return this;
106
106
  }
107
+ get serialize() {
108
+ return {
109
+ address: this.address,
110
+ chainId: this.chainId,
111
+ decimals: this.decimals,
112
+ symbol: this.symbol,
113
+ name: this.name,
114
+ projectLink: this.projectLink
115
+ };
116
+ }
107
117
  };
108
118
 
109
119
  // src/constants.ts
@@ -127,7 +137,7 @@ var Rounding = /* @__PURE__ */ ((Rounding2) => {
127
137
  return Rounding2;
128
138
  })(Rounding || {});
129
139
  var FACTORY_ADDRESS = "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73";
130
- var FACTORY_ADDRESS_ETH = "0xD93801d7D3a368D94A3A32E97A20f7aC1948a5dB";
140
+ var FACTORY_ADDRESS_ETH = "0x1097053Fd2ea711dad45caCcc45EfF7548fCB362";
131
141
  var FACTORY_ADDRESS_MAP = {
132
142
  [1 /* ETHEREUM */]: FACTORY_ADDRESS_ETH,
133
143
  [4 /* RINKEBY */]: FACTORY_ADDRESS_ETH,
@@ -452,13 +462,22 @@ var Percent = class extends Fraction {
452
462
  };
453
463
 
454
464
  // src/entities/pair.ts
465
+ var PAIR_ADDRESS_CACHE = {};
466
+ var composeKey = (token0, token1) => `${token0.chainId}-${token0.address}-${token1.address}`;
455
467
  var computePairAddress = ({
456
468
  factoryAddress,
457
469
  tokenA,
458
470
  tokenB
459
471
  }) => {
460
472
  const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA];
461
- return getCreate2Address(factoryAddress, keccak256(["bytes"], [pack(["address", "address"], [token0.address, token1.address])]), INIT_CODE_HASH_MAP[token0.chainId]);
473
+ const key = composeKey(token0, token1);
474
+ if ((PAIR_ADDRESS_CACHE == null ? void 0 : PAIR_ADDRESS_CACHE[key]) === void 0) {
475
+ PAIR_ADDRESS_CACHE = {
476
+ ...PAIR_ADDRESS_CACHE,
477
+ [key]: getCreate2Address(factoryAddress, keccak256(["bytes"], [pack(["address", "address"], [token0.address, token1.address])]), INIT_CODE_HASH_MAP[token0.chainId])
478
+ };
479
+ }
480
+ return PAIR_ADDRESS_CACHE[key];
462
481
  };
463
482
  var Pair = class {
464
483
  static getAddress(tokenA, tokenB) {
package/package.json CHANGED
@@ -1,21 +1,25 @@
1
1
  {
2
2
  "name": "@pancakeswap/sdk",
3
3
  "license": "MIT",
4
- "version": "3.0.0",
4
+ "version": "3.1.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
8
  "files": [
9
9
  "dist"
10
10
  ],
11
- "repository": "https://github.com/pancakeswap/pancake-swap-sdk.git",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/pancakeswap/pancake-frontend.git",
14
+ "directory": "packages/swap-sdk"
15
+ },
12
16
  "keywords": [
13
17
  "pancakeswap",
14
18
  "bsc"
15
19
  ],
16
20
  "module": "dist/index.mjs",
17
21
  "scripts": {
18
- "lint": "tsdx lint src test",
22
+ "lint": "eslint src test",
19
23
  "build": "tsup src/index.ts --format esm,cjs --dts",
20
24
  "start": "tsup src/index.tsx --format esm,cjs --watch --dts",
21
25
  "test": "jest",