@inversealtruism/cairn-sdk 0.1.4 → 0.2.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/README.md +16 -16
- package/dist/board.cjs +1 -1
- package/dist/board.d.cts +1 -1
- package/dist/board.d.ts +1 -1
- package/dist/board.js +2 -2
- package/dist/chain.d.cts +1 -1
- package/dist/chain.d.ts +1 -1
- package/dist/{chunk-OG4KA3LS.js → chunk-J5J4JEJ6.js} +1 -1
- package/dist/{chunk-RELP23CH.js → chunk-JGXD3WIC.js} +7 -2
- package/dist/{chunk-MBSPHWZG.js → chunk-PYREGAB3.js} +1 -1
- package/dist/{chunk-FSQZVNEM.js → chunk-RYZJDZLJ.js} +1 -1
- package/dist/{chunk-MVX7VQT4.js → chunk-SIUUY6FZ.js} +1 -1
- package/dist/{chunk-K7SJOW3O.js → chunk-UIEOBVFI.js} +8 -2
- package/dist/connect.cjs +14 -3
- package/dist/connect.d.cts +1 -0
- package/dist/connect.d.ts +1 -0
- package/dist/connect.js +2 -2
- package/dist/content.cjs +1 -1
- package/dist/content.d.cts +1 -1
- package/dist/content.d.ts +1 -1
- package/dist/content.js +2 -2
- package/dist/controller.cjs +14 -3
- package/dist/controller.js +3 -3
- package/dist/{http-CQsNL8w9.d.cts → http-C9C4L4hz.d.cts} +6 -0
- package/dist/{http-CQsNL8w9.d.ts → http-C9C4L4hz.d.ts} +6 -0
- package/dist/index.cjs +141 -10
- package/dist/index.d.cts +95 -11
- package/dist/index.d.ts +95 -11
- package/dist/index.js +131 -12
- package/dist/indexer.cjs +1 -1
- package/dist/indexer.d.cts +1 -1
- package/dist/indexer.d.ts +1 -1
- package/dist/indexer.js +1 -1
- package/dist/react.cjs +14 -3
- package/dist/react.js +3 -3
- package/dist/registry.d.cts +1 -1
- package/dist/registry.d.ts +1 -1
- package/package.json +13 -11
package/dist/index.js
CHANGED
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
} from "./chunk-BGJZF7S2.js";
|
|
4
4
|
import {
|
|
5
5
|
BoardClient
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RYZJDZLJ.js";
|
|
7
7
|
import {
|
|
8
8
|
Chain,
|
|
9
9
|
LightClient
|
|
10
10
|
} from "./chunk-C452UODV.js";
|
|
11
11
|
import {
|
|
12
12
|
ContentClient
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SIUUY6FZ.js";
|
|
14
14
|
import {
|
|
15
15
|
IndexerClient
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-J5J4JEJ6.js";
|
|
17
17
|
import {
|
|
18
18
|
CairnController
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-PYREGAB3.js";
|
|
20
20
|
import {
|
|
21
21
|
WalletConnection,
|
|
22
22
|
connect,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
discoverProviders,
|
|
25
25
|
getWallet,
|
|
26
26
|
isInstalled
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UIEOBVFI.js";
|
|
28
28
|
import {
|
|
29
29
|
CairnError,
|
|
30
30
|
ContentVerificationError,
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
WalletLockedError,
|
|
37
37
|
errorCode,
|
|
38
38
|
mapProviderError
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-JGXD3WIC.js";
|
|
40
40
|
|
|
41
41
|
// src/http.ts
|
|
42
42
|
var DEFAULT_MAX_BYTES = 16 * 1024 * 1024;
|
|
@@ -82,6 +82,7 @@ var Http = class {
|
|
|
82
82
|
timeoutMs;
|
|
83
83
|
maxBytes;
|
|
84
84
|
headers;
|
|
85
|
+
retries;
|
|
85
86
|
constructor(opts) {
|
|
86
87
|
this.baseUrl = opts.baseUrl.replace(/\/+$/, "");
|
|
87
88
|
const f = opts.fetch ?? globalThis.fetch;
|
|
@@ -90,6 +91,7 @@ var Http = class {
|
|
|
90
91
|
this.timeoutMs = opts.timeoutMs ?? 15e3;
|
|
91
92
|
this.maxBytes = opts.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
92
93
|
this.headers = opts.headers ?? {};
|
|
94
|
+
this.retries = Math.min(10, Math.max(0, Math.floor(opts.retries ?? 0)));
|
|
93
95
|
}
|
|
94
96
|
/** Build an absolute URL from a path + optional query params. */
|
|
95
97
|
url(path, query) {
|
|
@@ -126,15 +128,38 @@ var Http = class {
|
|
|
126
128
|
clearTimeout(timer);
|
|
127
129
|
}
|
|
128
130
|
}
|
|
131
|
+
// A malformed 2xx body must surface as a TYPED HttpError, not a leaked SyntaxError (B10: dApp
|
|
132
|
+
// code branches on `instanceof CairnError`; a raw parse error escaped that contract).
|
|
133
|
+
parseJson(res, text, url) {
|
|
134
|
+
try {
|
|
135
|
+
return JSON.parse(text);
|
|
136
|
+
} catch (e) {
|
|
137
|
+
throw new HttpError(res.status, url, `invalid JSON body: ${text.slice(0, 120)}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
129
140
|
async getJson(path, query) {
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
141
|
+
const url = this.url(path, query);
|
|
142
|
+
for (let attempt = 0; ; attempt++) {
|
|
143
|
+
try {
|
|
144
|
+
const res = await this.raw("GET", path, { query });
|
|
145
|
+
if (!res.ok) {
|
|
146
|
+
const err = new HttpError(res.status, url, await safeText(res));
|
|
147
|
+
if (!(res.status >= 500 && attempt < this.retries)) throw err;
|
|
148
|
+
} else {
|
|
149
|
+
return this.parseJson(res, new TextDecoder().decode(await readCapped(res, this.maxBytes)), url);
|
|
150
|
+
}
|
|
151
|
+
} catch (e) {
|
|
152
|
+
if (e instanceof HttpError && e.status < 500) throw e;
|
|
153
|
+
if (attempt >= this.retries) throw e;
|
|
154
|
+
}
|
|
155
|
+
await new Promise((r) => setTimeout(r, Math.floor(Math.random() * Math.min(4e3, 250 * 2 ** attempt))));
|
|
156
|
+
}
|
|
133
157
|
}
|
|
134
158
|
async postJson(path, body, headers) {
|
|
159
|
+
const url = this.url(path);
|
|
135
160
|
const res = await this.raw("POST", path, { body, headers });
|
|
136
|
-
if (!res.ok) throw new HttpError(res.status,
|
|
137
|
-
return
|
|
161
|
+
if (!res.ok) throw new HttpError(res.status, url, await safeText(res));
|
|
162
|
+
return this.parseJson(res, new TextDecoder().decode(await readCapped(res, this.maxBytes)), url);
|
|
138
163
|
}
|
|
139
164
|
/** GET raw bytes (for content retrieval). Returns null on 404. */
|
|
140
165
|
async getBytes(path) {
|
|
@@ -152,8 +177,98 @@ async function safeText(res) {
|
|
|
152
177
|
}
|
|
153
178
|
}
|
|
154
179
|
|
|
180
|
+
// src/names.ts
|
|
181
|
+
import { NAME_RE, RESERVED_NAMES } from "@inversealtruism/cairnx-core";
|
|
182
|
+
var nameOk = (n) => typeof n === "string" && NAME_RE.test(n) && !RESERVED_NAMES.has(n);
|
|
183
|
+
var NamesClient = class {
|
|
184
|
+
constructor(http) {
|
|
185
|
+
this.http = http;
|
|
186
|
+
}
|
|
187
|
+
http;
|
|
188
|
+
/** Resolve a .csd name for DISPLAY (server-trusted; see the module trust note). null = unknown/invalid name. */
|
|
189
|
+
async resolve(name) {
|
|
190
|
+
if (!nameOk(name)) return null;
|
|
191
|
+
try {
|
|
192
|
+
return await this.http.getJson(`/trade/api/cairnx/resolve/${name}`);
|
|
193
|
+
} catch (e) {
|
|
194
|
+
if (e?.status === 404) return null;
|
|
195
|
+
throw e;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/** Full detail for one name (lease, lock, resting offer, recapture). null = not registered/invalid. */
|
|
199
|
+
async name(name) {
|
|
200
|
+
if (!nameOk(name)) return null;
|
|
201
|
+
try {
|
|
202
|
+
return await this.http.getJson(`/trade/api/cairnx/name/${name}`);
|
|
203
|
+
} catch (e) {
|
|
204
|
+
if (e?.status === 404) return null;
|
|
205
|
+
throw e;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/** The event history of one name (registrations, transfers, sets, renewals). null = invalid name. */
|
|
209
|
+
async nameHistory(name) {
|
|
210
|
+
if (!nameOk(name)) return null;
|
|
211
|
+
try {
|
|
212
|
+
return await this.http.getJson(`/trade/api/cairnx/name-history/${name}`);
|
|
213
|
+
} catch (e) {
|
|
214
|
+
if (e?.status === 404) return null;
|
|
215
|
+
throw e;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/** Reverse lookup: an address's chosen primary .csd name (null name = none set). */
|
|
219
|
+
async primary(addr) {
|
|
220
|
+
if (typeof addr !== "string" || !/^0x[0-9a-fA-F]{40}$/.test(addr)) return null;
|
|
221
|
+
try {
|
|
222
|
+
return await this.http.getJson(`/trade/api/cairnx/primary/${addr.toLowerCase()}`);
|
|
223
|
+
} catch (e) {
|
|
224
|
+
if (e?.status === 404) return null;
|
|
225
|
+
throw e;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/** All names an address owns (plus its primary), as served by `/cairnx/address/:addr`. */
|
|
229
|
+
async namesOf(addr) {
|
|
230
|
+
if (typeof addr !== "string" || !/^0x[0-9a-fA-F]{40}$/.test(addr)) return null;
|
|
231
|
+
try {
|
|
232
|
+
return await this.http.getJson(`/trade/api/cairnx/address/${addr.toLowerCase()}`);
|
|
233
|
+
} catch (e) {
|
|
234
|
+
if (e?.status === 404) return null;
|
|
235
|
+
throw e;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/** All registered names (display list; short-edge-cached server-side). */
|
|
239
|
+
names() {
|
|
240
|
+
return this.http.getJson(`/trade/api/cairnx/names`);
|
|
241
|
+
}
|
|
242
|
+
/** All deployed tokens. */
|
|
243
|
+
tokens() {
|
|
244
|
+
return this.http.getJson(`/trade/api/cairnx/tokens`);
|
|
245
|
+
}
|
|
246
|
+
/** One token by ticker. null = unknown/invalid ticker. */
|
|
247
|
+
async token(ticker) {
|
|
248
|
+
if (typeof ticker !== "string" || !/^[A-Z][A-Z0-9]{2,11}$/.test(ticker)) return null;
|
|
249
|
+
try {
|
|
250
|
+
return await this.http.getJson(`/trade/api/cairnx/token/${ticker}`);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
if (e?.status === 404) return null;
|
|
253
|
+
throw e;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/** Open offers (the market's display list). */
|
|
257
|
+
offers() {
|
|
258
|
+
return this.http.getJson(`/trade/api/cairnx/offers`);
|
|
259
|
+
}
|
|
260
|
+
/** Open bids. */
|
|
261
|
+
bids() {
|
|
262
|
+
return this.http.getJson(`/trade/api/cairnx/bids`);
|
|
263
|
+
}
|
|
264
|
+
/** The full canonical CairnX state (large; prefer the scoped reads above). */
|
|
265
|
+
state() {
|
|
266
|
+
return this.http.getJson(`/trade/api/cairnx/state`);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
|
|
155
270
|
// src/index.ts
|
|
156
|
-
var DEFAULT_SPV_CHECKPOINT = { height:
|
|
271
|
+
var DEFAULT_SPV_CHECKPOINT = { height: 38142, hash: "0x00000000000140f023cc0ee1457a40833f2fcb4de44291b9d373e50f17b97232" };
|
|
157
272
|
var DEFAULT_CAIRN = "https://cairn-substrate.com";
|
|
158
273
|
var Cairn = class {
|
|
159
274
|
config;
|
|
@@ -161,6 +276,8 @@ var Cairn = class {
|
|
|
161
276
|
index;
|
|
162
277
|
content;
|
|
163
278
|
registry;
|
|
279
|
+
/** .csd names + CairnX market READS (server-trusted display reads; see names.ts trust note). */
|
|
280
|
+
names;
|
|
164
281
|
board;
|
|
165
282
|
wallet;
|
|
166
283
|
cairnHttp;
|
|
@@ -189,6 +306,7 @@ var Cairn = class {
|
|
|
189
306
|
});
|
|
190
307
|
this.content = new ContentClient({ swarm: swarmHttp, indexer: indexerHttp, cairn: this.cairnHttp });
|
|
191
308
|
this.registry = new RegistryClient({ baseUrl: indexer, fetch });
|
|
309
|
+
this.names = new NamesClient(this.cairnHttp);
|
|
192
310
|
}
|
|
193
311
|
/**
|
|
194
312
|
* PoW-VERIFIED header merkle at a height (audit M3 — the no-PoW half). Lazily seeds a light
|
|
@@ -244,6 +362,7 @@ export {
|
|
|
244
362
|
Http,
|
|
245
363
|
HttpError,
|
|
246
364
|
IndexerClient,
|
|
365
|
+
NamesClient,
|
|
247
366
|
NotInstalledError,
|
|
248
367
|
RegistryClient,
|
|
249
368
|
SDK_VERSION,
|
package/dist/indexer.cjs
CHANGED
package/dist/indexer.d.cts
CHANGED
package/dist/indexer.d.ts
CHANGED
package/dist/indexer.js
CHANGED
package/dist/react.cjs
CHANGED
|
@@ -26,7 +26,7 @@ __export(react_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(react_exports);
|
|
27
27
|
|
|
28
28
|
// src/errors.ts
|
|
29
|
-
var SDK_VERSION = "0.
|
|
29
|
+
var SDK_VERSION = "0.2.0";
|
|
30
30
|
var DOCS_BASE = "https://cairn-substrate.com/docs/sdk";
|
|
31
31
|
var CairnError = class extends Error {
|
|
32
32
|
/** Stable machine code for programmatic branching. */
|
|
@@ -83,7 +83,12 @@ var UnsupportedMethodError = class extends CairnError {
|
|
|
83
83
|
super(message, { code: "UNSUPPORTED_METHOD", docsPath: "/errors#unsupported-method" });
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
|
-
|
|
86
|
+
var NATIVE_CODES = /* @__PURE__ */ new Set(["ACCOUNT_CHANGED", "FIRST_PARTY_ONLY", "RATE_LIMITED", "APPROVAL_CLOSED", "FORBIDDEN", "INTERNAL"]);
|
|
87
|
+
function mapProviderError(error, code) {
|
|
88
|
+
if (code === "USER_REJECTED" || code === "APPROVAL_CLOSED") return new UserRejectedError(error);
|
|
89
|
+
if (code === "WALLET_LOCKED") return new WalletLockedError(error);
|
|
90
|
+
if (code === "UNSUPPORTED_METHOD" || code === "UNKNOWN_KIND") return new UnsupportedMethodError(error);
|
|
91
|
+
if (code && NATIVE_CODES.has(code)) return new CairnError(error || code, { code });
|
|
87
92
|
const e = String(error || "").toLowerCase();
|
|
88
93
|
if (e.includes("rejected by user")) return new UserRejectedError(error);
|
|
89
94
|
if (e.includes("wallet locked")) return new WalletLockedError(error);
|
|
@@ -136,7 +141,7 @@ function detectProvider(opts = {}) {
|
|
|
136
141
|
}
|
|
137
142
|
function unwrap(reply) {
|
|
138
143
|
if (reply && reply.ok) return reply.result;
|
|
139
|
-
throw mapProviderError(reply?.error ?? "Unknown wallet error");
|
|
144
|
+
throw mapProviderError(reply?.error ?? "Unknown wallet error", reply?.code);
|
|
140
145
|
}
|
|
141
146
|
var WalletConnection = class {
|
|
142
147
|
provider;
|
|
@@ -170,6 +175,9 @@ var WalletConnection = class {
|
|
|
170
175
|
* Passwordless sign-in: a signature over a login nonce (always prompts; structurally cannot sign a tx).
|
|
171
176
|
*/
|
|
172
177
|
signIn() {
|
|
178
|
+
if (typeof this.provider.signIn !== "function") {
|
|
179
|
+
return Promise.reject(new UnsupportedMethodError("this wallet does not expose signIn()"));
|
|
180
|
+
}
|
|
173
181
|
return Promise.resolve(this.provider.signIn()).then(unwrap);
|
|
174
182
|
}
|
|
175
183
|
/**
|
|
@@ -203,6 +211,9 @@ var WalletConnection = class {
|
|
|
203
211
|
}
|
|
204
212
|
/** Atomic fill (CairnX DvP): pay + attest in ONE tx. Always prompts with clear-signing. */
|
|
205
213
|
fillOffer(params) {
|
|
214
|
+
if (typeof this.provider.fillOffer !== "function") {
|
|
215
|
+
return Promise.reject(new UnsupportedMethodError("this wallet predates fillOffer() \u2014 ask the user to update the Cairn Wallet"));
|
|
216
|
+
}
|
|
206
217
|
return Promise.resolve(this.provider.fillOffer(params)).then(unwrap);
|
|
207
218
|
}
|
|
208
219
|
/** This origin's current permission grant (EIP-2255-style). Silent; [] if none / unsupported. */
|
package/dist/react.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CairnController
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-PYREGAB3.js";
|
|
4
|
+
import "./chunk-UIEOBVFI.js";
|
|
5
|
+
import "./chunk-JGXD3WIC.js";
|
|
6
6
|
|
|
7
7
|
// src/react.ts
|
|
8
8
|
function createCairnHooks(React, controllerOrOpts) {
|
package/dist/registry.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _inversealtruism_csd_registry from '@inversealtruism/csd-registry';
|
|
2
2
|
export { BuiltRecord, ChainRecord, DOMAINS, RankedGateway, RankedPeer, ResolveOpts, ResolvedIdentity, buildGatewayRecord, buildIdentityCommit, buildIdentityReveal, buildPeerRecord, epochOf, fromRecords, verifyGateway, verifyIdentitySig, verifyPeer } from '@inversealtruism/csd-registry';
|
|
3
|
-
import { F as FetchLike } from './http-
|
|
3
|
+
import { F as FetchLike } from './http-C9C4L4hz.cjs';
|
|
4
4
|
|
|
5
5
|
interface RegistryClientOptions {
|
|
6
6
|
/** Indexer base URL exposing /registry/* + /identity/* (e.g. https://cairn-substrate.com/indexer). */
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _inversealtruism_csd_registry from '@inversealtruism/csd-registry';
|
|
2
2
|
export { BuiltRecord, ChainRecord, DOMAINS, RankedGateway, RankedPeer, ResolveOpts, ResolvedIdentity, buildGatewayRecord, buildIdentityCommit, buildIdentityReveal, buildPeerRecord, epochOf, fromRecords, verifyGateway, verifyIdentitySig, verifyPeer } from '@inversealtruism/csd-registry';
|
|
3
|
-
import { F as FetchLike } from './http-
|
|
3
|
+
import { F as FetchLike } from './http-C9C4L4hz.js';
|
|
4
4
|
|
|
5
5
|
interface RegistryClientOptions {
|
|
6
6
|
/** Indexer base URL exposing /registry/* + /identity/* (e.g. https://cairn-substrate.com/indexer). */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inversealtruism/cairn-sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The Compute Substrate dApp kit
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "The Compute Substrate dApp kit \u2014 one cohesive toolkit to connect the Cairn Wallet, read the chain/board, publish self-certifying content, and resolve registries. Composes the published csd-* primitives.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
],
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "tsup src/index.ts src/connect.ts src/board.ts src/indexer.ts src/content.ts src/registry.ts src/chain.ts src/controller.ts src/react.ts --format esm,cjs --dts --clean",
|
|
63
|
-
"test": "tsx test/sdk.test.ts && tsx test/connect.test.ts && tsx test/errors.test.ts && tsx test/controller.test.ts && tsx test/react.test.ts && tsx test/hardening.test.ts && tsx test/spv-checkpoint.test.ts",
|
|
63
|
+
"test": "tsx test/sdk.test.ts && tsx test/connect.test.ts && tsx test/errors.test.ts && tsx test/controller.test.ts && tsx test/react.test.ts && tsx test/hardening.test.ts && tsx test/spv-checkpoint.test.ts && tsx test/names-b10.test.ts",
|
|
64
64
|
"test:live": "node examples/read-only.mjs",
|
|
65
65
|
"build:example": "node scripts/build-example.mjs",
|
|
66
66
|
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
@@ -68,15 +68,17 @@
|
|
|
68
68
|
"test:e2e:wallet": "xvfb-run -a node test/e2e/e2e-wallet-connect.mjs",
|
|
69
69
|
"test:e2e:write": "node test/e2e/e2e-write.mjs",
|
|
70
70
|
"test:e2e": "node test/e2e/e2e-read.mjs && xvfb-run -a node test/e2e/e2e-wallet-connect.mjs",
|
|
71
|
-
"test:all": "pnpm test && pnpm test:e2e"
|
|
71
|
+
"test:all": "pnpm test && pnpm test:e2e",
|
|
72
|
+
"prepublishOnly": "npm run build && npm test"
|
|
72
73
|
},
|
|
73
74
|
"dependencies": {
|
|
74
|
-
"@inversealtruism/
|
|
75
|
-
"@inversealtruism/csd-
|
|
76
|
-
"@inversealtruism/csd-
|
|
77
|
-
"@inversealtruism/csd-
|
|
78
|
-
"@inversealtruism/csd-
|
|
79
|
-
"@inversealtruism/csd-
|
|
75
|
+
"@inversealtruism/cairnx-core": "0.1.31",
|
|
76
|
+
"@inversealtruism/csd-client": "0.1.15",
|
|
77
|
+
"@inversealtruism/csd-codec": "0.1.15",
|
|
78
|
+
"@inversealtruism/csd-crypto": "0.1.15",
|
|
79
|
+
"@inversealtruism/csd-light": "0.1.15",
|
|
80
|
+
"@inversealtruism/csd-registry": "0.1.15",
|
|
81
|
+
"@inversealtruism/csd-tx": "0.1.15"
|
|
80
82
|
},
|
|
81
83
|
"devDependencies": {
|
|
82
84
|
"esbuild": "^0.27.0",
|
|
@@ -84,7 +86,7 @@
|
|
|
84
86
|
"tsup": "^8.5.1",
|
|
85
87
|
"tsx": "^4.19.2",
|
|
86
88
|
"typescript": "^5.6.0",
|
|
87
|
-
"@inversealtruism/csd-siwc": "0.1.
|
|
89
|
+
"@inversealtruism/csd-siwc": "0.1.15"
|
|
88
90
|
},
|
|
89
91
|
"sideEffects": false,
|
|
90
92
|
"packageManager": "pnpm@10.32.1",
|