@synthra-swap/sdk 0.1.4
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/README.md +12 -0
- package/chains.d.ts +1 -0
- package/chains.js +1 -0
- package/core.d.ts +1 -0
- package/core.js +1 -0
- package/dist/chain-registry.d.ts +22 -0
- package/dist/chain-registry.js +315 -0
- package/dist/chain-registry.js.map +1 -0
- package/dist/chains.d.ts +5 -0
- package/dist/chains.js +29 -0
- package/dist/chains.js.map +1 -0
- package/dist/core/addresses.d.ts +21 -0
- package/dist/core/addresses.js +76 -0
- package/dist/core/addresses.js.map +1 -0
- package/dist/core/chains.d.ts +51 -0
- package/dist/core/chains.js +82 -0
- package/dist/core/chains.js.map +1 -0
- package/dist/core/constants.d.ts +12 -0
- package/dist/core/constants.js +20 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/entities/baseCurrency.d.ts +48 -0
- package/dist/core/entities/baseCurrency.js +29 -0
- package/dist/core/entities/baseCurrency.js.map +1 -0
- package/dist/core/entities/currency.d.ts +3 -0
- package/dist/core/entities/currency.js +3 -0
- package/dist/core/entities/currency.js.map +1 -0
- package/dist/core/entities/ether.d.ts +13 -0
- package/dist/core/entities/ether.js +32 -0
- package/dist/core/entities/ether.js.map +1 -0
- package/dist/core/entities/fractions/currencyAmount.d.ts +31 -0
- package/dist/core/entities/fractions/currencyAmount.js +74 -0
- package/dist/core/entities/fractions/currencyAmount.js.map +1 -0
- package/dist/core/entities/fractions/fraction.d.ts +24 -0
- package/dist/core/entities/fractions/fraction.js +106 -0
- package/dist/core/entities/fractions/fraction.js.map +1 -0
- package/dist/core/entities/fractions/index.d.ts +4 -0
- package/dist/core/entities/fractions/index.js +12 -0
- package/dist/core/entities/fractions/index.js.map +1 -0
- package/dist/core/entities/fractions/percent.d.ts +14 -0
- package/dist/core/entities/fractions/percent.js +45 -0
- package/dist/core/entities/fractions/percent.js.map +1 -0
- package/dist/core/entities/fractions/price.d.ts +38 -0
- package/dist/core/entities/fractions/price.js +75 -0
- package/dist/core/entities/fractions/price.js.map +1 -0
- package/dist/core/entities/index.d.ts +7 -0
- package/dist/core/entities/index.js +24 -0
- package/dist/core/entities/index.js.map +1 -0
- package/dist/core/entities/nativeCurrency.d.ts +8 -0
- package/dist/core/entities/nativeCurrency.js +16 -0
- package/dist/core/entities/nativeCurrency.js.map +1 -0
- package/dist/core/entities/nativeOnChain.d.ts +19 -0
- package/dist/core/entities/nativeOnChain.js +141 -0
- package/dist/core/entities/nativeOnChain.js.map +1 -0
- package/dist/core/entities/token.d.ts +48 -0
- package/dist/core/entities/token.js +71 -0
- package/dist/core/entities/token.js.map +1 -0
- package/dist/core/entities/weth9.d.ts +7 -0
- package/dist/core/entities/weth9.js +28 -0
- package/dist/core/entities/weth9.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.js +22 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/utils/computePriceImpact.d.ts +8 -0
- package/dist/core/utils/computePriceImpact.js +18 -0
- package/dist/core/utils/computePriceImpact.js.map +1 -0
- package/dist/core/utils/index.d.ts +4 -0
- package/dist/core/utils/index.js +12 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/core/utils/sortedInsert.d.ts +1 -0
- package/dist/core/utils/sortedInsert.js +40 -0
- package/dist/core/utils/sortedInsert.js.map +1 -0
- package/dist/core/utils/sqrt.d.ts +7 -0
- package/dist/core/utils/sqrt.js +34 -0
- package/dist/core/utils/sqrt.js.map +1 -0
- package/dist/core/utils/validateAndParseAddress.d.ts +10 -0
- package/dist/core/utils/validateAndParseAddress.js +31 -0
- package/dist/core/utils/validateAndParseAddress.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/universal-router/entities/Command.d.ts +12 -0
- package/dist/universal-router/entities/Command.js +9 -0
- package/dist/universal-router/entities/Command.js.map +1 -0
- package/dist/universal-router/entities/index.d.ts +3 -0
- package/dist/universal-router/entities/index.js +20 -0
- package/dist/universal-router/entities/index.js.map +1 -0
- package/dist/universal-router/entities/protocols/index.d.ts +2 -0
- package/dist/universal-router/entities/protocols/index.js +19 -0
- package/dist/universal-router/entities/protocols/index.js.map +1 -0
- package/dist/universal-router/entities/protocols/uniswap.d.ts +32 -0
- package/dist/universal-router/entities/protocols/uniswap.js +143 -0
- package/dist/universal-router/entities/protocols/uniswap.js.map +1 -0
- package/dist/universal-router/entities/protocols/unwrapWETH.d.ts +12 -0
- package/dist/universal-router/entities/protocols/unwrapWETH.js +35 -0
- package/dist/universal-router/entities/protocols/unwrapWETH.js.map +1 -0
- package/dist/universal-router/entities/trade.d.ts +41 -0
- package/dist/universal-router/entities/trade.js +114 -0
- package/dist/universal-router/entities/trade.js.map +1 -0
- package/dist/universal-router/index.d.ts +5 -0
- package/dist/universal-router/index.js +31 -0
- package/dist/universal-router/index.js.map +1 -0
- package/dist/universal-router/swapRouter.d.ts +29 -0
- package/dist/universal-router/swapRouter.js +102 -0
- package/dist/universal-router/swapRouter.js.map +1 -0
- package/dist/universal-router/utils/constants.d.ts +8 -0
- package/dist/universal-router/utils/constants.js +21 -0
- package/dist/universal-router/utils/constants.js.map +1 -0
- package/dist/universal-router/utils/getNativeCurrencyValue.d.ts +2 -0
- package/dist/universal-router/utils/getNativeCurrencyValue.js +19 -0
- package/dist/universal-router/utils/getNativeCurrencyValue.js.map +1 -0
- package/dist/universal-router/utils/inputTokens.d.ts +16 -0
- package/dist/universal-router/utils/inputTokens.js +44 -0
- package/dist/universal-router/utils/inputTokens.js.map +1 -0
- package/dist/universal-router/utils/numbers.d.ts +6 -0
- package/dist/universal-router/utils/numbers.js +24 -0
- package/dist/universal-router/utils/numbers.js.map +1 -0
- package/dist/universal-router/utils/routerCommands.d.ts +29 -0
- package/dist/universal-router/utils/routerCommands.js +64 -0
- package/dist/universal-router/utils/routerCommands.js.map +1 -0
- package/dist/universal-router/utils/routerTradeAdapter.d.ts +40 -0
- package/dist/universal-router/utils/routerTradeAdapter.js +82 -0
- package/dist/universal-router/utils/routerTradeAdapter.js.map +1 -0
- package/dist/v3/abis.d.ts +6 -0
- package/dist/v3/abis.js +39 -0
- package/dist/v3/abis.js.map +1 -0
- package/dist/v3/constants.d.ts +18 -0
- package/dist/v3/constants.js +26 -0
- package/dist/v3/constants.js.map +1 -0
- package/dist/v3/entities/index.d.ts +7 -0
- package/dist/v3/entities/index.js +24 -0
- package/dist/v3/entities/index.js.map +1 -0
- package/dist/v3/entities/pool.d.ts +81 -0
- package/dist/v3/entities/pool.js +215 -0
- package/dist/v3/entities/pool.js.map +1 -0
- package/dist/v3/entities/position.d.ts +131 -0
- package/dist/v3/entities/position.js +250 -0
- package/dist/v3/entities/position.js.map +1 -0
- package/dist/v3/entities/route.d.ts +26 -0
- package/dist/v3/entities/route.js +77 -0
- package/dist/v3/entities/route.js.map +1 -0
- package/dist/v3/entities/tick.d.ts +13 -0
- package/dist/v3/entities/tick.js +19 -0
- package/dist/v3/entities/tick.js.map +1 -0
- package/dist/v3/entities/tickDataProvider.d.ts +31 -0
- package/dist/v3/entities/tickDataProvider.js +18 -0
- package/dist/v3/entities/tickDataProvider.js.map +1 -0
- package/dist/v3/entities/tickListDataProvider.d.ts +15 -0
- package/dist/v3/entities/tickListDataProvider.js +23 -0
- package/dist/v3/entities/tickListDataProvider.js.map +1 -0
- package/dist/v3/entities/trade.d.ts +220 -0
- package/dist/v3/entities/trade.js +442 -0
- package/dist/v3/entities/trade.js.map +1 -0
- package/dist/v3/index.d.ts +9 -0
- package/dist/v3/index.js +26 -0
- package/dist/v3/index.js.map +1 -0
- package/dist/v3/internalConstants.d.ts +6 -0
- package/dist/v3/internalConstants.js +15 -0
- package/dist/v3/internalConstants.js.map +1 -0
- package/dist/v3/multicall.d.ts +9 -0
- package/dist/v3/multicall.js +20 -0
- package/dist/v3/multicall.js.map +1 -0
- package/dist/v3/nonfungiblePositionManager.d.ts +146 -0
- package/dist/v3/nonfungiblePositionManager.js +231 -0
- package/dist/v3/nonfungiblePositionManager.js.map +1 -0
- package/dist/v3/payments.d.ts +24 -0
- package/dist/v3/payments.js +55 -0
- package/dist/v3/payments.js.map +1 -0
- package/dist/v3/quoter.d.ts +37 -0
- package/dist/v3/quoter.js +76 -0
- package/dist/v3/quoter.js.map +1 -0
- package/dist/v3/selfPermit.d.ts +25 -0
- package/dist/v3/selfPermit.js +37 -0
- package/dist/v3/selfPermit.js.map +1 -0
- package/dist/v3/swapRouter.d.ts +51 -0
- package/dist/v3/swapRouter.js +147 -0
- package/dist/v3/swapRouter.js.map +1 -0
- package/dist/v3/utils/calldata.d.ts +20 -0
- package/dist/v3/utils/calldata.js +22 -0
- package/dist/v3/utils/calldata.js.map +1 -0
- package/dist/v3/utils/computePoolAddress.d.ts +18 -0
- package/dist/v3/utils/computePoolAddress.js +22 -0
- package/dist/v3/utils/computePoolAddress.js.map +1 -0
- package/dist/v3/utils/encodeRouteToPath.d.ts +8 -0
- package/dist/v3/utils/encodeRouteToPath.js +32 -0
- package/dist/v3/utils/encodeRouteToPath.js.map +1 -0
- package/dist/v3/utils/encodeSqrtRatioX96.d.ts +9 -0
- package/dist/v3/utils/encodeSqrtRatioX96.js +22 -0
- package/dist/v3/utils/encodeSqrtRatioX96.js.map +1 -0
- package/dist/v3/utils/fullMath.d.ts +8 -0
- package/dist/v3/utils/fullMath.js +23 -0
- package/dist/v3/utils/fullMath.js.map +1 -0
- package/dist/v3/utils/index.d.ts +17 -0
- package/dist/v3/utils/index.js +34 -0
- package/dist/v3/utils/index.js.map +1 -0
- package/dist/v3/utils/isSorted.d.ts +7 -0
- package/dist/v3/utils/isSorted.js +19 -0
- package/dist/v3/utils/isSorted.js.map +1 -0
- package/dist/v3/utils/liquidityMath.d.ts +8 -0
- package/dist/v3/utils/liquidityMath.js +24 -0
- package/dist/v3/utils/liquidityMath.js.map +1 -0
- package/dist/v3/utils/maxLiquidityForAmounts.d.ts +14 -0
- package/dist/v3/utils/maxLiquidityForAmounts.js +89 -0
- package/dist/v3/utils/maxLiquidityForAmounts.js.map +1 -0
- package/dist/v3/utils/mostSignificantBit.d.ts +2 -0
- package/dist/v3/utils/mostSignificantBit.js +29 -0
- package/dist/v3/utils/mostSignificantBit.js.map +1 -0
- package/dist/v3/utils/nearestUsableTick.d.ts +6 -0
- package/dist/v3/utils/nearestUsableTick.js +27 -0
- package/dist/v3/utils/nearestUsableTick.js.map +1 -0
- package/dist/v3/utils/position.d.ts +8 -0
- package/dist/v3/utils/position.js +23 -0
- package/dist/v3/utils/position.js.map +1 -0
- package/dist/v3/utils/priceTickConversions.d.ts +15 -0
- package/dist/v3/utils/priceTickConversions.js +52 -0
- package/dist/v3/utils/priceTickConversions.js.map +1 -0
- package/dist/v3/utils/sqrtPriceMath.d.ts +13 -0
- package/dist/v3/utils/sqrtPriceMath.js +97 -0
- package/dist/v3/utils/sqrtPriceMath.js.map +1 -0
- package/dist/v3/utils/swapMath.d.ts +9 -0
- package/dist/v3/utils/swapMath.js +79 -0
- package/dist/v3/utils/swapMath.js.map +1 -0
- package/dist/v3/utils/tickLibrary.d.ts +14 -0
- package/dist/v3/utils/tickLibrary.js +53 -0
- package/dist/v3/utils/tickLibrary.js.map +1 -0
- package/dist/v3/utils/tickList.d.ts +23 -0
- package/dist/v3/utils/tickList.js +110 -0
- package/dist/v3/utils/tickList.js.map +1 -0
- package/dist/v3/utils/tickMath.d.ts +34 -0
- package/dist/v3/utils/tickMath.js +127 -0
- package/dist/v3/utils/tickMath.js.map +1 -0
- package/package.json +80 -0
- package/universal-router.d.ts +1 -0
- package/universal-router.js +1 -0
- package/v3.d.ts +1 -0
- package/v3.js +1 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Price = void 0;
|
|
7
|
+
const jsbi_1 = __importDefault(require("jsbi"));
|
|
8
|
+
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
9
|
+
const fraction_1 = require("./fraction");
|
|
10
|
+
const currencyAmount_1 = require("./currencyAmount");
|
|
11
|
+
class Price extends fraction_1.Fraction {
|
|
12
|
+
/**
|
|
13
|
+
* Construct a price, either with the base and quote currency amount, or the
|
|
14
|
+
* @param args
|
|
15
|
+
*/
|
|
16
|
+
constructor(...args) {
|
|
17
|
+
let baseCurrency, quoteCurrency, denominator, numerator;
|
|
18
|
+
if (args.length === 4) {
|
|
19
|
+
;
|
|
20
|
+
[baseCurrency, quoteCurrency, denominator, numerator] = args;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const result = args[0].quoteAmount.divide(args[0].baseAmount);
|
|
24
|
+
[baseCurrency, quoteCurrency, denominator, numerator] = [
|
|
25
|
+
args[0].baseAmount.currency,
|
|
26
|
+
args[0].quoteAmount.currency,
|
|
27
|
+
result.denominator,
|
|
28
|
+
result.numerator
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
super(numerator, denominator);
|
|
32
|
+
this.baseCurrency = baseCurrency;
|
|
33
|
+
this.quoteCurrency = quoteCurrency;
|
|
34
|
+
this.scalar = new fraction_1.Fraction(jsbi_1.default.exponentiate(jsbi_1.default.BigInt(10), jsbi_1.default.BigInt(baseCurrency.decimals)), jsbi_1.default.exponentiate(jsbi_1.default.BigInt(10), jsbi_1.default.BigInt(quoteCurrency.decimals)));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Flip the price, switching the base and quote currency
|
|
38
|
+
*/
|
|
39
|
+
invert() {
|
|
40
|
+
return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency
|
|
44
|
+
* @param other the other price
|
|
45
|
+
*/
|
|
46
|
+
multiply(other) {
|
|
47
|
+
(0, tiny_invariant_1.default)(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN');
|
|
48
|
+
const fraction = super.multiply(other);
|
|
49
|
+
return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Return the amount of quote currency corresponding to a given amount of the base currency
|
|
53
|
+
* @param currencyAmount the amount of base currency to quote against the price
|
|
54
|
+
*/
|
|
55
|
+
quote(currencyAmount) {
|
|
56
|
+
(0, tiny_invariant_1.default)(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN');
|
|
57
|
+
const result = super.multiply(currencyAmount);
|
|
58
|
+
return currencyAmount_1.CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get the value scaled by decimals for formatting
|
|
62
|
+
* @private
|
|
63
|
+
*/
|
|
64
|
+
get adjustedForDecimals() {
|
|
65
|
+
return super.multiply(this.scalar);
|
|
66
|
+
}
|
|
67
|
+
toSignificant(significantDigits = 6, format, rounding) {
|
|
68
|
+
return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
|
|
69
|
+
}
|
|
70
|
+
toFixed(decimalPlaces = 4, format, rounding) {
|
|
71
|
+
return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.Price = Price;
|
|
75
|
+
//# sourceMappingURL=price.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../src/core/entities/fractions/price.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,oEAAsC;AAItC,yCAAqC;AACrC,qDAAiD;AAEjD,MAAa,KAAuD,SAAQ,mBAAQ;IAKlF;;;OAGG;IACH,YACE,GAAG,IAE6E;QAEhF,IAAI,YAAmB,EAAE,aAAqB,EAAE,WAAsB,EAAE,SAAoB,CAAA;QAE5F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,CAAC;YAAA,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;SAC9D;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAC5D;YAAA,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG;gBACvD,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ;gBAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ;gBAC5B,MAAM,CAAC,WAAW;gBAClB,MAAM,CAAC,SAAS;aACjB,CAAA;SACF;QACD,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QAE7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAQ,CACxB,cAAI,CAAC,YAAY,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,cAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EACtE,cAAI,CAAC,YAAY,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,cAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CACxE,CAAA;IACH,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC3F,CAAC;IAED;;;OAGG;IACI,QAAQ,CAA+B,KAAiC;QAC7E,IAAA,wBAAS,EAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACtC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;IACpG,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAqC;QAChD,IAAA,wBAAS,EAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;QACrE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QAC7C,OAAO,+BAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACtG,CAAC;IAED;;;OAGG;IACH,IAAY,mBAAmB;QAC7B,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAEM,aAAa,CAAC,oBAA4B,CAAC,EAAE,MAAe,EAAE,QAAmB;QACtF,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACpF,CAAC;IAEM,OAAO,CAAC,gBAAwB,CAAC,EAAE,MAAe,EAAE,QAAmB;QAC5E,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC1E,CAAC;CACF;AA/ED,sBA+EC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./fractions"), exports);
|
|
18
|
+
__exportStar(require("./currency"), exports);
|
|
19
|
+
__exportStar(require("./ether"), exports);
|
|
20
|
+
__exportStar(require("./nativeOnChain"), exports);
|
|
21
|
+
__exportStar(require("./nativeCurrency"), exports);
|
|
22
|
+
__exportStar(require("./token"), exports);
|
|
23
|
+
__exportStar(require("./weth9"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAE3B,6CAA0B;AAC1B,0CAAuB;AACvB,kDAA+B;AAC/B,mDAAgC;AAChC,0CAAuB;AACvB,0CAAuB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NativeCurrency = void 0;
|
|
4
|
+
const baseCurrency_1 = require("./baseCurrency");
|
|
5
|
+
/**
|
|
6
|
+
* Represents the native currency of the chain on which it resides, e.g.
|
|
7
|
+
*/
|
|
8
|
+
class NativeCurrency extends baseCurrency_1.BaseCurrency {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.isNative = true;
|
|
12
|
+
this.isToken = false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.NativeCurrency = NativeCurrency;
|
|
16
|
+
//# sourceMappingURL=nativeCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeCurrency.js","sourceRoot":"","sources":["../../../src/core/entities/nativeCurrency.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C;;GAEG;AACH,MAAsB,cAAe,SAAQ,2BAAY;IAAzD;;QACkB,aAAQ,GAAS,IAAI,CAAA;QACrB,YAAO,GAAU,KAAK,CAAA;IACxC,CAAC;CAAA;AAHD,wCAGC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChainId, NativeCurrencyName } from '../chains';
|
|
2
|
+
import { Ether } from './ether';
|
|
3
|
+
import { NativeCurrency } from './nativeCurrency';
|
|
4
|
+
import { Token } from './token';
|
|
5
|
+
export declare const NATIVE_NAMES_BY_ID: {
|
|
6
|
+
[chainId: number]: string[];
|
|
7
|
+
};
|
|
8
|
+
export declare const NATIVE_CURRENCY: {
|
|
9
|
+
[chainId: number]: NativeCurrencyName;
|
|
10
|
+
};
|
|
11
|
+
export declare const WRAPPED_NATIVE_CURRENCY: {
|
|
12
|
+
[chainId in ChainId]: Token;
|
|
13
|
+
};
|
|
14
|
+
export declare class ExtendedEther extends Ether {
|
|
15
|
+
get wrapped(): Token;
|
|
16
|
+
private static _cachedExtendedEther;
|
|
17
|
+
static onChain(chainId: number): ExtendedEther;
|
|
18
|
+
}
|
|
19
|
+
export declare function nativeOnChain(chainId: number): NativeCurrency;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nativeOnChain = exports.ExtendedEther = exports.WRAPPED_NATIVE_CURRENCY = exports.NATIVE_CURRENCY = exports.NATIVE_NAMES_BY_ID = void 0;
|
|
4
|
+
const chains_1 = require("../chains");
|
|
5
|
+
const ether_1 = require("./ether");
|
|
6
|
+
const nativeCurrency_1 = require("./nativeCurrency");
|
|
7
|
+
const token_1 = require("./token");
|
|
8
|
+
const E_ETH_ADDRESS = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
|
|
9
|
+
const MATIC_NATIVE_ADDRESS = '0x0000000000000000000000000000000000001010';
|
|
10
|
+
exports.NATIVE_NAMES_BY_ID = {
|
|
11
|
+
[chains_1.ChainId.MAINNET]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
12
|
+
[chains_1.ChainId.GOERLI]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
13
|
+
[chains_1.ChainId.SEPOLIA]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
14
|
+
[chains_1.ChainId.OPTIMISM]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
15
|
+
[chains_1.ChainId.OPTIMISM_GOERLI]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
16
|
+
[chains_1.ChainId.ARBITRUM_ONE]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
17
|
+
[chains_1.ChainId.ARBITRUM_GOERLI]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
18
|
+
[chains_1.ChainId.POLYGON]: ['MATIC', MATIC_NATIVE_ADDRESS],
|
|
19
|
+
[chains_1.ChainId.POLYGON_MUMBAI]: ['MATIC', MATIC_NATIVE_ADDRESS],
|
|
20
|
+
[chains_1.ChainId.CELO]: ['CELO'],
|
|
21
|
+
[chains_1.ChainId.CELO_ALFAJORES]: ['CELO'],
|
|
22
|
+
[chains_1.ChainId.GNOSIS]: ['XDAI'],
|
|
23
|
+
[chains_1.ChainId.MOONBEAM]: ['GLMR'],
|
|
24
|
+
[chains_1.ChainId.BNB]: ['BNB', 'BNB', E_ETH_ADDRESS],
|
|
25
|
+
[chains_1.ChainId.AVALANCHE]: ['AVAX', 'AVALANCHE', E_ETH_ADDRESS],
|
|
26
|
+
[chains_1.ChainId.BASE]: ['ETH', 'ETHER', E_ETH_ADDRESS],
|
|
27
|
+
[chains_1.ChainId.UOMI]: ['UOMI', 'UOMI', E_ETH_ADDRESS],
|
|
28
|
+
[chains_1.ChainId.IRYS]: ['IRYS', E_ETH_ADDRESS],
|
|
29
|
+
[chains_1.ChainId.HELIOS]: ['HELIOS', E_ETH_ADDRESS],
|
|
30
|
+
[chains_1.ChainId.ARC]: ['ARC', E_ETH_ADDRESS],
|
|
31
|
+
[chains_1.ChainId.ROBINHOOD]: ['ROBINHOOD', E_ETH_ADDRESS],
|
|
32
|
+
};
|
|
33
|
+
exports.NATIVE_CURRENCY = {
|
|
34
|
+
[chains_1.ChainId.MAINNET]: chains_1.NativeCurrencyName.ETHER,
|
|
35
|
+
[chains_1.ChainId.GOERLI]: chains_1.NativeCurrencyName.ETHER,
|
|
36
|
+
[chains_1.ChainId.SEPOLIA]: chains_1.NativeCurrencyName.ETHER,
|
|
37
|
+
[chains_1.ChainId.OPTIMISM]: chains_1.NativeCurrencyName.ETHER,
|
|
38
|
+
[chains_1.ChainId.OPTIMISM_GOERLI]: chains_1.NativeCurrencyName.ETHER,
|
|
39
|
+
[chains_1.ChainId.ARBITRUM_ONE]: chains_1.NativeCurrencyName.ETHER,
|
|
40
|
+
[chains_1.ChainId.ARBITRUM_GOERLI]: chains_1.NativeCurrencyName.ETHER,
|
|
41
|
+
[chains_1.ChainId.POLYGON]: chains_1.NativeCurrencyName.MATIC,
|
|
42
|
+
[chains_1.ChainId.POLYGON_MUMBAI]: chains_1.NativeCurrencyName.MATIC,
|
|
43
|
+
[chains_1.ChainId.CELO]: chains_1.NativeCurrencyName.CELO,
|
|
44
|
+
[chains_1.ChainId.CELO_ALFAJORES]: chains_1.NativeCurrencyName.CELO,
|
|
45
|
+
[chains_1.ChainId.GNOSIS]: chains_1.NativeCurrencyName.GNOSIS,
|
|
46
|
+
[chains_1.ChainId.MOONBEAM]: chains_1.NativeCurrencyName.MOONBEAM,
|
|
47
|
+
[chains_1.ChainId.BNB]: chains_1.NativeCurrencyName.BNB,
|
|
48
|
+
[chains_1.ChainId.AVALANCHE]: chains_1.NativeCurrencyName.AVALANCHE,
|
|
49
|
+
[chains_1.ChainId.BASE]: chains_1.NativeCurrencyName.ETHER,
|
|
50
|
+
[chains_1.ChainId.UOMI]: chains_1.NativeCurrencyName.UOMI,
|
|
51
|
+
[chains_1.ChainId.IRYS]: chains_1.NativeCurrencyName.IRYS,
|
|
52
|
+
[chains_1.ChainId.HELIOS]: chains_1.NativeCurrencyName.HELIOS,
|
|
53
|
+
[chains_1.ChainId.ARC]: chains_1.NativeCurrencyName.ARC,
|
|
54
|
+
[chains_1.ChainId.ROBINHOOD]: chains_1.NativeCurrencyName.ROBINHOOD,
|
|
55
|
+
};
|
|
56
|
+
exports.WRAPPED_NATIVE_CURRENCY = {
|
|
57
|
+
[chains_1.ChainId.MAINNET]: new token_1.Token(chains_1.ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
|
|
58
|
+
[chains_1.ChainId.GOERLI]: new token_1.Token(chains_1.ChainId.GOERLI, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
|
|
59
|
+
[chains_1.ChainId.SEPOLIA]: new token_1.Token(chains_1.ChainId.SEPOLIA, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
|
|
60
|
+
[chains_1.ChainId.BNB]: new token_1.Token(chains_1.ChainId.BNB, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
|
|
61
|
+
[chains_1.ChainId.OPTIMISM]: new token_1.Token(chains_1.ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
62
|
+
[chains_1.ChainId.OPTIMISM_GOERLI]: new token_1.Token(chains_1.ChainId.OPTIMISM_GOERLI, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
63
|
+
[chains_1.ChainId.ARBITRUM_ONE]: new token_1.Token(chains_1.ChainId.ARBITRUM_ONE, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
|
|
64
|
+
[chains_1.ChainId.ARBITRUM_GOERLI]: new token_1.Token(chains_1.ChainId.ARBITRUM_GOERLI, '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3', 18, 'WETH', 'Wrapped Ether'),
|
|
65
|
+
[chains_1.ChainId.POLYGON]: new token_1.Token(chains_1.ChainId.POLYGON, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
|
|
66
|
+
[chains_1.ChainId.POLYGON_MUMBAI]: new token_1.Token(chains_1.ChainId.POLYGON_MUMBAI, '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889', 18, 'WMATIC', 'Wrapped MATIC'),
|
|
67
|
+
[chains_1.ChainId.CELO]: new token_1.Token(chains_1.ChainId.CELO, '0x471EcE3750Da237f93B8E339c536989b8978a438', 18, 'CELO', 'Celo native asset'),
|
|
68
|
+
[chains_1.ChainId.CELO_ALFAJORES]: new token_1.Token(chains_1.ChainId.CELO_ALFAJORES, '0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9', 18, 'CELO', 'Celo native asset'),
|
|
69
|
+
[chains_1.ChainId.GNOSIS]: new token_1.Token(chains_1.ChainId.GNOSIS, '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d', 18, 'WXDAI', 'Wrapped XDAI on Gnosis'),
|
|
70
|
+
[chains_1.ChainId.MOONBEAM]: new token_1.Token(chains_1.ChainId.MOONBEAM, '0xAcc15dC74880C9944775448304B263D191c6077F', 18, 'WGLMR', 'Wrapped GLMR'),
|
|
71
|
+
[chains_1.ChainId.AVALANCHE]: new token_1.Token(chains_1.ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
|
|
72
|
+
[chains_1.ChainId.BASE]: new token_1.Token(chains_1.ChainId.BASE, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
73
|
+
[chains_1.ChainId.BASE_GOERLI]: new token_1.Token(chains_1.ChainId.BASE_GOERLI, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
74
|
+
[chains_1.ChainId.UOMI]: new token_1.Token(chains_1.ChainId.UOMI, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUOMI', 'Wrapped UOMI'),
|
|
75
|
+
[chains_1.ChainId.IRYS]: new token_1.Token(chains_1.ChainId.IRYS, '0x33e4191705c386532ba27cbf171db86919200b94', 18, 'WIRYS', 'Wrapped IRYS'),
|
|
76
|
+
[chains_1.ChainId.HELIOS]: new token_1.Token(chains_1.ChainId.HELIOS, '0xfBCf3Ce995991A4eAd57DB7b550aDD94ba761669', 18, 'WHELIOS', 'Wrapped HELIOS'),
|
|
77
|
+
[chains_1.ChainId.ARC]: new token_1.Token(chains_1.ChainId.ARC, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUSDC', 'Wrapped USDC'),
|
|
78
|
+
[chains_1.ChainId.ROBINHOOD]: new token_1.Token(chains_1.ChainId.ROBINHOOD, '0x33e4191705c386532ba27cBF171Db86919200B94', 18, 'WETH', 'Wrapped ETH'),
|
|
79
|
+
[chains_1.ChainId.OPTIMISM_SEPOLIA]: new token_1.Token(chains_1.ChainId.OPTIMISM_SEPOLIA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
|
|
80
|
+
[chains_1.ChainId.ARBITRUM_SEPOLIA]: new token_1.Token(chains_1.ChainId.ARBITRUM_SEPOLIA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
|
|
81
|
+
[chains_1.ChainId.ZORA]: new token_1.Token(chains_1.ChainId.ZORA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
|
|
82
|
+
[chains_1.ChainId.ZORA_SEPOLIA]: new token_1.Token(chains_1.ChainId.ZORA_SEPOLIA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
|
|
83
|
+
[chains_1.ChainId.ROOTSTOCK]: new token_1.Token(chains_1.ChainId.ROOTSTOCK, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
|
|
84
|
+
[chains_1.ChainId.BLAST]: new token_1.Token(chains_1.ChainId.BLAST, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
|
|
85
|
+
};
|
|
86
|
+
const NATIVE_CURRENCY_METADATA = {
|
|
87
|
+
[chains_1.ChainId.POLYGON]: { decimals: 18, symbol: 'MATIC', name: 'Polygon Matic' },
|
|
88
|
+
[chains_1.ChainId.POLYGON_MUMBAI]: { decimals: 18, symbol: 'MATIC', name: 'Polygon Matic' },
|
|
89
|
+
[chains_1.ChainId.CELO]: { decimals: 18, symbol: 'CELO', name: 'Celo' },
|
|
90
|
+
[chains_1.ChainId.CELO_ALFAJORES]: { decimals: 18, symbol: 'CELO', name: 'Celo' },
|
|
91
|
+
[chains_1.ChainId.GNOSIS]: { decimals: 18, symbol: 'XDAI', name: 'xDai' },
|
|
92
|
+
[chains_1.ChainId.MOONBEAM]: { decimals: 18, symbol: 'GLMR', name: 'Glimmer' },
|
|
93
|
+
[chains_1.ChainId.BNB]: { decimals: 18, symbol: 'BNB', name: 'BNB' },
|
|
94
|
+
[chains_1.ChainId.AVALANCHE]: { decimals: 18, symbol: 'AVAX', name: 'Avalanche' },
|
|
95
|
+
[chains_1.ChainId.UOMI]: { decimals: 18, symbol: 'UOMI', name: 'Uomi' },
|
|
96
|
+
[chains_1.ChainId.IRYS]: { decimals: 18, symbol: 'IRYS', name: 'Irys' },
|
|
97
|
+
[chains_1.ChainId.HELIOS]: { decimals: 18, symbol: 'HELIOS', name: 'Helios' },
|
|
98
|
+
[chains_1.ChainId.ARC]: { decimals: 18, symbol: 'USDC', name: 'USDC' },
|
|
99
|
+
[chains_1.ChainId.ROBINHOOD]: { decimals: 18, symbol: 'ETH', name: 'ETH' },
|
|
100
|
+
};
|
|
101
|
+
class SynthraNativeCurrency extends nativeCurrency_1.NativeCurrency {
|
|
102
|
+
constructor(chainId, decimals, symbol, name) {
|
|
103
|
+
super(chainId, decimals, symbol, name);
|
|
104
|
+
}
|
|
105
|
+
equals(other) {
|
|
106
|
+
return other.isNative && other.chainId === this.chainId;
|
|
107
|
+
}
|
|
108
|
+
get wrapped() {
|
|
109
|
+
const nativeCurrency = exports.WRAPPED_NATIVE_CURRENCY[this.chainId];
|
|
110
|
+
if (nativeCurrency)
|
|
111
|
+
return nativeCurrency;
|
|
112
|
+
throw new Error(`Does not support this chain ${this.chainId}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
class ExtendedEther extends ether_1.Ether {
|
|
116
|
+
get wrapped() {
|
|
117
|
+
const nativeCurrency = exports.WRAPPED_NATIVE_CURRENCY[this.chainId];
|
|
118
|
+
if (nativeCurrency)
|
|
119
|
+
return nativeCurrency;
|
|
120
|
+
throw new Error('Unsupported chain ID');
|
|
121
|
+
}
|
|
122
|
+
static onChain(chainId) {
|
|
123
|
+
var _a;
|
|
124
|
+
return (_a = this._cachedExtendedEther[chainId]) !== null && _a !== void 0 ? _a : (this._cachedExtendedEther[chainId] = new ExtendedEther(chainId));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.ExtendedEther = ExtendedEther;
|
|
128
|
+
ExtendedEther._cachedExtendedEther = {};
|
|
129
|
+
const cachedNativeCurrency = {};
|
|
130
|
+
function nativeOnChain(chainId) {
|
|
131
|
+
if (cachedNativeCurrency[chainId] != undefined) {
|
|
132
|
+
return cachedNativeCurrency[chainId];
|
|
133
|
+
}
|
|
134
|
+
const metadata = NATIVE_CURRENCY_METADATA[chainId];
|
|
135
|
+
cachedNativeCurrency[chainId] = metadata
|
|
136
|
+
? new SynthraNativeCurrency(chainId, metadata.decimals, metadata.symbol, metadata.name)
|
|
137
|
+
: ExtendedEther.onChain(chainId);
|
|
138
|
+
return cachedNativeCurrency[chainId];
|
|
139
|
+
}
|
|
140
|
+
exports.nativeOnChain = nativeOnChain;
|
|
141
|
+
//# sourceMappingURL=nativeOnChain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeOnChain.js","sourceRoot":"","sources":["../../../src/core/entities/nativeOnChain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
import { BaseCurrency } from './baseCurrency';
|
|
3
|
+
import { Currency } from './currency';
|
|
4
|
+
/**
|
|
5
|
+
* Represents an ERC20 token with a unique address and some metadata.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Token extends BaseCurrency {
|
|
8
|
+
readonly isNative: false;
|
|
9
|
+
readonly isToken: true;
|
|
10
|
+
/**
|
|
11
|
+
* The contract address on the chain on which this token lives
|
|
12
|
+
*/
|
|
13
|
+
readonly address: string;
|
|
14
|
+
/**
|
|
15
|
+
* Relevant for fee-on-transfer (FOT) token taxes,
|
|
16
|
+
* Not every ERC20 token is FOT token, so this field is optional
|
|
17
|
+
*/
|
|
18
|
+
readonly buyFeeBps?: BigNumber;
|
|
19
|
+
readonly sellFeeBps?: BigNumber;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param chainId {@link BaseCurrency#chainId}
|
|
23
|
+
* @param address The contract address on the chain on which this token lives
|
|
24
|
+
* @param decimals {@link BaseCurrency#decimals}
|
|
25
|
+
* @param symbol {@link BaseCurrency#symbol}
|
|
26
|
+
* @param name {@link BaseCurrency#name}
|
|
27
|
+
* @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
|
|
28
|
+
* @param buyFeeBps Buy fee tax for FOT tokens, in basis points
|
|
29
|
+
* @param sellFeeBps Sell fee tax for FOT tokens, in basis points
|
|
30
|
+
*/
|
|
31
|
+
constructor(chainId: number, address: string, decimals: number, symbol?: string, name?: string, bypassChecksum?: boolean, buyFeeBps?: BigNumber, sellFeeBps?: BigNumber);
|
|
32
|
+
/**
|
|
33
|
+
* Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
|
|
34
|
+
* @param other other token to compare
|
|
35
|
+
*/
|
|
36
|
+
equals(other: Currency): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if the address of this token sorts before the address of the other token
|
|
39
|
+
* @param other other token to compare
|
|
40
|
+
* @throws if the tokens have the same address
|
|
41
|
+
* @throws if the tokens are on different chains
|
|
42
|
+
*/
|
|
43
|
+
sortsBefore(other: Token): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Return this token, which does not need to be wrapped
|
|
46
|
+
*/
|
|
47
|
+
get wrapped(): Token;
|
|
48
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Token = void 0;
|
|
7
|
+
const bignumber_1 = require("@ethersproject/bignumber");
|
|
8
|
+
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
9
|
+
const validateAndParseAddress_1 = require("../utils/validateAndParseAddress");
|
|
10
|
+
const baseCurrency_1 = require("./baseCurrency");
|
|
11
|
+
/**
|
|
12
|
+
* Represents an ERC20 token with a unique address and some metadata.
|
|
13
|
+
*/
|
|
14
|
+
class Token extends baseCurrency_1.BaseCurrency {
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param chainId {@link BaseCurrency#chainId}
|
|
18
|
+
* @param address The contract address on the chain on which this token lives
|
|
19
|
+
* @param decimals {@link BaseCurrency#decimals}
|
|
20
|
+
* @param symbol {@link BaseCurrency#symbol}
|
|
21
|
+
* @param name {@link BaseCurrency#name}
|
|
22
|
+
* @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
|
|
23
|
+
* @param buyFeeBps Buy fee tax for FOT tokens, in basis points
|
|
24
|
+
* @param sellFeeBps Sell fee tax for FOT tokens, in basis points
|
|
25
|
+
*/
|
|
26
|
+
constructor(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
|
|
27
|
+
super(chainId, decimals, symbol, name);
|
|
28
|
+
this.isNative = false;
|
|
29
|
+
this.isToken = true;
|
|
30
|
+
if (bypassChecksum) {
|
|
31
|
+
this.address = (0, validateAndParseAddress_1.checkValidAddress)(address);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.address = (0, validateAndParseAddress_1.validateAndParseAddress)(address);
|
|
35
|
+
}
|
|
36
|
+
if (buyFeeBps) {
|
|
37
|
+
(0, tiny_invariant_1.default)(buyFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
|
|
38
|
+
}
|
|
39
|
+
if (sellFeeBps) {
|
|
40
|
+
(0, tiny_invariant_1.default)(sellFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
|
|
41
|
+
}
|
|
42
|
+
this.buyFeeBps = buyFeeBps;
|
|
43
|
+
this.sellFeeBps = sellFeeBps;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
|
|
47
|
+
* @param other other token to compare
|
|
48
|
+
*/
|
|
49
|
+
equals(other) {
|
|
50
|
+
return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns true if the address of this token sorts before the address of the other token
|
|
54
|
+
* @param other other token to compare
|
|
55
|
+
* @throws if the tokens have the same address
|
|
56
|
+
* @throws if the tokens are on different chains
|
|
57
|
+
*/
|
|
58
|
+
sortsBefore(other) {
|
|
59
|
+
(0, tiny_invariant_1.default)(this.chainId === other.chainId, 'CHAIN_IDS');
|
|
60
|
+
(0, tiny_invariant_1.default)(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES');
|
|
61
|
+
return this.address.toLowerCase() < other.address.toLowerCase();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Return this token, which does not need to be wrapped
|
|
65
|
+
*/
|
|
66
|
+
get wrapped() {
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.Token = Token;
|
|
71
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/core/entities/token.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAoD;AACpD,oEAAsC;AACtC,8EAA6F;AAC7F,iDAA6C;AAG7C;;GAEG;AACH,MAAa,KAAM,SAAQ,2BAAY;IAgBrC;;;;;;;;;;OAUG;IACH,YACE,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,MAAe,EACf,IAAa,EACb,cAAwB,EACxB,SAAqB,EACrB,UAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QApCxB,aAAQ,GAAU,KAAK,CAAA;QACvB,YAAO,GAAS,IAAI,CAAA;QAoClC,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,IAAA,2CAAiB,EAAC,OAAO,CAAC,CAAA;SAC1C;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAA;SAChD;QACD,IAAI,SAAS,EAAE;YACb,IAAA,wBAAS,EAAC,SAAS,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;SACrE;QACD,IAAI,UAAU,EAAE;YACd,IAAA,wBAAS,EAAC,UAAU,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;SACtE;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAe;QAC3B,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;IACtH,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,KAAY;QAC7B,IAAA,wBAAS,EAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACtD,IAAA,wBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;IACjE,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA/ED,sBA+EC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WETH9 = void 0;
|
|
4
|
+
const token_1 = require("./token");
|
|
5
|
+
const chains_1 = require("../chains");
|
|
6
|
+
/**
|
|
7
|
+
* Known wrapped native token addresses, used in Ether#wrapped.
|
|
8
|
+
*/
|
|
9
|
+
exports.WETH9 = {
|
|
10
|
+
[chains_1.ChainId.MAINNET]: new token_1.Token(chains_1.ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
|
|
11
|
+
[3]: new token_1.Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
|
|
12
|
+
[chains_1.ChainId.GOERLI]: new token_1.Token(chains_1.ChainId.GOERLI, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
|
|
13
|
+
[chains_1.ChainId.SEPOLIA]: new token_1.Token(chains_1.ChainId.SEPOLIA, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
|
|
14
|
+
[chains_1.ChainId.OPTIMISM]: new token_1.Token(chains_1.ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
15
|
+
[chains_1.ChainId.OPTIMISM_SEPOLIA]: new token_1.Token(chains_1.ChainId.OPTIMISM_SEPOLIA, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
16
|
+
[chains_1.ChainId.ARBITRUM_ONE]: new token_1.Token(chains_1.ChainId.ARBITRUM_ONE, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
|
|
17
|
+
[chains_1.ChainId.ARBITRUM_SEPOLIA]: new token_1.Token(chains_1.ChainId.ARBITRUM_SEPOLIA, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),
|
|
18
|
+
[chains_1.ChainId.BASE]: new token_1.Token(chains_1.ChainId.BASE, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
19
|
+
[chains_1.ChainId.BNB]: new token_1.Token(chains_1.ChainId.BNB, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
|
|
20
|
+
[chains_1.ChainId.POLYGON]: new token_1.Token(chains_1.ChainId.POLYGON, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
|
|
21
|
+
[chains_1.ChainId.AVALANCHE]: new token_1.Token(chains_1.ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
|
|
22
|
+
[chains_1.ChainId.UOMI]: new token_1.Token(chains_1.ChainId.UOMI, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUOMI', 'Wrapped UOMI'),
|
|
23
|
+
[chains_1.ChainId.IRYS]: new token_1.Token(chains_1.ChainId.IRYS, '0x33e4191705c386532ba27cbf171db86919200b94', 18, 'WIRYS', 'Wrapped IRYS'),
|
|
24
|
+
[chains_1.ChainId.HELIOS]: new token_1.Token(chains_1.ChainId.HELIOS, '0xfBCf3Ce995991A4eAd57DB7b550aDD94ba761669', 18, 'WHELIOS', 'Wrapped HELIOS'),
|
|
25
|
+
[chains_1.ChainId.ARC]: new token_1.Token(chains_1.ChainId.ARC, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUSDC', 'Wrapped USDC'),
|
|
26
|
+
[chains_1.ChainId.ROBINHOOD]: new token_1.Token(chains_1.ChainId.ROBINHOOD, '0x33e4191705c386532ba27cBF171Db86919200B94', 18, 'WETH', 'Wrapped ETH')
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=weth9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weth9.js","sourceRoot":"","sources":["../../../src/core/entities/weth9.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./addresses"), exports);
|
|
18
|
+
__exportStar(require("./chains"), exports);
|
|
19
|
+
__exportStar(require("./constants"), exports);
|
|
20
|
+
__exportStar(require("./entities"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,2CAAwB;AACxB,8CAA2B;AAC3B,6CAA0B;AAC1B,0CAAuB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Currency, CurrencyAmount, Percent, Price } from '../entities';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the percent difference between the mid price and the execution price, i.e. price impact.
|
|
4
|
+
* @param midPrice mid price before the trade
|
|
5
|
+
* @param inputAmount the input amount of the trade
|
|
6
|
+
* @param outputAmount the output amount of the trade
|
|
7
|
+
*/
|
|
8
|
+
export declare function computePriceImpact<TBase extends Currency, TQuote extends Currency>(midPrice: Price<TBase, TQuote>, inputAmount: CurrencyAmount<TBase>, outputAmount: CurrencyAmount<TQuote>): Percent;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computePriceImpact = void 0;
|
|
4
|
+
const entities_1 = require("../entities");
|
|
5
|
+
/**
|
|
6
|
+
* Returns the percent difference between the mid price and the execution price, i.e. price impact.
|
|
7
|
+
* @param midPrice mid price before the trade
|
|
8
|
+
* @param inputAmount the input amount of the trade
|
|
9
|
+
* @param outputAmount the output amount of the trade
|
|
10
|
+
*/
|
|
11
|
+
function computePriceImpact(midPrice, inputAmount, outputAmount) {
|
|
12
|
+
const quotedOutputAmount = midPrice.quote(inputAmount);
|
|
13
|
+
// calculate price impact := (exactQuote - outputAmount) / exactQuote
|
|
14
|
+
const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount);
|
|
15
|
+
return new entities_1.Percent(priceImpact.numerator, priceImpact.denominator);
|
|
16
|
+
}
|
|
17
|
+
exports.computePriceImpact = computePriceImpact;
|
|
18
|
+
//# sourceMappingURL=computePriceImpact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computePriceImpact.js","sourceRoot":"","sources":["../../../src/core/utils/computePriceImpact.ts"],"names":[],"mappings":";;;AAAA,0CAAsE;AAEtE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,QAA8B,EAC9B,WAAkC,EAClC,YAAoC;IAEpC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACtD,qEAAqE;IACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IACxF,OAAO,IAAI,kBAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;AACpE,CAAC;AATD,gDASC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAndParseAddress = exports.sqrt = exports.sortedInsert = exports.computePriceImpact = void 0;
|
|
4
|
+
var computePriceImpact_1 = require("./computePriceImpact");
|
|
5
|
+
Object.defineProperty(exports, "computePriceImpact", { enumerable: true, get: function () { return computePriceImpact_1.computePriceImpact; } });
|
|
6
|
+
var sortedInsert_1 = require("./sortedInsert");
|
|
7
|
+
Object.defineProperty(exports, "sortedInsert", { enumerable: true, get: function () { return sortedInsert_1.sortedInsert; } });
|
|
8
|
+
var sqrt_1 = require("./sqrt");
|
|
9
|
+
Object.defineProperty(exports, "sqrt", { enumerable: true, get: function () { return sqrt_1.sqrt; } });
|
|
10
|
+
var validateAndParseAddress_1 = require("./validateAndParseAddress");
|
|
11
|
+
Object.defineProperty(exports, "validateAndParseAddress", { enumerable: true, get: function () { return validateAndParseAddress_1.validateAndParseAddress; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,qEAAmE;AAA1D,kIAAA,uBAAuB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null;
|