@arkiv-network/sdk 0.5.0-dev.2 → 0.5.0-dev.4

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 (57) hide show
  1. package/dist/chains/index.cjs +1 -1
  2. package/dist/chains/index.d.cts +33 -33
  3. package/dist/{chains-XCO31x6G.cjs → chains-DVQiGmF6.cjs} +13 -2
  4. package/dist/index.cjs +36 -17
  5. package/dist/index.d.cts +397 -3
  6. package/dist/index.d.cts.map +1 -0
  7. package/dist/index.d.ts +397 -3
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +32 -16
  10. package/dist/index.js.map +1 -1
  11. package/dist/{payload-D3fyOBWn.d.cts → payload-CJN8fTvX.d.cts} +1 -1
  12. package/dist/{payload-D3fyOBWn.d.cts.map → payload-CJN8fTvX.d.cts.map} +1 -1
  13. package/dist/{payload-BI2NXPDf.d.ts → payload-Da9gJMG5.d.ts} +1 -1
  14. package/dist/{payload-BI2NXPDf.d.ts.map → payload-Da9gJMG5.d.ts.map} +1 -1
  15. package/dist/{payload-eB1a8vZH.cjs → payload-vwU3Rc6P.cjs} +0 -1
  16. package/dist/query/index.cjs +1 -4
  17. package/dist/query/index.d.cts +3 -16
  18. package/dist/query/index.d.ts +3 -16
  19. package/dist/query/index.js +2 -2
  20. package/dist/query-C0dwQYxT.d.cts +320 -0
  21. package/dist/query-C0dwQYxT.d.cts.map +1 -0
  22. package/dist/query-DybEplzd.d.ts +320 -0
  23. package/dist/query-DybEplzd.d.ts.map +1 -0
  24. package/dist/{queryBuilder-DNUwJvf0.js → queryBuilder-BkWFLc3Y.js} +121 -5
  25. package/dist/queryBuilder-BkWFLc3Y.js.map +1 -0
  26. package/dist/{queryBuilder-KrdIUVZv.cjs → queryBuilder-BozfXlzA.cjs} +125 -5
  27. package/dist/queryBuilder-DfetMC5Z.d.cts +317 -0
  28. package/dist/queryBuilder-DfetMC5Z.d.cts.map +1 -0
  29. package/dist/queryBuilder-XIln1aIM.d.ts +317 -0
  30. package/dist/queryBuilder-XIln1aIM.d.ts.map +1 -0
  31. package/dist/types/index.d.cts +2 -3
  32. package/dist/types/index.d.ts +2 -3
  33. package/dist/utils/index.cjs +1 -1
  34. package/dist/utils/index.d.cts +1 -1
  35. package/dist/utils/index.d.ts +1 -1
  36. package/package.json +1 -3
  37. package/src/actions/public/getEntity.ts +1 -1
  38. package/src/actions/public/query.ts +12 -1
  39. package/src/clients/decorators/arkivPublic.ts +5 -5
  40. package/src/clients/decorators/arkivWallet.ts +2 -2
  41. package/src/{query/errors.ts → errors.ts} +10 -0
  42. package/src/index.ts +2 -2
  43. package/src/query/index.ts +0 -1
  44. package/src/query/queryResult.test.ts +1 -1
  45. package/src/query/queryResult.ts +1 -1
  46. package/src/types/index.ts +1 -0
  47. package/src/types/rpcSchema.ts +1 -1
  48. package/src/utils/arkivTransactions.ts +31 -13
  49. package/src/utils/logger.ts +202 -5
  50. package/dist/chunk-pbleEpgJ.cjs +0 -44
  51. package/dist/index-B801JxcV.d.ts +0 -1003
  52. package/dist/index-B801JxcV.d.ts.map +0 -1
  53. package/dist/index-DQGx5KZ6.d.cts +0 -1003
  54. package/dist/index-DQGx5KZ6.d.cts.map +0 -1
  55. package/dist/query/index.d.cts.map +0 -1
  56. package/dist/query/index.d.ts.map +0 -1
  57. package/dist/queryBuilder-DNUwJvf0.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const require_chains = require('../chains-XCO31x6G.cjs');
1
+ const require_chains = require('../chains-DVQiGmF6.cjs');
2
2
 
3
3
  exports.kaolin = require_chains.kaolin;
4
4
  exports.localhost = require_chains.localhost;
@@ -1,4 +1,4 @@
1
- import * as viem0 from "viem";
1
+ import * as viem8 from "viem";
2
2
 
3
3
  //#region src/chains/kaolin.d.ts
