@gardenfi/utils 2.1.2-beta.10 → 2.1.2-beta.12

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.
Files changed (67) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +20 -21
  3. package/dist/index114.cjs +1 -1
  4. package/dist/index114.js +2 -2
  5. package/dist/index118.cjs +1 -1
  6. package/dist/index118.js +3 -3
  7. package/dist/index119.cjs +1 -1
  8. package/dist/index119.js +3 -3
  9. package/dist/index185.cjs +1 -1
  10. package/dist/index185.js +2 -2
  11. package/dist/index187.cjs +1 -1
  12. package/dist/index187.js +1 -1
  13. package/dist/index25.cjs +1 -1
  14. package/dist/index25.js +2 -2
  15. package/dist/index260.cjs +1 -1
  16. package/dist/index260.js +98 -140
  17. package/dist/index261.cjs +2 -1
  18. package/dist/index261.js +134 -9
  19. package/dist/index262.cjs +1 -1
  20. package/dist/index262.js +140 -98
  21. package/dist/index263.cjs +1 -2
  22. package/dist/index263.js +9 -134
  23. package/dist/index280.cjs +2 -1
  24. package/dist/index280.js +18 -11
  25. package/dist/index281.cjs +1 -2
  26. package/dist/index281.js +13 -18
  27. package/dist/index282.cjs +1 -1
  28. package/dist/index282.js +11 -13
  29. package/dist/index292.cjs +1 -1
  30. package/dist/index292.js +11 -28
  31. package/dist/index293.cjs +1 -1
  32. package/dist/index293.js +18 -37
  33. package/dist/index294.cjs +1 -1
  34. package/dist/index294.js +28 -11
  35. package/dist/index295.cjs +1 -1
  36. package/dist/index295.js +37 -18
  37. package/dist/index296.cjs +1 -1
  38. package/dist/index296.js +1 -1
  39. package/dist/index297.cjs +1 -1
  40. package/dist/index297.js +7 -4
  41. package/dist/index298.cjs +1 -1
  42. package/dist/index298.js +60 -38
  43. package/dist/index299.cjs +1 -1
  44. package/dist/index299.js +77 -7
  45. package/dist/index300.cjs +1 -1
  46. package/dist/index300.js +4 -63
  47. package/dist/index301.cjs +1 -1
  48. package/dist/index301.js +181 -64
  49. package/dist/index302.cjs +1 -1
  50. package/dist/index302.js +5 -4
  51. package/dist/index303.cjs +1 -1
  52. package/dist/index303.js +40 -194
  53. package/dist/index311.cjs +1 -1
  54. package/dist/index311.js +4 -63
  55. package/dist/index312.cjs +1 -1
  56. package/dist/index312.js +102 -42
  57. package/dist/index313.cjs +1 -1
  58. package/dist/index313.js +63 -4
  59. package/dist/index314.cjs +1 -1
  60. package/dist/index314.js +5 -105
  61. package/dist/index315.cjs +1 -1
  62. package/dist/index315.js +45 -5
  63. package/dist/index5.cjs +1 -1
  64. package/dist/index5.js +19 -47
  65. package/dist/src/lib/digestKey/digestKey.d.ts +4 -2
  66. package/dist/src/lib/result.d.ts +13 -9
  67. package/package.json +1 -1
