dequanto 0.2.24 → 0.2.27
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/lib/cjs/utils/$bigint.js +19 -12
- package/lib/cjs/utils/$bigint.js.map +1 -1
- package/lib/cjs/utils/$number.js +24 -0
- package/lib/cjs/utils/$number.js.map +1 -1
- package/lib/esm/utils/$bigint.js.map +1 -1
- package/lib/esm/utils/$bigint.mjs +19 -12
- package/lib/esm/utils/$number.js.map +1 -1
- package/lib/esm/utils/$number.mjs +24 -0
- package/lib/types/utils/$bigint.d.ts +3 -2
- package/package.json +1 -1
- package/src/utils/$bigint.ts +21 -13
- package/src/utils/$number.ts +36 -10
package/lib/cjs/utils/$bigint.js
CHANGED
|
@@ -9,6 +9,7 @@ var $bigint;
|
|
|
9
9
|
$bigint_1.ETHER_DECIMALS = 18;
|
|
10
10
|
$bigint_1.GWEI_DECIMALS = 9;
|
|
11
11
|
$bigint_1.MAX_UINT256 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;
|
|
12
|
+
$bigint_1.MAX_SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
|
|
12
13
|
function max(...args) {
|
|
13
14
|
let max = null;
|
|
14
15
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -135,24 +136,30 @@ var $bigint;
|
|
|
135
136
|
return toWei(amount, $bigint_1.GWEI_DECIMALS);
|
|
136
137
|
}
|
|
137
138
|
$bigint_1.toWeiFromGwei = toWeiFromGwei;
|
|
138
|
-
function toEther(amount, decimals = $bigint_1.ETHER_DECIMALS,
|
|
139
|
+
function toEther(amount, decimals = $bigint_1.ETHER_DECIMALS, roundMix = 100000n, checked = true) {
|
|
140
|
+
let round = typeof roundMix === 'number'
|
|
141
|
+
? 10n ** BigInt(roundMix)
|
|
142
|
+
: roundMix;
|
|
139
143
|
let $decimals = BigInt(decimals);
|
|
144
|
+
let $mantissa = 10n ** $decimals;
|
|
140
145
|
let $amount = BigInt(amount);
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return Number(val) / Number(round);
|
|
146
|
+
if (round > $mantissa) {
|
|
147
|
+
round = $mantissa;
|
|
144
148
|
}
|
|
145
|
-
|
|
149
|
+
const int = $amount / $mantissa;
|
|
150
|
+
if (-$bigint_1.MAX_SAFE_INTEGER <= int && int <= $bigint_1.MAX_SAFE_INTEGER) {
|
|
151
|
+
let fraction = $amount % $mantissa;
|
|
152
|
+
let fractionTruncated = fraction / ($mantissa / round);
|
|
153
|
+
return Number(int) + Number(fractionTruncated) / Number(round);
|
|
154
|
+
}
|
|
155
|
+
if (checked) {
|
|
156
|
+
throw new Error(`Ether overflow: ${int}. Amount: ${amount} Decimals: ${decimals}`);
|
|
157
|
+
}
|
|
158
|
+
return Number(int);
|
|
146
159
|
}
|
|
147
160
|
$bigint_1.toEther = toEther;
|
|
148
161
|
function toEtherSafe(amount, decimals = $bigint_1.ETHER_DECIMALS, round = 100000n) {
|
|
149
|
-
|
|
150
|
-
let $amount = BigInt(amount);
|
|
151
|
-
let val = $amount * round / 10n ** $decimals;
|
|
152
|
-
if (val < Number.MAX_SAFE_INTEGER) {
|
|
153
|
-
return Number(val) / Number(round);
|
|
154
|
-
}
|
|
155
|
-
return val / round;
|
|
162
|
+
return toEther(amount, decimals, round, false);
|
|
156
163
|
}
|
|
157
164
|
$bigint_1.toEtherSafe = toEtherSafe;
|
|
158
165
|
function toHex(num) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$bigint.js","sourceRoot":"","sources":["../../../src/utils/$bigint.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,yCAAsC;AACtC,6CAA0C;AAE1C,IAAiB,OAAO,
|
|
1
|
+
{"version":3,"file":"$bigint.js","sourceRoot":"","sources":["../../../src/utils/$bigint.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,yCAAsC;AACtC,6CAA0C;AAE1C,IAAiB,OAAO,CA0SvB;AA1SD,WAAiB,SAAO;IAEP,wBAAc,GAAG,EAAE,CAAC;IACpB,uBAAa,GAAG,CAAC,CAAC;IAClB,qBAAW,GAAG,mEAAmE,CAAC;IAClF,0BAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEhE,SAAgB,GAAG,CAAC,GAAG,IAAc;QACjC,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE;gBAC1B,GAAG,GAAG,GAAG,CAAC;aACb;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IATe,aAAG,MASlB,CAAA;IACD,SAAgB,GAAG,CAAC,GAAG,IAAc;QACjC,IAAI,GAAG,GAAU,IAAI,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE;gBAC1B,GAAG,GAAG,GAAG,CAAC;aACb;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IATe,aAAG,MASlB,CAAA;IAED,SAAgB,QAAQ,CAAE,MAA6C;QACnE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,OAAO,MAAM,CAAC;SACjB;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aACrD;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,IAAI,MAAM,YAAY,UAAU,EAAE;YAC9B,OAAO,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACnC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;IAjBe,kBAAQ,WAiBvB,CAAA;IAED,SAAgB,IAAI,CAAE,MAAgC;QAClD,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,OAAO,EAAE,CAAC;SACb;QACD,QAAQ,OAAO,MAAM,EAAE;YACnB,KAAK,QAAQ;gBACT,OAAO,MAAM,CAAC;YAClB,KAAK,QAAQ;gBACT,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,KAAI,QAAQ;gBACR,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;YACzB;gBACI,MAAM;SACb;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAfe,cAAI,OAenB,CAAA;IAED;;OAEG;IACH,SAAgB,KAAK,CAAE,MAAc;QACjC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAG;YAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,IAAI,OAAO,GAAG,gDAAgD,CAAC;QAC/D,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;aAChD;YACD,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,KAAK,OAAO,EAAE;gBAClB,OAAO,KAAK,CAAC,MAAM,EAAE,UAAA,cAAc,CAAC,CAAC;aACxC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE;gBACjB,OAAO,KAAK,CAAC,MAAM,EAAE,UAAA,aAAa,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,KAAK,KAAK,EAAE;gBAChB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;aACzB;SACJ;QAED,SAAS;QACT,IAAI,WAAW,GAAG,gDAAgD,CAAC;QACnE,IAAI,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC1B,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;aAChD;YACD,OAAO,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAClC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAnCe,eAAK,QAmCpB,CAAA;IAED,SAAgB,SAAS,CAAE,MAAuB,EAAE,QAAgB;QAChE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,OAAO,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAClC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IALe,mBAAS,YAKxB,CAAA;IACD,SAAgB,KAAK,CAAE,MAAgC,EAAE,WAA4B,UAAA,cAAc;QAC/F,IAAI,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,aAAa,EAAE;gBAC5D,IAAI,EAAE,CAAC;aACV;YACD,aAAa,IAAI,IAAI,CAAC;YACtB,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC;YACrB,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;gBAClB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC/B;SACJ;QACD,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAEtC,OAAO,OAAO,GAAG,GAAG,IAAI,SAAS,CAAC;IACtC,CAAC;IAjBe,eAAK,QAiBpB,CAAA;IACD,SAAgB,aAAa,CAAC,MAAgC;QAC1D,OAAO,KAAK,CAAC,MAAM,EAAE,UAAA,aAAa,CAAC,CAAC;IACxC,CAAC;IAFe,uBAAa,gBAE5B,CAAA;IAED,SAAgB,OAAO,CAAE,MAAgC,EAAE,WAA4B,UAAA,cAAc,EAAE,WAA4B,OAAO,EAAE,OAAO,GAAG,IAAI;QACtJ,IAAI,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ;YACpC,CAAC,CAAC,GAAG,IAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,SAAS,GAAG,GAAG,IAAI,SAAS,CAAC;QACjC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAG,SAAS,EAAE;YACnB,KAAK,GAAG,SAAS,CAAC;SACrB;QACD,MAAM,GAAG,GAAG,OAAO,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,UAAA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,UAAA,gBAAgB,EAAE;YACrD,IAAI,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;YACnC,IAAI,iBAAiB,GAAG,QAAQ,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;SAClE;QACD,IAAI,OAAO,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,aAAa,MAAM,cAAc,QAAQ,EAAE,CAAC,CAAC;SACtF;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IArBe,iBAAO,UAqBtB,CAAA;IAED,SAAgB,WAAW,CAAE,MAAgC,EAAE,WAA4B,UAAA,cAAc,EAAE,QAAyB,OAAO;QACvI,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAFe,qBAAW,cAE1B,CAAA;IAED,SAAgB,KAAK,CAAE,GAA6B;QAChD,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,GAAG,GAAG,EAAE,CAAC;SACZ;QAAA,CAAC;QACF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,IAAI;gBACA,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBAChB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACvB,QAAQ,GAAG,IAAI,CAAC;iBACnB;gBACD,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACnB,GAAG,GAAG,CAAC,GAAG,CAAC;iBACd;aAEJ;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAA;aAC3C;SACJ;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SACrB;QACD,IAAI,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC;QAC1B,IAAI,UAAU,EAAE;YACZ,GAAG,GAAG,CAAC,GAAG,CAAC;SACd;QACD,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,UAAU,EAAE;YACZ,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;SACnB;QACD,OAAO,GAAe,CAAC;IAC3B,CAAC;IAhCe,eAAK,QAgCpB,CAAA;IAED,SAAgB,MAAM,CAAE,KAAa,EAAE,IAAY;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QAEnC,IAAI,KAAK,GAAG,EAAE,EAAE;YACZ,KAAK,GAAG,CAAC,KAAK,CAAC;YACf,mBAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,0BAA0B,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;YAC7E,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACjC;aAAM;YACH,mBAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,2BAA2B,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC;SAC/E;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAde,gBAAM,SAcrB,CAAA;IACD,SAAgB,QAAQ,CAAE,KAAa,EAAE,IAAY;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,mBAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,2BAA2B,KAAK,EAAE,CAAC,CAAC;QAE3E,yCAAyC;QACzC,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE;YACvB,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;SACpC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAVe,kBAAQ,WAUvB,CAAA;IACD,SAAgB,IAAI,CAAE,KAAa,EAAE,KAAa;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IAHe,cAAI,OAGnB,CAAA;IAED,SAAgB,aAAa,CAAE,GAAW;QACtC,OAAO,OAAO,CAAC,GAAG,EAAE,UAAA,aAAa,CAAC,CAAC;IACvC,CAAC;IAFe,uBAAa,gBAE5B,CAAA;IACD,SAAgB,eAAe,CAAE,GAAW;QACxC,OAAO,KAAK,CAAC,GAAG,EAAE,UAAA,aAAa,CAAC,CAAC;IACrC,CAAC;IAFe,yBAAe,kBAE9B,CAAA;IAED,SAAgB,aAAa,CAAE,MAAc,EAAE,KAAa;QACxD,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE;YACpC,OAAO,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,GAAG,CAAC;YACf,KAAK,IAAI,IAAI,CAAC;SACjB;QACD,OAAO,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,CAAC;IAVe,uBAAa,gBAU5B,CAAA;IAED,SAAgB,UAAU,CAAE,CAAS,EAAE,CAAS,EAAE,SAAS,GAAG,OAAQ;QAClE,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEnB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE;YAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnF,CAAC;IATe,oBAAU,aASzB,CAAA;IAED,SAAgB,GAAG,CAAE,KAAsB,EAAE,QAAyB;QAClE,IAAI,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtE,OAAO,KAAK,IAAI,IAAI,CAAC;IACzB,CAAC;IAJe,aAAG,MAIlB,CAAA;IAED,SAAgB,IAAI,CAAC,KAAa;QAC9B,IAAI,KAAK,GAAG,EAAE,EAAE;YACZ,OAAO,EAAE,CAAC;SACb;QACD,IAAI,KAAK,GAAG,EAAE,EAAE;YACZ,OAAO,CAAC,EAAE,CAAC;SACd;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IARe,cAAI,OAQnB,CAAA;IAED,SAAgB,GAAG,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC;SACjB;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IALe,aAAG,MAKlB,CAAA;IAED,SAAgB,IAAI,CAAC,KAAa;QAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAFe,cAAI,OAEnB,CAAA;IAED,SAAS,OAAO,CAAC,KAAa,EAAE,CAAC,GAAG,EAAE;QAClC,IAAI,KAAK,GAAG,EAAE,EAAE;YACZ,MAAM,KAAK,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YACvC,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SAClD;QACD,OAAO,CAAC,CAAC;IACb,CAAC;AAGL,CAAC,EA1SgB,OAAO,GAAP,eAAO,KAAP,eAAO,QA0SvB"}
|
package/lib/cjs/utils/$number.js
CHANGED
|
@@ -115,6 +115,9 @@ var $number;
|
|
|
115
115
|
*/
|
|
116
116
|
function format(num, options) {
|
|
117
117
|
if (options?.abbreviation) {
|
|
118
|
+
if (Math.abs(num) < 0.01) {
|
|
119
|
+
return humanizeSmallFloat(num);
|
|
120
|
+
}
|
|
118
121
|
const K = 10 ** 3;
|
|
119
122
|
const M = 10 ** 6;
|
|
120
123
|
const B = 10 ** 9;
|
|
@@ -146,6 +149,27 @@ var $number;
|
|
|
146
149
|
return (`0x` + Number(num).toString(16));
|
|
147
150
|
}
|
|
148
151
|
$number.toHex = toHex;
|
|
152
|
+
const subscriptDigits = '₀₁₂₃₄₅₆₇₈₉';
|
|
153
|
+
function humanizeSmallFloat(value, maxDigits = 4) {
|
|
154
|
+
if (!Number.isFinite(value))
|
|
155
|
+
return String(value);
|
|
156
|
+
if (value === 0)
|
|
157
|
+
return '0';
|
|
158
|
+
const sign = value < 0 ? '-' : '';
|
|
159
|
+
const abs = Math.abs(value);
|
|
160
|
+
const str = abs.toLocaleString('en-US', {
|
|
161
|
+
useGrouping: false,
|
|
162
|
+
maximumSignificantDigits: 20,
|
|
163
|
+
});
|
|
164
|
+
// Example: 0.0000005 -> zeros = 6, rest = '5'
|
|
165
|
+
const match = str.match(/^0\.(0{4,})(\d+)/);
|
|
166
|
+
if (!match)
|
|
167
|
+
return format(value, { maximumFractionDigits: 5 });
|
|
168
|
+
const zeroCount = match[1].length;
|
|
169
|
+
const significant = match[2].slice(0, maxDigits);
|
|
170
|
+
const zeroCountSub = subscriptDigits[zeroCount];
|
|
171
|
+
return `${sign}0.0${zeroCountSub}${significant}`;
|
|
172
|
+
}
|
|
149
173
|
})($number = exports.$number || (exports.$number = {}));
|
|
150
174
|
//# sourceMappingURL=$number.js.map
|
|
151
175
|
//# sourceMappingURL=$number.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$number.js","sourceRoot":"","sources":["../../../src/utils/$number.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AACtC,uCAAoC;AAEpC,IAAiB,OAAO,
|
|
1
|
+
{"version":3,"file":"$number.js","sourceRoot":"","sources":["../../../src/utils/$number.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$bigint.js","sourceRoot":"","sources":["../../../src/utils/$bigint.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,yCAAsC;AACtC,6CAA0C;AAE1C,IAAiB,OAAO,
|
|
1
|
+
{"version":3,"file":"$bigint.js","sourceRoot":"","sources":["../../../src/utils/$bigint.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export var $bigint;
|
|
|
6
6
|
$bigint_1.ETHER_DECIMALS = 18;
|
|
7
7
|
$bigint_1.GWEI_DECIMALS = 9;
|
|
8
8
|
$bigint_1.MAX_UINT256 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;
|
|
9
|
+
$bigint_1.MAX_SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
|
|
9
10
|
function max(...args) {
|
|
10
11
|
let max = null;
|
|
11
12
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -132,24 +133,30 @@ export var $bigint;
|
|
|
132
133
|
return toWei(amount, $bigint_1.GWEI_DECIMALS);
|
|
133
134
|
}
|
|
134
135
|
$bigint_1.toWeiFromGwei = toWeiFromGwei;
|
|
135
|
-
function toEther(amount, decimals = $bigint_1.ETHER_DECIMALS,
|
|
136
|
+
function toEther(amount, decimals = $bigint_1.ETHER_DECIMALS, roundMix = 100000n, checked = true) {
|
|
137
|
+
let round = typeof roundMix === 'number'
|
|
138
|
+
? 10n ** BigInt(roundMix)
|
|
139
|
+
: roundMix;
|
|
136
140
|
let $decimals = BigInt(decimals);
|
|
141
|
+
let $mantissa = 10n ** $decimals;
|
|
137
142
|
let $amount = BigInt(amount);
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return Number(val) / Number(round);
|
|
143
|
+
if (round > $mantissa) {
|
|
144
|
+
round = $mantissa;
|
|
141
145
|
}
|
|
142
|
-
|
|
146
|
+
const int = $amount / $mantissa;
|
|
147
|
+
if (-$bigint_1.MAX_SAFE_INTEGER <= int && int <= $bigint_1.MAX_SAFE_INTEGER) {
|
|
148
|
+
let fraction = $amount % $mantissa;
|
|
149
|
+
let fractionTruncated = fraction / ($mantissa / round);
|
|
150
|
+
return Number(int) + Number(fractionTruncated) / Number(round);
|
|
151
|
+
}
|
|
152
|
+
if (checked) {
|
|
153
|
+
throw new Error(`Ether overflow: ${int}. Amount: ${amount} Decimals: ${decimals}`);
|
|
154
|
+
}
|
|
155
|
+
return Number(int);
|
|
143
156
|
}
|
|
144
157
|
$bigint_1.toEther = toEther;
|
|
145
158
|
function toEtherSafe(amount, decimals = $bigint_1.ETHER_DECIMALS, round = 100000n) {
|
|
146
|
-
|
|
147
|
-
let $amount = BigInt(amount);
|
|
148
|
-
let val = $amount * round / 10n ** $decimals;
|
|
149
|
-
if (val < Number.MAX_SAFE_INTEGER) {
|
|
150
|
-
return Number(val) / Number(round);
|
|
151
|
-
}
|
|
152
|
-
return val / round;
|
|
159
|
+
return toEther(amount, decimals, round, false);
|
|
153
160
|
}
|
|
154
161
|
$bigint_1.toEtherSafe = toEtherSafe;
|
|
155
162
|
function toHex(num) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$number.js","sourceRoot":"","sources":["../../../src/utils/$number.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AACtC,uCAAoC;AAEpC,IAAiB,OAAO,
|
|
1
|
+
{"version":3,"file":"$number.js","sourceRoot":"","sources":["../../../src/utils/$number.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,9 @@ export var $number;
|
|
|
112
112
|
*/
|
|
113
113
|
function format(num, options) {
|
|
114
114
|
if (options?.abbreviation) {
|
|
115
|
+
if (Math.abs(num) < 0.01) {
|
|
116
|
+
return humanizeSmallFloat(num);
|
|
117
|
+
}
|
|
115
118
|
const K = 10 ** 3;
|
|
116
119
|
const M = 10 ** 6;
|
|
117
120
|
const B = 10 ** 9;
|
|
@@ -143,6 +146,27 @@ export var $number;
|
|
|
143
146
|
return (`0x` + Number(num).toString(16));
|
|
144
147
|
}
|
|
145
148
|
$number.toHex = toHex;
|
|
149
|
+
const subscriptDigits = '₀₁₂₃₄₅₆₇₈₉';
|
|
150
|
+
function humanizeSmallFloat(value, maxDigits = 4) {
|
|
151
|
+
if (!Number.isFinite(value))
|
|
152
|
+
return String(value);
|
|
153
|
+
if (value === 0)
|
|
154
|
+
return '0';
|
|
155
|
+
const sign = value < 0 ? '-' : '';
|
|
156
|
+
const abs = Math.abs(value);
|
|
157
|
+
const str = abs.toLocaleString('en-US', {
|
|
158
|
+
useGrouping: false,
|
|
159
|
+
maximumSignificantDigits: 20,
|
|
160
|
+
});
|
|
161
|
+
// Example: 0.0000005 -> zeros = 6, rest = '5'
|
|
162
|
+
const match = str.match(/^0\.(0{4,})(\d+)/);
|
|
163
|
+
if (!match)
|
|
164
|
+
return format(value, { maximumFractionDigits: 5 });
|
|
165
|
+
const zeroCount = match[1].length;
|
|
166
|
+
const significant = match[2].slice(0, maxDigits);
|
|
167
|
+
const zeroCountSub = subscriptDigits[zeroCount];
|
|
168
|
+
return `${sign}0.0${zeroCountSub}${significant}`;
|
|
169
|
+
}
|
|
146
170
|
})($number || ($number = {}));
|
|
147
171
|
//# sourceMappingURL=$number.js.map
|
|
148
172
|
//# sourceMappingURL=$number.ts.map
|
|
@@ -3,6 +3,7 @@ export declare namespace $bigint {
|
|
|
3
3
|
const ETHER_DECIMALS = 18;
|
|
4
4
|
const GWEI_DECIMALS = 9;
|
|
5
5
|
const MAX_UINT256 = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
|
6
|
+
const MAX_SAFE_INTEGER: bigint;
|
|
6
7
|
function max(...args: bigint[]): bigint;
|
|
7
8
|
function min(...args: bigint[]): bigint;
|
|
8
9
|
function toBigInt(amount: string | number | bigint | Uint8Array): bigint;
|
|
@@ -14,8 +15,8 @@ export declare namespace $bigint {
|
|
|
14
15
|
function ensureWei(amount: number | bigint, decimals: number): bigint;
|
|
15
16
|
function toWei(amount: string | number | bigint, decimals?: number | string): bigint;
|
|
16
17
|
function toWeiFromGwei(amount: string | number | bigint): bigint;
|
|
17
|
-
function toEther(amount: string | number | bigint, decimals?: number | string,
|
|
18
|
-
function toEtherSafe(amount: string | number | bigint, decimals?: number | string, round?: bigint): number
|
|
18
|
+
function toEther(amount: string | number | bigint, decimals?: number | string, roundMix?: number | bigint, checked?: boolean): number;
|
|
19
|
+
function toEtherSafe(amount: string | number | bigint, decimals?: number | string, round?: number | bigint): number;
|
|
19
20
|
function toHex(num: string | bigint | number): TEth.Hex;
|
|
20
21
|
function toTwos(value: bigint, bits: number): bigint;
|
|
21
22
|
function fromTwos(value: bigint, bits: number): bigint;
|
package/package.json
CHANGED
package/src/utils/$bigint.ts
CHANGED
|
@@ -8,6 +8,7 @@ export namespace $bigint {
|
|
|
8
8
|
export const ETHER_DECIMALS = 18;
|
|
9
9
|
export const GWEI_DECIMALS = 9;
|
|
10
10
|
export const MAX_UINT256 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;
|
|
11
|
+
export const MAX_SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
|
|
11
12
|
|
|
12
13
|
export function max(...args: bigint[]): bigint {
|
|
13
14
|
let max: bigint = null;
|
|
@@ -134,24 +135,31 @@ export namespace $bigint {
|
|
|
134
135
|
return toWei(amount, GWEI_DECIMALS);
|
|
135
136
|
}
|
|
136
137
|
|
|
137
|
-
export function toEther (amount: string | number | bigint, decimals: number | string = ETHER_DECIMALS,
|
|
138
|
+
export function toEther (amount: string | number | bigint, decimals: number | string = ETHER_DECIMALS, roundMix: number | bigint = 100000n, checked = true): number {
|
|
139
|
+
let round = typeof roundMix === 'number'
|
|
140
|
+
? 10n**BigInt(roundMix)
|
|
141
|
+
: roundMix;
|
|
142
|
+
|
|
138
143
|
let $decimals = BigInt(decimals);
|
|
144
|
+
let $mantissa = 10n ** $decimals;
|
|
139
145
|
let $amount = BigInt(amount);
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
146
|
+
if (round > $mantissa) {
|
|
147
|
+
round = $mantissa;
|
|
148
|
+
}
|
|
149
|
+
const int = $amount / $mantissa;
|
|
150
|
+
if (-MAX_SAFE_INTEGER <= int && int <= MAX_SAFE_INTEGER) {
|
|
151
|
+
let fraction = $amount % $mantissa;
|
|
152
|
+
let fractionTruncated = fraction / ($mantissa / round);
|
|
153
|
+
return Number(int) + Number(fractionTruncated) / Number(round);
|
|
154
|
+
}
|
|
155
|
+
if (checked) {
|
|
156
|
+
throw new Error(`Ether overflow: ${int}. Amount: ${amount} Decimals: ${decimals}`);
|
|
143
157
|
}
|
|
144
|
-
|
|
158
|
+
return Number(int);
|
|
145
159
|
}
|
|
146
160
|
|
|
147
|
-
export function toEtherSafe (amount: string | number | bigint, decimals: number | string = ETHER_DECIMALS, round = 100000n): number
|
|
148
|
-
|
|
149
|
-
let $amount = BigInt(amount);
|
|
150
|
-
let val = $amount * round / 10n ** $decimals;
|
|
151
|
-
if (val < Number.MAX_SAFE_INTEGER) {
|
|
152
|
-
return Number(val) / Number(round);
|
|
153
|
-
}
|
|
154
|
-
return val / round;
|
|
161
|
+
export function toEtherSafe (amount: string | number | bigint, decimals: number | string = ETHER_DECIMALS, round: number | bigint = 100000n): number {
|
|
162
|
+
return toEther(amount, decimals, round, false);
|
|
155
163
|
}
|
|
156
164
|
|
|
157
165
|
export function toHex (num: string | bigint | number): TEth.Hex {
|
package/src/utils/$number.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { $bigint } from './$bigint';
|
|
|
4
4
|
|
|
5
5
|
export namespace $number {
|
|
6
6
|
|
|
7
|
-
export function div
|
|
7
|
+
export function div(a: number, b: number, digits: number = 5) {
|
|
8
8
|
let r = 10 ** digits;
|
|
9
9
|
return Math.round(a * r / b) / r;
|
|
10
10
|
}
|
|
@@ -14,7 +14,7 @@ export namespace $number {
|
|
|
14
14
|
* @param min: includes
|
|
15
15
|
* @param max: excludes
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
export function random(min: number, max: number) {
|
|
18
18
|
$require.True(min < max, `Random Int expects max to be greater then min: ${min}..${max}`);
|
|
19
19
|
return Math.random() * (max - min) + min;
|
|
20
20
|
}
|
|
@@ -40,7 +40,7 @@ export namespace $number {
|
|
|
40
40
|
let val = 10 ** Math.max(decimals, decimalsFromNumber);
|
|
41
41
|
return randomInt(min * val, max * val) / val;
|
|
42
42
|
}
|
|
43
|
-
export function parse
|
|
43
|
+
export function parse(mix: string | number) {
|
|
44
44
|
if (!mix) return 0;
|
|
45
45
|
if (typeof mix === 'number') {
|
|
46
46
|
return mix;
|
|
@@ -70,7 +70,7 @@ export namespace $number {
|
|
|
70
70
|
}
|
|
71
71
|
return value;
|
|
72
72
|
}
|
|
73
|
-
export function round
|
|
73
|
+
export function round(mix: string | number, digits: number = 0, round: 'ceil' | 'round' | 'floor' = 'round') {
|
|
74
74
|
let number = typeof mix === 'string' ? Number(mix) : mix;
|
|
75
75
|
if (isNaN(number)) {
|
|
76
76
|
return number;
|
|
@@ -86,7 +86,7 @@ export namespace $number {
|
|
|
86
86
|
}
|
|
87
87
|
return Math[round](val) / factor;
|
|
88
88
|
}
|
|
89
|
-
export function parseOptional
|
|
89
|
+
export function parseOptional(mix, default_ = null) {
|
|
90
90
|
if (mix == null) {
|
|
91
91
|
return default_;
|
|
92
92
|
}
|
|
@@ -108,8 +108,11 @@ export namespace $number {
|
|
|
108
108
|
* - abbreviation: Format number to *B, *M, *K
|
|
109
109
|
* - maximumFractionDigits: Parameter for toLocaleString
|
|
110
110
|
*/
|
|
111
|
-
export function format
|
|
111
|
+
export function format(num: number, options?: { abbreviation?: boolean, maximumFractionDigits?: number }) {
|
|
112
112
|
if (options?.abbreviation) {
|
|
113
|
+
if (Math.abs(num) < 0.01) {
|
|
114
|
+
return humanizeSmallFloat(num);
|
|
115
|
+
}
|
|
113
116
|
const K = 10 ** 3;
|
|
114
117
|
const M = 10 ** 6;
|
|
115
118
|
const B = 10 ** 9;
|
|
@@ -130,16 +133,39 @@ export namespace $number {
|
|
|
130
133
|
});
|
|
131
134
|
}
|
|
132
135
|
|
|
133
|
-
export function humanize
|
|
134
|
-
export function humanize
|
|
135
|
-
export function humanize
|
|
136
|
+
export function humanize(num: bigint, decimals: number)
|
|
137
|
+
export function humanize(num: number)
|
|
138
|
+
export function humanize(mix: number | bigint, decimals: number = 18) {
|
|
136
139
|
if (typeof mix === 'bigint') {
|
|
137
140
|
mix = $bigint.toEther(mix, decimals);
|
|
138
141
|
}
|
|
139
142
|
return format(mix, { abbreviation: true });
|
|
140
143
|
}
|
|
141
144
|
|
|
142
|
-
export function toHex
|
|
145
|
+
export function toHex(num: string | number | TEth.Hex | bigint): TEth.Hex {
|
|
143
146
|
return (`0x` + Number(num).toString(16)) as TEth.Hex;
|
|
144
147
|
}
|
|
148
|
+
|
|
149
|
+
const subscriptDigits = '₀₁₂₃₄₅₆₇₈₉';
|
|
150
|
+
function humanizeSmallFloat(value: number, maxDigits = 4): string {
|
|
151
|
+
if (!Number.isFinite(value)) return String(value);
|
|
152
|
+
if (value === 0) return '0';
|
|
153
|
+
|
|
154
|
+
const sign = value < 0 ? '-' : '';
|
|
155
|
+
const abs = Math.abs(value);
|
|
156
|
+
|
|
157
|
+
const str = abs.toLocaleString('en-US', {
|
|
158
|
+
useGrouping: false,
|
|
159
|
+
maximumSignificantDigits: 20,
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Example: 0.0000005 -> zeros = 6, rest = '5'
|
|
163
|
+
const match = str.match(/^0\.(0{4,})(\d+)/);
|
|
164
|
+
if (!match) return format(value, { maximumFractionDigits: 5 });
|
|
165
|
+
|
|
166
|
+
const zeroCount = match[1].length;
|
|
167
|
+
const significant = match[2].slice(0, maxDigits);
|
|
168
|
+
const zeroCountSub = subscriptDigits[zeroCount];
|
|
169
|
+
return `${sign}0.0${zeroCountSub}${significant}`;
|
|
170
|
+
}
|
|
145
171
|
}
|