@gardenfi/swap 0.0.2-beta.3 → 0.0.2-beta.5

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 (82) hide show
  1. package/dist/index106.cjs +1 -1
  2. package/dist/index106.js +1 -1
  3. package/dist/index107.cjs +1 -1
  4. package/dist/index107.js +1 -1
  5. package/dist/index119.cjs +1 -1
  6. package/dist/index119.js +1 -1
  7. package/dist/index12.cjs +1 -1
  8. package/dist/index12.js +12 -12
  9. package/dist/index120.cjs +1 -1
  10. package/dist/index120.js +1 -1
  11. package/dist/index121.cjs +1 -1
  12. package/dist/index121.js +1 -1
  13. package/dist/index122.cjs +1 -1
  14. package/dist/index122.js +1 -1
  15. package/dist/index154.cjs +1 -1
  16. package/dist/index154.js +2 -2
  17. package/dist/index155.cjs +1 -1
  18. package/dist/index155.js +2 -2
  19. package/dist/index156.cjs +1 -1
  20. package/dist/index156.js +2 -2
  21. package/dist/index157.cjs +1 -1
  22. package/dist/index157.js +2 -2
  23. package/dist/index158.cjs +1 -1
  24. package/dist/index158.js +2 -2
  25. package/dist/index159.cjs +1 -1
  26. package/dist/index159.js +2 -2
  27. package/dist/index168.cjs +1 -1
  28. package/dist/index168.js +1 -1
  29. package/dist/index235.cjs +1 -1
  30. package/dist/index235.js +1 -1
  31. package/dist/index236.cjs +1 -1
  32. package/dist/index236.js +2 -2
  33. package/dist/index247.cjs +1 -1
  34. package/dist/index247.js +1 -1
  35. package/dist/index278.cjs +1 -1
  36. package/dist/index278.js +1 -1
  37. package/dist/index299.cjs +1 -1
  38. package/dist/index299.js +7 -37
  39. package/dist/index300.cjs +1 -1
  40. package/dist/index300.js +36 -14
  41. package/dist/index301.cjs +1 -1
  42. package/dist/index301.js +15 -8
  43. package/dist/index302.cjs +1 -1
  44. package/dist/index302.js +8 -7
  45. package/dist/index304.cjs +1 -1
  46. package/dist/index304.js +1 -1
  47. package/dist/index305.cjs +1 -1
  48. package/dist/index305.js +1 -1
  49. package/dist/index311.cjs +1 -1
  50. package/dist/index311.js +1 -1
  51. package/dist/index312.cjs +1 -1
  52. package/dist/index312.js +1 -1
  53. package/dist/index319.cjs +1 -1
  54. package/dist/index319.js +103 -6
  55. package/dist/index320.cjs +1 -1
  56. package/dist/index320.js +7 -7
  57. package/dist/index321.cjs +1 -1
  58. package/dist/index321.js +7 -104
  59. package/dist/index349.cjs +1 -1
  60. package/dist/index349.js +4 -77
  61. package/dist/index350.cjs +2 -1
  62. package/dist/index350.js +194 -5
  63. package/dist/index351.cjs +1 -1
  64. package/dist/index351.js +77 -4
  65. package/dist/index352.cjs +1 -2
  66. package/dist/index352.js +317 -167
  67. package/dist/index353.cjs +1 -1
  68. package/dist/index353.js +149 -332
  69. package/dist/index354.cjs +1 -1
  70. package/dist/index354.js +5 -161
  71. package/dist/index361.cjs +1 -1
  72. package/dist/index361.js +140 -3
  73. package/dist/index362.cjs +1 -1
  74. package/dist/index362.js +3 -140
  75. package/dist/index381.cjs +1 -1
  76. package/dist/index381.js +2 -22
  77. package/dist/index382.cjs +1 -1
  78. package/dist/index382.js +22 -2
  79. package/dist/index383.cjs +1 -1
  80. package/dist/index383.js +1 -1
  81. package/dist/src/lib/store/swapStore.d.ts +1 -1
  82. package/package.json +5 -5
