@curvhex/orm 0.1.3 → 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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"}
@@ -33,6 +33,7 @@ export interface ClientFilter {
33
33
  offset: number;
34
34
  };
35
35
  condition: {
36
+ eq?: any;
36
37
  gt?: any;
37
38
  gte?: any;
38
39
  lt?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/core/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErD,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC;AAGtD,MAAM,MAAM,aAAa,CAAC,CAAC,IACrB,CAAC,GACD;IAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,IAAI;KAChD,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC;CAChD,CAAC;AA4CF,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAClD,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAoC5D;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,SAAS,EAAE;QAAE,EAAE,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CACxG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5D,OAAO,EAAE,CAAC,EAAE,EACZ,aAAa,EAAE,YAAY,EAAE,GAC9B,CAAC,EAAE,CAmBL"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/core/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErD,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC;AAGtD,MAAM,MAAM,aAAa,CAAC,CAAC,IACrB,CAAC,GACD;IAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,eAAe,IAAI;KAChD,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC;CAChD,CAAC;AA4CF,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAClD,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAqC5D;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,SAAS,EAAE;QAAE,EAAE,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CAClH;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5D,OAAO,EAAE,CAAC,EAAE,EACZ,aAAa,EAAE,YAAY,EAAE,GAC9B,CAAC,EAAE,CAoBL"}
@@ -63,7 +63,8 @@ function buildFilters(model, where) {
63
63
  const eqValue = isDirectValue(condition)
64
64
  ? condition
65
65
  : condition?.eq;
66
- if (eqValue !== undefined) {
66
+ // offset === -1 means field comes after a variable-length field — must filter client-side
67
+ if (eqValue !== undefined && fieldDef.offset !== -1) {
67
68
  const encoded = encodeValue(fieldDef.type, eqValue);
68
69
  rpcFilters.push({
69
70
  memcmp: {
@@ -73,13 +74,15 @@ function buildFilters(model, where) {
73
74
  });
74
75
  continue;
75
76
  }
76
- clientFilters.push({ fieldName, fieldDef, condition: condition });
77
+ clientFilters.push({ fieldName, fieldDef, condition: isDirectValue(condition) ? { eq: condition } : condition });
77
78
  }
78
79
  return { rpcFilters, clientFilters };
79
80
  }
80
81
  function applyClientFilters(records, clientFilters) {
81
82
  return records.filter(record => clientFilters.every(({ fieldName, condition }) => {
82
83
  const val = record[fieldName];
84
+ if (condition.eq !== undefined && val !== condition.eq)
85
+ return false;
83
86
  if (condition.gt !== undefined && !(val > condition.gt))
84
87
  return false;
85
88
  if (condition.gte !== undefined && !(val >= condition.gte))
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/core/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/core/filters.ts"],"names":[],"mappings":";;AA+DA,oCAwCC;AAQD,gDAuBC;AAjHD,kDAAkD;AAClD,SAAS,WAAW,CAAC,IAAe,EAAE,KAAc;IAChD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,IAAI,CAAC;QAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,UAAU,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,KAAK,KAAK,CAAC;QAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,aAAa,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,KAAK,KAAK,CAAC;QAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,aAAa,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,gBAAgB,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,eAAe,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC;QACb,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,OAAO,YAAY,CAAC,KAAe,CAAC,CAAC;QACzC,CAAC;QACD;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;IACxE,CAAC;AACL,CAAC;AAGD,SAAgB,YAAY,CACxB,KAAQ,EACR,KAAqB;IAErB,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE;gBACJ,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC7D;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC;YACpC,CAAC,CAAC,SAAS;YACX,CAAC,CAAE,SAAiB,EAAE,EAAE,CAAC;QAE7B,0FAA0F;QAC1F,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,UAAU,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE;oBACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACpC;aACJ,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAgB,EAAE,CAAC,CAAC;IAC5H,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACzC,CAAC;AAQD,SAAgB,kBAAkB,CAC9B,OAAY,EACZ,aAA6B;IAE7B,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC3B,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9B,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QACrE,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5E,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC7B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC;IACtB,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC;AAC7F,CAAC;AAED,MAAM,eAAe,GAAG,4DAA4D,CAAC;AAErF,SAAS,YAAY,CAAC,GAAW;IAC7B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAClE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,eAAe,EAAE,MAAM,SAAS,CAAC;AAI3E,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAK7C;AAcD,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,KAAK,UAAU,GAAG;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,eAAe,CAuB3E"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,eAAe,EAAE,MAAM,SAAS,CAAC;AAI3E,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAK7C;AAcD,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,KAAK,UAAU,GAAG;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,eAAe,CAqB3E"}
@@ -24,17 +24,17 @@ const FIELD_SIZES = {
24
24
  function defineModel(input) {
25
25
  const fields = {};
26
26
  let offset = input.discriminator.length;
27
+ let dynamicOffset = false; // true after first variable-length field
27
28
  for (const [name, field] of Object.entries(input.fields)) {
28
29
  const baseSize = FIELD_SIZES[field.type];
29
- fields[name] = { type: field.type, offset, maxLen: field.maxLen };
30
+ // -1 signals "offset unknown at compile time — must filter client-side"
31
+ fields[name] = { type: field.type, offset: dynamicOffset ? -1 : offset, maxLen: field.maxLen };
30
32
  if (baseSize === 0) {
31
- // variable-length: 4-byte length prefix + maxLen payload
32
- if (field.maxLen === undefined) {
33
- throw new Error(`Field "${name}" is type "${field.type}" — provide maxLen so offsets can be calculated correctly.`);
34
- }
35
- offset += 4 + field.maxLen;
33
+ // string/bytes: actual on-chain size is dynamic, all subsequent offsets are unknown
34
+ dynamicOffset = true;
35
+ offset = -1;
36
36
  }
37
- else {
37
+ else if (!dynamicOffset) {
38
38
  offset += baseSize;
39
39
  }
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":";;AAIA,wBAKC;AAoBD,kCAuBC;AAnDD,mCAAoC;AAEpC,oEAAoE;AACpE,SAAgB,MAAM,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;SACzB,MAAM,EAAE,CAAC;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,WAAW,GAA8B;IAC3C,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACZ,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IAClB,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;CACX,CAAC;AAQF,SAAgB,WAAW,CAAuB,KAAQ;IACtD,MAAM,MAAM,GAAoC,EAAE,CAAC;IACnD,IAAI,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAElE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACjB,yDAAyD;YACzD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACX,UAAU,IAAI,cAAc,KAAK,CAAC,IAAI,4DAA4D,CACrG,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,QAAQ,CAAC;QACvB,CAAC;IACL,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":";;AAIA,wBAKC;AAoBD,kCAqBC;AAjDD,mCAAoC;AAEpC,oEAAoE;AACpE,SAAgB,MAAM,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;SACzB,MAAM,EAAE,CAAC;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,WAAW,GAA8B;IAC3C,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACZ,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IAClB,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;CACX,CAAC;AAQF,SAAgB,WAAW,CAAuB,KAAQ;IACtD,MAAM,MAAM,GAAoC,EAAE,CAAC;IACnD,IAAI,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;IACxC,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,yCAAyC;IAEpE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,wEAAwE;QACxE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAE/F,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACjB,oFAAoF;YACpF,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM,GAAG,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC;QACvB,CAAC;IACL,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvhex/orm",
3
- "version": "0.1.3",
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",