@opendatalabs/vana-sdk 3.12.0 → 3.13.1
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 +9 -17
- package/dist/direct/endpoints.cjs +2 -1
- package/dist/direct/endpoints.cjs.map +1 -1
- package/dist/direct/endpoints.js +2 -1
- package/dist/direct/endpoints.js.map +1 -1
- package/dist/direct/types.cjs.map +1 -1
- package/dist/direct/types.d.ts +2 -1
- package/dist/direct/types.js.map +1 -1
- package/dist/index.browser.js +64 -19
- package/dist/index.browser.js.map +3 -3
- package/dist/index.node.cjs +64 -19
- package/dist/index.node.cjs.map +3 -3
- package/dist/index.node.js +64 -19
- package/dist/index.node.js.map +3 -3
- package/dist/protocol/networks.cjs +43 -0
- package/dist/protocol/networks.cjs.map +1 -0
- package/dist/protocol/networks.d.ts +11 -0
- package/dist/protocol/networks.js +18 -0
- package/dist/protocol/networks.js.map +1 -0
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.ts +2 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/providers/vana-storage.cjs +50 -19
- package/dist/storage/providers/vana-storage.cjs.map +1 -1
- package/dist/storage/providers/vana-storage.d.ts +30 -24
- package/dist/storage/providers/vana-storage.js +53 -19
- package/dist/storage/providers/vana-storage.js.map +1 -1
- package/package.json +1 -1
package/dist/index.node.cjs
CHANGED
|
@@ -29204,6 +29204,21 @@ async function buildWeb3SignedHeader(params) {
|
|
|
29204
29204
|
return `Web3Signed ${payloadBase64}.${signature}`;
|
|
29205
29205
|
}
|
|
29206
29206
|
|
|
29207
|
+
// src/protocol/networks.ts
|
|
29208
|
+
var PROTOCOL_NETWORK_CHAIN_IDS = {
|
|
29209
|
+
mainnet: 1480,
|
|
29210
|
+
moksha: 14800
|
|
29211
|
+
};
|
|
29212
|
+
function isProtocolNetwork(value) {
|
|
29213
|
+
return typeof value === "string" && Object.hasOwn(PROTOCOL_NETWORK_CHAIN_IDS, value);
|
|
29214
|
+
}
|
|
29215
|
+
function getProtocolNetworkChainId(network) {
|
|
29216
|
+
if (!isProtocolNetwork(network)) {
|
|
29217
|
+
throw new Error(`Unsupported Vana protocol network: ${String(network)}`);
|
|
29218
|
+
}
|
|
29219
|
+
return PROTOCOL_NETWORK_CHAIN_IDS[network];
|
|
29220
|
+
}
|
|
29221
|
+
|
|
29207
29222
|
// src/storage/providers/vana-storage.ts
|
|
29208
29223
|
var DEFAULT_ENDPOINT = "https://storage.vana.org";
|
|
29209
29224
|
var LEGACY_BLOB_PATH_PREFIX = "/v1/blobs";
|
|
@@ -29213,6 +29228,7 @@ var MAX_RATE_LIMIT_DELAY_MS = 3e4;
|
|
|
29213
29228
|
var VanaStorage = class {
|
|
29214
29229
|
endpoint;
|
|
29215
29230
|
network;
|
|
29231
|
+
chainId;
|
|
29216
29232
|
blobPathPrefix;
|
|
29217
29233
|
signer;
|
|
29218
29234
|
ownerAddress;
|
|
@@ -29226,15 +29242,10 @@ var VanaStorage = class {
|
|
|
29226
29242
|
);
|
|
29227
29243
|
}
|
|
29228
29244
|
this.endpoint = (config.endpoint ?? DEFAULT_ENDPOINT).replace(/\/+$/, "");
|
|
29229
|
-
|
|
29230
|
-
|
|
29231
|
-
|
|
29232
|
-
|
|
29233
|
-
"vana-storage"
|
|
29234
|
-
);
|
|
29235
|
-
}
|
|
29236
|
-
this.network = config.network;
|
|
29237
|
-
this.blobPathPrefix = this.network ? `/v1/networks/${this.network}/blobs` : LEGACY_BLOB_PATH_PREFIX;
|
|
29245
|
+
const resolved = resolveStorageNamespace(config);
|
|
29246
|
+
this.network = resolved.network;
|
|
29247
|
+
this.chainId = resolved.chainId;
|
|
29248
|
+
this.blobPathPrefix = this.chainId !== void 0 ? `/v1/chains/${this.chainId}/blobs` : LEGACY_BLOB_PATH_PREFIX;
|
|
29238
29249
|
this.signer = config.signer;
|
|
29239
29250
|
this.ownerAddress = (config.ownerAddress ?? config.signer.address).toLowerCase();
|
|
29240
29251
|
this.fetchImpl = config.fetchImpl ?? globalThis.fetch.bind(globalThis);
|
|
@@ -29431,20 +29442,52 @@ var VanaStorage = class {
|
|
|
29431
29442
|
"vana-storage"
|
|
29432
29443
|
);
|
|
29433
29444
|
}
|
|
29434
|
-
|
|
29435
|
-
if (crossNetwork) {
|
|
29445
|
+
if (route.chainId !== this.chainId) {
|
|
29436
29446
|
throw new StorageError(
|
|
29437
|
-
`URL
|
|
29447
|
+
`URL chainId '${route.chainId ?? "legacy"}' does not match provider namespace '${this.namespaceDescription()}'`,
|
|
29438
29448
|
"INVALID_URL",
|
|
29439
29449
|
"vana-storage"
|
|
29440
29450
|
);
|
|
29441
29451
|
}
|
|
29442
29452
|
return parsed.pathname;
|
|
29443
29453
|
}
|
|
29454
|
+
namespaceDescription() {
|
|
29455
|
+
if (this.network !== void 0) {
|
|
29456
|
+
return `${this.network} (${this.chainId})`;
|
|
29457
|
+
}
|
|
29458
|
+
return this.chainId === void 0 ? "legacy" : String(this.chainId);
|
|
29459
|
+
}
|
|
29444
29460
|
};
|
|
29445
|
-
|
|
29446
|
-
|
|
29447
|
-
|
|
29461
|
+
function isValidChainId(value) {
|
|
29462
|
+
return typeof value === "number" && Number.isInteger(value) && value > 0;
|
|
29463
|
+
}
|
|
29464
|
+
function resolveStorageNamespace(config) {
|
|
29465
|
+
if (config.network !== void 0 && !isProtocolNetwork(config.network)) {
|
|
29466
|
+
throw new StorageError(
|
|
29467
|
+
`Unsupported vana-storage network '${String(config.network)}'`,
|
|
29468
|
+
"INVALID_NETWORK",
|
|
29469
|
+
"vana-storage"
|
|
29470
|
+
);
|
|
29471
|
+
}
|
|
29472
|
+
if (config.chainId !== void 0 && !isValidChainId(config.chainId)) {
|
|
29473
|
+
throw new StorageError(
|
|
29474
|
+
`Unsupported vana-storage chainId '${String(config.chainId)}'`,
|
|
29475
|
+
"INVALID_CHAIN_ID",
|
|
29476
|
+
"vana-storage"
|
|
29477
|
+
);
|
|
29478
|
+
}
|
|
29479
|
+
if (config.network === void 0) {
|
|
29480
|
+
return { chainId: config.chainId };
|
|
29481
|
+
}
|
|
29482
|
+
const networkChainId = getProtocolNetworkChainId(config.network);
|
|
29483
|
+
if (config.chainId !== void 0 && config.chainId !== networkChainId) {
|
|
29484
|
+
throw new StorageError(
|
|
29485
|
+
`vana-storage network '${config.network}' resolves to chainId '${networkChainId}', not '${config.chainId}'`,
|
|
29486
|
+
"INVALID_CHAIN_ID",
|
|
29487
|
+
"vana-storage"
|
|
29488
|
+
);
|
|
29489
|
+
}
|
|
29490
|
+
return { chainId: networkChainId, network: config.network };
|
|
29448
29491
|
}
|
|
29449
29492
|
function parseBlobPath(pathname) {
|
|
29450
29493
|
const segments = pathname.split("/").filter((s) => s.length > 0);
|
|
@@ -29454,11 +29497,13 @@ function parseBlobPath(pathname) {
|
|
|
29454
29497
|
if (isTraversal(scope) || isTraversal(collectedAt)) return null;
|
|
29455
29498
|
return { owner, scope, collectedAt };
|
|
29456
29499
|
}
|
|
29457
|
-
if (segments.length === 7 && segments[0] === "v1" && segments[1] === "
|
|
29458
|
-
const [, ,
|
|
29459
|
-
if (
|
|
29500
|
+
if (segments.length === 7 && segments[0] === "v1" && segments[1] === "chains" && segments[3] === "blobs") {
|
|
29501
|
+
const [, , chainIdSegment, , owner, scope, collectedAt] = segments;
|
|
29502
|
+
if (!/^[0-9]+$/.test(chainIdSegment)) return null;
|
|
29503
|
+
const chainId = Number(chainIdSegment);
|
|
29504
|
+
if (!isValidChainId(chainId)) return null;
|
|
29460
29505
|
if (isTraversal(scope) || isTraversal(collectedAt)) return null;
|
|
29461
|
-
return {
|
|
29506
|
+
return { chainId, owner, scope, collectedAt };
|
|
29462
29507
|
}
|
|
29463
29508
|
return null;
|
|
29464
29509
|
}
|