@lifi/sdk 4.0.0-alpha.7 → 4.0.0-alpha.8
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/actions/index.d.ts +3 -1
- package/dist/cjs/actions/index.js +2 -0
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/patchContractCalls.d.ts +10 -0
- package/dist/cjs/actions/patchContractCalls.js +16 -0
- package/dist/cjs/actions/patchContractCalls.js.map +1 -0
- package/dist/cjs/core/checkBalance.js +3 -3
- package/dist/cjs/core/checkBalance.js.map +1 -1
- package/dist/cjs/core/utils.d.ts +1 -0
- package/dist/cjs/errors/constants.d.ts +4 -2
- package/dist/cjs/errors/constants.js +2 -0
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -3
- package/dist/cjs/index.js +10 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/core.d.ts +24 -4
- package/dist/cjs/utils/convertQuoteToRoute.d.ts +6 -1
- package/dist/cjs/utils/convertQuoteToRoute.js +73 -5
- package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -1
- package/dist/cjs/utils/formatUnits.d.ts +1 -0
- package/dist/cjs/utils/formatUnits.js +18 -0
- package/dist/cjs/utils/formatUnits.js.map +1 -0
- package/dist/cjs/utils/isHex.d.ts +4 -0
- package/dist/cjs/utils/isHex.js +13 -0
- package/dist/cjs/utils/isHex.js.map +1 -0
- package/dist/cjs/utils/parseUnits.d.ts +1 -0
- package/dist/cjs/utils/parseUnits.js +44 -0
- package/dist/cjs/utils/parseUnits.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/actions/index.d.ts +9 -1
- package/dist/esm/actions/index.js +2 -0
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/patchContractCalls.d.ts +10 -0
- package/dist/esm/actions/patchContractCalls.js +12 -0
- package/dist/esm/actions/patchContractCalls.js.map +1 -0
- package/dist/esm/core/checkBalance.js +1 -1
- package/dist/esm/core/checkBalance.js.map +1 -1
- package/dist/esm/core/utils.d.ts +1 -0
- package/dist/esm/errors/constants.d.ts +4 -2
- package/dist/esm/errors/constants.js +2 -0
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/index.d.ts +5 -3
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/core.d.ts +24 -4
- package/dist/esm/utils/convertQuoteToRoute.d.ts +11 -3
- package/dist/esm/utils/convertQuoteToRoute.js +76 -7
- package/dist/esm/utils/convertQuoteToRoute.js.map +1 -1
- package/dist/esm/utils/formatUnits.d.ts +4 -0
- package/dist/esm/utils/formatUnits.js +18 -0
- package/dist/esm/utils/formatUnits.js.map +1 -0
- package/dist/esm/utils/isHex.d.ts +4 -0
- package/dist/esm/utils/isHex.js +10 -0
- package/dist/esm/utils/isHex.js.map +1 -0
- package/dist/esm/utils/parseUnits.d.ts +4 -0
- package/dist/esm/utils/parseUnits.js +46 -0
- package/dist/esm/utils/parseUnits.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/actions/index.d.ts +9 -1
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/patchContractCalls.d.ts +11 -0
- package/dist/types/actions/patchContractCalls.d.ts.map +1 -0
- package/dist/types/core/checkBalance.d.ts.map +1 -1
- package/dist/types/core/utils.d.ts +1 -0
- package/dist/types/core/utils.d.ts.map +1 -1
- package/dist/types/errors/constants.d.ts +4 -2
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/core.d.ts +24 -4
- package/dist/types/types/core.d.ts.map +1 -1
- package/dist/types/utils/convertQuoteToRoute.d.ts +11 -3
- package/dist/types/utils/convertQuoteToRoute.d.ts.map +1 -1
- package/dist/types/utils/formatUnits.d.ts +5 -0
- package/dist/types/utils/formatUnits.d.ts.map +1 -0
- package/dist/types/utils/isHex.d.ts +5 -0
- package/dist/types/utils/isHex.d.ts.map +1 -0
- package/dist/types/utils/parseUnits.d.ts +5 -0
- package/dist/types/utils/parseUnits.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -3
- package/src/actions/index.ts +18 -0
- package/src/actions/patchContractCalls.ts +30 -0
- package/src/core/checkBalance.ts +1 -1
- package/src/errors/constants.ts +2 -0
- package/src/index.ts +8 -3
- package/src/types/core.ts +30 -4
- package/src/utils/convertQuoteToRoute.ts +117 -8
- package/src/utils/formatUnits.ts +22 -0
- package/src/utils/isHex.ts +14 -0
- package/src/utils/parseUnits.ts +50 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multiplies a string representation of a number by a given exponent of base 10 (10exponent).
|
|
3
|
+
*/
|
|
4
|
+
export function parseUnits(value: string, decimals: number) {
|
|
5
|
+
if (!/^(-?)([0-9]*)\.?([0-9]*)$/.test(value)) {
|
|
6
|
+
throw new Error(`Number \`${value}\` is not a valid decimal number.`)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
let [integer, fraction = '0'] = value.split('.')
|
|
10
|
+
|
|
11
|
+
const negative = integer.startsWith('-')
|
|
12
|
+
if (negative) {
|
|
13
|
+
integer = integer.slice(1)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// trim trailing zeros.
|
|
17
|
+
fraction = fraction.replace(/(0+)$/, '')
|
|
18
|
+
|
|
19
|
+
// round off if the fraction is larger than the number of decimals.
|
|
20
|
+
if (decimals === 0) {
|
|
21
|
+
if (Math.round(Number(`.${fraction}`)) === 1) {
|
|
22
|
+
integer = `${BigInt(integer) + 1n}`
|
|
23
|
+
}
|
|
24
|
+
fraction = ''
|
|
25
|
+
} else if (fraction.length > decimals) {
|
|
26
|
+
const [left, unit, right] = [
|
|
27
|
+
fraction.slice(0, decimals - 1),
|
|
28
|
+
fraction.slice(decimals - 1, decimals),
|
|
29
|
+
fraction.slice(decimals),
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
const rounded = Math.round(Number(`${unit}.${right}`))
|
|
33
|
+
if (rounded > 9) {
|
|
34
|
+
fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0')
|
|
35
|
+
} else {
|
|
36
|
+
fraction = `${left}${rounded}`
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (fraction.length > decimals) {
|
|
40
|
+
fraction = fraction.slice(1)
|
|
41
|
+
integer = `${BigInt(integer) + 1n}`
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
fraction = fraction.slice(0, decimals)
|
|
45
|
+
} else {
|
|
46
|
+
fraction = fraction.padEnd(decimals, '0')
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)
|
|
50
|
+
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/sdk'
|
|
2
|
-
export const version = '4.0.0-alpha.
|
|
2
|
+
export const version = '4.0.0-alpha.8'
|