@arkiv-network/sdk 0.6.8-dev.2 → 0.6.8-dev.3

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 (56) hide show
  1. package/dist/chains/index.d.cts +25 -25
  2. package/dist/chains/index.d.cts.map +1 -1
  3. package/dist/chains/index.d.ts +25 -25
  4. package/dist/consts-AUoL-v42.cjs +18 -0
  5. package/dist/consts-BV4PR-de.js +7 -0
  6. package/dist/consts-BV4PR-de.js.map +1 -0
  7. package/dist/{entity-BOra9GVW.d.ts → entity-BSU5-vyY.d.cts} +43 -6
  8. package/dist/entity-BSU5-vyY.d.cts.map +1 -0
  9. package/dist/{entity-B3qWIdug.d.cts → entity-CHiZ2Qu1.d.ts} +43 -6
  10. package/dist/entity-CHiZ2Qu1.d.ts.map +1 -0
  11. package/dist/{index-t3wvdqvC.d.ts → index-CzqHiUAo.d.ts} +2 -2
  12. package/dist/{index-t3wvdqvC.d.ts.map → index-CzqHiUAo.d.ts.map} +1 -1
  13. package/dist/{index-Dushe05u.d.cts → index-gj33r3rd.d.cts} +2 -2
  14. package/dist/{index-Dushe05u.d.cts.map → index-gj33r3rd.d.cts.map} +1 -1
  15. package/dist/index.cjs +61 -21
  16. package/dist/index.d.cts +27 -3
  17. package/dist/index.d.cts.map +1 -1
  18. package/dist/index.d.ts +28 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +57 -19
  21. package/dist/index.js.map +1 -1
  22. package/dist/{payload-Da9gJMG5.d.ts → payload-B2kFJyah.d.ts} +1 -1
  23. package/dist/{payload-Da9gJMG5.d.ts.map → payload-B2kFJyah.d.ts.map} +1 -1
  24. package/dist/payload-Claf2jUO.js +13 -0
  25. package/dist/payload-Claf2jUO.js.map +1 -0
  26. package/dist/{payload-vwU3Rc6P.cjs → payload-DpA5PA-w.cjs} +0 -17
  27. package/dist/query/index.cjs +2 -1
  28. package/dist/query/index.d.cts +2 -2
  29. package/dist/query/index.d.ts +2 -2
  30. package/dist/query/index.js +2 -1
  31. package/dist/query/index.js.map +1 -1
  32. package/dist/{queryBuilder-BlMPfusd.cjs → queryBuilder-CTPwve9u.cjs} +25 -0
  33. package/dist/{queryBuilder-D7iYS0vU.js → queryBuilder-D-ACo-g_.js} +15 -2
  34. package/dist/queryBuilder-D-ACo-g_.js.map +1 -0
  35. package/dist/types/index.d.cts +1 -1
  36. package/dist/types/index.d.ts +1 -1
  37. package/dist/utils/index.cjs +3 -2
  38. package/dist/utils/index.d.ts +1 -1
  39. package/dist/utils/index.js +2 -1
  40. package/dist/utils/index.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/actions/wallet/createEntity.ts +12 -2
  43. package/src/actions/wallet/extendEntity.ts +6 -1
  44. package/src/actions/wallet/updateEntity.ts +12 -2
  45. package/src/clients/decorators/arkivWallet.ts +18 -0
  46. package/src/errors.ts +18 -0
  47. package/src/types/attributes.ts +12 -0
  48. package/src/utils/arkivTransactions.test.ts +62 -0
  49. package/src/utils/arkivTransactions.ts +36 -27
  50. package/src/utils/validation.test.ts +60 -0
  51. package/src/utils/validation.ts +32 -0
  52. package/dist/entity-B3qWIdug.d.cts.map +0 -1
  53. package/dist/entity-BOra9GVW.d.ts.map +0 -1
  54. package/dist/payload-DKBYYjeA.js +0 -18
  55. package/dist/payload-DKBYYjeA.js.map +0 -1
  56. package/dist/queryBuilder-D7iYS0vU.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,7 +1,8 @@
