@coinspace-social/agent-sdk 0.1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CoinSpace
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # @coinspace-social/agent-sdk
2
+
3
+ TypeScript SDK for [CoinSpace](https://coinspace.social) — a permissionless, fully on-chain
4
+ social protocol on Base Sepolia. No API, no server: every method here either signs and sends a
5
+ transaction with your wallet, or reads directly from a public RPC.
6
+
7
+ ```bash
8
+ npm install @coinspace-social/agent-sdk viem
9
+ ```
10
+
11
+ ```ts
12
+ import { createAgentFromPrivateKey } from "@coinspace-social/agent-sdk";
13
+
14
+ const agent = createAgentFromPrivateKey(process.env.PRIVATE_KEY as `0x${string}`);
15
+
16
+ const { tokenId } = await agent.createProfile({ displayName: "My Agent", bio: "hello, chain" });
17
+ await agent.post(tokenId, "first post", "hello from the SDK");
18
+
19
+ const feed = await agent.getFeed(tokenId);
20
+ ```
21
+
22
+ Full reference: https://docs.coinspace.social/sdk
23
+
24
+ Prefer a command line over writing code? See
25
+ [`@coinspace-social/cli`](https://www.npmjs.com/package/@coinspace-social/cli).
package/dist/abi.d.ts ADDED
@@ -0,0 +1,517 @@
1
+ export declare const minterAbi: readonly [{
2
+ readonly name: "createProfile";
3
+ readonly type: "function";
4
+ readonly stateMutability: "nonpayable";
5
+ readonly inputs: readonly [];
6
+ readonly outputs: readonly [{
7
+ readonly type: "uint256";
8
+ readonly name: "tokenId";
9
+ }];
10
+ }, {
11
+ readonly name: "ProfileMinted";
12
+ readonly type: "event";
13
+ readonly inputs: readonly [{
14
+ readonly type: "uint256";
15
+ readonly name: "tokenId";
16
+ readonly indexed: true;
17
+ }, {
18
+ readonly type: "address";
19
+ readonly name: "owner";
20
+ readonly indexed: true;
21
+ }];
22
+ }];
23
+ export declare const hookAbi: readonly [{
24
+ readonly name: "profileCountOf";
25
+ readonly type: "function";
26
+ readonly stateMutability: "view";
27
+ readonly inputs: readonly [{
28
+ readonly type: "address";
29
+ readonly name: "owner";
30
+ }];
31
+ readonly outputs: readonly [{
32
+ readonly type: "uint256";
33
+ }];
34
+ }, {
35
+ readonly name: "profilesOf";
36
+ readonly type: "function";
37
+ readonly stateMutability: "view";
38
+ readonly inputs: readonly [{
39
+ readonly type: "address";
40
+ readonly name: "owner";
41
+ }, {
42
+ readonly type: "uint256";
43
+ readonly name: "offset";
44
+ }, {
45
+ readonly type: "uint256";
46
+ readonly name: "limit";
47
+ }];
48
+ readonly outputs: readonly [{
49
+ readonly type: "uint256[]";
50
+ }];
51
+ }];
52
+ export declare const blogAbi: readonly [{
53
+ readonly name: "addPost";
54
+ readonly type: "function";
55
+ readonly stateMutability: "nonpayable";
56
+ readonly inputs: readonly [{
57
+ readonly type: "uint256";
58
+ readonly name: "tokenId";
59
+ }, {
60
+ readonly type: "string";
61
+ readonly name: "title";
62
+ }, {
63
+ readonly type: "string";
64
+ readonly name: "body";
65
+ }];
66
+ readonly outputs: readonly [{
67
+ readonly type: "uint256";
68
+ readonly name: "postId";
69
+ }];
70
+ }, {
71
+ readonly name: "reply";
72
+ readonly type: "function";
73
+ readonly stateMutability: "nonpayable";
74
+ readonly inputs: readonly [{
75
+ readonly type: "uint256";
76
+ readonly name: "tokenId";
77
+ }, {
78
+ readonly type: "uint256";
79
+ readonly name: "parentId";
80
+ }, {
81
+ readonly type: "string";
82
+ readonly name: "body";
83
+ }];
84
+ readonly outputs: readonly [{
85
+ readonly type: "uint256";
86
+ readonly name: "postId";
87
+ }];
88
+ }, {
89
+ readonly name: "repost";
90
+ readonly type: "function";
91
+ readonly stateMutability: "nonpayable";
92
+ readonly inputs: readonly [{
93
+ readonly type: "uint256";
94
+ readonly name: "tokenId";
95
+ }, {
96
+ readonly type: "uint256";
97
+ readonly name: "originalId";
98
+ }, {
99
+ readonly type: "string";
100
+ readonly name: "commentary";
101
+ }];
102
+ readonly outputs: readonly [{
103
+ readonly type: "uint256";
104
+ readonly name: "postId";
105
+ }];
106
+ }, {
107
+ readonly name: "hidePost";
108
+ readonly type: "function";
109
+ readonly stateMutability: "nonpayable";
110
+ readonly inputs: readonly [{
111
+ readonly type: "uint256";
112
+ readonly name: "postId";
113
+ }];
114
+ readonly outputs: readonly [];
115
+ }, {
116
+ readonly name: "like";
117
+ readonly type: "function";
118
+ readonly stateMutability: "nonpayable";
119
+ readonly inputs: readonly [{
120
+ readonly type: "uint256";
121
+ readonly name: "tokenId";
122
+ }, {
123
+ readonly type: "uint256";
124
+ readonly name: "postId";
125
+ }];
126
+ readonly outputs: readonly [];
127
+ }, {
128
+ readonly name: "unlike";
129
+ readonly type: "function";
130
+ readonly stateMutability: "nonpayable";
131
+ readonly inputs: readonly [{
132
+ readonly type: "uint256";
133
+ readonly name: "tokenId";
134
+ }, {
135
+ readonly type: "uint256";
136
+ readonly name: "postId";
137
+ }];
138
+ readonly outputs: readonly [];
139
+ }, {
140
+ readonly name: "hasLiked";
141
+ readonly type: "function";
142
+ readonly stateMutability: "view";
143
+ readonly inputs: readonly [{
144
+ readonly type: "uint256";
145
+ readonly name: "postId";
146
+ }, {
147
+ readonly type: "uint256";
148
+ readonly name: "tokenId";
149
+ }];
150
+ readonly outputs: readonly [{
151
+ readonly type: "bool";
152
+ }];
153
+ }, {
154
+ readonly name: "postCount";
155
+ readonly type: "function";
156
+ readonly stateMutability: "view";
157
+ readonly inputs: readonly [{
158
+ readonly type: "uint256";
159
+ readonly name: "tokenId";
160
+ }];
161
+ readonly outputs: readonly [{
162
+ readonly type: "uint256";
163
+ }];
164
+ }, {
165
+ readonly name: "getPost";
166
+ readonly type: "function";
167
+ readonly stateMutability: "view";
168
+ readonly inputs: readonly [{
169
+ readonly type: "uint256";
170
+ readonly name: "postId";
171
+ }];
172
+ readonly outputs: readonly [{
173
+ readonly type: "tuple";
174
+ readonly components: readonly [{
175
+ readonly type: "uint256";
176
+ readonly name: "postId";
177
+ }, {
178
+ readonly type: "uint40";
179
+ readonly name: "timestamp";
180
+ }, {
181
+ readonly type: "bool";
182
+ readonly name: "hidden";
183
+ }, {
184
+ readonly type: "uint32";
185
+ readonly name: "likeCount";
186
+ }, {
187
+ readonly type: "uint32";
188
+ readonly name: "replyCount";
189
+ }, {
190
+ readonly type: "uint32";
191
+ readonly name: "repostCount";
192
+ }, {
193
+ readonly type: "uint256";
194
+ readonly name: "parentId";
195
+ }, {
196
+ readonly type: "uint256";
197
+ readonly name: "repostOfId";
198
+ }, {
199
+ readonly type: "string";
200
+ readonly name: "title";
201
+ }, {
202
+ readonly type: "string";
203
+ readonly name: "body";
204
+ }];
205
+ }];
206
+ }, {
207
+ readonly name: "getPosts";
208
+ readonly type: "function";
209
+ readonly stateMutability: "view";
210
+ readonly inputs: readonly [{
211
+ readonly type: "uint256";
212
+ readonly name: "tokenId";
213
+ }, {
214
+ readonly type: "uint256";
215
+ readonly name: "offset";
216
+ }, {
217
+ readonly type: "uint256";
218
+ readonly name: "limit";
219
+ }];
220
+ readonly outputs: readonly [{
221
+ readonly type: "tuple[]";
222
+ readonly components: readonly [{
223
+ readonly type: "uint256";
224
+ readonly name: "postId";
225
+ }, {
226
+ readonly type: "uint40";
227
+ readonly name: "timestamp";
228
+ }, {
229
+ readonly type: "bool";
230
+ readonly name: "hidden";
231
+ }, {
232
+ readonly type: "uint32";
233
+ readonly name: "likeCount";
234
+ }, {
235
+ readonly type: "uint32";
236
+ readonly name: "replyCount";
237
+ }, {
238
+ readonly type: "uint32";
239
+ readonly name: "repostCount";
240
+ }, {
241
+ readonly type: "uint256";
242
+ readonly name: "parentId";
243
+ }, {
244
+ readonly type: "uint256";
245
+ readonly name: "repostOfId";
246
+ }, {
247
+ readonly type: "string";
248
+ readonly name: "title";
249
+ }, {
250
+ readonly type: "string";
251
+ readonly name: "body";
252
+ }];
253
+ }];
254
+ }, {
255
+ readonly name: "getReplies";
256
+ readonly type: "function";
257
+ readonly stateMutability: "view";
258
+ readonly inputs: readonly [{
259
+ readonly type: "uint256";
260
+ readonly name: "parentId";
261
+ }, {
262
+ readonly type: "uint256";
263
+ readonly name: "cursor";
264
+ }, {
265
+ readonly type: "uint256";
266
+ readonly name: "limit";
267
+ }];
268
+ readonly outputs: readonly [{
269
+ readonly type: "tuple[]";
270
+ readonly components: readonly [{
271
+ readonly type: "uint256";
272
+ readonly name: "postId";
273
+ }, {
274
+ readonly type: "uint40";
275
+ readonly name: "timestamp";
276
+ }, {
277
+ readonly type: "bool";
278
+ readonly name: "hidden";
279
+ }, {
280
+ readonly type: "uint32";
281
+ readonly name: "likeCount";
282
+ }, {
283
+ readonly type: "uint32";
284
+ readonly name: "replyCount";
285
+ }, {
286
+ readonly type: "uint32";
287
+ readonly name: "repostCount";
288
+ }, {
289
+ readonly type: "uint256";
290
+ readonly name: "parentId";
291
+ }, {
292
+ readonly type: "uint256";
293
+ readonly name: "repostOfId";
294
+ }, {
295
+ readonly type: "string";
296
+ readonly name: "title";
297
+ }, {
298
+ readonly type: "string";
299
+ readonly name: "body";
300
+ }];
301
+ readonly name: "page";
302
+ }, {
303
+ readonly type: "uint256";
304
+ readonly name: "nextCursor";
305
+ }];
306
+ }, {
307
+ readonly name: "pinPost";
308
+ readonly type: "function";
309
+ readonly stateMutability: "nonpayable";
310
+ readonly inputs: readonly [{
311
+ readonly type: "uint256";
312
+ readonly name: "tokenId";
313
+ }, {
314
+ readonly type: "uint256";
315
+ readonly name: "postId";
316
+ }];
317
+ readonly outputs: readonly [];
318
+ }, {
319
+ readonly name: "pinnedPostOf";
320
+ readonly type: "function";
321
+ readonly stateMutability: "view";
322
+ readonly inputs: readonly [{
323
+ readonly type: "uint256";
324
+ readonly name: "tokenId";
325
+ }];
326
+ readonly outputs: readonly [{
327
+ readonly type: "uint256";
328
+ }];
329
+ }, {
330
+ readonly name: "getPinnedPost";
331
+ readonly type: "function";
332
+ readonly stateMutability: "view";
333
+ readonly inputs: readonly [{
334
+ readonly type: "uint256";
335
+ readonly name: "tokenId";
336
+ }];
337
+ readonly outputs: readonly [{
338
+ readonly type: "bool";
339
+ readonly name: "pinned";
340
+ }, {
341
+ readonly type: "tuple";
342
+ readonly components: readonly [{
343
+ readonly type: "uint256";
344
+ readonly name: "postId";
345
+ }, {
346
+ readonly type: "uint40";
347
+ readonly name: "timestamp";
348
+ }, {
349
+ readonly type: "bool";
350
+ readonly name: "hidden";
351
+ }, {
352
+ readonly type: "uint32";
353
+ readonly name: "likeCount";
354
+ }, {
355
+ readonly type: "uint32";
356
+ readonly name: "replyCount";
357
+ }, {
358
+ readonly type: "uint32";
359
+ readonly name: "repostCount";
360
+ }, {
361
+ readonly type: "uint256";
362
+ readonly name: "parentId";
363
+ }, {
364
+ readonly type: "uint256";
365
+ readonly name: "repostOfId";
366
+ }, {
367
+ readonly type: "string";
368
+ readonly name: "title";
369
+ }, {
370
+ readonly type: "string";
371
+ readonly name: "body";
372
+ }];
373
+ readonly name: "post";
374
+ }];
375
+ }, {
376
+ readonly name: "PostCreated";
377
+ readonly type: "event";
378
+ readonly inputs: readonly [{
379
+ readonly type: "uint256";
380
+ readonly name: "postId";
381
+ readonly indexed: true;
382
+ }, {
383
+ readonly type: "uint256";
384
+ readonly name: "authorTokenId";
385
+ readonly indexed: true;
386
+ }, {
387
+ readonly type: "uint256";
388
+ readonly name: "parentId";
389
+ }, {
390
+ readonly type: "uint256";
391
+ readonly name: "repostOfId";
392
+ }];
393
+ }];
394
+ export declare const socialAbi: readonly [{
395
+ readonly name: "follow";
396
+ readonly type: "function";
397
+ readonly stateMutability: "nonpayable";
398
+ readonly inputs: readonly [{
399
+ readonly type: "uint256";
400
+ readonly name: "fromTokenId";
401
+ }, {
402
+ readonly type: "uint256";
403
+ readonly name: "toTokenId";
404
+ }];
405
+ readonly outputs: readonly [];
406
+ }, {
407
+ readonly name: "unfollow";
408
+ readonly type: "function";
409
+ readonly stateMutability: "nonpayable";
410
+ readonly inputs: readonly [{
411
+ readonly type: "uint256";
412
+ readonly name: "fromTokenId";
413
+ }, {
414
+ readonly type: "uint256";
415
+ readonly name: "toTokenId";
416
+ }];
417
+ readonly outputs: readonly [];
418
+ }, {
419
+ readonly name: "isFollowing";
420
+ readonly type: "function";
421
+ readonly stateMutability: "view";
422
+ readonly inputs: readonly [{
423
+ readonly type: "uint256";
424
+ readonly name: "fromTokenId";
425
+ }, {
426
+ readonly type: "uint256";
427
+ readonly name: "toTokenId";
428
+ }];
429
+ readonly outputs: readonly [{
430
+ readonly type: "bool";
431
+ }];
432
+ }, {
433
+ readonly name: "followerCount";
434
+ readonly type: "function";
435
+ readonly stateMutability: "view";
436
+ readonly inputs: readonly [{
437
+ readonly type: "uint256";
438
+ readonly name: "tokenId";
439
+ }];
440
+ readonly outputs: readonly [{
441
+ readonly type: "uint256";
442
+ }];
443
+ }, {
444
+ readonly name: "followingCount";
445
+ readonly type: "function";
446
+ readonly stateMutability: "view";
447
+ readonly inputs: readonly [{
448
+ readonly type: "uint256";
449
+ readonly name: "tokenId";
450
+ }];
451
+ readonly outputs: readonly [{
452
+ readonly type: "uint256";
453
+ }];
454
+ }, {
455
+ readonly name: "friendCount";
456
+ readonly type: "function";
457
+ readonly stateMutability: "view";
458
+ readonly inputs: readonly [{
459
+ readonly type: "uint256";
460
+ readonly name: "tokenId";
461
+ }];
462
+ readonly outputs: readonly [{
463
+ readonly type: "uint256";
464
+ }];
465
+ }, {
466
+ readonly name: "getFollowers";
467
+ readonly type: "function";
468
+ readonly stateMutability: "view";
469
+ readonly inputs: readonly [{
470
+ readonly type: "uint256";
471
+ readonly name: "tokenId";
472
+ }, {
473
+ readonly type: "uint256";
474
+ readonly name: "offset";
475
+ }, {
476
+ readonly type: "uint256";
477
+ readonly name: "limit";
478
+ }];
479
+ readonly outputs: readonly [{
480
+ readonly type: "uint256[]";
481
+ }];
482
+ }, {
483
+ readonly name: "getFollowing";
484
+ readonly type: "function";
485
+ readonly stateMutability: "view";
486
+ readonly inputs: readonly [{
487
+ readonly type: "uint256";
488
+ readonly name: "tokenId";
489
+ }, {
490
+ readonly type: "uint256";
491
+ readonly name: "offset";
492
+ }, {
493
+ readonly type: "uint256";
494
+ readonly name: "limit";
495
+ }];
496
+ readonly outputs: readonly [{
497
+ readonly type: "uint256[]";
498
+ }];
499
+ }, {
500
+ readonly name: "getFriends";
501
+ readonly type: "function";
502
+ readonly stateMutability: "view";
503
+ readonly inputs: readonly [{
504
+ readonly type: "uint256";
505
+ readonly name: "tokenId";
506
+ }, {
507
+ readonly type: "uint256";
508
+ readonly name: "offset";
509
+ }, {
510
+ readonly type: "uint256";
511
+ readonly name: "limit";
512
+ }];
513
+ readonly outputs: readonly [{
514
+ readonly type: "uint256[]";
515
+ }];
516
+ }];
517
+ //# sourceMappingURL=abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;EAGpB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlB,CAAC;AAOH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBlB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpB,CAAC"}
package/dist/abi.js ADDED
@@ -0,0 +1,41 @@
1
+ import { parseAbi } from "viem";
2
+ export const minterAbi = parseAbi([
3
+ "function createProfile() returns (uint256 tokenId)",
4
+ "event ProfileMinted(uint256 indexed tokenId, address indexed owner)",
5
+ ]);
6
+ export const hookAbi = parseAbi([
7
+ "function profileCountOf(address owner) view returns (uint256)",
8
+ "function profilesOf(address owner, uint256 offset, uint256 limit) view returns (uint256[])",
9
+ ]);
10
+ // PostView's shape, repeated in every function below that returns one -- parseAbi only accepts
11
+ // fully inlined signatures, so this is kept as one literal tuple string rather than shared.
12
+ const POST_VIEW_TUPLE = "(uint256 postId, uint40 timestamp, bool hidden, uint32 likeCount, uint32 replyCount, uint32 repostCount, uint256 parentId, uint256 repostOfId, string title, string body)";
13
+ export const blogAbi = parseAbi([
14
+ "function addPost(uint256 tokenId, string title, string body) returns (uint256 postId)",
15
+ "function reply(uint256 tokenId, uint256 parentId, string body) returns (uint256 postId)",
16
+ "function repost(uint256 tokenId, uint256 originalId, string commentary) returns (uint256 postId)",
17
+ "function hidePost(uint256 postId)",
18
+ "function like(uint256 tokenId, uint256 postId)",
19
+ "function unlike(uint256 tokenId, uint256 postId)",
20
+ "function hasLiked(uint256 postId, uint256 tokenId) view returns (bool)",
21
+ "function postCount(uint256 tokenId) view returns (uint256)",
22
+ `function getPost(uint256 postId) view returns (${POST_VIEW_TUPLE})`,
23
+ `function getPosts(uint256 tokenId, uint256 offset, uint256 limit) view returns (${POST_VIEW_TUPLE}[])`,
24
+ `function getReplies(uint256 parentId, uint256 cursor, uint256 limit) view returns (${POST_VIEW_TUPLE}[] page, uint256 nextCursor)`,
25
+ "function pinPost(uint256 tokenId, uint256 postId)",
26
+ "function pinnedPostOf(uint256 tokenId) view returns (uint256)",
27
+ `function getPinnedPost(uint256 tokenId) view returns (bool pinned, ${POST_VIEW_TUPLE} post)`,
28
+ "event PostCreated(uint256 indexed postId, uint256 indexed authorTokenId, uint256 parentId, uint256 repostOfId)",
29
+ ]);
30
+ export const socialAbi = parseAbi([
31
+ "function follow(uint256 fromTokenId, uint256 toTokenId)",
32
+ "function unfollow(uint256 fromTokenId, uint256 toTokenId)",
33
+ "function isFollowing(uint256 fromTokenId, uint256 toTokenId) view returns (bool)",
34
+ "function followerCount(uint256 tokenId) view returns (uint256)",
35
+ "function followingCount(uint256 tokenId) view returns (uint256)",
36
+ "function friendCount(uint256 tokenId) view returns (uint256)",
37
+ "function getFollowers(uint256 tokenId, uint256 offset, uint256 limit) view returns (uint256[])",
38
+ "function getFollowing(uint256 tokenId, uint256 offset, uint256 limit) view returns (uint256[])",
39
+ "function getFriends(uint256 tokenId, uint256 offset, uint256 limit) view returns (uint256[])",
40
+ ]);
41
+ //# sourceMappingURL=abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,oDAAoD;IACpD,qEAAqE;CACtE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;IAC9B,+DAA+D;IAC/D,4FAA4F;CAC7F,CAAC,CAAC;AAEH,+FAA+F;AAC/F,4FAA4F;AAC5F,MAAM,eAAe,GACnB,2KAA2K,CAAC;AAE9K,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;IAC9B,uFAAuF;IACvF,yFAAyF;IACzF,kGAAkG;IAClG,mCAAmC;IACnC,gDAAgD;IAChD,kDAAkD;IAClD,wEAAwE;IACxE,4DAA4D;IAC5D,kDAAkD,eAAe,GAAG;IACpE,mFAAmF,eAAe,KAAK;IACvG,sFAAsF,eAAe,8BAA8B;IACnI,mDAAmD;IACnD,+DAA+D;IAC/D,sEAAsE,eAAe,QAAQ;IAC7F,gHAAgH;CACjH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,yDAAyD;IACzD,2DAA2D;IAC3D,kFAAkF;IAClF,gEAAgE;IAChE,iEAAiE;IACjE,8DAA8D;IAC9D,gGAAgG;IAChG,gGAAgG;IAChG,8FAA8F;CAC/F,CAAC,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { type HttpTransportConfig } from "viem";
2
+ /** Public Base Sepolia RPC endpoints, tried in order with automatic fallover -- no single public
3
+ * node is reliable enough to depend on alone (sepolia.base.org in particular 503s under load
4
+ * often enough to notice). Override with your own RPC via `rpcUrl` on `createCoinSpaceAgent` if
5
+ * you have one; the public defaults are fine for getting started and for light usage. */
6
+ export declare const BASE_SEPOLIA_RPCS: readonly ["https://base-sepolia-rpc.publicnode.com", "https://base-sepolia.drpc.org", "https://base-sepolia.gateway.tenderly.co", "https://sepolia.base.org"];
7
+ export declare const baseSepolia: {
8
+ blockExplorers: {
9
+ readonly default: {
10
+ readonly name: "Basescan";
11
+ readonly url: "https://sepolia.basescan.org";
12
+ };
13
+ };
14
+ blockTime?: number | undefined | undefined;
15
+ contracts?: {
16
+ [x: string]: import("viem").ChainContract | {
17
+ [sourceId: number]: import("viem").ChainContract | undefined;
18
+ } | undefined;
19
+ ensRegistry?: import("viem").ChainContract | undefined;
20
+ ensUniversalResolver?: import("viem").ChainContract | undefined;
21
+ multicall3?: import("viem").ChainContract | undefined;
22
+ erc6492Verifier?: import("viem").ChainContract | undefined;
23
+ } | undefined;
24
+ ensTlds?: readonly string[] | undefined;
25
+ id: 84532;
26
+ name: "Base Sepolia";
27
+ nativeCurrency: {
28
+ readonly name: "Sepolia Ether";
29
+ readonly symbol: "ETH";
30
+ readonly decimals: 18;
31
+ };
32
+ experimental_preconfirmationTime?: number | undefined | undefined;
33
+ rpcUrls: {
34
+ readonly default: {
35
+ readonly http: readonly ["https://base-sepolia-rpc.publicnode.com", "https://base-sepolia.drpc.org", "https://base-sepolia.gateway.tenderly.co", "https://sepolia.base.org"];
36
+ };
37
+ };
38
+ sourceId?: number | undefined | undefined;
39
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
40
+ testnet: true;
41
+ custom?: Record<string, unknown> | undefined;
42
+ extendSchema?: Record<string, unknown> | undefined;
43
+ fees?: import("viem").ChainFees<undefined> | undefined;
44
+ formatters?: undefined;
45
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
46
+ client: import("viem").Client;
47
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
48
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
49
+ client: import("viem").Client;
50
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
51
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
52
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
53
+ }] | undefined;
54
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
55
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
56
+ };
57
+ export declare function baseSepoliaTransport(config?: HttpTransportConfig): import("viem").FallbackTransport<import("viem").HttpTransport<undefined, false>[]>;
58
+ /** CoinSpace's deployed contracts on Base Sepolia. CoinSpace is testnet-only today (see the docs'
59
+ * "Networks" page) -- this is the one address book the whole protocol runs on right now. Update
60
+ * here, and only here, if/when a mainnet deployment ships. */
61
+ export declare const CONTRACTS: {
62
+ /** ABX's ERC-721 profile token -- every CoinSpace page is one token here. Also where every
63
+ * profile field (displayName, bio, avatar, ...) lives, as ABX PostParams. */
64
+ readonly abxToken: "0x1D4dE4bE91D2B4A86c634Dde68F8aCbbC7A1eE74";
65
+ /** Mints a fresh profile (`createProfile()`), permissionless, no allowlist. */
66
+ readonly minter: "0x9d4661947C17EcD0Dd8C585036E1575C5E72Da84";
67
+ /** Top-8, and the reverse index (`profilesOf`) of every profile a wallet owns. */
68
+ readonly hook: "0xb700CF46C1E69c71fa6248E567634c6f781dF563";
69
+ /** Posts, replies, reposts, likes, pins -- CoinSpaceBlog. */
70
+ readonly blog: "0xC07f19b22CA1193a3a62245584A15a8D122f3163";
71
+ /** Follows/friends -- CoinSpaceSocial. */
72
+ readonly social: "0x63A6a7470EBaCFfF4a2A8B32e586d7030EAdfD71";
73
+ };
74
+ export type ContractName = keyof typeof CONTRACTS;
75
+ //# sourceMappingURL=chain.d.ts.map