@arcanetech/stellar-privacy-pool-zk-sdk 0.10.0 → 0.10.1-rc.2

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/dist/cli.js CHANGED
@@ -1314,10 +1314,34 @@ function ciphertextFieldCount(layout) {
1314
1314
  return layout.nAuditSlots * layout.noteAuditLen + layout.nOuts * layout.noteOutputLen;
1315
1315
  }
1316
1316
 
1317
+ async function fetchArtifact(url) {
1318
+ const response = await fetch(url);
1319
+ if (!response.ok) {
1320
+ throw new Error(`Failed to fetch ${url}: ${String(response.status)}`);
1321
+ }
1322
+ return new Uint8Array(await response.arrayBuffer());
1323
+ }
1324
+
1317
1325
  const ZK_ARTIFACT_GITHUB_REPO = "Polynom-Labs/stellar-privacy-layer-contracts";
1318
- const ZK_SDK_PACKAGE_VERSION = "0.10.0";
1319
- function defaultZkArtifactBaseUrl(version = ZK_SDK_PACKAGE_VERSION) {
1320
- const tag = version.startsWith("v") ? version.slice(1) : version;
1326
+ const ZK_ARTIFACT_VERSION = "0.10.0";
1327
+ const ZK_ARTIFACT_CDN_ORIGIN = "https://static.pl.arcane.finance";
1328
+ const ZK_DEFAULT_ARTIFACT_BASE_URL = "https://static.pl.arcane.finance/stellar/0.10.0";
1329
+ const ZK_ARTIFACT_CDN_PREFIX = "stellar";
1330
+ function artifactVersionTag(version) {
1331
+ return version.startsWith("v") ? version.slice(1) : version;
1332
+ }
1333
+ function injectedCdnOrigin() {
1334
+ return ZK_ARTIFACT_CDN_ORIGIN.trim().replace(/\/+$/, "");
1335
+ }
1336
+ function defaultZkArtifactBaseUrl(version = ZK_ARTIFACT_VERSION) {
1337
+ const tag = artifactVersionTag(version);
1338
+ if (tag === artifactVersionTag(ZK_ARTIFACT_VERSION)) {
1339
+ return trimArtifactBaseUrl(ZK_DEFAULT_ARTIFACT_BASE_URL);
1340
+ }
1341
+ const origin = injectedCdnOrigin();
1342
+ if (origin.length > 0) {
1343
+ return `${origin}/${ZK_ARTIFACT_CDN_PREFIX}/${tag}`;
1344
+ }
1321
1345
  return `https://github.com/${ZK_ARTIFACT_GITHUB_REPO}/releases/download/v${tag}`;
1322
1346
  }
1323
1347
  function trimArtifactBaseUrl(value) {
@@ -1362,13 +1386,6 @@ async function readNodeAssetFile(filePath) {
1362
1386
  }
1363
1387
  return fs.readFileSync(filePath);
1364
1388
  }
1365
- async function fetchArtifact(url) {
1366
- const response = await fetch(url);
1367
- if (!response.ok) {
1368
- throw new Error(`Failed to fetch ${url}: ${String(response.status)}`);
1369
- }
1370
- return new Uint8Array(await response.arrayBuffer());
1371
- }
1372
1389
  function remoteArtifactHref(base, fileName) {
1373
1390
  const withSlash = `${trimArtifactBaseUrl(base)}/`;
1374
1391
  if (isHttpUrl(withSlash)) {
@@ -2231,12 +2248,12 @@ class PrivacyPoolSDK {
2231
2248
  * Initialize the SDK by loading WASM modules.
2232
2249
  *
2233
2250
  * In Node.js, proving artifacts load from `zkArtifactBaseUrl` or
2234
- * `ZK_ARTIFACT_BASE_URL`, defaulting to this package's GitHub release.
2235
- * In browser, pass pre-loaded WASM via options:
2251
+ * `ZK_ARTIFACT_BASE_URL`, defaulting to this package's CDN
2252
+ * (`defaultZkArtifactBaseUrl()`). In browser, pass pre-loaded WASM via options:
2236
2253
  * ```ts
2237
2254
  * const sdk = await PrivacyPoolSDK.init({
2238
2255
  * wasmBinary: await fetch('/pkg/client_sdk_wasm_bg.wasm').then(r => r.arrayBuffer()),
2239
- * zkArtifactBaseUrl: 'https://github.com/Polynom-Labs/stellar-privacy-layer-contracts/releases/download/v0.8.0',
2256
+ * zkArtifactBaseUrl: 'https://cdn.example.com/stellar/0.10.0',
2240
2257
  * });
2241
2258
  * ```
2242
2259
  */