4
4
  declare const kaolin: {
@@ -11,13 +11,13 @@ declare const kaolin: {
11
11
  };
12
12
  blockTime?: number | undefined | undefined;
13
13
  contracts?: {
14
- [x: string]: viem0.ChainContract | {
15
- [sourceId: number]: viem0.ChainContract | undefined;
14
+ [x: string]: viem8.ChainContract | {
15
+ [sourceId: number]: viem8.ChainContract | undefined;
16
16
  } | undefined;
17
- ensRegistry?: viem0.ChainContract | undefined;
18
- ensUniversalResolver?: viem0.ChainContract | undefined;
19
- multicall3?: viem0.ChainContract | undefined;
20
- erc6492Verifier?: viem0.ChainContract | undefined;
17
+ ensRegistry?: viem8.ChainContract | undefined;
18
+ ensUniversalResolver?: viem8.ChainContract | undefined;
19
+ multicall3?: viem8.ChainContract | undefined;
20
+ erc6492Verifier?: viem8.ChainContract | undefined;
21
21
  } | undefined;
22
22
  ensTlds?: readonly string[] | undefined;
23
23
  id: 60138453025;
@@ -37,9 +37,9 @@ declare const kaolin: {
37
37
  sourceId?: number | undefined | undefined;
38
38
  testnet: true;
39
39
  custom?: Record<string, unknown> | undefined;
40
- fees?: viem0.ChainFees<undefined> | undefined;
40
+ fees?: viem8.ChainFees<undefined> | undefined;
41
41
  formatters?: undefined;
42
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
42
+ serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
43
43
  readonly network: "kaolin";
44
44
  };
45
45
  //#endregion
@@ -59,13 +59,13 @@ declare const localhost: {
59
59
  } | undefined | undefined;
60
60
  blockTime?: number | undefined | undefined;
61
61
  contracts?: {
62
- [x: string]: viem0.ChainContract | {
63
- [sourceId: number]: viem0.ChainContract | undefined;
62
+ [x: string]: viem8.ChainContract | {
63
+ [sourceId: number]: viem8.ChainContract | undefined;
64
64
  } | undefined;
65
- ensRegistry?: viem0.ChainContract | undefined;
66
- ensUniversalResolver?: viem0.ChainContract | undefined;
67
- multicall3?: viem0.ChainContract | undefined;
68
- erc6492Verifier?: viem0.ChainContract | undefined;
65
+ ensRegistry?: viem8.ChainContract | undefined;
66
+ ensUniversalResolver?: viem8.ChainContract | undefined;
67
+ multicall3?: viem8.ChainContract | undefined;
68
+ erc6492Verifier?: viem8.ChainContract | undefined;
69
69
  } | undefined;
70
70
  ensTlds?: readonly string[] | undefined;
71
71
  id: 1337;
@@ -84,9 +84,9 @@ declare const localhost: {
84
84
  sourceId?: number | undefined | undefined;
85
85
  testnet?: boolean | undefined | undefined;
86
86
  custom?: Record<string, unknown> | undefined;
87
- fees?: viem0.ChainFees<undefined> | undefined;
87
+ fees?: viem8.ChainFees<undefined> | undefined;
88
88
  formatters?: undefined;
89
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
89
+ serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
90
90
  };
91
91
  //#endregion
92
92
  //#region src/chains/marketplace.d.ts
@@ -100,13 +100,13 @@ declare const marketplace: {
100
100
  };
101
101
  blockTime?: number | undefined | undefined;
102
102
  contracts?: {
103
- [x: string]: viem0.ChainContract | {
104
- [sourceId: number]: viem0.ChainContract | undefined;
103
+ [x: string]: viem8.ChainContract | {
104
+ [sourceId: number]: viem8.ChainContract | undefined;
105
105
  } | undefined;
106
- ensRegistry?: viem0.ChainContract | undefined;
107
- ensUniversalResolver?: viem0.ChainContract | undefined;
108
- multicall3?: viem0.ChainContract | undefined;
109
- erc6492Verifier?: viem0.ChainContract | undefined;
106
+ ensRegistry?: viem8.ChainContract | undefined;
107
+ ensUniversalResolver?: viem8.ChainContract | undefined;
108
+ multicall3?: viem8.ChainContract | undefined;
109
+ erc6492Verifier?: viem8.ChainContract | undefined;
110
110
  } | undefined;
111
111
  ensTlds?: readonly string[] | undefined;
112
112
  id: 60138453027;
@@ -126,9 +126,9 @@ declare const marketplace: {
126
126
  sourceId?: number | undefined | undefined;
127
127
  testnet: true;
128
128
  custom?: Record<string, unknown> | undefined;
129
- fees?: viem0.ChainFees<undefined> | undefined;
129
+ fees?: viem8.ChainFees<undefined> | undefined;
130
130
  formatters?: undefined;
131
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
131
+ serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
132
132
  readonly network: "marketplace";
133
133
  };
134
134
  //#endregion
@@ -143,13 +143,13 @@ declare const mendoza: {
143
143
  };
144
144
  blockTime?: number | undefined | undefined;
145
145
  contracts?: {
146
- [x: string]: viem0.ChainContract | {
147
- [sourceId: number]: viem0.ChainContract | undefined;
146
+ [x: string]: viem8.ChainContract | {
147
+ [sourceId: number]: viem8.ChainContract | undefined;
148
148
  } | undefined;
149
- ensRegistry?: viem0.ChainContract | undefined;
150
- ensUniversalResolver?: viem0.ChainContract | undefined;
151
- multicall3?: viem0.ChainContract | undefined;
152
- erc6492Verifier?: viem0.ChainContract | undefined;
149
+ ensRegistry?: viem8.ChainContract | undefined;
150
+ ensUniversalResolver?: viem8.ChainContract | undefined;
151
+ multicall3?: viem8.ChainContract | undefined;
152
+ erc6492Verifier?: viem8.ChainContract | undefined;
153
153
  } | undefined;
154
154
  ensTlds?: readonly string[] | undefined;
155
155
  id: 60138453056;
@@ -169,9 +169,9 @@ declare const mendoza: {
169
169
  sourceId?: number | undefined | undefined;
170
170
  testnet: true;
171
171
  custom?: Record<string, unknown> | undefined;
172
- fees?: viem0.ChainFees<undefined> | undefined;
172
+ fees?: viem8.ChainFees<undefined> | undefined;
173
173
  formatters?: undefined;
174
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
174
+ serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
175
175
  readonly network: "mendoza";
176
176
  };
177
177
  //#endregion
@@ -1,4 +1,15 @@
1
- const require_chunk = require('./chunk-pbleEpgJ.cjs');
1
+ //#region rolldown:runtime
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (all) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ return target;
10
+ };
11
+
12
+ //#endregion
2
13
  let viem = require("viem");
3
14
 
4
15
  //#region src/chains/kaolin.ts
@@ -84,7 +95,7 @@ const mendoza = (0, viem.defineChain)({
84
95
 
85
96
  //#endregion
86
97
  //#region src/chains/index.ts
87
- var chains_exports = /* @__PURE__ */ require_chunk.__export({
98
+ var chains_exports = /* @__PURE__ */ __export({
88
99
  kaolin: () => kaolin,
89
100
  localhost: () => localhost,
90
101
  marketplace: () => marketplace,
package/dist/index.cjs CHANGED
@@ -1,8 +1,7 @@
1
- const require_chunk = require('./chunk-pbleEpgJ.cjs');
2
- const require_queryBuilder = require('./queryBuilder-KrdIUVZv.cjs');
3
- const require_payload = require('./payload-eB1a8vZH.cjs');
1
+ const require_chains = require('./chains-DVQiGmF6.cjs');
2
+ const require_queryBuilder = require('./queryBuilder-BozfXlzA.cjs');
3
+ const require_payload = require('./payload-vwU3Rc6P.cjs');
4
4
  require('./types-o3zWarRp.cjs');
5
- const require_chains = require('./chains-XCO31x6G.cjs');
6
5
  let viem = require("viem");
7
6
 
8
7
  //#region src/actions/public/getBlockTiming.ts
@@ -88,7 +87,11 @@ async function query(client, query$1, queryOptions) {
88
87
  method: "arkiv_query",
89
88
  params: [query$1, rpcQueryOptions]
90
89
  });
91
- return await Promise.all(result.data.map((entity) => require_queryBuilder.entityFromRpcResult(entity)));
90
+ return {
91
+ entities: await Promise.all(result.data.map((entity) => require_queryBuilder.entityFromRpcResult(entity))),
92
+ cursor: result.cursor,
93
+ blockNumber: BigInt(result.blockNumber)
94
+ };
92
95
  }
93
96
 
94
97
  //#endregion
@@ -317,18 +320,30 @@ async function sendArkivTransaction(client, data, txParams) {
317
320
  data,
318
321
  ...txParams
319
322
  });
320
- const compressed = await compress((0, viem.toBytes)(data));
321
- const txHash = await walletClient.sendTransaction({
322
- account: client.account,
323
- chain: client.chain,
324
- to: require_payload.ARKIV_ADDRESS,
325
- value: 0n,
326
- data: (0, viem.toHex)(compressed),
327
- ...txParams
328
- });
329
- const receipt = await walletClient.waitForTransactionReceipt({ hash: txHash });
330
- logger$6("Tx receipt %o", receipt);
331
- return receipt;
323
+ try {
324
+ const compressed = await compress((0, viem.toBytes)(data));
325
+ const txHash = await walletClient.sendTransaction({
326
+ account: client.account,
327
+ chain: client.chain,
328
+ to: require_payload.ARKIV_ADDRESS,
329
+ value: 0n,
330
+ data: (0, viem.toHex)(compressed),
331
+ ...txParams
332
+ });
333
+ const receipt = await walletClient.waitForTransactionReceipt({ hash: txHash });
334
+ logger$6("Tx receipt %o", receipt);
335
+ if (receipt.status === "reverted") {
336
+ logger$6("Reverted transaction %o", receipt);
337
+ throw new require_queryBuilder.EntityMutationError(`Transaction ${receipt.transactionHash} reverted. Please make sure the data for entities doesn't contain invalid characters or invalid data types.`);
338
+ }
339
+ return receipt;
340
+ } catch (error) {
341
+ let message = "Transaction failed";
342
+ if (error instanceof viem.TransactionExecutionError) message += `: ${error.details}`;
343
+ else if (error instanceof require_queryBuilder.EntityMutationError) throw error;
344
+ logger$6("%s Detailed error stack: %o", message, error);
345
+ throw new require_queryBuilder.EntityMutationError(message);
346
+ }
332
347
  }
333
348
 
334
349
  //#endregion
@@ -507,6 +522,10 @@ function chainFromName(name) {
507
522
  }
508
523
 
509
524
  //#endregion
525
+ exports.EntityMutationError = require_queryBuilder.EntityMutationError;
526
+ exports.NoCursorOrLimitError = require_queryBuilder.NoCursorOrLimitError;
527
+ exports.NoEntityFoundError = require_queryBuilder.NoEntityFoundError;
528
+ exports.NoMoreResultsError = require_queryBuilder.NoMoreResultsError;
510
529
  exports.chainFromName = chainFromName;
511
530
  exports.createPublicClient = createPublicClient;
512
531
  exports.createWalletClient = createWalletClient;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,398 @@
1
- import { $ as RpcIncludeData, A as CreateEntityParameters, C as MutateEntitiesReturnType, D as ExtendEntityReturnType, E as ExtendEntityParameters, J as QueryOptionsIncludeData, M as ChangeOwnershipParameters, N as ChangeOwnershipReturnType, O as DeleteEntityParameters, P as GetBlockTimingReturnType, Q as RpcEntity, S as MutateEntitiesParameters, T as UpdateEntityReturnType, X as ArkivClient, Y as QueryOptionsOrderBy, Z as ArkivRpcSchema, _ as OnEntityExpiredEvent, a as PublicArkivClient, b as OnEntityUpdatedEvent, et as RpcOrderByAttribute, g as OnEntityDeletedEvent, h as OnEntityCreatedEvent, i as WalletArkivActions, j as CreateEntityReturnType, k as DeleteEntityReturnType, m as TxParams, n as WalletArkivClient, nt as MimeType, o as createPublicClient, p as Entity, q as QueryOptions, r as createWalletClient, s as PublicArkivActions, t as chainFromName, tt as RpcQueryOptions, v as OnEntityExpiresInExtendedEvent, w as UpdateEntityParameters, x as Attribute, y as OnEntityOwnerChangedEvent } from "./index-DQGx5KZ6.cjs";
2
- import { n as stringToPayload, t as jsonToPayload } from "./payload-D3fyOBWn.cjs";
1
+ import { A as RpcIncludeData, C as CreateEntityReturnType, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as CreateEntityParameters, T as ChangeOwnershipReturnType, _ as UpdateEntityReturnType, a as Entity, b as DeleteEntityParameters, c as OnEntityDeletedEvent, d as OnEntityOwnerChangedEvent, f as OnEntityUpdatedEvent, g as UpdateEntityParameters, h as MutateEntitiesReturnType, i as QueryReturnType, j as RpcOrderByAttribute, k as RpcEntity, l as OnEntityExpiredEvent, m as MutateEntitiesParameters, n as QueryOptionsIncludeData, o as TxParams, p as Attribute, r as QueryOptionsOrderBy, s as OnEntityCreatedEvent, t as QueryOptions, u as OnEntityExpiresInExtendedEvent, v as ExtendEntityParameters, w as ChangeOwnershipParameters, x as DeleteEntityReturnType, y as ExtendEntityReturnType } from "./query-C0dwQYxT.cjs";
2
+ import { n as QueryBuilder } from "./queryBuilder-DfetMC5Z.cjs";
3
+ import { n as stringToPayload, t as jsonToPayload } from "./payload-CJN8fTvX.cjs";
4
+ import { Account, Address, Chain, Client, Hex, ParseAccount, Prettify, PublicActions, PublicClientConfig, RpcSchema, Transport, WalletActions, WalletClientConfig } from "viem";
3
5
  export * from "viem";
4
- export { ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, PublicArkivActions, PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, WalletArkivActions, WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
6
+
7
+ //#region src/clients/decorators/arkivPublic.d.ts
8
+ type PublicArkivActions<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = Pick<PublicActions<transport, chain, account>, "getBalance" | "getBlock" | "getBlockNumber" | "getChainId" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "waitForTransactionReceipt" | "watchEvent"> & {
9
+ /**
10
+ * Returns the entity with the given key.
11
+ *
12
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/public/getEntity
13
+ *
14
+ * @param key - The entity key (hex string)
15
+ * @returns The entity with the given key. {@link Entity}
16
+ *
17
+ * @example
18
+ * import { createPublicClient, http } from 'arkiv'
19
+ * import { kaolin } from 'arkiv/chains'
20
+ *
21
+ * const client = createPublicClient({
22
+ * chain: kaolin,
23
+ * transport: http(),
24
+ * })
25
+ * const entity = await client.getEntity("0x123")
26
+ * // {
27
+ * // key: "0x123",
28
+ * // value: "0x123",
29
+ * // }
30
+ */
31
+ getEntity: (key: Hex) => Promise<Entity>;
32
+ /**
33
+ * Returns a QueryBuilder instance for building and executing queries.
34
+ * The QueryBuilder object follows the Builder pattern, allowing you to chain methods to build a query and then execute it.
35
+ *
36
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/public/query
37
+ *
38
+ * @returns A QueryBuilder instance for building and executing queries. {@link QueryBuilder}
39
+ *
40
+ * @example
41
+ * import { createPublicClient, http } from 'arkiv'
42
+ * import { kaolin } from 'arkiv/chains'
43
+ *
44
+ * const client = createPublicClient({
45
+ * chain: kaolin,
46
+ * transport: http(),
47
+ * })
48
+ * const query = client.buildQuery()
49
+ * const entities = await query.where("key", "=", "value").ownedBy("0x123").fetch()
50
+ *
51
+ */
52
+ buildQuery: () => QueryBuilder;
53
+ /**
54
+ * Returns a QueryResult instance for fetching the results of a raw query.
55
+ * If no query options are provided, all payload is included, but no metadata (like owner, expiredAt, etc.) and attributes.
56
+ * @param query - The raw query string
57
+ * @param queryOptions - The optional query options - {@link QueryOptions}
58
+ * @returns A QueryReturnType instance - {@link QueryReturnType}
59
+ *
60
+ * @example
61
+ * import { createPublicClient, http } from 'arkiv'
62
+ * import { kaolin } from 'arkiv/chains'
63
+ *
64
+ * const client = createPublicClient({
65
+ * chain: kaolin,
66
+ * transport: http(),
67
+ * })
68
+ * const queryResult = client.query('key = value && $owner = 0x123')
69
+ * // queryResult = { entities: [{ key: "0x123", value: "0x123" }], cursor: undefined, blockNumber: undefined }
70
+ * const queryResultWithOptions = client.query('key = value && $owner = 0x123', {
71
+ * includeData: {
72
+ * attributes: false,
73
+ * payload: true,
74
+ * metadata: true,
75
+ * },
76
+ * orderBy: [{ name: "key", type: "string", desc: "asc" }],
77
+ * resultsPerPage: 10,
78
+ * cursor: undefined,
79
+ * atBlock: undefined,
80
+ * })
81
+ * // queryResultWithOptions = { entities: [{ key: "0x123", value: "0x123" }], cursor: "...", blockNumber: 32223n }
82
+ */
83
+ query: (query: string, queryOptions?: QueryOptions) => Promise<QueryReturnType>;
84
+ /**
85
+ * Returns the number of entities in the DBChain.
86
+ * @returns The number of entities in the DBChain
87
+ *
88
+ * @example
89
+ * import { createPublicClient, http } from 'arkiv'
90
+ * import { kaolin } from 'arkiv/chains'
91
+ *
92
+ * const client = createPublicClient({
93
+ * chain: kaolin,
94
+ * transport: http(),
95
+ * })
96
+ * const entityCount = await client.getEntityCount()
97
+ * // entityCount = 0
98
+ */
99
+ getEntityCount: () => Promise<number>;
100
+ /**
101
+ * Returns the current block timing.
102
+ * @returns The current block timing. {@link GetBlockTimingReturnType}
103
+ *
104
+ * @example
105
+ * import { createPublicClient, http } from 'arkiv'
106
+ * import { kaolin } from 'arkiv/chains'
107
+ *
108
+ * const client = createPublicClient({
109
+ * chain: kaolin,
110
+ * transport: http(),
111
+ * })
112
+ * const blockTiming = await client.getBlockTiming()
113
+ * // {
114
+ * // currentBlock: 10n, // block number
115
+ * // currentBlockTime: 1234567890, // block timestamp
116
+ * // blockDuration: 2, // in seconds
117
+ * // }
118
+ */
119
+ getBlockTiming: () => Promise<{
120
+ currentBlock: bigint;
121
+ currentBlockTime: number;
122
+ blockDuration: number;
123
+ }>;
124
+ /**
125
+ * Subscribes to entity events.
126
+ * Takes an object with event handlers: {onError, onEntityCreated, onEntityUpdated, onEntityDeleted, onEntityExpiresInExtended}
127
+ * @param pollingInterval - The polling interval in milliseconds
128
+ * @param fromBlock - The block number to start from
129
+ * @returns A function to unsubscribe from the events
130
+ *
131
+ * @example
132
+ * import { createPublicClient, http } from 'arkiv'
133
+ * import { kaolin } from 'arkiv/chains'
134
+ *
135
+ * const client = createPublicClient({
136
+ * chain: kaolin,
137
+ * transport: http(),
138
+ * })
139
+ * const unsubscribe = await client.subscribeEntityEvents({
140
+ * onError: (error) => console.error("subscribeEntityEvents error", error),
141
+ * })
142
+ * unsubscribe() // unsubscribe from the events
143
+ */
144
+ subscribeEntityEvents: ({
145
+ onError,
146
+ onEntityCreated,
147
+ onEntityUpdated,
148
+ onEntityDeleted,
149
+ onEntityExpiresInExtended
150
+ }: {
151
+ onError?: (error: Error) => void;
152
+ onEntityCreated?: (event: OnEntityCreatedEvent) => void;
153
+ onEntityUpdated?: (event: OnEntityUpdatedEvent) => void;
154
+ onEntityDeleted?: (event: OnEntityDeletedEvent) => void;
155
+ onEntityExpired?: (event: OnEntityExpiredEvent) => void;
156
+ onEntityExpiresInExtended?: (event: OnEntityExpiresInExtendedEvent) => void;
157
+ }, pollingInterval?: number, fromBlock?: bigint) => Promise<() => void>;
158
+ };
159
+ //#endregion
160
+ //#region src/clients/createPublicClient.d.ts
161
+ type PublicArkivClient<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, accountOrAddress extends Account | undefined = undefined, rpcSchema extends RpcSchema | undefined = ArkivRpcSchema> = Prettify<Client<transport, chain, accountOrAddress, rpcSchema, PublicArkivActions<transport, chain>>>;
162
+ /**
163
+ * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).
164
+ *
165
+ * - Docs: https://docs.arkiv.network/ts-sdk/clients/public
166
+ *
167
+ * A Public Client is an interface to "public" [Ethereum JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/), [Arkiv JSON-RPC API](https://docs.arkiv.network/json-rpc/), and [Kaolin JSON-RPC API](https://kaolin.holesky.arkiv.network/rpc) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).
168
+ *
169
+ * @param parameters - Configuration object for the public client (chain, transport, etc.)
170
+ * @returns A Arkiv Public Client. {@link PublicArkivClient}
171
+ *
172
+ * @example
173
+ * import { createPublicClient, http } from 'arkiv'
174
+ * import { kaolin } from 'arkiv/chains'
175
+ *
176
+ * const client = createPublicClient({
177
+ * chain: kaolin,
178
+ * transport: http(),
179
+ * })
180
+ */
181
+ declare function createPublicClient<transport extends Transport, chain extends Chain | undefined = undefined, accountOrAddress extends Account | Address | undefined = undefined, rpcSchema extends RpcSchema | undefined = ArkivRpcSchema>(parameters: PublicClientConfig<transport, chain, accountOrAddress, rpcSchema>): PublicArkivClient<transport, chain, ParseAccount<accountOrAddress>, rpcSchema>;
182
+ //#endregion
183
+ //#region src/clients/decorators/arkivWallet.d.ts
184
+ type WalletArkivActions<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = Pick<PublicActions<transport, chain, account>, "waitForTransactionReceipt"> & Pick<WalletActions<chain, account>, "addChain" | "sendCalls" | "waitForCallsStatus" | "sendTransaction" | "sendRawTransaction" | "signMessage" | "signTransaction"> & {
185
+ /**
186
+ * Creates a new entity.
187
+ *
188
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/wallet/createEntity
189
+ * - JSON-RPC Methods: [`eth_sendRawTransaction`](https://docs.arkiv.network/dev/json-rpc-api/#mutateEntities)
190
+ *
191
+ * @param data - The entity creation parameters
192
+ * @param txParams - Optional transaction parameters
193
+ * @returns The created entity with transaction hash
194
+ *
195
+ * @example
196
+ * import { createPublicClient, http } from 'arkiv'
197
+ * import { kaolin } from 'arkiv/chains'
198
+ *
199
+ * const client = createPublicClient({
200
+ * chain: kaolin,
201
+ * transport: http(),
202
+ * })
203
+ * const { entityKey, txHash } = await client.createEntity({
204
+ * payload: toBytes(JSON.stringify({ entity: { entityType: "testType", entityId: "testId" } })),
205
+ * attributes: [{ key: "testKey", value: "testValue" }],
206
+ * expiresIn: 1000,
207
+ * })
208
+ * console.log("entityKey", entityKey)
209
+ * console.log("txHash", txHash)
210
+ * // {
211
+ * // entityKey: "0x123",
212
+ * // txHash: "0x123",
213
+ * // }
214
+ */
215
+ createEntity: (data: CreateEntityParameters, txParams?: TxParams) => Promise<CreateEntityReturnType>;
216
+ /**
217
+ * Updates the entity with the given key.
218
+ *
219
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/wallet/updateEntity
220
+ * - JSON-RPC Methods: [`eth_sendRawTransaction`](https://docs.arkiv.network/dev/json-rpc-api/#mutateEntities)
221
+ *
222
+ * @param data - The entity update parameters
223
+ * @param txParams - Optional transaction parameters
224
+ * @returns The updated entity with transaction hash
225
+ *
226
+ * @example
227
+ * import { createWalletClient, http } from 'arkiv'
228
+ * import { kaolin } from 'arkiv/chains'
229
+ *
230
+ * const client = createWalletClient({
231
+ * chain: kaolin,
232
+ * transport: http(),
233
+ * })
234
+ */
235
+ updateEntity: (data: UpdateEntityParameters, txParams?: TxParams) => Promise<UpdateEntityReturnType>;
236
+ /**
237
+ * Deletes the entity with the given key.
238
+ *
239
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/wallet/deleteEntity
240
+ * - JSON-RPC Methods: [`eth_sendRawTransaction`](https://docs.arkiv.network/dev/json-rpc-api/#mutateEntities)
241
+ *
242
+ * @param data - The entity deletion parameters
243
+ * @param txParams - Optional transaction parameters
244
+ * @returns The deleted entity with transaction hash
245
+ *
246
+ * @example
247
+ * import { createWalletClient, http } from 'arkiv'
248
+ * import { kaolin } from 'arkiv/chains'
249
+ *
250
+ * const client = createWalletClient({
251
+ * chain: kaolin,
252
+ * transport: http(),
253
+ * })
254
+ * const { entityKey, txHash } = await client.deleteEntity({ entityKey: "0x123" })
255
+ * console.log("entityKey", entityKey)
256
+ * console.log("txHash", txHash)
257
+ * // {
258
+ * // entityKey: "0x123",
259
+ * // txHash: "0x123",
260
+ * // }
261
+ */
262
+ deleteEntity: (data: DeleteEntityParameters, txParams?: TxParams) => Promise<DeleteEntityReturnType>;
263
+ /**
264
+ * Extends the entity with the given key.
265
+ *
266
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/wallet/extendEntity
267
+ * - JSON-RPC Methods: [`eth_sendRawTransaction`](https://docs.arkiv.network/dev/json-rpc-api/#mutateEntities)
268
+ *
269
+ * @param data - The entity update parameters
270
+ * @param txParams - Optional transaction parameters
271
+ * @returns The updated entity with transaction hash
272
+ *
273
+ * @example
274
+ * import { createWalletClient, http } from 'arkiv'
275
+ * import { kaolin } from 'arkiv/chains'
276
+ *
277
+ * const client = createWalletClient({
278
+ * chain: kaolin,
279
+ * transport: http(),
280
+ * })
281
+ * const { entityKey, txHash } = await client.extendEntity("0x123", {
282
+ * expiresIn: 1000,
283
+ * })
284
+ * console.log("entityKey", entityKey)
285
+ * console.log("txHash", txHash)
286
+ * // {
287
+ * // entityKey: "0x123",
288
+ * // txHash: "0x123",
289
+ * // }
290
+ */
291
+ extendEntity: (data: ExtendEntityParameters, txParams?: TxParams) => Promise<ExtendEntityReturnType>;
292
+ /**
293
+ * Changes the ownership of the entity with the given address.
294
+ *
295
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/wallet/changeOwnership
296
+ * - JSON-RPC Methods: [`eth_sendRawTransaction`](https://docs.arkiv.network/dev/json-rpc-api/#mutateEntities)
297
+ *
298
+ * @param data - The ownership change parameters
299
+ * @param txParams - Optional transaction parameters
300
+ * @returns The entity with updated ownership and transaction hash
301
+ */
302
+ changeOwnership: (data: ChangeOwnershipParameters, txParams?: TxParams) => Promise<ChangeOwnershipReturnType>;
303
+ /**
304
+ * Mutates the entities with the given keys.
305
+ *
306
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/wallet/mutateEntities
307
+ * - JSON-RPC Methods: [`eth_sendRawTransaction`](https://docs.arkiv.network/dev/json-rpc-api/#mutateEntities)
308
+ *
309
+ * @param data - The mutation parameters (creates, updates, deletes, extensions)
310
+ * @param txParams - Optional transaction parameters
311
+ * @returns The mutation result with transaction hash
312
+ *
313
+ * @example
314
+ * import { createWalletClient, http } from 'arkiv'
315
+ * import { kaolin } from 'arkiv/chains'
316
+ *
317
+ * const client = createWalletClient({
318
+ * chain: kaolin,
319
+ * transport: http(),
320
+ * })
321
+ * const { entityKey, txHash } = await client.mutateEntities({
322
+ * creates: [{
323
+ * payload: toBytes(JSON.stringify({ entity: { entityType: "testType", entityId: "testId" } })),
324
+ * attriubutes: [{ key: "testKey", value: "testValue" }],
325
+ * expiresIn: 1000,
326
+ * }],
327
+ * updates: [{
328
+ * entityKey: "0x123",
329
+ * payload: toBytes(JSON.stringify({ entity: { entityType: "testType", entityId: "testId" } })),
330
+ * attributes: [{ key: "testKey", value: "testValue" }],
331
+ * expiresIn: 1000,
332
+ * }],
333
+ * deletes: [{
334
+ * entityKey: "0x321",
335
+ * }],
336
+ * extensions: [{
337
+ * entityKey: "0x1234",
338
+ * expiresIn: 1000,
339
+ * }],
340
+ * })
341
+ * console.log("entityKey", entityKey)
342
+ * console.log("txHash", txHash)
343
+ * // {
344
+ * // entityKey: "0x123",
345
+ * // txHash: "0x123",
346
+ * // }
347
+ */
348
+ mutateEntities: (data: MutateEntitiesParameters, txParams?: TxParams) => Promise<MutateEntitiesReturnType>;
349
+ };
350
+ //#endregion
351
+ //#region src/clients/createWalletClient.d.ts
352
+ type WalletArkivClient<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, rpcSchema extends RpcSchema | undefined = ArkivRpcSchema> = Prettify<Client<transport, chain, account, rpcSchema, WalletArkivActions<transport, chain, account>>>;
353
+ /**
354
+ * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).
355
+ *
356
+ * - Docs: https://docs.arkiv.network/ts-sdk/clients/public
357
+ *
358
+ * A Public Client is an interface to "public" [Ethereum JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/), [Arkiv JSON-RPC API](https://docs.arkiv.network/json-rpc/), and [Kaolin JSON-RPC API](https://kaolin.holesky.arkiv.network/rpc) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).
359
+ *
360
+ * @param parameters - Configuration object for the wallet client (chain, transport, account, etc.)
361
+ * @returns A Arkiv Wallet Client. {@link WalletArkivClient}
362
+ *
363
+ * @example
364
+ * import { createPublicClient, http } from 'arkiv'
365
+ * import { kaolin } from 'arkiv/chains'
366
+ *
367
+ * const client = createPublicClient({
368
+ * chain: kaolin,
369
+ * transport: http(),
370
+ * })
371
+ */
372
+ declare function createWalletClient<transport extends Transport, chain extends Chain | undefined = undefined, accountOrAddress extends Account | Address | undefined = undefined, rpcSchema extends RpcSchema | undefined = ArkivRpcSchema>(parameters: WalletClientConfig<transport, chain, accountOrAddress, rpcSchema>): WalletArkivClient<transport, chain, ParseAccount<accountOrAddress>, rpcSchema>;
373
+ //#endregion
374
+ //#region src/errors.d.ts
375
+ declare class EntityMutationError extends Error {
376
+ constructor(message: string);
377
+ }
378
+ declare class NoMoreResultsError extends Error {
379
+ constructor();
380
+ }
381
+ declare class NoCursorOrLimitError extends Error {
382
+ constructor();
383
+ }
384
+ declare class NoEntityFoundError extends Error {
385
+ constructor();
386
+ }
387
+ //#endregion
388
+ //#region src/utils/chains.d.ts
389
+ /**
390
+ * Get a chain from its name
391
+ * @param name - The name of the chain, case insensitive
392
+ * @returns The chain
393
+ * @throws An error if the chain is not found
394
+ */
395
+ declare function chainFromName(name: string): Chain;
396
+ //#endregion
397
+ 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 };
398
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +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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"}