@uniswap/sdk-core 7.6.0 → 7.7.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/{addresses.d.ts → cjs/src/addresses.d.ts} +58 -58
- package/dist/cjs/src/addresses.js +433 -0
- package/dist/cjs/src/addresses.js.map +1 -0
- package/dist/cjs/src/addresses.test.d.ts +1 -0
- package/dist/cjs/src/addresses.test.js +41 -0
- package/dist/cjs/src/addresses.test.js.map +1 -0
- package/dist/{chains.d.ts → cjs/src/chains.d.ts} +44 -44
- package/dist/cjs/src/chains.js +79 -0
- package/dist/cjs/src/chains.js.map +1 -0
- package/dist/{constants.d.ts → cjs/src/constants.d.ts} +12 -12
- package/dist/cjs/src/constants.js +18 -0
- package/dist/cjs/src/constants.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/baseCurrency.d.ts +49 -49
- package/dist/cjs/src/entities/baseCurrency.js +27 -0
- package/dist/cjs/src/entities/baseCurrency.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/currency.d.ts +3 -3
- package/dist/cjs/src/entities/currency.js +3 -0
- package/dist/cjs/src/entities/currency.js.map +1 -0
- package/dist/cjs/src/entities/currency.test.d.ts +1 -0
- package/dist/cjs/src/entities/currency.test.js +27 -0
- package/dist/cjs/src/entities/currency.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/ether.d.ts +13 -13
- package/dist/cjs/src/entities/ether.js +30 -0
- package/dist/cjs/src/entities/ether.js.map +1 -0
- package/dist/cjs/src/entities/ether.test.d.ts +1 -0
- package/dist/cjs/src/entities/ether.test.js +19 -0
- package/dist/cjs/src/entities/ether.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/fractions/currencyAmount.d.ts +31 -31
- package/dist/cjs/src/entities/fractions/currencyAmount.js +72 -0
- package/dist/cjs/src/entities/fractions/currencyAmount.js.map +1 -0
- package/dist/cjs/src/entities/fractions/currencyAmount.test.d.ts +1 -0
- package/dist/cjs/src/entities/fractions/currencyAmount.test.js +99 -0
- package/dist/cjs/src/entities/fractions/currencyAmount.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/fractions/fraction.d.ts +24 -24
- package/dist/cjs/src/entities/fractions/fraction.js +104 -0
- package/dist/cjs/src/entities/fractions/fraction.js.map +1 -0
- package/dist/cjs/src/entities/fractions/fraction.test.d.ts +1 -0
- package/dist/cjs/src/entities/fractions/fraction.test.js +86 -0
- package/dist/cjs/src/entities/fractions/fraction.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/fractions/index.d.ts +4 -4
- package/dist/cjs/src/entities/fractions/index.js +12 -0
- package/dist/cjs/src/entities/fractions/index.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/fractions/percent.d.ts +14 -14
- package/dist/cjs/src/entities/fractions/percent.js +43 -0
- package/dist/cjs/src/entities/fractions/percent.js.map +1 -0
- package/dist/cjs/src/entities/fractions/percent.test.d.ts +1 -0
- package/dist/cjs/src/entities/fractions/percent.test.js +53 -0
- package/dist/cjs/src/entities/fractions/percent.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/fractions/price.d.ts +38 -38
- package/dist/cjs/src/entities/fractions/price.js +73 -0
- package/dist/cjs/src/entities/fractions/price.js.map +1 -0
- package/dist/cjs/src/entities/fractions/price.test.d.ts +1 -0
- package/dist/cjs/src/entities/fractions/price.test.js +58 -0
- package/dist/cjs/src/entities/fractions/price.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/index.d.ts +6 -6
- package/dist/cjs/src/entities/index.js +10 -0
- package/dist/cjs/src/entities/index.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/nativeCurrency.d.ts +8 -8
- package/dist/cjs/src/entities/nativeCurrency.js +16 -0
- package/dist/cjs/src/entities/nativeCurrency.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/token.d.ts +48 -48
- package/dist/cjs/src/entities/token.js +69 -0
- package/dist/cjs/src/entities/token.js.map +1 -0
- package/dist/cjs/src/entities/token.test.d.ts +1 -0
- package/dist/cjs/src/entities/token.test.js +74 -0
- package/dist/cjs/src/entities/token.test.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/weth9.d.ts +7 -7
- package/dist/cjs/src/entities/weth9.js +35 -0
- package/dist/cjs/src/entities/weth9.js.map +1 -0
- package/dist/{index.d.ts → cjs/src/index.d.ts} +5 -5
- package/dist/cjs/src/index.js +9 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/computePriceImpact.d.ts +8 -8
- package/dist/cjs/src/utils/computePriceImpact.js +18 -0
- package/dist/cjs/src/utils/computePriceImpact.js.map +1 -0
- package/dist/cjs/src/utils/computePriceImpact.test.d.ts +1 -0
- package/dist/cjs/src/utils/computePriceImpact.test.js +20 -0
- package/dist/cjs/src/utils/computePriceImpact.test.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/computeZksyncCreate2Address.d.ts +2 -2
- package/dist/cjs/src/utils/computeZksyncCreate2Address.js +15 -0
- package/dist/cjs/src/utils/computeZksyncCreate2Address.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/index.d.ts +5 -5
- package/dist/cjs/src/utils/index.js +14 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/sortedInsert.d.ts +1 -1
- package/dist/cjs/src/utils/sortedInsert.js +38 -0
- package/dist/cjs/src/utils/sortedInsert.js.map +1 -0
- package/dist/cjs/src/utils/sortedInsert.test.d.ts +1 -0
- package/dist/cjs/src/utils/sortedInsert.test.js +60 -0
- package/dist/cjs/src/utils/sortedInsert.test.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/sqrt.d.ts +7 -7
- package/dist/cjs/src/utils/sqrt.js +32 -0
- package/dist/cjs/src/utils/sqrt.js.map +1 -0
- package/dist/cjs/src/utils/sqrt.test.d.ts +1 -0
- package/dist/cjs/src/utils/sqrt.test.js +26 -0
- package/dist/cjs/src/utils/sqrt.test.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/validateAndParseAddress.d.ts +10 -10
- package/dist/cjs/src/utils/validateAndParseAddress.js +31 -0
- package/dist/cjs/src/utils/validateAndParseAddress.js.map +1 -0
- package/dist/cjs/src/utils/validateAndParseAddress.test.d.ts +1 -0
- package/dist/cjs/src/utils/validateAndParseAddress.test.js +32 -0
- package/dist/cjs/src/utils/validateAndParseAddress.test.js.map +1 -0
- package/dist/esm/src/addresses.d.ts +58 -0
- package/dist/esm/src/addresses.js +429 -0
- package/dist/esm/src/addresses.js.map +1 -0
- package/dist/esm/src/addresses.test.d.ts +1 -0
- package/dist/esm/src/addresses.test.js +39 -0
- package/dist/esm/src/addresses.test.js.map +1 -0
- package/dist/esm/src/chains.d.ts +44 -0
- package/dist/esm/src/chains.js +76 -0
- package/dist/esm/src/chains.js.map +1 -0
- package/dist/esm/src/constants.d.ts +12 -0
- package/dist/esm/src/constants.js +14 -0
- package/dist/esm/src/constants.js.map +1 -0
- package/dist/esm/src/entities/baseCurrency.d.ts +49 -0
- package/dist/esm/src/entities/baseCurrency.js +22 -0
- package/dist/esm/src/entities/baseCurrency.js.map +1 -0
- package/dist/esm/src/entities/currency.d.ts +3 -0
- package/dist/esm/src/entities/currency.js +2 -0
- package/dist/esm/src/entities/currency.js.map +1 -0
- package/dist/esm/src/entities/currency.test.d.ts +1 -0
- package/dist/esm/src/entities/currency.test.js +25 -0
- package/dist/esm/src/entities/currency.test.js.map +1 -0
- package/dist/esm/src/entities/ether.d.ts +13 -0
- package/dist/esm/src/entities/ether.js +25 -0
- package/dist/esm/src/entities/ether.js.map +1 -0
- package/dist/esm/src/entities/ether.test.d.ts +1 -0
- package/dist/esm/src/entities/ether.test.js +17 -0
- package/dist/esm/src/entities/ether.test.js.map +1 -0
- package/dist/esm/src/entities/fractions/currencyAmount.d.ts +31 -0
- package/dist/esm/src/entities/fractions/currencyAmount.js +67 -0
- package/dist/esm/src/entities/fractions/currencyAmount.js.map +1 -0
- package/dist/esm/src/entities/fractions/currencyAmount.test.d.ts +1 -0
- package/dist/esm/src/entities/fractions/currencyAmount.test.js +96 -0
- package/dist/esm/src/entities/fractions/currencyAmount.test.js.map +1 -0
- package/dist/esm/src/entities/fractions/fraction.d.ts +24 -0
- package/dist/esm/src/entities/fractions/fraction.js +99 -0
- package/dist/esm/src/entities/fractions/fraction.js.map +1 -0
- package/dist/esm/src/entities/fractions/fraction.test.d.ts +1 -0
- package/dist/esm/src/entities/fractions/fraction.test.js +83 -0
- package/dist/esm/src/entities/fractions/fraction.test.js.map +1 -0
- package/dist/esm/src/entities/fractions/index.d.ts +4 -0
- package/dist/esm/src/entities/fractions/index.js +5 -0
- package/dist/esm/src/entities/fractions/index.js.map +1 -0
- package/dist/esm/src/entities/fractions/percent.d.ts +14 -0
- package/dist/esm/src/entities/fractions/percent.js +38 -0
- package/dist/esm/src/entities/fractions/percent.js.map +1 -0
- package/dist/esm/src/entities/fractions/percent.test.d.ts +1 -0
- package/dist/esm/src/entities/fractions/percent.test.js +51 -0
- package/dist/esm/src/entities/fractions/percent.test.js.map +1 -0
- package/dist/esm/src/entities/fractions/price.d.ts +38 -0
- package/dist/esm/src/entities/fractions/price.js +68 -0
- package/dist/esm/src/entities/fractions/price.js.map +1 -0
- package/dist/esm/src/entities/fractions/price.test.d.ts +1 -0
- package/dist/esm/src/entities/fractions/price.test.js +56 -0
- package/dist/esm/src/entities/fractions/price.test.js.map +1 -0
- package/dist/esm/src/entities/index.d.ts +6 -0
- package/dist/esm/src/entities/index.js +7 -0
- package/dist/esm/src/entities/index.js.map +1 -0
- package/dist/esm/src/entities/nativeCurrency.d.ts +8 -0
- package/dist/esm/src/entities/nativeCurrency.js +12 -0
- package/dist/esm/src/entities/nativeCurrency.js.map +1 -0
- package/dist/esm/src/entities/token.d.ts +48 -0
- package/dist/esm/src/entities/token.js +64 -0
- package/dist/esm/src/entities/token.js.map +1 -0
- package/dist/esm/src/entities/token.test.d.ts +1 -0
- package/dist/esm/src/entities/token.test.js +72 -0
- package/dist/esm/src/entities/token.test.js.map +1 -0
- package/dist/esm/src/entities/weth9.d.ts +7 -0
- package/dist/esm/src/entities/weth9.js +32 -0
- package/dist/esm/src/entities/weth9.js.map +1 -0
- package/dist/esm/src/index.d.ts +5 -0
- package/dist/esm/src/index.js +6 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/utils/computePriceImpact.d.ts +8 -0
- package/dist/esm/src/utils/computePriceImpact.js +14 -0
- package/dist/esm/src/utils/computePriceImpact.js.map +1 -0
- package/dist/esm/src/utils/computePriceImpact.test.d.ts +1 -0
- package/dist/esm/src/utils/computePriceImpact.test.js +18 -0
- package/dist/esm/src/utils/computePriceImpact.test.js.map +1 -0
- package/dist/esm/src/utils/computeZksyncCreate2Address.d.ts +2 -0
- package/dist/esm/src/utils/computeZksyncCreate2Address.js +11 -0
- package/dist/esm/src/utils/computeZksyncCreate2Address.js.map +1 -0
- package/dist/esm/src/utils/index.d.ts +5 -0
- package/dist/esm/src/utils/index.js +6 -0
- package/dist/esm/src/utils/index.js.map +1 -0
- package/dist/esm/src/utils/sortedInsert.d.ts +1 -0
- package/dist/esm/src/utils/sortedInsert.js +33 -0
- package/dist/esm/src/utils/sortedInsert.js.map +1 -0
- package/dist/esm/src/utils/sortedInsert.test.d.ts +1 -0
- package/dist/esm/src/utils/sortedInsert.test.js +58 -0
- package/dist/esm/src/utils/sortedInsert.test.js.map +1 -0
- package/dist/esm/src/utils/sqrt.d.ts +7 -0
- package/dist/esm/src/utils/sqrt.js +27 -0
- package/dist/esm/src/utils/sqrt.js.map +1 -0
- package/dist/esm/src/utils/sqrt.test.d.ts +1 -0
- package/dist/esm/src/utils/sqrt.test.js +23 -0
- package/dist/esm/src/utils/sqrt.test.js.map +1 -0
- package/dist/esm/src/utils/validateAndParseAddress.d.ts +10 -0
- package/dist/esm/src/utils/validateAndParseAddress.js +26 -0
- package/dist/esm/src/utils/validateAndParseAddress.js.map +1 -0
- package/dist/esm/src/utils/validateAndParseAddress.test.d.ts +1 -0
- package/dist/esm/src/utils/validateAndParseAddress.test.js +30 -0
- package/dist/esm/src/utils/validateAndParseAddress.test.js.map +1 -0
- package/dist/types/src/addresses.d.ts +58 -0
- package/dist/types/src/addresses.test.d.ts +1 -0
- package/dist/types/src/chains.d.ts +44 -0
- package/dist/types/src/constants.d.ts +12 -0
- package/dist/types/src/entities/baseCurrency.d.ts +49 -0
- package/dist/types/src/entities/currency.d.ts +3 -0
- package/dist/types/src/entities/currency.test.d.ts +1 -0
- package/dist/types/src/entities/ether.d.ts +13 -0
- package/dist/types/src/entities/ether.test.d.ts +1 -0
- package/dist/types/src/entities/fractions/currencyAmount.d.ts +31 -0
- package/dist/types/src/entities/fractions/currencyAmount.test.d.ts +1 -0
- package/dist/types/src/entities/fractions/fraction.d.ts +24 -0
- package/dist/types/src/entities/fractions/fraction.test.d.ts +1 -0
- package/dist/types/src/entities/fractions/index.d.ts +4 -0
- package/dist/types/src/entities/fractions/percent.d.ts +14 -0
- package/dist/types/src/entities/fractions/percent.test.d.ts +1 -0
- package/dist/types/src/entities/fractions/price.d.ts +38 -0
- package/dist/types/src/entities/fractions/price.test.d.ts +1 -0
- package/dist/types/src/entities/index.d.ts +6 -0
- package/dist/types/src/entities/nativeCurrency.d.ts +8 -0
- package/dist/types/src/entities/token.d.ts +48 -0
- package/dist/types/src/entities/token.test.d.ts +1 -0
- package/dist/types/src/entities/weth9.d.ts +7 -0
- package/dist/types/src/index.d.ts +5 -0
- package/dist/types/src/utils/computePriceImpact.d.ts +8 -0
- package/dist/types/src/utils/computePriceImpact.test.d.ts +1 -0
- package/dist/types/src/utils/computeZksyncCreate2Address.d.ts +2 -0
- package/dist/types/src/utils/index.d.ts +5 -0
- package/dist/types/src/utils/sortedInsert.d.ts +1 -0
- package/dist/types/src/utils/sortedInsert.test.d.ts +1 -0
- package/dist/types/src/utils/sqrt.d.ts +7 -0
- package/dist/types/src/utils/sqrt.test.d.ts +1 -0
- package/dist/types/src/utils/validateAndParseAddress.d.ts +10 -0
- package/dist/types/src/utils/validateAndParseAddress.test.d.ts +1 -0
- package/package.json +28 -10
- package/dist/index.js +0 -8
- package/dist/sdk-core.cjs.development.js +0 -1138
- package/dist/sdk-core.cjs.development.js.map +0 -1
- package/dist/sdk-core.cjs.production.min.js +0 -2
- package/dist/sdk-core.cjs.production.min.js.map +0 -1
- package/dist/sdk-core.esm.js +0 -1099
- package/dist/sdk-core.esm.js.map +0 -1
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { BigintIsh, Rounding } from '../../constants';
|
|
2
|
-
import { Currency } from '../currency';
|
|
3
|
-
import { Fraction } from './fraction';
|
|
4
|
-
import { CurrencyAmount } from './currencyAmount';
|
|
5
|
-
export declare class Price<TBase extends Currency, TQuote extends Currency> extends Fraction {
|
|
6
|
-
readonly baseCurrency: TBase;
|
|
7
|
-
readonly quoteCurrency: TQuote;
|
|
8
|
-
readonly scalar: Fraction;
|
|
9
|
-
/**
|
|
10
|
-
* Construct a price, either with the base and quote currency amount, or the
|
|
11
|
-
* @param args
|
|
12
|
-
*/
|
|
13
|
-
constructor(...args: [TBase, TQuote, BigintIsh, BigintIsh] | [{
|
|
14
|
-
baseAmount: CurrencyAmount<TBase>;
|
|
15
|
-
quoteAmount: CurrencyAmount<TQuote>;
|
|
16
|
-
}]);
|
|
17
|
-
/**
|
|
18
|
-
* Flip the price, switching the base and quote currency
|
|
19
|
-
*/
|
|
20
|
-
invert(): Price<TQuote, TBase>;
|
|
21
|
-
/**
|
|
22
|
-
* 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
|
|
23
|
-
* @param other the other price
|
|
24
|
-
*/
|
|
25
|
-
multiply<TOtherQuote extends Currency>(other: Price<TQuote, TOtherQuote>): Price<TBase, TOtherQuote>;
|
|
26
|
-
/**
|
|
27
|
-
* Return the amount of quote currency corresponding to a given amount of the base currency
|
|
28
|
-
* @param currencyAmount the amount of base currency to quote against the price
|
|
29
|
-
*/
|
|
30
|
-
quote(currencyAmount: CurrencyAmount<TBase>): CurrencyAmount<TQuote>;
|
|
31
|
-
/**
|
|
32
|
-
* Get the value scaled by decimals for formatting
|
|
33
|
-
* @private
|
|
34
|
-
*/
|
|
35
|
-
private get adjustedForDecimals();
|
|
36
|
-
toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
|
|
37
|
-
toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
|
|
38
|
-
}
|
|
1
|
+
import { BigintIsh, Rounding } from '../../constants';
|
|
2
|
+
import { Currency } from '../currency';
|
|
3
|
+
import { Fraction } from './fraction';
|
|
4
|
+
import { CurrencyAmount } from './currencyAmount';
|
|
5
|
+
export declare class Price<TBase extends Currency, TQuote extends Currency> extends Fraction {
|
|
6
|
+
readonly baseCurrency: TBase;
|
|
7
|
+
readonly quoteCurrency: TQuote;
|
|
8
|
+
readonly scalar: Fraction;
|
|
9
|
+
/**
|
|
10
|
+
* Construct a price, either with the base and quote currency amount, or the
|
|
11
|
+
* @param args
|
|
12
|
+
*/
|
|
13
|
+
constructor(...args: [TBase, TQuote, BigintIsh, BigintIsh] | [{
|
|
14
|
+
baseAmount: CurrencyAmount<TBase>;
|
|
15
|
+
quoteAmount: CurrencyAmount<TQuote>;
|
|
16
|
+
}]);
|
|
17
|
+
/**
|
|
18
|
+
* Flip the price, switching the base and quote currency
|
|
19
|
+
*/
|
|
20
|
+
invert(): Price<TQuote, TBase>;
|
|
21
|
+
/**
|
|
22
|
+
* 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
|
|
23
|
+
* @param other the other price
|
|
24
|
+
*/
|
|
25
|
+
multiply<TOtherQuote extends Currency>(other: Price<TQuote, TOtherQuote>): Price<TBase, TOtherQuote>;
|
|
26
|
+
/**
|
|
27
|
+
* Return the amount of quote currency corresponding to a given amount of the base currency
|
|
28
|
+
* @param currencyAmount the amount of base currency to quote against the price
|
|
29
|
+
*/
|
|
30
|
+
quote(currencyAmount: CurrencyAmount<TBase>): CurrencyAmount<TQuote>;
|
|
31
|
+
/**
|
|
32
|
+
* Get the value scaled by decimals for formatting
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
private get adjustedForDecimals();
|
|
36
|
+
toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
|
|
37
|
+
toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
|
|
38
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Price = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsbi_1 = tslib_1.__importDefault(require("jsbi"));
|
|
6
|
+
const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
|
|
7
|
+
const fraction_1 = require("./fraction");
|
|
8
|
+
const currencyAmount_1 = require("./currencyAmount");
|
|
9
|
+
class Price extends fraction_1.Fraction {
|
|
10
|
+
/**
|
|
11
|
+
* Construct a price, either with the base and quote currency amount, or the
|
|
12
|
+
* @param args
|
|
13
|
+
*/
|
|
14
|
+
constructor(...args) {
|
|
15
|
+
let baseCurrency, quoteCurrency, denominator, numerator;
|
|
16
|
+
if (args.length === 4) {
|
|
17
|
+
;
|
|
18
|
+
[baseCurrency, quoteCurrency, denominator, numerator] = args;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const result = args[0].quoteAmount.divide(args[0].baseAmount);
|
|
22
|
+
[baseCurrency, quoteCurrency, denominator, numerator] = [
|
|
23
|
+
args[0].baseAmount.currency,
|
|
24
|
+
args[0].quoteAmount.currency,
|
|
25
|
+
result.denominator,
|
|
26
|
+
result.numerator,
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
super(numerator, denominator);
|
|
30
|
+
this.baseCurrency = baseCurrency;
|
|
31
|
+
this.quoteCurrency = quoteCurrency;
|
|
32
|
+
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)));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Flip the price, switching the base and quote currency
|
|
36
|
+
*/
|
|
37
|
+
invert() {
|
|
38
|
+
return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 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
|
|
42
|
+
* @param other the other price
|
|
43
|
+
*/
|
|
44
|
+
multiply(other) {
|
|
45
|
+
(0, tiny_invariant_1.default)(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN');
|
|
46
|
+
const fraction = super.multiply(other);
|
|
47
|
+
return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Return the amount of quote currency corresponding to a given amount of the base currency
|
|
51
|
+
* @param currencyAmount the amount of base currency to quote against the price
|
|
52
|
+
*/
|
|
53
|
+
quote(currencyAmount) {
|
|
54
|
+
(0, tiny_invariant_1.default)(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN');
|
|
55
|
+
const result = super.multiply(currencyAmount);
|
|
56
|
+
return currencyAmount_1.CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the value scaled by decimals for formatting
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
get adjustedForDecimals() {
|
|
63
|
+
return super.multiply(this.scalar);
|
|
64
|
+
}
|
|
65
|
+
toSignificant(significantDigits = 6, format, rounding) {
|
|
66
|
+
return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
|
|
67
|
+
}
|
|
68
|
+
toFixed(decimalPlaces = 4, format, rounding) {
|
|
69
|
+
return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.Price = Price;
|
|
73
|
+
//# sourceMappingURL=price.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/price.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const token_1 = require("../token");
|
|
4
|
+
const currencyAmount_1 = require("./currencyAmount");
|
|
5
|
+
const price_1 = require("./price");
|
|
6
|
+
describe('Price', () => {
|
|
7
|
+
const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';
|
|
8
|
+
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
9
|
+
const t0 = new token_1.Token(1, ADDRESS_ZERO, 18);
|
|
10
|
+
const t0_6 = new token_1.Token(1, ADDRESS_ZERO, 6);
|
|
11
|
+
const t1 = new token_1.Token(1, ADDRESS_ONE, 18);
|
|
12
|
+
describe('#constructor', () => {
|
|
13
|
+
it('array format works', () => {
|
|
14
|
+
const price = new price_1.Price(t0, t1, 1, 54321);
|
|
15
|
+
expect(price.toSignificant(5)).toEqual('54321');
|
|
16
|
+
expect(price.baseCurrency.equals(t0));
|
|
17
|
+
expect(price.quoteCurrency.equals(t1));
|
|
18
|
+
});
|
|
19
|
+
it('object format works', () => {
|
|
20
|
+
const price = new price_1.Price({
|
|
21
|
+
baseAmount: currencyAmount_1.CurrencyAmount.fromRawAmount(t0, 1),
|
|
22
|
+
quoteAmount: currencyAmount_1.CurrencyAmount.fromRawAmount(t1, 54321),
|
|
23
|
+
});
|
|
24
|
+
expect(price.toSignificant(5)).toEqual('54321');
|
|
25
|
+
expect(price.baseCurrency.equals(t0));
|
|
26
|
+
expect(price.quoteCurrency.equals(t1));
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('#quote', () => {
|
|
30
|
+
it('returns correct value', () => {
|
|
31
|
+
const price = new price_1.Price(t0, t1, 1, 5);
|
|
32
|
+
expect(price.quote(currencyAmount_1.CurrencyAmount.fromRawAmount(t0, 10))).toEqual(currencyAmount_1.CurrencyAmount.fromRawAmount(t1, 50));
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('#toSignificant', () => {
|
|
36
|
+
it('no decimals', () => {
|
|
37
|
+
const p = new price_1.Price(t0, t1, 123, 456);
|
|
38
|
+
expect(p.toSignificant(4)).toEqual('3.707');
|
|
39
|
+
});
|
|
40
|
+
it('no decimals flip ratio', () => {
|
|
41
|
+
const p = new price_1.Price(t0, t1, 456, 123);
|
|
42
|
+
expect(p.toSignificant(4)).toEqual('0.2697');
|
|
43
|
+
});
|
|
44
|
+
it('with decimal difference', () => {
|
|
45
|
+
const p = new price_1.Price(t0_6, t1, 123, 456);
|
|
46
|
+
expect(p.toSignificant(4)).toEqual('0.000000000003707');
|
|
47
|
+
});
|
|
48
|
+
it('with decimal difference flipped', () => {
|
|
49
|
+
const p = new price_1.Price(t0_6, t1, 456, 123);
|
|
50
|
+
expect(p.toSignificant(4)).toEqual('0.0000000000002697');
|
|
51
|
+
});
|
|
52
|
+
it('with decimal difference flipped base quote flipped', () => {
|
|
53
|
+
const p = new price_1.Price(t1, t0_6, 456, 123);
|
|
54
|
+
expect(p.toSignificant(4)).toEqual('269700000000');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=price.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.test.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/price.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './fractions';
|
|
2
|
-
export * from './currency';
|
|
3
|
-
export * from './ether';
|
|
4
|
-
export * from './nativeCurrency';
|
|
5
|
-
export * from './token';
|
|
6
|
-
export * from './weth9';
|
|
1
|
+
export * from './fractions';
|
|
2
|
+
export * from './currency';
|
|
3
|
+
export * from './ether';
|
|
4
|
+
export * from './nativeCurrency';
|
|
5
|
+
export * from './token';
|
|
6
|
+
export * from './weth9';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./fractions"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./currency"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./ether"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./nativeCurrency"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./token"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./weth9"), exports);
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entities/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAE3B,qDAA0B;AAC1B,kDAAuB;AACvB,2DAAgC;AAChC,kDAAuB;AACvB,kDAAuB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BaseCurrency } from './baseCurrency';
|
|
2
|
-
/**
|
|
3
|
-
* Represents the native currency of the chain on which it resides, e.g.
|
|
4
|
-
*/
|
|
5
|
-
export declare abstract class NativeCurrency extends BaseCurrency {
|
|
6
|
-
readonly isNative: true;
|
|
7
|
-
readonly isToken: false;
|
|
8
|
-
}
|
|
1
|
+
import { BaseCurrency } from './baseCurrency';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the native currency of the chain on which it resides, e.g.
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class NativeCurrency extends BaseCurrency {
|
|
6
|
+
readonly isNative: true;
|
|
7
|
+
readonly isToken: false;
|
|
8
|
+
}
|
|
@@ -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/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"}
|
|
@@ -1,48 +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
|
-
}
|
|
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,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Token = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const bignumber_1 = require("@ethersproject/bignumber");
|
|
6
|
+
const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
|
|
7
|
+
const validateAndParseAddress_1 = require("../utils/validateAndParseAddress");
|
|
8
|
+
const baseCurrency_1 = require("./baseCurrency");
|
|
9
|
+
/**
|
|
10
|
+
* Represents an ERC20 token with a unique address and some metadata.
|
|
11
|
+
*/
|
|
12
|
+
class Token extends baseCurrency_1.BaseCurrency {
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param chainId {@link BaseCurrency#chainId}
|
|
16
|
+
* @param address The contract address on the chain on which this token lives
|
|
17
|
+
* @param decimals {@link BaseCurrency#decimals}
|
|
18
|
+
* @param symbol {@link BaseCurrency#symbol}
|
|
19
|
+
* @param name {@link BaseCurrency#name}
|
|
20
|
+
* @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
|
|
21
|
+
* @param buyFeeBps Buy fee tax for FOT tokens, in basis points
|
|
22
|
+
* @param sellFeeBps Sell fee tax for FOT tokens, in basis points
|
|
23
|
+
*/
|
|
24
|
+
constructor(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
|
|
25
|
+
super(chainId, decimals, symbol, name);
|
|
26
|
+
this.isNative = false;
|
|
27
|
+
this.isToken = true;
|
|
28
|
+
if (bypassChecksum) {
|
|
29
|
+
this.address = (0, validateAndParseAddress_1.checkValidAddress)(address);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.address = (0, validateAndParseAddress_1.validateAndParseAddress)(address);
|
|
33
|
+
}
|
|
34
|
+
if (buyFeeBps) {
|
|
35
|
+
(0, tiny_invariant_1.default)(buyFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
|
|
36
|
+
}
|
|
37
|
+
if (sellFeeBps) {
|
|
38
|
+
(0, tiny_invariant_1.default)(sellFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
|
|
39
|
+
}
|
|
40
|
+
this.buyFeeBps = buyFeeBps;
|
|
41
|
+
this.sellFeeBps = sellFeeBps;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
|
|
45
|
+
* @param other other token to compare
|
|
46
|
+
*/
|
|
47
|
+
equals(other) {
|
|
48
|
+
return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns true if the address of this token sorts before the address of the other token
|
|
52
|
+
* @param other other token to compare
|
|
53
|
+
* @throws if the tokens have the same address
|
|
54
|
+
* @throws if the tokens are on different chains
|
|
55
|
+
*/
|
|
56
|
+
sortsBefore(other) {
|
|
57
|
+
(0, tiny_invariant_1.default)(this.chainId === other.chainId, 'CHAIN_IDS');
|
|
58
|
+
(0, tiny_invariant_1.default)(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES');
|
|
59
|
+
return this.address.toLowerCase() < other.address.toLowerCase();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Return this token, which does not need to be wrapped
|
|
63
|
+
*/
|
|
64
|
+
get wrapped() {
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.Token = Token;
|
|
69
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/entities/token.ts"],"names":[],"mappings":";;;;AAAA,wDAAoD;AACpD,4EAAsC;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 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const token_1 = require("./token");
|
|
4
|
+
const bignumber_1 = require("@ethersproject/bignumber");
|
|
5
|
+
describe('Token', () => {
|
|
6
|
+
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
7
|
+
const ADDRESS_TWO = '0x0000000000000000000000000000000000000002';
|
|
8
|
+
const DAI_MAINNET = '0x6B175474E89094C44Da98b954EedeAC495271d0F';
|
|
9
|
+
describe('#constructor', () => {
|
|
10
|
+
it('fails with invalid address', () => {
|
|
11
|
+
expect(() => new token_1.Token(3, '0xhello00000000000000000000000000000000002', 18).address).toThrow('0xhello00000000000000000000000000000000002 is not a valid address');
|
|
12
|
+
});
|
|
13
|
+
it('fails with negative decimals', () => {
|
|
14
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, -1).address).toThrow('DECIMALS');
|
|
15
|
+
});
|
|
16
|
+
it('fails with 256 decimals', () => {
|
|
17
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, 256).address).toThrow('DECIMALS');
|
|
18
|
+
});
|
|
19
|
+
it('fails with non-integer decimals', () => {
|
|
20
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, 1.5).address).toThrow('DECIMALS');
|
|
21
|
+
});
|
|
22
|
+
it('fails with negative FOT fees', () => {
|
|
23
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, 18, undefined, undefined, undefined, bignumber_1.BigNumber.from(-1), undefined)).toThrow('NON-NEGATIVE FOT FEES');
|
|
24
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, 18, undefined, undefined, undefined, undefined, bignumber_1.BigNumber.from(-1))).toThrow('NON-NEGATIVE FOT FEES');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('#constructor with bypassChecksum = true', () => {
|
|
28
|
+
const bypassChecksum = true;
|
|
29
|
+
it('creates the token with a valid address', () => {
|
|
30
|
+
expect(new token_1.Token(3, ADDRESS_TWO, 18, undefined, undefined, bypassChecksum).address).toBe(ADDRESS_TWO);
|
|
31
|
+
});
|
|
32
|
+
it('fails with invalid address', () => {
|
|
33
|
+
expect(() => new token_1.Token(3, '0xhello00000000000000000000000000000000002', 18, undefined, undefined, bypassChecksum).address).toThrow('0xhello00000000000000000000000000000000002 is not a valid address');
|
|
34
|
+
});
|
|
35
|
+
it('fails with negative decimals', () => {
|
|
36
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, -1, undefined, undefined, bypassChecksum).address).toThrow('DECIMALS');
|
|
37
|
+
});
|
|
38
|
+
it('fails with 256 decimals', () => {
|
|
39
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, 256, undefined, undefined, bypassChecksum).address).toThrow('DECIMALS');
|
|
40
|
+
});
|
|
41
|
+
it('fails with non-integer decimals', () => {
|
|
42
|
+
expect(() => new token_1.Token(3, ADDRESS_ONE, 1.5, undefined, undefined, bypassChecksum).address).toThrow('DECIMALS');
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('#equals', () => {
|
|
46
|
+
it('fails if address differs', () => {
|
|
47
|
+
expect(new token_1.Token(1, ADDRESS_ONE, 18).equals(new token_1.Token(1, ADDRESS_TWO, 18))).toBe(false);
|
|
48
|
+
});
|
|
49
|
+
it('false if chain id differs', () => {
|
|
50
|
+
expect(new token_1.Token(3, ADDRESS_ONE, 18).equals(new token_1.Token(1, ADDRESS_ONE, 18))).toBe(false);
|
|
51
|
+
});
|
|
52
|
+
it('true if only decimals differs', () => {
|
|
53
|
+
expect(new token_1.Token(1, ADDRESS_ONE, 9).equals(new token_1.Token(1, ADDRESS_ONE, 18))).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
it('true if address is the same', () => {
|
|
56
|
+
expect(new token_1.Token(1, ADDRESS_ONE, 18).equals(new token_1.Token(1, ADDRESS_ONE, 18))).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
it('true on reference equality', () => {
|
|
59
|
+
const token = new token_1.Token(1, ADDRESS_ONE, 18);
|
|
60
|
+
expect(token.equals(token)).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
it('true even if name/symbol/decimals differ', () => {
|
|
63
|
+
const tokenA = new token_1.Token(1, ADDRESS_ONE, 9, 'abc', 'def');
|
|
64
|
+
const tokenB = new token_1.Token(1, ADDRESS_ONE, 18, 'ghi', 'jkl');
|
|
65
|
+
expect(tokenA.equals(tokenB)).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
it('true even if one token is checksummed and the other is not', () => {
|
|
68
|
+
const tokenA = new token_1.Token(1, DAI_MAINNET, 18, 'DAI', undefined, false);
|
|
69
|
+
const tokenB = new token_1.Token(1, DAI_MAINNET.toLowerCase(), 18, 'DAI', undefined, true);
|
|
70
|
+
expect(tokenA.equals(tokenB)).toBe(true);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=token.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../../src/entities/token.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Token } from './token';
|
|
2
|
-
/**
|
|
3
|
-
* Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
|
|
4
|
-
*/
|
|
5
|
-
export declare const WETH9: {
|
|
6
|
-
[chainId: number]: Token;
|
|
7
|
-
};
|
|
1
|
+
import { Token } from './token';
|
|
2
|
+
/**
|
|
3
|
+
* Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
|
|
4
|
+
*/
|
|
5
|
+
export declare const WETH9: {
|
|
6
|
+
[chainId: number]: Token;
|
|
7
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WETH9 = void 0;
|
|
4
|
+
const token_1 = require("./token");
|
|
5
|
+
/**
|
|
6
|
+
* Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
|
|
7
|
+
*/
|
|
8
|
+
exports.WETH9 = {
|
|
9
|
+
1: new token_1.Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
|
|
10
|
+
11155111: new token_1.Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
|
|
11
|
+
3: new token_1.Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
|
|
12
|
+
4: new token_1.Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
|
|
13
|
+
5: new token_1.Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
|
|
14
|
+
42: new token_1.Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),
|
|
15
|
+
10: new token_1.Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
16
|
+
69: new token_1.Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
17
|
+
11155420: new token_1.Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
18
|
+
42161: new token_1.Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
|
|
19
|
+
421611: new token_1.Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),
|
|
20
|
+
421614: new token_1.Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),
|
|
21
|
+
8453: new token_1.Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
22
|
+
84532: new token_1.Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
23
|
+
56: new token_1.Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
|
|
24
|
+
137: new token_1.Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
|
|
25
|
+
43114: new token_1.Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
|
|
26
|
+
7777777: new token_1.Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
27
|
+
81457: new token_1.Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),
|
|
28
|
+
324: new token_1.Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),
|
|
29
|
+
480: new token_1.Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
30
|
+
1301: new token_1.Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
31
|
+
130: new token_1.Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
32
|
+
10143: new token_1.Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),
|
|
33
|
+
1868: new token_1.Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=weth9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weth9.js","sourceRoot":"","sources":["../../../../src/entities/weth9.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './addresses';
|
|
2
|
-
export * from './chains';
|
|
3
|
-
export * from './constants';
|
|
4
|
-
export * from './entities';
|
|
5
|
-
export * from './utils';
|
|
1
|
+
export * from './addresses';
|
|
2
|
+
export * from './chains';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './entities';
|
|
5
|
+
export * from './utils';
|