From 54eb79a6df5822c017914fdbe55e940257f1fea3 Mon Sep 17 00:00:00 2001 From: ktechmidas Date: Sun, 25 Jan 2026 19:45:52 +0000 Subject: [PATCH 1/6] Letsencrypt renewal and dashmate doctor fixes --- .../doctor/analyse/analyseConfigFactory.js | 52 +++++++++++++++---- .../tasks/doctor/collectSamplesTaskFactory.js | 24 +++++++++ ...obtainLetsEncryptCertificateTaskFactory.js | 40 ++++++++++++-- 3 files changed, 101 insertions(+), 15 deletions(-) diff --git a/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js b/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js index 92458dd62fb..2efa043bf63 100644 --- a/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js +++ b/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js @@ -1,6 +1,7 @@ import chalk from 'chalk'; import { NETWORK_LOCAL, NETWORK_MAINNET } from '../../constants.js'; -import { ERRORS } from '../../ssl/zerossl/validateZeroSslCertificateFactory.js'; +import { ERRORS as LETSENCRYPT_ERRORS } from '../../ssl/letsencrypt/validateLetsEncryptCertificateFactory.js'; +import { ERRORS as ZEROSSL_ERRORS } from '../../ssl/zerossl/validateZeroSslCertificateFactory.js'; import { SEVERITY } from '../Prescription.js'; import Problem from '../Problem.js'; @@ -82,51 +83,80 @@ Private key file path: {bold.cyanBright ${ssl?.data?.privateFilePath}} Or use ZeroSSL https://docs.dash.org/en/stable/masternodes/dashmate.html#ssl-certificate`, }, // ZeroSSL validation errors - [ERRORS.API_KEY_IS_NOT_SET]: { + [ZEROSSL_ERRORS.API_KEY_IS_NOT_SET]: { description: 'ZeroSSL API key is not set.', solution: chalk`Please obtain your API key from {underline.cyanBright https://app.zerossl.com/developer} And then update your configuration with {block.cyanBright dashmate config set platform.gateway.ssl.providerConfigs.zerossl.apiKey [KEY]}`, }, - [ERRORS.EXTERNAL_IP_IS_NOT_SET]: { + [ZEROSSL_ERRORS.EXTERNAL_IP_IS_NOT_SET]: { description: 'External IP is not set.', solution: chalk`Please update your configuration to include your external IP using {block.cyanBright dashmate config set externalIp [IP]}`, }, - [ERRORS.CERTIFICATE_ID_IS_NOT_SET]: { + [ZEROSSL_ERRORS.CERTIFICATE_ID_IS_NOT_SET]: { description: 'ZeroSSL certificate is not configured', solution: chalk`Please run {bold.cyanBright dashmate ssl obtain} to get a new certificate`, }, - [ERRORS.PRIVATE_KEY_IS_NOT_PRESENT]: { + [ZEROSSL_ERRORS.PRIVATE_KEY_IS_NOT_PRESENT]: { description: chalk`ZeroSSL private key file not found in ${ssl?.data?.privateKeyFilePath}.`, solution: chalk`Please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --force} and revoke the previous certificate in the ZeroSSL dashboard`, }, - [ERRORS.EXTERNAL_IP_MISMATCH]: { + [ZEROSSL_ERRORS.EXTERNAL_IP_MISMATCH]: { description: chalk`ZeroSSL IP ${ssl?.data?.certificate.common_name} does not match external IP ${ssl?.data?.externalIp}.`, solution: chalk`Please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --force} and revoke the previous certificate in the ZeroSSL dashboard`, }, - [ERRORS.CSR_FILE_IS_NOT_PRESENT]: { + [ZEROSSL_ERRORS.CSR_FILE_IS_NOT_PRESENT]: { description: chalk`ZeroSSL certificate request file not found in ${ssl?.data?.csrFilePath}. This makes auto-renewal impossible.`, solution: chalk`If you need auto renew, please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --force} and revoke the previous certificate in the ZeroSSL dashboard`, }, - [ERRORS.CERTIFICATE_EXPIRES_SOON]: { + [ZEROSSL_ERRORS.CERTIFICATE_EXPIRES_SOON]: { description: chalk`ZeroSSL certificate expires at ${ssl?.data?.certificate.expires}.`, solution: chalk`Please run {bold.cyanBright dashmate ssl obtain} to get a new one`, }, - [ERRORS.CERTIFICATE_IS_NOT_VALIDATED]: { + [ZEROSSL_ERRORS.CERTIFICATE_IS_NOT_VALIDATED]: { description: chalk`ZeroSSL certificate is not approved.`, solution: chalk`Please run {bold.cyanBright dashmate ssl obtain} to confirm certificate`, }, - [ERRORS.CERTIFICATE_IS_NOT_VALID]: { + [ZEROSSL_ERRORS.CERTIFICATE_IS_NOT_VALID]: { description: chalk`ZeroSSL certificate is not valid.`, solution: chalk`Please run {bold.cyanBright dashmate ssl zerossl obtain} to get a new one.`, }, - [ERRORS.ZERO_SSL_API_ERROR]: { + [ZEROSSL_ERRORS.ZERO_SSL_API_ERROR]: { description: ssl?.data?.error?.message, solution: chalk`Please contact ZeroSSL support if needed.`, }, + // Let's Encrypt validation errors + [LETSENCRYPT_ERRORS.EMAIL_IS_NOT_SET]: { + description: "Let's Encrypt email is not set.", + solution: chalk`Please update your configuration with {bold.cyanBright dashmate config set platform.gateway.ssl.providerConfigs.letsencrypt.email [EMAIL]}`, + }, + [LETSENCRYPT_ERRORS.EXTERNAL_IP_IS_NOT_SET]: { + description: 'External IP is not set.', + solution: chalk`Please update your configuration to include your external IP using {bold.cyanBright dashmate config set externalIp [IP]}`, + }, + [LETSENCRYPT_ERRORS.CERTIFICATE_NOT_FOUND]: { + description: "Let's Encrypt certificate is not configured", + solution: chalk`Please run {bold.cyanBright dashmate ssl obtain --provider=letsencrypt} to get a new certificate`, + }, + [LETSENCRYPT_ERRORS.PRIVATE_KEY_NOT_FOUND]: { + description: chalk`Let's Encrypt private key file not found.`, + solution: chalk`Please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --provider=letsencrypt --force}`, + }, + [LETSENCRYPT_ERRORS.CERTIFICATE_IP_MISMATCH]: { + description: chalk`Let's Encrypt certificate does not match external IP ${ssl?.data?.externalIp}.`, + solution: chalk`Please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --provider=letsencrypt --force}`, + }, + [LETSENCRYPT_ERRORS.CERTIFICATE_EXPIRES_SOON]: { + description: chalk`Let's Encrypt certificate expires at ${ssl?.data?.certificate?.expires}.`, + solution: chalk`Please run {bold.cyanBright dashmate ssl obtain --provider=letsencrypt} to renew`, + }, + [LETSENCRYPT_ERRORS.CERTIFICATE_NOT_VALID]: { + description: chalk`Let's Encrypt certificate is not valid.`, + solution: chalk`Please run {bold.cyanBright dashmate ssl obtain --provider=letsencrypt --force} to get a new one.`, + }, }[ssl.error] ?? {}; if (description) { diff --git a/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js b/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js index b36def7246e..46d8f4fd7ad 100644 --- a/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js @@ -5,6 +5,7 @@ import process from 'process'; import si from 'systeminformation'; import obfuscateConfig from '../../../config/obfuscateConfig.js'; import { DASHMATE_VERSION } from '../../../constants.js'; +import LegoCertificate from '../../../ssl/letsencrypt/LegoCertificate.js'; import Certificate from '../../../ssl/zerossl/Certificate.js'; import providers from '../../../status/providers.js'; import hideString from '../../../util/hideString.js'; @@ -35,6 +36,7 @@ async function fetchTextOrError(url) { * @param {getOperatingSystemInfo} getOperatingSystemInfo * @param {HomeDir} homeDir * @param {validateZeroSslCertificate} validateZeroSslCertificate + * @param {validateLetsEncryptCertificate} validateLetsEncryptCertificate * @return {collectSamplesTask} */ export default function collectSamplesTaskFactory( @@ -46,6 +48,7 @@ export default function collectSamplesTaskFactory( getOperatingSystemInfo, homeDir, validateZeroSslCertificate, + validateLetsEncryptCertificate, ) { /** * @typedef {function} collectSamplesTask @@ -116,6 +119,27 @@ export default function collectSamplesTaskFactory( return; } + case 'letsencrypt': { + const { + error, + data, + } = await validateLetsEncryptCertificate( + config, + LegoCertificate.EXPIRATION_LIMIT_DAYS, + ); + + obfuscateObjectRecursive(data, (_field, value) => (typeof value === 'string' ? value.replaceAll( + process.env.USER, + hideString(process.env.USER), + ) : value)); + + ctx.samples.setServiceInfo('gateway', 'ssl', { + error, + data, + }); + + return; + } case 'file': { // SSL certificate const certificatesDir = homeDir.joinPath( diff --git a/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js b/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js index 004e45de7d9..17ab09e76c4 100644 --- a/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js @@ -36,6 +36,39 @@ export default function obtainLetsEncryptCertificateTaskFactory( */ function obtainLetsEncryptCertificateTask(config) { return new Listr([ + { + title: 'Initialize configuration', + task: async (ctx) => { + // Always load config values (needed even when --force is used) + ctx.email = config.get('platform.gateway.ssl.providerConfigs.letsencrypt.email'); + ctx.externalIp = config.get('externalIp'); + ctx.legoDir = homeDir.joinPath(config.getName(), 'platform', 'gateway', 'lego'); + ctx.sslConfigDir = homeDir.joinPath(config.getName(), 'platform', 'gateway', 'ssl'); + + if (!ctx.email) { + throw new Error("Let's Encrypt email is not set. Please set it in the config file"); + } + + if (!ctx.externalIp) { + throw new Error('External IP is not set. Please set it in the config file'); + } + + // Ensure lego directories exist + fs.mkdirSync(ctx.legoDir, { recursive: true }); + fs.mkdirSync(path.join(ctx.legoDir, 'certificates'), { recursive: true }); + fs.mkdirSync(path.join(ctx.legoDir, 'accounts'), { recursive: true }); + + // Set paths + ctx.legoCertPath = path.join(ctx.legoDir, 'certificates', `${ctx.externalIp}.crt`); + ctx.legoKeyPath = path.join(ctx.legoDir, 'certificates', `${ctx.externalIp}.key`); + + // When force is used, skip validation and obtain new certificate + if (ctx.force) { + ctx.certificateValid = false; + ctx.isRenewal = false; + } + }, + }, { title: 'Check if certificate already exists and is valid', skip: (ctx) => ctx.force, @@ -43,12 +76,9 @@ export default function obtainLetsEncryptCertificateTaskFactory( const expirationDays = ctx.expirationDays ?? LegoCertificate.EXPIRATION_LIMIT_DAYS; const { error, data } = await validateLetsEncryptCertificate(config, expirationDays); + // Merge validation data (but don't overwrite already-set values) Object.assign(ctx, data); - // Ensure lego directory exists - fs.mkdirSync(ctx.legoDir, { recursive: true }); - fs.mkdirSync(path.join(ctx.legoDir, 'certificates'), { recursive: true }); - switch (error) { case undefined: ctx.certificateValid = true; @@ -109,6 +139,7 @@ export default function obtainLetsEncryptCertificateTaskFactory( // Build lego command arguments // --disable-cn is needed for IP address certificates + // --key-type rsa2048 is needed because node-forge doesn't support ECDSA const legoArgs = [ '--server=https://acme-v02.api.letsencrypt.org/directory', '--email', ctx.email, @@ -117,6 +148,7 @@ export default function obtainLetsEncryptCertificateTaskFactory( '--http.port', ':80', '--domains', ctx.externalIp, '--disable-cn', + '--key-type', 'rsa2048', '--path', '/data', command, ]; From 8009d721f49957393cccda850d706aa394e3cfc5 Mon Sep 17 00:00:00 2001 From: ktechmidas Date: Mon, 26 Jan 2026 04:52:19 +0000 Subject: [PATCH 2/6] fix: use single quotes and preserve ctx values in merge --- .../dashmate/src/doctor/analyse/analyseConfigFactory.js | 4 ++-- .../letsencrypt/obtainLetsEncryptCertificateTaskFactory.js | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js b/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js index 2efa043bf63..80007be0129 100644 --- a/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js +++ b/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js @@ -130,7 +130,7 @@ and revoke the previous certificate in the ZeroSSL dashboard`, }, // Let's Encrypt validation errors [LETSENCRYPT_ERRORS.EMAIL_IS_NOT_SET]: { - description: "Let's Encrypt email is not set.", + description: 'Let\'s Encrypt email is not set.', solution: chalk`Please update your configuration with {bold.cyanBright dashmate config set platform.gateway.ssl.providerConfigs.letsencrypt.email [EMAIL]}`, }, [LETSENCRYPT_ERRORS.EXTERNAL_IP_IS_NOT_SET]: { @@ -138,7 +138,7 @@ and revoke the previous certificate in the ZeroSSL dashboard`, solution: chalk`Please update your configuration to include your external IP using {bold.cyanBright dashmate config set externalIp [IP]}`, }, [LETSENCRYPT_ERRORS.CERTIFICATE_NOT_FOUND]: { - description: "Let's Encrypt certificate is not configured", + description: 'Let\'s Encrypt certificate is not configured', solution: chalk`Please run {bold.cyanBright dashmate ssl obtain --provider=letsencrypt} to get a new certificate`, }, [LETSENCRYPT_ERRORS.PRIVATE_KEY_NOT_FOUND]: { diff --git a/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js b/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js index 17ab09e76c4..a9155528b17 100644 --- a/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js @@ -77,7 +77,11 @@ export default function obtainLetsEncryptCertificateTaskFactory( const { error, data } = await validateLetsEncryptCertificate(config, expirationDays); // Merge validation data (but don't overwrite already-set values) - Object.assign(ctx, data); + Object.keys(data).forEach((key) => { + if (ctx[key] === undefined) { + ctx[key] = data[key]; + } + }); switch (error) { case undefined: From 07f7eb649bdc1485b3a43f384da7f96232fcfbba Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Mon, 26 Jan 2026 16:11:08 +0700 Subject: [PATCH 3/6] chore(release): update changelog and bump version to 3.0.1-hotfix.1 (#3020) --- CHANGELOG.md | 7 ++ Cargo.lock | 76 +++++++++---------- Cargo.toml | 2 +- package.json | 2 +- packages/bench-suite/package.json | 2 +- packages/dapi-grpc/package.json | 2 +- packages/dapi/package.json | 2 +- packages/dash-spv/package.json | 2 +- packages/dashmate/package.json | 2 +- packages/dashpay-contract/package.json | 2 +- packages/dpns-contract/package.json | 2 +- packages/feature-flags-contract/package.json | 2 +- packages/js-dapi-client/package.json | 2 +- packages/js-dash-sdk/package.json | 2 +- packages/js-evo-sdk/package.json | 2 +- packages/js-grpc-common/package.json | 2 +- packages/keyword-search-contract/package.json | 2 +- .../package.json | 2 +- packages/platform-test-suite/package.json | 2 +- packages/token-history-contract/package.json | 2 +- packages/wallet-lib/package.json | 2 +- packages/wallet-utils-contract/package.json | 2 +- packages/wasm-dpp/package.json | 2 +- packages/wasm-dpp2/package.json | 2 +- packages/wasm-drive-verify/package.json | 2 +- packages/wasm-sdk/package.json | 2 +- packages/withdrawals-contract/package.json | 2 +- 27 files changed, 70 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8212fee199d..54b305cd0e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### [3.0.1-hotfix.1](https://github.com/dashpay/platform/compare/v3.0.0...v3.0.1-hotfix.1) (2026-01-26) + + +### Bug Fixes + +* use single quotes and preserve ctx values in merge + ## [3.0.0-rc.3](///compare/v3.0.0-rc.2...v3.0.0-rc.3) (2026-01-20) diff --git a/Cargo.lock b/Cargo.lock index 285fef55afc..a9fff164a18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -856,7 +856,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "check-features" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "toml 0.8.23", ] @@ -1290,7 +1290,7 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "dash-platform-macros", "futures-core", @@ -1378,7 +1378,7 @@ dependencies = [ [[package]] name = "dash-context-provider" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "dpp", "drive", @@ -1400,7 +1400,7 @@ dependencies = [ [[package]] name = "dash-platform-balance-checker" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "anyhow", "clap", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "dash-platform-macros" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "heck 0.5.0", "quote", @@ -1424,7 +1424,7 @@ dependencies = [ [[package]] name = "dash-sdk" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "arc-swap", "assert_matches", @@ -1594,7 +1594,7 @@ dependencies = [ [[package]] name = "dashpay-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "platform-value", "platform-version", @@ -1604,7 +1604,7 @@ dependencies = [ [[package]] name = "data-contracts" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "dashpay-contract", "dpns-contract", @@ -1753,7 +1753,7 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dpns-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "platform-value", "platform-version", @@ -1763,7 +1763,7 @@ dependencies = [ [[package]] name = "dpp" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "anyhow", "assert_matches", @@ -1820,7 +1820,7 @@ dependencies = [ [[package]] name = "drive" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "arc-swap", "assert_matches", @@ -1861,7 +1861,7 @@ dependencies = [ [[package]] name = "drive-abci" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "arc-swap", "assert_matches", @@ -1916,7 +1916,7 @@ dependencies = [ [[package]] name = "drive-proof-verifier" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "bincode 2.0.0-rc.3", "dapi-grpc", @@ -2169,7 +2169,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "feature-flags-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "platform-value", "platform-version", @@ -3342,7 +3342,7 @@ dependencies = [ [[package]] name = "json-schema-compatibility-validator" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "assert_matches", "json-patch", @@ -3461,7 +3461,7 @@ dependencies = [ [[package]] name = "keyword-search-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "base58", "platform-value", @@ -3608,7 +3608,7 @@ dependencies = [ [[package]] name = "masternode-reward-shares-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "platform-value", "platform-version", @@ -4276,7 +4276,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "platform-serialization" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "bincode 2.0.0-rc.3", "platform-version", @@ -4284,7 +4284,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "proc-macro2", "quote", @@ -4294,7 +4294,7 @@ dependencies = [ [[package]] name = "platform-value" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "base64 0.22.1", "bincode 2.0.0-rc.3", @@ -4313,7 +4313,7 @@ dependencies = [ [[package]] name = "platform-value-convertible" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "quote", "syn 2.0.111", @@ -4321,7 +4321,7 @@ dependencies = [ [[package]] name = "platform-version" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "bincode 2.0.0-rc.3", "grovedb-version", @@ -4332,7 +4332,7 @@ dependencies = [ [[package]] name = "platform-versioning" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "proc-macro2", "quote", @@ -4341,7 +4341,7 @@ dependencies = [ [[package]] name = "platform-wallet" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "dashcore", "dpp", @@ -5106,7 +5106,7 @@ dependencies = [ [[package]] name = "rs-dapi" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "async-trait", "axum 0.8.8", @@ -5155,7 +5155,7 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "backon", "chrono", @@ -5180,7 +5180,7 @@ dependencies = [ [[package]] name = "rs-dash-event-bus" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "metrics", "tokio", @@ -5189,7 +5189,7 @@ dependencies = [ [[package]] name = "rs-sdk-ffi" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "bincode 2.0.0-rc.3", "bs58", @@ -5218,7 +5218,7 @@ dependencies = [ [[package]] name = "rs-sdk-trusted-context-provider" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "arc-swap", "dash-context-provider", @@ -5884,7 +5884,7 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple-signer" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "base64 0.22.1", "bincode 2.0.0-rc.3", @@ -5981,7 +5981,7 @@ dependencies = [ [[package]] name = "strategy-tests" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "bincode 2.0.0-rc.3", "dpp", @@ -6374,7 +6374,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "token-history-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "platform-value", "platform-version", @@ -7117,7 +7117,7 @@ dependencies = [ [[package]] name = "wallet-utils-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "platform-value", "platform-version", @@ -7249,7 +7249,7 @@ dependencies = [ [[package]] name = "wasm-dpp" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "anyhow", "async-trait", @@ -7273,7 +7273,7 @@ dependencies = [ [[package]] name = "wasm-dpp2" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "anyhow", "bincode 2.0.0-rc.3", @@ -7290,7 +7290,7 @@ dependencies = [ [[package]] name = "wasm-drive-verify" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "base64 0.22.1", "bincode 2.0.0-rc.3", @@ -7323,7 +7323,7 @@ dependencies = [ [[package]] name = "wasm-sdk" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "base64 0.22.1", "bip39", @@ -7783,7 +7783,7 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "withdrawals-contract" -version = "3.0.0" +version = "3.0.1-hotfix.1" dependencies = [ "num_enum 0.5.11", "platform-value", diff --git a/Cargo.toml b/Cargo.toml index ee5ec101e15..45e8f104ffb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,5 +45,5 @@ members = [ [workspace.package] -version = "3.0.0" +version = "3.0.1-hotfix.1" rust-version = "1.92" diff --git a/package.json b/package.json index 5b595416e03..6af11c017dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/platform", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "private": true, "scripts": { "setup": "yarn install && yarn run build && yarn run configure", diff --git a/packages/bench-suite/package.json b/packages/bench-suite/package.json index 13c70a9f87b..5a71e27ac6b 100644 --- a/packages/bench-suite/package.json +++ b/packages/bench-suite/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/bench-suite", "private": true, - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Dash Platform benchmark tool", "scripts": { "bench": "node ./bin/bench.js", diff --git a/packages/dapi-grpc/package.json b/packages/dapi-grpc/package.json index 1776f57af6f..0d9c528ffb1 100644 --- a/packages/dapi-grpc/package.json +++ b/packages/dapi-grpc/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi-grpc", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "DAPI GRPC definition file and generated clients", "browser": "browser.js", "main": "node.js", diff --git a/packages/dapi/package.json b/packages/dapi/package.json index 232a586e90a..c29ff2769ef 100644 --- a/packages/dapi/package.json +++ b/packages/dapi/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/dapi", "private": true, - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "A decentralized API for the Dash network", "scripts": { "api": "node scripts/api.js", diff --git a/packages/dash-spv/package.json b/packages/dash-spv/package.json index bfd91054213..66844d9273e 100644 --- a/packages/dash-spv/package.json +++ b/packages/dash-spv/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dash-spv", - "version": "4.0.0", + "version": "3.0.1-hotfix.1", "description": "Repository containing SPV functions used by @dashevo", "main": "index.js", "scripts": { diff --git a/packages/dashmate/package.json b/packages/dashmate/package.json index bd77ad51abb..8eeceded542 100644 --- a/packages/dashmate/package.json +++ b/packages/dashmate/package.json @@ -1,6 +1,6 @@ { "name": "dashmate", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Distribution package for Dash node installation", "scripts": { "lint": "eslint .", diff --git a/packages/dashpay-contract/package.json b/packages/dashpay-contract/package.json index 630f5ebab03..8bcc5de3bfc 100644 --- a/packages/dashpay-contract/package.json +++ b/packages/dashpay-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dashpay-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Reference contract of the DashPay DPA on Dash Evolution", "scripts": { "lint": "eslint .", diff --git a/packages/dpns-contract/package.json b/packages/dpns-contract/package.json index ef7e04ebf62..76d62184011 100644 --- a/packages/dpns-contract/package.json +++ b/packages/dpns-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dpns-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "A contract and helper scripts for DPNS DApp", "scripts": { "lint": "eslint .", diff --git a/packages/feature-flags-contract/package.json b/packages/feature-flags-contract/package.json index a23e2072a28..9c3298ebef8 100644 --- a/packages/feature-flags-contract/package.json +++ b/packages/feature-flags-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/feature-flags-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Data Contract to store Dash Platform feature flags", "scripts": { "build": "", diff --git a/packages/js-dapi-client/package.json b/packages/js-dapi-client/package.json index 764a5ef4359..7b7cb256ad7 100644 --- a/packages/js-dapi-client/package.json +++ b/packages/js-dapi-client/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi-client", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Client library used to access Dash DAPI endpoints", "main": "lib/index.js", "contributors": [ diff --git a/packages/js-dash-sdk/package.json b/packages/js-dash-sdk/package.json index 127e3eaeb8a..9a86f0c8249 100644 --- a/packages/js-dash-sdk/package.json +++ b/packages/js-dash-sdk/package.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "6.0.0", + "version": "3.0.1-hotfix.1", "description": "Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)", "main": "build/index.js", "unpkg": "dist/dash.min.js", diff --git a/packages/js-evo-sdk/package.json b/packages/js-evo-sdk/package.json index c6528c38993..8a81885e619 100644 --- a/packages/js-evo-sdk/package.json +++ b/packages/js-evo-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/evo-sdk", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "type": "module", "main": "./dist/evo-sdk.module.js", "types": "./dist/sdk.d.ts", diff --git a/packages/js-grpc-common/package.json b/packages/js-grpc-common/package.json index 8151e7f4c54..28cdd5b00c2 100644 --- a/packages/js-grpc-common/package.json +++ b/packages/js-grpc-common/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/grpc-common", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Common GRPC library", "main": "index.js", "scripts": { diff --git a/packages/keyword-search-contract/package.json b/packages/keyword-search-contract/package.json index 647483bee2c..23fd1cdb246 100644 --- a/packages/keyword-search-contract/package.json +++ b/packages/keyword-search-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/keyword-search-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "A contract that allows searching for contracts", "scripts": { "lint": "eslint .", diff --git a/packages/masternode-reward-shares-contract/package.json b/packages/masternode-reward-shares-contract/package.json index 811bae73afe..d5774aa3066 100644 --- a/packages/masternode-reward-shares-contract/package.json +++ b/packages/masternode-reward-shares-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/masternode-reward-shares-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "A contract and helper scripts for reward sharing", "scripts": { "lint": "eslint .", diff --git a/packages/platform-test-suite/package.json b/packages/platform-test-suite/package.json index bb09c35a236..92889347afb 100644 --- a/packages/platform-test-suite/package.json +++ b/packages/platform-test-suite/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/platform-test-suite", "private": true, - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Dash Network end-to-end tests", "scripts": { "test": "yarn exec bin/test.sh", diff --git a/packages/token-history-contract/package.json b/packages/token-history-contract/package.json index 0ff8a1fc1c0..54c8df8aaab 100644 --- a/packages/token-history-contract/package.json +++ b/packages/token-history-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/token-history-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "The token history contract", "scripts": { "lint": "eslint .", diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index b058bce93a6..19eda7f64ac 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wallet-lib", - "version": "10.0.0", + "version": "3.0.1-hotfix.1", "description": "Light wallet library for Dash", "main": "src/index.js", "unpkg": "dist/wallet-lib.min.js", diff --git a/packages/wallet-utils-contract/package.json b/packages/wallet-utils-contract/package.json index 531474d3f25..78d6d47eb91 100644 --- a/packages/wallet-utils-contract/package.json +++ b/packages/wallet-utils-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wallet-utils-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "A contract and helper scripts for Wallet DApp", "scripts": { "lint": "eslint .", diff --git a/packages/wasm-dpp/package.json b/packages/wasm-dpp/package.json index 4a0bfb9a7e1..0b86936d357 100644 --- a/packages/wasm-dpp/package.json +++ b/packages/wasm-dpp/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-dpp", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "The JavaScript implementation of the Dash Platform Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/wasm-dpp2/package.json b/packages/wasm-dpp2/package.json index a6ebe37cc4f..9deec35293d 100644 --- a/packages/wasm-dpp2/package.json +++ b/packages/wasm-dpp2/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-dpp2", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "type": "module", "main": "./dist/dpp.js", "types": "./dist/dpp.d.ts", diff --git a/packages/wasm-drive-verify/package.json b/packages/wasm-drive-verify/package.json index b3a9966f7a1..1cd10a5438c 100644 --- a/packages/wasm-drive-verify/package.json +++ b/packages/wasm-drive-verify/package.json @@ -3,7 +3,7 @@ "collaborators": [ "Dash Core Group " ], - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "license": "MIT", "description": "WASM bindings for Drive verify functions", "repository": { diff --git a/packages/wasm-sdk/package.json b/packages/wasm-sdk/package.json index a81af30aaab..465c1d0cac4 100644 --- a/packages/wasm-sdk/package.json +++ b/packages/wasm-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-sdk", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "type": "module", "main": "./dist/sdk.js", "types": "./dist/sdk.d.ts", diff --git a/packages/withdrawals-contract/package.json b/packages/withdrawals-contract/package.json index 01ac9cbaa19..bf9e8200bbd 100644 --- a/packages/withdrawals-contract/package.json +++ b/packages/withdrawals-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/withdrawals-contract", - "version": "3.0.0", + "version": "3.0.1-hotfix.1", "description": "Data Contract to manipulate and track withdrawals", "scripts": { "build": "", From ba7f362812261315ef2c696f91b089827d337cab Mon Sep 17 00:00:00 2001 From: ktechmidas Date: Sun, 1 Feb 2026 10:05:05 +0000 Subject: [PATCH 4/6] fix(dashmate): pass --profile shortlived on letsencrypt renewal The shortlived profile is required for IP address certificates. Previously it was only passed on initial run, not renewal. Co-Authored-By: Claude Opus 4.5 --- .../obtainLetsEncryptCertificateTaskFactory.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js b/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js index a9155528b17..0e33318edd7 100644 --- a/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/ssl/letsencrypt/obtainLetsEncryptCertificateTaskFactory.js @@ -157,11 +157,10 @@ export default function obtainLetsEncryptCertificateTaskFactory( command, ]; - // Add profile for initial run - if (!ctx.isRenewal) { - legoArgs.push('--profile', 'shortlived'); - } else { - // For renewal, renew if within 30 days of expiry (default) + // shortlived profile is required for IP address certificates + legoArgs.push('--profile', 'shortlived'); + + if (ctx.isRenewal) { legoArgs.push('--days', '30'); } From b8f3728a63d0505c458dacdcb963a50162de3c94 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Tue, 3 Feb 2026 00:57:21 +0700 Subject: [PATCH 5/6] chore(release): update changelog and bump version to 3.0.1-hotfix.2 (#3044) --- CHANGELOG.md | 7 ++ Cargo.lock | 76 +++++++++---------- Cargo.toml | 2 +- package.json | 2 +- packages/bench-suite/package.json | 2 +- packages/dapi-grpc/package.json | 2 +- packages/dapi/package.json | 2 +- packages/dash-spv/package.json | 2 +- packages/dashmate/package.json | 2 +- packages/dashpay-contract/package.json | 2 +- packages/dpns-contract/package.json | 2 +- packages/feature-flags-contract/package.json | 2 +- packages/js-dapi-client/package.json | 2 +- packages/js-dash-sdk/package.json | 2 +- packages/js-evo-sdk/package.json | 2 +- packages/js-grpc-common/package.json | 2 +- packages/keyword-search-contract/package.json | 2 +- .../package.json | 2 +- packages/platform-test-suite/package.json | 2 +- packages/token-history-contract/package.json | 2 +- packages/wallet-lib/package.json | 2 +- packages/wallet-utils-contract/package.json | 2 +- packages/wasm-dpp/package.json | 2 +- packages/wasm-dpp2/package.json | 2 +- packages/wasm-drive-verify/package.json | 2 +- packages/wasm-sdk/package.json | 2 +- packages/withdrawals-contract/package.json | 2 +- 27 files changed, 70 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54b305cd0e5..65cb35b0492 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### [3.0.1-hotfix.2](https://github.com/dashpay/platform/compare/v3.0.1-hotfix.1...v3.0.1-hotfix.2) (2026-02-02) + + +### Bug Fixes + +* **dashmate:** pass --profile shortlived on letsencrypt renewal + ### [3.0.1-hotfix.1](https://github.com/dashpay/platform/compare/v3.0.0...v3.0.1-hotfix.1) (2026-01-26) diff --git a/Cargo.lock b/Cargo.lock index a9fff164a18..ea1f91e7515 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -856,7 +856,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "check-features" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "toml 0.8.23", ] @@ -1290,7 +1290,7 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "dash-platform-macros", "futures-core", @@ -1378,7 +1378,7 @@ dependencies = [ [[package]] name = "dash-context-provider" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "dpp", "drive", @@ -1400,7 +1400,7 @@ dependencies = [ [[package]] name = "dash-platform-balance-checker" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "anyhow", "clap", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "dash-platform-macros" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "heck 0.5.0", "quote", @@ -1424,7 +1424,7 @@ dependencies = [ [[package]] name = "dash-sdk" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "arc-swap", "assert_matches", @@ -1594,7 +1594,7 @@ dependencies = [ [[package]] name = "dashpay-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "platform-value", "platform-version", @@ -1604,7 +1604,7 @@ dependencies = [ [[package]] name = "data-contracts" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "dashpay-contract", "dpns-contract", @@ -1753,7 +1753,7 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dpns-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "platform-value", "platform-version", @@ -1763,7 +1763,7 @@ dependencies = [ [[package]] name = "dpp" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "anyhow", "assert_matches", @@ -1820,7 +1820,7 @@ dependencies = [ [[package]] name = "drive" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "arc-swap", "assert_matches", @@ -1861,7 +1861,7 @@ dependencies = [ [[package]] name = "drive-abci" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "arc-swap", "assert_matches", @@ -1916,7 +1916,7 @@ dependencies = [ [[package]] name = "drive-proof-verifier" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "bincode 2.0.0-rc.3", "dapi-grpc", @@ -2169,7 +2169,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "feature-flags-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "platform-value", "platform-version", @@ -3342,7 +3342,7 @@ dependencies = [ [[package]] name = "json-schema-compatibility-validator" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "assert_matches", "json-patch", @@ -3461,7 +3461,7 @@ dependencies = [ [[package]] name = "keyword-search-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "base58", "platform-value", @@ -3608,7 +3608,7 @@ dependencies = [ [[package]] name = "masternode-reward-shares-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "platform-value", "platform-version", @@ -4276,7 +4276,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "platform-serialization" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "bincode 2.0.0-rc.3", "platform-version", @@ -4284,7 +4284,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "proc-macro2", "quote", @@ -4294,7 +4294,7 @@ dependencies = [ [[package]] name = "platform-value" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "base64 0.22.1", "bincode 2.0.0-rc.3", @@ -4313,7 +4313,7 @@ dependencies = [ [[package]] name = "platform-value-convertible" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "quote", "syn 2.0.111", @@ -4321,7 +4321,7 @@ dependencies = [ [[package]] name = "platform-version" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "bincode 2.0.0-rc.3", "grovedb-version", @@ -4332,7 +4332,7 @@ dependencies = [ [[package]] name = "platform-versioning" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "proc-macro2", "quote", @@ -4341,7 +4341,7 @@ dependencies = [ [[package]] name = "platform-wallet" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "dashcore", "dpp", @@ -5106,7 +5106,7 @@ dependencies = [ [[package]] name = "rs-dapi" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "async-trait", "axum 0.8.8", @@ -5155,7 +5155,7 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "backon", "chrono", @@ -5180,7 +5180,7 @@ dependencies = [ [[package]] name = "rs-dash-event-bus" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "metrics", "tokio", @@ -5189,7 +5189,7 @@ dependencies = [ [[package]] name = "rs-sdk-ffi" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "bincode 2.0.0-rc.3", "bs58", @@ -5218,7 +5218,7 @@ dependencies = [ [[package]] name = "rs-sdk-trusted-context-provider" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "arc-swap", "dash-context-provider", @@ -5884,7 +5884,7 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple-signer" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "base64 0.22.1", "bincode 2.0.0-rc.3", @@ -5981,7 +5981,7 @@ dependencies = [ [[package]] name = "strategy-tests" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "bincode 2.0.0-rc.3", "dpp", @@ -6374,7 +6374,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "token-history-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "platform-value", "platform-version", @@ -7117,7 +7117,7 @@ dependencies = [ [[package]] name = "wallet-utils-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "platform-value", "platform-version", @@ -7249,7 +7249,7 @@ dependencies = [ [[package]] name = "wasm-dpp" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "anyhow", "async-trait", @@ -7273,7 +7273,7 @@ dependencies = [ [[package]] name = "wasm-dpp2" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "anyhow", "bincode 2.0.0-rc.3", @@ -7290,7 +7290,7 @@ dependencies = [ [[package]] name = "wasm-drive-verify" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "base64 0.22.1", "bincode 2.0.0-rc.3", @@ -7323,7 +7323,7 @@ dependencies = [ [[package]] name = "wasm-sdk" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "base64 0.22.1", "bip39", @@ -7783,7 +7783,7 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "withdrawals-contract" -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" dependencies = [ "num_enum 0.5.11", "platform-value", diff --git a/Cargo.toml b/Cargo.toml index 45e8f104ffb..bbe18704dd4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,5 +45,5 @@ members = [ [workspace.package] -version = "3.0.1-hotfix.1" +version = "3.0.1-hotfix.2" rust-version = "1.92" diff --git a/package.json b/package.json index 6af11c017dd..aed102026c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/platform", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "private": true, "scripts": { "setup": "yarn install && yarn run build && yarn run configure", diff --git a/packages/bench-suite/package.json b/packages/bench-suite/package.json index 5a71e27ac6b..9a925042f6c 100644 --- a/packages/bench-suite/package.json +++ b/packages/bench-suite/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/bench-suite", "private": true, - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Dash Platform benchmark tool", "scripts": { "bench": "node ./bin/bench.js", diff --git a/packages/dapi-grpc/package.json b/packages/dapi-grpc/package.json index 0d9c528ffb1..4821051b859 100644 --- a/packages/dapi-grpc/package.json +++ b/packages/dapi-grpc/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi-grpc", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "DAPI GRPC definition file and generated clients", "browser": "browser.js", "main": "node.js", diff --git a/packages/dapi/package.json b/packages/dapi/package.json index c29ff2769ef..a2a95017b97 100644 --- a/packages/dapi/package.json +++ b/packages/dapi/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/dapi", "private": true, - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "A decentralized API for the Dash network", "scripts": { "api": "node scripts/api.js", diff --git a/packages/dash-spv/package.json b/packages/dash-spv/package.json index 66844d9273e..7e0554cf864 100644 --- a/packages/dash-spv/package.json +++ b/packages/dash-spv/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dash-spv", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Repository containing SPV functions used by @dashevo", "main": "index.js", "scripts": { diff --git a/packages/dashmate/package.json b/packages/dashmate/package.json index 8eeceded542..98c5dc62df7 100644 --- a/packages/dashmate/package.json +++ b/packages/dashmate/package.json @@ -1,6 +1,6 @@ { "name": "dashmate", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Distribution package for Dash node installation", "scripts": { "lint": "eslint .", diff --git a/packages/dashpay-contract/package.json b/packages/dashpay-contract/package.json index 8bcc5de3bfc..212a647ce1f 100644 --- a/packages/dashpay-contract/package.json +++ b/packages/dashpay-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dashpay-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Reference contract of the DashPay DPA on Dash Evolution", "scripts": { "lint": "eslint .", diff --git a/packages/dpns-contract/package.json b/packages/dpns-contract/package.json index 76d62184011..686566615d5 100644 --- a/packages/dpns-contract/package.json +++ b/packages/dpns-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dpns-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "A contract and helper scripts for DPNS DApp", "scripts": { "lint": "eslint .", diff --git a/packages/feature-flags-contract/package.json b/packages/feature-flags-contract/package.json index 9c3298ebef8..fd12b822e87 100644 --- a/packages/feature-flags-contract/package.json +++ b/packages/feature-flags-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/feature-flags-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Data Contract to store Dash Platform feature flags", "scripts": { "build": "", diff --git a/packages/js-dapi-client/package.json b/packages/js-dapi-client/package.json index 7b7cb256ad7..fdd95ba2bc2 100644 --- a/packages/js-dapi-client/package.json +++ b/packages/js-dapi-client/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi-client", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Client library used to access Dash DAPI endpoints", "main": "lib/index.js", "contributors": [ diff --git a/packages/js-dash-sdk/package.json b/packages/js-dash-sdk/package.json index 9a86f0c8249..e95e0b436ba 100644 --- a/packages/js-dash-sdk/package.json +++ b/packages/js-dash-sdk/package.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)", "main": "build/index.js", "unpkg": "dist/dash.min.js", diff --git a/packages/js-evo-sdk/package.json b/packages/js-evo-sdk/package.json index 8a81885e619..1d96227ae5c 100644 --- a/packages/js-evo-sdk/package.json +++ b/packages/js-evo-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/evo-sdk", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "type": "module", "main": "./dist/evo-sdk.module.js", "types": "./dist/sdk.d.ts", diff --git a/packages/js-grpc-common/package.json b/packages/js-grpc-common/package.json index 28cdd5b00c2..7e18a2a3122 100644 --- a/packages/js-grpc-common/package.json +++ b/packages/js-grpc-common/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/grpc-common", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Common GRPC library", "main": "index.js", "scripts": { diff --git a/packages/keyword-search-contract/package.json b/packages/keyword-search-contract/package.json index 23fd1cdb246..f1f15f7dd0c 100644 --- a/packages/keyword-search-contract/package.json +++ b/packages/keyword-search-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/keyword-search-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "A contract that allows searching for contracts", "scripts": { "lint": "eslint .", diff --git a/packages/masternode-reward-shares-contract/package.json b/packages/masternode-reward-shares-contract/package.json index d5774aa3066..8cb0f20be52 100644 --- a/packages/masternode-reward-shares-contract/package.json +++ b/packages/masternode-reward-shares-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/masternode-reward-shares-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "A contract and helper scripts for reward sharing", "scripts": { "lint": "eslint .", diff --git a/packages/platform-test-suite/package.json b/packages/platform-test-suite/package.json index 92889347afb..3ccd184384b 100644 --- a/packages/platform-test-suite/package.json +++ b/packages/platform-test-suite/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/platform-test-suite", "private": true, - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Dash Network end-to-end tests", "scripts": { "test": "yarn exec bin/test.sh", diff --git a/packages/token-history-contract/package.json b/packages/token-history-contract/package.json index 54c8df8aaab..1bd720af246 100644 --- a/packages/token-history-contract/package.json +++ b/packages/token-history-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/token-history-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "The token history contract", "scripts": { "lint": "eslint .", diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index 19eda7f64ac..60b8344c514 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wallet-lib", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Light wallet library for Dash", "main": "src/index.js", "unpkg": "dist/wallet-lib.min.js", diff --git a/packages/wallet-utils-contract/package.json b/packages/wallet-utils-contract/package.json index 78d6d47eb91..69a5c4ffc76 100644 --- a/packages/wallet-utils-contract/package.json +++ b/packages/wallet-utils-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wallet-utils-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "A contract and helper scripts for Wallet DApp", "scripts": { "lint": "eslint .", diff --git a/packages/wasm-dpp/package.json b/packages/wasm-dpp/package.json index 0b86936d357..b4c2e863929 100644 --- a/packages/wasm-dpp/package.json +++ b/packages/wasm-dpp/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-dpp", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "The JavaScript implementation of the Dash Platform Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/wasm-dpp2/package.json b/packages/wasm-dpp2/package.json index 9deec35293d..9b5fb490e9c 100644 --- a/packages/wasm-dpp2/package.json +++ b/packages/wasm-dpp2/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-dpp2", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "type": "module", "main": "./dist/dpp.js", "types": "./dist/dpp.d.ts", diff --git a/packages/wasm-drive-verify/package.json b/packages/wasm-drive-verify/package.json index 1cd10a5438c..94951334f62 100644 --- a/packages/wasm-drive-verify/package.json +++ b/packages/wasm-drive-verify/package.json @@ -3,7 +3,7 @@ "collaborators": [ "Dash Core Group " ], - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "license": "MIT", "description": "WASM bindings for Drive verify functions", "repository": { diff --git a/packages/wasm-sdk/package.json b/packages/wasm-sdk/package.json index 465c1d0cac4..570c6c7fa08 100644 --- a/packages/wasm-sdk/package.json +++ b/packages/wasm-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-sdk", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "type": "module", "main": "./dist/sdk.js", "types": "./dist/sdk.d.ts", diff --git a/packages/withdrawals-contract/package.json b/packages/withdrawals-contract/package.json index bf9e8200bbd..2cca7ed1733 100644 --- a/packages/withdrawals-contract/package.json +++ b/packages/withdrawals-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/withdrawals-contract", - "version": "3.0.1-hotfix.1", + "version": "3.0.1-hotfix.2", "description": "Data Contract to manipulate and track withdrawals", "scripts": { "build": "", From 3b6c3d0a8271bce06cd9b72673e1fb54fbbb7b19 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Thu, 5 Feb 2026 12:30:25 +0700 Subject: [PATCH 6/6] chore: fix package versions --- .yarn/cache/fsevents-patch-19706e7e35-10.zip | Bin 0 -> 23750 bytes packages/dash-spv/package.json | 2 +- packages/js-dash-sdk/package.json | 2 +- packages/wallet-lib/package.json | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 .yarn/cache/fsevents-patch-19706e7e35-10.zip diff --git a/.yarn/cache/fsevents-patch-19706e7e35-10.zip b/.yarn/cache/fsevents-patch-19706e7e35-10.zip new file mode 100644 index 0000000000000000000000000000000000000000..aff1ab12ce57f312cc3bc58c78597020f7980e62 GIT binary patch literal 23750 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 literal 0 HcmV?d00001 diff --git a/packages/dash-spv/package.json b/packages/dash-spv/package.json index 7e0554cf864..0e1f6b66461 100644 --- a/packages/dash-spv/package.json +++ b/packages/dash-spv/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dash-spv", - "version": "3.0.1-hotfix.2", + "version": "4.0.1-hotfix.2", "description": "Repository containing SPV functions used by @dashevo", "main": "index.js", "scripts": { diff --git a/packages/js-dash-sdk/package.json b/packages/js-dash-sdk/package.json index e95e0b436ba..6b455650909 100644 --- a/packages/js-dash-sdk/package.json +++ b/packages/js-dash-sdk/package.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "3.0.1-hotfix.2", + "version": "6.0.1-hotfix.2", "description": "Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)", "main": "build/index.js", "unpkg": "dist/dash.min.js", diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index 60b8344c514..99c8f1860bb 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wallet-lib", - "version": "3.0.1-hotfix.2", + "version": "10.0.1-hotfix.2", "description": "Light wallet library for Dash", "main": "src/index.js", "unpkg": "dist/wallet-lib.min.js",