viem 2.55.2 → 2.55.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/_cjs/chains/definitions/mainnet.js +1 -1
- package/_cjs/chains/definitions/mainnet.js.map +1 -1
- package/_cjs/chains/definitions/robinhood.js +1 -0
- package/_cjs/chains/definitions/robinhood.js.map +1 -1
- package/_cjs/chains/definitions/xLayer.js +1 -0
- package/_cjs/chains/definitions/xLayer.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/tempo/chainConfig.js +9 -0
- package/_cjs/tempo/chainConfig.js.map +1 -1
- package/_cjs/utils/abi/decodeAbiParameters.js +1 -2
- package/_cjs/utils/abi/decodeAbiParameters.js.map +1 -1
- package/_cjs/utils/unit/Value.js +118 -0
- package/_cjs/utils/unit/Value.js.map +1 -0
- package/_cjs/utils/unit/formatEther.js +2 -3
- package/_cjs/utils/unit/formatEther.js.map +1 -1
- package/_cjs/utils/unit/formatGwei.js +2 -3
- package/_cjs/utils/unit/formatGwei.js.map +1 -1
- package/_cjs/utils/unit/formatUnits.js +2 -11
- package/_cjs/utils/unit/formatUnits.js.map +1 -1
- package/_cjs/utils/unit/parseEther.js +2 -3
- package/_cjs/utils/unit/parseEther.js.map +1 -1
- package/_cjs/utils/unit/parseGwei.js +2 -3
- package/_cjs/utils/unit/parseGwei.js.map +1 -1
- package/_cjs/utils/unit/parseUnits.js +2 -34
- package/_cjs/utils/unit/parseUnits.js.map +1 -1
- package/_esm/chains/definitions/mainnet.js +1 -1
- package/_esm/chains/definitions/mainnet.js.map +1 -1
- package/_esm/chains/definitions/robinhood.js +1 -0
- package/_esm/chains/definitions/robinhood.js.map +1 -1
- package/_esm/chains/definitions/xLayer.js +1 -0
- package/_esm/chains/definitions/xLayer.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/tempo/chainConfig.js +10 -0
- package/_esm/tempo/chainConfig.js.map +1 -1
- package/_esm/utils/abi/decodeAbiParameters.js +1 -2
- package/_esm/utils/abi/decodeAbiParameters.js.map +1 -1
- package/_esm/utils/unit/Value.js +240 -0
- package/_esm/utils/unit/Value.js.map +1 -0
- package/_esm/utils/unit/formatEther.js +2 -3
- package/_esm/utils/unit/formatEther.js.map +1 -1
- package/_esm/utils/unit/formatGwei.js +2 -3
- package/_esm/utils/unit/formatGwei.js.map +1 -1
- package/_esm/utils/unit/formatUnits.js +2 -11
- package/_esm/utils/unit/formatUnits.js.map +1 -1
- package/_esm/utils/unit/parseEther.js +2 -3
- package/_esm/utils/unit/parseEther.js.map +1 -1
- package/_esm/utils/unit/parseGwei.js +2 -3
- package/_esm/utils/unit/parseGwei.js.map +1 -1
- package/_esm/utils/unit/parseUnits.js +2 -36
- package/_esm/utils/unit/parseUnits.js.map +1 -1
- package/_types/chains/definitions/mainnet.d.ts +1 -1
- package/_types/chains/definitions/robinhood.d.ts +1 -1
- package/_types/chains/definitions/robinhood.d.ts.map +1 -1
- package/_types/chains/definitions/xLayer.d.ts +1 -1
- package/_types/chains/definitions/xLayer.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/tempo/chainConfig.d.ts.map +1 -1
- package/_types/utils/abi/decodeAbiParameters.d.ts +1 -2
- package/_types/utils/abi/decodeAbiParameters.d.ts.map +1 -1
- package/_types/utils/unit/Value.d.ts +115 -0
- package/_types/utils/unit/Value.d.ts.map +1 -0
- package/_types/utils/unit/formatEther.d.ts +1 -1
- package/_types/utils/unit/formatEther.d.ts.map +1 -1
- package/_types/utils/unit/formatGwei.d.ts +1 -1
- package/_types/utils/unit/formatGwei.d.ts.map +1 -1
- package/_types/utils/unit/formatUnits.d.ts.map +1 -1
- package/_types/utils/unit/parseEther.d.ts +1 -1
- package/_types/utils/unit/parseEther.d.ts.map +1 -1
- package/_types/utils/unit/parseGwei.d.ts +1 -1
- package/_types/utils/unit/parseGwei.d.ts.map +1 -1
- package/_types/utils/unit/parseUnits.d.ts.map +1 -1
- package/chains/definitions/mainnet.ts +1 -1
- package/chains/definitions/robinhood.ts +1 -0
- package/chains/definitions/xLayer.ts +1 -0
- package/errors/version.ts +1 -1
- package/package.json +1 -1
- package/tempo/chainConfig.ts +10 -0
- package/utils/abi/decodeAbiParameters.ts +1 -3
- package/utils/unit/Value.ts +278 -0
- package/utils/unit/formatEther.ts +3 -4
- package/utils/unit/formatGwei.ts +3 -4
- package/utils/unit/formatUnits.ts +2 -15
- package/utils/unit/parseEther.ts +3 -4
- package/utils/unit/parseGwei.ts +3 -4
- package/utils/unit/parseUnits.ts +2 -40
package/utils/unit/parseUnits.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InvalidDecimalNumberError } from '../../errors/unit.js'
|
|
2
1
|
import type { ErrorType } from '../../errors/utils.js'
|
|
2
|
+
import * as Value from './Value.js'
|
|
3
3
|
|
|
4
4
|
export type ParseUnitsErrorType = ErrorType
|
|
5
5
|
|
|
@@ -15,43 +15,5 @@ export type ParseUnitsErrorType = ErrorType
|
|
|
15
15
|
* // 420000000000n
|
|
16
16
|
*/
|
|
17
17
|
export function parseUnits(value: string, decimals: number) {
|
|
18
|
-
|
|
19
|
-
throw new InvalidDecimalNumberError({ value })
|
|
20
|
-
|
|
21
|
-
let [integer, fraction = '0'] = value.split('.')
|
|
22
|
-
|
|
23
|
-
const negative = integer.startsWith('-')
|
|
24
|
-
if (negative) integer = integer.slice(1)
|
|
25
|
-
|
|
26
|
-
// trim trailing zeros.
|
|
27
|
-
fraction = fraction.replace(/(0+)$/, '')
|
|
28
|
-
|
|
29
|
-
// round off if the fraction is larger than the number of decimals.
|
|
30
|
-
if (decimals === 0) {
|
|
31
|
-
if (Math.round(Number(`.${fraction}`)) === 1)
|
|
32
|
-
integer = `${BigInt(integer) + 1n}`
|
|
33
|
-
fraction = ''
|
|
34
|
-
} else if (fraction.length > decimals) {
|
|
35
|
-
const [left, unit, right] = [
|
|
36
|
-
fraction.slice(0, decimals - 1),
|
|
37
|
-
fraction.slice(decimals - 1, decimals),
|
|
38
|
-
fraction.slice(decimals),
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
const rounded = Math.round(Number(`${unit}.${right}`))
|
|
42
|
-
if (rounded > 9)
|
|
43
|
-
fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0')
|
|
44
|
-
else fraction = `${left}${rounded}`
|
|
45
|
-
|
|
46
|
-
if (fraction.length > decimals) {
|
|
47
|
-
fraction = fraction.slice(1)
|
|
48
|
-
integer = `${BigInt(integer) + 1n}`
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
fraction = fraction.slice(0, decimals)
|
|
52
|
-
} else {
|
|
53
|
-
fraction = fraction.padEnd(decimals, '0')
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)
|
|
18
|
+
return Value.from(value, decimals)
|
|
57
19
|
}
|