From 6db8bef9c76232402cb3f5817cb0927268cf0ffa Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 16 Sep 2026 16:13:33 -0400 Subject: [PATCH 01/12] chore: update @dashevo/evo-sdk to 4.2.0-dev.11 Bumps the SDK dependency in the root package and every example app, including the pinned esm.sh version in each `*-lite.html` page. --- example-apps/dashmint-lab/package-lock.json | 16 +++++----- example-apps/dashmint-lab/package.json | 4 +-- .../dashmint-lab/public/dashmint-lite.html | 2 +- .../dashnote-starter/package-lock.json | 16 +++++----- example-apps/dashnote-starter/package.json | 2 +- example-apps/dashnote/package-lock.json | 16 +++++----- example-apps/dashnote/package.json | 2 +- .../dashnote/public/dashnote-lite.html | 2 +- example-apps/dashproof-lab/package-lock.json | 16 +++++----- example-apps/dashproof-lab/package.json | 2 +- .../dashproof-lab/public/dashproof-lite.html | 2 +- example-apps/dashrate/package-lock.json | 16 +++++----- example-apps/dashrate/package.json | 4 +-- .../dashrate/public/dashrate-lite.html | 2 +- example-apps/token-ops/package-lock.json | 16 +++++----- example-apps/token-ops/package.json | 4 +-- package-lock.json | 30 +++++++++---------- package.json | 2 +- 18 files changed, 77 insertions(+), 77 deletions(-) diff --git a/example-apps/dashmint-lab/package-lock.json b/example-apps/dashmint-lab/package-lock.json index 6869488..0bb8edb 100644 --- a/example-apps/dashmint-lab/package-lock.json +++ b/example-apps/dashmint-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashmint-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashmint-lab/package.json b/example-apps/dashmint-lab/package.json index 8ffa795..3261c43 100644 --- a/example-apps/dashmint-lab/package.json +++ b/example-apps/dashmint-lab/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -31,13 +31,13 @@ "devDependencies": { "@eslint/js": "^9.39.4", "@playwright/test": "^1.59.1", - "dotenv": "^17.3.1", "@testing-library/react": "^16.3.2", "@types/node": "^24.12.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "@vitest/coverage-v8": "^4.1.5", + "dotenv": "^17.3.1", "eslint": "^9.39.4", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", diff --git a/example-apps/dashmint-lab/public/dashmint-lite.html b/example-apps/dashmint-lab/public/dashmint-lite.html index c3be817..c612049 100644 --- a/example-apps/dashmint-lab/public/dashmint-lite.html +++ b/example-apps/dashmint-lab/public/dashmint-lite.html @@ -119,7 +119,7 @@

Browse cards

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.1.1'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; // The token-enabled "card" data contract is already published on testnet by // the React app. Anyone querying with the same contract id hits the same diff --git a/example-apps/dashnote-starter/package-lock.json b/example-apps/dashnote-starter/package-lock.json index b428d20..37ce055 100644 --- a/example-apps/dashnote-starter/package-lock.json +++ b/example-apps/dashnote-starter/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote-starter", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -272,20 +272,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote-starter/package.json b/example-apps/dashnote-starter/package.json index 36757ea..8316c47 100644 --- a/example-apps/dashnote-starter/package.json +++ b/example-apps/dashnote-starter/package.json @@ -17,7 +17,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashnote/package-lock.json b/example-apps/dashnote/package-lock.json index 5e839b8..49dd0d4 100644 --- a/example-apps/dashnote/package-lock.json +++ b/example-apps/dashnote/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote/package.json b/example-apps/dashnote/package.json index 180a1ff..51a4fd9 100644 --- a/example-apps/dashnote/package.json +++ b/example-apps/dashnote/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashnote/public/dashnote-lite.html b/example-apps/dashnote/public/dashnote-lite.html index 0c44380..8947905 100644 --- a/example-apps/dashnote/public/dashnote-lite.html +++ b/example-apps/dashnote/public/dashnote-lite.html @@ -129,7 +129,7 @@

Get note by ID

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.1.1'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; // The "note" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashproof-lab/package-lock.json b/example-apps/dashproof-lab/package-lock.json index 8b45d85..ee69bf5 100644 --- a/example-apps/dashproof-lab/package-lock.json +++ b/example-apps/dashproof-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashproof-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashproof-lab/package.json b/example-apps/dashproof-lab/package.json index 8bd9065..818345a 100644 --- a/example-apps/dashproof-lab/package.json +++ b/example-apps/dashproof-lab/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashproof-lab/public/dashproof-lite.html b/example-apps/dashproof-lab/public/dashproof-lite.html index 583e2f3..92a1ebd 100644 --- a/example-apps/dashproof-lab/public/dashproof-lite.html +++ b/example-apps/dashproof-lab/public/dashproof-lite.html @@ -120,7 +120,7 @@

History by chainId

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.1.1'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; // The "anchor" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashrate/package-lock.json b/example-apps/dashrate/package-lock.json index 63890ec..74aea64 100644 --- a/example-apps/dashrate/package-lock.json +++ b/example-apps/dashrate/package-lock.json @@ -8,7 +8,7 @@ "name": "dashrate", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -433,20 +433,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashrate/package.json b/example-apps/dashrate/package.json index 197fbc6..f75fbee 100644 --- a/example-apps/dashrate/package.json +++ b/example-apps/dashrate/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -35,10 +35,10 @@ "@vitejs/plugin-react": "^6.0.1", "@vitest/coverage-v8": "^4.1.5", "eslint": "^9.39.4", - "jsdom": "^26.1.0", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", "globals": "^17.4.0", + "jsdom": "^26.1.0", "prettier": "^3.6.2", "typescript": "~6.0.2", "typescript-eslint": "^8.58.0", diff --git a/example-apps/dashrate/public/dashrate-lite.html b/example-apps/dashrate/public/dashrate-lite.html index 1c77019..42ff815 100644 --- a/example-apps/dashrate/public/dashrate-lite.html +++ b/example-apps/dashrate/public/dashrate-lite.html @@ -138,7 +138,7 @@

Recent reviews

// The rest of the file (DOM wiring, render helpers) is plumbing. // ============================================================================ - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.1.1'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; const CONTRACT_ID = 'BdgTqaTAPYMyhp1WdeWdcvYSgoD7AuJ7tVCaCSXyQgyP'; const DOC_TYPE = 'review'; diff --git a/example-apps/token-ops/package-lock.json b/example-apps/token-ops/package-lock.json index 993c2e8..24f98bf 100644 --- a/example-apps/token-ops/package-lock.json +++ b/example-apps/token-ops/package-lock.json @@ -8,7 +8,7 @@ "name": "token-ops", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" @@ -435,20 +435,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } diff --git a/example-apps/token-ops/package.json b/example-apps/token-ops/package.json index d3d8ad5..e2c482f 100644 --- a/example-apps/token-ops/package.json +++ b/example-apps/token-ops/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "4.2.0-dev.11", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" @@ -30,13 +30,13 @@ "devDependencies": { "@eslint/js": "^9.39.4", "@playwright/test": "^1.59.1", - "dotenv": "^17.3.1", "@testing-library/react": "^16.3.2", "@types/node": "^24.12.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "@vitest/coverage-v8": "^4.1.5", + "dotenv": "^17.3.1", "eslint": "^9.39.4", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", diff --git a/package-lock.json b/package-lock.json index c2cda9a..aeaa404 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "4.1.1", "license": "MIT", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "^4.2.0-dev.11", "dotenv": "17.3.1" }, "devDependencies": { @@ -35,20 +35,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "dependencies": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", "engines": { "node": ">=18.18" } @@ -1941,17 +1941,17 @@ "dev": true }, "@dashevo/evo-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.1.1.tgz", - "integrity": "sha512-DsfHXlLByyhvAerDknozg0HT4KHNsYP6rEy949aj/KGLLydb9bwJBHOWyn5oDsNR016tvr3oeT/jCkjMA4qoCA==", + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", "requires": { - "@dashevo/wasm-sdk": "4.1.1" + "@dashevo/wasm-sdk": "4.2.0-dev.11" } }, "@dashevo/wasm-sdk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.1.1.tgz", - "integrity": "sha512-/be0D7qohZc9fHgYjbtzOg8KOajarzo0NtKCNybv4Z1xeV617Wo0CusnsxCzwbV7C/jDgPJiGel0KtcSTzQcfQ==" + "version": "4.2.0-dev.11", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", + "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==" }, "@eslint-community/eslint-utils": { "version": "4.4.0", diff --git a/package.json b/package.json index 95bdce0..789ab0b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "homepage": "https://github.com/dashpay/platform-tutorials#readme", "dependencies": { - "@dashevo/evo-sdk": "4.1.1", + "@dashevo/evo-sdk": "^4.2.0-dev.11", "dotenv": "17.3.1" }, "devDependencies": { From 0a30fc6128a772a2360bff5a87d9c7f7ad3e88a0 Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 16 Sep 2026 16:14:21 -0400 Subject: [PATCH 02/12] chore: add SDK version bump script `scripts/bump-sdk.sh VERSION [--test]` resolves the published `@dashevo/evo-sdk` version, updates the root package and each example app (preserving each declaration's range prefix and dependency section), rewrites the pinned esm.sh imports in `*-lite.html` pages, and optionally runs every project's test script. --- scripts/bump-sdk.sh | 88 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 scripts/bump-sdk.sh diff --git a/scripts/bump-sdk.sh b/scripts/bump-sdk.sh new file mode 100755 index 0000000..549b5e4 --- /dev/null +++ b/scripts/bump-sdk.sh @@ -0,0 +1,88 @@ +#!/usr/bin/env bash +# Usage: bash scripts/bump-sdk.sh VERSION [--test] +# Example: bash scripts/bump-sdk.sh 4.2.0-dev.11 --test +set -euo pipefail + +usage() { echo 'Usage: bash scripts/bump-sdk.sh VERSION [--test]'; } +if [[ "${1:-}" == -h || "${1:-}" == --help ]]; then usage; exit 0; fi +if (( $# < 1 || $# > 2 )) || [[ "${2:---test}" != --test ]]; then + usage >&2 + exit 1 +fi + +cd "$(dirname "$0")/.." +shopt -s nullglob +pkg='@dashevo/evo-sdk' + +# Let npm resolve published versions, including dev/RC releases and tags. +version="$(npm view "$pkg@${1#v}" version --json | jq -er ' + if type == "string" then . else error("specify one published SDK version") end +')" + +dirs=() prefixes=() sections=() specs=() +for file in ./package.json example-apps/*/package.json; do + entry="$(jq -r --arg p "$pkg" ' + ["dependencies", "devDependencies", "optionalDependencies"][] as $s + | select(.[$s][$p] != null) | [$s, .[$s][$p]] | @tsv + ' "$file")" + [ -n "$entry" ] || continue + if [[ "$entry" == *$'\n'* ]]; then + echo "error: multiple SDK declarations in $file" >&2 + exit 1 + fi + IFS=$'\t' read -r section spec <<<"$entry" + if [[ ! "$spec" =~ ^([~^]?)[0-9][0-9A-Za-z.+-]*$ ]]; then + echo "error: unsupported SDK range '$spec' in $file" >&2 + exit 1 + fi + dirs+=("${file%/package.json}") + prefixes+=("${BASH_REMATCH[1]}") + sections+=("$section") + specs+=("$spec") +done + +for i in "${!dirs[@]}"; do + # Repair lite imports even when installation is skipped; dist/ is build output. + for page in "${dirs[i]}"/public/*-lite.html; do + sed -E "s|(https://esm\.sh/@dashevo/evo-sdk@)[^'\"]+|\1${prefixes[i]}$version|g" "$page" >"$page.tmp" + if cmp -s "$page" "$page.tmp"; then + unlink "$page.tmp" + else + mv "$page.tmp" "$page" + echo "Updated lite import: $page" + fi + done + lock="${dirs[i]}/package-lock.json" + if [[ "${specs[i]}" == "${prefixes[i]}$version" && -f "$lock" ]] && + locked="$(jq -er --arg p "$pkg" ' + .packages["node_modules/" + $p].version // .dependencies[$p].version // empty + ' "$lock")" && [[ "$locked" == "$version" ]]; then + echo "Already matching: ${dirs[i]} (${prefixes[i]}$version)" + continue + fi + case "${sections[i]}" in + dependencies) save=--save-prod ;; + devDependencies) save=--save-dev ;; + optionalDependencies) save=--save-optional ;; + esac + echo "Updating ${dirs[i]} to ${prefixes[i]}$version" + (cd "${dirs[i]}" && npm install "$pkg@$version" "$save" \ + --save-exact=false --save-prefix="${prefixes[i]}") +done + +# Run every project's tests even if another project fails. +if [[ "${2:-}" == --test ]]; then + status=0 + for dir in "${dirs[@]}"; do + if jq -e '.scripts.test | type == "string"' "$dir/package.json" >/dev/null; then + echo "Testing $dir" + if ! (cd "$dir" && npm run test); then + echo "Tests failed: $dir" >&2 + status=1 + fi + else + echo "Skipping tests: $dir (no test script)" + fi + done + exit "$status" +fi From dbe30412f739d855b25f4a68b7483e6263b1bb4e Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 16 Sep 2026 16:15:36 -0400 Subject: [PATCH 03/12] chore: add script to run root and example-app test suites `scripts/run-tests.sh` runs the root suite followed by each example app that defines a `test` script, continuing past failures and reporting which suites failed. --- scripts/run-tests.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 scripts/run-tests.sh diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh new file mode 100755 index 0000000..651c536 --- /dev/null +++ b/scripts/run-tests.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# +# Run the root test suite, then every example app that defines a "test" script. +# Keeps going after a failure and reports which suites failed; exits 1 if any did. + +cd "$(dirname "$0")/.." + +failed=() +npm run test || failed+=(root) + +for app in example-apps/*/; do + [ -f "$app/package.json" ] || continue + if jq -e '.scripts.test' "$app/package.json" >/dev/null; then + echo "=== $app" + (cd "$app" && npm run test) || failed+=("$app") + fi +done + +[ ${#failed[@]} -eq 0 ] || echo "Failed: ${failed[*]}" +exit $(( ${#failed[@]} > 0 )) From 74c4924344ae09058c9bda19523ced3ac504a997 Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 16 Sep 2026 17:00:55 -0400 Subject: [PATCH 04/12] fix(test): use a fresh mnemonic for tests asserting no identity exists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four setup tests asserted that the shared BIP39 test vector ("abandon ... about") has no on-chain identity. Someone registered an identity at DIP-13 index 0 on that mnemonic on testnet, so all four began failing: `create()` and `setupDashClient()` resolved instead of throwing "No identity found", and `findNextIndex()`/`createForNewIdentity()` returned 1 instead of 0. This was not caused by the recent evo-sdk bump. A read-only probe shows the client negotiating protocol version 13 against testnet and correctly returning no identity for indices 1 and 2 — negative lookups work; index 0 is simply occupied now. Generate an `UNREGISTERED_MNEMONIC` per run via `wallet.generateMnemonic()` and use it for the absence assertions. A fresh mnemonic has no identity at any index by construction, so a third party can no longer invalidate these tests. It is never funded; these paths only derive keys and perform read-only lookups. `TEST_MNEMONIC` stays for the tests that need deterministic key derivation and never assert absence, with a comment recording why it must not be used for absence checks. Co-Authored-By: Claude Opus 5 (1M context) --- test/setupDashClient.test.mjs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/test/setupDashClient.test.mjs b/test/setupDashClient.test.mjs index 640d7a6..95ea084 100644 --- a/test/setupDashClient.test.mjs +++ b/test/setupDashClient.test.mjs @@ -23,10 +23,18 @@ const network = process.env.NETWORK || 'testnet'; // Testnet identity used by the tutorials (known to exist on-chain) const IDENTITY_ID = 'GgZekwh38XcWQTyWWWvmw6CEYFnLU7yiZFPWZEjqKHit'; +// Fixed BIP39 test vector. Used only where deterministic key derivation +// matters — never to assert that no identity exists, since this mnemonic is +// public and anyone can register an identity on it (as happened at index 0). const TEST_MNEMONIC = 'abandon abandon abandon abandon abandon abandon ' + 'abandon abandon abandon abandon abandon about'; +// Freshly generated per run, so it is guaranteed to have no on-chain identity +// at any index. Used by tests that assert absence. Never funded: these paths +// only derive keys and perform read-only lookups. +const UNREGISTERED_MNEMONIC = await wallet.generateMnemonic(); + /** * Derive identity authentication keys from a BIP39 mnemonic using DIP-9 paths. * Inlined here since setupDashClient.mjs doesn't export this as a standalone function. @@ -532,7 +540,7 @@ describe('IdentityKeyManager', function suite() { try { await IdentityKeyManager.create({ sdk, - mnemonic: TEST_MNEMONIC, + mnemonic: UNREGISTERED_MNEMONIC, // no identityId — forces auto-resolve, which will fail }); expect.fail('should have thrown'); @@ -592,7 +600,10 @@ describe('IdentityKeyManager', function suite() { describe('findNextIndex()', function () { it('should return 0 for mnemonic with no on-chain identity', async function () { - const idx = await IdentityKeyManager.findNextIndex(sdk, TEST_MNEMONIC); + const idx = await IdentityKeyManager.findNextIndex( + sdk, + UNREGISTERED_MNEMONIC, + ); expect(idx).to.equal(0); }); @@ -884,7 +895,7 @@ describe('setupDashClient()', function () { // requireIdentity: true path tries to auto-resolve and fails. const saved = clientConfig.mnemonic; try { - clientConfig.mnemonic = TEST_MNEMONIC; + clientConfig.mnemonic = UNREGISTERED_MNEMONIC; try { await setupDashClient(); // requireIdentity defaults to true expect.fail('should have thrown'); @@ -903,11 +914,8 @@ describe('setupDashClient()', function () { const saved = clientConfig.mnemonic; try { clientConfig.mnemonic = TEST_MNEMONIC; - // Both will fail with "No identity found" since TEST_MNEMONIC has no - // on-chain identity, but they fail at different derivation paths, - // proving identityIndex is forwarded. We just need it not to crash - // before reaching the identity lookup. - // Use requireIdentity: false to avoid the lookup and verify the index is stored. + // Use requireIdentity: false to skip the identity lookup entirely and + // verify the index is stored and reaches key derivation. const r0 = await setupDashClient({ requireIdentity: false, identityIndex: 0, @@ -986,7 +994,7 @@ describe('IdentityKeyManager.createForNewIdentity() auto-index', function () { const sdk = await createClient(network); const km = await IdentityKeyManager.createForNewIdentity({ sdk, - mnemonic: TEST_MNEMONIC, + mnemonic: UNREGISTERED_MNEMONIC, // no identityIndex — triggers findNextIndex }); expect(km.identityIndex).to.equal(0); From bb47202e8a80383d303fb25e8d51721bcdd873df Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 16 Sep 2026 17:56:38 -0400 Subject: [PATCH 05/12] ci: add unit test and build workflows for dashnote, dashmint-lab, and dashproof-lab Each app runs `npm test` (vitest) and `npm run build`, which covers the typecheck since `tsc -b` is part of the build script. Follows the existing dashrate-ci.yml and token-ops-ci.yml pattern: pinned action SHAs, read-only permissions, per-ref concurrency with cancel-in-progress, and path filters scoped to the app directory plus the workflow file itself. Dashnote's Playwright coverage already lives in dashnote-e2e.yml, which serves the app via the dev server and so runs neither tsc nor the vitest suite. The new workflow complements it rather than duplicating it. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/dashmint-lab-ci.yml | 53 ++++++++++++++++++++++++ .github/workflows/dashnote-ci.yml | 57 ++++++++++++++++++++++++++ .github/workflows/dashproof-lab-ci.yml | 53 ++++++++++++++++++++++++ 3 files changed, 163 insertions(+) create mode 100644 .github/workflows/dashmint-lab-ci.yml create mode 100644 .github/workflows/dashnote-ci.yml create mode 100644 .github/workflows/dashproof-lab-ci.yml diff --git a/.github/workflows/dashmint-lab-ci.yml b/.github/workflows/dashmint-lab-ci.yml new file mode 100644 index 0000000..457ac9d --- /dev/null +++ b/.github/workflows/dashmint-lab-ci.yml @@ -0,0 +1,53 @@ +name: DashMint Lab CI + +on: + push: + branches: [main] + paths: + - 'example-apps/dashmint-lab/**' + - '.github/workflows/dashmint-lab-ci.yml' + pull_request: + branches: [main] + paths: + - 'example-apps/dashmint-lab/**' + - '.github/workflows/dashmint-lab-ci.yml' + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: dashmint-lab-ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + check: + name: test + build + runs-on: ubuntu-latest + timeout-minutes: 15 + defaults: + run: + working-directory: example-apps/dashmint-lab + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version-file: .nvmrc + cache: npm + cache-dependency-path: example-apps/dashmint-lab/package-lock.json + + - name: Show Node/npm versions + run: | + node -v + npm -v + + - name: Install + run: npm ci + + - name: Test + run: npm test + + # tsc -b runs as part of build, so this covers the typecheck too. + - name: Build + run: npm run build diff --git a/.github/workflows/dashnote-ci.yml b/.github/workflows/dashnote-ci.yml new file mode 100644 index 0000000..f1f24d7 --- /dev/null +++ b/.github/workflows/dashnote-ci.yml @@ -0,0 +1,57 @@ +name: Dashnote CI + +# Unit tests and typechecked build. Playwright coverage lives in +# dashnote-e2e.yml, which serves the app via the dev server and so +# never runs tsc or the vitest suite. + +on: + push: + branches: [main] + paths: + - 'example-apps/dashnote/**' + - '.github/workflows/dashnote-ci.yml' + pull_request: + branches: [main] + paths: + - 'example-apps/dashnote/**' + - '.github/workflows/dashnote-ci.yml' + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: dashnote-ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + check: + name: test + build + runs-on: ubuntu-latest + timeout-minutes: 15 + defaults: + run: + working-directory: example-apps/dashnote + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version-file: .nvmrc + cache: npm + cache-dependency-path: example-apps/dashnote/package-lock.json + + - name: Show Node/npm versions + run: | + node -v + npm -v + + - name: Install + run: npm ci + + - name: Test + run: npm test + + # tsc -b runs as part of build, so this covers the typecheck too. + - name: Build + run: npm run build diff --git a/.github/workflows/dashproof-lab-ci.yml b/.github/workflows/dashproof-lab-ci.yml new file mode 100644 index 0000000..4dcbf3c --- /dev/null +++ b/.github/workflows/dashproof-lab-ci.yml @@ -0,0 +1,53 @@ +name: DashProof Lab CI + +on: + push: + branches: [main] + paths: + - 'example-apps/dashproof-lab/**' + - '.github/workflows/dashproof-lab-ci.yml' + pull_request: + branches: [main] + paths: + - 'example-apps/dashproof-lab/**' + - '.github/workflows/dashproof-lab-ci.yml' + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: dashproof-lab-ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + check: + name: test + build + runs-on: ubuntu-latest + timeout-minutes: 15 + defaults: + run: + working-directory: example-apps/dashproof-lab + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version-file: .nvmrc + cache: npm + cache-dependency-path: example-apps/dashproof-lab/package-lock.json + + - name: Show Node/npm versions + run: | + node -v + npm -v + + - name: Install + run: npm ci + + - name: Test + run: npm test + + # tsc -b runs as part of build, so this covers the typecheck too. + - name: Build + run: npm run build From 2755cd8817d8a7754a86a22558b3f17229a599e3 Mon Sep 17 00:00:00 2001 From: thephez Date: Mon, 12 Oct 2026 17:41:48 -0400 Subject: [PATCH 06/12] chore: update @dashevo/evo-sdk to 5.0.0-beta.5 Bumps the SDK dependency in the root package and every example app, including the pinned esm.sh version in each `*-lite.html` page. --- example-apps/dashmint-lab/package-lock.json | 16 +++++----- example-apps/dashmint-lab/package.json | 2 +- .../dashmint-lab/public/dashmint-lite.html | 2 +- .../dashnote-starter/package-lock.json | 16 +++++----- example-apps/dashnote-starter/package.json | 2 +- example-apps/dashnote/package-lock.json | 16 +++++----- example-apps/dashnote/package.json | 2 +- .../dashnote/public/dashnote-lite.html | 2 +- example-apps/dashproof-lab/package-lock.json | 16 +++++----- example-apps/dashproof-lab/package.json | 2 +- .../dashproof-lab/public/dashproof-lite.html | 2 +- example-apps/dashrate/package-lock.json | 16 +++++----- example-apps/dashrate/package.json | 2 +- .../dashrate/public/dashrate-lite.html | 2 +- example-apps/token-ops/package-lock.json | 16 +++++----- example-apps/token-ops/package.json | 2 +- package-lock.json | 30 +++++++++---------- package.json | 2 +- 18 files changed, 74 insertions(+), 74 deletions(-) diff --git a/example-apps/dashmint-lab/package-lock.json b/example-apps/dashmint-lab/package-lock.json index 0bb8edb..2fabe69 100644 --- a/example-apps/dashmint-lab/package-lock.json +++ b/example-apps/dashmint-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashmint-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashmint-lab/package.json b/example-apps/dashmint-lab/package.json index 3261c43..36b43f2 100644 --- a/example-apps/dashmint-lab/package.json +++ b/example-apps/dashmint-lab/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashmint-lab/public/dashmint-lite.html b/example-apps/dashmint-lab/public/dashmint-lite.html index c612049..6fe1bca 100644 --- a/example-apps/dashmint-lab/public/dashmint-lite.html +++ b/example-apps/dashmint-lab/public/dashmint-lite.html @@ -119,7 +119,7 @@

Browse cards

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; // The token-enabled "card" data contract is already published on testnet by // the React app. Anyone querying with the same contract id hits the same diff --git a/example-apps/dashnote-starter/package-lock.json b/example-apps/dashnote-starter/package-lock.json index 37ce055..0ee9d76 100644 --- a/example-apps/dashnote-starter/package-lock.json +++ b/example-apps/dashnote-starter/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote-starter", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -272,20 +272,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote-starter/package.json b/example-apps/dashnote-starter/package.json index 8316c47..0e00eb4 100644 --- a/example-apps/dashnote-starter/package.json +++ b/example-apps/dashnote-starter/package.json @@ -17,7 +17,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashnote/package-lock.json b/example-apps/dashnote/package-lock.json index 49dd0d4..818f655 100644 --- a/example-apps/dashnote/package-lock.json +++ b/example-apps/dashnote/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote/package.json b/example-apps/dashnote/package.json index 51a4fd9..a3b54d8 100644 --- a/example-apps/dashnote/package.json +++ b/example-apps/dashnote/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashnote/public/dashnote-lite.html b/example-apps/dashnote/public/dashnote-lite.html index 8947905..c972694 100644 --- a/example-apps/dashnote/public/dashnote-lite.html +++ b/example-apps/dashnote/public/dashnote-lite.html @@ -129,7 +129,7 @@

Get note by ID

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; // The "note" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashproof-lab/package-lock.json b/example-apps/dashproof-lab/package-lock.json index ee69bf5..ba94bbb 100644 --- a/example-apps/dashproof-lab/package-lock.json +++ b/example-apps/dashproof-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashproof-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashproof-lab/package.json b/example-apps/dashproof-lab/package.json index 818345a..8f766fa 100644 --- a/example-apps/dashproof-lab/package.json +++ b/example-apps/dashproof-lab/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashproof-lab/public/dashproof-lite.html b/example-apps/dashproof-lab/public/dashproof-lite.html index 92a1ebd..ceff74e 100644 --- a/example-apps/dashproof-lab/public/dashproof-lite.html +++ b/example-apps/dashproof-lab/public/dashproof-lite.html @@ -120,7 +120,7 @@

History by chainId

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; // The "anchor" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashrate/package-lock.json b/example-apps/dashrate/package-lock.json index 74aea64..ee474fc 100644 --- a/example-apps/dashrate/package-lock.json +++ b/example-apps/dashrate/package-lock.json @@ -8,7 +8,7 @@ "name": "dashrate", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -433,20 +433,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashrate/package.json b/example-apps/dashrate/package.json index f75fbee..9d2e1d3 100644 --- a/example-apps/dashrate/package.json +++ b/example-apps/dashrate/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashrate/public/dashrate-lite.html b/example-apps/dashrate/public/dashrate-lite.html index 42ff815..cb0bc59 100644 --- a/example-apps/dashrate/public/dashrate-lite.html +++ b/example-apps/dashrate/public/dashrate-lite.html @@ -138,7 +138,7 @@

Recent reviews

// The rest of the file (DOM wiring, render helpers) is plumbing. // ============================================================================ - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@4.2.0-dev.11'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; const CONTRACT_ID = 'BdgTqaTAPYMyhp1WdeWdcvYSgoD7AuJ7tVCaCSXyQgyP'; const DOC_TYPE = 'review'; diff --git a/example-apps/token-ops/package-lock.json b/example-apps/token-ops/package-lock.json index 24f98bf..3815a88 100644 --- a/example-apps/token-ops/package-lock.json +++ b/example-apps/token-ops/package-lock.json @@ -8,7 +8,7 @@ "name": "token-ops", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" @@ -435,20 +435,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } diff --git a/example-apps/token-ops/package.json b/example-apps/token-ops/package.json index e2c482f..c78bc38 100644 --- a/example-apps/token-ops/package.json +++ b/example-apps/token-ops/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "4.2.0-dev.11", + "@dashevo/evo-sdk": "5.0.0-beta.5", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" diff --git a/package-lock.json b/package-lock.json index aeaa404..d9ed6f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "4.1.1", "license": "MIT", "dependencies": { - "@dashevo/evo-sdk": "^4.2.0-dev.11", + "@dashevo/evo-sdk": "^5.0.0-beta.5", "dotenv": "17.3.1" }, "devDependencies": { @@ -35,20 +35,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "dependencies": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", "engines": { "node": ">=18.18" } @@ -1941,17 +1941,17 @@ "dev": true }, "@dashevo/evo-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-4AeNUQgSx160OYb3cERHFwzmWXN6mTGBuUuVe9FckwtTl85/JL+YOuz01rOrh9jIkYKp+RcoDYoyXEMC3fGs6A==", + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", "requires": { - "@dashevo/wasm-sdk": "4.2.0-dev.11" + "@dashevo/wasm-sdk": "5.0.0-beta.5" } }, "@dashevo/wasm-sdk": { - "version": "4.2.0-dev.11", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-4.2.0-dev.11.tgz", - "integrity": "sha512-bqTA6ZX2tffUpJdePS1quQVJ/2WkMVXmyxynYUFqL2UOJ1MCgqQGcxZmAFN7LbhWv6EHsUYdfU5c25JRAAEm/Q==" + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", + "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==" }, "@eslint-community/eslint-utils": { "version": "4.4.0", diff --git a/package.json b/package.json index 789ab0b..fe14a4f 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "homepage": "https://github.com/dashpay/platform-tutorials#readme", "dependencies": { - "@dashevo/evo-sdk": "^4.2.0-dev.11", + "@dashevo/evo-sdk": "^5.0.0-beta.5", "dotenv": "17.3.1" }, "devDependencies": { From 8282155d56d3f9cbd6e7fed183c12af4e58029ff Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 13 Oct 2026 09:28:13 -0400 Subject: [PATCH 07/12] chore: add --e2e and --all modes to run-tests.sh By default the script now runs every non-write suite: root `test` plus `test:setup`, then each app's `test`. `--e2e` adds each app's Playwright `test:e2e` suite, and `--all` swaps the root `test` for `test:all` to include the read-write tests as well. Unknown options exit with status 2. Each suite prints a header before running, and failures are reported per script (e.g. `root:test:setup`, `example-apps/dashnote/:test:e2e`) one per line. The header comment warns that `--all` and `--e2e` write to testnet and spend credits. --- scripts/run-tests.sh | 51 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 651c536..3ae9973 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -1,20 +1,55 @@ #!/usr/bin/env bash # -# Run the root test suite, then every example app that defines a "test" script. -# Keeps going after a failure and reports which suites failed; exits 1 if any did. +# Run the repo's test suites: the root suites, then every example app that +# defines the scripts being run. Keeps going after a failure and reports which +# suites failed; exits 1 if any did. +# +# By default runs all non-write tests: the root read-only/version/lite suites, +# the root setupDashClient suite, and each app's unit tests. +# +# --e2e also run each app's Playwright e2e suite (does not install browsers) +# --all everything, including the root read-write tests and e2e +# +# Note: --all and --e2e write to testnet. They spend credits and register new +# on-chain state (identities, contracts, documents, tokens, names) that cannot +# be reclaimed; some app e2e specs perform writes too. cd "$(dirname "$0")/.." +root_scripts=(test test:setup) +app_scripts=(test) + +for arg in "$@"; do + case "$arg" in + --e2e) + app_scripts=(test test:e2e) + ;; + --all) + root_scripts=(test:all test:setup) + app_scripts=(test test:e2e) + ;; + *) + echo "unknown option: $arg" >&2 + exit 2 + ;; + esac +done + failed=() -npm run test || failed+=(root) + +for script in "${root_scripts[@]}"; do + echo "=== root $script" + npm run "$script" || failed+=("root:$script") +done for app in example-apps/*/; do [ -f "$app/package.json" ] || continue - if jq -e '.scripts.test' "$app/package.json" >/dev/null; then - echo "=== $app" - (cd "$app" && npm run test) || failed+=("$app") - fi + for script in "${app_scripts[@]}"; do + jq -e --arg s "$script" '.scripts[$s]' "$app/package.json" >/dev/null || continue + echo "=== $app $script" + (cd "$app" && npm run "$script") || failed+=("$app:$script") + done done -[ ${#failed[@]} -eq 0 ] || echo "Failed: ${failed[*]}" +[ ${#failed[@]} -eq 0 ] || printf 'Failed:\n %s\n' "${failed[@]}" exit $(( ${#failed[@]} > 0 )) From 58494e2db3c173083380eac6206b2818dd74f371 Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 13 Oct 2026 09:45:25 -0400 Subject: [PATCH 08/12] fix(scripts): stop run-tests.sh silently skipping suites on jq errors The app loop treated any non-zero jq exit as "script not defined", so a missing `jq` binary or a malformed `package.json` skipped every app suite and the run still exited 0. Require `jq` up front, and skip a script only when `jq -e` exits 1 (key absent or null). Any other exit records `:package.json` as a failure and moves on to the next app. Co-Authored-By: Claude Opus 5.5 --- scripts/run-tests.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 3ae9973..242e358 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -35,6 +35,8 @@ for arg in "$@"; do esac done +command -v jq >/dev/null || { echo "jq is required" >&2; exit 2; } + failed=() for script in "${root_scripts[@]}"; do @@ -45,7 +47,13 @@ done for app in example-apps/*/; do [ -f "$app/package.json" ] || continue for script in "${app_scripts[@]}"; do - jq -e --arg s "$script" '.scripts[$s]' "$app/package.json" >/dev/null || continue + # jq -e exits 1 when the script is absent; anything else is a real error. + jq -e --arg s "$script" '.scripts[$s]' "$app/package.json" >/dev/null + case $? in + 0) ;; + 1) continue ;; + *) failed+=("$app:package.json"); break ;; + esac echo "=== $app $script" (cd "$app" && npm run "$script") || failed+=("$app:$script") done From 7f4494781b8c299b6554421df932aa9d7ba39eb0 Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 21 Oct 2026 18:00:17 +0000 Subject: [PATCH 09/12] chore: update @dashevo/evo-sdk to 5.0.0-rc.6 Bumps the SDK dependency in the root package and every example app, including the pinned esm.sh version in each `*-lite.html` page. Raise the credit withdrawal amount to 1190000 to meet the protocol minimum, which now adds the asset-unlock Core fee to the 1M credit floor. Co-Authored-By: Claude Opus 5.5 --- .../identity-withdraw-credits.mjs | 2 +- example-apps/dashmint-lab/package-lock.json | 16 +++++----- example-apps/dashmint-lab/package.json | 2 +- .../dashmint-lab/public/dashmint-lite.html | 2 +- .../dashnote-starter/package-lock.json | 16 +++++----- example-apps/dashnote-starter/package.json | 2 +- example-apps/dashnote/package-lock.json | 16 +++++----- example-apps/dashnote/package.json | 2 +- .../dashnote/public/dashnote-lite.html | 2 +- example-apps/dashproof-lab/package-lock.json | 16 +++++----- example-apps/dashproof-lab/package.json | 2 +- .../dashproof-lab/public/dashproof-lite.html | 2 +- example-apps/dashrate/package-lock.json | 16 +++++----- example-apps/dashrate/package.json | 2 +- .../dashrate/public/dashrate-lite.html | 2 +- example-apps/token-ops/package-lock.json | 16 +++++----- example-apps/token-ops/package.json | 2 +- package-lock.json | 30 +++++++++---------- package.json | 2 +- 19 files changed, 75 insertions(+), 75 deletions(-) diff --git a/1-Identities-and-Names/identity-withdraw-credits.mjs b/1-Identities-and-Names/identity-withdraw-credits.mjs index c2c0ffa..dc6ceb8 100644 --- a/1-Identities-and-Names/identity-withdraw-credits.mjs +++ b/1-Identities-and-Names/identity-withdraw-credits.mjs @@ -9,7 +9,7 @@ console.log('Identity balance before withdrawal:', identity.balance); // Default: testnet faucet address. Replace or override via WITHDRAWAL_ADDRESS. const toAddress = process.env.WITHDRAWAL_ADDRESS || 'yXWJGWuD4VBRMp9n2MtXQbGpgSeWyTRHme'; -const amount = 1000000n; // Credits to withdraw (protocol minimum) +const amount = 1190000n; // Credits to withdraw (protocol minimum) const amountDash = Number(amount) / (1000 * 100000000); console.log(`Withdrawing ${amount} credits (${amountDash} DASH)`); diff --git a/example-apps/dashmint-lab/package-lock.json b/example-apps/dashmint-lab/package-lock.json index 2fabe69..99ba4db 100644 --- a/example-apps/dashmint-lab/package-lock.json +++ b/example-apps/dashmint-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashmint-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashmint-lab/package.json b/example-apps/dashmint-lab/package.json index 36b43f2..3a546d2 100644 --- a/example-apps/dashmint-lab/package.json +++ b/example-apps/dashmint-lab/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashmint-lab/public/dashmint-lite.html b/example-apps/dashmint-lab/public/dashmint-lite.html index 6fe1bca..183a35d 100644 --- a/example-apps/dashmint-lab/public/dashmint-lite.html +++ b/example-apps/dashmint-lab/public/dashmint-lite.html @@ -119,7 +119,7 @@

Browse cards

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; // The token-enabled "card" data contract is already published on testnet by // the React app. Anyone querying with the same contract id hits the same diff --git a/example-apps/dashnote-starter/package-lock.json b/example-apps/dashnote-starter/package-lock.json index 0ee9d76..cc57984 100644 --- a/example-apps/dashnote-starter/package-lock.json +++ b/example-apps/dashnote-starter/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote-starter", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -272,20 +272,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote-starter/package.json b/example-apps/dashnote-starter/package.json index 0e00eb4..b1f3a11 100644 --- a/example-apps/dashnote-starter/package.json +++ b/example-apps/dashnote-starter/package.json @@ -17,7 +17,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashnote/package-lock.json b/example-apps/dashnote/package-lock.json index 818f655..ce46e24 100644 --- a/example-apps/dashnote/package-lock.json +++ b/example-apps/dashnote/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote/package.json b/example-apps/dashnote/package.json index a3b54d8..a75141d 100644 --- a/example-apps/dashnote/package.json +++ b/example-apps/dashnote/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashnote/public/dashnote-lite.html b/example-apps/dashnote/public/dashnote-lite.html index c972694..c9987a5 100644 --- a/example-apps/dashnote/public/dashnote-lite.html +++ b/example-apps/dashnote/public/dashnote-lite.html @@ -129,7 +129,7 @@

Get note by ID

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; // The "note" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashproof-lab/package-lock.json b/example-apps/dashproof-lab/package-lock.json index ba94bbb..8b0a9af 100644 --- a/example-apps/dashproof-lab/package-lock.json +++ b/example-apps/dashproof-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashproof-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashproof-lab/package.json b/example-apps/dashproof-lab/package.json index 8f766fa..a83516d 100644 --- a/example-apps/dashproof-lab/package.json +++ b/example-apps/dashproof-lab/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashproof-lab/public/dashproof-lite.html b/example-apps/dashproof-lab/public/dashproof-lite.html index ceff74e..227a95f 100644 --- a/example-apps/dashproof-lab/public/dashproof-lite.html +++ b/example-apps/dashproof-lab/public/dashproof-lite.html @@ -120,7 +120,7 @@

History by chainId

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; // The "anchor" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashrate/package-lock.json b/example-apps/dashrate/package-lock.json index ee474fc..344cb02 100644 --- a/example-apps/dashrate/package-lock.json +++ b/example-apps/dashrate/package-lock.json @@ -8,7 +8,7 @@ "name": "dashrate", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -433,20 +433,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashrate/package.json b/example-apps/dashrate/package.json index 9d2e1d3..d5030b6 100644 --- a/example-apps/dashrate/package.json +++ b/example-apps/dashrate/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashrate/public/dashrate-lite.html b/example-apps/dashrate/public/dashrate-lite.html index cb0bc59..2f58728 100644 --- a/example-apps/dashrate/public/dashrate-lite.html +++ b/example-apps/dashrate/public/dashrate-lite.html @@ -138,7 +138,7 @@

Recent reviews

// The rest of the file (DOM wiring, render helpers) is plumbing. // ============================================================================ - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-beta.5'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; const CONTRACT_ID = 'BdgTqaTAPYMyhp1WdeWdcvYSgoD7AuJ7tVCaCSXyQgyP'; const DOC_TYPE = 'review'; diff --git a/example-apps/token-ops/package-lock.json b/example-apps/token-ops/package-lock.json index 3815a88..7e5e232 100644 --- a/example-apps/token-ops/package-lock.json +++ b/example-apps/token-ops/package-lock.json @@ -8,7 +8,7 @@ "name": "token-ops", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" @@ -435,20 +435,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/token-ops/package.json b/example-apps/token-ops/package.json index c78bc38..25574e2 100644 --- a/example-apps/token-ops/package.json +++ b/example-apps/token-ops/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-beta.5", + "@dashevo/evo-sdk": "5.0.0-rc.6", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" diff --git a/package-lock.json b/package-lock.json index d9ed6f7..f180445 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "4.1.1", "license": "MIT", "dependencies": { - "@dashevo/evo-sdk": "^5.0.0-beta.5", + "@dashevo/evo-sdk": "^5.0.0-rc.6", "dotenv": "17.3.1" }, "devDependencies": { @@ -35,20 +35,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", "engines": { "node": ">=18.18" } @@ -1941,17 +1941,17 @@ "dev": true }, "@dashevo/evo-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-TzVZkbDYQVYdBwTkwmI207kWyitjYqKhH0ZhuK5Holobn2G6AW/53WvBtAolX/pXVCCZl8ujaxrLTun5aPFeUw==", + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", "requires": { - "@dashevo/wasm-sdk": "5.0.0-beta.5" + "@dashevo/wasm-sdk": "5.0.0-rc.6" } }, "@dashevo/wasm-sdk": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-beta.5.tgz", - "integrity": "sha512-g0FvUiD7ZTMXvUAD8S5HqFxUlB51eezK+AeT6t12WYAuquwZcdUQt2Lawq9ZOq2hS/NSfOuwohe5rsTQxA03Ug==" + "version": "5.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", + "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==" }, "@eslint-community/eslint-utils": { "version": "4.4.0", diff --git a/package.json b/package.json index fe14a4f..407871a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "homepage": "https://github.com/dashpay/platform-tutorials#readme", "dependencies": { - "@dashevo/evo-sdk": "^5.0.0-beta.5", + "@dashevo/evo-sdk": "^5.0.0-rc.6", "dotenv": "17.3.1" }, "devDependencies": { From 0c4caeee3ba433a6948b85e904d46860d7f38d9b Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 21 Oct 2026 16:24:09 -0400 Subject: [PATCH 10/12] fix(scripts): fail run-tests.sh on invalid app script entries Previously `jq -e` exited 1 for both a missing script key and one set to null or false, so invalid entries were silently skipped. Non-string values passed the check and went straight to `npm run`. Now an absent script is still skipped, a present but non-string or blank one is recorded as a failure, and a jq error still marks the app's package.json as broken. Co-Authored-By: Claude Opus 5.5 --- scripts/run-tests.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 242e358..6280ed6 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -47,11 +47,17 @@ done for app in example-apps/*/; do [ -f "$app/package.json" ] || continue for script in "${app_scripts[@]}"; do - # jq -e exits 1 when the script is absent; anything else is a real error. - jq -e --arg s "$script" '.scripts[$s]' "$app/package.json" >/dev/null - case $? in - 0) ;; - 1) continue ;; + # An absent script is skipped; a present but non-string/blank one is a + # failure; a jq error means package.json itself is broken. + status=$(jq -r --arg s "$script" ' + (.scripts // {}) as $all + | if ($all | has($s) | not) then "absent" + elif ($all[$s] | type) == "string" and ($all[$s] | test("\\S")) then "valid" + else "invalid" end' "$app/package.json") || status=error + case $status in + valid) ;; + absent) continue ;; + invalid) failed+=("$app:$script (invalid script)"); continue ;; *) failed+=("$app:package.json"); break ;; esac echo "=== $app $script" From 80d0dbb0dac035f45a1659506841618a09999c6f Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 27 Oct 2026 10:23:05 -0400 Subject: [PATCH 11/12] chore: update @dashevo/evo-sdk to 5.0.0 Co-Authored-By: Claude Opus 5.5 --- example-apps/dashmint-lab/package-lock.json | 16 +++++----- example-apps/dashmint-lab/package.json | 2 +- .../dashmint-lab/public/dashmint-lite.html | 2 +- .../dashnote-starter/package-lock.json | 16 +++++----- example-apps/dashnote-starter/package.json | 2 +- example-apps/dashnote/package-lock.json | 16 +++++----- example-apps/dashnote/package.json | 2 +- .../dashnote/public/dashnote-lite.html | 2 +- example-apps/dashproof-lab/package-lock.json | 16 +++++----- example-apps/dashproof-lab/package.json | 2 +- .../dashproof-lab/public/dashproof-lite.html | 2 +- example-apps/dashrate/package-lock.json | 16 +++++----- example-apps/dashrate/package.json | 2 +- .../dashrate/public/dashrate-lite.html | 2 +- example-apps/token-ops/package-lock.json | 16 +++++----- example-apps/token-ops/package.json | 2 +- package-lock.json | 30 +++++++++---------- package.json | 2 +- 18 files changed, 74 insertions(+), 74 deletions(-) diff --git a/example-apps/dashmint-lab/package-lock.json b/example-apps/dashmint-lab/package-lock.json index 99ba4db..94d0ee5 100644 --- a/example-apps/dashmint-lab/package-lock.json +++ b/example-apps/dashmint-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashmint-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashmint-lab/package.json b/example-apps/dashmint-lab/package.json index 3a546d2..d8466ae 100644 --- a/example-apps/dashmint-lab/package.json +++ b/example-apps/dashmint-lab/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashmint-lab/public/dashmint-lite.html b/example-apps/dashmint-lab/public/dashmint-lite.html index 183a35d..16df1f9 100644 --- a/example-apps/dashmint-lab/public/dashmint-lite.html +++ b/example-apps/dashmint-lab/public/dashmint-lite.html @@ -119,7 +119,7 @@

Browse cards

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0'; // The token-enabled "card" data contract is already published on testnet by // the React app. Anyone querying with the same contract id hits the same diff --git a/example-apps/dashnote-starter/package-lock.json b/example-apps/dashnote-starter/package-lock.json index cc57984..8d2bb63 100644 --- a/example-apps/dashnote-starter/package-lock.json +++ b/example-apps/dashnote-starter/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote-starter", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -272,20 +272,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote-starter/package.json b/example-apps/dashnote-starter/package.json index b1f3a11..a507f89 100644 --- a/example-apps/dashnote-starter/package.json +++ b/example-apps/dashnote-starter/package.json @@ -17,7 +17,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashnote/package-lock.json b/example-apps/dashnote/package-lock.json index ce46e24..fbccf3a 100644 --- a/example-apps/dashnote/package-lock.json +++ b/example-apps/dashnote/package-lock.json @@ -8,7 +8,7 @@ "name": "dashnote", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashnote/package.json b/example-apps/dashnote/package.json index a75141d..b262656 100644 --- a/example-apps/dashnote/package.json +++ b/example-apps/dashnote/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashnote/public/dashnote-lite.html b/example-apps/dashnote/public/dashnote-lite.html index c9987a5..7233197 100644 --- a/example-apps/dashnote/public/dashnote-lite.html +++ b/example-apps/dashnote/public/dashnote-lite.html @@ -129,7 +129,7 @@

Get note by ID

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0'; // The "note" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashproof-lab/package-lock.json b/example-apps/dashproof-lab/package-lock.json index 8b0a9af..efae934 100644 --- a/example-apps/dashproof-lab/package-lock.json +++ b/example-apps/dashproof-lab/package-lock.json @@ -8,7 +8,7 @@ "name": "dashproof-lab", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", @@ -437,20 +437,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashproof-lab/package.json b/example-apps/dashproof-lab/package.json index a83516d..dc44233 100644 --- a/example-apps/dashproof-lab/package.json +++ b/example-apps/dashproof-lab/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "@tailwindcss/vite": "^4.2.2", "react": "^19.2.4", "react-dom": "^19.2.4", diff --git a/example-apps/dashproof-lab/public/dashproof-lite.html b/example-apps/dashproof-lab/public/dashproof-lite.html index 227a95f..1a3a6ef 100644 --- a/example-apps/dashproof-lab/public/dashproof-lite.html +++ b/example-apps/dashproof-lab/public/dashproof-lite.html @@ -120,7 +120,7 @@

History by chainId

// package and serves it as a browser-native ES module. Pinned to the same // version the React app at ../package.json depends on so both UIs behave // identically against the same testnet contract. - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0'; // The "anchor" data contract is already published on testnet by the React app. // Anyone querying with the same contract id hits the same documents. diff --git a/example-apps/dashrate/package-lock.json b/example-apps/dashrate/package-lock.json index 344cb02..a7dde3e 100644 --- a/example-apps/dashrate/package-lock.json +++ b/example-apps/dashrate/package-lock.json @@ -8,7 +8,7 @@ "name": "dashrate", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -433,20 +433,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/dashrate/package.json b/example-apps/dashrate/package.json index d5030b6..a4a8cac 100644 --- a/example-apps/dashrate/package.json +++ b/example-apps/dashrate/package.json @@ -21,7 +21,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/example-apps/dashrate/public/dashrate-lite.html b/example-apps/dashrate/public/dashrate-lite.html index 2f58728..6f213f5 100644 --- a/example-apps/dashrate/public/dashrate-lite.html +++ b/example-apps/dashrate/public/dashrate-lite.html @@ -138,7 +138,7 @@

Recent reviews

// The rest of the file (DOM wiring, render helpers) is plumbing. // ============================================================================ - import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0-rc.6'; + import { EvoSDK } from 'https://esm.sh/@dashevo/evo-sdk@5.0.0'; const CONTRACT_ID = 'BdgTqaTAPYMyhp1WdeWdcvYSgoD7AuJ7tVCaCSXyQgyP'; const DOC_TYPE = 'review'; diff --git a/example-apps/token-ops/package-lock.json b/example-apps/token-ops/package-lock.json index 7e5e232..6ef91fe 100644 --- a/example-apps/token-ops/package-lock.json +++ b/example-apps/token-ops/package-lock.json @@ -8,7 +8,7 @@ "name": "token-ops", "version": "0.0.0", "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" @@ -435,20 +435,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } diff --git a/example-apps/token-ops/package.json b/example-apps/token-ops/package.json index 25574e2..eb79e52 100644 --- a/example-apps/token-ops/package.json +++ b/example-apps/token-ops/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@dashevo/evo-sdk": "5.0.0-rc.6", + "@dashevo/evo-sdk": "5.0.0", "react": "^19.2.4", "react-dom": "^19.2.4", "sonner": "^2.0.7" diff --git a/package-lock.json b/package-lock.json index f180445..6209afc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "4.1.1", "license": "MIT", "dependencies": { - "@dashevo/evo-sdk": "^5.0.0-rc.6", + "@dashevo/evo-sdk": "^5.0.0", "dotenv": "17.3.1" }, "devDependencies": { @@ -35,20 +35,20 @@ } }, "node_modules/@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "dependencies": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" }, "engines": { "node": ">=18.18" } }, "node_modules/@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==", "engines": { "node": ">=18.18" } @@ -1941,17 +1941,17 @@ "dev": true }, "@dashevo/evo-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-H1xct5y54HJ89paqRIgU2K8hQwXaLbsSY9gE3dngwK6aGRcuUS35olgL/7COjrlsj9DyN8B0tiH3Xm1s0RLfcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/evo-sdk/-/evo-sdk-5.0.0.tgz", + "integrity": "sha512-xmNl2GM2GMZuo/B9Qa1O+Yi4rMXyd3ROtgRhyjjRT/dMtut9zV9ytpR6ppJcPnVjjxK1cLQItSQGkuAIga59rg==", "requires": { - "@dashevo/wasm-sdk": "5.0.0-rc.6" + "@dashevo/wasm-sdk": "5.0.0" } }, "@dashevo/wasm-sdk": { - "version": "5.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0-rc.6.tgz", - "integrity": "sha512-/S6LO/s7y5O5C40eTEaAvvDblNFVM5GMygQJJzb8QblVe/ibA9o+TxdaKjbYJMboXBO7O5XjOw9xJfiMe01nsg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dashevo/wasm-sdk/-/wasm-sdk-5.0.0.tgz", + "integrity": "sha512-omG45KRYo2TlJdDq/FrooGDwAOZ9kPo4j54P0qUHELfvGG0bpl49vODEY6fa749pzKRJnfsn2zoIV7WW+Lysjg==" }, "@eslint-community/eslint-utils": { "version": "4.4.0", diff --git a/package.json b/package.json index 407871a..b7a4d50 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "homepage": "https://github.com/dashpay/platform-tutorials#readme", "dependencies": { - "@dashevo/evo-sdk": "^5.0.0-rc.6", + "@dashevo/evo-sdk": "^5.0.0", "dotenv": "17.3.1" }, "devDependencies": { From abd822fc3ff15fc41953cde0855bf140178d6355 Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 27 Oct 2026 10:23:06 -0400 Subject: [PATCH 12/12] docs: note bump-sdk.sh and run-tests.sh in CLAUDE.md Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 74c5249..4ac7849 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,6 +27,10 @@ npm run test:setup # Mocha tests for setupDashClient configuration npm run lint # TypeScript type-check all JS files (tsc) npm run fmt # Format with Prettier + +bash scripts/run-tests.sh # Root suites + every example app's unit tests (no testnet writes) +bash scripts/run-tests.sh --e2e # ...plus each app's Playwright e2e (some specs write to testnet) +bash scripts/run-tests.sh --all # Everything, including root read-write (spends testnet credits) ``` ## Node / npm Toolchain @@ -40,6 +44,8 @@ npm ci The root package and each standalone example app declare `engines.node` for the tested Node minor version. The example apps have their own `package-lock.json` files, and npm's optional native/WASM dependency resolution can differ across Node/npm versions. For contributor work, prefer `npm ci` under `nvm use`; do not commit lockfile rewrites from another Node/npm version. +**Bumping `@dashevo/evo-sdk`:** use `bash scripts/bump-sdk.sh ` (under `nvm use`) — it updates every `package.json`, lockfile, and `*-lite.html` import. Then validate with `run-tests.sh`. Read-write and e2e tests write to testnet — only run them with user approval. + **Running a single tutorial directly:** ```bash