1
1
  const require_chains = require('./chains-BifaY04V.cjs');
2
- const require_queryBuilder = require('./queryBuilder-BlMPfusd.cjs');
3
- const require_payload = require('./payload-vwU3Rc6P.cjs');
2
+ const require_queryBuilder = require('./queryBuilder-CTPwve9u.cjs');
3
+ const require_consts = require('./consts-AUoL-v42.cjs');
4
4
  require('./types-o3zWarRp.cjs');
5
+ const require_payload = require('./payload-DpA5PA-w.cjs');
5
6
  let viem = require("viem");
6
7
 
7
8
  //#region src/actions/public/getBlockTiming.ts
@@ -282,6 +283,32 @@ async function compress(data) {
282
283
  return brotliCompressed;
283
284
  }
284
285
 
286
+ //#endregion
287
+ //#region src/utils/validation.ts
288
+ /**
289
+ * Expiration on Arkiv is measured in blocks (1 block =
290
+ * 2 seconds), so the value must be a positive integer that is
291
+ * a multiple of the block time.
292
+ *
293
+ * @param expiresIn - The expiration in seconds.
294
+ * @throws {InvalidExpirationError} If the value is not a positive integer that
295
+ * is a multiple of the block time.
296
+ */
297
+ function validateExpiresIn(expiresIn) {
298
+ if (!Number.isInteger(expiresIn) || expiresIn <= 0 || expiresIn % require_consts.BLOCK_TIME !== 0) throw new require_queryBuilder.InvalidExpirationError(expiresIn);
299
+ }
300
+ /**
301
+ * Validates a single attribute. Arkiv supports string and number attribute
302
+ * values, but numeric values must be integers.
303
+ *
304
+ * @param attribute - The attribute to validate.
305
+ * @throws {InvalidAttributeError} If the attribute has a non-integer numeric
306
+ * value.
307
+ */
308
+ function validateAttribute(attribute) {
309
+ if (typeof attribute.value === "number" && !Number.isInteger(attribute.value)) throw new require_queryBuilder.InvalidAttributeError(attribute.key, attribute.value);
310
+ }
311
+
285
312
  //#endregion
286
313
  //#region src/utils/arkivTransactions.ts
287
314
  const logger$6 = require_queryBuilder.getLogger("utils:arkiv-transactions");
@@ -290,23 +317,34 @@ function opsToTxData({ creates, updates, deletes, extensions, ownershipChanges }
290
317
  return [(0, viem.toHex)(attribute.key), (0, viem.toHex)(typeof attribute.value === "number" && attribute.value === 0 ? "" : attribute.value)];
291
318
  }
292
319
  const payload = [
293
- (creates ?? []).map((item) => [
294
- (0, viem.toHex)(Math.ceil(item.expiresIn / require_payload.BLOCK_TIME)),
295
- (0, viem.toHex)(item.contentType),
296
- (0, viem.toHex)(item.payload),
297
- item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
298
- item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
299
- ]),
300
- (updates ?? []).map((item) => [
301
- item.entityKey,
302
- (0, viem.toHex)(item.contentType),
303
- (0, viem.toHex)(Math.ceil(item.expiresIn / require_payload.BLOCK_TIME)),
304
- (0, viem.toHex)(item.payload),
305
- item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
306
- item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
307
- ]),
320
+ (creates ?? []).map((item) => {
321
+ validateExpiresIn(item.expiresIn);
322
+ item.attributes.forEach(validateAttribute);
323
+ return [
324
+ (0, viem.toHex)(item.expiresIn / require_consts.BLOCK_TIME),
325
+ (0, viem.toHex)(item.contentType),
326
+ (0, viem.toHex)(item.payload),
327
+ item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
328
+ item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
329
+ ];
330
+ }),
331
+ (updates ?? []).map((item) => {
332
+ validateExpiresIn(item.expiresIn);
333
+ item.attributes.forEach(validateAttribute);
334
+ return [
335
+ item.entityKey,
336
+ (0, viem.toHex)(item.contentType),
337
+ (0, viem.toHex)(item.expiresIn / require_consts.BLOCK_TIME),
338
+ (0, viem.toHex)(item.payload),
339
+ item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
340
+ item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
341
+ ];
342
+ }),
308
343
  (deletes ?? []).map((item) => item.entityKey),
309
- (extensions ?? []).map((item) => [item.entityKey, (0, viem.toHex)(Math.ceil(item.expiresIn / require_payload.BLOCK_TIME))]),
344
+ (extensions ?? []).map((item) => {
345
+ validateExpiresIn(item.expiresIn);
346
+ return [item.entityKey, (0, viem.toHex)(item.expiresIn / require_consts.BLOCK_TIME)];
347
+ }),
310
348
  (ownershipChanges ?? []).map((item) => [item.entityKey, item.newOwner])
311
349
  ];