package/dist/index300.js CHANGED
@@ -1,65 +1,6 @@
1
- import { validate as c } from "./index301.js";
2
- import { BaseError as f } from "./index296.js";
3
- function y(r) {
4
- let i = !0, t = "", e = 0, n = "", o = !1;
5
- for (let s = 0; s < r.length; s++) {
6
- const u = r[s];
7
- if (["(", ")", ","].includes(u) && (i = !0), u === "(" && e++, u === ")" && e--, !!i) {
8
- if (e === 0) {
9
- if (u === " " && ["event", "function", "error", ""].includes(n))
10
- n = "";
11
- else if (n += u, u === ")") {
12
- o = !0;
13
- break;
14
- }
15
- continue;
16
- }
17
- if (u === " ") {
18
- r[s - 1] !== "," && t !== "," && t !== ",(" && (t = "", i = !1);
19
- continue;
20
- }
21
- n += u, t += u;
22
- }
23
- }
24
- if (!o)
25
- throw new f("Unable to normalize signature.");
26
- return n;
27
- }
28
- function l(r, i) {
29
- const t = typeof r, e = i.type;
30
- switch (e) {
31
- case "address":
32
- return c(r, { strict: !1 });
33
- case "bool":
34
- return t === "boolean";
35
- case "function":
36
- return t === "string";
37
- case "string":
38
- return t === "string";
39
- default:
40
- return e === "tuple" && "components" in i ? Object.values(i.components).every((n, o) => l(Object.values(r)[o], n)) : /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(e) ? t === "number" || t === "bigint" : /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(e) ? t === "string" || r instanceof Uint8Array : /[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(e) ? Array.isArray(r) && r.every((n) => l(n, {
41
- ...i,
42
- // Pop off `[]` or `[M]` from end of type
43
- type: e.replace(/(\[[0-9]{0,}\])$/, "")
44
- })) : !1;
45
- }
46
- }
47
- function a(r, i, t) {
48
- for (const e in r) {
49
- const n = r[e], o = i[e];
50
- if (n.type === "tuple" && o.type === "tuple" && "components" in n && "components" in o)
51
- return a(n.components, o.components, t[e]);
52
- const s = [n.type, o.type];
53
- if (s.includes("address") && s.includes("bytes20") ? !0 : s.includes("address") && s.includes("string") ? c(t[e], {
54
- strict: !1
55
- }) : s.includes("address") && s.includes("bytes") ? c(t[e], {
56
- strict: !1
57
- }) : !1)
58
- return s;
59
- }
60
- }
1
+ const e = /^(.*)\[([0-9]*)\]$/, t = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/, n = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;
61
2
  export {
62
- a as getAmbiguousTypes,
63
- l as isArgOfType,
64
- y as normalizeSignature
3
+ e as arrayRegex,
4
+ t as bytesRegex,
5
+ n as integerRegex
65
6
  };
package/dist/index301.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./index311.cjs"),c=require("./index315.cjs"),o=require("./index296.cjs"),m=require("./index299.cjs"),b=/^0x[a-fA-F0-9]{40}$/;function i(e,t={}){const{strict:s=!0}=t;if(!b.test(e))throw new a({address:e,cause:new l});if(s){if(e.toLowerCase()===e)return;if(d(e)!==e)throw new a({address:e,cause:new h})}}function d(e){if(c.checksum.has(e))return c.checksum.get(e);i(e,{strict:!1});const t=e.substring(2).toLowerCase(),s=m.keccak256(f.fromString(t),{as:"Bytes"}),n=t.split("");for(let r=0;r<40;r+=2)s[r>>1]>>4>=8&&n[r]&&(n[r]=n[r].toUpperCase()),(s[r>>1]&15)>=8&&n[r+1]&&(n[r+1]=n[r+1].toUpperCase());const u=`0x${n.join("")}`;return c.checksum.set(e,u),u}function p(e,t={}){const{strict:s=!0}=t??{};try{return i(e,{strict:s}),!0}catch{return!1}}class a extends o.BaseError{constructor({address:t,cause:s}){super(`Address "${t}" is invalid.`,{cause:s}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class l extends o.BaseError{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class h extends o.BaseError{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}exports.InvalidAddressError=a;exports.InvalidChecksumError=h;exports.InvalidInputError=l;exports.assert=i;exports.checksum=d;exports.validate=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index261.cjs"),w=require("./index299.cjs"),N=require("./index296.cjs"),c=require("./index262.cjs"),x=require("./index300.cjs");function P({checksumAddress:e,parameters:r,values:n}){const t=[];for(let o=0;o<r.length;o++)t.push(f({checksumAddress:e,parameter:r[o],value:n[o]}));return t}function f({checksumAddress:e=!1,parameter:r,value:n}){const t=r,o=S(t.type);if(o){const[i,s]=o;return h(n,{checksumAddress:e,length:i,parameter:{...t,type:s}})}if(t.type==="tuple")return A(n,{checksumAddress:e,parameter:t});if(t.type==="address")return y(n,{checksum:e});if(t.type==="bool")return g(n);if(t.type.startsWith("uint")||t.type.startsWith("int")){const i=t.type.startsWith("int"),[,,s="256"]=x.integerRegex.exec(t.type)??[];return b(n,{signed:i,size:Number(s)})}if(t.type.startsWith("bytes"))return l(n,{type:t.type});if(t.type==="string")return z(n);throw new m.InvalidTypeError(t.type)}function u(e){let r=0;for(let i=0;i<e.length;i++){const{dynamic:s,encoded:a}=e[i];s?r+=32:r+=c.size(a)}const n=[],t=[];let o=0;for(let i=0;i<e.length;i++){const{dynamic:s,encoded:a}=e[i];s?(n.push(c.fromNumber(r+o,{size:32})),t.push(a),o+=c.size(a)):n.push(a)}return c.concat(...n,...t)}function y(e,r){const{checksum:n=!1}=r;return w.assert(e,{strict:n}),{dynamic:!1,encoded:c.padLeft(e.toLowerCase())}}function h(e,r){const{checksumAddress:n,length:t,parameter:o}=r,i=t===null;if(!Array.isArray(e))throw new m.InvalidArrayError(e);if(!i&&e.length!==t)throw new m.ArrayLengthMismatchError({expectedLength:t,givenLength:e.length,type:`${o.type}[${t}]`});let s=!1;const a=[];for(let d=0;d<e.length;d++){const p=f({checksumAddress:n,parameter:o,value:e[d]});p.dynamic&&(s=!0),a.push(p)}if(i||s){const d=u(a);if(i){const p=c.fromNumber(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?c.concat(p,d):p}}if(s)return{dynamic:!0,encoded:d}}return{dynamic:!1,encoded:c.concat(...a.map(({encoded:d})=>d))}}function l(e,{type:r}){const[,n]=r.split("bytes"),t=c.size(e);if(!n){let o=e;return t%32!==0&&(o=c.padRight(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:c.concat(c.padLeft(c.fromNumber(t,{size:32})),o)}}if(t!==Number.parseInt(n))throw new m.BytesSizeMismatchError({expectedSize:Number.parseInt(n),value:e});return{dynamic:!1,encoded:c.padRight(e)}}function g(e){if(typeof e!="boolean")throw new N.BaseError(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:c.padLeft(c.fromBoolean(e))}}function b(e,{signed:r,size:n}){if(typeof n=="number"){const t=2n**(BigInt(n)-(r?1n:0n))-1n,o=r?-t-1n:0n;if(e>t||e<o)throw new c.IntegerOutOfRangeError({max:t.toString(),min:o.toString(),signed:r,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:c.fromNumber(e,{size:32,signed:r})}}function z(e){const r=c.fromString(e),n=Math.ceil(c.size(r)/32),t=[];for(let o=0;o<n;o++)t.push(c.padRight(c.slice(r,o*32,(o+1)*32)));return{dynamic:!0,encoded:c.concat(c.padRight(c.fromNumber(c.size(r),{size:32})),...t)}}function A(e,r){const{checksumAddress:n,parameter:t}=r;let o=!1;const i=[];for(let s=0;s<t.components.length;s++){const a=t.components[s],d=Array.isArray(e)?s:a.name,p=f({checksumAddress:n,parameter:a,value:e[d]});i.push(p),p.dynamic&&(o=!0)}return{dynamic:o,encoded:o?u(i):c.concat(...i.map(({encoded:s})=>s))}}function S(e){const r=e.match(/^(.*)\[(\d+)?\]$/);return r?[r[2]?Number(r[2]):null,r[1]]:void 0}exports.encode=u;exports.encodeAddress=y;exports.encodeArray=h;exports.encodeBoolean=g;exports.encodeBytes=l;exports.encodeNumber=b;exports.encodeString=z;exports.encodeTuple=A;exports.getArrayComponents=S;exports.prepareParameter=f;exports.prepareParameters=P;
package/dist/index301.js CHANGED
@@ -1,80 +1,197 @@
1
- import { fromString as d } from "./index311.js";
2
- import { checksum as o } from "./index315.js";
3
- import { BaseError as c } from "./index296.js";
4
- import { keccak256 as f } from "./index299.js";
5
- const l = /^0x[a-fA-F0-9]{40}$/;
6
- function u(r, t = {}) {
7
- const { strict: s = !0 } = t;
8
- if (!l.test(r))
9
- throw new i({
10
- address: r,
11
- cause: new h()
1
+ import { InvalidTypeError as g, InvalidArrayError as b, ArrayLengthMismatchError as w, BytesSizeMismatchError as z } from "./index261.js";
2
+ import { assert as x } from "./index299.js";
3
+ import { BaseError as S } from "./index296.js";
4
+ import { size as d, fromNumber as f, concat as p, padLeft as h, fromBoolean as A, IntegerOutOfRangeError as E, padRight as y, fromString as I, slice as B } from "./index262.js";
5
+ import { integerRegex as L } from "./index300.js";
6
+ function q({ checksumAddress: e, parameters: n, values: r }) {
7
+ const t = [];
8
+ for (let o = 0; o < n.length; o++)
9
+ t.push(u({
10
+ checksumAddress: e,
11
+ parameter: n[o],
12
+ value: r[o]
13
+ }));
14
+ return t;
15
+ }
16
+ function u({ checksumAddress: e = !1, parameter: n, value: r }) {
17
+ const t = n, o = k(t.type);
18
+ if (o) {
19
+ const [i, c] = o;
20
+ return P(r, {
21
+ checksumAddress: e,
22
+ length: i,
23
+ parameter: {
24
+ ...t,
25
+ type: c
26
+ }
12
27
  });
13
- if (s) {
14
- if (r.toLowerCase() === r)
15
- return;
16
- if (m(r) !== r)
17
- throw new i({
18
- address: r,
19
- cause: new p()
20
- });
21
28
  }
29
+ if (t.type === "tuple")
30
+ return R(r, {
31
+ checksumAddress: e,
32
+ parameter: t
33
+ });
34
+ if (t.type === "address")
35
+ return N(r, {
36
+ checksum: e
37
+ });
38
+ if (t.type === "bool")
39
+ return C(r);
40
+ if (t.type.startsWith("uint") || t.type.startsWith("int")) {
41
+ const i = t.type.startsWith("int"), [, , c = "256"] = L.exec(t.type) ?? [];
42
+ return M(r, {
43
+ signed: i,
44
+ size: Number(c)
45
+ });
46
+ }
47
+ if (t.type.startsWith("bytes"))
48
+ return $(r, { type: t.type });
49
+ if (t.type === "string")
50
+ return W(r);
51
+ throw new g(t.type);
22
52
  }
23
- function m(r) {
24
- if (o.has(r))
25
- return o.get(r);
26
- u(r, { strict: !1 });
27
- const t = r.substring(2).toLowerCase(), s = f(d(t), { as: "Bytes" }), n = t.split("");
28
- for (let e = 0; e < 40; e += 2)
29
- s[e >> 1] >> 4 >= 8 && n[e] && (n[e] = n[e].toUpperCase()), (s[e >> 1] & 15) >= 8 && n[e + 1] && (n[e + 1] = n[e + 1].toUpperCase());
30
- const a = `0x${n.join("")}`;
31
- return o.set(r, a), a;
32
- }
33
- function k(r, t = {}) {
34
- const { strict: s = !0 } = t ?? {};
35
- try {
36
- return u(r, { strict: s }), !0;
37
- } catch {
38
- return !1;
53
+ function l(e) {
54
+ let n = 0;
55
+ for (let i = 0; i < e.length; i++) {
56
+ const { dynamic: c, encoded: s } = e[i];
57
+ c ? n += 32 : n += d(s);
39
58
  }
59
+ const r = [], t = [];
60
+ let o = 0;
61
+ for (let i = 0; i < e.length; i++) {
62
+ const { dynamic: c, encoded: s } = e[i];
63
+ c ? (r.push(f(n + o, { size: 32 })), t.push(s), o += d(s)) : r.push(s);
64
+ }
65
+ return p(...r, ...t);
66
+ }
67
+ function N(e, n) {
68
+ const { checksum: r = !1 } = n;
69
+ return x(e, { strict: r }), {
70
+ dynamic: !1,
71
+ encoded: h(e.toLowerCase())
72
+ };
40
73
  }
41
- class i extends c {
42
- constructor({ address: t, cause: s }) {
43
- super(`Address "${t}" is invalid.`, {
44
- cause: s
45
- }), Object.defineProperty(this, "name", {
46
- enumerable: !0,
47
- configurable: !0,
48
- writable: !0,
49
- value: "Address.InvalidAddressError"
74
+ function P(e, n) {
75
+ const { checksumAddress: r, length: t, parameter: o } = n, i = t === null;
76
+ if (!Array.isArray(e))
77
+ throw new b(e);
78
+ if (!i && e.length !== t)
79
+ throw new w({
80
+ expectedLength: t,
81
+ givenLength: e.length,
82
+ type: `${o.type}[${t}]`
50
83
  });
84
+ let c = !1;
85
+ const s = [];
86
+ for (let a = 0; a < e.length; a++) {
87
+ const m = u({
88
+ checksumAddress: r,
89
+ parameter: o,
90
+ value: e[a]
91
+ });
92
+ m.dynamic && (c = !0), s.push(m);
93
+ }
94
+ if (i || c) {
95
+ const a = l(s);
96
+ if (i) {
97
+ const m = f(s.length, { size: 32 });
98
+ return {
99
+ dynamic: !0,
100
+ encoded: s.length > 0 ? p(m, a) : m
101
+ };
102
+ }
103
+ if (c)
104
+ return { dynamic: !0, encoded: a };
51
105
  }
106
+ return {
107
+ dynamic: !1,
108
+ encoded: p(...s.map(({ encoded: a }) => a))
109
+ };
52
110
  }
53
- class h extends c {
54
- constructor() {
55
- super("Address is not a 20 byte (40 hexadecimal character) value."), Object.defineProperty(this, "name", {
56
- enumerable: !0,
57
- configurable: !0,
58
- writable: !0,
59
- value: "Address.InvalidInputError"
111
+ function $(e, { type: n }) {
112
+ const [, r] = n.split("bytes"), t = d(e);
113
+ if (!r) {
114
+ let o = e;
115
+ return t % 32 !== 0 && (o = y(o, Math.ceil((e.length - 2) / 2 / 32) * 32)), {
116
+ dynamic: !0,
117
+ encoded: p(h(f(t, { size: 32 })), o)
118
+ };
119
+ }
120
+ if (t !== Number.parseInt(r))
121
+ throw new z({
122
+ expectedSize: Number.parseInt(r),
123
+ value: e
60
124
  });
125
+ return { dynamic: !1, encoded: y(e) };
126
+ }
127
+ function C(e) {
128
+ if (typeof e != "boolean")
129
+ throw new S(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);
130
+ return { dynamic: !1, encoded: h(A(e)) };
131
+ }
132
+ function M(e, { signed: n, size: r }) {
133
+ if (typeof r == "number") {
134
+ const t = 2n ** (BigInt(r) - (n ? 1n : 0n)) - 1n, o = n ? -t - 1n : 0n;
135
+ if (e > t || e < o)
136
+ throw new E({
137
+ max: t.toString(),
138
+ min: o.toString(),
139
+ signed: n,
140
+ size: r / 8,
141
+ value: e.toString()
142
+ });
61
143
  }
144
+ return {
145
+ dynamic: !1,
146
+ encoded: f(e, {
147
+ size: 32,
148
+ signed: n
149
+ })
150
+ };
62
151
  }
63
- class p extends c {
64
- constructor() {
65
- super("Address does not match its checksum counterpart."), Object.defineProperty(this, "name", {
66
- enumerable: !0,
67
- configurable: !0,
68
- writable: !0,
69
- value: "Address.InvalidChecksumError"
152
+ function W(e) {
153
+ const n = I(e), r = Math.ceil(d(n) / 32), t = [];
154
+ for (let o = 0; o < r; o++)
155
+ t.push(y(B(n, o * 32, (o + 1) * 32)));
156
+ return {
157
+ dynamic: !0,
158
+ encoded: p(y(f(d(n), { size: 32 })), ...t)
159
+ };
160
+ }
161
+ function R(e, n) {
162
+ const { checksumAddress: r, parameter: t } = n;
163
+ let o = !1;
164
+ const i = [];
165
+ for (let c = 0; c < t.components.length; c++) {
166
+ const s = t.components[c], a = Array.isArray(e) ? c : s.name, m = u({
167
+ checksumAddress: r,
168
+ parameter: s,
169
+ value: e[a]
70
170
  });
171
+ i.push(m), m.dynamic && (o = !0);
71
172
  }
173
+ return {
174
+ dynamic: o,
175
+ encoded: o ? l(i) : p(...i.map(({ encoded: c }) => c))
176
+ };
177
+ }
178
+ function k(e) {
179
+ const n = e.match(/^(.*)\[(\d+)?\]$/);
180
+ return n ? (
181
+ // Return `null` if the array is dynamic.
182
+ [n[2] ? Number(n[2]) : null, n[1]]
183
+ ) : void 0;
72
184
  }
73
185
  export {
74
- i as InvalidAddressError,
75
- p as InvalidChecksumError,
76
- h as InvalidInputError,
77
- u as assert,
78
- m as checksum,
79
- k as validate
186
+ l as encode,
187
+ N as encodeAddress,
188
+ P as encodeArray,
189
+ C as encodeBoolean,
190
+ $ as encodeBytes,
191
+ M as encodeNumber,
192
+ W as encodeString,
193
+ R as encodeTuple,
194
+ k as getArrayComponents,
195
+ u as prepareParameter,
196
+ q as prepareParameters
80
197
  };
package/dist/index302.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=/^(.*)\[([0-9]*)\]$/,t=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,g=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;exports.arrayRegex=e;exports.bytesRegex=t;exports.integerRegex=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n="#__bigint";function e(i,f,r){return JSON.stringify(i,(g,t)=>typeof t=="bigint"?t.toString()+n:t,r)}exports.stringify=e;
package/dist/index302.js CHANGED
@@ -1,6 +1,7 @@
1
- const e = /^(.*)\[([0-9]*)\]$/, t = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/, n = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;
1
+ const r = "#__bigint";
2
+ function g(i, f, n) {
3
+ return JSON.stringify(i, (e, t) => typeof t == "bigint" ? t.toString() + r : t, n);
4
+ }
2
5
  export {
3
- e as arrayRegex,
4
- t as bytesRegex,
5
- n as integerRegex
6
+ g as stringify
6
7
  };
package/dist/index303.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index263.cjs"),w=require("./index301.cjs"),N=require("./index296.cjs"),c=require("./index260.cjs"),x=require("./index302.cjs");function P({checksumAddress:e,parameters:r,values:n}){const t=[];for(let o=0;o<r.length;o++)t.push(f({checksumAddress:e,parameter:r[o],value:n[o]}));return t}function f({checksumAddress:e=!1,parameter:r,value:n}){const t=r,o=S(t.type);if(o){const[i,s]=o;return h(n,{checksumAddress:e,length:i,parameter:{...t,type:s}})}if(t.type==="tuple")return A(n,{checksumAddress:e,parameter:t});if(t.type==="address")return y(n,{checksum:e});if(t.type==="bool")return g(n);if(t.type.startsWith("uint")||t.type.startsWith("int")){const i=t.type.startsWith("int"),[,,s="256"]=x.integerRegex.exec(t.type)??[];return b(n,{signed:i,size:Number(s)})}if(t.type.startsWith("bytes"))return l(n,{type:t.type});if(t.type==="string")return z(n);throw new m.InvalidTypeError(t.type)}function u(e){let r=0;for(let i=0;i<e.length;i++){const{dynamic:s,encoded:a}=e[i];s?r+=32:r+=c.size(a)}const n=[],t=[];let o=0;for(let i=0;i<e.length;i++){const{dynamic:s,encoded:a}=e[i];s?(n.push(c.fromNumber(r+o,{size:32})),t.push(a),o+=c.size(a)):n.push(a)}return c.concat(...n,...t)}function y(e,r){const{checksum:n=!1}=r;return w.assert(e,{strict:n}),{dynamic:!1,encoded:c.padLeft(e.toLowerCase())}}function h(e,r){const{checksumAddress:n,length:t,parameter:o}=r,i=t===null;if(!Array.isArray(e))throw new m.InvalidArrayError(e);if(!i&&e.length!==t)throw new m.ArrayLengthMismatchError({expectedLength:t,givenLength:e.length,type:`${o.type}[${t}]`});let s=!1;const a=[];for(let d=0;d<e.length;d++){const p=f({checksumAddress:n,parameter:o,value:e[d]});p.dynamic&&(s=!0),a.push(p)}if(i||s){const d=u(a);if(i){const p=c.fromNumber(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?c.concat(p,d):p}}if(s)return{dynamic:!0,encoded:d}}return{dynamic:!1,encoded:c.concat(...a.map(({encoded:d})=>d))}}function l(e,{type:r}){const[,n]=r.split("bytes"),t=c.size(e);if(!n){let o=e;return t%32!==0&&(o=c.padRight(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:c.concat(c.padLeft(c.fromNumber(t,{size:32})),o)}}if(t!==Number.parseInt(n))throw new m.BytesSizeMismatchError({expectedSize:Number.parseInt(n),value:e});return{dynamic:!1,encoded:c.padRight(e)}}function g(e){if(typeof e!="boolean")throw new N.BaseError(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:c.padLeft(c.fromBoolean(e))}}function b(e,{signed:r,size:n}){if(typeof n=="number"){const t=2n**(BigInt(n)-(r?1n:0n))-1n,o=r?-t-1n:0n;if(e>t||e<o)throw new c.IntegerOutOfRangeError({max:t.toString(),min:o.toString(),signed:r,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:c.fromNumber(e,{size:32,signed:r})}}function z(e){const r=c.fromString(e),n=Math.ceil(c.size(r)/32),t=[];for(let o=0;o<n;o++)t.push(c.padRight(c.slice(r,o*32,(o+1)*32)));return{dynamic:!0,encoded:c.concat(c.padRight(c.fromNumber(c.size(r),{size:32})),...t)}}function A(e,r){const{checksumAddress:n,parameter:t}=r;let o=!1;const i=[];for(let s=0;s<t.components.length;s++){const a=t.components[s],d=Array.isArray(e)?s:a.name,p=f({checksumAddress:n,parameter:a,value:e[d]});i.push(p),p.dynamic&&(o=!0)}return{dynamic:o,encoded:o?u(i):c.concat(...i.map(({encoded:s})=>s))}}function S(e){const r=e.match(/^(.*)\[(\d+)?\]$/);return r?[r[2]?Number(r[2]):null,r[1]]:void 0}exports.encode=u;exports.encodeAddress=y;exports.encodeArray=h;exports.encodeBoolean=g;exports.encodeBytes=l;exports.encodeNumber=b;exports.encodeString=z;exports.encodeTuple=A;exports.getArrayComponents=S;exports.prepareParameter=f;exports.prepareParameters=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index262.cjs");function n(t,e){if(i.size(t)>e)throw new i.SizeOverflowError({givenSize:i.size(t),maxSize:e})}function o(t,e){if(typeof e=="number"&&e>0&&e>i.size(t)-1)throw new i.SliceOffsetOutOfBoundsError({offset:e,position:"start",size:i.size(t)})}function z(t,e,r){if(typeof e=="number"&&typeof r=="number"&&i.size(t)!==r-e)throw new i.SliceOffsetOutOfBoundsError({offset:r,position:"end",size:i.size(t)})}function a(t,e={}){const{dir:r,size:s=32}=e;if(s===0)return t;const f=t.replace("0x","");if(f.length>s*2)throw new i.SizeExceedsPaddingSizeError({size:Math.ceil(f.length/2),targetSize:s,type:"Hex"});return`0x${f[r==="right"?"padEnd":"padStart"](s*2,"0")}`}exports.assertEndOffset=z;exports.assertSize=n;exports.assertStartOffset=o;exports.pad=a;
package/dist/index303.js CHANGED
@@ -1,197 +1,43 @@
1
- import { InvalidTypeError as g, InvalidArrayError as b, ArrayLengthMismatchError as w, BytesSizeMismatchError as z } from "./index263.js";
2
- import { assert as x } from "./index301.js";
3
- import { BaseError as S } from "./index296.js";
4
- import { size as d, fromNumber as f, concat as p, padLeft as h, fromBoolean as A, IntegerOutOfRangeError as E, padRight as y, fromString as I, slice as B } from "./index260.js";
5
- import { integerRegex as L } from "./index302.js";
6
- function q({ checksumAddress: e, parameters: n, values: r }) {
7
- const t = [];
8
- for (let o = 0; o < n.length; o++)
9
- t.push(u({
10
- checksumAddress: e,
11
- parameter: n[o],
12
- value: r[o]
13
- }));
14
- return t;
15
- }
16
- function u({ checksumAddress: e = !1, parameter: n, value: r }) {
17
- const t = n, o = k(t.type);
18
- if (o) {
19
- const [i, c] = o;
20
- return P(r, {
21
- checksumAddress: e,
22
- length: i,
23
- parameter: {
24
- ...t,
25
- type: c
26
- }
27
- });
28
- }
29
- if (t.type === "tuple")
30
- return R(r, {
31
- checksumAddress: e,
32
- parameter: t
33
- });
34
- if (t.type === "address")
35
- return N(r, {
36
- checksum: e
37
- });
38
- if (t.type === "bool")
39
- return C(r);
40
- if (t.type.startsWith("uint") || t.type.startsWith("int")) {
41
- const i = t.type.startsWith("int"), [, , c = "256"] = L.exec(t.type) ?? [];
42
- return M(r, {
43
- signed: i,
44
- size: Number(c)
45
- });
46
- }
47
- if (t.type.startsWith("bytes"))
48
- return $(r, { type: t.type });
49
- if (t.type === "string")
50
- return W(r);
51
- throw new g(t.type);
52
- }
53
- function l(e) {
54
- let n = 0;
55
- for (let i = 0; i < e.length; i++) {
56
- const { dynamic: c, encoded: s } = e[i];
57
- c ? n += 32 : n += d(s);
58
- }
59
- const r = [], t = [];
60
- let o = 0;
61
- for (let i = 0; i < e.length; i++) {
62
- const { dynamic: c, encoded: s } = e[i];
63
- c ? (r.push(f(n + o, { size: 32 })), t.push(s), o += d(s)) : r.push(s);
64
- }
65
- return p(...r, ...t);
66
- }
67
- function N(e, n) {
68
- const { checksum: r = !1 } = n;
69
- return x(e, { strict: r }), {
70
- dynamic: !1,
71
- encoded: h(e.toLowerCase())
72
- };
73
- }
74
- function P(e, n) {
75
- const { checksumAddress: r, length: t, parameter: o } = n, i = t === null;
76
- if (!Array.isArray(e))
77
- throw new b(e);
78
- if (!i && e.length !== t)
79
- throw new w({
80
- expectedLength: t,
81
- givenLength: e.length,
82
- type: `${o.type}[${t}]`
83
- });
84
- let c = !1;
85
- const s = [];
86
- for (let a = 0; a < e.length; a++) {
87
- const m = u({
88
- checksumAddress: r,
89
- parameter: o,
90
- value: e[a]
91
- });
92
- m.dynamic && (c = !0), s.push(m);
93
- }
94
- if (i || c) {
95
- const a = l(s);
96
- if (i) {
97
- const m = f(s.length, { size: 32 });
98
- return {
99
- dynamic: !0,
100
- encoded: s.length > 0 ? p(m, a) : m
101
- };
102
- }
103
- if (c)
104
- return { dynamic: !0, encoded: a };
105
- }
106
- return {
107
- dynamic: !1,
108
- encoded: p(...s.map(({ encoded: a }) => a))
109
- };
110
- }
111
- function $(e, { type: n }) {
112
- const [, r] = n.split("bytes"), t = d(e);
113
- if (!r) {
114
- let o = e;
115
- return t % 32 !== 0 && (o = y(o, Math.ceil((e.length - 2) / 2 / 32) * 32)), {
116
- dynamic: !0,
117
- encoded: p(h(f(t, { size: 32 })), o)
118
- };
119
- }
120
- if (t !== Number.parseInt(r))
121
- throw new z({
122
- expectedSize: Number.parseInt(r),
123
- value: e
124
- });
125
- return { dynamic: !1, encoded: y(e) };
126
- }
127
- function C(e) {
128
- if (typeof e != "boolean")
129
- throw new S(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);
130
- return { dynamic: !1, encoded: h(A(e)) };
131
- }
132
- function M(e, { signed: n, size: r }) {
133
- if (typeof r == "number") {
134
- const t = 2n ** (BigInt(r) - (n ? 1n : 0n)) - 1n, o = n ? -t - 1n : 0n;
135
- if (e > t || e < o)
136
- throw new E({
137
- max: t.toString(),
138
- min: o.toString(),
139
- signed: n,
140
- size: r / 8,
141
- value: e.toString()
142
- });
143
- }
144
- return {
145
- dynamic: !1,
146
- encoded: f(e, {
147
- size: 32,
148
- signed: n
149
- })
150
- };
151
- }
152
- function W(e) {
153
- const n = I(e), r = Math.ceil(d(n) / 32), t = [];
154
- for (let o = 0; o < r; o++)
155
- t.push(y(B(n, o * 32, (o + 1) * 32)));
156
- return {
157
- dynamic: !0,
158
- encoded: p(y(f(d(n), { size: 32 })), ...t)
159
- };
160
- }
161
- function R(e, n) {
162
- const { checksumAddress: r, parameter: t } = n;
163
- let o = !1;
164
- const i = [];
165
- for (let c = 0; c < t.components.length; c++) {
166
- const s = t.components[c], a = Array.isArray(e) ? c : s.name, m = u({
167
- checksumAddress: r,
168
- parameter: s,
169
- value: e[a]
170
- });
171
- i.push(m), m.dynamic && (o = !0);
172
- }
173
- return {
174
- dynamic: o,
175
- encoded: o ? l(i) : p(...i.map(({ encoded: c }) => c))
176
- };
177
- }
178
- function k(e) {
179
- const n = e.match(/^(.*)\[(\d+)?\]$/);
180
- return n ? (
181
- // Return `null` if the array is dynamic.
182
- [n[2] ? Number(n[2]) : null, n[1]]
183
- ) : void 0;
1
+ import { SizeExceedsPaddingSizeError as s, size as i, SliceOffsetOutOfBoundsError as f, SizeOverflowError as p } from "./index262.js";
2
+ function c(t, e) {
3
+ if (i(t) > e)
4
+ throw new p({
5
+ givenSize: i(t),
6
+ maxSize: e
7
+ });
8
+ }
9
+ function S(t, e) {
10
+ if (typeof e == "number" && e > 0 && e > i(t) - 1)
11
+ throw new f({
12
+ offset: e,
13
+ position: "start",
14
+ size: i(t)
15
+ });
16
+ }
17
+ function d(t, e, r) {
18
+ if (typeof e == "number" && typeof r == "number" && i(t) !== r - e)
19
+ throw new f({
20
+ offset: r,
21
+ position: "end",
22
+ size: i(t)
23
+ });
24
+ }
25
+ function u(t, e = {}) {
26
+ const { dir: r, size: n = 32 } = e;
27
+ if (n === 0)
28
+ return t;
29
+ const o = t.replace("0x", "");
30
+ if (o.length > n * 2)
31
+ throw new s({
32
+ size: Math.ceil(o.length / 2),
33
+ targetSize: n,
34
+ type: "Hex"
35
+ });
36
+ return `0x${o[r === "right" ? "padEnd" : "padStart"](n * 2, "0")}`;
184
37
  }
185
38
  export {
186
- l as encode,
187
- N as encodeAddress,
188
- P as encodeArray,
189
- C as encodeBoolean,
190
- $ as encodeBytes,
191
- M as encodeNumber,
192
- W as encodeString,
193
- R as encodeTuple,
194
- k as getArrayComponents,
195
- u as prepareParameter,
196
- q as prepareParameters
39
+ d as assertEndOffset,
40
+ c as assertSize,
41
+ S as assertStartOffset,
42
+ u as pad
197
43
  };
package/dist/index311.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index296.cjs"),y=require("./index260.cjs"),s=require("./index312.cjs"),z=require("./index298.cjs"),S=new TextEncoder;function x(e){return e instanceof Uint8Array?e:typeof e=="string"?h(e):g(e)}function g(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function h(e,t={}){const{size:r}=t;let n=e;r&&(z.assertSize(e,r),n=y.padRight(e,r));let i=n.slice(2);i.length%2&&(i=`0${i}`);const d=i.length/2,f=new Uint8Array(d);for(let c=0,o=0;c<d;c++){const u=s.charCodeToBase16(i.charCodeAt(o++)),b=s.charCodeToBase16(i.charCodeAt(o++));if(u===void 0||b===void 0)throw new a.BaseError(`Invalid byte sequence ("${i[o-2]}${i[o-1]}" in "${i}").`);f[c]=u*16+b}return f}function m(e,t={}){const{size:r}=t,n=S.encode(e);return typeof r=="number"?(s.assertSize(n,r),l(n,r)):n}function l(e,t){return s.pad(e,{dir:"right",size:t})}function E(e){return e.length}class p extends a.BaseError{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class $ extends a.BaseError{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}exports.SizeExceedsPaddingSizeError=$;exports.SizeOverflowError=p;exports.from=x;exports.fromArray=g;exports.fromHex=h;exports.fromString=m;exports.padRight=l;exports.size=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index316.cjs");function r(){return e.version}exports.getVersion=r;