@arkiv-network/sdk 0.6.8-dev.1 → 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 (79) hide show
  1. package/README.md +52 -16
  2. package/dist/chains/index.d.cts +25 -25
  3. package/dist/chains/index.d.cts.map +1 -1
  4. package/dist/chains/index.d.ts +25 -25
  5. package/dist/consts-AUoL-v42.cjs +18 -0
  6. package/dist/consts-BV4PR-de.js +7 -0
  7. package/dist/consts-BV4PR-de.js.map +1 -0
  8. package/dist/{query-CO6f35AE.d.cts → entity-BSU5-vyY.d.cts} +68 -31
  9. package/dist/entity-BSU5-vyY.d.cts.map +1 -0
  10. package/dist/{query-BhdmAzYg.d.ts → entity-CHiZ2Qu1.d.ts} +68 -31
  11. package/dist/entity-CHiZ2Qu1.d.ts.map +1 -0
  12. package/dist/{queryBuilder-BvoQXa_u.d.ts → index-CzqHiUAo.d.ts} +202 -74
  13. package/dist/index-CzqHiUAo.d.ts.map +1 -0
  14. package/dist/{queryBuilder-zTsKXctT.d.cts → index-gj33r3rd.d.cts} +202 -74
  15. package/dist/index-gj33r3rd.d.cts.map +1 -0
  16. package/dist/index.cjs +63 -28
  17. package/dist/index.d.cts +90 -4
  18. package/dist/index.d.cts.map +1 -1
  19. package/dist/index.d.ts +91 -5
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +58 -21
  22. package/dist/index.js.map +1 -1
  23. package/dist/{payload-Da9gJMG5.d.ts → payload-B2kFJyah.d.ts} +1 -1
  24. package/dist/{payload-Da9gJMG5.d.ts.map → payload-B2kFJyah.d.ts.map} +1 -1
  25. package/dist/payload-Claf2jUO.js +13 -0
  26. package/dist/payload-Claf2jUO.js.map +1 -0
  27. package/dist/{payload-vwU3Rc6P.cjs → payload-DpA5PA-w.cjs} +0 -17
  28. package/dist/query/index.cjs +6 -2
  29. package/dist/query/index.d.cts +3 -3
  30. package/dist/query/index.d.ts +3 -3
  31. package/dist/query/index.js +3 -2
  32. package/dist/query/index.js.map +1 -1
  33. package/dist/{queryBuilder-DM-YO1Y7.cjs → queryBuilder-CTPwve9u.cjs} +229 -70
  34. package/dist/{queryBuilder-DonAg1aq.js → queryBuilder-D-ACo-g_.js} +201 -72
  35. package/dist/queryBuilder-D-ACo-g_.js.map +1 -0
  36. package/dist/types/index.d.cts +1 -1
  37. package/dist/types/index.d.ts +1 -1
  38. package/dist/utils/index.cjs +4 -10
  39. package/dist/utils/index.d.cts +0 -1
  40. package/dist/utils/index.d.cts.map +1 -1
  41. package/dist/utils/index.d.ts +1 -2
  42. package/dist/utils/index.d.ts.map +1 -1
  43. package/dist/utils/index.js +2 -3
  44. package/dist/utils/index.js.map +1 -1
  45. package/package.json +11 -15
  46. package/src/actions/public/buildQuery.ts +4 -0
  47. package/src/actions/wallet/createEntity.ts +12 -2
  48. package/src/actions/wallet/extendEntity.ts +6 -1
  49. package/src/actions/wallet/updateEntity.ts +12 -2
  50. package/src/clients/createPublicClient.test.ts +2 -0
  51. package/src/clients/decorators/arkivPublic.ts +67 -1
  52. package/src/clients/decorators/arkivWallet.ts +18 -0
  53. package/src/errors.ts +18 -0
  54. package/src/index.ts +0 -3
  55. package/src/query/engine.ts +22 -13
  56. package/src/query/index.ts +1 -0
  57. package/src/query/queryBuilder.ts +189 -94
  58. package/src/query/queryResult.ts +13 -7
  59. package/src/query/selectQueryBuilder.test.ts +210 -0
  60. package/src/query/selection.test.ts +120 -0
  61. package/src/query/selection.ts +116 -0
  62. package/src/types/attributes.ts +12 -0
  63. package/src/utils/arkivTransactions.test.ts +62 -0
  64. package/src/utils/arkivTransactions.ts +36 -27
  65. package/src/utils/index.ts +0 -1
  66. package/src/utils/validation.test.ts +60 -0
  67. package/src/utils/validation.ts +32 -0
  68. package/dist/accounts/index.cjs +0 -9
  69. package/dist/accounts/index.d.cts +0 -1
  70. package/dist/accounts/index.d.ts +0 -1
  71. package/dist/accounts/index.js +0 -1
  72. package/dist/payload-DKBYYjeA.js +0 -18
  73. package/dist/payload-DKBYYjeA.js.map +0 -1
  74. package/dist/query-BhdmAzYg.d.ts.map +0 -1
  75. package/dist/query-CO6f35AE.d.cts.map +0 -1
  76. package/dist/queryBuilder-BvoQXa_u.d.ts.map +0 -1
  77. package/dist/queryBuilder-DonAg1aq.js.map +0 -1
  78. package/dist/queryBuilder-zTsKXctT.d.cts.map +0 -1
  79. package/src/accounts/index.ts +0 -1