312
350
  logger$6("txData to send as RLP %o length %d", payload, payload.length);
@@ -318,7 +356,7 @@ async function sendArkivTransaction(client, data, txParams) {
318
356
  logger$6("Sending transaction %o", {
319
357
  account: client.account,
320
358
  chain: client.chain,
321
- to: require_payload.ARKIV_ADDRESS,
359
+ to: require_consts.ARKIV_ADDRESS,
322
360
  value: 0n,
323
361
  data,
324
362
  ...txParams
@@ -328,7 +366,7 @@ async function sendArkivTransaction(client, data, txParams) {
328
366
  const txHash = await walletClient.sendTransaction({
329
367
  account: client.account,
330
368
  chain: client.chain,
331
- to: require_payload.ARKIV_ADDRESS,
369
+ to: require_consts.ARKIV_ADDRESS,
332
370
  value: 0n,
333
371
  data: (0, viem.toHex)(compressed),
334
372
  ...txParams
@@ -338,7 +376,7 @@ async function sendArkivTransaction(client, data, txParams) {
338
376
  if (receipt.status === "reverted") try {
339
377
  const callResult = await walletClient.call({
340
378
  account: client.account,
341
- to: require_payload.ARKIV_ADDRESS,
379
+ to: require_consts.ARKIV_ADDRESS,
342
380
  value: 0n,
343
381
  data: (0, viem.toHex)(compressed),
344
382
  ...txParams
@@ -535,6 +573,8 @@ function chainFromName(name) {
535
573
 
536
574
  //#endregion
537
575
  exports.EntityMutationError = require_queryBuilder.EntityMutationError;
576
+ exports.InvalidAttributeError = require_queryBuilder.InvalidAttributeError;
577
+ exports.InvalidExpirationError = require_queryBuilder.InvalidExpirationError;
538
578
  exports.NoCursorOrLimitError = require_queryBuilder.NoCursorOrLimitError;
539
579
  exports.NoEntityFoundError = require_queryBuilder.NoEntityFoundError;
540
580
  exports.NoMoreResultsError = require_queryBuilder.NoMoreResultsError;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as RpcIncludeData, C as QueryOptionsIncludeData, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as QueryOptions, T as QueryReturnType, _ as DeleteEntityReturnType, a as OnEntityExpiredEvent, b as ChangeOwnershipParameters, c as OnEntityUpdatedEvent, d as MutateEntitiesReturnType, f as UpdateEntityParameters, g as DeleteEntityParameters, h as ExtendEntityReturnType, i as OnEntityDeletedEvent, j as RpcOrderByAttribute, k as RpcEntity, l as Attribute, m as ExtendEntityParameters, n as TxParams, o as OnEntityExpiresInExtendedEvent, p as UpdateEntityReturnType, r as OnEntityCreatedEvent, s as OnEntityOwnerChangedEvent, t as Entity, u as MutateEntitiesParameters, v as CreateEntityParameters, w as QueryOptionsOrderBy, x as ChangeOwnershipReturnType, y as CreateEntityReturnType } from "./entity-B3qWIdug.cjs";
2
- import { c as FullEntity, i as SelectQueryBuilder, l as ProjectedEntity, r as QueryBuilder, s as EntitySelection, u as SelectArg } from "./index-Dushe05u.cjs";
1
+ import { A as RpcIncludeData, C as QueryOptionsIncludeData, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as QueryOptions, T as QueryReturnType, _ as DeleteEntityReturnType, a as OnEntityExpiredEvent, b as ChangeOwnershipParameters, c as OnEntityUpdatedEvent, d as MutateEntitiesReturnType, f as UpdateEntityParameters, g as DeleteEntityParameters, h as ExtendEntityReturnType, i as OnEntityDeletedEvent, j as RpcOrderByAttribute, k as RpcEntity, l as Attribute, m as ExtendEntityParameters, n as TxParams, o as OnEntityExpiresInExtendedEvent, p as UpdateEntityReturnType, r as OnEntityCreatedEvent, s as OnEntityOwnerChangedEvent, t as Entity, u as MutateEntitiesParameters, v as CreateEntityParameters, w as QueryOptionsOrderBy, x as ChangeOwnershipReturnType, y as CreateEntityReturnType } from "./entity-BSU5-vyY.cjs";
2
+ import { c as FullEntity, i as SelectQueryBuilder, l as ProjectedEntity, r as QueryBuilder, s as EntitySelection, u as SelectArg } from "./index-gj33r3rd.cjs";
3
3
  import { n as stringToPayload, t as jsonToPayload } from "./payload-CJN8fTvX.cjs";
4
4
  import { Account, Address, Chain, Client, Hex, ParseAccount, Prettify, PublicActions, PublicClientConfig, RpcSchema, Transport, WalletActions, WalletClientConfig } from "viem";
5
5
 
@@ -254,6 +254,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
254
254
  * @param txParams - Optional transaction parameters
255
255
  * @returns The created entity with transaction hash
256
256
  *
257
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
258
+ * that is a multiple of the block time (2 seconds).
259
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
260
+ * integer.
261
+ *
257
262
  * @example
258
263
  * import { createPublicClient, http } from 'arkiv'
259
264
  * import { braga } from 'arkiv/chains'
@@ -285,6 +290,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
285
290
  * @param txParams - Optional transaction parameters
286
291
  * @returns The updated entity with transaction hash
287
292
  *
293
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
294
+ * that is a multiple of the block time (2 seconds).
295
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
296
+ * integer.
297
+ *
288
298
  * @example
289
299
  * import { createWalletClient, http } from 'arkiv'
290
300
  * import { braga } from 'arkiv/chains'
@@ -332,6 +342,9 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
332
342
  * @param txParams - Optional transaction parameters
333
343
  * @returns The updated entity with transaction hash
334
344
  *
345
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
346
+ * that is a multiple of the block time (2 seconds).
347
+ *
335
348
  * @example
336
349
  * import { createWalletClient, http } from 'arkiv'
337
350
  * import { braga } from 'arkiv/chains'
@@ -372,6 +385,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
372
385
  * @param txParams - Optional transaction parameters
373
386
  * @returns The mutation result with transaction hash
374
387
  *
388
+ * @throws {InvalidExpirationError} If any create/update/extension `expiresIn`
389
+ * is not a positive integer that is a multiple of the block time (2 seconds).
390
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
391
+ * integer.
392
+ *
375
393
  * @example
376
394
  * import { createWalletClient, http } from 'arkiv'
377
395
  * import { braga } from 'arkiv/chains'
@@ -437,6 +455,12 @@ declare function createWalletClient<transport extends Transport, chain extends C
437
455
  declare class EntityMutationError extends Error {
438
456
  constructor(message: string);
439
457
  }
458
+ declare class InvalidExpirationError extends Error {
459
+ constructor(expiresIn: unknown);
460
+ }
461
+ declare class InvalidAttributeError extends Error {
462
+ constructor(key: string, value: number);
463
+ }
440
464
  declare class NoMoreResultsError extends Error {
441
465
  constructor();
442
466
  }
@@ -456,5 +480,5 @@ declare class NoEntityFoundError extends Error {
456
480
  */
457
481
  declare function chainFromName(name: string): Chain;
458
482
  //#endregion
459
- export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
483
+ export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, InvalidAttributeError, InvalidExpirationError, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
460
484
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { A as RpcIncludeData, C as QueryOptionsIncludeData, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as QueryOptions, T as QueryReturnType, _ as DeleteEntityReturnType, a as OnEntityExpiredEvent, b as ChangeOwnershipParameters, c as OnEntityUpdatedEvent, d as MutateEntitiesReturnType, f as UpdateEntityParameters, g as DeleteEntityParameters, h as ExtendEntityReturnType, i as OnEntityDeletedEvent, j as RpcOrderByAttribute, k as RpcEntity, l as Attribute, m as ExtendEntityParameters, n as TxParams, o as OnEntityExpiresInExtendedEvent, p as UpdateEntityReturnType, r as OnEntityCreatedEvent, s as OnEntityOwnerChangedEvent, t as Entity, u as MutateEntitiesParameters, v as CreateEntityParameters, w as QueryOptionsOrderBy, x as ChangeOwnershipReturnType, y as CreateEntityReturnType } from "./entity-BOra9GVW.js";
2
- import { c as FullEntity, i as SelectQueryBuilder, l as ProjectedEntity, r as QueryBuilder, s as EntitySelection, u as SelectArg } from "./index-t3wvdqvC.js";
3
- import { n as stringToPayload, t as jsonToPayload } from "./payload-Da9gJMG5.js";
1
+ import { A as RpcIncludeData, C as QueryOptionsIncludeData, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as QueryOptions, T as QueryReturnType, _ as DeleteEntityReturnType, a as OnEntityExpiredEvent, b as ChangeOwnershipParameters, c as OnEntityUpdatedEvent, d as MutateEntitiesReturnType, f as UpdateEntityParameters, g as DeleteEntityParameters, h as ExtendEntityReturnType, i as OnEntityDeletedEvent, j as RpcOrderByAttribute, k as RpcEntity, l as Attribute, m as ExtendEntityParameters, n as TxParams, o as OnEntityExpiresInExtendedEvent, p as UpdateEntityReturnType, r as OnEntityCreatedEvent, s as OnEntityOwnerChangedEvent, t as Entity, u as MutateEntitiesParameters, v as CreateEntityParameters, w as QueryOptionsOrderBy, x as ChangeOwnershipReturnType, y as CreateEntityReturnType } from "./entity-CHiZ2Qu1.js";
2
+ import { c as FullEntity, i as SelectQueryBuilder, l as ProjectedEntity, r as QueryBuilder, s as EntitySelection, u as SelectArg } from "./index-CzqHiUAo.js";
3
+ import { n as stringToPayload, t as jsonToPayload } from "./payload-B2kFJyah.js";
4
4
  import { Account, Address, Chain, Client, Hex, ParseAccount, Prettify, PublicActions, PublicClientConfig, RpcSchema, Transport, WalletActions, WalletClientConfig } from "viem";
5
5
 
6
6
  //#region src/clients/decorators/arkivPublic.d.ts
@@ -254,6 +254,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
254
254
  * @param txParams - Optional transaction parameters
255
255
  * @returns The created entity with transaction hash
256
256
  *
257
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
258
+ * that is a multiple of the block time (2 seconds).
259
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
260
+ * integer.
261
+ *
257
262
  * @example
258
263
  * import { createPublicClient, http } from 'arkiv'
259
264
  * import { braga } from 'arkiv/chains'
@@ -285,6 +290,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
285
290
  * @param txParams - Optional transaction parameters
286
291
  * @returns The updated entity with transaction hash
287
292
  *
293
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
294
+ * that is a multiple of the block time (2 seconds).
295
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
296
+ * integer.
297
+ *
288
298
  * @example
289
299
  * import { createWalletClient, http } from 'arkiv'
290
300
  * import { braga } from 'arkiv/chains'
@@ -332,6 +342,9 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
332
342
  * @param txParams - Optional transaction parameters
333
343
  * @returns The updated entity with transaction hash
334
344
  *
345
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
346
+ * that is a multiple of the block time (2 seconds).
347
+ *
335
348
  * @example
336
349
  * import { createWalletClient, http } from 'arkiv'
337
350
  * import { braga } from 'arkiv/chains'
@@ -372,6 +385,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
372
385
  * @param txParams - Optional transaction parameters
373
386
  * @returns The mutation result with transaction hash
374
387
  *
388
+ * @throws {InvalidExpirationError} If any create/update/extension `expiresIn`
389
+ * is not a positive integer that is a multiple of the block time (2 seconds).
390
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
391
+ * integer.
392
+ *
375
393
  * @example
376
394
  * import { createWalletClient, http } from 'arkiv'
377
395
  * import { braga } from 'arkiv/chains'
@@ -437,6 +455,12 @@ declare function createWalletClient<transport extends Transport, chain extends C
437
455
  declare class EntityMutationError extends Error {
438
456
  constructor(message: string);
439
457
  }
458
+ declare class InvalidExpirationError extends Error {
459
+ constructor(expiresIn: unknown);
460
+ }
461
+ declare class InvalidAttributeError extends Error {
462
+ constructor(key: string, value: number);
463
+ }
440
464
  declare class NoMoreResultsError extends Error {
441
465
  constructor();
442
466
  }
@@ -456,5 +480,5 @@ declare class NoEntityFoundError extends Error {
456
480
  */
457
481
  declare function chainFromName(name: string): Chain;
458
482
  //#endregion
459
- export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
483
+ export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, InvalidAttributeError, InvalidExpirationError, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
460
484
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { t as chains_exports } from "./chains-CrtkVbBh.js";
2
- import { c as entityFromRpcResult, d as NoEntityFoundError, f as NoMoreResultsError, l as EntityMutationError, n as QueryBuilder, p as getLogger, r as SelectQueryBuilder, u as NoCursorOrLimitError } from "./queryBuilder-D7iYS0vU.js";
3
- import { i as BLOCK_TIME, n as stringToPayload, r as ARKIV_ADDRESS, t as jsonToPayload } from "./payload-DKBYYjeA.js";
2
+ import { c as entityFromRpcResult, d as InvalidExpirationError, f as NoCursorOrLimitError, h as getLogger, l as EntityMutationError, m as NoMoreResultsError, n as QueryBuilder, p as NoEntityFoundError, r as SelectQueryBuilder, u as InvalidAttributeError } from "./queryBuilder-D-ACo-g_.js";
3
+ import { n as BLOCK_TIME, t as ARKIV_ADDRESS } from "./consts-BV4PR-de.js";
4
4
  import "./types-H-TSmRpm.js";
5
+ import { n as stringToPayload, t as jsonToPayload } from "./payload-Claf2jUO.js";
5
6
  import { TransactionExecutionError, bytesToHex, createClient, decodeEventLog, hexToBytes, hexToString, numberToHex, parseAbi, publicActions, toBytes, toHex, toRlp, walletActions } from "viem";
6
7
 
7
8
  //#region src/actions/public/getBlockTiming.ts
@@ -282,6 +283,32 @@ async function compress(data) {
282
283
  return brotliCompressed;
283
284
  }
284
285
 
286
+ //#endregion
287
+ //#region src/utils/validation.ts
288
+ /**
289
+ * Expiration on Arkiv is measured in blocks (1 block =
290
+ * 2 seconds), so the value must be a positive integer that is
291
+ * a multiple of the block time.
292
+ *
293
+ * @param expiresIn - The expiration in seconds.
294
+ * @throws {InvalidExpirationError} If the value is not a positive integer that
295
+ * is a multiple of the block time.
296
+ */
297
+ function validateExpiresIn(expiresIn) {
298
+ if (!Number.isInteger(expiresIn) || expiresIn <= 0 || expiresIn % BLOCK_TIME !== 0) throw new InvalidExpirationError(expiresIn);
299
+ }
300
+ /**
301
+ * Validates a single attribute. Arkiv supports string and number attribute
302
+ * values, but numeric values must be integers.
303
+ *
304
+ * @param attribute - The attribute to validate.
305
+ * @throws {InvalidAttributeError} If the attribute has a non-integer numeric
306
+ * value.
307
+ */
308
+ function validateAttribute(attribute) {
309
+ if (typeof attribute.value === "number" && !Number.isInteger(attribute.value)) throw new InvalidAttributeError(attribute.key, attribute.value);
310
+ }
311
+
285
312
  //#endregion
286
313
  //#region src/utils/arkivTransactions.ts
287
314
  const logger$6 = getLogger("utils:arkiv-transactions");
@@ -290,23 +317,34 @@ function opsToTxData({ creates, updates, deletes, extensions, ownershipChanges }
290
317
  return [toHex(attribute.key), toHex(typeof attribute.value === "number" && attribute.value === 0 ? "" : attribute.value)];
291
318
  }
292
319
  const payload = [
293
- (creates ?? []).map((item) => [
294
- toHex(Math.ceil(item.expiresIn / BLOCK_TIME)),
295
- toHex(item.contentType),
296
- toHex(item.payload),
297
- item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
298
- item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
299
- ]),
300
- (updates ?? []).map((item) => [
301
- item.entityKey,
302
- toHex(item.contentType),
303
- toHex(Math.ceil(item.expiresIn / BLOCK_TIME)),
304
- toHex(item.payload),
305
- item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
306
- item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
307
- ]),
320
+ (creates ?? []).map((item) => {
321
+ validateExpiresIn(item.expiresIn);
322
+ item.attributes.forEach(validateAttribute);
323
+ return [
324
+ toHex(item.expiresIn / BLOCK_TIME),
325
+ toHex(item.contentType),
326
+ toHex(item.payload),
327
+ item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
328
+ item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
329
+ ];
330
+ }),
331
+ (updates ?? []).map((item) => {
332
+ validateExpiresIn(item.expiresIn);
333
+ item.attributes.forEach(validateAttribute);
334
+ return [
335
+ item.entityKey,
336
+ toHex(item.contentType),
337
+ toHex(item.expiresIn / BLOCK_TIME),
338
+ toHex(item.payload),
339
+ item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
340
+ item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
341
+ ];
342
+ }),
308
343
  (deletes ?? []).map((item) => item.entityKey),
309
- (extensions ?? []).map((item) => [item.entityKey, toHex(Math.ceil(item.expiresIn / BLOCK_TIME))]),
344
+ (extensions ?? []).map((item) => {
345
+ validateExpiresIn(item.expiresIn);
346
+ return [item.entityKey, toHex(item.expiresIn / BLOCK_TIME)];
347
+ }),
310
348
  (ownershipChanges ?? []).map((item) => [item.entityKey, item.newOwner])
311
349
  ];
312
350
  logger$6("txData to send as RLP %o length %d", payload, payload.length);
@@ -534,5 +572,5 @@ function chainFromName(name) {
534
572
  }
535
573
 
536
574
  //#endregion
537
- export { EntityMutationError, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
575
+ export { EntityMutationError, InvalidAttributeError, InvalidExpirationError, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
538
576
  //# sourceMappingURL=index.js.map