@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,CAoEf"}
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, offset } = field;
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":"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"}
1
+ {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/core/deserializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvhex/orm",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "TypeScript ORM for Solana PDA accounts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",