@curvhex/orm 0.1.4 → 0.1.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/core/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,EACjD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAChB,UAAU,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/core/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,EACjD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAChB,UAAU,CAAC,CAAC,CAAC,CAwFf"}
|
|
@@ -3,52 +3,82 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.deserialize = deserialize;
|
|
4
4
|
function deserialize(model, data, address) {
|
|
5
5
|
const result = { address };
|
|
6
|
+
// Track the real runtime offset for fields that come after variable-length fields
|
|
7
|
+
let runtimeOffset = -1;
|
|
6
8
|
for (const [name, field] of Object.entries(model.fields)) {
|
|
7
|
-
const { type
|
|
9
|
+
const { type } = field;
|
|
10
|
+
// Use runtime offset if we've passed a variable-length field, otherwise use schema offset
|
|
11
|
+
const offset = runtimeOffset !== -1 ? runtimeOffset : field.offset;
|
|
8
12
|
switch (type) {
|
|
9
13
|
case 'u8':
|
|
10
14
|
result[name] = data.readUInt8(offset);
|
|
15
|
+
if (runtimeOffset !== -1)
|
|
16
|
+
runtimeOffset += 1;
|
|
11
17
|
break;
|
|
12
18
|
case 'u16':
|
|
13
19
|
result[name] = data.readUInt16LE(offset);
|
|
20
|
+
if (runtimeOffset !== -1)
|
|
21
|
+
runtimeOffset += 2;
|
|
14
22
|
break;
|
|
15
23
|
case 'u32':
|
|
16
24
|
result[name] = data.readUInt32LE(offset);
|
|
25
|
+
if (runtimeOffset !== -1)
|
|
26
|
+
runtimeOffset += 4;
|
|
17
27
|
break;
|
|
18
28
|
case 'u64':
|
|
19
29
|
result[name] = data.readBigUInt64LE(offset);
|
|
30
|
+
if (runtimeOffset !== -1)
|
|
31
|
+
runtimeOffset += 8;
|
|
20
32
|
break;
|
|
21
|
-
case 'u128':
|
|
33
|
+
case 'u128': {
|
|
22
34
|
const lo = data.readBigUInt64LE(offset);
|
|
23
35
|
const hi = data.readBigUInt64LE(offset + 8);
|
|
24
36
|
result[name] = (hi << 64n) | lo;
|
|
37
|
+
if (runtimeOffset !== -1)
|
|
38
|
+
runtimeOffset += 16;
|
|
25
39
|
break;
|
|
40
|
+
}
|
|
26
41
|
case 'i8':
|
|
27
42
|
result[name] = data.readInt8(offset);
|
|
43
|
+
if (runtimeOffset !== -1)
|
|
44
|
+
runtimeOffset += 1;
|
|
28
45
|
break;
|
|
29
46
|
case 'i16':
|
|
30
47
|
result[name] = data.readInt16LE(offset);
|
|
48
|
+
if (runtimeOffset !== -1)
|
|
49
|
+
runtimeOffset += 2;
|
|
31
50
|
break;
|
|
32
51
|
case 'i32':
|
|
33
52
|
result[name] = data.readInt32LE(offset);
|
|
53
|
+
if (runtimeOffset !== -1)
|
|
54
|
+
runtimeOffset += 4;
|
|
34
55
|
break;
|
|
35
56
|
case 'i64':
|
|
36
57
|
result[name] = data.readBigInt64LE(offset);
|
|
58
|
+
if (runtimeOffset !== -1)
|
|
59
|
+
runtimeOffset += 8;
|
|
37
60
|
break;
|
|
38
61
|
case 'bool':
|
|
39
62
|
result[name] = data.readUInt8(offset) === 1;
|
|
63
|
+
if (runtimeOffset !== -1)
|
|
64
|
+
runtimeOffset += 1;
|
|
40
65
|
break;
|
|
41
66
|
case 'publicKey':
|
|
42
67
|
result[name] = base58Encode(data.slice(offset, offset + 32));
|
|
68
|
+
if (runtimeOffset !== -1)
|
|
69
|
+
runtimeOffset += 32;
|
|
43
70
|
break;
|
|
44
71
|
case 'string': {
|
|
45
72
|
const len = data.readUInt32LE(offset);
|
|
46
73
|
result[name] = data.slice(offset + 4, offset + 4 + len).toString('utf8');
|
|
74
|
+
// Switch to runtime tracking after this variable-length field
|
|
75
|
+
runtimeOffset = offset + 4 + len;
|
|
47
76
|
break;
|
|
48
77
|
}
|
|
49
78
|
case 'bytes': {
|
|
50
79
|
const len = data.readUInt32LE(offset);
|
|
51
80
|
result[name] = data.slice(offset + 4, offset + 4 + len).toString('hex');
|
|
81
|
+
runtimeOffset = offset + 4 + len;
|
|
52
82
|
break;
|
|
53
83
|
}
|
|
54
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/core/deserializer.ts"],"names":[],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/core/deserializer.ts"],"names":[],"mappings":"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"}
|