package/dist/index353.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./index352.cjs"),x=require("./index349.cjs"),y=require("./index348.cjs"),U=require("./index278.cjs"),c=require("./index277.cjs"),V=require("./index282.cjs");function l(e,t,s){const{checksumAddress:n,staticPosition:o}=s,r=P(t.type);if(r){const[i,a]=r;return I(e,{...t,type:a},{checksumAddress:n,length:i,staticPosition:o})}if(t.type==="tuple")return k(e,t,{checksumAddress:n,staticPosition:o});if(t.type==="address")return C(e,{checksum:n});if(t.type==="bool")return L(e);if(t.type.startsWith("bytes"))return E(e,t,{staticPosition:o});if(t.type.startsWith("uint")||t.type.startsWith("int"))return W(e,t);if(t.type==="string")return O(e,{staticPosition:o});throw new g.InvalidTypeError(t.type)}const S=32,z=32;function C(e,t={}){const{checksum:s=!1}=t,n=e.readBytes(32);return[(r=>s?x.checksum(r):r)(c.fromBytes(y.slice(n,-20))),32]}function I(e,t,s){const{checksumAddress:n,length:o,staticPosition:r}=s;if(!o){const d=y.toNumber(e.readBytes(z)),f=r+d,u=f+S;e.setPosition(f);const m=y.toNumber(e.readBytes(S)),h=p(t);let b=0;const w=[];for(let N=0;N<m;++N){e.setPosition(u+(h?N*32:b));const[j,H]=l(e,t,{checksumAddress:n,staticPosition:u});b+=H,w.push(j)}return e.setPosition(r+32),[w,32]}if(p(t)){const d=y.toNumber(e.readBytes(z)),f=r+d,u=[];for(let m=0;m<o;++m){e.setPosition(f+m*32);const[h]=l(e,t,{checksumAddress:n,staticPosition:f});u.push(h)}return e.setPosition(r+32),[u,32]}let i=0;const a=[];for(let d=0;d<o;++d){const[f,u]=l(e,t,{checksumAddress:n,staticPosition:r+i});i+=u,a.push(f)}return[a,i]}function L(e){return[y.toBoolean(e.readBytes(32),{size:32}),32]}function E(e,t,{staticPosition:s}){const[n,o]=t.type.split("bytes");if(!o){const i=y.toNumber(e.readBytes(32));e.setPosition(s+i);const a=y.toNumber(e.readBytes(32));if(a===0)return e.setPosition(s+32),["0x",32];const d=e.readBytes(a);return e.setPosition(s+32),[c.fromBytes(d),32]}return[c.fromBytes(e.readBytes(Number.parseInt(o,10),32)),32]}function W(e,t){const s=t.type.startsWith("int"),n=Number.parseInt(t.type.split("int")[1]||"256",10),o=e.readBytes(32);return[n>48?y.toBigInt(o,{signed:s}):y.toNumber(o,{signed:s}),32]}function k(e,t,s){const{checksumAddress:n,staticPosition:o}=s,r=t.components.length===0||t.components.some(({name:d})=>!d),i=r?[]:{};let a=0;if(p(t)){const d=y.toNumber(e.readBytes(z)),f=o+d;for(let u=0;u<t.components.length;++u){const m=t.components[u];e.setPosition(f+a);const[h,b]=l(e,m,{checksumAddress:n,staticPosition:f});a+=b,i[r?u:m==null?void 0:m.name]=h}return e.setPosition(o+32),[i,32]}for(let d=0;d<t.components.length;++d){const f=t.components[d],[u,m]=l(e,f,{checksumAddress:n,staticPosition:o});i[r?d:f==null?void 0:f.name]=u,a+=m}return[i,a]}function O(e,{staticPosition:t}){const s=y.toNumber(e.readBytes(32)),n=t+s;e.setPosition(n);const o=y.toNumber(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];const r=e.readBytes(o,32),i=y.toString(y.trimLeft(r));return e.setPosition(t+32),[i,32]}function F({checksumAddress:e,parameters:t,values:s}){const n=[];for(let o=0;o<t.length;o++)n.push(B({checksumAddress:e,parameter:t[o],value:s[o]}));return n}function B({checksumAddress:e=!1,parameter:t,value:s}){const n=t,o=P(n.type);if(o){const[r,i]=o;return _(s,{checksumAddress:e,length:r,parameter:{...n,type:i}})}if(n.type==="tuple")return D(s,{checksumAddress:e,parameter:n});if(n.type==="address")return T(s,{checksum:e});if(n.type==="bool")return R(s);if(n.type.startsWith("uint")||n.type.startsWith("int")){const r=n.type.startsWith("int"),[,,i="256"]=V.integerRegex.exec(n.type)??[];return M(s,{signed:r,size:Number(i)})}if(n.type.startsWith("bytes"))return q(s,{type:n.type});if(n.type==="string")return $(s);throw new g.InvalidTypeError(n.type)}function A(e){let t=0;for(let r=0;r<e.length;r++){const{dynamic:i,encoded:a}=e[r];i?t+=32:t+=c.size(a)}const s=[],n=[];let o=0;for(let r=0;r<e.length;r++){const{dynamic:i,encoded:a}=e[r];i?(s.push(c.fromNumber(t+o,{size:32})),n.push(a),o+=c.size(a)):s.push(a)}return c.concat(...s,...n)}function T(e,t){const{checksum:s=!1}=t;return x.assert(e,{strict:s}),{dynamic:!1,encoded:c.padLeft(e.toLowerCase())}}function _(e,t){const{checksumAddress:s,length:n,parameter:o}=t,r=n===null;if(!Array.isArray(e))throw new g.InvalidArrayError(e);if(!r&&e.length!==n)throw new g.ArrayLengthMismatchError({expectedLength:n,givenLength:e.length,type:`${o.type}[${n}]`});let i=!1;const a=[];for(let d=0;d<e.length;d++){const f=B({checksumAddress:s,parameter:o,value:e[d]});f.dynamic&&(i=!0),a.push(f)}if(r||i){const d=A(a);if(r){const f=c.fromNumber(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?c.concat(f,d):f}}if(i)return{dynamic:!0,encoded:d}}return{dynamic:!1,encoded:c.concat(...a.map(({encoded:d})=>d))}}function q(e,{type:t}){const[,s]=t.split("bytes"),n=c.size(e);if(!s){let o=e;return n%32!==0&&(o=c.padRight(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:c.concat(c.padLeft(c.fromNumber(n,{size:32})),o)}}if(n!==Number.parseInt(s,10))throw new g.BytesSizeMismatchError({expectedSize:Number.parseInt(s,10),value:e});return{dynamic:!1,encoded:c.padRight(e)}}function R(e){if(typeof e!="boolean")throw new U.BaseError(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:c.padLeft(c.fromBoolean(e))}}function M(e,{signed:t,size:s}){if(typeof s=="number"){const n=2n**(BigInt(s)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||e<o)throw new c.IntegerOutOfRangeError({max:n.toString(),min:o.toString(),signed:t,size:s/8,value:e.toString()})}return{dynamic:!1,encoded:c.fromNumber(e,{size:32,signed:t})}}function $(e){const t=c.fromString(e),s=Math.ceil(c.size(t)/32),n=[];for(let o=0;o<s;o++)n.push(c.padRight(c.slice(t,o*32,(o+1)*32)));return{dynamic:!0,encoded:c.concat(c.padRight(c.fromNumber(c.size(t),{size:32})),...n)}}function D(e,t){const{checksumAddress:s,parameter:n}=t;let o=!1;const r=[];for(let i=0;i<n.components.length;i++){const a=n.components[i],d=Array.isArray(e)?i:a.name,f=B({checksumAddress:s,parameter:a,value:e[d]});r.push(f),f.dynamic&&(o=!0)}return{dynamic:o,encoded:o?A(r):c.concat(...r.map(({encoded:i})=>i))}}function P(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function p(e){var n;const{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return(n=e.components)==null?void 0:n.some(p);const s=P(e.type);return!!(s&&p({...e,type:s[1]}))}exports.decodeAddress=C;exports.decodeArray=I;exports.decodeBool=L;exports.decodeBytes=E;exports.decodeNumber=W;exports.decodeParameter=l;exports.decodeString=O;exports.decodeTuple=k;exports.encode=A;exports.encodeAddress=T;exports.encodeArray=_;exports.encodeBoolean=R;exports.encodeBytes=q;exports.encodeNumber=M;exports.encodeString=$;exports.encodeTuple=D;exports.getArrayComponents=P;exports.hasDynamicChild=p;exports.prepareParameter=B;exports.prepareParameters=F;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index278.cjs"),h={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new r({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new n({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new e({offset:t});const i=this.position-t;this.assertPosition(i),this.position=i},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new e({offset:t});const i=this.position+t;this.assertPosition(i),this.position=i},inspectByte(t){const i=t??this.position;return this.assertPosition(i),this.bytes[i]},inspectBytes(t,i){const s=i??this.position;return this.assertPosition(s+t-1),this.bytes.subarray(s,s+t)},inspectUint8(t){const i=t??this.position;return this.assertPosition(i),this.bytes[i]},inspectUint16(t){const i=t??this.position;return this.assertPosition(i+1),this.dataView.getUint16(i)},inspectUint24(t){const i=t??this.position;return this.assertPosition(i+2),(this.dataView.getUint16(i)<<8)+this.dataView.getUint8(i+2)},inspectUint32(t){const i=t??this.position;return this.assertPosition(i+3),this.dataView.getUint32(i)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const t=this.inspectByte();return this.position++,t},readBytes(t,i){this.assertReadLimit(),this._touch();const s=this.inspectBytes(t);return this.position+=i??t,s},readUint8(){this.assertReadLimit(),this._touch();const t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();const t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();const t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();const t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){const i=this.position;return this.assertPosition(t),this.position=t,()=>this.position=i},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}};function a(t,{recursiveReadLimit:i=8192}={}){const s=Object.create(h);return s.bytes=t,s.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),s.positionReadCount=new Map,s.recursiveReadLimit=i,s}class e extends o.BaseError{constructor({offset:i}){super(`Offset \`${i}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class n extends o.BaseError{constructor({length:i,position:s}){super(`Position \`${s}\` is out of bounds (\`0 < position < ${i}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class r extends o.BaseError{constructor({count:i,limit:s}){super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${i}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}exports.NegativeOffsetError=e;exports.PositionOutOfBoundsError=n;exports.RecursiveReadLimitExceededError=r;exports.create=a;
package/dist/index353.js CHANGED
@@ -1,346 +1,163 @@
1
- import { InvalidTypeError as C, InvalidArrayError as _, ArrayLengthMismatchError as $, BytesSizeMismatchError as O } from "./index352.js";
2
- import { checksum as M, assert as R } from "./index349.js";
3
- import { toNumber as u, slice as T, toBoolean as D, toBigInt as U, toString as V, trimLeft as j } from "./index348.js";
4
- import { BaseError as q } from "./index278.js";
5
- import { size as h, fromNumber as B, concat as m, fromBytes as w, padLeft as S, fromBoolean as F, IntegerOutOfRangeError as G, padRight as b, fromString as H, slice as J } from "./index277.js";
6
- import { integerRegex as K } from "./index282.js";
7
- function p(t, e, o) {
8
- const { checksumAddress: n, staticPosition: s } = o, i = I(e.type);
9
- if (i) {
10
- const [r, d] = i;
11
- return X(t, { ...e, type: d }, { checksumAddress: n, length: r, staticPosition: s });
12
- }
13
- if (e.type === "tuple")
14
- return tt(t, e, {
15
- checksumAddress: n,
16
- staticPosition: s
17
- });
18
- if (e.type === "address")
19
- return Q(t, { checksum: n });
20
- if (e.type === "bool")
21
- return Y(t);
22
- if (e.type.startsWith("bytes"))
23
- return Z(t, e, { staticPosition: s });
24
- if (e.type.startsWith("uint") || e.type.startsWith("int"))
25
- return v(t, e);
26
- if (e.type === "string")
27
- return et(t, { staticPosition: s });
28
- throw new C(e.type);
29
- }
30
- const k = 32, A = 32;
31
- function Q(t, e = {}) {
32
- const { checksum: o = !1 } = e, n = t.readBytes(32);
33
- return [((i) => o ? M(i) : i)(w(T(n, -20))), 32];
34
- }
35
- function X(t, e, o) {
36
- const { checksumAddress: n, length: s, staticPosition: i } = o;
37
- if (!s) {
38
- const c = u(t.readBytes(A)), a = i + c, f = a + k;
39
- t.setPosition(a);
40
- const y = u(t.readBytes(k)), l = g(e);
41
- let P = 0;
42
- const N = [];
43
- for (let z = 0; z < y; ++z) {
44
- t.setPosition(f + (l ? z * 32 : P));
45
- const [L, E] = p(t, e, {
46
- checksumAddress: n,
47
- staticPosition: f
48
- });
49
- P += E, N.push(L);
50
- }
51
- return t.setPosition(i + 32), [N, 32];
52
- }
53
- if (g(e)) {
54
- const c = u(t.readBytes(A)), a = i + c, f = [];
55
- for (let y = 0; y < s; ++y) {
56
- t.setPosition(a + y * 32);
57
- const [l] = p(t, e, {
58
- checksumAddress: n,
59
- staticPosition: a
1
+ import { BaseError as e } from "./index278.js";
2
+ const n = {
3
+ bytes: new Uint8Array(),
4
+ dataView: new DataView(new ArrayBuffer(0)),
5
+ position: 0,
6
+ positionReadCount: /* @__PURE__ */ new Map(),
7
+ recursiveReadCount: 0,
8
+ recursiveReadLimit: Number.POSITIVE_INFINITY,
9
+ assertReadLimit() {
10
+ if (this.recursiveReadCount >= this.recursiveReadLimit)
11
+ throw new h({
12
+ count: this.recursiveReadCount + 1,
13
+ limit: this.recursiveReadLimit
60
14
  });
61
- f.push(l);
62
- }
63
- return t.setPosition(i + 32), [f, 32];
64
- }
65
- let r = 0;
66
- const d = [];
67
- for (let c = 0; c < s; ++c) {
68
- const [a, f] = p(t, e, {
69
- checksumAddress: n,
70
- staticPosition: i + r
71
- });
72
- r += f, d.push(a);
73
- }
74
- return [d, r];
75
- }
76
- function Y(t) {
77
- return [D(t.readBytes(32), { size: 32 }), 32];
78
- }
79
- function Z(t, e, { staticPosition: o }) {
80
- const [n, s] = e.type.split("bytes");
81
- if (!s) {
82
- const r = u(t.readBytes(32));
83
- t.setPosition(o + r);
84
- const d = u(t.readBytes(32));
85
- if (d === 0)
86
- return t.setPosition(o + 32), ["0x", 32];
87
- const c = t.readBytes(d);
88
- return t.setPosition(o + 32), [w(c), 32];
89
- }
90
- return [w(t.readBytes(Number.parseInt(s, 10), 32)), 32];
91
- }
92
- function v(t, e) {
93
- const o = e.type.startsWith("int"), n = Number.parseInt(e.type.split("int")[1] || "256", 10), s = t.readBytes(32);
94
- return [
95
- n > 48 ? U(s, { signed: o }) : u(s, { signed: o }),
96
- 32
97
- ];
98
- }
99
- function tt(t, e, o) {
100
- const { checksumAddress: n, staticPosition: s } = o, i = e.components.length === 0 || e.components.some(({ name: c }) => !c), r = i ? [] : {};
101
- let d = 0;
102
- if (g(e)) {
103
- const c = u(t.readBytes(A)), a = s + c;
104
- for (let f = 0; f < e.components.length; ++f) {
105
- const y = e.components[f];
106
- t.setPosition(a + d);
107
- const [l, P] = p(t, y, {
108
- checksumAddress: n,
109
- staticPosition: a
15
+ },
16
+ assertPosition(t) {
17
+ if (t < 0 || t > this.bytes.length - 1)
18
+ throw new r({
19
+ length: this.bytes.length,
20
+ position: t
110
21
  });
111
- d += P, r[i ? f : y == null ? void 0 : y.name] = l;
112
- }
113
- return t.setPosition(s + 32), [r, 32];
114
- }
115
- for (let c = 0; c < e.components.length; ++c) {
116
- const a = e.components[c], [f, y] = p(t, a, {
117
- checksumAddress: n,
118
- staticPosition: s
119
- });
120
- r[i ? c : a == null ? void 0 : a.name] = f, d += y;
121
- }
122
- return [r, d];
123
- }
124
- function et(t, { staticPosition: e }) {
125
- const o = u(t.readBytes(32)), n = e + o;
126
- t.setPosition(n);
127
- const s = u(t.readBytes(32));
128
- if (s === 0)
129
- return t.setPosition(e + 32), ["", 32];
130
- const i = t.readBytes(s, 32), r = V(j(i));
131
- return t.setPosition(e + 32), [r, 32];
132
- }
133
- function pt({ checksumAddress: t, parameters: e, values: o }) {
134
- const n = [];
135
- for (let s = 0; s < e.length; s++)
136
- n.push(x({
137
- checksumAddress: t,
138
- parameter: e[s],
139
- value: o[s]
140
- }));
141
- return n;
142
- }
143
- function x({ checksumAddress: t = !1, parameter: e, value: o }) {
144
- const n = e, s = I(n.type);
145
- if (s) {
146
- const [i, r] = s;
147
- return st(o, {
148
- checksumAddress: t,
149
- length: i,
150
- parameter: {
151
- ...n,
152
- type: r
153
- }
154
- });
155
- }
156
- if (n.type === "tuple")
157
- return dt(o, {
158
- checksumAddress: t,
159
- parameter: n
160
- });
161
- if (n.type === "address")
162
- return nt(o, {
163
- checksum: t
164
- });
165
- if (n.type === "bool")
166
- return it(o);
167
- if (n.type.startsWith("uint") || n.type.startsWith("int")) {
168
- const i = n.type.startsWith("int"), [, , r = "256"] = K.exec(n.type) ?? [];
169
- return rt(o, {
170
- signed: i,
171
- size: Number(r)
172
- });
22
+ },
23
+ decrementPosition(t) {
24
+ if (t < 0)
25
+ throw new o({ offset: t });
26
+ const i = this.position - t;
27
+ this.assertPosition(i), this.position = i;
28
+ },
29
+ getReadCount(t) {
30
+ return this.positionReadCount.get(t || this.position) || 0;
31
+ },
32
+ incrementPosition(t) {
33
+ if (t < 0)
34
+ throw new o({ offset: t });
35
+ const i = this.position + t;
36
+ this.assertPosition(i), this.position = i;
37
+ },
38
+ inspectByte(t) {
39
+ const i = t ?? this.position;
40
+ return this.assertPosition(i), this.bytes[i];
41
+ },
42
+ inspectBytes(t, i) {
43
+ const s = i ?? this.position;
44
+ return this.assertPosition(s + t - 1), this.bytes.subarray(s, s + t);
45
+ },
46
+ inspectUint8(t) {
47
+ const i = t ?? this.position;
48
+ return this.assertPosition(i), this.bytes[i];
49
+ },
50
+ inspectUint16(t) {
51
+ const i = t ?? this.position;
52
+ return this.assertPosition(i + 1), this.dataView.getUint16(i);
53
+ },
54
+ inspectUint24(t) {
55
+ const i = t ?? this.position;
56
+ return this.assertPosition(i + 2), (this.dataView.getUint16(i) << 8) + this.dataView.getUint8(i + 2);
57
+ },
58
+ inspectUint32(t) {
59
+ const i = t ?? this.position;
60
+ return this.assertPosition(i + 3), this.dataView.getUint32(i);
61
+ },
62
+ pushByte(t) {
63
+ this.assertPosition(this.position), this.bytes[this.position] = t, this.position++;
64
+ },
65
+ pushBytes(t) {
66
+ this.assertPosition(this.position + t.length - 1), this.bytes.set(t, this.position), this.position += t.length;
67
+ },
68
+ pushUint8(t) {
69
+ this.assertPosition(this.position), this.bytes[this.position] = t, this.position++;
70
+ },
71
+ pushUint16(t) {
72
+ this.assertPosition(this.position + 1), this.dataView.setUint16(this.position, t), this.position += 2;
73
+ },
74
+ pushUint24(t) {
75
+ this.assertPosition(this.position + 2), this.dataView.setUint16(this.position, t >> 8), this.dataView.setUint8(this.position + 2, t & 255), this.position += 3;
76
+ },
77
+ pushUint32(t) {
78
+ this.assertPosition(this.position + 3), this.dataView.setUint32(this.position, t), this.position += 4;
79
+ },
80
+ readByte() {
81
+ this.assertReadLimit(), this._touch();
82
+ const t = this.inspectByte();
83
+ return this.position++, t;
84
+ },
85
+ readBytes(t, i) {
86
+ this.assertReadLimit(), this._touch();
87
+ const s = this.inspectBytes(t);
88
+ return this.position += i ?? t, s;
89
+ },
90
+ readUint8() {
91
+ this.assertReadLimit(), this._touch();
92
+ const t = this.inspectUint8();
93
+ return this.position += 1, t;
94
+ },
95
+ readUint16() {
96
+ this.assertReadLimit(), this._touch();
97
+ const t = this.inspectUint16();
98
+ return this.position += 2, t;
99
+ },
100
+ readUint24() {
101
+ this.assertReadLimit(), this._touch();
102
+ const t = this.inspectUint24();
103
+ return this.position += 3, t;
104
+ },
105
+ readUint32() {
106
+ this.assertReadLimit(), this._touch();
107
+ const t = this.inspectUint32();
108
+ return this.position += 4, t;
109
+ },
110
+ get remaining() {
111
+ return this.bytes.length - this.position;
112
+ },
113
+ setPosition(t) {
114
+ const i = this.position;
115
+ return this.assertPosition(t), this.position = t, () => this.position = i;
116
+ },
117
+ _touch() {
118
+ if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)
119
+ return;
120
+ const t = this.getReadCount();
121
+ this.positionReadCount.set(this.position, t + 1), t > 0 && this.recursiveReadCount++;
173
122
  }
174
- if (n.type.startsWith("bytes"))
175
- return ot(o, { type: n.type });
176
- if (n.type === "string")
177
- return ct(o);
178
- throw new C(n.type);
179
- }
180
- function W(t) {
181
- let e = 0;
182
- for (let i = 0; i < t.length; i++) {
183
- const { dynamic: r, encoded: d } = t[i];
184
- r ? e += 32 : e += h(d);
185
- }
186
- const o = [], n = [];
187
- let s = 0;
188
- for (let i = 0; i < t.length; i++) {
189
- const { dynamic: r, encoded: d } = t[i];
190
- r ? (o.push(B(e + s, { size: 32 })), n.push(d), s += h(d)) : o.push(d);
191
- }
192
- return m(...o, ...n);
193
- }
194
- function nt(t, e) {
195
- const { checksum: o = !1 } = e;
196
- return R(t, { strict: o }), {
197
- dynamic: !1,
198
- encoded: S(t.toLowerCase())
199
- };
200
- }
201
- function st(t, e) {
202
- const { checksumAddress: o, length: n, parameter: s } = e, i = n === null;
203
- if (!Array.isArray(t))
204
- throw new _(t);
205
- if (!i && t.length !== n)
206
- throw new $({
207
- expectedLength: n,
208
- givenLength: t.length,
209
- type: `${s.type}[${n}]`
210
- });
211
- let r = !1;
212
- const d = [];
213
- for (let c = 0; c < t.length; c++) {
214
- const a = x({
215
- checksumAddress: o,
216
- parameter: s,
217
- value: t[c]
123
+ };
124
+ function u(t, { recursiveReadLimit: i = 8192 } = {}) {
125
+ const s = Object.create(n);
126
+ return s.bytes = t, s.dataView = new DataView(t.buffer, t.byteOffset, t.byteLength), s.positionReadCount = /* @__PURE__ */ new Map(), s.recursiveReadLimit = i, s;
127
+ }
128
+ class o extends e {
129
+ constructor({ offset: i }) {
130
+ super(`Offset \`${i}\` cannot be negative.`), Object.defineProperty(this, "name", {
131
+ enumerable: !0,
132
+ configurable: !0,
133
+ writable: !0,
134
+ value: "Cursor.NegativeOffsetError"
218
135
  });
219
- a.dynamic && (r = !0), d.push(a);
220
- }
221
- if (i || r) {
222
- const c = W(d);
223
- if (i) {
224
- const a = B(d.length, { size: 32 });
225
- return {
226
- dynamic: !0,
227
- encoded: d.length > 0 ? m(a, c) : a
228
- };
229
- }
230
- if (r)
231
- return { dynamic: !0, encoded: c };
232
136
  }
233
- return {
234
- dynamic: !1,
235
- encoded: m(...d.map(({ encoded: c }) => c))
236
- };
237
137
  }