package/README.md CHANGED
@@ -1,18 +1,20 @@
1
1
  # arkivjs
2
2
 
3
3
  A TypeScript client library for Arkiv's blockchains interactions.
4
- The Arkiv SDK base strongly on Viem (Viem)[https://github.com/wevm/viem] library - it can be treated as Viem replacement extended of Arkiv's chains specific features.
4
+ The Arkiv SDK builds strongly on the [Viem](https://github.com/wevm/viem) library - it extends Viem's clients with Arkiv's chain-specific features.
5
+
6
+ [`viem`](https://viem.sh) is a **peer dependency**: install it alongside the SDK.
5
7
 
6
8
  ## Installation
7
9
 
8
10
  ```bash
9
- npm install @arkiv-network/sdk
11
+ npm install @arkiv-network/sdk viem
10
12
  # or
11
- pnpm install @arkiv-network/sdk
13
+ pnpm install @arkiv-network/sdk viem
12
14
  # or
13
- bun add @arkiv-network/sdk
15
+ bun add @arkiv-network/sdk viem
14
16
  # or
15
- yarn add @arkiv-network/sdk
17
+ yarn add @arkiv-network/sdk viem
16
18
  ```
17
19
 
18
20
  ## Usage
@@ -76,14 +78,15 @@ Modify the `"main"` entry to `"read_example.ts"` and set `"type"` to `"module"`
76
78
  }
77
79
  ```
78
80
 
79
- Install `@arkiv-network/sdk` using your preferred package manager:
81
+ Install `@arkiv-network/sdk` along with its `viem` peer dependency using your preferred package manager:
80
82
  ```bash
81
- npm install @arkiv-network/sdk
83
+ npm install @arkiv-network/sdk viem
82
84
  ```
83
85
  This command will update your `package.json` with a section like:
84
86
  ```json
85
87
  "dependencies": {
86
- "@arkiv-network/sdk": "^0.6.0"
88
+ "@arkiv-network/sdk": "^0.6.0",
89
+ "viem": "^2.38.2"
87
90
  }
88
91
  ```
89
92
  It will also create a `node_modules` directory with all dependencies installed.
@@ -93,9 +96,10 @@ It will also create a `node_modules` directory with all dependencies installed.
93
96
  You can now use Arkiv's public client to query data. Paste the following in `read_example.ts`:
94
97
 
95
98
  ```typescript
96
- import { createPublicClient, http } from "@arkiv-network/sdk"
99
+ import { createPublicClient } from "@arkiv-network/sdk"
97
100
  import { braga } from "@arkiv-network/sdk/chains"
98
101
  import { eq } from "@arkiv-network/sdk/query"
102
+ import { http } from "viem"
99
103
 
100
104
  const publicClient = createPublicClient({
101
105
  chain: braga, // "braga" is Arkiv's testnet
@@ -110,13 +114,11 @@ console.log('Chain ID:', chainId);
110
114
  const entity = await publicClient.getEntity('0xcadb830a3414251d65e5c92cd28ecb648d9e73d85f2203eff631839d5421f9d7');
111
115
  console.log('Entity:', entity);
112
116
 
113
- // Build and execute a query using QueryBuilder
114
- const query = publicClient.buildQuery();
115
- const result = await query
117
+ // Build and execute a query using select()
118
+ const result = await publicClient
119
+ .select({ owner: true, attributes: true, payload: true })
116
120
  .where(eq('category', 'documentation'))
117
121
  .ownedBy('0x6186B0DbA9652262942d5A465d49686eb560834C')
118
- .withAttributes(true)
119
- .withPayload(true)
120
122
  .limit(10)
121
123
  .fetch();
122
124
 
@@ -129,6 +131,39 @@ if (result.hasNextPage()) {
129
131
  }
130
132
  ```
131
133
 
134
+ #### Selecting fields with `select()`
135
+
136
+ Pass nothing (or `"*"`) to fetch everything, or pass an object to fetch only specific fields:
137
+
138
+ ```typescript
139
+ // All fields
140
+ await publicClient.select().where(eq("category", "docs")).fetch();
141
+
142
+ // Only the fields you need
143
+ await publicClient.select({ key: true, owner: true, payload: true }).where(eq("category", "docs")).fetch();
144
+ ```
145
+
146
+ **Select only what you need.** Every selected field is fetched over the network, so requesting
147
+ data you won't use makes queries slower. Narrowing the selection keeps responses small and fast.
148
+
149
+ The result type is inferred from your selection: reading a field you didn't select is a compile error. The `toText()` / `toJson()` payload
150
+ helpers are available only when you select `payload`.
151
+
152
+ ```typescript
153
+ const [entity] = (await publicClient.select({ owner: true, payload: true }).fetch()).entities;
154
+ entity.owner; // ✅ Hex
155
+ entity.toJson(); // ✅ payload was selected
156
+ entity.creator; // ❌ compile error — not selected
157
+ ```
158
+
159
+ > **Footgun:** pass the selection inline. A selection stored in a variable widens its `true` values
160
+ > to `boolean`, so the result type can't be narrowed (you get `{}` and a compile error on every
161
+ > field). If you need to reuse one, annotate it `as const`:
162
+ > ```typescript
163
+ > const fields = { owner: true, payload: true } as const;
164
+ > await publicClient.select(fields).where(eq("category", "docs")).fetch();
165
+ > ```
166
+
132
167
  ### Running the Example
133
168
 
134
169
  You have several options to run your TypeScript sample:
@@ -170,10 +205,11 @@ Now let's add storage (write) functionality.
170
205
  Create a file named `write_example.ts` with the following content:
171
206
 
172
207
  ```typescript
173
- import { createPublicClient, createWalletClient, http } from "@arkiv-network/sdk"
174
- import { privateKeyToAccount } from "@arkiv-network/sdk/accounts"
208
+ import { createPublicClient, createWalletClient } from "@arkiv-network/sdk"
175
209
  import { braga } from "@arkiv-network/sdk/chains"
176
210
  import { ExpirationTime, jsonToPayload } from "@arkiv-network/sdk/utils"
211
+ import { http } from "viem"
212
+ import { privateKeyToAccount } from "viem/accounts"
177
213
 
178
214
  // Create a public client
179
215
  const publicClient = createPublicClient({
@@ -1,4 +1,4 @@
1
- import * as viem0 from "viem";
1
+ import * as viem17 from "viem";
2
2
 
3
3
  //#region src/chains/braga.d.ts
4
4
  declare const braga: {
@@ -11,13 +11,13 @@ declare const braga: {
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]: viem17.ChainContract | {
15
+ [sourceId: number]: viem17.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?: viem17.ChainContract | undefined;
18
+ ensUniversalResolver?: viem17.ChainContract | undefined;
19
+ multicall3?: viem17.ChainContract | undefined;
20
+ erc6492Verifier?: viem17.ChainContract | undefined;
21
21
  } | undefined;
22
22
  ensTlds?: readonly string[] | undefined;
23
23
  id: 60138453102;
@@ -37,9 +37,9 @@ declare const braga: {
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?: viem17.ChainFees<undefined> | undefined;
41
41
  formatters?: undefined;
42
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
42
+ serializers?: viem17.ChainSerializers<undefined, viem17.TransactionSerializable> | undefined;
43
43
  readonly network: "braga";
44
44
  };
45
45
  //#endregion
@@ -57,13 +57,13 @@ declare const kaolin: {
57
57
  };
58
58
  blockTime?: number | undefined | undefined;
59
59
  contracts?: {
60
- [x: string]: viem0.ChainContract | {
61
- [sourceId: number]: viem0.ChainContract | undefined;
60
+ [x: string]: viem17.ChainContract | {
61
+ [sourceId: number]: viem17.ChainContract | undefined;
62
62
  } | undefined;
63
- ensRegistry?: viem0.ChainContract | undefined;
64
- ensUniversalResolver?: viem0.ChainContract | undefined;
65
- multicall3?: viem0.ChainContract | undefined;
66
- erc6492Verifier?: viem0.ChainContract | undefined;
63
+ ensRegistry?: viem17.ChainContract | undefined;
64
+ ensUniversalResolver?: viem17.ChainContract | undefined;
65
+ multicall3?: viem17.ChainContract | undefined;
66
+ erc6492Verifier?: viem17.ChainContract | undefined;
67
67
  } | undefined;
68
68
  ensTlds?: readonly string[] | undefined;
69
69
  id: 60138453025;
@@ -83,9 +83,9 @@ declare const kaolin: {
83
83
  sourceId?: number | undefined | undefined;
84
84
  testnet: true;
85
85
  custom?: Record<string, unknown> | undefined;
86
- fees?: viem0.ChainFees<undefined> | undefined;
86
+ fees?: viem17.ChainFees<undefined> | undefined;
87
87
  formatters?: undefined;
88
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
88
+ serializers?: viem17.ChainSerializers<undefined, viem17.TransactionSerializable> | undefined;
89
89
  readonly network: "kaolin";
90
90
  };
91
91
  //#endregion
@@ -105,13 +105,13 @@ declare const localhost: {
105
105
  } | undefined | undefined;
106
106
  blockTime?: number | undefined | undefined;
107
107
  contracts?: {
108
- [x: string]: viem0.ChainContract | {
109
- [sourceId: number]: viem0.ChainContract | undefined;
108
+ [x: string]: viem17.ChainContract | {
109
+ [sourceId: number]: viem17.ChainContract | undefined;
110
110
  } | undefined;
111
- ensRegistry?: viem0.ChainContract | undefined;
112
- ensUniversalResolver?: viem0.ChainContract | undefined;
113
- multicall3?: viem0.ChainContract | undefined;
114
- erc6492Verifier?: viem0.ChainContract | undefined;
111
+ ensRegistry?: viem17.ChainContract | undefined;
112
+ ensUniversalResolver?: viem17.ChainContract | undefined;
113
+ multicall3?: viem17.ChainContract | undefined;
114
+ erc6492Verifier?: viem17.ChainContract | undefined;
115
115
  } | undefined;
116
116
  ensTlds?: readonly string[] | undefined;
117
117
  id: 1337;
@@ -130,9 +130,9 @@ declare const localhost: {
130
130
  sourceId?: number | undefined | undefined;
131
131
  testnet?: boolean | undefined | undefined;
132
132
  custom?: Record<string, unknown> | undefined;
133
- fees?: viem0.ChainFees<undefined> | undefined;
133
+ fees?: viem17.ChainFees<undefined> | undefined;
134
134
  formatters?: undefined;
135
- serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
135
+ serializers?: viem17.ChainSerializers<undefined, viem17.TransactionSerializable> | undefined;
136
136
  };
137
137
  //#endregion
138
138
  export { braga, kaolin, localhost };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/chains/braga.ts","../../src/chains/kaolin.ts","../../src/chains/localhost.ts"],"sourcesContent":[],"mappings":";;;cAEa;;;MAuBX,SAAA,IAAA,EAAA,sBAAA;MAAA,SAAA,GAAA,EAAA,4CAAA;;;;;;iBAAA,KAAA,CAAA,aAAA;;;;;;;;ECpBW,OAAA,CAAA,EAuBX,SAAA,MAAA,EAAA,GAAA,SAAA;EAAA,EAAA,EAAA,WAAA;;;;;;;;;;;;;;EC1BW,QAAA,CAAA,EAAA,MAWX,GAAA,SAAA,GAAA,SAAA;EAAA,OAAA,EAAA,IAAA;;;;;;;;;;;;AFXW,cCGA,MDoBX,EAAA;EAAA,cAAA,EAAA;;;;;;;;;iBCGA,KAAA,CAAA,aAAA;;;;;IAvBW,UAuBX,CAAA,wBAAA,SAAA;IAAA,eAAA,CAAA,wBAAA,SAAA;;;;;;;;;;;;;;MC1BW,SAWX,SAAA,EAAA,SAAA,CAAA,yCAAA,CAAA;IAAA,CAAA;;;;;;;;;;;;cAXW;;;MFuBX,IAAA,EAAA,MAAA;MAAA,GAAA,EAAA,MAAA;;;;;;;;;;;iBEZA,KAAA,CAAA,aAAA;;;IDRW,WAuBX,CAAA,wBAAA,SAAA;IAAA,oBAAA,CAAA,wBAAA,SAAA;;;;;;;;;;;;;;IC1BW,SAWX,OAAA,EAAA;MAAA,SAAA,IAAA,EAAA,SAAA,CAAA,uBAAA,CAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/chains/braga.ts","../../src/chains/kaolin.ts","../../src/chains/localhost.ts"],"sourcesContent":[],"mappings":";;;cAEa;;;MAuBX,SAAA,IAAA,EAAA,sBAAA;MAAA,SAAA,GAAA,EAAA,4CAAA;;;;;;iBAAA,MAAA,CAAA,aAAA;;;;;;;;ECpBW,OAAA,CAAA,EAuBX,SAAA,MAAA,EAAA,GAAA,SAAA;EAAA,EAAA,EAAA,WAAA;;;;;;;;;;;;;;EC1BW,QAAA,CAAA,EAAA,MAWX,GAAA,SAAA,GAAA,SAAA;EAAA,OAAA,EAAA,IAAA;;;;;;;;;;;;AFXW,cCGA,MDoBX,EAAA;EAAA,cAAA,EAAA;;;;;;;;;iBCGA,MAAA,CAAA,aAAA;;;;;IAvBW,UAuBX,CAAA,yBAAA,SAAA;IAAA,eAAA,CAAA,yBAAA,SAAA;;;;;;;;;;;;;;MC1BW,SAWX,SAAA,EAAA,SAAA,CAAA,yCAAA,CAAA;IAAA,CAAA;;;;;;;;;;;;cAXW;;;MFuBX,IAAA,EAAA,MAAA;MAAA,GAAA,EAAA,MAAA;;;;;;;;;;;iBEZA,MAAA,CAAA,aAAA;;;IDRW,WAuBX,CAAA,yBAAA,SAAA;IAAA,oBAAA,CAAA,yBAAA,SAAA;;;;;;;;;;;;;;IC1BW,SAWX,OAAA,EAAA;MAAA,SAAA,IAAA,EAAA,SAAA,CAAA,uBAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import * as viem8 from "viem";
1
+ import * as viem0 from "viem";
2
2
 
3
3
  //#region src/chains/braga.d.ts
4
4
  declare const braga: {
@@ -11,13 +11,13 @@ declare const braga: {
11
11
  };
12
12
  blockTime?: number | undefined | undefined;
13
13
  contracts?: {
14
- [x: string]: viem8.ChainContract | {
15
- [sourceId: number]: viem8.ChainContract | undefined;
14
+ [x: string]: viem0.ChainContract | {
15
+ [sourceId: number]: viem0.ChainContract | undefined;
16
16
  } | undefined;
17
- ensRegistry?: viem8.ChainContract | undefined;
18
- ensUniversalResolver?: viem8.ChainContract | undefined;
19
- multicall3?: viem8.ChainContract | undefined;
20
- erc6492Verifier?: viem8.ChainContract | undefined;
17
+ ensRegistry?: viem0.ChainContract | undefined;
18
+ ensUniversalResolver?: viem0.ChainContract | undefined;
19
+ multicall3?: viem0.ChainContract | undefined;
20
+ erc6492Verifier?: viem0.ChainContract | undefined;
21
21
  } | undefined;
22
22
  ensTlds?: readonly string[] | undefined;
23
23
  id: 60138453102;
@@ -37,9 +37,9 @@ declare const braga: {
37
37
  sourceId?: number | undefined | undefined;
38
38
  testnet: true;
39
39
  custom?: Record<string, unknown> | undefined;
40
- fees?: viem8.ChainFees<undefined> | undefined;
40
+ fees?: viem0.ChainFees<undefined> | undefined;
41
41
  formatters?: undefined;
42
- serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
42
+ serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
43
43
  readonly network: "braga";
44
44
  };
45
45
  //#endregion
@@ -57,13 +57,13 @@ declare const kaolin: {
57
57
  };
58
58
  blockTime?: number | undefined | undefined;
59
59
  contracts?: {
60
- [x: string]: viem8.ChainContract | {
61
- [sourceId: number]: viem8.ChainContract | undefined;
60
+ [x: string]: viem0.ChainContract | {
61
+ [sourceId: number]: viem0.ChainContract | undefined;
62
62
  } | undefined;
63
- ensRegistry?: viem8.ChainContract | undefined;
64
- ensUniversalResolver?: viem8.ChainContract | undefined;
65
- multicall3?: viem8.ChainContract | undefined;
66
- erc6492Verifier?: viem8.ChainContract | undefined;
63
+ ensRegistry?: viem0.ChainContract | undefined;
64
+ ensUniversalResolver?: viem0.ChainContract | undefined;
65
+ multicall3?: viem0.ChainContract | undefined;
66
+ erc6492Verifier?: viem0.ChainContract | undefined;
67
67
  } | undefined;
68
68
  ensTlds?: readonly string[] | undefined;
69
69
  id: 60138453025;
@@ -83,9 +83,9 @@ declare const kaolin: {
83
83
  sourceId?: number | undefined | undefined;
84
84
  testnet: true;
85
85
  custom?: Record<string, unknown> | undefined;
86
- fees?: viem8.ChainFees<undefined> | undefined;
86
+ fees?: viem0.ChainFees<undefined> | undefined;
87
87
  formatters?: undefined;
88
- serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
88
+ serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
89
89
  readonly network: "kaolin";
90
90
  };
91
91
  //#endregion
@@ -105,13 +105,13 @@ declare const localhost: {
105
105
  } | undefined | undefined;
106
106
  blockTime?: number | undefined | undefined;
107
107
  contracts?: {
108
- [x: string]: viem8.ChainContract | {
109
- [sourceId: number]: viem8.ChainContract | undefined;
108
+ [x: string]: viem0.ChainContract | {
109
+ [sourceId: number]: viem0.ChainContract | undefined;
110
110
  } | undefined;
111
- ensRegistry?: viem8.ChainContract | undefined;
112
- ensUniversalResolver?: viem8.ChainContract | undefined;
113
- multicall3?: viem8.ChainContract | undefined;
114
- erc6492Verifier?: viem8.ChainContract | undefined;
111
+ ensRegistry?: viem0.ChainContract | undefined;
112
+ ensUniversalResolver?: viem0.ChainContract | undefined;
113
+ multicall3?: viem0.ChainContract | undefined;
114
+ erc6492Verifier?: viem0.ChainContract | undefined;
115
115
  } | undefined;
116
116
  ensTlds?: readonly string[] | undefined;
117
117
  id: 1337;
@@ -130,9 +130,9 @@ declare const localhost: {
130
130
  sourceId?: number | undefined | undefined;
131
131
  testnet?: boolean | undefined | undefined;
132
132
  custom?: Record<string, unknown> | undefined;
133
- fees?: viem8.ChainFees<undefined> | undefined;
133
+ fees?: viem0.ChainFees<undefined> | undefined;
134
134
  formatters?: undefined;
135
- serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
135
+ serializers?: viem0.ChainSerializers<undefined, viem0.TransactionSerializable> | undefined;
136
136
  };
137
137
  //#endregion
138
138
  export { braga, kaolin, localhost };
@@ -0,0 +1,18 @@
1
+
2
+ //#region src/consts.ts
3
+ const ARKIV_ADDRESS = "0x00000000000000000000000000000061726b6976";
4
+ const BLOCK_TIME = 2;
5
+
6
+ //#endregion
7
+ Object.defineProperty(exports, 'ARKIV_ADDRESS', {
8
+ enumerable: true,
9
+ get: function () {
10
+ return ARKIV_ADDRESS;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, 'BLOCK_TIME', {
14
+ enumerable: true,
15
+ get: function () {
16
+ return BLOCK_TIME;
17
+ }
18
+ });
@@ -0,0 +1,7 @@
1
+ //#region src/consts.ts
2
+ const ARKIV_ADDRESS = "0x00000000000000000000000000000061726b6976";
3
+ const BLOCK_TIME = 2;
4
+
5
+ //#endregion
6
+ export { BLOCK_TIME as n, ARKIV_ADDRESS as t };
7
+ //# sourceMappingURL=consts-BV4PR-de.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts-BV4PR-de.js","names":[],"sources":["../src/consts.ts"],"sourcesContent":["export const ARKIV_ADDRESS = \"0x00000000000000000000000000000061726b6976\" as `0x${string}`\nexport const BLOCK_TIME = 2 // 2 seconds\n"],"mappings":";AAAA,MAAa,gBAAgB;AAC7B,MAAa,aAAa"}
@@ -81,6 +81,30 @@ type GetBlockTimingReturnType = {
81
81
  blockDuration: number;
82
82
  };
83
83
  //#endregion
84
+ //#region src/actions/public/query.d.ts
85
+ type QueryOptionsIncludeData = {
86
+ attributes?: boolean;
87
+ payload?: boolean;
88
+ metadata?: boolean;
89
+ };
90
+ type QueryOptionsOrderBy = {
91
+ name: string;
92
+ type: "string" | "numeric";
93
+ desc: "asc" | "desc";
94
+ };
95
+ type QueryOptions = {
96
+ includeData?: QueryOptionsIncludeData;
97
+ atBlock?: bigint;
98
+ orderBy?: QueryOptionsOrderBy[];
99
+ resultsPerPage?: number | undefined;
100
+ cursor?: string | undefined;
101
+ };
102
+ type QueryReturnType = {
103
+ entities: Entity[];
104
+ cursor: string | undefined;
105
+ blockNumber: bigint | undefined;
106
+ };
107
+ //#endregion
84
108
  //#region src/actions/wallet/changeOwnership.d.ts
85
109
  /**
86
110
  * Parameters for the deleteEntity function.
@@ -104,14 +128,24 @@ type ChangeOwnershipReturnType = {
104
128
  /**
105
129
  * Parameters for the createEntity function.
106
130
  * - payload: The payload of the entity.
107
- * - attributes: The attributes of the entity.
131
+ * - attributes: The attributes of the entity. Attribute values may be strings
132
+ * or numbers, but numeric values **must be integers**. To store a non-integer,
133
+ * scale it to an integer (e.g. `1.5` -> `1500`) to preserve numeric ordering,
134
+ * or pass it as a string (e.g. `"1.5"`). A non-integer numeric value throws an
135
+ * {@link InvalidAttributeError}.
108
136
  * - contentType: The content type of the entity.
109
- * - expiresIn: The expires in of the entity in seconds.
137
+ * - expiresIn: How long until the entity expires, in seconds. Because Arkiv
138
+ * measures expiration in blocks (1 block = 2 seconds), this **must be a
139
+ * positive integer and a multiple of the block time (2 seconds)**
140
+ * Invalid values throw an {@link InvalidExpirationError}.
110
141
  */
111
142
  type CreateEntityParameters = {
112
143
  payload: Uint8Array;
144
+ /** Entity attributes. Numeric values must be integers (scale non-integers, e.g. `1.5` -> `1500`, or use a string). Throws {@link InvalidAttributeError} otherwise. */
113
145
  attributes: Attribute[];
114
146
  contentType: MimeType | string;
147
+ /** Seconds until expiry. Must be a positive integer and a multiple of the 2s block time.
148
+ * Throws {@link InvalidExpirationError} otherwise. */
115
149
  expiresIn: number;
116
150
  };
117
151
  /**
@@ -146,10 +180,15 @@ type DeleteEntityReturnType = {
146
180
  /**
147
181
  * Parameters for the extendEntity function.
148
182
  * - entityKey: The key of the entity to extend.
149
- * - expiresIn: The expires in of the entity in seconds.
183
+ * - expiresIn: How long to extend the entity by, in seconds. Because Arkiv
184
+ * measures expiration in blocks (1 block = 2 seconds), this **must be a
185
+ * positive integer and a multiple of the block time (2 seconds)**.
186
+ * Invalid values throw an {@link InvalidExpirationError}.
150
187
  */
151
188
  type ExtendEntityParameters = {
152
189
  entityKey: Hex;
190
+ /** Seconds to extend by. Must be a positive integer and a multiple of the 2s block time.
191
+ * Throws {@link InvalidExpirationError} otherwise. */
153
192
  expiresIn: number;
154
193
  };
155
194
  /**
@@ -167,15 +206,25 @@ type ExtendEntityReturnType = {
167
206
  * Parameters for the updateEntity function.
168
207
  * - entityKey: The key of the entity to update.
169
208
  * - payload: The payload of the entity.
170
- * - attributes: The attributes of the entity.
209
+ * - attributes: The attributes of the entity. Attribute values may be strings
210
+ * or numbers, but numeric values **must be integers**. To store a non-integer,
211
+ * scale it to an integer (e.g. `1.5` -> `1500`) to preserve numeric ordering,
212
+ * or pass it as a string (e.g. `"1.5"`). A non-integer numeric value throws an
213
+ * {@link InvalidAttributeError}.
171
214
  * - contentType: The content type of the entity.
172
- * - expiresIn: The expires in of the entity in seconds.
215
+ * - expiresIn: How long until the entity expires, in seconds. Because Arkiv
216
+ * measures expiration in blocks (1 block = 2 seconds), this **must be a
217
+ * positive integer and a multiple of the block time (2 seconds)**.
218
+ * Invalid values throw an {@link InvalidExpirationError}.
173
219
  */
174
220
  type UpdateEntityParameters = {
175
221
  entityKey: Hex;
176
222
  payload: Uint8Array;
223
+ /** Entity attributes. Numeric values must be integers (scale non-integers, e.g. `1.5` -> `1500`, or use a string). Throws {@link InvalidAttributeError} otherwise. */
177
224
  attributes: Attribute[];
178
225
  contentType: MimeType | string;
226
+ /** Seconds until expiry. Must be a positive integer and a multiple of the 2s block time.
227
+ * Throws {@link InvalidExpirationError} otherwise. */
179
228
  expiresIn: number;
180
229
  };
181
230
  /**
@@ -222,8 +271,20 @@ type MutateEntitiesReturnType = {
222
271
  };
223
272
  //#endregion
224
273
  //#region src/types/attributes.d.ts
274
+ /**
275
+ * An entity attribute (key/value pair).
276
+ *
277
+ * Arkiv supports both string and number values. Numeric values **must be
278
+ * integers** — passing a non-integer number (e.g. `1.5`) throws an
279
+ * {@link InvalidAttributeError} at mutation time. To store a non-integer value:
280
+ * - Scale it to an integer (e.g. `1.5` -> `1500`, dividing by the same factor on
281
+ * read) to keep numeric ordering and range queries working.
282
+ * - Or pass it as a string (e.g. `"1.5"`), which sorts lexicographically and so
283
+ * does not support numeric comparisons.
284
+ */
225
285
  type Attribute = {
226
286
  key: string;
287
+ /** Attribute value. A `number` must be an integer (scale non-integers, e.g. `1.5` -> `1500`, or use a string). Throws {@link InvalidAttributeError} otherwise. */
227
288
  value: string | number;
228
289
  };
229
290
  //#endregion
@@ -307,29 +368,5 @@ declare class Entity {
307
368
  toJson(): any;
308
369
  }
309
370
  //#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-CO6f35AE.d.cts.map
371
+ export { RpcIncludeData as A, QueryOptionsIncludeData as C, ArkivClient as D, GetBlockTimingReturnType as E, RpcQueryOptions as M, MimeType as N, ArkivRpcSchema as O, QueryOptions as S, QueryReturnType as T, DeleteEntityReturnType as _, OnEntityExpiredEvent as a, ChangeOwnershipParameters as b, OnEntityUpdatedEvent as c, MutateEntitiesReturnType as d, UpdateEntityParameters as f, DeleteEntityParameters as g, ExtendEntityReturnType as h, OnEntityDeletedEvent as i, RpcOrderByAttribute as j, RpcEntity as k, Attribute as l, ExtendEntityParameters as m, TxParams as n, OnEntityExpiresInExtendedEvent as o, UpdateEntityReturnType as p, OnEntityCreatedEvent as r, OnEntityOwnerChangedEvent as s, Entity as t, MutateEntitiesParameters as u, CreateEntityParameters as v, QueryOptionsOrderBy as w, ChangeOwnershipReturnType as x, CreateEntityReturnType as y };
372
+ //# sourceMappingURL=entity-BSU5-vyY.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-BSU5-vyY.d.cts","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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"}