starknet 5.3.0 → 5.4.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.
@@ -540,1880 +540,105 @@ var starknet = (() => {
540
540
  }
541
541
  });
542
542
 
543
- // node_modules/bignumber.js/bignumber.js
544
- var require_bignumber = __commonJS({
545
- "node_modules/bignumber.js/bignumber.js"(exports, module) {
546
- (function(globalObject) {
547
- "use strict";
548
- var BigNumber, isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, mathceil = Math.ceil, mathfloor = Math.floor, bignumberError = "[BigNumber Error] ", tooManyDigits = bignumberError + "Number primitive has more than 15 significant digits: ", BASE = 1e14, LOG_BASE = 14, MAX_SAFE_INTEGER = 9007199254740991, POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], SQRT_BASE = 1e7, MAX = 1e9;
549
- function clone(configObject) {
550
- var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = {
551
- prefix: "",
552
- groupSize: 3,
553
- secondaryGroupSize: 0,
554
- groupSeparator: ",",
555
- decimalSeparator: ".",
556
- fractionGroupSize: 0,
557
- fractionGroupSeparator: "\xA0",
558
- suffix: ""
559
- }, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true;
560
- function BigNumber2(v, b) {
561
- var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;
562
- if (!(x instanceof BigNumber2))
563
- return new BigNumber2(v, b);
564
- if (b == null) {
565
- if (v && v._isBigNumber === true) {
566
- x.s = v.s;
567
- if (!v.c || v.e > MAX_EXP) {
568
- x.c = x.e = null;
569
- } else if (v.e < MIN_EXP) {
570
- x.c = [x.e = 0];
571
- } else {
572
- x.e = v.e;
573
- x.c = v.c.slice();
574
- }
575
- return;
576
- }
577
- if ((isNum = typeof v == "number") && v * 0 == 0) {
578
- x.s = 1 / v < 0 ? (v = -v, -1) : 1;
579
- if (v === ~~v) {
580
- for (e = 0, i = v; i >= 10; i /= 10, e++)
581
- ;
582
- if (e > MAX_EXP) {
583
- x.c = x.e = null;
584
- } else {
585
- x.e = e;
586
- x.c = [v];
587
- }
588
- return;
589
- }
590
- str = String(v);
591
- } else {
592
- if (!isNumeric.test(str = String(v)))
593
- return parseNumeric(x, str, isNum);
594
- x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
595
- }
596
- if ((e = str.indexOf(".")) > -1)
597
- str = str.replace(".", "");
598
- if ((i = str.search(/e/i)) > 0) {
599
- if (e < 0)
600
- e = i;
601
- e += +str.slice(i + 1);
602
- str = str.substring(0, i);
603
- } else if (e < 0) {
604
- e = str.length;
605
- }
606
- } else {
607
- intCheck(b, 2, ALPHABET.length, "Base");
608
- if (b == 10 && alphabetHasNormalDecimalDigits) {
609
- x = new BigNumber2(v);
610
- return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
611
- }
612
- str = String(v);
613
- if (isNum = typeof v == "number") {
614
- if (v * 0 != 0)
615
- return parseNumeric(x, str, isNum, b);
616
- x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
617
- if (BigNumber2.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) {
618
- throw Error(tooManyDigits + v);
619
- }
620
- } else {
621
- x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
622
- }
623
- alphabet = ALPHABET.slice(0, b);
624
- e = i = 0;
625
- for (len = str.length; i < len; i++) {
626
- if (alphabet.indexOf(c = str.charAt(i)) < 0) {
627
- if (c == ".") {
628
- if (i > e) {
629
- e = len;
630
- continue;
631
- }
632
- } else if (!caseChanged) {
633
- if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {
634
- caseChanged = true;
635
- i = -1;
636
- e = 0;
637
- continue;
638
- }
639
- }
640
- return parseNumeric(x, String(v), isNum, b);
641
- }
642
- }
643
- isNum = false;
644
- str = convertBase(str, b, 10, x.s);
645
- if ((e = str.indexOf(".")) > -1)
646
- str = str.replace(".", "");
647
- else
648
- e = str.length;
649
- }
650
- for (i = 0; str.charCodeAt(i) === 48; i++)
651
- ;
652
- for (len = str.length; str.charCodeAt(--len) === 48; )
653
- ;
654
- if (str = str.slice(i, ++len)) {
655
- len -= i;
656
- if (isNum && BigNumber2.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {
657
- throw Error(tooManyDigits + x.s * v);
658
- }
659
- if ((e = e - i - 1) > MAX_EXP) {
660
- x.c = x.e = null;
661
- } else if (e < MIN_EXP) {
662
- x.c = [x.e = 0];
663
- } else {
664
- x.e = e;
665
- x.c = [];
666
- i = (e + 1) % LOG_BASE;
667
- if (e < 0)
668
- i += LOG_BASE;
669
- if (i < len) {
670
- if (i)
671
- x.c.push(+str.slice(0, i));
672
- for (len -= LOG_BASE; i < len; ) {
673
- x.c.push(+str.slice(i, i += LOG_BASE));
674
- }
675
- i = LOG_BASE - (str = str.slice(i)).length;
676
- } else {
677
- i -= len;
678
- }
679
- for (; i--; str += "0")
680
- ;
681
- x.c.push(+str);
682
- }
683
- } else {
684
- x.c = [x.e = 0];
685
- }
686
- }
687
- BigNumber2.clone = clone;
688
- BigNumber2.ROUND_UP = 0;
689
- BigNumber2.ROUND_DOWN = 1;
690
- BigNumber2.ROUND_CEIL = 2;
691
- BigNumber2.ROUND_FLOOR = 3;
692
- BigNumber2.ROUND_HALF_UP = 4;
693
- BigNumber2.ROUND_HALF_DOWN = 5;
694
- BigNumber2.ROUND_HALF_EVEN = 6;
695
- BigNumber2.ROUND_HALF_CEIL = 7;
696
- BigNumber2.ROUND_HALF_FLOOR = 8;
697
- BigNumber2.EUCLID = 9;
698
- BigNumber2.config = BigNumber2.set = function(obj) {
699
- var p, v;
700
- if (obj != null) {
701
- if (typeof obj == "object") {
702
- if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) {
703
- v = obj[p];
704
- intCheck(v, 0, MAX, p);
705
- DECIMAL_PLACES = v;
706
- }
707
- if (obj.hasOwnProperty(p = "ROUNDING_MODE")) {
708
- v = obj[p];
709
- intCheck(v, 0, 8, p);
710
- ROUNDING_MODE = v;
711
- }
712
- if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) {
713
- v = obj[p];
714
- if (v && v.pop) {
715
- intCheck(v[0], -MAX, 0, p);
716
- intCheck(v[1], 0, MAX, p);
717
- TO_EXP_NEG = v[0];
718
- TO_EXP_POS = v[1];
719
- } else {
720
- intCheck(v, -MAX, MAX, p);
721
- TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
722
- }
723
- }
724
- if (obj.hasOwnProperty(p = "RANGE")) {
725
- v = obj[p];
726
- if (v && v.pop) {
727
- intCheck(v[0], -MAX, -1, p);
728
- intCheck(v[1], 1, MAX, p);
729
- MIN_EXP = v[0];
730
- MAX_EXP = v[1];
731
- } else {
732
- intCheck(v, -MAX, MAX, p);
733
- if (v) {
734
- MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
735
- } else {
736
- throw Error(bignumberError + p + " cannot be zero: " + v);
737
- }
738
- }
739
- }
740
- if (obj.hasOwnProperty(p = "CRYPTO")) {
741
- v = obj[p];
742
- if (v === !!v) {
743
- if (v) {
744
- if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
745
- CRYPTO = v;
746
- } else {
747
- CRYPTO = !v;
748
- throw Error(bignumberError + "crypto unavailable");
749
- }
750
- } else {
751
- CRYPTO = v;
752
- }
753
- } else {
754
- throw Error(bignumberError + p + " not true or false: " + v);
755
- }
756
- }
757
- if (obj.hasOwnProperty(p = "MODULO_MODE")) {
758
- v = obj[p];
759
- intCheck(v, 0, 9, p);
760
- MODULO_MODE = v;
761
- }
762
- if (obj.hasOwnProperty(p = "POW_PRECISION")) {
763
- v = obj[p];
764
- intCheck(v, 0, MAX, p);
765
- POW_PRECISION = v;
766
- }
767
- if (obj.hasOwnProperty(p = "FORMAT")) {
768
- v = obj[p];
769
- if (typeof v == "object")
770
- FORMAT = v;
771
- else
772
- throw Error(bignumberError + p + " not an object: " + v);
773
- }
774
- if (obj.hasOwnProperty(p = "ALPHABET")) {
775
- v = obj[p];
776
- if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
777
- alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789";
778
- ALPHABET = v;
779
- } else {
780
- throw Error(bignumberError + p + " invalid: " + v);
781
- }
782
- }
783
- } else {
784
- throw Error(bignumberError + "Object expected: " + obj);
785
- }
786
- }
787
- return {
788
- DECIMAL_PLACES,
789
- ROUNDING_MODE,
790
- EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
791
- RANGE: [MIN_EXP, MAX_EXP],
792
- CRYPTO,
793
- MODULO_MODE,
794
- POW_PRECISION,
795
- FORMAT,
796
- ALPHABET
797
- };
798
- };
799
- BigNumber2.isBigNumber = function(v) {
800
- if (!v || v._isBigNumber !== true)
801
- return false;
802
- if (!BigNumber2.DEBUG)
803
- return true;
804
- var i, n, c = v.c, e = v.e, s = v.s;
805
- out:
806
- if ({}.toString.call(c) == "[object Array]") {
807
- if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
808
- if (c[0] === 0) {
809
- if (e === 0 && c.length === 1)
810
- return true;
811
- break out;
812
- }
813
- i = (e + 1) % LOG_BASE;
814
- if (i < 1)
815
- i += LOG_BASE;
816
- if (String(c[0]).length == i) {
817
- for (i = 0; i < c.length; i++) {
818
- n = c[i];
819
- if (n < 0 || n >= BASE || n !== mathfloor(n))
820
- break out;
821
- }
822
- if (n !== 0)
823
- return true;
824
- }
825
- }
826
- } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {
827
- return true;
828
- }
829
- throw Error(bignumberError + "Invalid BigNumber: " + v);
830
- };
831
- BigNumber2.maximum = BigNumber2.max = function() {
832
- return maxOrMin(arguments, P.lt);
833
- };
834
- BigNumber2.minimum = BigNumber2.min = function() {
835
- return maxOrMin(arguments, P.gt);
836
- };
837
- BigNumber2.random = function() {
838
- var pow2_53 = 9007199254740992;
839
- var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {
840
- return mathfloor(Math.random() * pow2_53);
841
- } : function() {
842
- return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
843
- };
844
- return function(dp) {
845
- var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE);
846
- if (dp == null)
847
- dp = DECIMAL_PLACES;
848
- else
849
- intCheck(dp, 0, MAX);
850
- k = mathceil(dp / LOG_BASE);
851
- if (CRYPTO) {
852
- if (crypto.getRandomValues) {
853
- a = crypto.getRandomValues(new Uint32Array(k *= 2));
854
- for (; i < k; ) {
855
- v = a[i] * 131072 + (a[i + 1] >>> 11);
856
- if (v >= 9e15) {
857
- b = crypto.getRandomValues(new Uint32Array(2));
858
- a[i] = b[0];
859
- a[i + 1] = b[1];
860
- } else {
861
- c.push(v % 1e14);
862
- i += 2;
863
- }
864
- }
865
- i = k / 2;
866
- } else if (crypto.randomBytes) {
867
- a = crypto.randomBytes(k *= 7);
868
- for (; i < k; ) {
869
- v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];
870
- if (v >= 9e15) {
871
- crypto.randomBytes(7).copy(a, i);
872
- } else {
873
- c.push(v % 1e14);
874
- i += 7;
875
- }
876
- }
877
- i = k / 7;
878
- } else {
879
- CRYPTO = false;
880
- throw Error(bignumberError + "crypto unavailable");
881
- }
882
- }
883
- if (!CRYPTO) {
884
- for (; i < k; ) {
885
- v = random53bitInt();
886
- if (v < 9e15)
887
- c[i++] = v % 1e14;
888
- }
889
- }
890
- k = c[--i];
891
- dp %= LOG_BASE;
892
- if (k && dp) {
893
- v = POWS_TEN[LOG_BASE - dp];
894
- c[i] = mathfloor(k / v) * v;
895
- }
896
- for (; c[i] === 0; c.pop(), i--)
897
- ;
898
- if (i < 0) {
899
- c = [e = 0];
900
- } else {
901
- for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE)
902
- ;
903
- for (i = 1, v = c[0]; v >= 10; v /= 10, i++)
904
- ;
905
- if (i < LOG_BASE)
906
- e -= LOG_BASE - i;
907
- }
908
- rand.e = e;
909
- rand.c = c;
910
- return rand;
911
- };
912
- }();
913
- BigNumber2.sum = function() {
914
- var i = 1, args = arguments, sum = new BigNumber2(args[0]);
915
- for (; i < args.length; )
916
- sum = sum.plus(args[i++]);
917
- return sum;
918
- };
919
- convertBase = function() {
920
- var decimal = "0123456789";
921
- function toBaseOut(str, baseIn, baseOut, alphabet) {
922
- var j, arr = [0], arrL, i = 0, len = str.length;
923
- for (; i < len; ) {
924
- for (arrL = arr.length; arrL--; arr[arrL] *= baseIn)
925
- ;
926
- arr[0] += alphabet.indexOf(str.charAt(i++));
927
- for (j = 0; j < arr.length; j++) {
928
- if (arr[j] > baseOut - 1) {
929
- if (arr[j + 1] == null)
930
- arr[j + 1] = 0;
931
- arr[j + 1] += arr[j] / baseOut | 0;
932
- arr[j] %= baseOut;
933
- }
934
- }
935
- }
936
- return arr.reverse();
937
- }
938
- return function(str, baseIn, baseOut, sign2, callerIsToString) {
939
- var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;
940
- if (i >= 0) {
941
- k = POW_PRECISION;
942
- POW_PRECISION = 0;
943
- str = str.replace(".", "");
944
- y = new BigNumber2(baseIn);
945
- x = y.pow(str.length - i);
946
- POW_PRECISION = k;
947
- y.c = toBaseOut(
948
- toFixedPoint(coeffToString(x.c), x.e, "0"),
949
- 10,
950
- baseOut,
951
- decimal
952
- );
953
- y.e = y.c.length;
954
- }
955
- xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));
956
- e = k = xc.length;
957
- for (; xc[--k] == 0; xc.pop())
958
- ;
959
- if (!xc[0])
960
- return alphabet.charAt(0);
961
- if (i < 0) {
962
- --e;
963
- } else {
964
- x.c = xc;
965
- x.e = e;
966
- x.s = sign2;
967
- x = div(x, y, dp, rm, baseOut);
968
- xc = x.c;
969
- r = x.r;
970
- e = x.e;
971
- }
972
- d = e + dp + 1;
973
- i = xc[d];
974
- k = baseOut / 2;
975
- r = r || d < 0 || xc[d + 1] != null;
976
- r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));
977
- if (d < 1 || !xc[0]) {
978
- str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
979
- } else {
980
- xc.length = d;
981
- if (r) {
982
- for (--baseOut; ++xc[--d] > baseOut; ) {
983
- xc[d] = 0;
984
- if (!d) {
985
- ++e;
986
- xc = [1].concat(xc);
987
- }
988
- }
989
- }
990
- for (k = xc.length; !xc[--k]; )
991
- ;
992
- for (i = 0, str = ""; i <= k; str += alphabet.charAt(xc[i++]))
993
- ;
994
- str = toFixedPoint(str, e, alphabet.charAt(0));
995
- }
996
- return str;
997
- };
998
- }();
999
- div = function() {
1000
- function multiply(x, k, base) {
1001
- var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0;
1002
- for (x = x.slice(); i--; ) {
1003
- xlo = x[i] % SQRT_BASE;
1004
- xhi = x[i] / SQRT_BASE | 0;
1005
- m = khi * xlo + xhi * klo;
1006
- temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;
1007
- carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
1008
- x[i] = temp % base;
1009
- }
1010
- if (carry)
1011
- x = [carry].concat(x);
1012
- return x;
1013
- }
1014
- function compare2(a, b, aL, bL) {
1015
- var i, cmp;
1016
- if (aL != bL) {
1017
- cmp = aL > bL ? 1 : -1;
1018
- } else {
1019
- for (i = cmp = 0; i < aL; i++) {
1020
- if (a[i] != b[i]) {
1021
- cmp = a[i] > b[i] ? 1 : -1;
1022
- break;
1023
- }
1024
- }
1025
- }
1026
- return cmp;
1027
- }
1028
- function subtract(a, b, aL, base) {
1029
- var i = 0;
1030
- for (; aL--; ) {
1031
- a[aL] -= i;
1032
- i = a[aL] < b[aL] ? 1 : 0;
1033
- a[aL] = i * base + a[aL] - b[aL];
1034
- }
1035
- for (; !a[0] && a.length > 1; a.splice(0, 1))
1036
- ;
1037
- }
1038
- return function(x, y, dp, rm, base) {
1039
- var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c;
1040
- if (!xc || !xc[0] || !yc || !yc[0]) {
1041
- return new BigNumber2(
1042
- !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : xc && xc[0] == 0 || !yc ? s * 0 : s / 0
1043
- );
1044
- }
1045
- q = new BigNumber2(s);
1046
- qc = q.c = [];
1047
- e = x.e - y.e;
1048
- s = dp + e + 1;
1049
- if (!base) {
1050
- base = BASE;
1051
- e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
1052
- s = s / LOG_BASE | 0;
1053
- }
1054
- for (i = 0; yc[i] == (xc[i] || 0); i++)
1055
- ;
1056
- if (yc[i] > (xc[i] || 0))
1057
- e--;
1058
- if (s < 0) {
1059
- qc.push(1);
1060
- more = true;
1061
- } else {
1062
- xL = xc.length;
1063
- yL = yc.length;
1064
- i = 0;
1065
- s += 2;
1066
- n = mathfloor(base / (yc[0] + 1));
1067
- if (n > 1) {
1068
- yc = multiply(yc, n, base);
1069
- xc = multiply(xc, n, base);
1070
- yL = yc.length;
1071
- xL = xc.length;
1072
- }
1073
- xi = yL;
1074
- rem = xc.slice(0, yL);
1075
- remL = rem.length;
1076
- for (; remL < yL; rem[remL++] = 0)
1077
- ;
1078
- yz = yc.slice();
1079
- yz = [0].concat(yz);
1080
- yc0 = yc[0];
1081
- if (yc[1] >= base / 2)
1082
- yc0++;
1083
- do {
1084
- n = 0;
1085
- cmp = compare2(yc, rem, yL, remL);
1086
- if (cmp < 0) {
1087
- rem0 = rem[0];
1088
- if (yL != remL)
1089
- rem0 = rem0 * base + (rem[1] || 0);
1090
- n = mathfloor(rem0 / yc0);
1091
- if (n > 1) {
1092
- if (n >= base)
1093
- n = base - 1;
1094
- prod = multiply(yc, n, base);
1095
- prodL = prod.length;
1096
- remL = rem.length;
1097
- while (compare2(prod, rem, prodL, remL) == 1) {
1098
- n--;
1099
- subtract(prod, yL < prodL ? yz : yc, prodL, base);
1100
- prodL = prod.length;
1101
- cmp = 1;
1102
- }
1103
- } else {
1104
- if (n == 0) {
1105
- cmp = n = 1;
1106
- }
1107
- prod = yc.slice();
1108
- prodL = prod.length;
1109
- }
1110
- if (prodL < remL)
1111
- prod = [0].concat(prod);
1112
- subtract(rem, prod, remL, base);
1113
- remL = rem.length;
1114
- if (cmp == -1) {
1115
- while (compare2(yc, rem, yL, remL) < 1) {
1116
- n++;
1117
- subtract(rem, yL < remL ? yz : yc, remL, base);
1118
- remL = rem.length;
1119
- }
1120
- }
1121
- } else if (cmp === 0) {
1122
- n++;
1123
- rem = [0];
1124
- }
1125
- qc[i++] = n;
1126
- if (rem[0]) {
1127
- rem[remL++] = xc[xi] || 0;
1128
- } else {
1129
- rem = [xc[xi]];
1130
- remL = 1;
1131
- }
1132
- } while ((xi++ < xL || rem[0] != null) && s--);
1133
- more = rem[0] != null;
1134
- if (!qc[0])
1135
- qc.splice(0, 1);
1136
- }
1137
- if (base == BASE) {
1138
- for (i = 1, s = qc[0]; s >= 10; s /= 10, i++)
1139
- ;
1140
- round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
1141
- } else {
1142
- q.e = e;
1143
- q.r = +more;
1144
- }
1145
- return q;
1146
- };
1147
- }();
1148
- function format(n, i, rm, id) {
1149
- var c0, e, ne, len, str;
1150
- if (rm == null)
1151
- rm = ROUNDING_MODE;
1152
- else
1153
- intCheck(rm, 0, 8);
1154
- if (!n.c)
1155
- return n.toString();
1156
- c0 = n.c[0];
1157
- ne = n.e;
1158
- if (i == null) {
1159
- str = coeffToString(n.c);
1160
- str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0");
1161
- } else {
1162
- n = round(new BigNumber2(n), i, rm);
1163
- e = n.e;
1164
- str = coeffToString(n.c);
1165
- len = str.length;
1166
- if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
1167
- for (; len < i; str += "0", len++)
1168
- ;
1169
- str = toExponential(str, e);
1170
- } else {
1171
- i -= ne;
1172
- str = toFixedPoint(str, e, "0");
1173
- if (e + 1 > len) {
1174
- if (--i > 0)
1175
- for (str += "."; i--; str += "0")
1176
- ;
1177
- } else {
1178
- i += e - len;
1179
- if (i > 0) {
1180
- if (e + 1 == len)
1181
- str += ".";
1182
- for (; i--; str += "0")
1183
- ;
1184
- }
1185
- }
1186
- }
1187
- }
1188
- return n.s < 0 && c0 ? "-" + str : str;
1189
- }
1190
- function maxOrMin(args, method) {
1191
- var n, i = 1, m = new BigNumber2(args[0]);
1192
- for (; i < args.length; i++) {
1193
- n = new BigNumber2(args[i]);
1194
- if (!n.s) {
1195
- m = n;
1196
- break;
1197
- } else if (method.call(m, n)) {
1198
- m = n;
1199
- }
1200
- }
1201
- return m;
1202
- }
1203
- function normalise(n, c, e) {
1204
- var i = 1, j = c.length;
1205
- for (; !c[--j]; c.pop())
1206
- ;
1207
- for (j = c[0]; j >= 10; j /= 10, i++)
1208
- ;
1209
- if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {
1210
- n.c = n.e = null;
1211
- } else if (e < MIN_EXP) {
1212
- n.c = [n.e = 0];
1213
- } else {
1214
- n.e = e;
1215
- n.c = c;
1216
- }
1217
- return n;
1218
- }
1219
- parseNumeric = function() {
1220
- var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
1221
- return function(x, str, isNum, b) {
1222
- var base, s = isNum ? str : str.replace(whitespaceOrPlus, "");
1223
- if (isInfinityOrNaN.test(s)) {
1224
- x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
1225
- } else {
1226
- if (!isNum) {
1227
- s = s.replace(basePrefix, function(m, p1, p2) {
1228
- base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8;
1229
- return !b || b == base ? p1 : m;
1230
- });
1231
- if (b) {
1232
- base = b;
1233
- s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1");
1234
- }
1235
- if (str != s)
1236
- return new BigNumber2(s, base);
1237
- }
1238
- if (BigNumber2.DEBUG) {
1239
- throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str);
1240
- }
1241
- x.s = null;
1242
- }
1243
- x.c = x.e = null;
1244
- };
1245
- }();
1246
- function round(x, sd, rm, r) {
1247
- var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN;
1248
- if (xc) {
1249
- out: {
1250
- for (d = 1, k = xc[0]; k >= 10; k /= 10, d++)
1251
- ;
1252
- i = sd - d;
1253
- if (i < 0) {
1254
- i += LOG_BASE;
1255
- j = sd;
1256
- n = xc[ni = 0];
1257
- rd = n / pows10[d - j - 1] % 10 | 0;
1258
- } else {
1259
- ni = mathceil((i + 1) / LOG_BASE);
1260
- if (ni >= xc.length) {
1261
- if (r) {
1262
- for (; xc.length <= ni; xc.push(0))
1263
- ;
1264
- n = rd = 0;
1265
- d = 1;
1266
- i %= LOG_BASE;
1267
- j = i - LOG_BASE + 1;
1268
- } else {
1269
- break out;
1270
- }
1271
- } else {
1272
- n = k = xc[ni];
1273
- for (d = 1; k >= 10; k /= 10, d++)
1274
- ;
1275
- i %= LOG_BASE;
1276
- j = i - LOG_BASE + d;
1277
- rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;
1278
- }
1279
- }
1280
- r = r || sd < 0 || xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
1281
- r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
1282
- if (sd < 1 || !xc[0]) {
1283
- xc.length = 0;
1284
- if (r) {
1285
- sd -= x.e + 1;
1286
- xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
1287
- x.e = -sd || 0;
1288
- } else {
1289
- xc[0] = x.e = 0;
1290
- }
1291
- return x;
1292
- }
1293
- if (i == 0) {
1294
- xc.length = ni;
1295
- k = 1;
1296
- ni--;
1297
- } else {
1298
- xc.length = ni + 1;
1299
- k = pows10[LOG_BASE - i];
1300
- xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
1301
- }
1302
- if (r) {
1303
- for (; ; ) {
1304
- if (ni == 0) {
1305
- for (i = 1, j = xc[0]; j >= 10; j /= 10, i++)
1306
- ;
1307
- j = xc[0] += k;
1308
- for (k = 1; j >= 10; j /= 10, k++)
1309
- ;
1310
- if (i != k) {
1311
- x.e++;
1312
- if (xc[0] == BASE)
1313
- xc[0] = 1;
1314
- }
1315
- break;
1316
- } else {
1317
- xc[ni] += k;
1318
- if (xc[ni] != BASE)
1319
- break;
1320
- xc[ni--] = 0;
1321
- k = 1;
1322
- }
1323
- }
1324
- }
1325
- for (i = xc.length; xc[--i] === 0; xc.pop())
1326
- ;
1327
- }
1328
- if (x.e > MAX_EXP) {
1329
- x.c = x.e = null;
1330
- } else if (x.e < MIN_EXP) {
1331
- x.c = [x.e = 0];
1332
- }
1333
- }
1334
- return x;
1335
- }
1336
- function valueOf(n) {
1337
- var str, e = n.e;
1338
- if (e === null)
1339
- return n.toString();
1340
- str = coeffToString(n.c);
1341
- str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0");
1342
- return n.s < 0 ? "-" + str : str;
1343
- }
1344
- P.absoluteValue = P.abs = function() {
1345
- var x = new BigNumber2(this);
1346
- if (x.s < 0)
1347
- x.s = 1;
1348
- return x;
1349
- };
1350
- P.comparedTo = function(y, b) {
1351
- return compare(this, new BigNumber2(y, b));
1352
- };
1353
- P.decimalPlaces = P.dp = function(dp, rm) {
1354
- var c, n, v, x = this;
1355
- if (dp != null) {
1356
- intCheck(dp, 0, MAX);
1357
- if (rm == null)
1358
- rm = ROUNDING_MODE;
1359
- else
1360
- intCheck(rm, 0, 8);
1361
- return round(new BigNumber2(x), dp + x.e + 1, rm);
1362
- }
1363
- if (!(c = x.c))
1364
- return null;
1365
- n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
1366
- if (v = c[v])
1367
- for (; v % 10 == 0; v /= 10, n--)
1368
- ;
1369
- if (n < 0)
1370
- n = 0;
1371
- return n;
1372
- };
1373
- P.dividedBy = P.div = function(y, b) {
1374
- return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE);
1375
- };
1376
- P.dividedToIntegerBy = P.idiv = function(y, b) {
1377
- return div(this, new BigNumber2(y, b), 0, 1);
1378
- };
1379
- P.exponentiatedBy = P.pow = function(n, m) {
1380
- var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;
1381
- n = new BigNumber2(n);
1382
- if (n.c && !n.isInteger()) {
1383
- throw Error(bignumberError + "Exponent not an integer: " + valueOf(n));
1384
- }
1385
- if (m != null)
1386
- m = new BigNumber2(m);
1387
- nIsBig = n.e > 14;
1388
- if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
1389
- y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));
1390
- return m ? y.mod(m) : y;
1391
- }
1392
- nIsNeg = n.s < 0;
1393
- if (m) {
1394
- if (m.c ? !m.c[0] : !m.s)
1395
- return new BigNumber2(NaN);
1396
- isModExp = !nIsNeg && x.isInteger() && m.isInteger();
1397
- if (isModExp)
1398
- x = x.mod(m);
1399
- } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {
1400
- k = x.s < 0 && isOdd(n) ? -0 : 0;
1401
- if (x.e > -1)
1402
- k = 1 / k;
1403
- return new BigNumber2(nIsNeg ? 1 / k : k);
1404
- } else if (POW_PRECISION) {
1405
- k = mathceil(POW_PRECISION / LOG_BASE + 2);
1406
- }
1407
- if (nIsBig) {
1408
- half = new BigNumber2(0.5);
1409
- if (nIsNeg)
1410
- n.s = 1;
1411
- nIsOdd = isOdd(n);
1412
- } else {
1413
- i = Math.abs(+valueOf(n));
1414
- nIsOdd = i % 2;
1415
- }
1416
- y = new BigNumber2(ONE);
1417
- for (; ; ) {
1418
- if (nIsOdd) {
1419
- y = y.times(x);
1420
- if (!y.c)
1421
- break;
1422
- if (k) {
1423
- if (y.c.length > k)
1424
- y.c.length = k;
1425
- } else if (isModExp) {
1426
- y = y.mod(m);
1427
- }
1428
- }
1429
- if (i) {
1430
- i = mathfloor(i / 2);
1431
- if (i === 0)
1432
- break;
1433
- nIsOdd = i % 2;
1434
- } else {
1435
- n = n.times(half);
1436
- round(n, n.e + 1, 1);
1437
- if (n.e > 14) {
1438
- nIsOdd = isOdd(n);
1439
- } else {
1440
- i = +valueOf(n);
1441
- if (i === 0)
1442
- break;
1443
- nIsOdd = i % 2;
1444
- }
1445
- }
1446
- x = x.times(x);
1447
- if (k) {
1448
- if (x.c && x.c.length > k)
1449
- x.c.length = k;
1450
- } else if (isModExp) {
1451
- x = x.mod(m);
1452
- }
1453
- }
1454
- if (isModExp)
1455
- return y;
1456
- if (nIsNeg)
1457
- y = ONE.div(y);
1458
- return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
1459
- };
1460
- P.integerValue = function(rm) {
1461
- var n = new BigNumber2(this);
1462
- if (rm == null)
1463
- rm = ROUNDING_MODE;
1464
- else
1465
- intCheck(rm, 0, 8);
1466
- return round(n, n.e + 1, rm);
1467
- };
1468
- P.isEqualTo = P.eq = function(y, b) {
1469
- return compare(this, new BigNumber2(y, b)) === 0;
1470
- };
1471
- P.isFinite = function() {
1472
- return !!this.c;
1473
- };
1474
- P.isGreaterThan = P.gt = function(y, b) {
1475
- return compare(this, new BigNumber2(y, b)) > 0;
1476
- };
1477
- P.isGreaterThanOrEqualTo = P.gte = function(y, b) {
1478
- return (b = compare(this, new BigNumber2(y, b))) === 1 || b === 0;
1479
- };
1480
- P.isInteger = function() {
1481
- return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
1482
- };
1483
- P.isLessThan = P.lt = function(y, b) {
1484
- return compare(this, new BigNumber2(y, b)) < 0;
1485
- };
1486
- P.isLessThanOrEqualTo = P.lte = function(y, b) {
1487
- return (b = compare(this, new BigNumber2(y, b))) === -1 || b === 0;
1488
- };
1489
- P.isNaN = function() {
1490
- return !this.s;
1491
- };
1492
- P.isNegative = function() {
1493
- return this.s < 0;
1494
- };
1495
- P.isPositive = function() {
1496
- return this.s > 0;
1497
- };
1498
- P.isZero = function() {
1499
- return !!this.c && this.c[0] == 0;
1500
- };
1501
- P.minus = function(y, b) {
1502
- var i, j, t, xLTy, x = this, a = x.s;
1503
- y = new BigNumber2(y, b);
1504
- b = y.s;
1505
- if (!a || !b)
1506
- return new BigNumber2(NaN);
1507
- if (a != b) {
1508
- y.s = -b;
1509
- return x.plus(y);
1510
- }
1511
- var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
1512
- if (!xe || !ye) {
1513
- if (!xc || !yc)
1514
- return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN);
1515
- if (!xc[0] || !yc[0]) {
1516
- return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : ROUNDING_MODE == 3 ? -0 : 0);
1517
- }
1518
- }
1519
- xe = bitFloor(xe);
1520
- ye = bitFloor(ye);
1521
- xc = xc.slice();
1522
- if (a = xe - ye) {
1523
- if (xLTy = a < 0) {
1524
- a = -a;
1525
- t = xc;
1526
- } else {
1527
- ye = xe;
1528
- t = yc;
1529
- }
1530
- t.reverse();
1531
- for (b = a; b--; t.push(0))
1532
- ;
1533
- t.reverse();
1534
- } else {
1535
- j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
1536
- for (a = b = 0; b < j; b++) {
1537
- if (xc[b] != yc[b]) {
1538
- xLTy = xc[b] < yc[b];
1539
- break;
1540
- }
1541
- }
1542
- }
1543
- if (xLTy) {
1544
- t = xc;
1545
- xc = yc;
1546
- yc = t;
1547
- y.s = -y.s;
1548
- }
1549
- b = (j = yc.length) - (i = xc.length);
1550
- if (b > 0)
1551
- for (; b--; xc[i++] = 0)
1552
- ;
1553
- b = BASE - 1;
1554
- for (; j > a; ) {
1555
- if (xc[--j] < yc[j]) {
1556
- for (i = j; i && !xc[--i]; xc[i] = b)
1557
- ;
1558
- --xc[i];
1559
- xc[j] += BASE;
1560
- }
1561
- xc[j] -= yc[j];
1562
- }
1563
- for (; xc[0] == 0; xc.splice(0, 1), --ye)
1564
- ;
1565
- if (!xc[0]) {
1566
- y.s = ROUNDING_MODE == 3 ? -1 : 1;
1567
- y.c = [y.e = 0];
1568
- return y;
1569
- }
1570
- return normalise(y, xc, ye);
1571
- };
1572
- P.modulo = P.mod = function(y, b) {
1573
- var q, s, x = this;
1574
- y = new BigNumber2(y, b);
1575
- if (!x.c || !y.s || y.c && !y.c[0]) {
1576
- return new BigNumber2(NaN);
1577
- } else if (!y.c || x.c && !x.c[0]) {
1578
- return new BigNumber2(x);
1579
- }
1580
- if (MODULO_MODE == 9) {
1581
- s = y.s;
1582
- y.s = 1;
1583
- q = div(x, y, 0, 3);
1584
- y.s = s;
1585
- q.s *= s;
1586
- } else {
1587
- q = div(x, y, 0, MODULO_MODE);
1588
- }
1589
- y = x.minus(q.times(y));
1590
- if (!y.c[0] && MODULO_MODE == 1)
1591
- y.s = x.s;
1592
- return y;
1593
- };
1594
- P.multipliedBy = P.times = function(y, b) {
1595
- var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c;
1596
- if (!xc || !yc || !xc[0] || !yc[0]) {
1597
- if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {
1598
- y.c = y.e = y.s = null;
1599
- } else {
1600
- y.s *= x.s;
1601
- if (!xc || !yc) {
1602
- y.c = y.e = null;
1603
- } else {
1604
- y.c = [0];
1605
- y.e = 0;
1606
- }
1607
- }
1608
- return y;
1609
- }
1610
- e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
1611
- y.s *= x.s;
1612
- xcL = xc.length;
1613
- ycL = yc.length;
1614
- if (xcL < ycL) {
1615
- zc = xc;
1616
- xc = yc;
1617
- yc = zc;
1618
- i = xcL;
1619
- xcL = ycL;
1620
- ycL = i;
1621
- }
1622
- for (i = xcL + ycL, zc = []; i--; zc.push(0))
1623
- ;
1624
- base = BASE;
1625
- sqrtBase = SQRT_BASE;
1626
- for (i = ycL; --i >= 0; ) {
1627
- c = 0;
1628
- ylo = yc[i] % sqrtBase;
1629
- yhi = yc[i] / sqrtBase | 0;
1630
- for (k = xcL, j = i + k; j > i; ) {
1631
- xlo = xc[--k] % sqrtBase;
1632
- xhi = xc[k] / sqrtBase | 0;
1633
- m = yhi * xlo + xhi * ylo;
1634
- xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;
1635
- c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
1636
- zc[j--] = xlo % base;
1637
- }
1638
- zc[j] = c;
1639
- }
1640
- if (c) {
1641
- ++e;
1642
- } else {
1643
- zc.splice(0, 1);
1644
- }
1645
- return normalise(y, zc, e);
1646
- };
1647
- P.negated = function() {
1648
- var x = new BigNumber2(this);
1649
- x.s = -x.s || null;
1650
- return x;
1651
- };
1652
- P.plus = function(y, b) {
1653
- var t, x = this, a = x.s;
1654
- y = new BigNumber2(y, b);
1655
- b = y.s;
1656
- if (!a || !b)
1657
- return new BigNumber2(NaN);
1658
- if (a != b) {
1659
- y.s = -b;
1660
- return x.minus(y);
1661
- }
1662
- var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
1663
- if (!xe || !ye) {
1664
- if (!xc || !yc)
1665
- return new BigNumber2(a / 0);
1666
- if (!xc[0] || !yc[0])
1667
- return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0);
1668
- }
1669
- xe = bitFloor(xe);
1670
- ye = bitFloor(ye);
1671
- xc = xc.slice();
1672
- if (a = xe - ye) {
1673
- if (a > 0) {
1674
- ye = xe;
1675
- t = yc;
1676
- } else {
1677
- a = -a;
1678
- t = xc;
1679
- }
1680
- t.reverse();
1681
- for (; a--; t.push(0))
1682
- ;
1683
- t.reverse();
1684
- }
1685
- a = xc.length;
1686
- b = yc.length;
1687
- if (a - b < 0) {
1688
- t = yc;
1689
- yc = xc;
1690
- xc = t;
1691
- b = a;
1692
- }
1693
- for (a = 0; b; ) {
1694
- a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
1695
- xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
1696
- }
1697
- if (a) {
1698
- xc = [a].concat(xc);
1699
- ++ye;
1700
- }
1701
- return normalise(y, xc, ye);
1702
- };
1703
- P.precision = P.sd = function(sd, rm) {
1704
- var c, n, v, x = this;
1705
- if (sd != null && sd !== !!sd) {
1706
- intCheck(sd, 1, MAX);
1707
- if (rm == null)
1708
- rm = ROUNDING_MODE;
1709
- else
1710
- intCheck(rm, 0, 8);
1711
- return round(new BigNumber2(x), sd, rm);
1712
- }
1713
- if (!(c = x.c))
1714
- return null;
1715
- v = c.length - 1;
1716
- n = v * LOG_BASE + 1;
1717
- if (v = c[v]) {
1718
- for (; v % 10 == 0; v /= 10, n--)
1719
- ;
1720
- for (v = c[0]; v >= 10; v /= 10, n++)
1721
- ;
1722
- }
1723
- if (sd && x.e + 1 > n)
1724
- n = x.e + 1;
1725
- return n;
1726
- };
1727
- P.shiftedBy = function(k) {
1728
- intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
1729
- return this.times("1e" + k);
1730
- };
1731
- P.squareRoot = P.sqrt = function() {
1732
- var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2("0.5");
1733
- if (s !== 1 || !c || !c[0]) {
1734
- return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);
1735
- }
1736
- s = Math.sqrt(+valueOf(x));
1737
- if (s == 0 || s == 1 / 0) {
1738
- n = coeffToString(c);
1739
- if ((n.length + e) % 2 == 0)
1740
- n += "0";
1741
- s = Math.sqrt(+n);
1742
- e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
1743
- if (s == 1 / 0) {
1744
- n = "5e" + e;
1745
- } else {
1746
- n = s.toExponential();
1747
- n = n.slice(0, n.indexOf("e") + 1) + e;
1748
- }
1749
- r = new BigNumber2(n);
1750
- } else {
1751
- r = new BigNumber2(s + "");
1752
- }
1753
- if (r.c[0]) {
1754
- e = r.e;
1755
- s = e + dp;
1756
- if (s < 3)
1757
- s = 0;
1758
- for (; ; ) {
1759
- t = r;
1760
- r = half.times(t.plus(div(x, t, dp, 1)));
1761
- if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
1762
- if (r.e < e)
1763
- --s;
1764
- n = n.slice(s - 3, s + 1);
1765
- if (n == "9999" || !rep && n == "4999") {
1766
- if (!rep) {
1767
- round(t, t.e + DECIMAL_PLACES + 2, 0);
1768
- if (t.times(t).eq(x)) {
1769
- r = t;
1770
- break;
1771
- }
1772
- }
1773
- dp += 4;
1774
- s += 4;
1775
- rep = 1;
1776
- } else {
1777
- if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
1778
- round(r, r.e + DECIMAL_PLACES + 2, 1);
1779
- m = !r.times(r).eq(x);
1780
- }
1781
- break;
1782
- }
1783
- }
1784
- }
1785
- }
1786
- return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
1787
- };
1788
- P.toExponential = function(dp, rm) {
1789
- if (dp != null) {
1790
- intCheck(dp, 0, MAX);
1791
- dp++;
1792
- }
1793
- return format(this, dp, rm, 1);
1794
- };
1795
- P.toFixed = function(dp, rm) {
1796
- if (dp != null) {
1797
- intCheck(dp, 0, MAX);
1798
- dp = dp + this.e + 1;
1799
- }
1800
- return format(this, dp, rm);
1801
- };
1802
- P.toFormat = function(dp, rm, format2) {
1803
- var str, x = this;
1804
- if (format2 == null) {
1805
- if (dp != null && rm && typeof rm == "object") {
1806
- format2 = rm;
1807
- rm = null;
1808
- } else if (dp && typeof dp == "object") {
1809
- format2 = dp;
1810
- dp = rm = null;
1811
- } else {
1812
- format2 = FORMAT;
1813
- }
1814
- } else if (typeof format2 != "object") {
1815
- throw Error(bignumberError + "Argument not an object: " + format2);
1816
- }
1817
- str = x.toFixed(dp, rm);
1818
- if (x.c) {
1819
- var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;
1820
- if (g2) {
1821
- i = g1;
1822
- g1 = g2;
1823
- g2 = i;
1824
- len -= i;
1825
- }
1826
- if (g1 > 0 && len > 0) {
1827
- i = len % g1 || g1;
1828
- intPart = intDigits.substr(0, i);
1829
- for (; i < len; i += g1)
1830
- intPart += groupSeparator + intDigits.substr(i, g1);
1831
- if (g2 > 0)
1832
- intPart += groupSeparator + intDigits.slice(i);
1833
- if (isNeg)
1834
- intPart = "-" + intPart;
1835
- }
1836
- str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(
1837
- new RegExp("\\d{" + g2 + "}\\B", "g"),
1838
- "$&" + (format2.fractionGroupSeparator || "")
1839
- ) : fractionPart) : intPart;
1840
- }
1841
- return (format2.prefix || "") + str + (format2.suffix || "");
1842
- };
1843
- P.toFraction = function(md) {
1844
- var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;
1845
- if (md != null) {
1846
- n = new BigNumber2(md);
1847
- if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {
1848
- throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n));
1849
- }
1850
- }
1851
- if (!xc)
1852
- return new BigNumber2(x);
1853
- d = new BigNumber2(ONE);
1854
- n1 = d0 = new BigNumber2(ONE);
1855
- d1 = n0 = new BigNumber2(ONE);
1856
- s = coeffToString(xc);
1857
- e = d.e = s.length - x.e - 1;
1858
- d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
1859
- md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;
1860
- exp = MAX_EXP;
1861
- MAX_EXP = 1 / 0;
1862
- n = new BigNumber2(s);
1863
- n0.c[0] = 0;
1864
- for (; ; ) {
1865
- q = div(n, d, 0, 1);
1866
- d2 = d0.plus(q.times(d1));
1867
- if (d2.comparedTo(md) == 1)
1868
- break;
1869
- d0 = d1;
1870
- d1 = d2;
1871
- n1 = n0.plus(q.times(d2 = n1));
1872
- n0 = d2;
1873
- d = n.minus(q.times(d2 = d));
1874
- n = d2;
1875
- }
1876
- d2 = div(md.minus(d0), d1, 0, 1);
1877
- n0 = n0.plus(d2.times(n1));
1878
- d0 = d0.plus(d2.times(d1));
1879
- n0.s = n1.s = x.s;
1880
- e = e * 2;
1881
- r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(
1882
- div(n0, d0, e, ROUNDING_MODE).minus(x).abs()
1883
- ) < 1 ? [n1, d1] : [n0, d0];
1884
- MAX_EXP = exp;
1885
- return r;
1886
- };
1887
- P.toNumber = function() {
1888
- return +valueOf(this);
1889
- };
1890
- P.toPrecision = function(sd, rm) {
1891
- if (sd != null)
1892
- intCheck(sd, 1, MAX);
1893
- return format(this, sd, rm, 2);
1894
- };
1895
- P.toString = function(b) {
1896
- var str, n = this, s = n.s, e = n.e;
1897
- if (e === null) {
1898
- if (s) {
1899
- str = "Infinity";
1900
- if (s < 0)
1901
- str = "-" + str;
1902
- } else {
1903
- str = "NaN";
1904
- }
1905
- } else {
1906
- if (b == null) {
1907
- str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0");
1908
- } else if (b === 10 && alphabetHasNormalDecimalDigits) {
1909
- n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
1910
- str = toFixedPoint(coeffToString(n.c), n.e, "0");
1911
- } else {
1912
- intCheck(b, 2, ALPHABET.length, "Base");
1913
- str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true);
1914
- }
1915
- if (s < 0 && n.c[0])
1916
- str = "-" + str;
1917
- }
1918
- return str;
1919
- };
1920
- P.valueOf = P.toJSON = function() {
1921
- return valueOf(this);
1922
- };
1923
- P._isBigNumber = true;
1924
- if (configObject != null)
1925
- BigNumber2.set(configObject);
1926
- return BigNumber2;
1927
- }
1928
- function bitFloor(n) {
1929
- var i = n | 0;
1930
- return n > 0 || n === i ? i : i - 1;
1931
- }
1932
- function coeffToString(a) {
1933
- var s, z, i = 1, j = a.length, r = a[0] + "";
1934
- for (; i < j; ) {
1935
- s = a[i++] + "";
1936
- z = LOG_BASE - s.length;
1937
- for (; z--; s = "0" + s)
1938
- ;
1939
- r += s;
1940
- }
1941
- for (j = r.length; r.charCodeAt(--j) === 48; )
1942
- ;
1943
- return r.slice(0, j + 1 || 1);
1944
- }
1945
- function compare(x, y) {
1946
- var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;
1947
- if (!i || !j)
1948
- return null;
1949
- a = xc && !xc[0];
1950
- b = yc && !yc[0];
1951
- if (a || b)
1952
- return a ? b ? 0 : -j : i;
1953
- if (i != j)
1954
- return i;
1955
- a = i < 0;
1956
- b = k == l;
1957
- if (!xc || !yc)
1958
- return b ? 0 : !xc ^ a ? 1 : -1;
1959
- if (!b)
1960
- return k > l ^ a ? 1 : -1;
1961
- j = (k = xc.length) < (l = yc.length) ? k : l;
1962
- for (i = 0; i < j; i++)
1963
- if (xc[i] != yc[i])
1964
- return xc[i] > yc[i] ^ a ? 1 : -1;
1965
- return k == l ? 0 : k > l ^ a ? 1 : -1;
1966
- }
1967
- function intCheck(n, min, max, name) {
1968
- if (n < min || n > max || n !== mathfloor(n)) {
1969
- throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n));
1970
- }
1971
- }
1972
- function isOdd(n) {
1973
- var k = n.c.length - 1;
1974
- return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
1975
- }
1976
- function toExponential(str, e) {
1977
- return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e;
1978
- }
1979
- function toFixedPoint(str, e, z) {
1980
- var len, zs;
1981
- if (e < 0) {
1982
- for (zs = z + "."; ++e; zs += z)
1983
- ;
1984
- str = zs + str;
1985
- } else {
1986
- len = str.length;
1987
- if (++e > len) {
1988
- for (zs = z, e -= len; --e; zs += z)
1989
- ;
1990
- str += zs;
1991
- } else if (e < len) {
1992
- str = str.slice(0, e) + "." + str.slice(e);
1993
- }
1994
- }
1995
- return str;
1996
- }
1997
- BigNumber = clone();
1998
- BigNumber["default"] = BigNumber.BigNumber = BigNumber;
1999
- if (typeof define == "function" && define.amd) {
2000
- define(function() {
2001
- return BigNumber;
2002
- });
2003
- } else if (typeof module != "undefined" && module.exports) {
2004
- module.exports = BigNumber;
2005
- } else {
2006
- if (!globalObject) {
2007
- globalObject = typeof self != "undefined" && self ? self : window;
2008
- }
2009
- globalObject.BigNumber = BigNumber;
2010
- }
2011
- })(exports);
2012
- }
2013
- });
2014
-
2015
- // node_modules/json-bigint/lib/stringify.js
2016
- var require_stringify = __commonJS({
2017
- "node_modules/json-bigint/lib/stringify.js"(exports, module) {
2018
- var BigNumber = require_bignumber();
2019
- var JSON2 = module.exports;
2020
- (function() {
2021
- "use strict";
2022
- function f(n) {
2023
- return n < 10 ? "0" + n : n;
2024
- }
2025
- var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = {
2026
- "\b": "\\b",
2027
- " ": "\\t",
2028
- "\n": "\\n",
2029
- "\f": "\\f",
2030
- "\r": "\\r",
2031
- '"': '\\"',
2032
- "\\": "\\\\"
2033
- }, rep;
2034
- function quote(string) {
2035
- escapable.lastIndex = 0;
2036
- return escapable.test(string) ? '"' + string.replace(escapable, function(a) {
2037
- var c = meta[a];
2038
- return typeof c === "string" ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
2039
- }) + '"' : '"' + string + '"';
2040
- }
2041
- function str(key, holder) {
2042
- var i, k, v, length, mind = gap, partial, value = holder[key], isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));
2043
- if (value && typeof value === "object" && typeof value.toJSON === "function") {
2044
- value = value.toJSON(key);
2045
- }
2046
- if (typeof rep === "function") {
2047
- value = rep.call(holder, key, value);
2048
- }
2049
- switch (typeof value) {
2050
- case "string":
2051
- if (isBigNumber) {
2052
- return value;
2053
- } else {
2054
- return quote(value);
2055
- }
2056
- case "number":
2057
- return isFinite(value) ? String(value) : "null";
2058
- case "boolean":
2059
- case "null":
2060
- case "bigint":
2061
- return String(value);
2062
- case "object":
2063
- if (!value) {
2064
- return "null";
2065
- }
2066
- gap += indent;
2067
- partial = [];
2068
- if (Object.prototype.toString.apply(value) === "[object Array]") {
2069
- length = value.length;
2070
- for (i = 0; i < length; i += 1) {
2071
- partial[i] = str(i, value) || "null";
2072
- }
2073
- v = partial.length === 0 ? "[]" : gap ? "[\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "]" : "[" + partial.join(",") + "]";
2074
- gap = mind;
2075
- return v;
2076
- }
2077
- if (rep && typeof rep === "object") {
2078
- length = rep.length;
2079
- for (i = 0; i < length; i += 1) {
2080
- if (typeof rep[i] === "string") {
2081
- k = rep[i];
2082
- v = str(k, value);
2083
- if (v) {
2084
- partial.push(quote(k) + (gap ? ": " : ":") + v);
2085
- }
2086
- }
2087
- }
2088
- } else {
2089
- Object.keys(value).forEach(function(k2) {
2090
- var v2 = str(k2, value);
2091
- if (v2) {
2092
- partial.push(quote(k2) + (gap ? ": " : ":") + v2);
2093
- }
2094
- });
2095
- }
2096
- v = partial.length === 0 ? "{}" : gap ? "{\n" + gap + partial.join(",\n" + gap) + "\n" + mind + "}" : "{" + partial.join(",") + "}";
2097
- gap = mind;
2098
- return v;
2099
- }
2100
- }
2101
- if (typeof JSON2.stringify !== "function") {
2102
- JSON2.stringify = function(value, replacer, space) {
2103
- var i;
2104
- gap = "";
2105
- indent = "";
2106
- if (typeof space === "number") {
2107
- for (i = 0; i < space; i += 1) {
2108
- indent += " ";
2109
- }
2110
- } else if (typeof space === "string") {
2111
- indent = space;
2112
- }
2113
- rep = replacer;
2114
- if (replacer && typeof replacer !== "function" && (typeof replacer !== "object" || typeof replacer.length !== "number")) {
2115
- throw new Error("JSON.stringify");
2116
- }
2117
- return str("", { "": value });
2118
- };
2119
- }
2120
- })();
2121
- }
2122
- });
2123
-
2124
- // node_modules/json-bigint/lib/parse.js
2125
- var require_parse = __commonJS({
2126
- "node_modules/json-bigint/lib/parse.js"(exports, module) {
2127
- var BigNumber = null;
2128
- var suspectProtoRx = /(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/;
2129
- var suspectConstructorRx = /(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/;
2130
- var json_parse = function(options) {
2131
- "use strict";
2132
- var _options = {
2133
- strict: false,
2134
- storeAsString: false,
2135
- alwaysParseAsBig: false,
2136
- useNativeBigInt: false,
2137
- protoAction: "error",
2138
- constructorAction: "error"
2139
- };
2140
- if (options !== void 0 && options !== null) {
2141
- if (options.strict === true) {
2142
- _options.strict = true;
2143
- }
2144
- if (options.storeAsString === true) {
2145
- _options.storeAsString = true;
2146
- }
2147
- _options.alwaysParseAsBig = options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;
2148
- _options.useNativeBigInt = options.useNativeBigInt === true ? options.useNativeBigInt : false;
2149
- if (typeof options.constructorAction !== "undefined") {
2150
- if (options.constructorAction === "error" || options.constructorAction === "ignore" || options.constructorAction === "preserve") {
2151
- _options.constructorAction = options.constructorAction;
2152
- } else {
2153
- throw new Error(
2154
- `Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${options.constructorAction}`
2155
- );
2156
- }
2157
- }
2158
- if (typeof options.protoAction !== "undefined") {
2159
- if (options.protoAction === "error" || options.protoAction === "ignore" || options.protoAction === "preserve") {
2160
- _options.protoAction = options.protoAction;
2161
- } else {
2162
- throw new Error(
2163
- `Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${options.protoAction}`
2164
- );
2165
- }
2166
- }
2167
- }
2168
- var at, ch, escapee = {
2169
- '"': '"',
2170
- "\\": "\\",
2171
- "/": "/",
2172
- b: "\b",
2173
- f: "\f",
2174
- n: "\n",
2175
- r: "\r",
2176
- t: " "
2177
- }, text, error = function(m) {
2178
- throw {
2179
- name: "SyntaxError",
2180
- message: m,
2181
- at,
2182
- text
2183
- };
2184
- }, next = function(c) {
2185
- if (c && c !== ch) {
2186
- error("Expected '" + c + "' instead of '" + ch + "'");
2187
- }
2188
- ch = text.charAt(at);
2189
- at += 1;
2190
- return ch;
2191
- }, number3 = function() {
2192
- var number4, string2 = "";
2193
- if (ch === "-") {
2194
- string2 = "-";
2195
- next("-");
2196
- }
2197
- while (ch >= "0" && ch <= "9") {
2198
- string2 += ch;
2199
- next();
2200
- }
2201
- if (ch === ".") {
2202
- string2 += ".";
2203
- while (next() && ch >= "0" && ch <= "9") {
2204
- string2 += ch;
2205
- }
2206
- }
2207
- if (ch === "e" || ch === "E") {
2208
- string2 += ch;
2209
- next();
2210
- if (ch === "-" || ch === "+") {
2211
- string2 += ch;
2212
- next();
2213
- }
2214
- while (ch >= "0" && ch <= "9") {
2215
- string2 += ch;
2216
- next();
2217
- }
2218
- }
2219
- number4 = +string2;
2220
- if (!isFinite(number4)) {
2221
- error("Bad number");
2222
- } else {
2223
- if (BigNumber == null)
2224
- BigNumber = require_bignumber();
2225
- if (string2.length > 15)
2226
- return _options.storeAsString ? string2 : _options.useNativeBigInt ? BigInt(string2) : new BigNumber(string2);
2227
- else
2228
- return !_options.alwaysParseAsBig ? number4 : _options.useNativeBigInt ? BigInt(number4) : new BigNumber(number4);
2229
- }
2230
- }, string = function() {
2231
- var hex, i, string2 = "", uffff;
2232
- if (ch === '"') {
2233
- var startAt = at;
2234
- while (next()) {
2235
- if (ch === '"') {
2236
- if (at - 1 > startAt)
2237
- string2 += text.substring(startAt, at - 1);
2238
- next();
2239
- return string2;
2240
- }
2241
- if (ch === "\\") {
2242
- if (at - 1 > startAt)
2243
- string2 += text.substring(startAt, at - 1);
2244
- next();
2245
- if (ch === "u") {
2246
- uffff = 0;
2247
- for (i = 0; i < 4; i += 1) {
2248
- hex = parseInt(next(), 16);
2249
- if (!isFinite(hex)) {
2250
- break;
2251
- }
2252
- uffff = uffff * 16 + hex;
2253
- }
2254
- string2 += String.fromCharCode(uffff);
2255
- } else if (typeof escapee[ch] === "string") {
2256
- string2 += escapee[ch];
2257
- } else {
2258
- break;
2259
- }
2260
- startAt = at;
2261
- }
2262
- }
2263
- }
2264
- error("Bad string");
2265
- }, white = function() {
2266
- while (ch && ch <= " ") {
2267
- next();
2268
- }
2269
- }, word = function() {
2270
- switch (ch) {
2271
- case "t":
2272
- next("t");
2273
- next("r");
2274
- next("u");
2275
- next("e");
2276
- return true;
2277
- case "f":
2278
- next("f");
2279
- next("a");
2280
- next("l");
2281
- next("s");
2282
- next("e");
2283
- return false;
2284
- case "n":
2285
- next("n");
2286
- next("u");
2287
- next("l");
2288
- next("l");
2289
- return null;
2290
- }
2291
- error("Unexpected '" + ch + "'");
2292
- }, value, array = function() {
2293
- var array2 = [];
2294
- if (ch === "[") {
2295
- next("[");
2296
- white();
2297
- if (ch === "]") {
2298
- next("]");
2299
- return array2;
2300
- }
2301
- while (ch) {
2302
- array2.push(value());
2303
- white();
2304
- if (ch === "]") {
2305
- next("]");
2306
- return array2;
2307
- }
2308
- next(",");
2309
- white();
2310
- }
2311
- }
2312
- error("Bad array");
2313
- }, object = function() {
2314
- var key, object2 = /* @__PURE__ */ Object.create(null);
2315
- if (ch === "{") {
2316
- next("{");
2317
- white();
2318
- if (ch === "}") {
2319
- next("}");
2320
- return object2;
2321
- }
2322
- while (ch) {
2323
- key = string();
2324
- white();
2325
- next(":");
2326
- if (_options.strict === true && Object.hasOwnProperty.call(object2, key)) {
2327
- error('Duplicate key "' + key + '"');
2328
- }
2329
- if (suspectProtoRx.test(key) === true) {
2330
- if (_options.protoAction === "error") {
2331
- error("Object contains forbidden prototype property");
2332
- } else if (_options.protoAction === "ignore") {
2333
- value();
2334
- } else {
2335
- object2[key] = value();
2336
- }
2337
- } else if (suspectConstructorRx.test(key) === true) {
2338
- if (_options.constructorAction === "error") {
2339
- error("Object contains forbidden constructor property");
2340
- } else if (_options.constructorAction === "ignore") {
2341
- value();
2342
- } else {
2343
- object2[key] = value();
2344
- }
2345
- } else {
2346
- object2[key] = value();
2347
- }
2348
- white();
2349
- if (ch === "}") {
2350
- next("}");
2351
- return object2;
2352
- }
2353
- next(",");
2354
- white();
543
+ // node_modules/ts-custom-error/dist/custom-error.js
544
+ var require_custom_error = __commonJS({
545
+ "node_modules/ts-custom-error/dist/custom-error.js"(exports) {
546
+ function fixProto(target, prototype) {
547
+ var setPrototypeOf = Object.setPrototypeOf;
548
+ setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;
549
+ }
550
+ function fixStack(target, fn) {
551
+ if (fn === void 0) {
552
+ fn = target.constructor;
553
+ }
554
+ var captureStackTrace = Error.captureStackTrace;
555
+ captureStackTrace && captureStackTrace(target, fn);
556
+ }
557
+ var __extends = function() {
558
+ var _extendStatics = function extendStatics(d, b) {
559
+ _extendStatics = Object.setPrototypeOf || {
560
+ __proto__: []
561
+ } instanceof Array && function(d2, b2) {
562
+ d2.__proto__ = b2;
563
+ } || function(d2, b2) {
564
+ for (var p in b2) {
565
+ if (Object.prototype.hasOwnProperty.call(b2, p))
566
+ d2[p] = b2[p];
2355
567
  }
2356
- }
2357
- error("Bad object");
568
+ };
569
+ return _extendStatics(d, b);
2358
570
  };
2359
- value = function() {
2360
- white();
2361
- switch (ch) {
2362
- case "{":
2363
- return object();
2364
- case "[":
2365
- return array();
2366
- case '"':
2367
- return string();
2368
- case "-":
2369
- return number3();
2370
- default:
2371
- return ch >= "0" && ch <= "9" ? number3() : word();
571
+ return function(d, b) {
572
+ if (typeof b !== "function" && b !== null)
573
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
574
+ _extendStatics(d, b);
575
+ function __() {
576
+ this.constructor = d;
2372
577
  }
578
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2373
579
  };
2374
- return function(source, reviver) {
2375
- var result;
2376
- text = source + "";
2377
- at = 0;
2378
- ch = " ";
2379
- result = value();
2380
- white();
2381
- if (ch) {
2382
- error("Syntax error");
2383
- }
2384
- return typeof reviver === "function" ? function walk(holder, key) {
2385
- var k, v, value2 = holder[key];
2386
- if (value2 && typeof value2 === "object") {
2387
- Object.keys(value2).forEach(function(k2) {
2388
- v = walk(value2, k2);
2389
- if (v !== void 0) {
2390
- value2[k2] = v;
2391
- } else {
2392
- delete value2[k2];
2393
- }
2394
- });
580
+ }();
581
+ var CustomError2 = function(_super) {
582
+ __extends(CustomError3, _super);
583
+ function CustomError3(message, options) {
584
+ var _newTarget = this.constructor;
585
+ var _this = _super.call(this, message, options) || this;
586
+ Object.defineProperty(_this, "name", {
587
+ value: _newTarget.name,
588
+ enumerable: false,
589
+ configurable: true
590
+ });
591
+ fixProto(_this, _newTarget.prototype);
592
+ fixStack(_this);
593
+ return _this;
594
+ }
595
+ return CustomError3;
596
+ }(Error);
597
+ var __spreadArray = function(to, from, pack) {
598
+ if (pack || arguments.length === 2)
599
+ for (var i = 0, l = from.length, ar; i < l; i++) {
600
+ if (ar || !(i in from)) {
601
+ if (!ar)
602
+ ar = Array.prototype.slice.call(from, 0, i);
603
+ ar[i] = from[i];
2395
604
  }
2396
- return reviver.call(holder, key, value2);
2397
- }({ "": result }, "") : result;
2398
- };
2399
- };
2400
- module.exports = json_parse;
2401
- }
2402
- });
2403
-
2404
- // node_modules/json-bigint/index.js
2405
- var require_json_bigint = __commonJS({
2406
- "node_modules/json-bigint/index.js"(exports, module) {
2407
- var json_stringify = require_stringify().stringify;
2408
- var json_parse = require_parse();
2409
- module.exports = function(options) {
2410
- return {
2411
- parse: json_parse(options),
2412
- stringify: json_stringify
2413
- };
605
+ }
606
+ return to.concat(ar || Array.prototype.slice.call(from));
2414
607
  };
2415
- module.exports.parse = json_parse();
2416
- module.exports.stringify = json_stringify;
608
+ function customErrorFactory(fn, parent) {
609
+ if (parent === void 0) {
610
+ parent = Error;
611
+ }
612
+ function CustomError3() {
613
+ var args = [];
614
+ for (var _i = 0; _i < arguments.length; _i++) {
615
+ args[_i] = arguments[_i];
616
+ }
617
+ if (!(this instanceof CustomError3))
618
+ return new (CustomError3.bind.apply(CustomError3, __spreadArray([void 0], args, false)))();
619
+ parent.apply(this, args);
620
+ Object.defineProperty(this, "name", {
621
+ value: fn.name || parent.name,
622
+ enumerable: false,
623
+ configurable: true
624
+ });
625
+ fn.apply(this, args);
626
+ fixStack(this, CustomError3);
627
+ }
628
+ return Object.defineProperties(CustomError3, {
629
+ prototype: {
630
+ value: Object.create(parent.prototype, {
631
+ constructor: {
632
+ value: CustomError3,
633
+ writable: true,
634
+ configurable: true
635
+ }
636
+ })
637
+ }
638
+ });
639
+ }
640
+ exports.CustomError = CustomError2;
641
+ exports.customErrorFactory = customErrorFactory;
2417
642
  }
2418
643
  });
2419
644
 
@@ -2737,11 +962,8 @@ var starknet = (() => {
2737
962
  };
2738
963
  var u64_default = u64;
2739
964
 
2740
- // node_modules/@noble/hashes/esm/cryptoBrowser.js
2741
- var crypto2 = {
2742
- node: void 0,
2743
- web: typeof self === "object" && "crypto" in self ? self.crypto : void 0
2744
- };
965
+ // node_modules/@noble/hashes/esm/crypto.js
966
+ var crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : void 0;
2745
967
 
2746
968
  // node_modules/@noble/hashes/esm/utils.js
2747
969
  var u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
@@ -2800,13 +1022,10 @@ var starknet = (() => {
2800
1022
  return hashC;
2801
1023
  }
2802
1024
  function randomBytes(bytesLength = 32) {
2803
- if (crypto2.web) {
2804
- return crypto2.web.getRandomValues(new Uint8Array(bytesLength));
2805
- } else if (crypto2.node) {
2806
- return new Uint8Array(crypto2.node.randomBytes(bytesLength).buffer);
2807
- } else {
2808
- throw new Error("The environment doesn't have randomBytes function");
1025
+ if (crypto && typeof crypto.getRandomValues === "function") {
1026
+ return crypto.getRandomValues(new Uint8Array(bytesLength));
2809
1027
  }
1028
+ throw new Error("crypto.getRandomValues must be defined");
2810
1029
  }
2811
1030
 
2812
1031
  // node_modules/@noble/hashes/esm/sha3.js
@@ -7401,24 +5620,669 @@ var starknet = (() => {
7401
5620
  // src/utils/json.ts
7402
5621
  var json_exports = {};
7403
5622
  __export(json_exports, {
7404
- default: () => json_default,
7405
- parse: () => parse,
5623
+ parse: () => parse2,
7406
5624
  parseAlwaysAsBig: () => parseAlwaysAsBig,
7407
- stringify: () => stringify,
5625
+ stringify: () => stringify2,
7408
5626
  stringifyAlwaysAsBig: () => stringifyAlwaysAsBig
7409
5627
  });
7410
- var import_json_bigint = __toESM(require_json_bigint());
7411
- var json = (alwaysParseAsBig) => {
7412
- return (0, import_json_bigint.default)({
7413
- alwaysParseAsBig,
7414
- useNativeBigInt: true,
7415
- protoAction: "preserve",
7416
- constructorAction: "preserve"
5628
+
5629
+ // node_modules/lossless-json/lib/esm/utils.js
5630
+ function isInteger(value) {
5631
+ return INTEGER_REGEX.test(value);
5632
+ }
5633
+ var INTEGER_REGEX = /^-?[0-9]+$/;
5634
+ function isNumber(value) {
5635
+ return NUMBER_REGEX.test(value);
5636
+ }
5637
+ var NUMBER_REGEX = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
5638
+ function isSafeNumber(value, config) {
5639
+ var num = parseFloat(value);
5640
+ var str = String(num);
5641
+ var v = extractSignificantDigits(value);
5642
+ var s = extractSignificantDigits(str);
5643
+ if (v === s) {
5644
+ return true;
5645
+ }
5646
+ if ((config === null || config === void 0 ? void 0 : config.approx) === true) {
5647
+ var requiredDigits = 14;
5648
+ if (!isInteger(value) && s.length >= requiredDigits && v.startsWith(s.substring(0, requiredDigits))) {
5649
+ return true;
5650
+ }
5651
+ }
5652
+ return false;
5653
+ }
5654
+ var UnsafeNumberReason;
5655
+ (function(UnsafeNumberReason2) {
5656
+ UnsafeNumberReason2["underflow"] = "underflow";
5657
+ UnsafeNumberReason2["overflow"] = "overflow";
5658
+ UnsafeNumberReason2["truncate_integer"] = "truncate_integer";
5659
+ UnsafeNumberReason2["truncate_float"] = "truncate_float";
5660
+ })(UnsafeNumberReason || (UnsafeNumberReason = {}));
5661
+ function getUnsafeNumberReason(value) {
5662
+ if (isSafeNumber(value, {
5663
+ approx: false
5664
+ })) {
5665
+ return void 0;
5666
+ }
5667
+ if (isInteger(value)) {
5668
+ return UnsafeNumberReason.truncate_integer;
5669
+ }
5670
+ var num = parseFloat(value);
5671
+ if (!isFinite(num)) {
5672
+ return UnsafeNumberReason.overflow;
5673
+ }
5674
+ if (num === 0) {
5675
+ return UnsafeNumberReason.underflow;
5676
+ }
5677
+ return UnsafeNumberReason.truncate_float;
5678
+ }
5679
+ function extractSignificantDigits(value) {
5680
+ return value.replace(EXPONENTIAL_PART_REGEX, "").replace(DOT_REGEX, "").replace(TRAILING_ZEROS_REGEX, "").replace(LEADING_MINUS_AND_ZEROS_REGEX, "");
5681
+ }
5682
+ var EXPONENTIAL_PART_REGEX = /[eE][+-]?\d+$/;
5683
+ var LEADING_MINUS_AND_ZEROS_REGEX = /^-?(0*)?/;
5684
+ var DOT_REGEX = /\./;
5685
+ var TRAILING_ZEROS_REGEX = /0+$/;
5686
+
5687
+ // node_modules/lossless-json/lib/esm/LosslessNumber.js
5688
+ function _typeof(obj) {
5689
+ "@babel/helpers - typeof";
5690
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
5691
+ return typeof obj2;
5692
+ } : function(obj2) {
5693
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
5694
+ }, _typeof(obj);
5695
+ }
5696
+ function _classCallCheck(instance, Constructor) {
5697
+ if (!(instance instanceof Constructor)) {
5698
+ throw new TypeError("Cannot call a class as a function");
5699
+ }
5700
+ }
5701
+ function _defineProperties(target, props) {
5702
+ for (var i = 0; i < props.length; i++) {
5703
+ var descriptor = props[i];
5704
+ descriptor.enumerable = descriptor.enumerable || false;
5705
+ descriptor.configurable = true;
5706
+ if ("value" in descriptor)
5707
+ descriptor.writable = true;
5708
+ Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
5709
+ }
5710
+ }
5711
+ function _createClass(Constructor, protoProps, staticProps) {
5712
+ if (protoProps)
5713
+ _defineProperties(Constructor.prototype, protoProps);
5714
+ if (staticProps)
5715
+ _defineProperties(Constructor, staticProps);
5716
+ Object.defineProperty(Constructor, "prototype", { writable: false });
5717
+ return Constructor;
5718
+ }
5719
+ function _defineProperty(obj, key, value) {
5720
+ key = _toPropertyKey(key);
5721
+ if (key in obj) {
5722
+ Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
5723
+ } else {
5724
+ obj[key] = value;
5725
+ }
5726
+ return obj;
5727
+ }
5728
+ function _toPropertyKey(arg) {
5729
+ var key = _toPrimitive(arg, "string");
5730
+ return _typeof(key) === "symbol" ? key : String(key);
5731
+ }
5732
+ function _toPrimitive(input, hint) {
5733
+ if (_typeof(input) !== "object" || input === null)
5734
+ return input;
5735
+ var prim = input[Symbol.toPrimitive];
5736
+ if (prim !== void 0) {
5737
+ var res = prim.call(input, hint || "default");
5738
+ if (_typeof(res) !== "object")
5739
+ return res;
5740
+ throw new TypeError("@@toPrimitive must return a primitive value.");
5741
+ }
5742
+ return (hint === "string" ? String : Number)(input);
5743
+ }
5744
+ var LosslessNumber = /* @__PURE__ */ function() {
5745
+ function LosslessNumber2(value) {
5746
+ _classCallCheck(this, LosslessNumber2);
5747
+ _defineProperty(this, "isLosslessNumber", true);
5748
+ if (!isNumber(value)) {
5749
+ throw new Error('Invalid number (value: "' + value + '")');
5750
+ }
5751
+ this.value = value;
5752
+ }
5753
+ _createClass(LosslessNumber2, [{
5754
+ key: "valueOf",
5755
+ value: function valueOf() {
5756
+ var unsafeReason = getUnsafeNumberReason(this.value);
5757
+ if (unsafeReason === void 0 || unsafeReason === UnsafeNumberReason.truncate_float) {
5758
+ return parseFloat(this.value);
5759
+ }
5760
+ if (isInteger(this.value)) {
5761
+ return BigInt(this.value);
5762
+ }
5763
+ throw new Error("Cannot safely convert to number: " + "the value '".concat(this.value, "' would ").concat(unsafeReason, " and become ").concat(parseFloat(this.value)));
5764
+ }
5765
+ }, {
5766
+ key: "toString",
5767
+ value: function toString2() {
5768
+ return this.value;
5769
+ }
5770
+ }]);
5771
+ return LosslessNumber2;
5772
+ }();
5773
+ function isLosslessNumber(value) {
5774
+ return value && _typeof(value) === "object" && value.isLosslessNumber === true || false;
5775
+ }
5776
+
5777
+ // node_modules/lossless-json/lib/esm/numberParsers.js
5778
+ function parseLosslessNumber(value) {
5779
+ return new LosslessNumber(value);
5780
+ }
5781
+ function parseNumberAndBigInt(value) {
5782
+ return isInteger(value) ? BigInt(value) : parseFloat(value);
5783
+ }
5784
+
5785
+ // node_modules/lossless-json/lib/esm/revive.js
5786
+ function _typeof2(obj) {
5787
+ "@babel/helpers - typeof";
5788
+ return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
5789
+ return typeof obj2;
5790
+ } : function(obj2) {
5791
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
5792
+ }, _typeof2(obj);
5793
+ }
5794
+ function revive(json, reviver) {
5795
+ return reviveValue({
5796
+ "": json
5797
+ }, "", json, reviver);
5798
+ }
5799
+ function reviveValue(context, key, value, reviver) {
5800
+ if (Array.isArray(value)) {
5801
+ return reviver.call(context, key, reviveArray(value, reviver));
5802
+ } else if (value && _typeof2(value) === "object" && !isLosslessNumber(value)) {
5803
+ return reviver.call(context, key, reviveObject(value, reviver));
5804
+ } else {
5805
+ return reviver.call(context, key, value);
5806
+ }
5807
+ }
5808
+ function reviveObject(object, reviver) {
5809
+ Object.keys(object).forEach(function(key) {
5810
+ var value = reviveValue(object, key, object[key], reviver);
5811
+ if (value !== void 0) {
5812
+ object[key] = value;
5813
+ } else {
5814
+ delete object[key];
5815
+ }
7417
5816
  });
7418
- };
7419
- var { parse, stringify } = json(false);
7420
- var { parse: parseAlwaysAsBig, stringify: stringifyAlwaysAsBig } = json(true);
7421
- var json_default = { parse, stringify };
5817
+ return object;
5818
+ }
5819
+ function reviveArray(array, reviver) {
5820
+ for (var i = 0; i < array.length; i++) {
5821
+ array[i] = reviveValue(array, i + "", array[i], reviver);
5822
+ }
5823
+ return array;
5824
+ }
5825
+
5826
+ // node_modules/lossless-json/lib/esm/parse.js
5827
+ function _typeof3(obj) {
5828
+ "@babel/helpers - typeof";
5829
+ return _typeof3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
5830
+ return typeof obj2;
5831
+ } : function(obj2) {
5832
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
5833
+ }, _typeof3(obj);
5834
+ }
5835
+ function _toConsumableArray(arr) {
5836
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
5837
+ }
5838
+ function _nonIterableSpread() {
5839
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5840
+ }
5841
+ function _unsupportedIterableToArray(o, minLen) {
5842
+ if (!o)
5843
+ return;
5844
+ if (typeof o === "string")
5845
+ return _arrayLikeToArray(o, minLen);
5846
+ var n = Object.prototype.toString.call(o).slice(8, -1);
5847
+ if (n === "Object" && o.constructor)
5848
+ n = o.constructor.name;
5849
+ if (n === "Map" || n === "Set")
5850
+ return Array.from(o);
5851
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
5852
+ return _arrayLikeToArray(o, minLen);
5853
+ }
5854
+ function _iterableToArray(iter) {
5855
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
5856
+ return Array.from(iter);
5857
+ }
5858
+ function _arrayWithoutHoles(arr) {
5859
+ if (Array.isArray(arr))
5860
+ return _arrayLikeToArray(arr);
5861
+ }
5862
+ function _arrayLikeToArray(arr, len) {
5863
+ if (len == null || len > arr.length)
5864
+ len = arr.length;
5865
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
5866
+ arr2[i] = arr[i];
5867
+ }
5868
+ return arr2;
5869
+ }
5870
+ function parse(text, reviver) {
5871
+ var parseNumber = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : parseLosslessNumber;
5872
+ var i = 0;
5873
+ var value = parseValue();
5874
+ expectValue(value);
5875
+ expectEndOfInput();
5876
+ return reviver ? revive(value, reviver) : value;
5877
+ function parseObject() {
5878
+ if (text.charCodeAt(i) === codeOpeningBrace) {
5879
+ i++;
5880
+ skipWhitespace();
5881
+ var object = {};
5882
+ var initial = true;
5883
+ while (i < text.length && text.charCodeAt(i) !== codeClosingBrace) {
5884
+ if (!initial) {
5885
+ eatComma();
5886
+ skipWhitespace();
5887
+ } else {
5888
+ initial = false;
5889
+ }
5890
+ var start = i;
5891
+ var key = parseString();
5892
+ if (key === void 0) {
5893
+ throwObjectKeyExpected();
5894
+ }
5895
+ skipWhitespace();
5896
+ eatColon();
5897
+ var _value = parseValue();
5898
+ if (Object.prototype.hasOwnProperty.call(object, key) && !isDeepEqual(_value, object[key])) {
5899
+ throwDuplicateKey(key, start + 1);
5900
+ }
5901
+ object[key] = _value;
5902
+ }
5903
+ if (text.charCodeAt(i) !== codeClosingBrace) {
5904
+ throwObjectKeyOrEndExpected();
5905
+ }
5906
+ i++;
5907
+ return object;
5908
+ }
5909
+ }
5910
+ function parseArray() {
5911
+ if (text.charCodeAt(i) === codeOpeningBracket) {
5912
+ i++;
5913
+ skipWhitespace();
5914
+ var array = [];
5915
+ var initial = true;
5916
+ while (i < text.length && text.charCodeAt(i) !== codeClosingBracket) {
5917
+ if (!initial) {
5918
+ eatComma();
5919
+ } else {
5920
+ initial = false;
5921
+ }
5922
+ var _value2 = parseValue();
5923
+ expectArrayItem(_value2);
5924
+ array.push(_value2);
5925
+ }
5926
+ if (text.charCodeAt(i) !== codeClosingBracket) {
5927
+ throwArrayItemOrEndExpected();
5928
+ }
5929
+ i++;
5930
+ return array;
5931
+ }
5932
+ }
5933
+ function parseValue() {
5934
+ var _ref, _ref2, _ref3, _ref4, _ref5, _parseString;
5935
+ skipWhitespace();
5936
+ var value2 = (_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_parseString = parseString()) !== null && _parseString !== void 0 ? _parseString : parseNumeric()) !== null && _ref5 !== void 0 ? _ref5 : parseObject()) !== null && _ref4 !== void 0 ? _ref4 : parseArray()) !== null && _ref3 !== void 0 ? _ref3 : parseKeyword("true", true)) !== null && _ref2 !== void 0 ? _ref2 : parseKeyword("false", false)) !== null && _ref !== void 0 ? _ref : parseKeyword("null", null);
5937
+ skipWhitespace();
5938
+ return value2;
5939
+ }
5940
+ function parseKeyword(name, value2) {
5941
+ if (text.slice(i, i + name.length) === name) {
5942
+ i += name.length;
5943
+ return value2;
5944
+ }
5945
+ }
5946
+ function skipWhitespace() {
5947
+ while (isWhitespace(text.charCodeAt(i))) {
5948
+ i++;
5949
+ }
5950
+ }
5951
+ function parseString() {
5952
+ if (text.charCodeAt(i) === codeDoubleQuote) {
5953
+ i++;
5954
+ var result = "";
5955
+ while (i < text.length && text.charCodeAt(i) !== codeDoubleQuote) {
5956
+ if (text.charCodeAt(i) === codeBackslash) {
5957
+ var char = text[i + 1];
5958
+ var escapeChar = escapeCharacters[char];
5959
+ if (escapeChar !== void 0) {
5960
+ result += escapeChar;
5961
+ i++;
5962
+ } else if (char === "u") {
5963
+ if (isHex2(text.charCodeAt(i + 2)) && isHex2(text.charCodeAt(i + 3)) && isHex2(text.charCodeAt(i + 4)) && isHex2(text.charCodeAt(i + 5))) {
5964
+ result += String.fromCharCode(parseInt(text.slice(i + 2, i + 6), 16));
5965
+ i += 5;
5966
+ } else {
5967
+ throwInvalidUnicodeCharacter(i);
5968
+ }
5969
+ } else {
5970
+ throwInvalidEscapeCharacter(i);
5971
+ }
5972
+ } else {
5973
+ if (isValidStringCharacter(text.charCodeAt(i))) {
5974
+ result += text[i];
5975
+ } else {
5976
+ throwInvalidCharacter(text[i]);
5977
+ }
5978
+ }
5979
+ i++;
5980
+ }
5981
+ expectEndOfString();
5982
+ i++;
5983
+ return result;
5984
+ }
5985
+ }
5986
+ function parseNumeric() {
5987
+ var start = i;
5988
+ if (text.charCodeAt(i) === codeMinus) {
5989
+ i++;
5990
+ expectDigit(start);
5991
+ }
5992
+ if (text.charCodeAt(i) === codeZero) {
5993
+ i++;
5994
+ } else if (isNonZeroDigit(text.charCodeAt(i))) {
5995
+ i++;
5996
+ while (isDigit(text.charCodeAt(i))) {
5997
+ i++;
5998
+ }
5999
+ }
6000
+ if (text.charCodeAt(i) === codeDot) {
6001
+ i++;
6002
+ expectDigit(start);
6003
+ while (isDigit(text.charCodeAt(i))) {
6004
+ i++;
6005
+ }
6006
+ }
6007
+ if (text.charCodeAt(i) === codeLowercaseE || text.charCodeAt(i) === codeUppercaseE) {
6008
+ i++;
6009
+ if (text.charCodeAt(i) === codeMinus || text.charCodeAt(i) === codePlus) {
6010
+ i++;
6011
+ }
6012
+ expectDigit(start);
6013
+ while (isDigit(text.charCodeAt(i))) {
6014
+ i++;
6015
+ }
6016
+ }
6017
+ if (i > start) {
6018
+ return parseNumber(text.slice(start, i));
6019
+ }
6020
+ }
6021
+ function eatComma() {
6022
+ if (text.charCodeAt(i) !== codeComma) {
6023
+ throw new SyntaxError("Comma ',' expected after value ".concat(gotAt()));
6024
+ }
6025
+ i++;
6026
+ }
6027
+ function eatColon() {
6028
+ if (text.charCodeAt(i) !== codeColon) {
6029
+ throw new SyntaxError("Colon ':' expected after property name ".concat(gotAt()));
6030
+ }
6031
+ i++;
6032
+ }
6033
+ function expectValue(value2) {
6034
+ if (value2 === void 0) {
6035
+ throw new SyntaxError("JSON value expected ".concat(gotAt()));
6036
+ }
6037
+ }
6038
+ function expectArrayItem(value2) {
6039
+ if (value2 === void 0) {
6040
+ throw new SyntaxError("Array item expected ".concat(gotAt()));
6041
+ }
6042
+ }
6043
+ function expectEndOfInput() {
6044
+ if (i < text.length) {
6045
+ throw new SyntaxError("Expected end of input ".concat(gotAt()));
6046
+ }
6047
+ }
6048
+ function expectDigit(start) {
6049
+ if (!isDigit(text.charCodeAt(i))) {
6050
+ var numSoFar = text.slice(start, i);
6051
+ throw new SyntaxError("Invalid number '".concat(numSoFar, "', expecting a digit ").concat(gotAt()));
6052
+ }
6053
+ }
6054
+ function expectEndOfString() {
6055
+ if (text.charCodeAt(i) !== codeDoubleQuote) {
6056
+ throw new SyntaxError(`End of string '"' expected `.concat(gotAt()));
6057
+ }
6058
+ }
6059
+ function throwObjectKeyExpected() {
6060
+ throw new SyntaxError("Quoted object key expected ".concat(gotAt()));
6061
+ }
6062
+ function throwDuplicateKey(key, pos2) {
6063
+ throw new SyntaxError("Duplicate key '".concat(key, "' encountered at position ").concat(pos2));
6064
+ }
6065
+ function throwObjectKeyOrEndExpected() {
6066
+ throw new SyntaxError("Quoted object key or end of object '}' expected ".concat(gotAt()));
6067
+ }
6068
+ function throwArrayItemOrEndExpected() {
6069
+ throw new SyntaxError("Array item or end of array ']' expected ".concat(gotAt()));
6070
+ }
6071
+ function throwInvalidCharacter(char) {
6072
+ throw new SyntaxError("Invalid character '".concat(char, "' ").concat(pos()));
6073
+ }
6074
+ function throwInvalidEscapeCharacter(start) {
6075
+ var chars = text.slice(start, start + 2);
6076
+ throw new SyntaxError("Invalid escape character '".concat(chars, "' ").concat(pos()));
6077
+ }
6078
+ function throwInvalidUnicodeCharacter(start) {
6079
+ var end = start + 2;
6080
+ while (/\w/.test(text[end])) {
6081
+ end++;
6082
+ }
6083
+ var chars = text.slice(start, end);
6084
+ throw new SyntaxError("Invalid unicode character '".concat(chars, "' ").concat(pos()));
6085
+ }
6086
+ function pos() {
6087
+ return "at position ".concat(i);
6088
+ }
6089
+ function got() {
6090
+ return i < text.length ? "but got '".concat(text[i], "'") : "but reached end of input";
6091
+ }
6092
+ function gotAt() {
6093
+ return got() + " " + pos();
6094
+ }
6095
+ }
6096
+ function isWhitespace(code) {
6097
+ return code === codeSpace || code === codeNewline || code === codeTab || code === codeReturn;
6098
+ }
6099
+ function isHex2(code) {
6100
+ return code >= codeZero && code <= codeNine || code >= codeUppercaseA && code <= codeUppercaseF || code >= codeLowercaseA && code <= codeLowercaseF;
6101
+ }
6102
+ function isDigit(code) {
6103
+ return code >= codeZero && code <= codeNine;
6104
+ }
6105
+ function isNonZeroDigit(code) {
6106
+ return code >= codeOne && code <= codeNine;
6107
+ }
6108
+ function isValidStringCharacter(code) {
6109
+ return code >= 32 && code <= 1114111;
6110
+ }
6111
+ function isDeepEqual(a, b) {
6112
+ if (a === b) {
6113
+ return true;
6114
+ }
6115
+ if (Array.isArray(a) && Array.isArray(b)) {
6116
+ return a.length === b.length && a.every(function(item, index) {
6117
+ return isDeepEqual(item, b[index]);
6118
+ });
6119
+ }
6120
+ if (isObject(a) && isObject(b)) {
6121
+ var keys = _toConsumableArray(new Set([].concat(_toConsumableArray(Object.keys(a)), _toConsumableArray(Object.keys(b)))));
6122
+ return keys.every(function(key) {
6123
+ return isDeepEqual(a[key], b[key]);
6124
+ });
6125
+ }
6126
+ return false;
6127
+ }
6128
+ function isObject(value) {
6129
+ return _typeof3(value) === "object" && value !== null;
6130
+ }
6131
+ var escapeCharacters = {
6132
+ '"': '"',
6133
+ "\\": "\\",
6134
+ "/": "/",
6135
+ b: "\b",
6136
+ f: "\f",
6137
+ n: "\n",
6138
+ r: "\r",
6139
+ t: " "
6140
+ };
6141
+ var codeBackslash = 92;
6142
+ var codeOpeningBrace = 123;
6143
+ var codeClosingBrace = 125;
6144
+ var codeOpeningBracket = 91;
6145
+ var codeClosingBracket = 93;
6146
+ var codeSpace = 32;
6147
+ var codeNewline = 10;
6148
+ var codeTab = 9;
6149
+ var codeReturn = 13;
6150
+ var codeDoubleQuote = 34;
6151
+ var codePlus = 43;
6152
+ var codeMinus = 45;
6153
+ var codeZero = 48;
6154
+ var codeOne = 49;
6155
+ var codeNine = 57;
6156
+ var codeComma = 44;
6157
+ var codeDot = 46;
6158
+ var codeColon = 58;
6159
+ var codeUppercaseA = 65;
6160
+ var codeLowercaseA = 97;
6161
+ var codeUppercaseE = 69;
6162
+ var codeLowercaseE = 101;
6163
+ var codeUppercaseF = 70;
6164
+ var codeLowercaseF = 102;
6165
+
6166
+ // node_modules/lossless-json/lib/esm/stringify.js
6167
+ function _typeof4(obj) {
6168
+ "@babel/helpers - typeof";
6169
+ return _typeof4 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
6170
+ return typeof obj2;
6171
+ } : function(obj2) {
6172
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
6173
+ }, _typeof4(obj);
6174
+ }
6175
+ function stringify(value, replacer, space, numberStringifiers) {
6176
+ var resolvedSpace = resolveSpace(space);
6177
+ var replacedValue = typeof replacer === "function" ? replacer.call({
6178
+ "": value
6179
+ }, "", value) : value;
6180
+ return stringifyValue(replacedValue, "");
6181
+ function stringifyValue(value2, indent) {
6182
+ if (Array.isArray(numberStringifiers)) {
6183
+ var stringifier = numberStringifiers.find(function(item) {
6184
+ return item.test(value2);
6185
+ });
6186
+ if (stringifier) {
6187
+ var str = stringifier.stringify(value2);
6188
+ if (typeof str !== "string" || !isNumber(str)) {
6189
+ throw new Error("Invalid JSON number: output of a number stringifier must be a string containing a JSON number " + "(output: ".concat(str, ")"));
6190
+ }
6191
+ return str;
6192
+ }
6193
+ }
6194
+ if (typeof value2 === "boolean" || typeof value2 === "number" || typeof value2 === "string" || value2 === null || value2 instanceof Date || value2 instanceof Boolean || value2 instanceof Number || value2 instanceof String) {
6195
+ return JSON.stringify(value2);
6196
+ }
6197
+ if (value2 && value2.isLosslessNumber) {
6198
+ return value2.toString();
6199
+ }
6200
+ if (typeof value2 === "bigint") {
6201
+ return value2.toString();
6202
+ }
6203
+ if (Array.isArray(value2)) {
6204
+ return stringifyArray(value2, indent);
6205
+ }
6206
+ if (value2 && _typeof4(value2) === "object") {
6207
+ return stringifyObject(value2, indent);
6208
+ }
6209
+ return void 0;
6210
+ }
6211
+ function stringifyArray(array, indent) {
6212
+ if (array.length === 0) {
6213
+ return "[]";
6214
+ }
6215
+ var childIndent = resolvedSpace ? indent + resolvedSpace : void 0;
6216
+ var str = resolvedSpace ? "[\n" : "[";
6217
+ for (var i = 0; i < array.length; i++) {
6218
+ var item = typeof replacer === "function" ? replacer.call(array, String(i), array[i]) : array[i];
6219
+ if (resolvedSpace) {
6220
+ str += childIndent;
6221
+ }
6222
+ if (typeof item !== "undefined" && typeof item !== "function") {
6223
+ str += stringifyValue(item, childIndent);
6224
+ } else {
6225
+ str += "null";
6226
+ }
6227
+ if (i < array.length - 1) {
6228
+ str += resolvedSpace ? ",\n" : ",";
6229
+ }
6230
+ }
6231
+ str += resolvedSpace ? "\n" + indent + "]" : "]";
6232
+ return str;
6233
+ }
6234
+ function stringifyObject(object, indent) {
6235
+ if (typeof object.toJSON === "function") {
6236
+ return stringify(object.toJSON(), replacer, space, void 0);
6237
+ }
6238
+ var keys = Array.isArray(replacer) ? replacer.map(String) : Object.keys(object);
6239
+ if (keys.length === 0) {
6240
+ return "{}";
6241
+ }
6242
+ var childIndent = resolvedSpace ? indent + resolvedSpace : void 0;
6243
+ var first = true;
6244
+ var str = resolvedSpace ? "{\n" : "{";
6245
+ keys.forEach(function(key) {
6246
+ var value2 = typeof replacer === "function" ? replacer.call(object, key, object[key]) : object[key];
6247
+ if (includeProperty(key, value2)) {
6248
+ if (first) {
6249
+ first = false;
6250
+ } else {
6251
+ str += resolvedSpace ? ",\n" : ",";
6252
+ }
6253
+ var keyStr = JSON.stringify(key);
6254
+ str += resolvedSpace ? childIndent + keyStr + ": " : keyStr + ":";
6255
+ str += stringifyValue(value2, childIndent);
6256
+ }
6257
+ });
6258
+ str += resolvedSpace ? "\n" + indent + "}" : "}";
6259
+ return str;
6260
+ }
6261
+ function includeProperty(key, value2) {
6262
+ return typeof value2 !== "undefined" && typeof value2 !== "function" && _typeof4(value2) !== "symbol";
6263
+ }
6264
+ }
6265
+ function resolveSpace(space) {
6266
+ if (typeof space === "number") {
6267
+ return " ".repeat(space);
6268
+ }
6269
+ if (typeof space === "string" && space !== "") {
6270
+ return space;
6271
+ }
6272
+ return void 0;
6273
+ }
6274
+
6275
+ // src/utils/json.ts
6276
+ var parseIntAsNumberOrBigInt = (x) => {
6277
+ if (!isInteger(x))
6278
+ return parseFloat(x);
6279
+ const v = parseInt(x, 10);
6280
+ return Number.isSafeInteger(v) ? v : BigInt(x);
6281
+ };
6282
+ var parse2 = (x) => parse(String(x), null, parseIntAsNumberOrBigInt);
6283
+ var parseAlwaysAsBig = (x) => parse(String(x), null, parseNumberAndBigInt);
6284
+ var stringify2 = (...p) => stringify(...p);
6285
+ var stringifyAlwaysAsBig = stringify2;
7422
6286
 
7423
6287
  // src/utils/hash.ts
7424
6288
  var transactionVersion = 1n;
@@ -7533,10 +6397,10 @@ var starknet = (() => {
7533
6397
  }
7534
6398
  return value === null ? void 0 : value;
7535
6399
  }
7536
- function formatSpaces(json2) {
6400
+ function formatSpaces(json) {
7537
6401
  let insideQuotes = false;
7538
6402
  let newString = "";
7539
- for (const char of json2) {
6403
+ for (const char of json) {
7540
6404
  if (char === '"' && newString.endsWith("\\") === false) {
7541
6405
  insideQuotes = !insideQuotes;
7542
6406
  }
@@ -7551,11 +6415,11 @@ var starknet = (() => {
7551
6415
  function computeHintedClassHash(compiledContract) {
7552
6416
  const { abi, program } = compiledContract;
7553
6417
  const contractClass = { abi, program };
7554
- const serializedJson = formatSpaces(stringify(contractClass, nullSkipReplacer));
6418
+ const serializedJson = formatSpaces(stringify2(contractClass, nullSkipReplacer));
7555
6419
  return addHexPrefix(esm_exports.keccak(utf8ToArray(serializedJson)).toString(16));
7556
6420
  }
7557
6421
  function computeLegacyContractClassHash(contract) {
7558
- const compiledContract = typeof contract === "string" ? parse(contract) : contract;
6422
+ const compiledContract = typeof contract === "string" ? parse2(contract) : contract;
7559
6423
  const apiVersion = toHex(API_VERSION);
7560
6424
  const externalEntryPointsHash = computeHashOnElements2(
7561
6425
  compiledContract.entry_points_by_type.EXTERNAL.flatMap((e) => [e.selector, e.offset])
@@ -7618,7 +6482,7 @@ var starknet = (() => {
7618
6482
  return poseidonHashMany(base);
7619
6483
  }
7620
6484
  function hashAbi(sierra) {
7621
- const indentString = formatSpaces(stringify(sierra.abi, null));
6485
+ const indentString = formatSpaces(stringify2(sierra.abi, null));
7622
6486
  return BigInt(addHexPrefix(esm_exports.keccak(utf8ToArray(indentString)).toString(16)));
7623
6487
  }
7624
6488
  function computeSierraContractClassHash(sierra) {
@@ -7641,7 +6505,7 @@ var starknet = (() => {
7641
6505
  );
7642
6506
  }
7643
6507
  function computeContractClassHash(contract) {
7644
- const compiledContract = typeof contract === "string" ? parse(contract) : contract;
6508
+ const compiledContract = typeof contract === "string" ? parse2(contract) : contract;
7645
6509
  if ("sierra_program" in compiledContract) {
7646
6510
  return computeSierraContractClassHash(compiledContract);
7647
6511
  }
@@ -7649,9 +6513,8 @@ var starknet = (() => {
7649
6513
  }
7650
6514
 
7651
6515
  // src/utils/contract.ts
7652
- var import_json_bigint2 = __toESM(require_json_bigint());
7653
6516
  function isSierra(contract) {
7654
- const compiledContract = typeof contract === "string" ? (0, import_json_bigint2.parse)(contract) : contract;
6517
+ const compiledContract = typeof contract === "string" ? parse2(contract) : contract;
7655
6518
  return "sierra_program" in compiledContract;
7656
6519
  }
7657
6520
  function extractContractHashes(payload) {
@@ -11761,7 +10624,7 @@ var starknet = (() => {
11761
10624
 
11762
10625
  // src/utils/stark.ts
11763
10626
  function compressProgram(jsonProgram) {
11764
- const stringified = typeof jsonProgram === "string" ? jsonProgram : stringify(jsonProgram);
10627
+ const stringified = typeof jsonProgram === "string" ? jsonProgram : stringify2(jsonProgram);
11765
10628
  const compressedProgram = gzip_1(stringified);
11766
10629
  return btoaUniversal(compressedProgram);
11767
10630
  }
@@ -11831,13 +10694,13 @@ var starknet = (() => {
11831
10694
  function createSierraContractClass(contract) {
11832
10695
  const result = { ...contract };
11833
10696
  delete result.sierra_program_debug_info;
11834
- result.abi = formatSpaces(stringify(contract.abi));
11835
- result.sierra_program = formatSpaces(stringify(contract.sierra_program));
10697
+ result.abi = formatSpaces(stringify2(contract.abi));
10698
+ result.sierra_program = formatSpaces(stringify2(contract.sierra_program));
11836
10699
  result.sierra_program = compressProgram(result.sierra_program);
11837
10700
  return result;
11838
10701
  }
11839
10702
  function parseContract(contract) {
11840
- const parsedContract = typeof contract === "string" ? parse(contract) : contract;
10703
+ const parsedContract = typeof contract === "string" ? parse2(contract) : contract;
11841
10704
  if (!isSierra(contract)) {
11842
10705
  return {
11843
10706
  ...parsedContract,
@@ -11886,61 +10749,9 @@ var starknet = (() => {
11886
10749
  }
11887
10750
  };
11888
10751
 
11889
- // node_modules/ts-custom-error/dist/custom-error.mjs
11890
- function fixProto(target, prototype) {
11891
- var setPrototypeOf = Object.setPrototypeOf;
11892
- setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;
11893
- }
11894
- function fixStack(target, fn) {
11895
- if (fn === void 0) {
11896
- fn = target.constructor;
11897
- }
11898
- var captureStackTrace = Error.captureStackTrace;
11899
- captureStackTrace && captureStackTrace(target, fn);
11900
- }
11901
- var __extends = function() {
11902
- var _extendStatics = function extendStatics(d, b) {
11903
- _extendStatics = Object.setPrototypeOf || {
11904
- __proto__: []
11905
- } instanceof Array && function(d2, b2) {
11906
- d2.__proto__ = b2;
11907
- } || function(d2, b2) {
11908
- for (var p in b2) {
11909
- if (Object.prototype.hasOwnProperty.call(b2, p))
11910
- d2[p] = b2[p];
11911
- }
11912
- };
11913
- return _extendStatics(d, b);
11914
- };
11915
- return function(d, b) {
11916
- if (typeof b !== "function" && b !== null)
11917
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11918
- _extendStatics(d, b);
11919
- function __() {
11920
- this.constructor = d;
11921
- }
11922
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
11923
- };
11924
- }();
11925
- var CustomError = function(_super) {
11926
- __extends(CustomError2, _super);
11927
- function CustomError2(message, options) {
11928
- var _newTarget = this.constructor;
11929
- var _this = _super.call(this, message, options) || this;
11930
- Object.defineProperty(_this, "name", {
11931
- value: _newTarget.name,
11932
- enumerable: false,
11933
- configurable: true
11934
- });
11935
- fixProto(_this, _newTarget.prototype);
11936
- fixStack(_this);
11937
- return _this;
11938
- }
11939
- return CustomError2;
11940
- }(Error);
11941
-
11942
10752
  // src/provider/errors.ts
11943
- var LibraryError = class extends CustomError {
10753
+ var import_custom_error = __toESM(require_custom_error());
10754
+ var LibraryError = class extends import_custom_error.CustomError {
11944
10755
  };
11945
10756
  var GatewayError = class extends LibraryError {
11946
10757
  constructor(message, errorCode) {
@@ -12161,7 +10972,7 @@ var starknet = (() => {
12161
10972
  fetch(method, params) {
12162
10973
  return fetchPonyfill_default(this.nodeUrl, {
12163
10974
  method: "POST",
12164
- body: stringify({ method, jsonrpc: "2.0", params, id: 0 }),
10975
+ body: stringify2({ method, jsonrpc: "2.0", params, id: 0 }),
12165
10976
  headers: this.headers
12166
10977
  });
12167
10978
  }
@@ -12748,20 +11559,20 @@ var starknet = (() => {
12748
11559
  try {
12749
11560
  const response = await fetchPonyfill_default(url, {
12750
11561
  method,
12751
- body: stringify(options == null ? void 0 : options.body),
11562
+ body: stringify2(options == null ? void 0 : options.body),
12752
11563
  headers
12753
11564
  });
12754
11565
  const textResponse = await response.text();
12755
11566
  if (!response.ok) {
12756
11567
  let responseBody;
12757
11568
  try {
12758
- responseBody = parse(textResponse);
11569
+ responseBody = parse2(textResponse);
12759
11570
  } catch {
12760
11571
  throw new HttpError(response.statusText, response.status);
12761
11572
  }
12762
11573
  throw new GatewayError(responseBody.message, responseBody.code);
12763
11574
  }
12764
- const parseChoice = (options == null ? void 0 : options.parseAlwaysAsBigInt) ? parseAlwaysAsBig : parse;
11575
+ const parseChoice = (options == null ? void 0 : options.parseAlwaysAsBigInt) ? parseAlwaysAsBig : parse2;
12765
11576
  return parseChoice(textResponse);
12766
11577
  } catch (error) {
12767
11578
  if (error instanceof Error && !(error instanceof LibraryError))
@@ -13830,7 +12641,10 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
13830
12641
  __export(transaction_exports, {
13831
12642
  fromCallsToExecuteCalldata: () => fromCallsToExecuteCalldata,
13832
12643
  fromCallsToExecuteCalldataWithNonce: () => fromCallsToExecuteCalldataWithNonce,
13833
- transformCallsToMulticallArrays: () => transformCallsToMulticallArrays
12644
+ fromCallsToExecuteCalldata_cairo1: () => fromCallsToExecuteCalldata_cairo1,
12645
+ getExecuteCalldata: () => getExecuteCalldata,
12646
+ transformCallsToMulticallArrays: () => transformCallsToMulticallArrays,
12647
+ transformCallsToMulticallArrays_cairo1: () => transformCallsToMulticallArrays_cairo1
13834
12648
  });
13835
12649
  var transformCallsToMulticallArrays = (calls) => {
13836
12650
  const callArray = [];
@@ -13864,6 +12678,27 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
13864
12678
  var fromCallsToExecuteCalldataWithNonce = (calls, nonce) => {
13865
12679
  return [...fromCallsToExecuteCalldata(calls), toBigInt(nonce).toString()];
13866
12680
  };
12681
+ var transformCallsToMulticallArrays_cairo1 = (calls) => {
12682
+ const callArray = calls.map((call) => ({
12683
+ to: toBigInt(call.contractAddress).toString(10),
12684
+ selector: toBigInt(getSelectorFromName(call.entrypoint)).toString(10),
12685
+ calldata: bigNumberishArrayToDecimalStringArray(call.calldata || [])
12686
+ }));
12687
+ return callArray;
12688
+ };
12689
+ var fromCallsToExecuteCalldata_cairo1 = (calls) => {
12690
+ const callArray = transformCallsToMulticallArrays_cairo1(calls);
12691
+ return [
12692
+ callArray.length.toString(),
12693
+ ...callArray.map(({ to, selector, calldata }) => [to, selector, calldata.length.toString(), ...calldata]).flat()
12694
+ ];
12695
+ };
12696
+ var getExecuteCalldata = (calls, cairoVersion = "0") => {
12697
+ if (cairoVersion === "1") {
12698
+ return fromCallsToExecuteCalldata_cairo1(calls);
12699
+ }
12700
+ return fromCallsToExecuteCalldata(calls);
12701
+ };
13867
12702
 
13868
12703
  // src/utils/typedData/index.ts
13869
12704
  var typedData_exports = {};
@@ -14090,7 +12925,7 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14090
12925
  if (abis && abis.length !== transactions.length) {
14091
12926
  throw new Error("ABI must be provided for each transaction or no transaction");
14092
12927
  }
14093
- const calldata = fromCallsToExecuteCalldata(transactions);
12928
+ const calldata = getExecuteCalldata(transactions, transactionsDetail.cairoVersion);
14094
12929
  const msgHash = calculateTransactionHash(
14095
12930
  transactionsDetail.walletAddress,
14096
12931
  transactionsDetail.version,
@@ -14181,7 +13016,7 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14181
13016
  async estimateFee(calls, estimateFeeDetails) {
14182
13017
  return this.estimateInvokeFee(calls, estimateFeeDetails);
14183
13018
  }
14184
- async estimateInvokeFee(calls, { nonce: providedNonce, blockIdentifier, skipValidate } = {}) {
13019
+ async estimateInvokeFee(calls, { nonce: providedNonce, blockIdentifier, skipValidate, cairoVersion } = {}) {
14185
13020
  const transactions = Array.isArray(calls) ? calls : [calls];
14186
13021
  const nonce = toBigInt(providedNonce ?? await this.getNonce());
14187
13022
  const version = toBigInt(feeTransactionVersion);
@@ -14191,7 +13026,8 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14191
13026
  nonce,
14192
13027
  maxFee: ZERO,
14193
13028
  version,
14194
- chainId
13029
+ chainId,
13030
+ cairoVersion: cairoVersion ?? "0"
14195
13031
  };
14196
13032
  const invocation = await this.buildInvocation(transactions, signerDetails);
14197
13033
  const response = await super.getInvokeEstimateFee(
@@ -14206,13 +13042,20 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14206
13042
  suggestedMaxFee
14207
13043
  };
14208
13044
  }
14209
- async estimateDeclareFee({ contract, classHash: providedClassHash, casm, compiledClassHash }, { blockIdentifier, nonce: providedNonce, skipValidate } = {}) {
13045
+ async estimateDeclareFee({ contract, classHash: providedClassHash, casm, compiledClassHash }, { blockIdentifier, nonce: providedNonce, skipValidate, cairoVersion } = {}) {
14210
13046
  const nonce = toBigInt(providedNonce ?? await this.getNonce());
14211
13047
  const version = !isSierra(contract) ? toBigInt(feeTransactionVersion) : transactionVersion_2;
14212
13048
  const chainId = await this.getChainId();
14213
13049
  const declareContractTransaction = await this.buildDeclarePayload(
14214
13050
  { classHash: providedClassHash, contract, casm, compiledClassHash },
14215
- { nonce, chainId, version, walletAddress: this.address, maxFee: ZERO }
13051
+ {
13052
+ nonce,
13053
+ chainId,
13054
+ version,
13055
+ walletAddress: this.address,
13056
+ maxFee: ZERO,
13057
+ cairoVersion: cairoVersion ?? "0"
13058
+ }
14216
13059
  );
14217
13060
  const response = await super.getDeclareEstimateFee(
14218
13061
  declareContractTransaction,
@@ -14231,13 +13074,20 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14231
13074
  addressSalt = 0,
14232
13075
  constructorCalldata = [],
14233
13076
  contractAddress: providedContractAddress
14234
- }, { blockIdentifier, skipValidate } = {}) {
13077
+ }, { blockIdentifier, skipValidate, cairoVersion } = {}) {
14235
13078
  const version = toBigInt(feeTransactionVersion);
14236
13079
  const nonce = ZERO;
14237
13080
  const chainId = await this.getChainId();
14238
13081
  const payload = await this.buildAccountDeployPayload(
14239
13082
  { classHash, addressSalt, constructorCalldata, contractAddress: providedContractAddress },
14240
- { nonce, chainId, version, walletAddress: this.address, maxFee: ZERO }
13083
+ {
13084
+ nonce,
13085
+ chainId,
13086
+ version,
13087
+ walletAddress: this.address,
13088
+ maxFee: ZERO,
13089
+ cairoVersion: cairoVersion ?? "0"
13090
+ }
14241
13091
  );
14242
13092
  const response = await super.getDeployAccountEstimateFee(
14243
13093
  { ...payload },
@@ -14255,7 +13105,7 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14255
13105
  const calls = this.buildUDCContractPayload(payload);
14256
13106
  return this.estimateInvokeFee(calls, transactionsDetail);
14257
13107
  }
14258
- async estimateFeeBulk(transactions, { nonce: providedNonce, blockIdentifier } = {}) {
13108
+ async estimateFeeBulk(transactions, { nonce: providedNonce, blockIdentifier, cairoVersion } = {}) {
14259
13109
  const nonce = toBigInt(providedNonce ?? await this.getNonce());
14260
13110
  const version = toBigInt(feeTransactionVersion);
14261
13111
  const chainId = await this.getChainId();
@@ -14266,7 +13116,8 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14266
13116
  nonce: toBigInt(Number(nonce) + index),
14267
13117
  maxFee: ZERO,
14268
13118
  version,
14269
- chainId
13119
+ chainId,
13120
+ cairoVersion: cairoVersion ?? "0"
14270
13121
  };
14271
13122
  const txPayload = transaction.payload;
14272
13123
  let res;
@@ -14324,7 +13175,7 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14324
13175
  });
14325
13176
  }
14326
13177
  async buildInvocation(call, signerDetails) {
14327
- const calldata = fromCallsToExecuteCalldata(call);
13178
+ const calldata = getExecuteCalldata(call, signerDetails.cairoVersion);
14328
13179
  const signature = await this.signer.signTransaction(call, signerDetails);
14329
13180
  return {
14330
13181
  contractAddress: this.address,
@@ -14341,15 +13192,17 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14341
13192
  );
14342
13193
  const version = toBigInt(transactionVersion);
14343
13194
  const chainId = await this.getChainId();
13195
+ const cairoVersion = transactionsDetail.cairoVersion ?? "0";
14344
13196
  const signerDetails = {
14345
13197
  walletAddress: this.address,
14346
13198
  nonce,
14347
13199
  maxFee,
14348
13200
  version,
14349
- chainId
13201
+ chainId,
13202
+ cairoVersion
14350
13203
  };
14351
13204
  const signature = await this.signer.signTransaction(transactions, signerDetails, abis);
14352
- const calldata = fromCallsToExecuteCalldata(transactions);
13205
+ const calldata = getExecuteCalldata(transactions, cairoVersion);
14353
13206
  return this.invokeFunction(
14354
13207
  { contractAddress: this.address, calldata, signature },
14355
13208
  {
@@ -14374,7 +13227,8 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14374
13227
  details.chainId = await this.getChainId();
14375
13228
  const declareContractTransaction = await this.buildDeclarePayload(declareContractPayload, {
14376
13229
  ...details,
14377
- walletAddress: this.address
13230
+ walletAddress: this.address,
13231
+ cairoVersion: transactionsDetail.cairoVersion ?? "0"
14378
13232
  });
14379
13233
  return this.declareContract(declareContractTransaction, details);
14380
13234
  }
@@ -14515,7 +13369,7 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14515
13369
  feeEstimate = { suggestedMaxFee: ZERO, overall_fee: ZERO };
14516
13370
  break;
14517
13371
  }
14518
- return feeEstimate.suggestedMaxFee.toString();
13372
+ return feeEstimate.suggestedMaxFee;
14519
13373
  }
14520
13374
  async buildDeclarePayload(payload, { nonce, chainId, version, walletAddress, maxFee }) {
14521
13375
  const { classHash, contract, compiledClassHash } = extractContractHashes(payload);
@@ -14583,7 +13437,7 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14583
13437
  });
14584
13438
  return calls;
14585
13439
  }
14586
- async simulateTransaction(calls, { nonce: providedNonce, blockIdentifier, skipValidate } = {}) {
13440
+ async simulateTransaction(calls, { nonce: providedNonce, blockIdentifier, skipValidate, cairoVersion } = {}) {
14587
13441
  const transactions = Array.isArray(calls) ? calls : [calls];
14588
13442
  const nonce = toBigInt(providedNonce ?? await this.getNonce());
14589
13443
  const version = toBigInt(feeTransactionVersion);
@@ -14593,7 +13447,8 @@ ${res.tx_failure_reason.error_message}` : res.tx_status;
14593
13447
  nonce,
14594
13448
  maxFee: ZERO,
14595
13449
  version,
14596
- chainId
13450
+ chainId,
13451
+ cairoVersion: cairoVersion ?? "0"
14597
13452
  };
14598
13453
  const invocation = await this.buildInvocation(transactions, signerDetails);
14599
13454
  const response = await super.getSimulateTransaction(