@uniswap/sdk-core 7.7.0 → 7.7.2
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/{cjs/src/addresses.d.ts → addresses.d.ts} +58 -58
- package/dist/{cjs/src/chains.d.ts → chains.d.ts} +44 -44
- package/dist/{cjs/src/constants.d.ts → constants.d.ts} +12 -12
- package/dist/{esm/src/entities → entities}/baseCurrency.d.ts +49 -49
- package/dist/{cjs/src/entities → entities}/currency.d.ts +3 -3
- package/dist/{esm/src/entities → entities}/ether.d.ts +13 -13
- package/dist/{cjs/src/entities → entities}/fractions/currencyAmount.d.ts +31 -31
- package/dist/{esm/src/entities → entities}/fractions/fraction.d.ts +24 -24
- package/dist/{cjs/src/entities → entities}/fractions/index.d.ts +4 -4
- package/dist/{types/src/entities → entities}/fractions/percent.d.ts +14 -14
- package/dist/{cjs/src/entities → entities}/fractions/price.d.ts +38 -38
- package/dist/{esm/src/entities → entities}/index.d.ts +6 -6
- package/dist/{esm/src/entities → entities}/nativeCurrency.d.ts +8 -8
- package/dist/{cjs/src/entities → entities}/token.d.ts +48 -48
- package/dist/{types/src/entities → entities}/weth9.d.ts +7 -7
- package/dist/{esm/src/index.d.ts → index.d.ts} +5 -5
- package/dist/index.js +8 -0
- package/dist/sdk-core.cjs.development.js +1118 -0
- package/dist/sdk-core.cjs.development.js.map +1 -0
- package/dist/sdk-core.cjs.production.min.js +2 -0
- package/dist/sdk-core.cjs.production.min.js.map +1 -0
- package/dist/sdk-core.esm.js +1079 -0
- package/dist/sdk-core.esm.js.map +1 -0
- package/dist/{cjs/src/utils → utils}/computePriceImpact.d.ts +8 -8
- package/dist/{cjs/src/utils → utils}/computeZksyncCreate2Address.d.ts +2 -2
- package/dist/{esm/src/utils → utils}/index.d.ts +5 -5
- package/dist/{cjs/src/utils → utils}/sortedInsert.d.ts +1 -1
- package/dist/{types/src/utils → utils}/sqrt.d.ts +7 -7
- package/dist/{esm/src/utils → utils}/validateAndParseAddress.d.ts +10 -10
- package/package.json +16 -28
- package/dist/cjs/src/addresses.js +0 -433
- package/dist/cjs/src/addresses.js.map +0 -1
- package/dist/cjs/src/addresses.test.d.ts +0 -1
- package/dist/cjs/src/addresses.test.js +0 -41
- package/dist/cjs/src/addresses.test.js.map +0 -1
- package/dist/cjs/src/chains.js +0 -79
- package/dist/cjs/src/chains.js.map +0 -1
- package/dist/cjs/src/constants.js +0 -18
- package/dist/cjs/src/constants.js.map +0 -1
- package/dist/cjs/src/entities/baseCurrency.d.ts +0 -49
- package/dist/cjs/src/entities/baseCurrency.js +0 -27
- package/dist/cjs/src/entities/baseCurrency.js.map +0 -1
- package/dist/cjs/src/entities/currency.js +0 -3
- package/dist/cjs/src/entities/currency.js.map +0 -1
- package/dist/cjs/src/entities/currency.test.d.ts +0 -1
- package/dist/cjs/src/entities/currency.test.js +0 -27
- package/dist/cjs/src/entities/currency.test.js.map +0 -1
- package/dist/cjs/src/entities/ether.d.ts +0 -13
- package/dist/cjs/src/entities/ether.js +0 -30
- package/dist/cjs/src/entities/ether.js.map +0 -1
- package/dist/cjs/src/entities/ether.test.d.ts +0 -1
- package/dist/cjs/src/entities/ether.test.js +0 -19
- package/dist/cjs/src/entities/ether.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/currencyAmount.js +0 -72
- package/dist/cjs/src/entities/fractions/currencyAmount.js.map +0 -1
- package/dist/cjs/src/entities/fractions/currencyAmount.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/currencyAmount.test.js +0 -99
- package/dist/cjs/src/entities/fractions/currencyAmount.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/fraction.d.ts +0 -24
- package/dist/cjs/src/entities/fractions/fraction.js +0 -104
- package/dist/cjs/src/entities/fractions/fraction.js.map +0 -1
- package/dist/cjs/src/entities/fractions/fraction.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/fraction.test.js +0 -86
- package/dist/cjs/src/entities/fractions/fraction.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/index.js +0 -12
- package/dist/cjs/src/entities/fractions/index.js.map +0 -1
- package/dist/cjs/src/entities/fractions/percent.d.ts +0 -14
- package/dist/cjs/src/entities/fractions/percent.js +0 -43
- package/dist/cjs/src/entities/fractions/percent.js.map +0 -1
- package/dist/cjs/src/entities/fractions/percent.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/percent.test.js +0 -53
- package/dist/cjs/src/entities/fractions/percent.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/price.js +0 -73
- package/dist/cjs/src/entities/fractions/price.js.map +0 -1
- package/dist/cjs/src/entities/fractions/price.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/price.test.js +0 -58
- package/dist/cjs/src/entities/fractions/price.test.js.map +0 -1
- package/dist/cjs/src/entities/index.d.ts +0 -6
- package/dist/cjs/src/entities/index.js +0 -10
- package/dist/cjs/src/entities/index.js.map +0 -1
- package/dist/cjs/src/entities/nativeCurrency.d.ts +0 -8
- package/dist/cjs/src/entities/nativeCurrency.js +0 -16
- package/dist/cjs/src/entities/nativeCurrency.js.map +0 -1
- package/dist/cjs/src/entities/token.js +0 -69
- package/dist/cjs/src/entities/token.js.map +0 -1
- package/dist/cjs/src/entities/token.test.d.ts +0 -1
- package/dist/cjs/src/entities/token.test.js +0 -74
- package/dist/cjs/src/entities/token.test.js.map +0 -1
- package/dist/cjs/src/entities/weth9.d.ts +0 -7
- package/dist/cjs/src/entities/weth9.js +0 -35
- package/dist/cjs/src/entities/weth9.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -5
- package/dist/cjs/src/index.js +0 -9
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/utils/computePriceImpact.js +0 -18
- package/dist/cjs/src/utils/computePriceImpact.js.map +0 -1
- package/dist/cjs/src/utils/computePriceImpact.test.d.ts +0 -1
- package/dist/cjs/src/utils/computePriceImpact.test.js +0 -20
- package/dist/cjs/src/utils/computePriceImpact.test.js.map +0 -1
- package/dist/cjs/src/utils/computeZksyncCreate2Address.js +0 -15
- package/dist/cjs/src/utils/computeZksyncCreate2Address.js.map +0 -1
- package/dist/cjs/src/utils/index.d.ts +0 -5
- package/dist/cjs/src/utils/index.js +0 -14
- package/dist/cjs/src/utils/index.js.map +0 -1
- package/dist/cjs/src/utils/sortedInsert.js +0 -38
- package/dist/cjs/src/utils/sortedInsert.js.map +0 -1
- package/dist/cjs/src/utils/sortedInsert.test.d.ts +0 -1
- package/dist/cjs/src/utils/sortedInsert.test.js +0 -60
- package/dist/cjs/src/utils/sortedInsert.test.js.map +0 -1
- package/dist/cjs/src/utils/sqrt.d.ts +0 -7
- package/dist/cjs/src/utils/sqrt.js +0 -32
- package/dist/cjs/src/utils/sqrt.js.map +0 -1
- package/dist/cjs/src/utils/sqrt.test.d.ts +0 -1
- package/dist/cjs/src/utils/sqrt.test.js +0 -26
- package/dist/cjs/src/utils/sqrt.test.js.map +0 -1
- package/dist/cjs/src/utils/validateAndParseAddress.d.ts +0 -10
- package/dist/cjs/src/utils/validateAndParseAddress.js +0 -31
- package/dist/cjs/src/utils/validateAndParseAddress.js.map +0 -1
- package/dist/cjs/src/utils/validateAndParseAddress.test.d.ts +0 -1
- package/dist/cjs/src/utils/validateAndParseAddress.test.js +0 -32
- package/dist/cjs/src/utils/validateAndParseAddress.test.js.map +0 -1
- package/dist/esm/src/addresses.d.ts +0 -58
- package/dist/esm/src/addresses.js +0 -429
- package/dist/esm/src/addresses.js.map +0 -1
- package/dist/esm/src/addresses.test.d.ts +0 -1
- package/dist/esm/src/addresses.test.js +0 -39
- package/dist/esm/src/addresses.test.js.map +0 -1
- package/dist/esm/src/chains.d.ts +0 -44
- package/dist/esm/src/chains.js +0 -76
- package/dist/esm/src/chains.js.map +0 -1
- package/dist/esm/src/constants.d.ts +0 -12
- package/dist/esm/src/constants.js +0 -14
- package/dist/esm/src/constants.js.map +0 -1
- package/dist/esm/src/entities/baseCurrency.js +0 -22
- package/dist/esm/src/entities/baseCurrency.js.map +0 -1
- package/dist/esm/src/entities/currency.d.ts +0 -3
- package/dist/esm/src/entities/currency.js +0 -2
- package/dist/esm/src/entities/currency.js.map +0 -1
- package/dist/esm/src/entities/currency.test.d.ts +0 -1
- package/dist/esm/src/entities/currency.test.js +0 -25
- package/dist/esm/src/entities/currency.test.js.map +0 -1
- package/dist/esm/src/entities/ether.js +0 -25
- package/dist/esm/src/entities/ether.js.map +0 -1
- package/dist/esm/src/entities/ether.test.d.ts +0 -1
- package/dist/esm/src/entities/ether.test.js +0 -17
- package/dist/esm/src/entities/ether.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/currencyAmount.d.ts +0 -31
- package/dist/esm/src/entities/fractions/currencyAmount.js +0 -67
- package/dist/esm/src/entities/fractions/currencyAmount.js.map +0 -1
- package/dist/esm/src/entities/fractions/currencyAmount.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/currencyAmount.test.js +0 -96
- package/dist/esm/src/entities/fractions/currencyAmount.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/fraction.js +0 -99
- package/dist/esm/src/entities/fractions/fraction.js.map +0 -1
- package/dist/esm/src/entities/fractions/fraction.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/fraction.test.js +0 -83
- package/dist/esm/src/entities/fractions/fraction.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/index.d.ts +0 -4
- package/dist/esm/src/entities/fractions/index.js +0 -5
- package/dist/esm/src/entities/fractions/index.js.map +0 -1
- package/dist/esm/src/entities/fractions/percent.d.ts +0 -14
- package/dist/esm/src/entities/fractions/percent.js +0 -38
- package/dist/esm/src/entities/fractions/percent.js.map +0 -1
- package/dist/esm/src/entities/fractions/percent.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/percent.test.js +0 -51
- package/dist/esm/src/entities/fractions/percent.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/price.d.ts +0 -38
- package/dist/esm/src/entities/fractions/price.js +0 -68
- package/dist/esm/src/entities/fractions/price.js.map +0 -1
- package/dist/esm/src/entities/fractions/price.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/price.test.js +0 -56
- package/dist/esm/src/entities/fractions/price.test.js.map +0 -1
- package/dist/esm/src/entities/index.js +0 -7
- package/dist/esm/src/entities/index.js.map +0 -1
- package/dist/esm/src/entities/nativeCurrency.js +0 -12
- package/dist/esm/src/entities/nativeCurrency.js.map +0 -1
- package/dist/esm/src/entities/token.d.ts +0 -48
- package/dist/esm/src/entities/token.js +0 -64
- package/dist/esm/src/entities/token.js.map +0 -1
- package/dist/esm/src/entities/token.test.d.ts +0 -1
- package/dist/esm/src/entities/token.test.js +0 -72
- package/dist/esm/src/entities/token.test.js.map +0 -1
- package/dist/esm/src/entities/weth9.d.ts +0 -7
- package/dist/esm/src/entities/weth9.js +0 -32
- package/dist/esm/src/entities/weth9.js.map +0 -1
- package/dist/esm/src/index.js +0 -6
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/utils/computePriceImpact.d.ts +0 -8
- package/dist/esm/src/utils/computePriceImpact.js +0 -14
- package/dist/esm/src/utils/computePriceImpact.js.map +0 -1
- package/dist/esm/src/utils/computePriceImpact.test.d.ts +0 -1
- package/dist/esm/src/utils/computePriceImpact.test.js +0 -18
- package/dist/esm/src/utils/computePriceImpact.test.js.map +0 -1
- package/dist/esm/src/utils/computeZksyncCreate2Address.d.ts +0 -2
- package/dist/esm/src/utils/computeZksyncCreate2Address.js +0 -11
- package/dist/esm/src/utils/computeZksyncCreate2Address.js.map +0 -1
- package/dist/esm/src/utils/index.js +0 -6
- package/dist/esm/src/utils/index.js.map +0 -1
- package/dist/esm/src/utils/sortedInsert.d.ts +0 -1
- package/dist/esm/src/utils/sortedInsert.js +0 -33
- package/dist/esm/src/utils/sortedInsert.js.map +0 -1
- package/dist/esm/src/utils/sortedInsert.test.d.ts +0 -1
- package/dist/esm/src/utils/sortedInsert.test.js +0 -58
- package/dist/esm/src/utils/sortedInsert.test.js.map +0 -1
- package/dist/esm/src/utils/sqrt.d.ts +0 -7
- package/dist/esm/src/utils/sqrt.js +0 -27
- package/dist/esm/src/utils/sqrt.js.map +0 -1
- package/dist/esm/src/utils/sqrt.test.d.ts +0 -1
- package/dist/esm/src/utils/sqrt.test.js +0 -23
- package/dist/esm/src/utils/sqrt.test.js.map +0 -1
- package/dist/esm/src/utils/validateAndParseAddress.js +0 -26
- package/dist/esm/src/utils/validateAndParseAddress.js.map +0 -1
- package/dist/esm/src/utils/validateAndParseAddress.test.d.ts +0 -1
- package/dist/esm/src/utils/validateAndParseAddress.test.js +0 -30
- package/dist/esm/src/utils/validateAndParseAddress.test.js.map +0 -1
- package/dist/types/src/addresses.d.ts +0 -58
- package/dist/types/src/addresses.test.d.ts +0 -1
- package/dist/types/src/chains.d.ts +0 -44
- package/dist/types/src/constants.d.ts +0 -12
- package/dist/types/src/entities/baseCurrency.d.ts +0 -49
- package/dist/types/src/entities/currency.d.ts +0 -3
- package/dist/types/src/entities/currency.test.d.ts +0 -1
- package/dist/types/src/entities/ether.d.ts +0 -13
- package/dist/types/src/entities/ether.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/currencyAmount.d.ts +0 -31
- package/dist/types/src/entities/fractions/currencyAmount.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/fraction.d.ts +0 -24
- package/dist/types/src/entities/fractions/fraction.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/index.d.ts +0 -4
- package/dist/types/src/entities/fractions/percent.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/price.d.ts +0 -38
- package/dist/types/src/entities/fractions/price.test.d.ts +0 -1
- package/dist/types/src/entities/index.d.ts +0 -6
- package/dist/types/src/entities/nativeCurrency.d.ts +0 -8
- package/dist/types/src/entities/token.d.ts +0 -48
- package/dist/types/src/entities/token.test.d.ts +0 -1
- package/dist/types/src/index.d.ts +0 -5
- package/dist/types/src/utils/computePriceImpact.d.ts +0 -8
- package/dist/types/src/utils/computePriceImpact.test.d.ts +0 -1
- package/dist/types/src/utils/computeZksyncCreate2Address.d.ts +0 -2
- package/dist/types/src/utils/index.d.ts +0 -5
- package/dist/types/src/utils/sortedInsert.d.ts +0 -1
- package/dist/types/src/utils/sortedInsert.test.d.ts +0 -1
- package/dist/types/src/utils/sqrt.test.d.ts +0 -1
- package/dist/types/src/utils/validateAndParseAddress.d.ts +0 -10
- package/dist/types/src/utils/validateAndParseAddress.test.d.ts +0 -1
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
import { Fraction } from './fraction';
|
|
3
|
-
const ONE_HUNDRED = new Fraction(JSBI.BigInt(100));
|
|
4
|
-
/**
|
|
5
|
-
* Converts a fraction to a percent
|
|
6
|
-
* @param fraction the fraction to convert
|
|
7
|
-
*/
|
|
8
|
-
function toPercent(fraction) {
|
|
9
|
-
return new Percent(fraction.numerator, fraction.denominator);
|
|
10
|
-
}
|
|
11
|
-
export class Percent extends Fraction {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
/**
|
|
15
|
-
* This boolean prevents a fraction from being interpreted as a Percent
|
|
16
|
-
*/
|
|
17
|
-
this.isPercent = true;
|
|
18
|
-
}
|
|
19
|
-
add(other) {
|
|
20
|
-
return toPercent(super.add(other));
|
|
21
|
-
}
|
|
22
|
-
subtract(other) {
|
|
23
|
-
return toPercent(super.subtract(other));
|
|
24
|
-
}
|
|
25
|
-
multiply(other) {
|
|
26
|
-
return toPercent(super.multiply(other));
|
|
27
|
-
}
|
|
28
|
-
divide(other) {
|
|
29
|
-
return toPercent(super.divide(other));
|
|
30
|
-
}
|
|
31
|
-
toSignificant(significantDigits = 5, format, rounding) {
|
|
32
|
-
return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding);
|
|
33
|
-
}
|
|
34
|
-
toFixed(decimalPlaces = 2, format, rounding) {
|
|
35
|
-
return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=percent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"percent.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/percent.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAElD;;;GAGG;AACH,SAAS,SAAS,CAAC,QAAkB;IACnC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,OAAO,OAAQ,SAAQ,QAAQ;IAArC;;QACE;;WAEG;QACa,cAAS,GAAS,IAAI,CAAA;IAyBxC,CAAC;IAvBC,GAAG,CAAC,KAA2B;QAC7B,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,KAA2B;QAClC,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,QAAQ,CAAC,KAA2B;QAClC,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,CAAC,KAA2B;QAChC,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IAEM,aAAa,CAAC,oBAA4B,CAAC,EAAE,MAAe,EAAE,QAAmB;QACtF,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvF,CAAC;IAEM,OAAO,CAAC,gBAAwB,CAAC,EAAE,MAAe,EAAE,QAAmB;QAC5E,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7E,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Percent } from './percent';
|
|
2
|
-
describe('Percent', () => {
|
|
3
|
-
describe('constructor', () => {
|
|
4
|
-
it('defaults to 1 denominator', () => {
|
|
5
|
-
expect(new Percent(1)).toEqual(new Percent(1, 1));
|
|
6
|
-
});
|
|
7
|
-
});
|
|
8
|
-
describe('#add', () => {
|
|
9
|
-
it('returns a percent', () => {
|
|
10
|
-
expect(new Percent(1, 100).add(new Percent(2, 100))).toEqual(new Percent(3, 100));
|
|
11
|
-
});
|
|
12
|
-
it('different denominators', () => {
|
|
13
|
-
expect(new Percent(1, 25).add(new Percent(2, 100))).toEqual(new Percent(150, 2500));
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
describe('#subtract', () => {
|
|
17
|
-
it('returns a percent', () => {
|
|
18
|
-
expect(new Percent(1, 100).subtract(new Percent(2, 100))).toEqual(new Percent(-1, 100));
|
|
19
|
-
});
|
|
20
|
-
it('different denominators', () => {
|
|
21
|
-
expect(new Percent(1, 25).subtract(new Percent(2, 100))).toEqual(new Percent(50, 2500));
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe('#multiply', () => {
|
|
25
|
-
it('returns a percent', () => {
|
|
26
|
-
expect(new Percent(1, 100).multiply(new Percent(2, 100))).toEqual(new Percent(2, 10000));
|
|
27
|
-
});
|
|
28
|
-
it('different denominators', () => {
|
|
29
|
-
expect(new Percent(1, 25).multiply(new Percent(2, 100))).toEqual(new Percent(2, 2500));
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
describe('#divide', () => {
|
|
33
|
-
it('returns a percent', () => {
|
|
34
|
-
expect(new Percent(1, 100).divide(new Percent(2, 100))).toEqual(new Percent(100, 200));
|
|
35
|
-
});
|
|
36
|
-
it('different denominators', () => {
|
|
37
|
-
expect(new Percent(1, 25).divide(new Percent(2, 100))).toEqual(new Percent(100, 50));
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('#toSignificant', () => {
|
|
41
|
-
it('returns the value scaled by 100', () => {
|
|
42
|
-
expect(new Percent(154, 10000).toSignificant(3)).toEqual('1.54');
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
describe('#toFixed', () => {
|
|
46
|
-
it('returns the value scaled by 100', () => {
|
|
47
|
-
expect(new Percent(154, 10000).toFixed(2)).toEqual('1.54');
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=percent.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"percent.test.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/percent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
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,68 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
import invariant from 'tiny-invariant';
|
|
3
|
-
import { Fraction } from './fraction';
|
|
4
|
-
import { CurrencyAmount } from './currencyAmount';
|
|
5
|
-
export class Price extends Fraction {
|
|
6
|
-
/**
|
|
7
|
-
* Construct a price, either with the base and quote currency amount, or the
|
|
8
|
-
* @param args
|
|
9
|
-
*/
|
|
10
|
-
constructor(...args) {
|
|
11
|
-
let baseCurrency, quoteCurrency, denominator, numerator;
|
|
12
|
-
if (args.length === 4) {
|
|
13
|
-
;
|
|
14
|
-
[baseCurrency, quoteCurrency, denominator, numerator] = args;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
const result = args[0].quoteAmount.divide(args[0].baseAmount);
|
|
18
|
-
[baseCurrency, quoteCurrency, denominator, numerator] = [
|
|
19
|
-
args[0].baseAmount.currency,
|
|
20
|
-
args[0].quoteAmount.currency,
|
|
21
|
-
result.denominator,
|
|
22
|
-
result.numerator,
|
|
23
|
-
];
|
|
24
|
-
}
|
|
25
|
-
super(numerator, denominator);
|
|
26
|
-
this.baseCurrency = baseCurrency;
|
|
27
|
-
this.quoteCurrency = quoteCurrency;
|
|
28
|
-
this.scalar = new Fraction(JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)), JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals)));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Flip the price, switching the base and quote currency
|
|
32
|
-
*/
|
|
33
|
-
invert() {
|
|
34
|
-
return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* 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
|
|
38
|
-
* @param other the other price
|
|
39
|
-
*/
|
|
40
|
-
multiply(other) {
|
|
41
|
-
invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN');
|
|
42
|
-
const fraction = super.multiply(other);
|
|
43
|
-
return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Return the amount of quote currency corresponding to a given amount of the base currency
|
|
47
|
-
* @param currencyAmount the amount of base currency to quote against the price
|
|
48
|
-
*/
|
|
49
|
-
quote(currencyAmount) {
|
|
50
|
-
invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN');
|
|
51
|
-
const result = super.multiply(currencyAmount);
|
|
52
|
-
return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get the value scaled by decimals for formatting
|
|
56
|
-
* @private
|
|
57
|
-
*/
|
|
58
|
-
get adjustedForDecimals() {
|
|
59
|
-
return super.multiply(this.scalar);
|
|
60
|
-
}
|
|
61
|
-
toSignificant(significantDigits = 6, format, rounding) {
|
|
62
|
-
return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
|
|
63
|
-
}
|
|
64
|
-
toFixed(decimalPlaces = 4, format, rounding) {
|
|
65
|
-
return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=price.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/price.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Token } from '../token';
|
|
2
|
-
import { CurrencyAmount } from './currencyAmount';
|
|
3
|
-
import { Price } from './price';
|
|
4
|
-
describe('Price', () => {
|
|
5
|
-
const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';
|
|
6
|
-
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
7
|
-
const t0 = new Token(1, ADDRESS_ZERO, 18);
|
|
8
|
-
const t0_6 = new Token(1, ADDRESS_ZERO, 6);
|
|
9
|
-
const t1 = new Token(1, ADDRESS_ONE, 18);
|
|
10
|
-
describe('#constructor', () => {
|
|
11
|
-
it('array format works', () => {
|
|
12
|
-
const price = new Price(t0, t1, 1, 54321);
|
|
13
|
-
expect(price.toSignificant(5)).toEqual('54321');
|
|
14
|
-
expect(price.baseCurrency.equals(t0));
|
|
15
|
-
expect(price.quoteCurrency.equals(t1));
|
|
16
|
-
});
|
|
17
|
-
it('object format works', () => {
|
|
18
|
-
const price = new Price({
|
|
19
|
-
baseAmount: CurrencyAmount.fromRawAmount(t0, 1),
|
|
20
|
-
quoteAmount: CurrencyAmount.fromRawAmount(t1, 54321),
|
|
21
|
-
});
|
|
22
|
-
expect(price.toSignificant(5)).toEqual('54321');
|
|
23
|
-
expect(price.baseCurrency.equals(t0));
|
|
24
|
-
expect(price.quoteCurrency.equals(t1));
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
describe('#quote', () => {
|
|
28
|
-
it('returns correct value', () => {
|
|
29
|
-
const price = new Price(t0, t1, 1, 5);
|
|
30
|
-
expect(price.quote(CurrencyAmount.fromRawAmount(t0, 10))).toEqual(CurrencyAmount.fromRawAmount(t1, 50));
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
describe('#toSignificant', () => {
|
|
34
|
-
it('no decimals', () => {
|
|
35
|
-
const p = new Price(t0, t1, 123, 456);
|
|
36
|
-
expect(p.toSignificant(4)).toEqual('3.707');
|
|
37
|
-
});
|
|
38
|
-
it('no decimals flip ratio', () => {
|
|
39
|
-
const p = new Price(t0, t1, 456, 123);
|
|
40
|
-
expect(p.toSignificant(4)).toEqual('0.2697');
|
|
41
|
-
});
|
|
42
|
-
it('with decimal difference', () => {
|
|
43
|
-
const p = new Price(t0_6, t1, 123, 456);
|
|
44
|
-
expect(p.toSignificant(4)).toEqual('0.000000000003707');
|
|
45
|
-
});
|
|
46
|
-
it('with decimal difference flipped', () => {
|
|
47
|
-
const p = new Price(t0_6, t1, 456, 123);
|
|
48
|
-
expect(p.toSignificant(4)).toEqual('0.0000000000002697');
|
|
49
|
-
});
|
|
50
|
-
it('with decimal difference flipped base quote flipped', () => {
|
|
51
|
-
const p = new Price(t1, t0_6, 456, 123);
|
|
52
|
-
expect(p.toSignificant(4)).toEqual('269700000000');
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
//# sourceMappingURL=price.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"price.test.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/price.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAE3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BaseCurrency } from './baseCurrency';
|
|
2
|
-
/**
|
|
3
|
-
* Represents the native currency of the chain on which it resides, e.g.
|
|
4
|
-
*/
|
|
5
|
-
export class NativeCurrency extends BaseCurrency {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.isNative = true;
|
|
9
|
-
this.isToken = false;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=nativeCurrency.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nativeCurrency.js","sourceRoot":"","sources":["../../../../src/entities/nativeCurrency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;GAEG;AACH,MAAM,OAAgB,cAAe,SAAQ,YAAY;IAAzD;;QACkB,aAAQ,GAAS,IAAI,CAAA;QACrB,YAAO,GAAU,KAAK,CAAA;IACxC,CAAC;CAAA"}
|
|
@@ -1,48 +0,0 @@
|
|
|
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,64 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
-
import invariant from 'tiny-invariant';
|
|
3
|
-
import { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress';
|
|
4
|
-
import { BaseCurrency } from './baseCurrency';
|
|
5
|
-
/**
|
|
6
|
-
* Represents an ERC20 token with a unique address and some metadata.
|
|
7
|
-
*/
|
|
8
|
-
export class Token extends BaseCurrency {
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param chainId {@link BaseCurrency#chainId}
|
|
12
|
-
* @param address The contract address on the chain on which this token lives
|
|
13
|
-
* @param decimals {@link BaseCurrency#decimals}
|
|
14
|
-
* @param symbol {@link BaseCurrency#symbol}
|
|
15
|
-
* @param name {@link BaseCurrency#name}
|
|
16
|
-
* @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
|
|
17
|
-
* @param buyFeeBps Buy fee tax for FOT tokens, in basis points
|
|
18
|
-
* @param sellFeeBps Sell fee tax for FOT tokens, in basis points
|
|
19
|
-
*/
|
|
20
|
-
constructor(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
|
|
21
|
-
super(chainId, decimals, symbol, name);
|
|
22
|
-
this.isNative = false;
|
|
23
|
-
this.isToken = true;
|
|
24
|
-
if (bypassChecksum) {
|
|
25
|
-
this.address = checkValidAddress(address);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.address = validateAndParseAddress(address);
|
|
29
|
-
}
|
|
30
|
-
if (buyFeeBps) {
|
|
31
|
-
invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
|
|
32
|
-
}
|
|
33
|
-
if (sellFeeBps) {
|
|
34
|
-
invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
|
|
35
|
-
}
|
|
36
|
-
this.buyFeeBps = buyFeeBps;
|
|
37
|
-
this.sellFeeBps = sellFeeBps;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
|
|
41
|
-
* @param other other token to compare
|
|
42
|
-
*/
|
|
43
|
-
equals(other) {
|
|
44
|
-
return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Returns true if the address of this token sorts before the address of the other token
|
|
48
|
-
* @param other other token to compare
|
|
49
|
-
* @throws if the tokens have the same address
|
|
50
|
-
* @throws if the tokens are on different chains
|
|
51
|
-
*/
|
|
52
|
-
sortsBefore(other) {
|
|
53
|
-
invariant(this.chainId === other.chainId, 'CHAIN_IDS');
|
|
54
|
-
invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES');
|
|
55
|
-
return this.address.toLowerCase() < other.address.toLowerCase();
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Return this token, which does not need to be wrapped
|
|
59
|
-
*/
|
|
60
|
-
get wrapped() {
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/entities/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,YAAY;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,iBAAiB,CAAC,OAAO,CAAC,CAAA;SAC1C;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;SAChD;QACD,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;SACrE;QACD,IAAI,UAAU,EAAE;YACd,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,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,SAAS,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACtD,SAAS,CAAC,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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Token } from './token';
|
|
2
|
-
import { BigNumber } from '@ethersproject/bignumber';
|
|
3
|
-
describe('Token', () => {
|
|
4
|
-
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
5
|
-
const ADDRESS_TWO = '0x0000000000000000000000000000000000000002';
|
|
6
|
-
const DAI_MAINNET = '0x6B175474E89094C44Da98b954EedeAC495271d0F';
|
|
7
|
-
describe('#constructor', () => {
|
|
8
|
-
it('fails with invalid address', () => {
|
|
9
|
-
expect(() => new Token(3, '0xhello00000000000000000000000000000000002', 18).address).toThrow('0xhello00000000000000000000000000000000002 is not a valid address');
|
|
10
|
-
});
|
|
11
|
-
it('fails with negative decimals', () => {
|
|
12
|
-
expect(() => new Token(3, ADDRESS_ONE, -1).address).toThrow('DECIMALS');
|
|
13
|
-
});
|
|
14
|
-
it('fails with 256 decimals', () => {
|
|
15
|
-
expect(() => new Token(3, ADDRESS_ONE, 256).address).toThrow('DECIMALS');
|
|
16
|
-
});
|
|
17
|
-
it('fails with non-integer decimals', () => {
|
|
18
|
-
expect(() => new Token(3, ADDRESS_ONE, 1.5).address).toThrow('DECIMALS');
|
|
19
|
-
});
|
|
20
|
-
it('fails with negative FOT fees', () => {
|
|
21
|
-
expect(() => new Token(3, ADDRESS_ONE, 18, undefined, undefined, undefined, BigNumber.from(-1), undefined)).toThrow('NON-NEGATIVE FOT FEES');
|
|
22
|
-
expect(() => new Token(3, ADDRESS_ONE, 18, undefined, undefined, undefined, undefined, BigNumber.from(-1))).toThrow('NON-NEGATIVE FOT FEES');
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
describe('#constructor with bypassChecksum = true', () => {
|
|
26
|
-
const bypassChecksum = true;
|
|
27
|
-
it('creates the token with a valid address', () => {
|
|
28
|
-
expect(new Token(3, ADDRESS_TWO, 18, undefined, undefined, bypassChecksum).address).toBe(ADDRESS_TWO);
|
|
29
|
-
});
|
|
30
|
-
it('fails with invalid address', () => {
|
|
31
|
-
expect(() => new Token(3, '0xhello00000000000000000000000000000000002', 18, undefined, undefined, bypassChecksum).address).toThrow('0xhello00000000000000000000000000000000002 is not a valid address');
|
|
32
|
-
});
|
|
33
|
-
it('fails with negative decimals', () => {
|
|
34
|
-
expect(() => new Token(3, ADDRESS_ONE, -1, undefined, undefined, bypassChecksum).address).toThrow('DECIMALS');
|
|
35
|
-
});
|
|
36
|
-
it('fails with 256 decimals', () => {
|
|
37
|
-
expect(() => new Token(3, ADDRESS_ONE, 256, undefined, undefined, bypassChecksum).address).toThrow('DECIMALS');
|
|
38
|
-
});
|
|
39
|
-
it('fails with non-integer decimals', () => {
|
|
40
|
-
expect(() => new Token(3, ADDRESS_ONE, 1.5, undefined, undefined, bypassChecksum).address).toThrow('DECIMALS');
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe('#equals', () => {
|
|
44
|
-
it('fails if address differs', () => {
|
|
45
|
-
expect(new Token(1, ADDRESS_ONE, 18).equals(new Token(1, ADDRESS_TWO, 18))).toBe(false);
|
|
46
|
-
});
|
|
47
|
-
it('false if chain id differs', () => {
|
|
48
|
-
expect(new Token(3, ADDRESS_ONE, 18).equals(new Token(1, ADDRESS_ONE, 18))).toBe(false);
|
|
49
|
-
});
|
|
50
|
-
it('true if only decimals differs', () => {
|
|
51
|
-
expect(new Token(1, ADDRESS_ONE, 9).equals(new Token(1, ADDRESS_ONE, 18))).toBe(true);
|
|
52
|
-
});
|
|
53
|
-
it('true if address is the same', () => {
|
|
54
|
-
expect(new Token(1, ADDRESS_ONE, 18).equals(new Token(1, ADDRESS_ONE, 18))).toBe(true);
|
|
55
|
-
});
|
|
56
|
-
it('true on reference equality', () => {
|
|
57
|
-
const token = new Token(1, ADDRESS_ONE, 18);
|
|
58
|
-
expect(token.equals(token)).toBe(true);
|
|
59
|
-
});
|
|
60
|
-
it('true even if name/symbol/decimals differ', () => {
|
|
61
|
-
const tokenA = new Token(1, ADDRESS_ONE, 9, 'abc', 'def');
|
|
62
|
-
const tokenB = new Token(1, ADDRESS_ONE, 18, 'ghi', 'jkl');
|
|
63
|
-
expect(tokenA.equals(tokenB)).toBe(true);
|
|
64
|
-
});
|
|
65
|
-
it('true even if one token is checksummed and the other is not', () => {
|
|
66
|
-
const tokenA = new Token(1, DAI_MAINNET, 18, 'DAI', undefined, false);
|
|
67
|
-
const tokenB = new Token(1, DAI_MAINNET.toLowerCase(), 18, 'DAI', undefined, true);
|
|
68
|
-
expect(tokenA.equals(tokenB)).toBe(true);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
//# sourceMappingURL=token.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../../src/entities/token.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Token } from './token';
|
|
2
|
-
/**
|
|
3
|
-
* Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
|
|
4
|
-
*/
|
|
5
|
-
export const WETH9 = {
|
|
6
|
-
1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
|
|
7
|
-
11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
|
|
8
|
-
3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
|
|
9
|
-
4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
|
|
10
|
-
5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
|
|
11
|
-
42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),
|
|
12
|
-
10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
13
|
-
69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
14
|
-
11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
15
|
-
42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
|
|
16
|
-
421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),
|
|
17
|
-
421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),
|
|
18
|
-
8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
19
|
-
84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
20
|
-
56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
|
|
21
|
-
137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
|
|
22
|
-
43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
|
|
23
|
-
7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
24
|
-
81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),
|
|
25
|
-
324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),
|
|
26
|
-
480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
27
|
-
1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
28
|
-
130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
29
|
-
10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),
|
|
30
|
-
1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=weth9.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weth9.js","sourceRoot":"","sources":["../../../../src/entities/weth9.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/src/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
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;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Percent } 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 function computePriceImpact(midPrice, inputAmount, outputAmount) {
|
|
9
|
-
const quotedOutputAmount = midPrice.quote(inputAmount);
|
|
10
|
-
// calculate price impact := (exactQuote - outputAmount) / exactQuote
|
|
11
|
-
const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount);
|
|
12
|
-
return new Percent(priceImpact.numerator, priceImpact.denominator);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=computePriceImpact.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"computePriceImpact.js","sourceRoot":"","sources":["../../../../src/utils/computePriceImpact.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,OAAO,EAAS,MAAM,aAAa,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,UAAU,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,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;AACpE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|