@inkd/sdk 0.9.0

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 (106) hide show
  1. package/README.md +288 -0
  2. package/dist/InkdClient.d.ts +89 -0
  3. package/dist/InkdClient.d.ts.map +1 -0
  4. package/dist/InkdClient.js +398 -0
  5. package/dist/InkdClient.js.map +1 -0
  6. package/dist/ProjectRegistry.d.ts +655 -0
  7. package/dist/ProjectRegistry.d.ts.map +1 -0
  8. package/dist/ProjectRegistry.js +708 -0
  9. package/dist/ProjectRegistry.js.map +1 -0
  10. package/dist/__tests__/InkdClient.advanced.test.d.ts +10 -0
  11. package/dist/__tests__/InkdClient.advanced.test.d.ts.map +1 -0
  12. package/dist/__tests__/InkdClient.advanced.test.js +588 -0
  13. package/dist/__tests__/InkdClient.advanced.test.js.map +1 -0
  14. package/dist/__tests__/InkdClient.connectArweave.test.d.ts +10 -0
  15. package/dist/__tests__/InkdClient.connectArweave.test.d.ts.map +1 -0
  16. package/dist/__tests__/InkdClient.connectArweave.test.js +132 -0
  17. package/dist/__tests__/InkdClient.connectArweave.test.js.map +1 -0
  18. package/dist/__tests__/InkdClient.test.d.ts +2 -0
  19. package/dist/__tests__/InkdClient.test.d.ts.map +1 -0
  20. package/dist/__tests__/InkdClient.test.js +259 -0
  21. package/dist/__tests__/InkdClient.test.js.map +1 -0
  22. package/dist/__tests__/ProjectRegistry.test.d.ts +8 -0
  23. package/dist/__tests__/ProjectRegistry.test.d.ts.map +1 -0
  24. package/dist/__tests__/ProjectRegistry.test.js +689 -0
  25. package/dist/__tests__/ProjectRegistry.test.js.map +1 -0
  26. package/dist/__tests__/arweave.test.d.ts +9 -0
  27. package/dist/__tests__/arweave.test.d.ts.map +1 -0
  28. package/dist/__tests__/arweave.test.js +353 -0
  29. package/dist/__tests__/arweave.test.js.map +1 -0
  30. package/dist/__tests__/encryption.test.d.ts +2 -0
  31. package/dist/__tests__/encryption.test.d.ts.map +1 -0
  32. package/dist/__tests__/encryption.test.js +154 -0
  33. package/dist/__tests__/encryption.test.js.map +1 -0
  34. package/dist/__tests__/errors.test.d.ts +2 -0
  35. package/dist/__tests__/errors.test.d.ts.map +1 -0
  36. package/dist/__tests__/errors.test.js +136 -0
  37. package/dist/__tests__/errors.test.js.map +1 -0
  38. package/dist/__tests__/events.test.d.ts +10 -0
  39. package/dist/__tests__/events.test.d.ts.map +1 -0
  40. package/dist/__tests__/events.test.js +380 -0
  41. package/dist/__tests__/events.test.js.map +1 -0
  42. package/dist/__tests__/index.InkdClient.test.d.ts +8 -0
  43. package/dist/__tests__/index.InkdClient.test.d.ts.map +1 -0
  44. package/dist/__tests__/index.InkdClient.test.js +422 -0
  45. package/dist/__tests__/index.InkdClient.test.js.map +1 -0
  46. package/dist/__tests__/multicall.test.d.ts +9 -0
  47. package/dist/__tests__/multicall.test.d.ts.map +1 -0
  48. package/dist/__tests__/multicall.test.js +362 -0
  49. package/dist/__tests__/multicall.test.js.map +1 -0
  50. package/dist/__tests__/types.test.d.ts +2 -0
  51. package/dist/__tests__/types.test.d.ts.map +1 -0
  52. package/dist/__tests__/types.test.js +35 -0
  53. package/dist/__tests__/types.test.js.map +1 -0
  54. package/dist/abi.d.ts +2632 -0
  55. package/dist/abi.d.ts.map +1 -0
  56. package/dist/abi.js +3423 -0
  57. package/dist/abi.js.map +1 -0
  58. package/dist/arweave.d.ts +45 -0
  59. package/dist/arweave.d.ts.map +1 -0
  60. package/dist/arweave.js +154 -0
  61. package/dist/arweave.js.map +1 -0
  62. package/dist/encryption.d.ts +52 -0
  63. package/dist/encryption.d.ts.map +1 -0
  64. package/dist/encryption.js +80 -0
  65. package/dist/encryption.js.map +1 -0
  66. package/dist/errors.d.ts +63 -0
  67. package/dist/errors.d.ts.map +1 -0
  68. package/dist/errors.js +124 -0
  69. package/dist/errors.js.map +1 -0
  70. package/dist/events.d.ts +136 -0
  71. package/dist/events.d.ts.map +1 -0
  72. package/dist/events.js +131 -0
  73. package/dist/events.js.map +1 -0
  74. package/dist/hooks/index.d.ts +5 -0
  75. package/dist/hooks/index.d.ts.map +1 -0
  76. package/dist/hooks/index.js +12 -0
  77. package/dist/hooks/index.js.map +1 -0
  78. package/dist/hooks/useInkd.d.ts +24 -0
  79. package/dist/hooks/useInkd.d.ts.map +1 -0
  80. package/dist/hooks/useInkd.js +109 -0
  81. package/dist/hooks/useInkd.js.map +1 -0
  82. package/dist/hooks/useInkdHolder.d.ts +16 -0
  83. package/dist/hooks/useInkdHolder.d.ts.map +1 -0
  84. package/dist/hooks/useInkdHolder.js +45 -0
  85. package/dist/hooks/useInkdHolder.js.map +1 -0
  86. package/dist/hooks/useInscriptions.d.ts +17 -0
  87. package/dist/hooks/useInscriptions.d.ts.map +1 -0
  88. package/dist/hooks/useInscriptions.js +46 -0
  89. package/dist/hooks/useInscriptions.js.map +1 -0
  90. package/dist/hooks/useToken.d.ts +16 -0
  91. package/dist/hooks/useToken.d.ts.map +1 -0
  92. package/dist/hooks/useToken.js +45 -0
  93. package/dist/hooks/useToken.js.map +1 -0
  94. package/dist/index.d.ts +54 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +290 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/multicall.d.ts +134 -0
  99. package/dist/multicall.d.ts.map +1 -0
  100. package/dist/multicall.js +182 -0
  101. package/dist/multicall.js.map +1 -0
  102. package/dist/types.d.ts +187 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +32 -0
  105. package/dist/types.js.map +1 -0
  106. package/package.json +78 -0
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+ /**
3
+ * Tests for sdk/src/index.ts — InkdClient (viem-based) and ADDRESSES
4
+ *
5
+ * Strategy: mock viem's createPublicClient so no real RPC calls are made.
6
+ * The wallet client is also a plain vi.fn() mock.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ const vitest_1 = require("vitest");
43
+ const viem_1 = require("viem");
44
+ // ─── Mock viem before importing index ────────────────────────────────────────
45
+ const mockReadContract = vitest_1.vi.fn();
46
+ const mockPublicClient = { readContract: mockReadContract };
47
+ vitest_1.vi.mock("viem", async (importOriginal) => {
48
+ const actual = await importOriginal();
49
+ return {
50
+ ...actual,
51
+ createPublicClient: vitest_1.vi.fn(() => mockPublicClient),
52
+ };
53
+ });
54
+ // Import AFTER mocking
55
+ const index_js_1 = require("../index.js");
56
+ // ─── Mock Wallet Client ───────────────────────────────────────────────────────
57
+ function makeMockWallet(address = "0xuser000000000000000000000000000000000000") {
58
+ return {
59
+ getAddresses: vitest_1.vi.fn().mockResolvedValue([address]),
60
+ writeContract: vitest_1.vi.fn().mockResolvedValue("0xtxhash"),
61
+ chain: { id: 84532 },
62
+ };
63
+ }
64
+ // ─── ADDRESSES export ─────────────────────────────────────────────────────────
65
+ (0, vitest_1.describe)("ADDRESSES", () => {
66
+ (0, vitest_1.it)("exports mainnet and testnet address objects", () => {
67
+ (0, vitest_1.expect)(index_js_1.ADDRESSES).toHaveProperty("mainnet");
68
+ (0, vitest_1.expect)(index_js_1.ADDRESSES).toHaveProperty("testnet");
69
+ });
70
+ (0, vitest_1.it)("mainnet has token, registry, treasury keys", () => {
71
+ (0, vitest_1.expect)(index_js_1.ADDRESSES.mainnet).toHaveProperty("token");
72
+ (0, vitest_1.expect)(index_js_1.ADDRESSES.mainnet).toHaveProperty("registry");
73
+ (0, vitest_1.expect)(index_js_1.ADDRESSES.mainnet).toHaveProperty("treasury");
74
+ });
75
+ (0, vitest_1.it)("testnet has token, registry, treasury keys", () => {
76
+ (0, vitest_1.expect)(index_js_1.ADDRESSES.testnet).toHaveProperty("token");
77
+ (0, vitest_1.expect)(index_js_1.ADDRESSES.testnet).toHaveProperty("registry");
78
+ (0, vitest_1.expect)(index_js_1.ADDRESSES.testnet).toHaveProperty("treasury");
79
+ });
80
+ });
81
+ // ─── InkdClient construction ──────────────────────────────────────────────────
82
+ (0, vitest_1.describe)("InkdClient — constructor", () => {
83
+ (0, vitest_1.it)("constructs with default testnet network", () => {
84
+ const wallet = makeMockWallet();
85
+ const client = new index_js_1.InkdClient({ walletClient: wallet });
86
+ (0, vitest_1.expect)(client).toBeInstanceOf(index_js_1.InkdClient);
87
+ });
88
+ (0, vitest_1.it)("constructs with explicit mainnet network", () => {
89
+ const wallet = makeMockWallet();
90
+ const client = new index_js_1.InkdClient({ walletClient: wallet, network: "mainnet" });
91
+ (0, vitest_1.expect)(client).toBeInstanceOf(index_js_1.InkdClient);
92
+ });
93
+ (0, vitest_1.it)("constructs with explicit testnet network", () => {
94
+ const wallet = makeMockWallet();
95
+ const client = new index_js_1.InkdClient({ walletClient: wallet, network: "testnet" });
96
+ (0, vitest_1.expect)(client).toBeInstanceOf(index_js_1.InkdClient);
97
+ });
98
+ (0, vitest_1.it)("constructs with custom rpcUrl", () => {
99
+ const wallet = makeMockWallet();
100
+ const client = new index_js_1.InkdClient({
101
+ walletClient: wallet,
102
+ rpcUrl: "https://my-custom-rpc.example.com",
103
+ });
104
+ (0, vitest_1.expect)(client).toBeInstanceOf(index_js_1.InkdClient);
105
+ });
106
+ });
107
+ // ─── Token helpers ────────────────────────────────────────────────────────────
108
+ (0, vitest_1.describe)("InkdClient — approveToken()", () => {
109
+ let client;
110
+ let wallet;
111
+ (0, vitest_1.beforeEach)(() => {
112
+ wallet = makeMockWallet();
113
+ client = new index_js_1.InkdClient({ walletClient: wallet });
114
+ vitest_1.vi.clearAllMocks();
115
+ wallet.getAddresses.mockResolvedValue(["0xuser000000000000000000000000000000000000"]);
116
+ wallet.writeContract.mockResolvedValue("0xapprove_tx");
117
+ });
118
+ (0, vitest_1.it)("calls writeContract with approve function", async () => {
119
+ const hash = await client.approveToken();
120
+ (0, vitest_1.expect)(wallet.writeContract).toHaveBeenCalledOnce();
121
+ const call = wallet.writeContract.mock.calls[0][0];
122
+ (0, vitest_1.expect)(call.functionName).toBe("approve");
123
+ (0, vitest_1.expect)(hash).toBe("0xapprove_tx");
124
+ });
125
+ (0, vitest_1.it)("uses default amount of 1 ether when not specified", async () => {
126
+ await client.approveToken();
127
+ const call = wallet.writeContract.mock.calls[0][0];
128
+ (0, vitest_1.expect)(call.args[1]).toBe((0, viem_1.parseEther)("1"));
129
+ });
130
+ (0, vitest_1.it)("uses custom amount when provided", async () => {
131
+ const customAmount = (0, viem_1.parseEther)("5");
132
+ await client.approveToken(customAmount);
133
+ const call = wallet.writeContract.mock.calls[0][0];
134
+ (0, vitest_1.expect)(call.args[1]).toBe(customAmount);
135
+ });
136
+ (0, vitest_1.it)("uses the first wallet address as account", async () => {
137
+ await client.approveToken();
138
+ const call = wallet.writeContract.mock.calls[0][0];
139
+ (0, vitest_1.expect)(call.account).toBe("0xuser000000000000000000000000000000000000");
140
+ });
141
+ });
142
+ (0, vitest_1.describe)("InkdClient — tokenBalance()", () => {
143
+ let client;
144
+ let wallet;
145
+ (0, vitest_1.beforeEach)(() => {
146
+ wallet = makeMockWallet();
147
+ client = new index_js_1.InkdClient({ walletClient: wallet });
148
+ vitest_1.vi.clearAllMocks();
149
+ wallet.getAddresses.mockResolvedValue(["0xuser000000000000000000000000000000000000"]);
150
+ mockReadContract.mockResolvedValue(1000n);
151
+ });
152
+ (0, vitest_1.it)("returns balance from readContract", async () => {
153
+ const bal = await client.tokenBalance();
154
+ (0, vitest_1.expect)(bal).toBe(1000n);
155
+ (0, vitest_1.expect)(mockReadContract).toHaveBeenCalledOnce();
156
+ const call = mockReadContract.mock.calls[0][0];
157
+ (0, vitest_1.expect)(call.functionName).toBe("balanceOf");
158
+ });
159
+ (0, vitest_1.it)("uses caller address when no address specified", async () => {
160
+ await client.tokenBalance();
161
+ const call = mockReadContract.mock.calls[0][0];
162
+ (0, vitest_1.expect)(call.args[0]).toBe("0xuser000000000000000000000000000000000000");
163
+ });
164
+ (0, vitest_1.it)("uses provided address instead of caller", async () => {
165
+ const customAddr = "0xother00000000000000000000000000000000000";
166
+ await client.tokenBalance(customAddr);
167
+ const call = mockReadContract.mock.calls[0][0];
168
+ (0, vitest_1.expect)(call.args[0]).toBe(customAddr);
169
+ });
170
+ });
171
+ // ─── Projects ─────────────────────────────────────────────────────────────────
172
+ (0, vitest_1.describe)("InkdClient — createProject()", () => {
173
+ let client;
174
+ let wallet;
175
+ (0, vitest_1.beforeEach)(() => {
176
+ wallet = makeMockWallet();
177
+ client = new index_js_1.InkdClient({ walletClient: wallet });
178
+ vitest_1.vi.clearAllMocks();
179
+ wallet.getAddresses.mockResolvedValue(["0xuser000000000000000000000000000000000000"]);
180
+ wallet.writeContract.mockResolvedValue("0xcreate_tx");
181
+ });
182
+ (0, vitest_1.it)("calls createProject with required fields", async () => {
183
+ const hash = await client.createProject({ name: "MyProj", description: "A project" });
184
+ (0, vitest_1.expect)(wallet.writeContract).toHaveBeenCalledOnce();
185
+ const call = wallet.writeContract.mock.calls[0][0];
186
+ (0, vitest_1.expect)(call.functionName).toBe("createProject");
187
+ (0, vitest_1.expect)(hash).toBe("0xcreate_tx");
188
+ });
189
+ (0, vitest_1.it)("uses defaults for optional fields", async () => {
190
+ await client.createProject({ name: "X", description: "Y" });
191
+ const call = wallet.writeContract.mock.calls[0][0];
192
+ const args = call.args;
193
+ (0, vitest_1.expect)(args[0]).toBe("X"); // name
194
+ (0, vitest_1.expect)(args[1]).toBe("Y"); // description
195
+ (0, vitest_1.expect)(args[2]).toBe("MIT"); // license default
196
+ (0, vitest_1.expect)(args[3]).toBe(""); // readmeHash default
197
+ (0, vitest_1.expect)(args[4]).toBe(""); // agentEndpoint default
198
+ (0, vitest_1.expect)(args[5]).toBe(false); // isAgent default
199
+ (0, vitest_1.expect)(args[6]).toBe(true); // isPublic default
200
+ });
201
+ (0, vitest_1.it)("passes custom optional fields", async () => {
202
+ await client.createProject({
203
+ name: "AgentProj",
204
+ description: "An agent",
205
+ license: "Apache-2.0",
206
+ readmeHash: "arweave-hash-abc",
207
+ isAgent: true,
208
+ isPublic: false,
209
+ agentEndpoint: "https://agent.example.com",
210
+ });
211
+ const call = wallet.writeContract.mock.calls[0][0];
212
+ const args = call.args;
213
+ (0, vitest_1.expect)(args[2]).toBe("Apache-2.0");
214
+ (0, vitest_1.expect)(args[3]).toBe("arweave-hash-abc");
215
+ (0, vitest_1.expect)(args[4]).toBe("https://agent.example.com");
216
+ (0, vitest_1.expect)(args[5]).toBe(true);
217
+ (0, vitest_1.expect)(args[6]).toBe(false);
218
+ });
219
+ (0, vitest_1.it)("includes account from wallet", async () => {
220
+ await client.createProject({ name: "P", description: "D" });
221
+ const call = wallet.writeContract.mock.calls[0][0];
222
+ (0, vitest_1.expect)(call.account).toBe("0xuser000000000000000000000000000000000000");
223
+ });
224
+ });
225
+ // ─── pushVersion ─────────────────────────────────────────────────────────────
226
+ (0, vitest_1.describe)("InkdClient — pushVersion()", () => {
227
+ let client;
228
+ let wallet;
229
+ (0, vitest_1.beforeEach)(() => {
230
+ wallet = makeMockWallet();
231
+ client = new index_js_1.InkdClient({ walletClient: wallet });
232
+ vitest_1.vi.clearAllMocks();
233
+ wallet.getAddresses.mockResolvedValue(["0xuser000000000000000000000000000000000000"]);
234
+ wallet.writeContract.mockResolvedValue("0xpush_tx");
235
+ mockReadContract.mockResolvedValue(500n); // versionFee
236
+ });
237
+ (0, vitest_1.it)("fetches version fee then calls pushVersion", async () => {
238
+ const hash = await client.pushVersion(1n, {
239
+ arweaveHash: "ar-hash-xyz",
240
+ versionTag: "v0.9.1",
241
+ });
242
+ // first readContract call is getVersionFee
243
+ (0, vitest_1.expect)(mockReadContract).toHaveBeenCalledOnce();
244
+ const feeCall = mockReadContract.mock.calls[0][0];
245
+ (0, vitest_1.expect)(feeCall.functionName).toBe("versionFee");
246
+ (0, vitest_1.expect)(wallet.writeContract).toHaveBeenCalledOnce();
247
+ const call = wallet.writeContract.mock.calls[0][0];
248
+ (0, vitest_1.expect)(call.functionName).toBe("pushVersion");
249
+ (0, vitest_1.expect)(call.value).toBe(500n);
250
+ (0, vitest_1.expect)(hash).toBe("0xpush_tx");
251
+ });
252
+ (0, vitest_1.it)("passes correct args to pushVersion", async () => {
253
+ await client.pushVersion(42n, {
254
+ arweaveHash: "ar-hash-42",
255
+ versionTag: "v0.9.2",
256
+ changelog: "Fixed a bug",
257
+ });
258
+ const call = wallet.writeContract.mock.calls[0][0];
259
+ (0, vitest_1.expect)(call.args[0]).toBe(42n);
260
+ (0, vitest_1.expect)(call.args[1]).toBe("ar-hash-42");
261
+ (0, vitest_1.expect)(call.args[2]).toBe("v0.9.2");
262
+ (0, vitest_1.expect)(call.args[3]).toBe("Fixed a bug");
263
+ });
264
+ (0, vitest_1.it)("defaults changelog to empty string when omitted", async () => {
265
+ await client.pushVersion(1n, { arweaveHash: "h", versionTag: "v1" });
266
+ const call = wallet.writeContract.mock.calls[0][0];
267
+ (0, vitest_1.expect)(call.args[3]).toBe("");
268
+ });
269
+ });
270
+ // ─── getProject ──────────────────────────────────────────────────────────────
271
+ (0, vitest_1.describe)("InkdClient — getProject()", () => {
272
+ let client;
273
+ let wallet;
274
+ const fakeProject = {
275
+ id: 1n, name: "Test", description: "Desc", license: "MIT",
276
+ readmeHash: "", agentEndpoint: "", owner: "0xowner",
277
+ isAgent: false, isPublic: true, createdAt: 0n, versionCount: 0n, exists: true,
278
+ };
279
+ (0, vitest_1.beforeEach)(() => {
280
+ wallet = makeMockWallet();
281
+ client = new index_js_1.InkdClient({ walletClient: wallet });
282
+ vitest_1.vi.clearAllMocks();
283
+ mockReadContract.mockResolvedValue(fakeProject);
284
+ });
285
+ (0, vitest_1.it)("calls getProject and returns result", async () => {
286
+ const result = await client.getProject(1n);
287
+ (0, vitest_1.expect)(mockReadContract).toHaveBeenCalledOnce();
288
+ const call = mockReadContract.mock.calls[0][0];
289
+ (0, vitest_1.expect)(call.functionName).toBe("getProject");
290
+ (0, vitest_1.expect)(call.args[0]).toBe(1n);
291
+ (0, vitest_1.expect)(result).toEqual(fakeProject);
292
+ });
293
+ });
294
+ // ─── getVersions ─────────────────────────────────────────────────────────────
295
+ (0, vitest_1.describe)("InkdClient — getVersions()", () => {
296
+ let client;
297
+ let wallet;
298
+ const fakeVersions = [
299
+ { projectId: 1n, arweaveHash: "ar-abc", versionTag: "v0.1.0", changelog: "", pushedBy: "0xa", pushedAt: 1000n },
300
+ ];
301
+ (0, vitest_1.beforeEach)(() => {
302
+ wallet = makeMockWallet();
303
+ client = new index_js_1.InkdClient({ walletClient: wallet });
304
+ vitest_1.vi.clearAllMocks();
305
+ mockReadContract.mockResolvedValue(fakeVersions);
306
+ });
307
+ (0, vitest_1.it)("calls getVersions with projectId and returns array", async () => {
308
+ const result = await client.getVersions(1n);
309
+ (0, vitest_1.expect)(mockReadContract).toHaveBeenCalledOnce();
310
+ const call = mockReadContract.mock.calls[0][0];
311
+ (0, vitest_1.expect)(call.functionName).toBe("getVersions");
312
+ (0, vitest_1.expect)(call.args[0]).toBe(1n);
313
+ (0, vitest_1.expect)(result).toEqual(fakeVersions);
314
+ });
315
+ });
316
+ // ─── getVersionFee ────────────────────────────────────────────────────────────
317
+ (0, vitest_1.describe)("InkdClient — getVersionFee()", () => {
318
+ let client;
319
+ let wallet;
320
+ (0, vitest_1.beforeEach)(() => {
321
+ wallet = makeMockWallet();
322
+ client = new index_js_1.InkdClient({ walletClient: wallet });
323
+ vitest_1.vi.clearAllMocks();
324
+ mockReadContract.mockResolvedValue(250n);
325
+ });
326
+ (0, vitest_1.it)("reads versionFee from contract", async () => {
327
+ const fee = await client.getVersionFee();
328
+ (0, vitest_1.expect)(fee).toBe(250n);
329
+ const call = mockReadContract.mock.calls[0][0];
330
+ (0, vitest_1.expect)(call.functionName).toBe("versionFee");
331
+ });
332
+ });
333
+ // ─── transferProject ─────────────────────────────────────────────────────────
334
+ (0, vitest_1.describe)("InkdClient — transferProject()", () => {
335
+ let client;
336
+ let wallet;
337
+ (0, vitest_1.beforeEach)(() => {
338
+ wallet = makeMockWallet();
339
+ client = new index_js_1.InkdClient({ walletClient: wallet });
340
+ vitest_1.vi.clearAllMocks();
341
+ wallet.getAddresses.mockResolvedValue(["0xuser000000000000000000000000000000000000"]);
342
+ wallet.writeContract.mockResolvedValue("0xtransfer_tx");
343
+ mockReadContract.mockResolvedValue(1000n); // transferFee
344
+ });
345
+ (0, vitest_1.it)("reads transferFee then calls transferProject", async () => {
346
+ const newOwner = "0xnewowner000000000000000000000000000000000";
347
+ const hash = await client.transferProject(7n, newOwner);
348
+ (0, vitest_1.expect)(mockReadContract).toHaveBeenCalledOnce();
349
+ const feeCall = mockReadContract.mock.calls[0][0];
350
+ (0, vitest_1.expect)(feeCall.functionName).toBe("transferFee");
351
+ (0, vitest_1.expect)(wallet.writeContract).toHaveBeenCalledOnce();
352
+ const txCall = wallet.writeContract.mock.calls[0][0];
353
+ (0, vitest_1.expect)(txCall.functionName).toBe("transferProject");
354
+ (0, vitest_1.expect)(txCall.args[0]).toBe(7n);
355
+ (0, vitest_1.expect)(txCall.args[1]).toBe(newOwner);
356
+ (0, vitest_1.expect)(txCall.value).toBe(1000n);
357
+ (0, vitest_1.expect)(hash).toBe("0xtransfer_tx");
358
+ });
359
+ });
360
+ // ─── getAgentProjects ─────────────────────────────────────────────────────────
361
+ (0, vitest_1.describe)("InkdClient — getAgentProjects()", () => {
362
+ let client;
363
+ let wallet;
364
+ (0, vitest_1.beforeEach)(() => {
365
+ wallet = makeMockWallet();
366
+ client = new index_js_1.InkdClient({ walletClient: wallet });
367
+ vitest_1.vi.clearAllMocks();
368
+ mockReadContract.mockResolvedValue([1n, 2n, 3n]);
369
+ });
370
+ (0, vitest_1.it)("calls getAgentProjects with default offsets", async () => {
371
+ const result = await client.getAgentProjects();
372
+ (0, vitest_1.expect)(mockReadContract).toHaveBeenCalledOnce();
373
+ const call = mockReadContract.mock.calls[0][0];
374
+ (0, vitest_1.expect)(call.functionName).toBe("getAgentProjects");
375
+ (0, vitest_1.expect)(call.args[0]).toBe(0n);
376
+ (0, vitest_1.expect)(call.args[1]).toBe(100n);
377
+ (0, vitest_1.expect)(result).toEqual([1n, 2n, 3n]);
378
+ });
379
+ (0, vitest_1.it)("accepts custom offset and limit", async () => {
380
+ await client.getAgentProjects(10n, 25n);
381
+ const call = mockReadContract.mock.calls[0][0];
382
+ (0, vitest_1.expect)(call.args[0]).toBe(10n);
383
+ (0, vitest_1.expect)(call.args[1]).toBe(25n);
384
+ });
385
+ (0, vitest_1.it)("returns empty array when no agent projects", async () => {
386
+ mockReadContract.mockResolvedValue([]);
387
+ const result = await client.getAgentProjects();
388
+ (0, vitest_1.expect)(result).toEqual([]);
389
+ });
390
+ });
391
+ // ─── Re-exports smoke test ────────────────────────────────────────────────────
392
+ (0, vitest_1.describe)("index.ts — re-exports", () => {
393
+ (0, vitest_1.it)("exports watchProjectCreated from events", async () => {
394
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
395
+ (0, vitest_1.expect)(typeof mod.watchProjectCreated).toBe("function");
396
+ });
397
+ (0, vitest_1.it)("exports watchVersionPushed from events", async () => {
398
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
399
+ (0, vitest_1.expect)(typeof mod.watchVersionPushed).toBe("function");
400
+ });
401
+ (0, vitest_1.it)("exports watchRegistryEvents from events", async () => {
402
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
403
+ (0, vitest_1.expect)(typeof mod.watchRegistryEvents).toBe("function");
404
+ });
405
+ (0, vitest_1.it)("exports batchGetProjects from multicall", async () => {
406
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
407
+ (0, vitest_1.expect)(typeof mod.batchGetProjects).toBe("function");
408
+ });
409
+ (0, vitest_1.it)("exports batchGetVersions from multicall", async () => {
410
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
411
+ (0, vitest_1.expect)(typeof mod.batchGetVersions).toBe("function");
412
+ });
413
+ (0, vitest_1.it)("exports batchGetFees from multicall", async () => {
414
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
415
+ (0, vitest_1.expect)(typeof mod.batchGetFees).toBe("function");
416
+ });
417
+ (0, vitest_1.it)("exports batchGetProjectsWithVersions from multicall", async () => {
418
+ const mod = await Promise.resolve().then(() => __importStar(require("../index.js")));
419
+ (0, vitest_1.expect)(typeof mod.batchGetProjectsWithVersions).toBe("function");
420
+ });
421
+ });
422
+ //# sourceMappingURL=index.InkdClient.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.InkdClient.test.js","sourceRoot":"","sources":["../../src/__tests__/index.InkdClient.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file multicall.test.ts
3
+ * @description Unit tests for multicall.ts — Multicall3 batch read helpers.
4
+ *
5
+ * All tests are pure unit tests — no network, no RPC.
6
+ * viem's publicClient.multicall is mocked via vi.fn().
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=multicall.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicall.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/multicall.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}