@arkiv-network/sdk 0.6.8 → 0.7.0-dev.1

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 (101) hide show
  1. package/README.md +52 -16
  2. package/dist/consts-Bz0LZQZY.js +7 -0
  3. package/dist/consts-Bz0LZQZY.js.map +1 -0
  4. package/dist/consts-CxT1-RXU.cjs +18 -0
  5. package/dist/entity-BhSXaB23.cjs +81 -0
  6. package/dist/{query-CO6f35AE.d.cts → entity-CN41IOrq.d.cts} +125 -59
  7. package/dist/entity-CN41IOrq.d.cts.map +1 -0
  8. package/dist/entity-DGfVyB-a.js +71 -0
  9. package/dist/entity-DGfVyB-a.js.map +1 -0
  10. package/dist/{query-BhdmAzYg.d.ts → entity-NnEVlePN.d.ts} +125 -59
  11. package/dist/entity-NnEVlePN.d.ts.map +1 -0
  12. package/dist/index-ClkpS6s_.d.ts +481 -0
  13. package/dist/index-ClkpS6s_.d.ts.map +1 -0
  14. package/dist/index-w4qop0Pe.d.cts +481 -0
  15. package/dist/index-w4qop0Pe.d.cts.map +1 -0
  16. package/dist/index.cjs +285 -233
  17. package/dist/index.d.cts +100 -6
  18. package/dist/index.d.cts.map +1 -1
  19. package/dist/index.d.ts +101 -7
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +280 -230
  22. package/dist/index.js.map +1 -1
  23. package/dist/payload-BpNUPOnY.js +13 -0
  24. package/dist/payload-BpNUPOnY.js.map +1 -0
  25. package/dist/{payload-Da9gJMG5.d.ts → payload-C2KHOUoj.d.ts} +1 -1
  26. package/dist/{payload-Da9gJMG5.d.ts.map → payload-C2KHOUoj.d.ts.map} +1 -1
  27. package/dist/{payload-vwU3Rc6P.cjs → payload-D8YLKcJj.cjs} +1 -18
  28. package/dist/query/index.cjs +11 -28
  29. package/dist/query/index.d.cts +3 -3
  30. package/dist/query/index.d.ts +3 -3
  31. package/dist/query/index.js +8 -28
  32. package/dist/query/index.js.map +1 -1
  33. package/dist/{queryBuilder-DonAg1aq.js → queryBuilder-BE_XhLLa.js} +303 -152
  34. package/dist/queryBuilder-BE_XhLLa.js.map +1 -0
  35. package/dist/{queryBuilder-DM-YO1Y7.cjs → queryBuilder-J37buGCi.cjs} +372 -149
  36. package/dist/types/index.cjs +4 -1
  37. package/dist/types/index.d.cts +2 -2
  38. package/dist/types/index.d.ts +2 -2
  39. package/dist/types/index.js +4 -1
  40. package/dist/utils/index.cjs +4 -10
  41. package/dist/utils/index.d.cts +0 -1
  42. package/dist/utils/index.d.cts.map +1 -1
  43. package/dist/utils/index.d.ts +1 -2
  44. package/dist/utils/index.d.ts.map +1 -1
  45. package/dist/utils/index.js +2 -3
  46. package/dist/utils/index.js.map +1 -1
  47. package/package.json +11 -15
  48. package/src/actions/public/buildQuery.ts +4 -0
  49. package/src/actions/public/query.ts +10 -0
  50. package/src/actions/public/subscribeEntityEvents.ts +25 -51
  51. package/src/actions/wallet/changeOwnership.ts +6 -6
  52. package/src/actions/wallet/createEntity.ts +19 -6
  53. package/src/actions/wallet/deleteEntity.ts +2 -3
  54. package/src/actions/wallet/extendEntity.ts +9 -5
  55. package/src/actions/wallet/mutateEntities.ts +11 -54
  56. package/src/actions/wallet/updateEntity.ts +15 -6
  57. package/src/clients/createPublicClient.test.ts +2 -0
  58. package/src/clients/decorators/arkivPublic.ts +67 -2
  59. package/src/clients/decorators/arkivWallet.ts +23 -1
  60. package/src/consts.ts +2 -1
  61. package/src/errors.ts +46 -0
  62. package/src/index.ts +0 -3
  63. package/src/query/engine.test.ts +45 -0
  64. package/src/query/engine.ts +28 -14
  65. package/src/query/index.ts +1 -0
  66. package/src/query/predicate.test.ts +43 -0
  67. package/src/query/predicate.ts +14 -10
  68. package/src/query/queryBuilder.test.ts +22 -0
  69. package/src/query/queryBuilder.ts +221 -106
  70. package/src/query/queryResult.ts +13 -7
  71. package/src/query/selectQueryBuilder.test.ts +213 -0
  72. package/src/query/selection.test.ts +120 -0
  73. package/src/query/selection.ts +116 -0
  74. package/src/types/attributes.ts +25 -1
  75. package/src/types/entity.ts +12 -2
  76. package/src/types/events.ts +14 -16
  77. package/src/types/index.ts +1 -0
  78. package/src/types/rpcSchema.ts +7 -2
  79. package/src/utils/arkivTransactions.test.ts +260 -0
  80. package/src/utils/arkivTransactions.ts +255 -92
  81. package/src/utils/entities.ts +17 -7
  82. package/src/utils/index.ts +0 -1
  83. package/src/utils/payload.ts +4 -2
  84. package/src/utils/validation.test.ts +106 -0
  85. package/src/utils/validation.ts +80 -0
  86. package/dist/accounts/index.cjs +0 -9
  87. package/dist/accounts/index.d.cts +0 -1
  88. package/dist/accounts/index.d.ts +0 -1
  89. package/dist/accounts/index.js +0 -1
  90. package/dist/payload-DKBYYjeA.js +0 -18
  91. package/dist/payload-DKBYYjeA.js.map +0 -1
  92. package/dist/query-BhdmAzYg.d.ts.map +0 -1
  93. package/dist/query-CO6f35AE.d.cts.map +0 -1
  94. package/dist/queryBuilder-BvoQXa_u.d.ts +0 -328
  95. package/dist/queryBuilder-BvoQXa_u.d.ts.map +0 -1
  96. package/dist/queryBuilder-DonAg1aq.js.map +0 -1
  97. package/dist/queryBuilder-zTsKXctT.d.cts +0 -328
  98. package/dist/queryBuilder-zTsKXctT.d.cts.map +0 -1
  99. package/src/accounts/index.ts +0 -1
  100. /package/dist/{types-H-TSmRpm.js → types-Ci4BRClw.js} +0 -0
  101. /package/dist/{types-o3zWarRp.cjs → types-a8gm_IaQ.cjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { Account, Chain, Client, Hash, Hex, RpcSchema, Transport } from "viem";
1
+ import { Account, Address, Chain, Client, Hash, Hex, RpcSchema, Transport } from "viem";
2
2
 
3
3
  //#region src/types/mimeTypes.d.ts
4
4
  type MimeType = "text/plain" | "text/html" | "text/css" | "text/csv" | "text/xml" | "text/javascript" | "application/json" | "application/xml" | "application/pdf" | "application/zip" | "application/gzip" | "application/octet-stream" | "application/javascript" | "application/x-www-form-urlencoded" | "image/png" | "image/jpeg" | "image/webp" | "image/gif" | "image/svg+xml" | "audio/mpeg" | "audio/wav" | "audio/ogg" | "video/mp4" | "video/webm" | "video/ogg" | "multipart/form-data";
@@ -15,15 +15,17 @@ type RpcEntity = {
15
15
  operationIndexInTransaction: Hex;
16
16
  owner: Hex;
17
17
  creator: Hex;
18
- stringAttributes?: [{
18
+ attributes?: {
19
19
  key: string;
20
20
  value: string;
21
- }];
22
- numericAttributes?: [{
23
- key: string;
24
- value: Hex;
25
- }];
21
+ valueType: RpcAttributeValueType;
22
+ }[];
26
23
  };
24
+ declare enum RpcAttributeValueType {
25
+ Uint = 1,
26
+ String = 2,
27
+ EntityKey = 3,
28
+ }
27
29
  type RpcOrderByAttribute = {
28
30
  name: string;
29
31
  type: "string" | "numeric";
@@ -81,17 +83,52 @@ type GetBlockTimingReturnType = {
81
83
  blockDuration: number;
82
84
  };
83
85
  //#endregion
86
+ //#region src/actions/public/query.d.ts
87
+ type QueryOptionsIncludeData = {
88
+ attributes?: boolean;
89
+ payload?: boolean;
90
+ metadata?: boolean;
91
+ };
92
+ /**
93
+ * @deprecated Server-side ordering is not supported by the network. Sort the fetched
94
+ * entities in JavaScript instead (e.g. `entities.sort(...)`). This type will be removed
95
+ * in a future release.
96
+ */
97
+ type QueryOptionsOrderBy = {
98
+ name: string;
99
+ type: "string" | "numeric";
100
+ desc: "asc" | "desc";
101
+ };
102
+ type QueryOptions = {
103
+ includeData?: QueryOptionsIncludeData;
104
+ atBlock?: bigint;
105
+ /**
106
+ * @deprecated Server-side ordering is not supported by the network, so this option has no
107
+ * effect on the returned order. Sort the fetched entities in JavaScript instead
108
+ * (e.g. `entities.sort(...)`). This option will be removed in a future release.
109
+ */
110
+ orderBy?: QueryOptionsOrderBy[];
111
+ resultsPerPage?: number | undefined;
112
+ cursor?: string | undefined;
113
+ };
114
+ type QueryReturnType = {
115
+ entities: Entity[];
116
+ cursor: string | undefined;
117
+ blockNumber: bigint | undefined;
118
+ };
119
+ //#endregion
84
120
  //#region src/actions/wallet/changeOwnership.d.ts
85
121
  /**
86
- * Parameters for the deleteEntity function.
87
- * - entityKey: The key of the entity to delete.
122
+ * Parameters for the changeOwnership function.
123
+ * - entityKey: The key of the entity.
124
+ * - newOwner: The address of the new owner.
88
125
  */
89
126
  type ChangeOwnershipParameters = {
90
127
  entityKey: Hex;
91
128
  newOwner: Hex;
92
129
  };
93
130
  /**
94
- * Return type for the deleteEntity function.
131
+ * Return type for the changeOwnership function.
95
132
  * - entityKey: The key of the entity.
96
133
  * - txHash: The transaction hash.
97
134
  */
@@ -104,14 +141,24 @@ type ChangeOwnershipReturnType = {
104
141
  /**
105
142
  * Parameters for the createEntity function.
106
143
  * - payload: The payload of the entity.
107
- * - attributes: The attributes of the entity.
144
+ * - attributes: The attributes of the entity. Attribute values may be strings
145
+ * or numbers, but numeric values **must be integers**. To store a non-integer,
146
+ * scale it to an integer (e.g. `1.5` -> `1500`) to preserve numeric ordering,
147
+ * or pass it as a string (e.g. `"1.5"`). A non-integer numeric value throws an
148
+ * {@link InvalidAttributeError}.
108
149
  * - contentType: The content type of the entity.
109
- * - expiresIn: The expires in of the entity in seconds.
150
+ * - expiresIn: How long until the entity expires, in seconds. Because Arkiv
151
+ * measures expiration in blocks (1 block = 2 seconds), this **must be a
152
+ * positive integer and a multiple of the block time (2 seconds)**
153
+ * Invalid values throw an {@link InvalidExpirationError}.
110
154
  */
111
155
  type CreateEntityParameters = {
112
156
  payload: Uint8Array;
157
+ /** Entity attributes. Numeric values must be integers (scale non-integers, e.g. `1.5` -> `1500`, or use a string). Throws {@link InvalidAttributeError} otherwise. */
113
158
  attributes: Attribute[];
114
159
  contentType: MimeType | string;
160
+ /** Seconds until expiry. Must be a positive integer and a multiple of the 2s block time.
161
+ * Throws {@link InvalidExpirationError} otherwise. */
115
162
  expiresIn: number;
116
163
  };
117
164
  /**
@@ -146,10 +193,15 @@ type DeleteEntityReturnType = {
146
193
  /**
147
194
  * Parameters for the extendEntity function.
148
195
  * - entityKey: The key of the entity to extend.
149
- * - expiresIn: The expires in of the entity in seconds.
196
+ * - expiresIn: How long to extend the entity by, in seconds. Because Arkiv
197
+ * measures expiration in blocks (1 block = 2 seconds), this **must be a
198
+ * positive integer and a multiple of the block time (2 seconds)**.
199
+ * Invalid values throw an {@link InvalidExpirationError}.
150
200
  */
151
201
  type ExtendEntityParameters = {
152
202
  entityKey: Hex;
203
+ /** Seconds to extend by. Must be a positive integer and a multiple of the 2s block time.
204
+ * Throws {@link InvalidExpirationError} otherwise. */
153
205
  expiresIn: number;
154
206
  };
155
207
  /**
@@ -167,15 +219,25 @@ type ExtendEntityReturnType = {
167
219
  * Parameters for the updateEntity function.
168
220
  * - entityKey: The key of the entity to update.
169
221
  * - payload: The payload of the entity.
170
- * - attributes: The attributes of the entity.
222
+ * - attributes: The attributes of the entity. Attribute values may be strings
223
+ * or numbers, but numeric values **must be integers**. To store a non-integer,
224
+ * scale it to an integer (e.g. `1.5` -> `1500`) to preserve numeric ordering,
225
+ * or pass it as a string (e.g. `"1.5"`). A non-integer numeric value throws an
226
+ * {@link InvalidAttributeError}.
171
227
  * - contentType: The content type of the entity.
172
- * - expiresIn: The expires in of the entity in seconds.
228
+ * - expiresIn: How long until the entity expires, in seconds. Because Arkiv
229
+ * measures expiration in blocks (1 block = 2 seconds), this **must be a
230
+ * positive integer and a multiple of the block time (2 seconds)**.
231
+ * Invalid values throw an {@link InvalidExpirationError}.
173
232
  */
174
233
  type UpdateEntityParameters = {
175
234
  entityKey: Hex;
176
235
  payload: Uint8Array;
236
+ /** Entity attributes. Numeric values must be integers (scale non-integers, e.g. `1.5` -> `1500`, or use a string). Throws {@link InvalidAttributeError} otherwise. */
177
237
  attributes: Attribute[];
178
238
  contentType: MimeType | string;
239
+ /** Seconds until expiry. Must be a positive integer and a multiple of the 2s block time.
240
+ * Throws {@link InvalidExpirationError} otherwise. */
179
241
  expiresIn: number;
180
242
  };
181
243
  /**
@@ -222,44 +284,64 @@ type MutateEntitiesReturnType = {
222
284
  };
223
285
  //#endregion
224
286
  //#region src/types/attributes.d.ts
287
+ /**
288
+ * An entity attribute (key/value pair).
289
+ *
290
+ * Arkiv supports string, Hex and number values.
291
+ *
292
+ * Hex values are stored as the on-chain `EntityKey` type **only when they are
293
+ * exactly 32 bytes** (66 characters, e.g. an entity key). Hex-looking strings
294
+ * of any other length are stored as plain strings: they round-trip unchanged
295
+ * and compare lexicographically, not as hex.
296
+ *
297
+ * Numeric values **must be non-negative integers** (they are stored on-chain
298
+ * as unsigned 256-bit) — passing a non-integer (e.g. `1.5`) or negative number
299
+ * throws an {@link InvalidAttributeError} at mutation time. To store a
300
+ * non-integer value:
301
+ * - Scale it to an integer (e.g. `1.5` -> `1500`, dividing by the same factor on
302
+ * read) to keep numeric ordering and range queries working.
303
+ * - Or pass it as a string (e.g. `"1.5"`), which sorts lexicographically and so
304
+ * does not support numeric comparisons.
305
+ *
306
+ * To store a negative value, offset it into the non-negative range (subtracting
307
+ * the offset on read) or store it as a string.
308
+ */
225
309
  type Attribute = {
226
310
  key: string;
227
- value: string | number;
311
+ value: number | string | Hex;
228
312
  };
229
313
  //#endregion
230
314
  //#region src/types/events.d.ts
231
315
  type OnEntityCreatedEvent = {
232
316
  entityKey: Hex;
233
- owner: Hex;
234
- expirationBlock: number;
235
- cost: bigint;
317
+ owner: Address;
318
+ expiresAt: number;
319
+ entityHash: Hex;
236
320
  };
237
321
  type OnEntityUpdatedEvent = {
238
322
  entityKey: Hex;
239
- owner: Hex;
240
- oldExpirationBlock: number;
241
- newExpirationBlock: number;
242
- cost: bigint;
323
+ owner: Address;
324
+ expiresAt: number;
325
+ entityHash: Hex;
243
326
  };
244
327
  type OnEntityDeletedEvent = {
245
328
  entityKey: Hex;
246
- owner: Hex;
329
+ owner: Address;
247
330
  };
248
331
  type OnEntityExpiredEvent = {
249
332
  entityKey: Hex;
250
- owner: Hex;
333
+ owner: Address;
251
334
  };
252
335
  type OnEntityExpiresInExtendedEvent = {
253
336
  entityKey: Hex;
254
- owner: Hex;
255
- oldExpirationBlock: number;
256
- newExpirationBlock: number;
257
- cost: bigint;
337
+ owner: Address;
338
+ expiresAt: number;
339
+ entityHash: Hex;
258
340
  };
259
341
  type OnEntityOwnerChangedEvent = {
260
342
  entityKey: Hex;
261
- oldOwner: Hex;
262
- newOwner: Hex;
343
+ owner: Address;
344
+ entityHash: Hex;
263
345
  };
264
346
  //#endregion
265
347
  //#region src/types/txParams.d.ts
@@ -278,9 +360,17 @@ type TxParams = {
278
360
  };
279
361
  //#endregion
280
362
  //#region src/types/entity.d.ts
363
+ declare enum EntityOperationType {
364
+ Create = 1,
365
+ Update = 2,
366
+ Extend = 3,
367
+ Transfer = 4,
368
+ Delete = 5,
369
+ Expire = 6,
370
+ }
281
371
  declare class Entity {
282
372
  key: Hex;
283
- contentType: MimeType | undefined;
373
+ contentType: MimeType | `${string}/${string}` | undefined;
284
374
  owner: Hex | undefined;
285
375
  creator: Hex | undefined;
286
376
  expiresAtBlock: bigint | undefined;
@@ -290,7 +380,7 @@ declare class Entity {
290
380
  operationIndexInTransaction: bigint | undefined;
291
381
  payload: Uint8Array | undefined;
292
382
  attributes: Attribute[];
293
- constructor(key: Hex, contentType: MimeType | undefined, owner: Hex | undefined, creator: Hex | undefined, expiresAtBlock: bigint | undefined, createdAtBlock: bigint | undefined, lastModifiedAtBlock: bigint | undefined, transactionIndexInBlock: bigint | undefined, operationIndexInTransaction: bigint | undefined, payload: Uint8Array | undefined, attributes: Attribute[]);
383
+ constructor(key: Hex, contentType: MimeType | `${string}/${string}` | undefined, owner: Hex | undefined, creator: Hex | undefined, expiresAtBlock: bigint | undefined, createdAtBlock: bigint | undefined, lastModifiedAtBlock: bigint | undefined, transactionIndexInBlock: bigint | undefined, operationIndexInTransaction: bigint | undefined, payload: Uint8Array | undefined, attributes: Attribute[]);
294
384
  /**
295
385
  * Converts the entity payload from bytes to a string and returns it.
296
386
  * Throws an error if the payload is undefined, which may occur if the entity was not queried with the withPayload option.
@@ -307,29 +397,5 @@ declare class Entity {
307
397
  toJson(): any;
308
398
  }
309
399
  //#endregion
310
- //#region src/actions/public/query.d.ts
311
- type QueryOptionsIncludeData = {
312
- attributes?: boolean;
313
- payload?: boolean;
314
- metadata?: boolean;
315
- };
316
- type QueryOptionsOrderBy = {
317
- name: string;
318
- type: "string" | "numeric";
319
- desc: "asc" | "desc";
320
- };
321
- type QueryOptions = {
322
- includeData?: QueryOptionsIncludeData;
323
- atBlock?: bigint;
324
- orderBy?: QueryOptionsOrderBy[];
325
- resultsPerPage?: number | undefined;
326
- cursor?: string | undefined;
327
- };
328
- type QueryReturnType = {
329
- entities: Entity[];
330
- cursor: string | undefined;
331
- blockNumber: bigint | undefined;
332
- };
333
- //#endregion
334
- export { RpcIncludeData as A, CreateEntityReturnType as C, ArkivClient as D, GetBlockTimingReturnType as E, RpcQueryOptions as M, MimeType as N, ArkivRpcSchema as O, CreateEntityParameters as S, ChangeOwnershipReturnType as T, UpdateEntityReturnType as _, Entity as a, DeleteEntityParameters as b, OnEntityDeletedEvent as c, OnEntityOwnerChangedEvent as d, OnEntityUpdatedEvent as f, UpdateEntityParameters as g, MutateEntitiesReturnType as h, QueryReturnType as i, RpcOrderByAttribute as j, RpcEntity as k, OnEntityExpiredEvent as l, MutateEntitiesParameters as m, QueryOptionsIncludeData as n, TxParams as o, Attribute as p, QueryOptionsOrderBy as r, OnEntityCreatedEvent as s, QueryOptions as t, OnEntityExpiresInExtendedEvent as u, ExtendEntityParameters as v, ChangeOwnershipParameters as w, DeleteEntityReturnType as x, ExtendEntityReturnType as y };
335
- //# sourceMappingURL=query-BhdmAzYg.d.ts.map
400
+ export { RpcEntity as A, QueryOptions as C, GetBlockTimingReturnType as D, QueryReturnType as E, RpcOrderByAttribute as M, RpcQueryOptions as N, ArkivClient as O, MimeType as P, ChangeOwnershipReturnType as S, QueryOptionsOrderBy as T, DeleteEntityParameters as _, OnEntityDeletedEvent as a, CreateEntityReturnType as b, OnEntityOwnerChangedEvent as c, MutateEntitiesParameters as d, MutateEntitiesReturnType as f, ExtendEntityReturnType as g, ExtendEntityParameters as h, OnEntityCreatedEvent as i, RpcIncludeData as j, ArkivRpcSchema as k, OnEntityUpdatedEvent as l, UpdateEntityReturnType as m, EntityOperationType as n, OnEntityExpiredEvent as o, UpdateEntityParameters as p, TxParams as r, OnEntityExpiresInExtendedEvent as s, Entity as t, Attribute as u, DeleteEntityReturnType as v, QueryOptionsIncludeData as w, ChangeOwnershipParameters as x, CreateEntityParameters as y };
401
+ //# sourceMappingURL=entity-NnEVlePN.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-NnEVlePN.d.ts","names":[],"sources":["../src/types/mimeTypes.ts","../src/types/rpcSchema.ts","../src/clients/baseClient.ts","../src/actions/public/getBlockTiming.ts","../src/actions/public/query.ts","../src/actions/wallet/changeOwnership.ts","../src/actions/wallet/createEntity.ts","../src/actions/wallet/deleteEntity.ts","../src/actions/wallet/extendEntity.ts","../src/actions/wallet/updateEntity.ts","../src/actions/wallet/mutateEntities.ts","../src/types/attributes.ts","../src/types/events.ts","../src/types/txParams.ts","../src/types/entity.ts"],"sourcesContent":[],"mappings":"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"}