viem 2.0.10 → 2.1.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.
- package/CHANGELOG.md +12 -0
- package/_cjs/chains/definitions/baseSepolia.js +4 -0
- package/_cjs/chains/definitions/baseSepolia.js.map +1 -1
- package/_cjs/chains/definitions/palm.js +32 -0
- package/_cjs/chains/definitions/palm.js.map +1 -0
- package/_cjs/chains/definitions/palmTestnet.js +33 -0
- package/_cjs/chains/definitions/palmTestnet.js.map +1 -0
- package/_cjs/chains/index.js +6 -2
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/cursor.js +13 -1
- package/_cjs/errors/cursor.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/utils/abi/decodeAbiParameters.js +117 -126
- package/_cjs/utils/abi/decodeAbiParameters.js.map +1 -1
- package/_cjs/utils/abi/decodeEventLog.js +7 -4
- package/_cjs/utils/abi/decodeEventLog.js.map +1 -1
- package/_cjs/utils/cursor.js +40 -3
- package/_cjs/utils/cursor.js.map +1 -1
- package/_cjs/utils/encoding/fromBytes.js +2 -2
- package/_cjs/utils/encoding/fromBytes.js.map +1 -1
- package/_cjs/utils/encoding/fromRlp.js +1 -1
- package/_cjs/utils/encoding/fromRlp.js.map +1 -1
- package/_esm/chains/definitions/baseSepolia.js +4 -0
- package/_esm/chains/definitions/baseSepolia.js.map +1 -1
- package/_esm/chains/definitions/palm.js +29 -0
- package/_esm/chains/definitions/palm.js.map +1 -0
- package/_esm/chains/definitions/palmTestnet.js +30 -0
- package/_esm/chains/definitions/palmTestnet.js.map +1 -0
- package/_esm/chains/index.js +2 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/cursor.js +11 -0
- package/_esm/errors/cursor.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/utils/abi/decodeAbiParameters.js +145 -140
- package/_esm/utils/abi/decodeAbiParameters.js.map +1 -1
- package/_esm/utils/abi/decodeEventLog.js +7 -4
- package/_esm/utils/abi/decodeEventLog.js.map +1 -1
- package/_esm/utils/cursor.js +41 -4
- package/_esm/utils/cursor.js.map +1 -1
- package/_esm/utils/encoding/fromBytes.js +2 -2
- package/_esm/utils/encoding/fromBytes.js.map +1 -1
- package/_esm/utils/encoding/fromRlp.js +1 -1
- package/_esm/utils/encoding/fromRlp.js.map +1 -1
- package/_types/chains/definitions/baseSepolia.d.ts +4 -0
- package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/palm.d.ts +33 -0
- package/_types/chains/definitions/palm.d.ts.map +1 -0
- package/_types/chains/definitions/palmTestnet.d.ts +33 -0
- package/_types/chains/definitions/palmTestnet.d.ts.map +1 -0
- package/_types/chains/index.d.ts +2 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/cursor.d.ts +10 -0
- package/_types/errors/cursor.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/utils/abi/decodeAbiParameters.d.ts +18 -19
- package/_types/utils/abi/decodeAbiParameters.d.ts.map +1 -1
- package/_types/utils/abi/decodeEventLog.d.ts.map +1 -1
- package/_types/utils/cursor.d.ts +13 -3
- package/_types/utils/cursor.d.ts.map +1 -1
- package/chains/definitions/baseSepolia.ts +4 -0
- package/chains/definitions/palm.ts +29 -0
- package/chains/definitions/palmTestnet.ts +30 -0
- package/chains/index.ts +2 -0
- package/errors/cursor.ts +13 -0
- package/errors/version.ts +1 -1
- package/package.json +1 -1
- package/utils/abi/decodeAbiParameters.ts +226 -249
- package/utils/abi/decodeEventLog.ts +9 -4
- package/utils/cursor.ts +53 -6
- package/utils/encoding/fromBytes.ts +2 -2
- package/utils/encoding/fromRlp.ts +1 -1
@@ -1,182 +1,168 @@
|
|
1
|
-
import { AbiDecodingDataSizeTooSmallError,
|
1
|
+
import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';
|
2
2
|
import { checksumAddress, } from '../address/getAddress.js';
|
3
|
+
import { createCursor } from '../cursor.js';
|
3
4
|
import { size } from '../data/size.js';
|
4
|
-
import {
|
5
|
+
import { sliceBytes } from '../data/slice.js';
|
5
6
|
import { trim } from '../data/trim.js';
|
6
|
-
import {
|
7
|
-
import {
|
7
|
+
import { bytesToBigInt, bytesToBool, bytesToNumber, bytesToString, } from '../encoding/fromBytes.js';
|
8
|
+
import { hexToBytes } from '../encoding/toBytes.js';
|
9
|
+
import { bytesToHex } from '../encoding/toHex.js';
|
10
|
+
import { getArrayComponents } from './encodeAbiParameters.js';
|
8
11
|
export function decodeAbiParameters(params, data) {
|
9
|
-
|
12
|
+
const bytes = typeof data === 'string' ? hexToBytes(data) : data;
|
13
|
+
const cursor = createCursor(bytes);
|
14
|
+
if (size(bytes) === 0 && params.length > 0)
|
10
15
|
throw new AbiDecodingZeroDataError();
|
11
16
|
if (size(data) && size(data) < 32)
|
12
17
|
throw new AbiDecodingDataSizeTooSmallError({
|
13
|
-
data,
|
18
|
+
data: typeof data === 'string' ? data : bytesToHex(data),
|
14
19
|
params: params,
|
15
20
|
size: size(data),
|
16
21
|
});
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
});
|
21
|
-
}
|
22
|
-
function decodeParams({ data, params, }) {
|
23
|
-
const decodedValues = [];
|
24
|
-
let position = 0;
|
25
|
-
for (let i = 0; i < params.length; i++) {
|
26
|
-
if (position >= size(data))
|
27
|
-
throw new AbiDecodingDataSizeTooSmallError({
|
28
|
-
data,
|
29
|
-
params,
|
30
|
-
size: size(data),
|
31
|
-
});
|
22
|
+
let consumed = 0;
|
23
|
+
const values = [];
|
24
|
+
for (let i = 0; i < params.length; ++i) {
|
32
25
|
const param = params[i];
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
26
|
+
cursor.setPosition(consumed);
|
27
|
+
const [data, consumed_] = decodeParameter(cursor, param, {
|
28
|
+
staticPosition: 0,
|
29
|
+
});
|
30
|
+
consumed += consumed_;
|
31
|
+
values.push(data);
|
37
32
|
}
|
38
|
-
return
|
33
|
+
return values;
|
39
34
|
}
|
40
|
-
function
|
35
|
+
function decodeParameter(cursor, param, { staticPosition }) {
|
41
36
|
const arrayComponents = getArrayComponents(param.type);
|
42
37
|
if (arrayComponents) {
|
43
38
|
const [length, type] = arrayComponents;
|
44
|
-
return decodeArray(
|
45
|
-
length,
|
46
|
-
param: { ...param, type: type },
|
47
|
-
position,
|
48
|
-
});
|
49
|
-
}
|
50
|
-
if (param.type === 'tuple') {
|
51
|
-
return decodeTuple(data, { param: param, position });
|
52
|
-
}
|
53
|
-
if (param.type === 'string') {
|
54
|
-
return decodeString(data, { position });
|
55
|
-
}
|
56
|
-
if (param.type.startsWith('bytes')) {
|
57
|
-
return decodeBytes(data, { param, position });
|
58
|
-
}
|
59
|
-
const value = slice(data, position, position + 32, { strict: true });
|
60
|
-
if (param.type.startsWith('uint') || param.type.startsWith('int')) {
|
61
|
-
return decodeNumber(value, { param });
|
62
|
-
}
|
63
|
-
if (param.type === 'address') {
|
64
|
-
return decodeAddress(value);
|
65
|
-
}
|
66
|
-
if (param.type === 'bool') {
|
67
|
-
return decodeBool(value);
|
39
|
+
return decodeArray(cursor, { ...param, type }, { length, staticPosition });
|
68
40
|
}
|
41
|
+
if (param.type === 'tuple')
|
42
|
+
return decodeTuple(cursor, param, { staticPosition });
|
43
|
+
if (param.type === 'address')
|
44
|
+
return decodeAddress(cursor);
|
45
|
+
if (param.type === 'bool')
|
46
|
+
return decodeBool(cursor);
|
47
|
+
if (param.type.startsWith('bytes'))
|
48
|
+
return decodeBytes(cursor, param, { staticPosition });
|
49
|
+
if (param.type.startsWith('uint') || param.type.startsWith('int'))
|
50
|
+
return decodeNumber(cursor, param);
|
51
|
+
if (param.type === 'string')
|
52
|
+
return decodeString(cursor, { staticPosition });
|
69
53
|
throw new InvalidAbiDecodingTypeError(param.type, {
|
70
54
|
docsPath: '/docs/contract/decodeAbiParameters',
|
71
55
|
});
|
72
56
|
}
|
73
|
-
|
74
|
-
|
57
|
+
////////////////////////////////////////////////////////////////////
|
58
|
+
// Type Decoders
|
59
|
+
const sizeOfLength = 32;
|
60
|
+
const sizeOfOffset = 32;
|
61
|
+
function decodeAddress(cursor) {
|
62
|
+
const value = cursor.readBytes(32);
|
63
|
+
return [checksumAddress(bytesToHex(sliceBytes(value, -20))), 32];
|
75
64
|
}
|
76
|
-
function decodeArray(
|
65
|
+
function decodeArray(cursor, param, { length, staticPosition }) {
|
77
66
|
// If the length of the array is not known in advance (dynamic array),
|
78
|
-
// we will need to
|
67
|
+
// this means we will need to wonder off to the pointer and decode.
|
79
68
|
if (!length) {
|
80
|
-
//
|
81
|
-
const offset =
|
82
|
-
|
83
|
-
|
69
|
+
// Dealing with a dynamic type, so get the offset of the array data.
|
70
|
+
const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));
|
71
|
+
// Start is the static position of current slot + offset.
|
72
|
+
const start = staticPosition + offset;
|
73
|
+
const startOfData = start + sizeOfLength;
|
84
74
|
// Get the length of the array from the offset.
|
85
|
-
|
75
|
+
cursor.setPosition(start);
|
76
|
+
const length = bytesToNumber(cursor.readBytes(sizeOfLength));
|
77
|
+
// Check if the array has any dynamic children.
|
78
|
+
const dynamicChild = hasDynamicChild(param);
|
86
79
|
let consumed = 0;
|
87
80
|
const value = [];
|
88
81
|
for (let i = 0; i < length; ++i) {
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
82
|
+
// If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).
|
83
|
+
// Otherwise, elements will be the size of their encoding (consumed bytes).
|
84
|
+
cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));
|
85
|
+
const [data, consumed_] = decodeParameter(cursor, param, {
|
86
|
+
staticPosition: startOfData,
|
93
87
|
});
|
94
|
-
consumed +=
|
95
|
-
value.push(
|
88
|
+
consumed += consumed_;
|
89
|
+
value.push(data);
|
96
90
|
}
|
97
|
-
|
91
|
+
// As we have gone wondering, restore to the original position + next slot.
|
92
|
+
cursor.setPosition(staticPosition + 32);
|
93
|
+
return [value, 32];
|
98
94
|
}
|
99
95
|
// If the length of the array is known in advance,
|
100
96
|
// and the length of an element deeply nested in the array is not known,
|
101
97
|
// we need to decode the offset of the array data.
|
102
98
|
if (hasDynamicChild(param)) {
|
103
|
-
//
|
104
|
-
const
|
105
|
-
//
|
106
|
-
const
|
107
|
-
let consumed = 0;
|
99
|
+
// Dealing with dynamic types, so get the offset of the array data.
|
100
|
+
const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));
|
101
|
+
// Start is the static position of current slot + offset.
|
102
|
+
const start = staticPosition + offset;
|
108
103
|
const value = [];
|
109
104
|
for (let i = 0; i < length; ++i) {
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
position: dynamicChild ? consumed : i * 32,
|
105
|
+
// Move cursor along to the next slot (next offset pointer).
|
106
|
+
cursor.setPosition(start + i * 32);
|
107
|
+
const [data] = decodeParameter(cursor, param, {
|
108
|
+
staticPosition: start,
|
115
109
|
});
|
116
|
-
|
117
|
-
value.push(decodedChild.value);
|
110
|
+
value.push(data);
|
118
111
|
}
|
119
|
-
|
112
|
+
// As we have gone wondering, restore to the original position + next slot.
|
113
|
+
cursor.setPosition(staticPosition + 32);
|
114
|
+
return [value, 32];
|
120
115
|
}
|
121
|
-
// If the length of the array is known in advance,
|
122
|
-
//
|
123
|
-
// the array data is encoded contiguously after the array.
|
116
|
+
// If the length of the array is known in advance and the array is deeply static,
|
117
|
+
// then we can just decode each element in sequence.
|
124
118
|
let consumed = 0;
|
125
119
|
const value = [];
|
126
120
|
for (let i = 0; i < length; ++i) {
|
127
|
-
const
|
128
|
-
|
129
|
-
param,
|
130
|
-
position: position + consumed,
|
121
|
+
const [data, consumed_] = decodeParameter(cursor, param, {
|
122
|
+
staticPosition: staticPosition + consumed,
|
131
123
|
});
|
132
|
-
consumed +=
|
133
|
-
value.push(
|
124
|
+
consumed += consumed_;
|
125
|
+
value.push(data);
|
134
126
|
}
|
135
|
-
return
|
127
|
+
return [value, consumed];
|
136
128
|
}
|
137
|
-
function decodeBool(
|
138
|
-
return {
|
129
|
+
function decodeBool(cursor) {
|
130
|
+
return [bytesToBool(cursor.readBytes(32), { size: 32 }), 32];
|
139
131
|
}
|
140
|
-
function decodeBytes(
|
132
|
+
function decodeBytes(cursor, param, { staticPosition }) {
|
141
133
|
const [_, size] = param.type.split('bytes');
|
142
134
|
if (!size) {
|
143
|
-
//
|
144
|
-
|
145
|
-
|
146
|
-
|
135
|
+
// Dealing with dynamic types, so get the offset of the bytes data.
|
136
|
+
const offset = bytesToNumber(cursor.readBytes(32));
|
137
|
+
// Set position of the cursor to start of bytes data.
|
138
|
+
cursor.setPosition(staticPosition + offset);
|
139
|
+
const length = bytesToNumber(cursor.readBytes(32));
|
147
140
|
// If there is no length, we have zero data.
|
148
|
-
if (length === 0)
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
}
|
153
|
-
|
141
|
+
if (length === 0) {
|
142
|
+
// As we have gone wondering, restore to the original position + next slot.
|
143
|
+
cursor.setPosition(staticPosition + 32);
|
144
|
+
return ['0x', 32];
|
145
|
+
}
|
146
|
+
const data = cursor.readBytes(length);
|
147
|
+
// As we have gone wondering, restore to the original position + next slot.
|
148
|
+
cursor.setPosition(staticPosition + 32);
|
149
|
+
return [bytesToHex(data), 32];
|
154
150
|
}
|
155
|
-
const value =
|
156
|
-
|
157
|
-
});
|
158
|
-
return { consumed: 32, value };
|
151
|
+
const value = bytesToHex(cursor.readBytes(parseInt(size), 32));
|
152
|
+
return [value, 32];
|
159
153
|
}
|
160
|
-
function decodeNumber(
|
154
|
+
function decodeNumber(cursor, param) {
|
161
155
|
const signed = param.type.startsWith('int');
|
162
156
|
const size = parseInt(param.type.split('int')[1] || '256');
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
?
|
167
|
-
:
|
168
|
-
|
157
|
+
const value = cursor.readBytes(32);
|
158
|
+
return [
|
159
|
+
size > 48
|
160
|
+
? bytesToBigInt(value, { signed })
|
161
|
+
: bytesToNumber(value, { signed }),
|
162
|
+
32,
|
163
|
+
];
|
169
164
|
}
|
170
|
-
function
|
171
|
-
const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));
|
172
|
-
const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));
|
173
|
-
// If there is no length, we have zero data (empty string).
|
174
|
-
if (length === 0)
|
175
|
-
return { consumed: 32, value: '' };
|
176
|
-
const value = hexToString(trim(slice(data, offset + 32, offset + 32 + length, { strict: true })));
|
177
|
-
return { consumed: 32, value };
|
178
|
-
}
|
179
|
-
function decodeTuple(data, { param, position }) {
|
165
|
+
function decodeTuple(cursor, param, { staticPosition }) {
|
180
166
|
// Tuples can have unnamed components (i.e. they are arrays), so we must
|
181
167
|
// determine whether the tuple is named or unnamed. In the case of a named
|
182
168
|
// tuple, the value will be an object where each property is the name of the
|
@@ -189,33 +175,52 @@ function decodeTuple(data, { param, position }) {
|
|
189
175
|
// If the tuple has a dynamic child, we must first decode the offset to the
|
190
176
|
// tuple data.
|
191
177
|
if (hasDynamicChild(param)) {
|
192
|
-
|
193
|
-
|
178
|
+
// Dealing with dynamic types, so get the offset of the tuple data.
|
179
|
+
const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));
|
180
|
+
// Start is the static position of referencing slot + offset.
|
181
|
+
const start = staticPosition + offset;
|
194
182
|
for (let i = 0; i < param.components.length; ++i) {
|
195
183
|
const component = param.components[i];
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
position: consumed,
|
184
|
+
cursor.setPosition(start + consumed);
|
185
|
+
const [data, consumed_] = decodeParameter(cursor, component, {
|
186
|
+
staticPosition: start,
|
200
187
|
});
|
201
|
-
consumed +=
|
202
|
-
value[hasUnnamedChild ? i : component?.name] =
|
188
|
+
consumed += consumed_;
|
189
|
+
value[hasUnnamedChild ? i : component?.name] = data;
|
203
190
|
}
|
204
|
-
|
191
|
+
// As we have gone wondering, restore to the original position + next slot.
|
192
|
+
cursor.setPosition(staticPosition + 32);
|
193
|
+
return [value, 32];
|
205
194
|
}
|
206
195
|
// If the tuple has static children, we can just decode each component
|
207
196
|
// in sequence.
|
208
197
|
for (let i = 0; i < param.components.length; ++i) {
|
209
198
|
const component = param.components[i];
|
210
|
-
const
|
211
|
-
|
212
|
-
param: component,
|
213
|
-
position: position + consumed,
|
199
|
+
const [data, consumed_] = decodeParameter(cursor, component, {
|
200
|
+
staticPosition,
|
214
201
|
});
|
215
|
-
|
216
|
-
|
202
|
+
value[hasUnnamedChild ? i : component?.name] = data;
|
203
|
+
consumed += consumed_;
|
204
|
+
}
|
205
|
+
return [value, consumed];
|
206
|
+
}
|
207
|
+
function decodeString(cursor, { staticPosition }) {
|
208
|
+
// Get offset to start of string data.
|
209
|
+
const offset = bytesToNumber(cursor.readBytes(32));
|
210
|
+
// Start is the static position of current slot + offset.
|
211
|
+
const start = staticPosition + offset;
|
212
|
+
cursor.setPosition(start);
|
213
|
+
const length = bytesToNumber(cursor.readBytes(32));
|
214
|
+
// If there is no length, we have zero data (empty string).
|
215
|
+
if (length === 0) {
|
216
|
+
cursor.setPosition(staticPosition + 32);
|
217
|
+
return ['', 32];
|
217
218
|
}
|
218
|
-
|
219
|
+
const data = cursor.readBytes(length, 32);
|
220
|
+
const value = bytesToString(trim(data));
|
221
|
+
// As we have gone wondering, restore to the original position + next slot.
|
222
|
+
cursor.setPosition(staticPosition + 32);
|
223
|
+
return [value, 32];
|
219
224
|
}
|
220
225
|
function hasDynamicChild(param) {
|
221
226
|
const { type } = param;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"decodeAbiParameters.js","sourceRoot":"","sources":["../../../utils/abi/decodeAbiParameters.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"decodeAbiParameters.js","sourceRoot":"","sources":["../../../utils/abi/decodeAbiParameters.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { AbiDecodingDataSizeTooSmallError, AbiEventSignatureEmptyTopicsError, AbiEventSignatureNotFoundError, DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';
|
2
|
+
import { size } from '../data/size.js';
|
2
3
|
import { getEventSelector, } from '../hash/getEventSelector.js';
|
4
|
+
import { PositionOutOfBoundsError } from '../../errors/cursor.js';
|
3
5
|
import { decodeAbiParameters, } from './decodeAbiParameters.js';
|
4
6
|
import { formatAbiItem } from './formatAbiItem.js';
|
5
7
|
const docsPath = '/docs/contract/decodeEventLog';
|
@@ -46,12 +48,13 @@ export function decodeEventLog(parameters) {
|
|
46
48
|
}
|
47
49
|
catch (err) {
|
48
50
|
if (strict) {
|
49
|
-
if (err instanceof AbiDecodingDataSizeTooSmallError
|
51
|
+
if (err instanceof AbiDecodingDataSizeTooSmallError ||
|
52
|
+
err instanceof PositionOutOfBoundsError)
|
50
53
|
throw new DecodeLogDataMismatch({
|
51
54
|
abiItem,
|
52
|
-
data:
|
53
|
-
params:
|
54
|
-
size:
|
55
|
+
data: data,
|
56
|
+
params: nonIndexedInputs,
|
57
|
+
size: size(data),
|
55
58
|
});
|
56
59
|
throw err;
|
57
60
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"decodeEventLog.js","sourceRoot":"","sources":["../../../utils/abi/decodeEventLog.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAEhC,iCAAiC,EAEjC,8BAA8B,EAE9B,qBAAqB,EAErB,uBAAuB,GAExB,MAAM,qBAAqB,CAAA;AAa5B,OAAO,EAEL,gBAAgB,GACjB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAEL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAA+B,aAAa,EAAE,MAAM,oBAAoB,CAAA;AA2D/E,MAAM,QAAQ,GAAG,+BAA+B,CAAA;AAEhD,MAAM,UAAU,cAAc,CAO5B,UAA0E;IAE1E,MAAM,EACJ,GAAG,EACH,IAAI,EACJ,MAAM,EAAE,OAAO,EACf,MAAM,GACP,GAAG,UAAsC,CAAA;IAE1C,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAA;IAC9B,MAAM,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,CAAA;IACxC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,iCAAiC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEzE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,OAAO;QAClB,SAAS,KAAK,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAoB,CAAC,CACtE,CAAA;IACD,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAC7D,MAAM,IAAI,8BAA8B,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChC,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/D,IAAI,IAAI,GAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnC,gCAAgC;IAChC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,uBAAuB,CAAC;gBAChC,OAAO;gBACP,KAAK,EAAE,KAA4C;aACpD,CAAC,CAAA;QACJ,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;gBAC/D,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,SAAS;wBAAE,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,CAAA;yBAC1C,CAAC;wBACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;wBAClD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,MAAM,EAAE,CAAC;oBACX,
|
1
|
+
{"version":3,"file":"decodeEventLog.js","sourceRoot":"","sources":["../../../utils/abi/decodeEventLog.ts"],"names":[],"mappings":"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"}
|
package/_esm/utils/cursor.js
CHANGED
@@ -1,8 +1,18 @@
|
|
1
|
-
import { NegativeOffsetError, PositionOutOfBoundsError, } from '../errors/cursor.js';
|
1
|
+
import { NegativeOffsetError, PositionOutOfBoundsError, RecursiveReadLimitExceededError, } from '../errors/cursor.js';
|
2
2
|
const staticCursor = {
|
3
3
|
bytes: new Uint8Array(),
|
4
4
|
dataView: new DataView(new ArrayBuffer(0)),
|
5
5
|
position: 0,
|
6
|
+
positionReadCount: new Map(),
|
7
|
+
recursiveReadCount: 0,
|
8
|
+
recursiveReadLimit: Infinity,
|
9
|
+
assertReadLimit() {
|
10
|
+
if (this.recursiveReadCount >= this.recursiveReadLimit)
|
11
|
+
throw new RecursiveReadLimitExceededError({
|
12
|
+
count: this.recursiveReadCount + 1,
|
13
|
+
limit: this.recursiveReadLimit,
|
14
|
+
});
|
15
|
+
},
|
6
16
|
assertPosition(position) {
|
7
17
|
if (position < 0 || position > this.bytes.length - 1)
|
8
18
|
throw new PositionOutOfBoundsError({
|
@@ -17,6 +27,9 @@ const staticCursor = {
|
|
17
27
|
this.assertPosition(position);
|
18
28
|
this.position = position;
|
19
29
|
},
|
30
|
+
getReadCount(position) {
|
31
|
+
return this.positionReadCount.get(position || this.position) || 0;
|
32
|
+
},
|
20
33
|
incrementPosition(offset) {
|
21
34
|
if (offset < 0)
|
22
35
|
throw new NegativeOffsetError({ offset });
|
@@ -87,44 +100,68 @@ const staticCursor = {
|
|
87
100
|
this.position += 4;
|
88
101
|
},
|
89
102
|
readByte() {
|
103
|
+
this.assertReadLimit();
|
104
|
+
this._touch();
|
90
105
|
const value = this.inspectByte();
|
91
106
|
this.position++;
|
92
107
|
return value;
|
93
108
|
},
|
94
|
-
readBytes(length) {
|
109
|
+
readBytes(length, size) {
|
110
|
+
this.assertReadLimit();
|
111
|
+
this._touch();
|
95
112
|
const value = this.inspectBytes(length);
|
96
|
-
this.position += length;
|
113
|
+
this.position += size ?? length;
|
97
114
|
return value;
|
98
115
|
},
|
99
116
|
readUint8() {
|
117
|
+
this.assertReadLimit();
|
118
|
+
this._touch();
|
100
119
|
const value = this.inspectUint8();
|
101
120
|
this.position += 1;
|
102
121
|
return value;
|
103
122
|
},
|
104
123
|
readUint16() {
|
124
|
+
this.assertReadLimit();
|
125
|
+
this._touch();
|
105
126
|
const value = this.inspectUint16();
|
106
127
|
this.position += 2;
|
107
128
|
return value;
|
108
129
|
},
|
109
130
|
readUint24() {
|
131
|
+
this.assertReadLimit();
|
132
|
+
this._touch();
|
110
133
|
const value = this.inspectUint24();
|
111
134
|
this.position += 3;
|
112
135
|
return value;
|
113
136
|
},
|
114
137
|
readUint32() {
|
138
|
+
this.assertReadLimit();
|
139
|
+
this._touch();
|
115
140
|
const value = this.inspectUint32();
|
116
141
|
this.position += 4;
|
117
142
|
return value;
|
118
143
|
},
|
119
144
|
setPosition(position) {
|
145
|
+
const oldPosition = this.position;
|
120
146
|
this.assertPosition(position);
|
121
147
|
this.position = position;
|
148
|
+
return () => (this.position = oldPosition);
|
149
|
+
},
|
150
|
+
_touch() {
|
151
|
+
if (this.recursiveReadLimit === Infinity)
|
152
|
+
return;
|
153
|
+
const count = this.getReadCount();
|
154
|
+
this.positionReadCount.set(this.position, count + 1);
|
155
|
+
if (count > 0)
|
156
|
+
this.recursiveReadCount++;
|
122
157
|
},
|
123
158
|
};
|
124
|
-
export function createCursor(bytes) {
|
159
|
+
export function createCursor(bytes, { recursiveReadLimit = 8192 } = {}) {
|
125
160
|
const cursor = Object.create(staticCursor);
|
126
161
|
cursor.bytes = bytes;
|
127
162
|
cursor.dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
163
|
+
cursor.positionReadCount = new Map();
|
164
|
+
cursor.recursiveReadLimit = recursiveReadLimit;
|
128
165
|
return cursor;
|
129
166
|
}
|
130
167
|
//# sourceMappingURL=cursor.js.map
|
package/_esm/utils/cursor.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../utils/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../utils/cursor.ts"],"names":[],"mappings":"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"}
|
@@ -56,7 +56,7 @@ export function bytesToBigInt(bytes, opts = {}) {
|
|
56
56
|
if (typeof opts.size !== 'undefined')
|
57
57
|
assertSize(bytes, { size: opts.size });
|
58
58
|
const hex = bytesToHex(bytes, opts);
|
59
|
-
return hexToBigInt(hex);
|
59
|
+
return hexToBigInt(hex, opts);
|
60
60
|
}
|
61
61
|
/**
|
62
62
|
* Decodes a byte array into a boolean.
|
@@ -100,7 +100,7 @@ export function bytesToNumber(bytes, opts = {}) {
|
|
100
100
|
if (typeof opts.size !== 'undefined')
|
101
101
|
assertSize(bytes, { size: opts.size });
|
102
102
|
const hex = bytesToHex(bytes, opts);
|
103
|
-
return hexToNumber(hex);
|
103
|
+
return hexToNumber(hex, opts);
|
104
104
|
}
|
105
105
|
/**
|
106
106
|
* Decodes a byte array into a UTF-8 string.
|