238
- function ot(t, { type: e }) {
239
- const [, o] = e.split("bytes"), n = h(t);
240
- if (!o) {
241
- let s = t;
242
- return n % 32 !== 0 && (s = b(s, Math.ceil((t.length - 2) / 2 / 32) * 32)), {
243
- dynamic: !0,
244
- encoded: m(S(B(n, { size: 32 })), s)
245
- };
246
- }
247
- if (n !== Number.parseInt(o, 10))
248
- throw new O({
249
- expectedSize: Number.parseInt(o, 10),
250
- value: t
138
+ class r extends e {
139
+ constructor({ length: i, position: s }) {
140
+ super(`Position \`${s}\` is out of bounds (\`0 < position < ${i}\`).`), Object.defineProperty(this, "name", {
141
+ enumerable: !0,
142
+ configurable: !0,
143
+ writable: !0,
144
+ value: "Cursor.PositionOutOfBoundsError"
251
145
  });
252
- return { dynamic: !1, encoded: b(t) };
253
- }
254
- function it(t) {
255
- if (typeof t != "boolean")
256
- throw new q(`Invalid boolean value: "${t}" (type: ${typeof t}). Expected: \`true\` or \`false\`.`);
257
- return { dynamic: !1, encoded: S(F(t)) };
258
- }
259
- function rt(t, { signed: e, size: o }) {
260
- if (typeof o == "number") {
261
- const n = 2n ** (BigInt(o) - (e ? 1n : 0n)) - 1n, s = e ? -n - 1n : 0n;
262
- if (t > n || t < s)
263
- throw new G({
264
- max: n.toString(),
265
- min: s.toString(),
266
- signed: e,
267
- size: o / 8,
268
- value: t.toString()
269
- });
270
146
  }
271
- return {
272
- dynamic: !1,
273
- encoded: B(t, {
274
- size: 32,
275
- signed: e
276
- })
277
- };
278
- }
279
- function ct(t) {
280
- const e = H(t), o = Math.ceil(h(e) / 32), n = [];
281
- for (let s = 0; s < o; s++)
282
- n.push(b(J(e, s * 32, (s + 1) * 32)));
283
- return {
284
- dynamic: !0,
285
- encoded: m(b(B(h(e), { size: 32 })), ...n)
286
- };
287
147
  }
288
- function dt(t, e) {
289
- const { checksumAddress: o, parameter: n } = e;
290
- let s = !1;
291
- const i = [];
292
- for (let r = 0; r < n.components.length; r++) {
293
- const d = n.components[r], c = Array.isArray(t) ? r : d.name, a = x({
294
- checksumAddress: o,
295
- parameter: d,
296
- value: t[c]
148
+ class h extends e {
149
+ constructor({ count: i, limit: s }) {
150
+ super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${i}\`).`), Object.defineProperty(this, "name", {
151
+ enumerable: !0,
152
+ configurable: !0,
153
+ writable: !0,
154
+ value: "Cursor.RecursiveReadLimitExceededError"
297
155
  });
298
- i.push(a), a.dynamic && (s = !0);
299
156
  }
300
- return {
301
- dynamic: s,
302
- encoded: s ? W(i) : m(...i.map(({ encoded: r }) => r))
303
- };
304
- }
305
- function I(t) {
306
- const e = t.match(/^(.*)\[(\d+)?\]$/);
307
- return e ? (
308
- // Return `null` if the array is dynamic.
309
- [e[2] ? Number(e[2]) : null, e[1]]
310
- ) : void 0;
311
- }
312
- function g(t) {
313
- var n;
314
- const { type: e } = t;
315
- if (e === "string" || e === "bytes" || e.endsWith("[]"))
316
- return !0;
317
- if (e === "tuple")
318
- return (n = t.components) == null ? void 0 : n.some(g);
319
- const o = I(t.type);
320
- return !!(o && g({
321
- ...t,
322
- type: o[1]
323
- }));
324
157
  }
325
158
  export {
326
- Q as decodeAddress,
327
- X as decodeArray,
328
- Y as decodeBool,
329
- Z as decodeBytes,
330
- v as decodeNumber,
331
- p as decodeParameter,
332
- et as decodeString,
333
- tt as decodeTuple,
334
- W as encode,
335
- nt as encodeAddress,
336
- st as encodeArray,
337
- it as encodeBoolean,
338
- ot as encodeBytes,
339
- rt as encodeNumber,
340
- ct as encodeString,
341
- dt as encodeTuple,
342
- I as getArrayComponents,
343
- g as hasDynamicChild,
344
- x as prepareParameter,
345
- pt as prepareParameters
159
+ o as NegativeOffsetError,
160
+ r as PositionOutOfBoundsError,
161
+ h as RecursiveReadLimitExceededError,
162
+ u as create
346
163
  };
package/dist/index354.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index278.cjs"),h={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new r({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new n({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new e({offset:t});const i=this.position-t;this.assertPosition(i),this.position=i},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new e({offset:t});const i=this.position+t;this.assertPosition(i),this.position=i},inspectByte(t){const i=t??this.position;return this.assertPosition(i),this.bytes[i]},inspectBytes(t,i){const s=i??this.position;return this.assertPosition(s+t-1),this.bytes.subarray(s,s+t)},inspectUint8(t){const i=t??this.position;return this.assertPosition(i),this.bytes[i]},inspectUint16(t){const i=t??this.position;return this.assertPosition(i+1),this.dataView.getUint16(i)},inspectUint24(t){const i=t??this.position;return this.assertPosition(i+2),(this.dataView.getUint16(i)<<8)+this.dataView.getUint8(i+2)},inspectUint32(t){const i=t??this.position;return this.assertPosition(i+3),this.dataView.getUint32(i)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const t=this.inspectByte();return this.position++,t},readBytes(t,i){this.assertReadLimit(),this._touch();const s=this.inspectBytes(t);return this.position+=i??t,s},readUint8(){this.assertReadLimit(),this._touch();const t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();const t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();const t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();const t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){const i=this.position;return this.assertPosition(t),this.position=t,()=>this.position=i},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}};function a(t,{recursiveReadLimit:i=8192}={}){const s=Object.create(h);return s.bytes=t,s.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),s.positionReadCount=new Map,s.recursiveReadLimit=i,s}class e extends o.BaseError{constructor({offset:i}){super(`Offset \`${i}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class n extends o.BaseError{constructor({length:i,position:s}){super(`Position \`${s}\` is out of bounds (\`0 < position < ${i}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class r extends o.BaseError{constructor({count:i,limit:s}){super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${i}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}exports.NegativeOffsetError=e;exports.PositionOutOfBoundsError=n;exports.RecursiveReadLimitExceededError=r;exports.create=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index382.cjs"),e={checksum:new c.LruMap(8192)},s=e.checksum;exports.checksum=s;