diff --git a/.github/workflows/release_linux.yml b/.github/workflows/release_linux.yml index 553f9bad72..69ab106879 100644 --- a/.github/workflows/release_linux.yml +++ b/.github/workflows/release_linux.yml @@ -183,6 +183,7 @@ jobs: env: VERSION: ${{ steps.get_version.outputs.VERSION }} run: | + source packaging/images.env ARCH=${{ matrix.arch }} docker run --rm --platform linux/$ARCH -v "$PWD":/work -w /work $FEDORA_IMAGE \ packaging/checks/smoke-rpm.sh dist/Mintlayer_Node_linux_${VERSION}_${ARCH}.rpm mintlayer-node node @@ -213,10 +214,10 @@ jobs: # x86_64 leg: arch-matched container (native strip, ldd-based # dependencies, help2man man pages), so the package installs natively. - # aarch64 leg: the same amd64-only image installs the foreign-arch - # package with IgnoreArch and runs the binaries through the qemu binfmt - # handlers registered above — the same emulation the deb/rpm legs use - # for their arm64 smoke tests. + # aarch64 leg: Docker Hub publishes no arm64 Arch image, so + # smoke-arch.sh assembles an Arch Linux ARM chroot and installs/runs the + # package there through the qemu binfmt handlers registered above — the + # same emulation the deb/rpm legs use for their arm64 smoke tests. - name: Smoke test Arch packages env: VERSION: ${{ steps.get_version.outputs.VERSION }} diff --git a/CHANGELOG.md b/CHANGELOG.md index ef62f43ff1..492d2a264a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,13 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/ ## [Unreleased] +## [1.4.1] - 2026-09-25 + +### Added + - Node: + - Added PoS seal indexing infrastructure: duplicate-proof evidence storage for + block seals, active by default, with a chainstate configuration option to disable it. + ### Fixed - Wallet: - Fixed an issue where `standalone-add-watch-only-address`, `standalone-add-private-key-from-hex` and diff --git a/Cargo.lock b/Cargo.lock index 2a9bd19b8f..ffd0fb4b24 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,7 +20,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "accounting" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "parity-scale-codec", @@ -227,7 +227,7 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "api-blockchain-scanner-daemon" -version = "1.4.0" +version = "1.4.1" dependencies = [ "api-blockchain-scanner-lib", "api-server-common", @@ -249,7 +249,7 @@ dependencies = [ [[package]] name = "api-blockchain-scanner-lib" -version = "1.4.0" +version = "1.4.1" dependencies = [ "api-server-common", "async-trait", @@ -279,7 +279,7 @@ dependencies = [ [[package]] name = "api-server-backend-test-suite" -version = "1.4.0" +version = "1.4.1" dependencies = [ "api-server-common", "async-trait", @@ -302,7 +302,7 @@ dependencies = [ [[package]] name = "api-server-common" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "bb8-postgres", @@ -330,7 +330,7 @@ dependencies = [ [[package]] name = "api-server-stack-test-suite" -version = "1.4.0" +version = "1.4.1" dependencies = [ "api-blockchain-scanner-daemon", "api-blockchain-scanner-lib", @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "api-web-server" -version = "1.4.0" +version = "1.4.1" dependencies = [ "api-server-common", "async-trait", @@ -1008,7 +1008,7 @@ dependencies = [ [[package]] name = "blockprod" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "chainstate", @@ -1150,7 +1150,7 @@ dependencies = [ [[package]] name = "build_utils" -version = "1.4.0" +version = "1.4.1" dependencies = [ "substrate-build-script-utils", ] @@ -1369,7 +1369,7 @@ dependencies = [ [[package]] name = "chainstate" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "async-trait", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "chainstate-db-dumper" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "chainstate", @@ -1440,7 +1440,7 @@ dependencies = [ [[package]] name = "chainstate-launcher" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate", "chainstate-storage", @@ -1456,7 +1456,7 @@ dependencies = [ [[package]] name = "chainstate-storage" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "chainstate-types", @@ -1483,7 +1483,7 @@ dependencies = [ [[package]] name = "chainstate-test-framework" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate", "chainstate-storage", @@ -1513,7 +1513,7 @@ dependencies = [ [[package]] name = "chainstate-test-suite" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "chainstate", @@ -1546,7 +1546,7 @@ dependencies = [ [[package]] name = "chainstate-types" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "crypto", @@ -1760,7 +1760,7 @@ dependencies = [ [[package]] name = "common" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "bech32 0.11.1", @@ -1820,7 +1820,7 @@ dependencies = [ [[package]] name = "consensus" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate-types", "common", @@ -1907,7 +1907,7 @@ dependencies = [ [[package]] name = "constraints-value-accumulator" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "common", @@ -2173,7 +2173,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto" -version = "1.4.0" +version = "1.4.1" dependencies = [ "argon2", "bip39", @@ -2686,7 +2686,7 @@ checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" [[package]] name = "dns-server" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "async-trait", @@ -4980,7 +4980,7 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "log_error" -version = "1.4.0" +version = "1.4.1" dependencies = [ "derive_more 1.0.0", "logging", @@ -4993,7 +4993,7 @@ dependencies = [ [[package]] name = "logging" -version = "1.4.0" +version = "1.4.1" dependencies = [ "console-subscriber", "log", @@ -5144,7 +5144,7 @@ dependencies = [ [[package]] name = "mempool" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "anyhow", @@ -5192,7 +5192,7 @@ dependencies = [ [[package]] name = "mempool-types" -version = "1.4.0" +version = "1.4.1" dependencies = [ "p2p-types", "rpc-description", @@ -5261,7 +5261,7 @@ dependencies = [ [[package]] name = "mintlayer-core" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate", "chainstate-storage", @@ -5312,7 +5312,7 @@ dependencies = [ [[package]] name = "mintlayer-test" -version = "1.4.0" +version = "1.4.1" dependencies = [ "clap", "ctor", @@ -5329,7 +5329,7 @@ dependencies = [ [[package]] name = "mintscript" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "crypto", @@ -5391,7 +5391,7 @@ dependencies = [ [[package]] name = "mocks" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "chainstate", @@ -5488,7 +5488,7 @@ dependencies = [ [[package]] name = "networking" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "bytes", @@ -5526,7 +5526,7 @@ dependencies = [ [[package]] name = "node-comm" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "async-trait", @@ -5560,7 +5560,7 @@ dependencies = [ [[package]] name = "node-daemon" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "assert_cmd", @@ -5575,7 +5575,7 @@ dependencies = [ [[package]] name = "node-gui" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "chainstate", @@ -5610,7 +5610,7 @@ dependencies = [ [[package]] name = "node-gui-backend" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "chainstate", @@ -5645,7 +5645,7 @@ dependencies = [ [[package]] name = "node-lib" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "blockprod", @@ -6266,7 +6266,7 @@ dependencies = [ [[package]] name = "orders-accounting" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "common", @@ -6317,7 +6317,7 @@ dependencies = [ [[package]] name = "p2p" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "bytes", @@ -6374,7 +6374,7 @@ dependencies = [ [[package]] name = "p2p-backend-test-suite" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate", "common", @@ -6394,7 +6394,7 @@ dependencies = [ [[package]] name = "p2p-test-utils" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate", "chainstate-storage", @@ -6414,7 +6414,7 @@ dependencies = [ [[package]] name = "p2p-types" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "networking", @@ -6753,7 +6753,7 @@ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" [[package]] name = "pos-accounting" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "common", @@ -7172,7 +7172,7 @@ dependencies = [ [[package]] name = "randomness" -version = "1.4.0" +version = "1.4.1" dependencies = [ "rand 0.10.1", "rand 0.8.6", @@ -7505,7 +7505,7 @@ checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" [[package]] name = "rpc" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "async-trait", @@ -7535,7 +7535,7 @@ dependencies = [ [[package]] name = "rpc-description" -version = "1.4.0" +version = "1.4.1" dependencies = [ "rpc-description-macro", "serde_json", @@ -7543,7 +7543,7 @@ dependencies = [ [[package]] name = "rpc-description-macro" -version = "1.4.0" +version = "1.4.1" dependencies = [ "proc-macro2", "quote", @@ -7552,7 +7552,7 @@ dependencies = [ [[package]] name = "rpc-types" -version = "1.4.0" +version = "1.4.1" dependencies = [ "hex", "rpc-description", @@ -7897,7 +7897,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "script" -version = "1.4.0" +version = "1.4.1" dependencies = [ "crypto", "flate2", @@ -8199,7 +8199,7 @@ dependencies = [ [[package]] name = "serialization" -version = "1.4.0" +version = "1.4.1" dependencies = [ "hex", "rpc-description", @@ -8212,7 +8212,7 @@ dependencies = [ [[package]] name = "serialization-core" -version = "1.4.0" +version = "1.4.1" dependencies = [ "arraytools", "hex-literal", @@ -8225,7 +8225,7 @@ dependencies = [ [[package]] name = "serialization-tagged" -version = "1.4.0" +version = "1.4.1" dependencies = [ "parity-scale-codec", "proptest", @@ -8237,7 +8237,7 @@ dependencies = [ [[package]] name = "serialization-tagged-derive" -version = "1.4.0" +version = "1.4.1" dependencies = [ "itertools 0.14.0", "proc-macro2", @@ -8608,7 +8608,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "storage" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "rstest", @@ -8621,7 +8621,7 @@ dependencies = [ [[package]] name = "storage-backend-test-suite" -version = "1.4.0" +version = "1.4.1" dependencies = [ "libtest-mimic", "logging", @@ -8636,7 +8636,7 @@ dependencies = [ [[package]] name = "storage-core" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "itertools 0.14.0", @@ -8649,7 +8649,7 @@ dependencies = [ [[package]] name = "storage-failing" -version = "1.4.0" +version = "1.4.1" dependencies = [ "enumflags2", "storage", @@ -8661,7 +8661,7 @@ dependencies = [ [[package]] name = "storage-inmemory" -version = "1.4.0" +version = "1.4.1" dependencies = [ "storage-backend-test-suite", "storage-core", @@ -8670,7 +8670,7 @@ dependencies = [ [[package]] name = "storage-lmdb" -version = "1.4.0" +version = "1.4.1" dependencies = [ "lmdb-mintlayer", "logging", @@ -8684,7 +8684,7 @@ dependencies = [ [[package]] name = "storage-sqlite" -version = "1.4.0" +version = "1.4.1" dependencies = [ "hex", "logging", @@ -8787,7 +8787,7 @@ checksum = "b285e7d183a32732fdc119f3d81b7915790191fad602b7c709ef247073c77a2e" [[package]] name = "subsystem" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "cfg-if", @@ -8943,7 +8943,7 @@ checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "test-rpc-functions" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "chainstate", @@ -8965,7 +8965,7 @@ dependencies = [ [[package]] name = "test-utils" -version = "1.4.0" +version = "1.4.1" dependencies = [ "common", "crypto", @@ -9147,7 +9147,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokens-accounting" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "chainstate-types", @@ -9606,7 +9606,7 @@ checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" [[package]] name = "tx-verifier" -version = "1.4.0" +version = "1.4.1" dependencies = [ "accounting", "chainstate-storage", @@ -9636,14 +9636,14 @@ dependencies = [ [[package]] name = "typename" -version = "1.4.0" +version = "1.4.1" dependencies = [ "typename-derive", ] [[package]] name = "typename-derive" -version = "1.4.0" +version = "1.4.1" dependencies = [ "itertools 0.14.0", "quote", @@ -9803,7 +9803,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "clap", @@ -9838,7 +9838,7 @@ dependencies = [ [[package]] name = "utils-networking" -version = "1.4.0" +version = "1.4.1" dependencies = [ "addr", "itertools 0.14.0", @@ -9853,7 +9853,7 @@ dependencies = [ [[package]] name = "utxo" -version = "1.4.0" +version = "1.4.1" dependencies = [ "chainstate-types", "common", @@ -9927,7 +9927,7 @@ dependencies = [ [[package]] name = "wallet" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "async-trait", @@ -9980,7 +9980,7 @@ dependencies = [ [[package]] name = "wallet-address-generator" -version = "1.4.0" +version = "1.4.1" dependencies = [ "clap", "common", @@ -9996,7 +9996,7 @@ dependencies = [ [[package]] name = "wallet-address-generator-lib" -version = "1.4.0" +version = "1.4.1" dependencies = [ "build_utils", "clap", @@ -10011,7 +10011,7 @@ dependencies = [ [[package]] name = "wallet-cli" -version = "1.4.0" +version = "1.4.1" dependencies = [ "clap", "ctor", @@ -10022,7 +10022,7 @@ dependencies = [ [[package]] name = "wallet-cli-commands" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "bigdecimal", @@ -10079,7 +10079,7 @@ dependencies = [ [[package]] name = "wallet-cli-lib" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "blockprod", @@ -10129,7 +10129,7 @@ dependencies = [ [[package]] name = "wallet-controller" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "async-trait", @@ -10171,7 +10171,7 @@ dependencies = [ [[package]] name = "wallet-rpc-client" -version = "1.4.0" +version = "1.4.1" dependencies = [ "async-trait", "base64 0.22.1", @@ -10203,7 +10203,7 @@ dependencies = [ [[package]] name = "wallet-rpc-daemon" -version = "1.4.0" +version = "1.4.1" dependencies = [ "clap", "common", @@ -10220,7 +10220,7 @@ dependencies = [ [[package]] name = "wallet-rpc-lib" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "async-trait", @@ -10263,7 +10263,7 @@ dependencies = [ [[package]] name = "wallet-storage" -version = "1.4.0" +version = "1.4.1" dependencies = [ "bip39", "common", @@ -10282,7 +10282,7 @@ dependencies = [ [[package]] name = "wallet-test-node" -version = "1.4.0" +version = "1.4.1" dependencies = [ "blockprod", "chainstate", @@ -10303,7 +10303,7 @@ dependencies = [ [[package]] name = "wallet-types" -version = "1.4.0" +version = "1.4.1" dependencies = [ "bip39", "common", @@ -10440,7 +10440,7 @@ dependencies = [ [[package]] name = "wasm-doc-gen" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "clap", @@ -10486,7 +10486,7 @@ dependencies = [ [[package]] name = "wasm-wrappers" -version = "1.4.0" +version = "1.4.1" dependencies = [ "bip39", "common", diff --git a/Cargo.toml b/Cargo.toml index db8c5fa950..7e023cd5ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ homepage = "https://mintlayer.org" repository = "https://github.com/mintlayer/mintlayer-core" readme = "README.md" license = "MIT" -version = "1.4.0" +version = "1.4.1" edition = "2024" [workspace] @@ -128,7 +128,7 @@ utxo = { path = "utxo" } [workspace.package] edition = "2024" rust-version = "1.92" -version = "1.4.0" +version = "1.4.1" license = "MIT" [workspace.dependencies] diff --git a/api-server/CHANGELOG.md b/api-server/CHANGELOG.md index 97c298eee7..6849f4b631 100644 --- a/api-server/CHANGELOG.md +++ b/api-server/CHANGELOG.md @@ -6,6 +6,8 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/ ## [Unreleased] +## [1.4.1] + ### Added - Pending transactions are now served through the regular REST endpoints: `GET /v2/transaction/{id}` falls back to the mempool of the connected node when the transaction is not confirmed yet, and a new `GET /v2/mempool/transactions` endpoint lists the pending transactions (paginated with `offset`/`items`, with an optional `order=dependency` parameter that lists transactions after the transactions they depend on).\ The responses have the same shape as the confirmed ones, except that for a pending transaction the `block_id`/`timestamp`/`confirmations` fields are `null` (the values are not applicable until the transaction is confirmed), the `fee` field is omitted, and the spent utxos of the inputs are not populated. The decimals of a transferred token are resolved from the api-server storage; if the token is not indexed yet, i.e. its issuance may be pending in the mempool itself, the decimals are taken from the issuing transaction of the mempool listing (fetched only in that case), and a token that cannot be resolved at all is rendered with zero decimals. The endpoints proxy the mempool of the connected node, so the data reflects the view of that node and disappears once the transactions are confirmed, evicted or reorganized away. Unlike the other GET endpoints, the cost of `GET /v2/mempool/transactions` is proportional to the size of the node's mempool (which is capped by the node configuration) rather than the size of the requested page, and `GET /v2/transaction/{id}` pays that cost too when it has to resolve the decimals of a token that is not indexed yet. diff --git a/build-tools/docker/example-mainnet-dns-server/.env b/build-tools/docker/example-mainnet-dns-server/.env index c881bbeabb..c8c8d7a7c9 100644 --- a/build-tools/docker/example-mainnet-dns-server/.env +++ b/build-tools/docker/example-mainnet-dns-server/.env @@ -4,7 +4,7 @@ COMPOSE_PROJECT_NAME=mintlayer-mainnet-dns-server # Dockerhub username, from which the docker images will be pulled. ML_DOCKERHUB_USERNAME=mintlayer -# The image tag to use, e.g. "v1.4.0" or "latest". +# The image tag to use, e.g. "v1.4.1" or "latest". ML_DOCKER_IMAGE_TAG=latest # The user and group ids that will be used to run the software. diff --git a/build-tools/docker/example-mainnet/.env b/build-tools/docker/example-mainnet/.env index 52e5e20b0e..e5e1d51aa4 100644 --- a/build-tools/docker/example-mainnet/.env +++ b/build-tools/docker/example-mainnet/.env @@ -4,7 +4,7 @@ COMPOSE_PROJECT_NAME=mintlayer-mainnet # Dockerhub username, from which the docker images will be pulled. ML_DOCKERHUB_USERNAME=mintlayer -# The image tag to use, e.g. "v1.4.0" or "latest". +# The image tag to use, e.g. "v1.4.1" or "latest". ML_DOCKER_IMAGE_TAG=latest # The user and group ids that will be used to run the software. diff --git a/build-tools/win/nsi/common.nsh b/build-tools/win/nsi/common.nsh index caffd5614b..000308e07c 100644 --- a/build-tools/win/nsi/common.nsh +++ b/build-tools/win/nsi/common.nsh @@ -3,6 +3,22 @@ ; the template directory to makensis via /I so the bare name resolves. ; Pure ASCII only (the generator writes the rendered script as ASCII). +; ${RunningX64} for the MintlayerRequireX64 macro below. +!include "x64.nsh" + +; Refuse to run on 32-bit Windows and switch registry operations to the +; 64-bit view, so HKLM\SOFTWARE entries (uninstall keys, PATH backup) land in +; the native hive instead of the WOW6432Node redirect. Must be inserted from +; both .onInit (installer) and un.onInit (uninstaller): the uninstaller is a +; separate process and does not inherit the installer's registry view. +!macro MintlayerRequireX64 + ${IfNot} ${RunningX64} + MessageBox MB_OK|MB_ICONSTOP "${APPNAME} requires a 64-bit version of Windows." + Abort + ${EndIf} + SetRegView 64 +!macroend + ; Silently remove a previously installed version of the product whose ; uninstall registry entries live under ${UNINSTKEY}. The stored ; UninstallString includes quotes, which must not be re-quoted, so they are diff --git a/build-tools/win/nsi/gui.nsi.in b/build-tools/win/nsi/gui.nsi.in index 4a28ca0c14..9468fb5208 100644 --- a/build-tools/win/nsi/gui.nsi.in +++ b/build-tools/win/nsi/gui.nsi.in @@ -2,6 +2,9 @@ ; Rendered from gui.nsi.in by build-tools/win/create-nsis-installers.ps1 - ; do not use this file directly. Requires NSIS 3 (Unicode). Unicode true +; 64-bit only: .onInit/un.onInit abort on 32-bit Windows and switch the +; registry view to 64-bit, keeping HKLM\SOFTWARE writes out of the WOW6432Node +; redirect (see MintlayerRequireX64 in common.nsh). RequestExecutionLevel admin SetCompressor /SOLID lzma @@ -38,9 +41,15 @@ OutFile "Mintlayer_Node_GUI_win_${VERSION}_Setup.exe" ; Silently remove a previously installed version so upgrades do not leave ; stale files behind. Function .onInit + !insertmacro MintlayerRequireX64 !insertmacro MintlayerRemovePreviousInstall FunctionEnd +; The uninstaller is a separate process; give it the 64-bit registry view too. +Function un.onInit + !insertmacro MintlayerRequireX64 +FunctionEnd + ; The install is machine-wide (admin); make the shortcuts available to all ; users ($DESKTOP/$SMPROGRAMS resolve to the common profile directories). Section "Install" diff --git a/build-tools/win/nsi/node.nsi.in b/build-tools/win/nsi/node.nsi.in index e95b0e0ac9..b719d899b2 100644 --- a/build-tools/win/nsi/node.nsi.in +++ b/build-tools/win/nsi/node.nsi.in @@ -2,6 +2,9 @@ ; Rendered from node.nsi.in by build-tools/win/create-nsis-installers.ps1 - ; do not use this file directly. Requires NSIS 3 (Unicode). Unicode true +; 64-bit only: .onInit/un.onInit abort on 32-bit Windows and switch the +; registry view to 64-bit, keeping HKLM\SOFTWARE writes out of the WOW6432Node +; redirect (see MintlayerRequireX64 in common.nsh). RequestExecutionLevel admin SetCompressor /SOLID lzma @@ -54,9 +57,15 @@ ${UnStrLoc} ; Silently remove a previously installed version so upgrades behave like ; fresh installs (the old uninstaller cleans PATH/service state). Function .onInit + !insertmacro MintlayerRequireX64 !insertmacro MintlayerRemovePreviousInstall FunctionEnd +; The uninstaller is a separate process; give it the 64-bit registry view too. +Function un.onInit + !insertmacro MintlayerRequireX64 +FunctionEnd + ; --------------------------------------------------------------------------- ; Appends $INSTDIR to the machine PATH (idempotent); writes the registry ; directly and notifies running applications so new shells pick the change up. diff --git a/common/src/chain/config/checkpoints_data/mainnet.rs b/common/src/chain/config/checkpoints_data/mainnet.rs index 62b297a62b..be0c7e7476 100644 --- a/common/src/chain/config/checkpoints_data/mainnet.rs +++ b/common/src/chain/config/checkpoints_data/mainnet.rs @@ -1159,4 +1159,133 @@ pub const CHECKPOINTS_DATA: &[(u64, &str)] = &[ (635000, "49429D05126C159432D17F34C9BE7837356818744BE1ABD256E751F4C8190D25"), (635500, "0924F98B4A83D6AB78F55C9038CDE5F0369A269D4CAB18AF6F2E82C71E34DCB5"), (636000, "FDFBD65AA35758C05CF42FAAB7C890129BC6844FF962C7101F3F8B46925E1F56"), + (636500, "F9F1C87C34B48B697E315EF6612D89B6946DAACDDAFBCACA904539B119765C88"), + (637000, "D6724B5D85B7A7A707A9AF9605D96F743A595B168FE752D1FDA5D8F4CB11053C"), + (637500, "5FC8A6BEB39F51808EB8F1070D0BAAFCF877F528C39E3B93701D11F2E56EB997"), + (638000, "FE1C06FE996946AED0BC05CD2BE64393250F7232C387F83E499815AB43DEB2C8"), + (638500, "838DFCFE5E9B3E2F52F5FB2BA5F32544A84C75862C719CE47144A64821F4B92F"), + (639000, "E98738DA0BD0DFA6D5ACE9ADE43EB9783B2F4B46EC066D817D08B481710AEC0F"), + (639500, "00EA0FCDB32FF082F8EEFADCE14F388D58FE0BA0BCE6D9E451D79581EA8564E1"), + (640000, "84A92EEE20725076F7FBB1035555F9195B18083FC49172C47E1FED8D6EEAE888"), + (640500, "7B1357CAF07DD0D1D81DA6943A5820F8BDBE294F45A78AADC4D72A5BD98638DC"), + (641000, "0B729575D0FBED65787630A2E5191018F1926928FFDCADA1543071D7ADC77A88"), + (641500, "78D5B531FB86AF7B9A9CD21A01FD6D4C01C56379D79D8C340A0227480DF1193D"), + (642000, "5A200220B6EB7E24361B87BD5FEF0CC675CEA26A833452DAE0E1C6C07E96E2AC"), + (642500, "DAC2A3B1D0103B71385376D297B0A91BB0759DDC0911CE7E977C36C9A21102B7"), + (643000, "D404467B74494C31FA2365DBF4FB28F3EEA552DF0299DBDF58AF7728A87273BF"), + (643500, "64C50791FB43206B595B23EB9B619D4722BEC414071C5D113F6E067A9B6F5B2C"), + (644000, "F000F1AFABEC947EEAE856CFBEA52B73ACDE813D286D58972E3C8A4FE711C296"), + (644500, "804C3A59892B24F9901E11C966A4CAE56CE752339FF1A64D19F773AA3684785D"), + (645000, "21474A1E3402A2E3415FD4EAD13E29CF71F0B11E8F091CDA9A61234B6405335A"), + (645500, "48106F3B2B4828984753473403DCD3802CA7852ECA928C9ADF0BD7EA4BA20898"), + (646000, "13FEC5FAF0FB67089CB97B5642B4044628CCF87A4010D158629138EA907B17C9"), + (646500, "462835F9F105DCCCD45671043927CB7A3B6D805D80D04F8ED0153BB9A4A0AF76"), + (647000, "C5E62E7F21D88328F784D6A104B365579F11AA74D0AF3F5424A62C0C2CD03E6D"), + (647500, "B2CD1096E84DAFA9559B66B8AAD70B89850FC78D8B56349E46DF545DBB4F3F59"), + (648000, "87C640C97177065968D74281B95781409119A30747C4E529C0C7A998938D2900"), + (648500, "27E2DF571B0DA1DBD28B77404C1FE15DF71E5DC85F128F66EBDE48B5CB823464"), + (649000, "EE31CA5BB48CC87D5609B12708383EF8E5294FD296031466C92525DD6E576D4C"), + (649500, "6D7B67BE1D404DCF47863335DB201C248FABE0D50D5F8FED34FE30B05B64B1E3"), + (650000, "66CE7E99EEFD1AD4B943DED598326A2C9C68566FECF85AB76B6EE64E9445FAEE"), + (650500, "DC2A30FF40E00BDD9382EDA57259656B9D81D78507BD66DC058B3F00A53D6507"), + (651000, "BF1C9699C0F9DB5D6247C423B5ADAE4D9FC5513CDD66DDACB665EBE8B1CF6925"), + (651500, "C8EFDEB3A6D2112485F7A9BA152FBC082AF5854F0FE52BDE2571C768BE4BB1BF"), + (652000, "A29322351B20374859C8A702C04D944706C35BBD6D0ACC9F56472DBD4338CC91"), + (652500, "F73C07473ED7BB7DF4ACE5374B162631E61C3667FD2F48A1794762D0B8455988"), + (653000, "D5134A5C248EEC9B95F733E544870FDA45C24170D4853F63EFF76002A993E33B"), + (653500, "50816DD32890DBA64522B0E0C882D479DD2DEA3D36273DDB2A77B1A30598CF08"), + (654000, "6AB5C867B61E4C9E4A47EA68E46B3772444357E858CE754AF453043DD003AB63"), + (654500, "AE43741289EDDDFA63D2CB7E0165ADF789D2AB1E145C8F2FEFD4F0BE3D85FFCF"), + (655000, "1DBE0D0F9ED5A076CCFBFA6349714BF88DC1E6619221E7257694FB3854CE952C"), + (655500, "920DFEEAB03FA120785CA127BDA5ADE4AE50E821D6B38766C76F2F35CAE92579"), + (656000, "D6E1EE6AF287D5CD4F9762DA87CFD845D30EFE4FF0E928DCA08D41DA33AFB6DC"), + (656500, "F4842B9568D8DF0352AB8E1F6BE3F9778CD6F540386AD885A17A07FCA0D19916"), + (657000, "776765ABC58230A3C9CCB81F33F942711BE544D2164B36B13407E6534EC1A336"), + (657500, "441CD342CE023D60E1378121A3DBB7A8E71146010B7B9C7FD8716230627692D2"), + (658000, "7A5DF4BDAA1D6A20359A2F32BBA910F32D78BA4AC89C3405B9CA59E982521DF8"), + (658500, "8A45DEB97FE08AD88BB25F2339CB0BEE1D4D466545FEE41334782202DD66A2DC"), + (659000, "7FAC23309324F35AE83F3E6DAFD740C211C5C7F5424052811DA5F7CE05511CD8"), + (659500, "4C04B522375E95309084938D87E24FAF1B7B5C4A19B123274FE4B4531181AAAC"), + (660000, "72554EA6F9AC87887CAB18797D4005D017EB44FA8F20414605993F2A15251A16"), + (660500, "944B06197B385DEC926F0BF69E2A2915F5F624E6B1B90EFF7E9295E3770DE7AF"), + (661000, "3D7678E8128FBEFBA6BF87CC8C9FAAC065D42EB3F8280B8A3BFECEA220D9594A"), + (661500, "84FF0F431B8460C5F58F7A284018DDEC93D46AC3ACCCA498525D0B6BF6539411"), + (662000, "8A9E01311C5EBEAA800A80780DA43DDAC9B9BCE735F24DE66B36161D9A0E1550"), + (662500, "1458915AD352BC26662E10CE47560416F7CC2679C063083D0C442B1B97313509"), + (663000, "F044417D35DE37FD83E595903FE4622A19A26581333815D47A8AF3FDF27C8C46"), + (663500, "6CA09435240FF58E5D095D97BE64F98975804C385998E3533E198BA4E4A5442B"), + (664000, "63D4DB7B974EC2BF6A7EC9495CA74C7217A02CE1014D811D215A8AA5787D99DD"), + (664500, "469E4068ADC1AD14624D2E117F69FFB6A0E92599F06A78BFADA776B005749412"), + (665000, "B86972EB1F73AB1BF9ECA47E2459C4BF18933CBE51DEFF12D58DC055D804DB4C"), + (665500, "1A9D4A87B8DA8E047DF31177DF008DBF4D69F0EB2FC78EFE71E15A51369B7EF9"), + (666000, "247286D02FE797596A94DB5783402E818A2FCAAB12E50FA5DE74C418A3A7F458"), + (666500, "DF4C0C260AA193FE02BECD6C6A8F4A535B04FA7F30B6F3C71081F8DCB833F9C1"), + (667000, "18162958EC5B07DC0A9A79A040A1BDEEE68DD21E38265F71AED0BCF7612D1D87"), + (667500, "2F1DA0D6DD911ABE40EEF80416D9EEDA0075C90D842FBD95E9C4B63CB7EAB611"), + (668000, "956772D1AC2A2D729EC7F52E7259C75AE67F7C7D6075852DA502B0C585973DAC"), + (668500, "3490D9CDC9BD39B28A777593BF334C7E24D699C2627D8FAA6EE6D9446519381B"), + (669000, "4B7D9ED3611516A631632FEF976917E013A5DB7EDB1CD8919809177B8854BA9F"), + (669500, "C623A5573A6A7A2A308B704B3B3C0C3C029CC7D00BBC67E1D65373A6B07BF663"), + (670000, "130A66A72E972B88DEB73DB65478E9089B3314741B6E4B2412070E8E3E50955D"), + (670500, "FE5804ADF67DFA79CD430F13A64DF984F4EC9AF8A0F1F23B96D14A76B46503D3"), + (671000, "512290B2CE2548D2D881FA7461F31D25DEF5ECCB084E1244B556DFABA368A3EB"), + (671500, "0AE33A5EAF00A3AF7B5889DF493240B84A55C824A05E45D57A57A87D83458EF6"), + (672000, "EED0741C4DC0B0E528AC3BDF7066B663A9B222AE7ED019B46F88BE4E28DFB991"), + (672500, "E29EEA9B24BC7EBEB16F8193CFF4F72501610A6332AEC9625BF95E60B8606E89"), + (673000, "7D68604A053471A9F57887A17783ED9C0D4B11994A15899490AF2718B213BDDA"), + (673500, "380454F8F350AD4A1EC4A935791EE33E937593DD8251B8D3E63EEA24C2A3B5EE"), + (674000, "00626382B8E70ABA877F2D005CD86818046AD034DB1781081BCB548D431C5306"), + (674500, "E034DEF139DBED8BE66AE8D9F4EFB436A6DE3D7AA5AF3AC567D964B4CF16C85A"), + (675000, "352D6F2ECAA88F28000606F73A4B8D172E55AB14C1F78265F9CE60F563D16D67"), + (675500, "99B7BE66B31DD893B1BE93A362E46E93ABABABB48105CCA7267188964B2AEDD5"), + (676000, "EA5E8E9A47C906E9A86C4D3B06AD57811B895B1850ACE98BDE954CF3A21599F9"), + (676500, "95BE82BD9B98909780EC1028D6803807F3A89EF9A4C4421B7AD123D82F7CEAAD"), + (677000, "B4B41CE302864A590BD3ACB4FC3FE4E974352AB9AF25BEB164BD29222F758CC4"), + (677500, "4B0E4CBD2D854DEA5B970A0D933AC550CCDE4D5D85EF253383D85EC446912C3F"), + (678000, "A286366BAC3180C8FB3F9FE0ED89487047CC3F91FC93F8818B30135EECB34D9A"), + (678500, "50295AE929179C6F3D93A7E3B2B0FC7CC72778AD5F31E7B7C4D52D814A1FF859"), + (679000, "ED9E1EFA9C48066B23A962009C4D7DFF9579591353A0DE440C120F06E5DFAE2B"), + (679500, "1D1A862298B96647F2CD07E9E6DA3AFBA77DFB86AF62B9622315151AD92E31ED"), + (680000, "A23C12164A07404A5D3D5D8AAC55BB6E94402F6EFBCFEFA3393A6ED0810127C6"), + (680500, "74225FD586B109671702F58373FE761B236AB9ABCB7B771ED430D71E605F394D"), + (681000, "1FD11B3A2E49D6BD7D53AF9EBE8EA8C9DAD5E3F8962DA2685175CC49B2F938DD"), + (681500, "E77772E65AE18A79E9E7B6F5920A9E65D30511ECF1FB793FFFAA86CE5B3CDE92"), + (682000, "4878D00515F7A8D20BE7C474D09563ADA3B3579A3474B7CB80C013879E92E6CF"), + (682500, "2E19CF113420A47FFE35819D0DF2FCF00F2C284ECB12CC3053AAFFA3015B5FC9"), + (683000, "1561D8E23BD51D7A648073FC366388C06F202A091790F06B0E875349B228DA0D"), + (683500, "78628DD498A196F50EDCA73229AD268814C6B8D3CEB48660487EBA06A518934E"), + (684000, "D61F42D933544EBCB46424794A853ECB113065BA84C091E46432606634CFE9AF"), + (684500, "A3313654036DA2CBC76215F8B49642EA4DD1E211CA51FA06BE166E401FAE49C0"), + (685000, "D5CD1C2339E3D041ECC636C992AF798F2E1FFE6170250B05F7F8219CBF44B930"), + (685500, "4C93A6F796DEF0FB6EDB889F4EB071AC13E5F956042DBBE05B20BCB51F6802E1"), + (686000, "B95EE341731A876E42C0EAE647F2B51B2CC43DBF104DB14670159891FAE83043"), + (686500, "F8ABB332C93847E7E3A3AC69FB90A728FCC662C35337738AED7E6206885477DC"), + (687000, "7F475379E635D756A9A2AA009BC91A4099BB1C5D1199CE9F0EA9347C3BD7F86E"), + (687500, "D2719194CFB66717ED6B139CECA1FD4A763E42BDF0BF09C220789BB5161D0F14"), + (688000, "878C1394DF8A9E59B9E07645332181F923059002D4F94BC3AB2A96D1D5590B7F"), + (688500, "1587CBDC829E0F1F610CACCF06DFCB79AEBEC41EBF409C04FB5DDE669560F053"), + (689000, "01966E6E5C6CD5F147632D4652EE6E0480EB1356C018E17D55A96DB0EE7AB74E"), + (689500, "DB18F432DA29F2D5DEA47D63E74498DA689D28CA4E2AB3731CE3824A9C89301F"), + (690000, "6F23A4C6B715A27E7C61B7AEDDEE6AF1D6485DC0943B71366873CB8A41B9A15F"), + (690500, "EECFA8AEA61F5E64E15290BA1C44E903B3A889FAC912B8211146B6231E64BC44"), + (691000, "D67200882B9F662D30D4BB5DBB173E83D60ADAB8AC93664CBDE5765A3E97B184"), + (691500, "90EF51C4B03BD3A51C7683E5C33104FBE4C5E1FE48EB78E0130AD03236643FC6"), + (692000, "76A297574D02B8DEE50AC7D8710FFDB7C259ED21B7313D429CD913B58692C5DB"), + (692500, "CDAD127A1B80FD9DE5A1076DA0DBE136191F92D0E2489B82AE3E766F9A6A224D"), + (693000, "E8A82A91F6354D079EC4393677174DFA3D93EAAA5601E8AEFDF1C572B8885020"), + (693500, "90BACBC0708B3ECA2F53EFB54E8B3D2CA1D72CD9A1F440EB043D2512990C4BEB"), + (694000, "A32CCD036C24E045285D1781EF673F81E6D095C3F47ED2EBB9855A36A0A65EA9"), + (694500, "56A88974C925DC723F78663CC676B276AC7AD7E3122E4FA92732CB935BF7421E"), + (695000, "5F6F58ECAEEAD312AD16CFEC42A96522B5871915BB49EF4165C0B1158153A208"), + (695500, "CA7B01A8E11813563B3902D4D8AD96DFECDF9EE1513CC4F1D771E50376C8608C"), + (696000, "5D7DE87E01FEE26082355C167FB72B34DE933BFC40C8C63A6376610136080DFC"), + (696500, "4208DAD5F17DD3749F26C4EB1F9DEB0716C0FC77D82827A391F048DA4A10C00E"), + (697000, "A2611E5FB9664BA988A2B5FAD6E065D373A0F573E1EC7EB107C66281FA0B4829"), + (697500, "2213644B52CD19EABD13C75F8ABC488E0BC3CF71DBEE93A488DDE7000AA3893C"), + (698000, "143DF6E67A2079FDE8149B186EEE82E698471F89AFAA87D2FB32DCABD6E6652C"), + (698500, "F88D111F6EBA544F937497C0BD75BB534544B3ECD4C93F850CEB99C1635D6E5B"), + (699000, "1302EB2D39751A826ACAA784C9F06E9C8BF2B6A5AE8DE115EA4283DF3F0532E7"), + (699500, "5E8E0189EF62E384BE476786A8A09DD4120035BE18EF8A3A9274181528916408"), + (700000, "EB648FC0DC411551FFFA7F0010C9C06DFBE70CEE2B9B13D10B5BB4ACDACB4A97"), + (700500, "99E55E3E432526FE8A69C4D9B167DD77FE6D1FC625616A9B961D2C70EE593A46"), ]; diff --git a/common/src/chain/config/checkpoints_data/testnet.rs b/common/src/chain/config/checkpoints_data/testnet.rs index 0d678d2111..e8cb00ad5c 100644 --- a/common/src/chain/config/checkpoints_data/testnet.rs +++ b/common/src/chain/config/checkpoints_data/testnet.rs @@ -1417,4 +1417,133 @@ pub const CHECKPOINTS_DATA: &[(u64, &str)] = &[ (763000, "6D29F9126BEC5B81BF1C9510149A2CE0692FA285F05254E703880CC82DCA6268"), (763500, "1F47C2EBC0A5FC44F1D868EDA6C3B45FE1C6AE36BB55C22235112FDA9A475BCF"), (764000, "E265BC8300181C341E054145CD1ED5A8DA01F861B6670745486C20209BCFA208"), + (764500, "C06C89F6D9ADCC2947CC7400D2811F347BAA69290D84D1290686F907A43E5DC2"), + (765000, "EC4A065CC7DA808F008CBE2FC5EDD6E53AD31B24C3A670DEFFF0065DF282C9AE"), + (765500, "D5EB5D5ED254A8E7BBFF622CCE3541FD715F27D02610D2BE8FE1E47A7220D75C"), + (766000, "155D71F838F875543AA13EBC1A813D3A2EC8F8970B133919C66762BD5E19F7BF"), + (766500, "0C82EF218D03360322153ADCE8F61EA258709B87BCA9AE5C21EFFA9DFA35CA79"), + (767000, "94DAEDED078F315E42A2B09BD88E0DFB4103986F5C76C8AEEA33D2193C5D2561"), + (767500, "5E25D6958DB31CB111A27E67D73D347C4E588C892D8D668FD73D6AEEB61F93C5"), + (768000, "1E491BAFAD374136FD7045789C21F64B8C82021E357ABBC390D5864471EEBBB2"), + (768500, "F6EE81712637FBA033C8C5E1319E60E2AFA00C3085558BC85614A210414A90FF"), + (769000, "EE2C5F7ECBC9245D06A2FDBF609B527384933D72A714F015691005B5DCEFB56F"), + (769500, "66C368D20B5C6AD3DC650D1546845C9F982C01CCB8956C2C316DBBCDCFEAAA89"), + (770000, "129F6109FCCF34C7589B119B380BE0082FE16B4A03879F00DD0CA6F8FB56E528"), + (770500, "AA3A5B01F579EE5B412B8228B28CF0D0E52C6F77BD36DE61FAAC833306077468"), + (771000, "6117435C1F4D172447AD471C140EE13068268219EA563B258E39A47BF686044B"), + (771500, "5C27E436724B1226F7B99FB2906549C718293CF758C2BBE11848255F5579BE23"), + (772000, "86308FB0F927889DB0F0A53E7041A1FDC03EB70B13A6E9820E870BE9F556590A"), + (772500, "61F1091E68B160438885DE537F26B3EDD2D6DA843173AFF28AA04761EA535332"), + (773000, "A8B6CDBE8094382CA3919B1589AA1A1B32763F0C6038B7157F8C08E0ABFAC692"), + (773500, "D91C7621301B44F62709EF43C10A22FF2D85B29396174E926589212CA6085534"), + (774000, "4D72329E9E79934EEA114F7E353DE202B1398411609E619B5CD82C7C3C621A47"), + (774500, "F1E6F184BCDD193BA91A02E87AB65ABE01451A83935BEE80E8C5561F5EC28280"), + (775000, "E97CCC6AEF3B959E4540A455D44AD4DA336260E60E3E1EDA87B3E6E543535CFA"), + (775500, "B2BE44DFB66444F666297A9E3F1BB76CA7C333B76567C3AFBF161BA22636516C"), + (776000, "487DF31EBC555AD305255B667CF4CD2610BCB934AD4B5E43B0EB23AA915B0E42"), + (776500, "4C98453952482C36943F6D6E253D79EA4A0C07FD58AF988D1C76D5212CE34ECC"), + (777000, "4454F8176C91B45A67E31FF2D49047B8D1A5098A90E64C3CA2431BD1499134B4"), + (777500, "68D370F2A0CBDF4E4B067855211DFEC128B495B324E9253DAEE651EDBF07BB91"), + (778000, "4DA53A2048B4F13890C669DAF962580165BF7C1E38147E183A4CFDC3765E25F7"), + (778500, "54718E5DF4A8930724B3FBFBFE62B85C423429DCD09C151489673602200E364C"), + (779000, "222A50E645284908EDE4AFBAE649D4B6623FF8BF67FBA7A20A4944C7A3013F13"), + (779500, "C54F476623A56E315FE7E092A66F924A3F09AACCDCC0B242DFE200684FE52899"), + (780000, "583C58FABB0B38238FC0E23B3982DFBBA130A2020F75F8E3D97880BA41D53C79"), + (780500, "44358E4A5B33D6EA5C1D0E9D2A40B52751F952234A9F9038D936E2FA24E85534"), + (781000, "3B9C31D5D8E31B45CAA06AB26F300F4DBAA2D22B5BF21E62BEF76BEF432F4817"), + (781500, "FA6BC4BC08997E39AA19D7A467E95D4DD8B9465E799488671782B682941E7894"), + (782000, "5B77C93D914F16DB92CABD90417CA0947C021E4FA3F13CF69C6EABD2E2DAF8C2"), + (782500, "9FDEED38239C7ADD62C17765F103B3D22A4A42E78385A47C13EB7A1669206E5A"), + (783000, "29FFDE698D9F05F5E23D2E94C0F9886A48D64A4675907F0966D525DADB945926"), + (783500, "1637910ADE9B4FE22E1C94CD3E7F5E50B131A610E00012BDE3303887C191903A"), + (784000, "A68D25D59CA6351656E4607D73DEB663CDD001E57B57164628858A5BCB8466F9"), + (784500, "34E32D752207332A7F86DA80D92D6FBADB44F022D98CF8C2AE5B8E6CCB11E774"), + (785000, "35ED5413DAEDC850564BEC623923507A34EED230DFC329D192CF6DCA325E1AF0"), + (785500, "D3E95FC61DBD63E592FCC054D96F5C636AFD76F0B1C3E4E96B402941C7164A61"), + (786000, "107687776D97AEB451E29189F73467F21986D62350EAB979E57DA8AAC3ED4AEF"), + (786500, "A8195ED02179973439F429EEB980C1A2C3D1CA103AD1D467145FD43E6F2E1E18"), + (787000, "ACE92D00D0BD9E8C849F223C6E67D0AF196B9C43CB3071CCBCB554FFBEB89A36"), + (787500, "799028848FCA67DB6AD712A4D449583458C61D60155AE9B7FDC53B5920FD6D4F"), + (788000, "6730042047F70C57A9B9B7A8DB78BCAC92DB0342D0870C62FD5F547DD6D67B8B"), + (788500, "1AEAE643E0C9A0E52DE2C60C806142910B08237FB0B0693763DB81BA6DC2DA29"), + (789000, "EF27B4FA164EEC1A94BDD949B0734686B8B41E899EBADD34672072389B4F2E71"), + (789500, "97571A70B06C6F7C53D2DCCC4A7B418461E8F1AD92CDA2C1BD3328FF8EA93CEA"), + (790000, "6A2D1FAB7C7EB6F69C894CC357215B2F66AE75C2DEB0360D6D2F85C0BEA4C4EC"), + (790500, "1563C67973A0BA7A2CEC0E853F241B5051EB1FF52D562D18C981B0CC0FC3C678"), + (791000, "5724362BE438D2F7C97B2961F46CF6E60C82CBCF5B3E92A457BB3733D98C9458"), + (791500, "99A74BE8F881E1564283DC4B92D60CDCC7AEDE47D81500076E764F82639239A7"), + (792000, "B04ECBA8DF439163074E73D5C6311EC89A5FBDECFDCAC46544EAED9EB1C84850"), + (792500, "2713F9613C487BCCBB0D41C396F8C4FD1D423743D607D77E241C05ED2BFBEA90"), + (793000, "E95CE47BCEE3DB408FB9CEECE55C84C0A8FF436EAA116858AD8BCCD85B5B14AE"), + (793500, "4019B3E6B1C9148FE8234A6476DE78105E259E98DB0AE8DBE108BD3774967B65"), + (794000, "568701C54571D2353506DBEF32DAA91CB0E89F05F7BDB376462EE21ABCEB5428"), + (794500, "3C2FBFF8F945BE838B7C2C4C2199E1A166BD180EB8A67633C71DE71ED05040BE"), + (795000, "917FCEC2733F96D80BD8F31729084FF46F030918B10340A647360EC2369A973C"), + (795500, "2ABF40F679A0DFEED123F8C31076D118C0671111828453FAFC15D3BD2F8A3FB3"), + (796000, "1AD7B09B626613DB6CEC12D20665A56C8014B06E9DA149E98D5F89B22FE8B835"), + (796500, "000052390AD62861B9242925EF351FB0D39A5143D2A689BA2AD040A12F396DED"), + (797000, "AB6FC2467A3ADFA7085B44ED4C3E88A68AC866C682F5AA06856274F41F8A1432"), + (797500, "87665347D7DC8D0A5AEDCECE5C442D800D99C459CAED96AE7042CECE84249D09"), + (798000, "2EC99179F21C4E7F36482A544503926AFE4BE0AA25B233AE7ACC32334F5A2592"), + (798500, "380C91247E54268D0992BBDB4E39F324B5A3795EA5B1E37E219A3154B794B1C8"), + (799000, "D51B16CFD40F5F5867CA8FDB4B83CAFF1B5FC76803FD5CECF74F73246D0DF442"), + (799500, "BA267B83E1D679428D74A5DE2B0C1DA7A01E9A76D3485D9107392A12AB12F437"), + (800000, "0778E119E6C06AEDA1B1D65CA3970160D729A943B461E556D3F7ED63A42E23EE"), + (800500, "367342B65B613122B90F186337DD52FE4128A8AE1C761C5DED4C86E736E5F874"), + (801000, "2E232B650D512A52F12E8A5D2656F0B7DB1FB52DEFDDDE2007667C58336676C6"), + (801500, "2806103311335615C358FFC72047AC26F187C2A2DEDA1CC5BDB864E138FC6973"), + (802000, "BB42010EFA33D68578D6B7D75ACA4F00A5AFDF514450F0E1391A462BE0FAEF79"), + (802500, "8957AB2727C5ECC8492C19E28723530E4DF30A9D3B932205D5B5219F113C8812"), + (803000, "0C73D66225CA235DB9A99C86A3FA800D4848DEB30BA6ED85F4DFB233D29C5FAF"), + (803500, "5A589ED0523BC6A690BC04C5834ED5F69939539BE6AA55712F9F964B84684C44"), + (804000, "3F39800AC338EB2226026026A40F578C0B67248181DDA364DD758BB04404E43E"), + (804500, "3EAAFEC994442F29C74A36D2C280CE1ED7AE455E8B1D7B1429BF5C664420F4AE"), + (805000, "6D3CB20BB30D3B85DBABFF44DB7A0B3A0AD3E170C18F1AA8A5C4CC3BFC7A236A"), + (805500, "16B4796E969B512B5EDF9590AFE5D6AFD356D30751C15CB30F14917A58ACD1B1"), + (806000, "EB7B66E6980C85784A57206FD3A7B97699282C793FC00B9757F0AD7778647A98"), + (806500, "9E70E4700A6B5EE7FCB7339D1AB5E5A859F9BCCB25789BA28A88F26A9EB25848"), + (807000, "541F72222125DE81FC55AA52B60025FBC7537CA35620F5DA70D9BBEDE0184500"), + (807500, "16871BC3AB4385218F976C84E21B00F9752225F7BEDEE660B03A52AEE806DB61"), + (808000, "E4D1C69A8B7A0A54526E32CD98B9F0FBFC76C6CEA8E32262F3F0E0A6CA1E1CE5"), + (808500, "91F34D2FBCA84E6410B6C85BF01C46F0B63D60C8F024C6DE4B238776125FC637"), + (809000, "827C00F2CA4E7498C4A2ACFECEC1BFB86B22C55ADA0D6F76CF60B2BF26330B93"), + (809500, "C570717AF360B7BE560C878F78E9DB914A794086D7C3BE08505A14E895FD9E27"), + (810000, "08FF628410B79339CBCA4E9D9ADC1B2D0A9A35A74C87EEF9AC17FD6BFB93B7A3"), + (810500, "00C0AC589A26C7D3A972146BD69914AE452AE3178375D3BC6FF3461A55C7BB04"), + (811000, "F1486DBCC0F22E85069C5A2B1064ECDF8E2245332989BBB8D896DC9739F733CF"), + (811500, "E94682221F1C446D637B0F2DA953159576B063C5E92C29EEB83AEE90B4E598DB"), + (812000, "B341BC659B22F23D596A6DC9F0AB94E3251DD79FB8C356ABDA08C12796177C42"), + (812500, "F9C190227D4089D5A1687A4FA7B73A8103FAFF38877C132778B16E9C47749E7C"), + (813000, "232EA974132E5A9C0D189AA0E205B05F8E93314C8CD956E69506E9FEEE946DEB"), + (813500, "587A25A7ACFA5323BEFE56128B9188F57D8D481002BD6920F1DE48B4C2F83890"), + (814000, "9433E0C86EE1171DBA4190F085E55783201CF59BEA914AA92414F9EA8455A439"), + (814500, "76DC25872F49A350DE65621C611FBD5F3E545791EC2130F5E3C024098CD814B0"), + (815000, "F35F36AE6E7732D67EAF97AEDF571A83630CC586C4E4814512790853F84AB5FC"), + (815500, "2B96E22C996290208C497480700DB0AA03419C2AEC8915631AE4A39F10951438"), + (816000, "5E82393262331057150A9C25035735824817A47617CF08A766A8F12DCEFE80B3"), + (816500, "7B3E887ED47946824B41BA976F674671198E4E6F5FCF01175E6C2B37F89FF2DF"), + (817000, "2318F13FFE92375D0ACFF490D2581B3B5980639DE399572B806B6C2C2E01D23F"), + (817500, "41A8BCFFE3FB0CE535CAF82535D4C35CA3BB1736D2332195BF8DE9F6C6FC2BDF"), + (818000, "1E28C864FC80211C7394E674C2A9EE2FA76E0C0ED8C28EB77581023E0DEC94FB"), + (818500, "9E045BBC3ABC38039A41EB59587633632B1FD4779040F9ED94C36E5A2F9D45F7"), + (819000, "834E456E2B57C1892D888C21562E30556A2E2ACB2F16A4C820737D901860582C"), + (819500, "48DA7CEFF04F13E70ABB467D752F7FCC23F41BAF4220F52270D51D08412AEA97"), + (820000, "7BB60BD03094F794CF50EE9CE3D8C0C5F623A34B2E6613A3BF9064F3675DCAF4"), + (820500, "655F91250E1CB5EC96E6D37B2869D6C837CE0CDBF4370D865AB215C30399B758"), + (821000, "099A954D97A4A600CD118438FDC0F37084408AC79D9E9A892AEE0B7578C1A6C9"), + (821500, "429734F0425329F1F9855B0461D6AD2EBAC2FE74BA8AFF18815AD1D048A33C8F"), + (822000, "A0FF9DCF722AE549F70C72DD0704F82BE912FCA8036CBC6DEA64F0CCFE330B87"), + (822500, "B7FA39CA0C9BA44474AA3C924724F871457FFA9A8460D65579F8D696E6953BD0"), + (823000, "434199CEB7E90A03AACE9F8096B841650DA886B21418F6FAE53B91C59D9531A4"), + (823500, "33C27FC769C4A450357550DF94273EC8D719E60F33800B5022F0A389EC225A8A"), + (824000, "CBC61565C750F39FD9AF3CA7EE2287095836CD97E92ABF0F84DE02CEF6227BFD"), + (824500, "56C6747BFAC15656648B265599A11BE664FCAEE09AD6D5E3193905AB18E451F2"), + (825000, "FD3BE476C0F023C517CFCE82902C71BC19F0E279BAEC4EC4F5B3BB86CEDA7C54"), + (825500, "A2C43FA1EFD2E1EF6BE9EE506FE7DF4788E00019615182E4C60792D23E9967D9"), + (826000, "209629A9AB15BAC857EB965F1EF8AEC61C382A76EEE9FDE6B78909A3FF37F633"), + (826500, "798F50B4496CC1690603A4CAD2C23545E3B223F934EF9312ACE9D48278704ECA"), + (827000, "9D30CABD3EE7659E526DCFDD6C03A288B11F50E02911A8F05E9D00FFB1ED9544"), + (827500, "81F05A6E3BE9564292F7F2F76AC049A8505493781F65EC53960CCC5F21396C5E"), + (828000, "216CB8734F1E4C34653A4480646695748884759DC7A1BCD369EBB3DB615CBDAA"), + (828500, "F6CEFBAF99EBC20AC58FA9A4702C02E4346FA984E20EFA3B1E48959F56392E5F"), ]; diff --git a/node-daemon/docs/RPC.md b/node-daemon/docs/RPC.md index c9f3df4e8e..aa593bd902 100644 --- a/node-daemon/docs/RPC.md +++ b/node-daemon/docs/RPC.md @@ -1,6 +1,6 @@ # RPC documentation for Mintlayer node -Version `1.4.0`. +Version `1.4.1`. ## Module `node` diff --git a/node-daemon/docs/RPC_DEV.md b/node-daemon/docs/RPC_DEV.md index fd8e3413bc..0a289cb699 100644 --- a/node-daemon/docs/RPC_DEV.md +++ b/node-daemon/docs/RPC_DEV.md @@ -1,6 +1,6 @@ # RPC documentation for Mintlayer node developer functions -Version `1.4.0`. +Version `1.4.1`. These functions are used for testing and only enabled in regtest. diff --git a/packaging/checks/smoke-arch.sh b/packaging/checks/smoke-arch.sh index 665a8be582..243d1f7a25 100755 --- a/packaging/checks/smoke-arch.sh +++ b/packaging/checks/smoke-arch.sh @@ -4,83 +4,177 @@ # Usage: smoke-arch.sh node|gui [pkg-arch] # # The optional fourth argument is the architecture the package was built for -# (defaults to the container architecture). For a foreign-architecture package -# (the cross-target aarch64 leg reuses the amd64-only Arch image), pacman's -# architecture check is bypassed via IgnoreArch and the binaries are executed -# through the host's qemu binfmt handlers — the same emulation the deb/rpm -# legs use for their arm64 smoke tests. +# (defaults to the container architecture). Docker Hub publishes no arm64 +# Arch image (library/archlinux and archlinux/archlinux are amd64-only), so a +# foreign-architecture package (the cross-target aarch64 leg reuses the +# amd64-only image) is smoke-tested in a chroot of the Arch Linux ARM rootfs: +# the package and its dependencies are installed by the chroot's pacman and +# its binaries execute through the host's qemu binfmt handlers — the same +# emulation the deb/rpm legs use for their arm64 smoke tests. set -euo pipefail -# Shared binary list (NODE_BINARIES) -. "$(cd "$(dirname "${BASH_SOURCE[0]}")/../common" && pwd)/lib.sh" +CHROOT_DIR=/alarm +# Primary + fallback download locations for the Arch Linux ARM rootfs; the +# env var overrides for local testing (e.g. a pre-downloaded file:// copy). +alarm_rootfs_urls() { + if [ -n "${ALARM_ROOTFS_URL:-}" ]; then + printf '%s\n' "$ALARM_ROOTFS_URL" + else + printf '%s\n' \ + https://fl.us.mirror.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz \ + https://mirror.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz + fi +} + +# Shared binary list (NODE_BINARIES). Inside the chroot the repo tree is not +# visible; the foreign-arch branch copies lib.sh in next to the script. +if [ "${1:-}" = "--chroot" ]; then + . /smoke-lib.sh +else + . "$(cd "$(dirname "${BASH_SOURCE[0]}")/../common" && pwd)/lib.sh" +fi + +# Inside the ARM chroot pacman must not drop to its download sandbox user: +# the (emulated) setuid switch fails under the container's seccomp profile. +pacman_cmd() { + if [ -n "${SMOKE_CHROOT:-}" ]; then + pacman --disable-sandbox "$@" + else + pacman "$@" + fi +} + +main() { + # Sync the databases so the package dependencies resolve from the repos. + pacman_cmd -Sy --noconfirm >/dev/null + pacman_cmd -U --noconfirm "$PKG_FILE" >/dev/null + + echo "== pacman query ==" + pacman_cmd -Qi "$PKG_NAME" + + if [ "$KIND" = node ]; then + echo "== system user ==" + id mintlayer + + echo "== binaries ==" + for bin in "${NODE_BINARIES[@]}"; do + test -x "/usr/bin/mintlayer-$bin" + "/usr/bin/mintlayer-$bin" --help >/dev/null 2>&1 + echo " ok: mintlayer-$bin --help" + done + + echo "== systemd units ==" + shopt -s nullglob + units=(/usr/lib/systemd/system/mintlayer-*.service) + shopt -u nullglob + [ ${#units[@]} -gt 0 ] || { echo "ERROR: no mintlayer units installed" >&2; exit 1; } + for unit in "${units[@]}"; do + systemd-analyze verify "$unit" + echo " ok: $(basename "$unit")" + done + test -f /usr/lib/systemd/system-preset/90-mintlayer.preset + grep -q "enable mintlayer-node@mainnet.service" \ + /usr/lib/systemd/system-preset/90-mintlayer.preset + test -f /usr/lib/sysusers.d/mintlayer.conf + test -f /usr/lib/udev/rules.d/51-mintlayer.rules + test -f /etc/mintlayer/mainnet/node.env + test -f /etc/mintlayer/testnet/node.env + echo " ok: preset/sysusers/udev/conffiles present" + + echo "== man pages ==" + pacman_cmd -Ql "$PKG_NAME" | grep -q "usr/share/man/man1/mintlayer-.*\.1\.gz$" + echo " ok" + else + echo "== gui files ==" + test -x /usr/bin/mintlayer-node-gui + "/usr/bin/mintlayer-node-gui" --help >/dev/null 2>&1 + echo " ok: mintlayer-node-gui --help" + + pacman_cmd -S --noconfirm --needed desktop-file-utils >/dev/null + desktop-file-validate /usr/share/applications/mintlayer-node-gui.desktop + + echo "== icons ==" + for size in 64x64 128x128 256x256 512x512; do + test -f "/usr/share/icons/hicolor/${size}/apps/mintlayer-node-gui.png" + echo " ok: hicolor ${size}" + done + + echo "== man pages ==" + pacman_cmd -Ql "$PKG_NAME" | grep -q "usr/share/man/man1/mintlayer-node-gui\.1\.gz$" + echo " ok" + fi + + echo "smoke test passed for $PKG_NAME" +} + +# Re-entry mode: the foreign-arch branch below invokes this script inside the +# ARM chroot with `--chroot node|gui`. +if [ "${1:-}" = "--chroot" ]; then + shift + SMOKE_CHROOT=1 + PKG_FILE="$1" + PKG_NAME="$2" + KIND="$3" + main + exit 0 +fi PKG_FILE="$(readlink -f "$1")" PKG_NAME="$2" KIND="$3" PKG_ARCH="${4:-$(uname -m)}" -if [ "$PKG_ARCH" != "$(uname -m)" ]; then - echo "foreign-architecture package ($PKG_ARCH on $(uname -m)): enabling IgnoreArch" - sed -i "/^\[options\]$/a IgnoreArch = $PKG_ARCH" /etc/pacman.conf +if [ "$PKG_ARCH" = "$(uname -m)" ]; then + main + exit 0 fi -# Sync the databases so the package dependencies resolve from the repos. -pacman -Sy --noconfirm >/dev/null -pacman -U --noconfirm "$PKG_FILE" >/dev/null - -echo "== pacman query ==" -pacman -Qi "$PKG_NAME" - -if [ "$KIND" = node ]; then - echo "== system user ==" - id mintlayer - - echo "== binaries ==" - for bin in "${NODE_BINARIES[@]}"; do - test -x "/usr/bin/mintlayer-$bin" - "/usr/bin/mintlayer-$bin" --help >/dev/null 2>&1 - echo " ok: mintlayer-$bin --help" - done - - echo "== systemd units ==" - shopt -s nullglob - units=(/usr/lib/systemd/system/mintlayer-*.service) - shopt -u nullglob - [ ${#units[@]} -gt 0 ] || { echo "ERROR: no mintlayer units installed" >&2; exit 1; } - for unit in "${units[@]}"; do - systemd-analyze verify "$unit" - echo " ok: $(basename "$unit")" - done - test -f /usr/lib/systemd/system-preset/90-mintlayer.preset - grep -q "enable mintlayer-node@mainnet.service" \ - /usr/lib/systemd/system-preset/90-mintlayer.preset - test -f /usr/lib/sysusers.d/mintlayer.conf - test -f /usr/lib/udev/rules.d/51-mintlayer.rules - test -f /etc/mintlayer/mainnet/node.env - test -f /etc/mintlayer/testnet/node.env - echo " ok: preset/sysusers/udev/conffiles present" - - echo "== man pages ==" - pacman -Ql "$PKG_NAME" | grep -q "usr/share/man/man1/mintlayer-.*\.1\.gz$" - echo " ok" -else - echo "== gui files ==" - test -x /usr/bin/mintlayer-node-gui - /usr/bin/mintlayer-node-gui --help >/dev/null 2>&1 - echo " ok: mintlayer-node-gui --help" - - pacman -S --noconfirm --needed desktop-file-utils >/dev/null - desktop-file-validate /usr/share/applications/mintlayer-node-gui.desktop - - echo "== icons ==" - for size in 64x64 128x128 256x256 512x512; do - test -f "/usr/share/icons/hicolor/${size}/apps/mintlayer-node-gui.png" - echo " ok: hicolor ${size}" - done - - echo "== man pages ==" - pacman -Ql "$PKG_NAME" | grep -q "usr/share/man/man1/mintlayer-node-gui\.1\.gz$" - echo " ok" -fi +echo "foreign-architecture package ($PKG_ARCH on $(uname -m)): smoke-testing in an Arch Linux ARM chroot" + +# Assemble a native $PKG_ARCH userland. Requires qemu binfmt handlers for the +# architecture to be registered on the runner's kernel (release_linux.yml +# sets them up via docker/setup-qemu-action; the F-flag keeps them working +# inside the chroot). +mkdir -p "$CHROOT_DIR" +rootfs_tar=/tmp/alarm.tar.gz +rc=1 +while IFS= read -r url; do + [ -n "$url" ] || continue + echo "downloading ARM rootfs from $url" + if curl --proto '=https' --tlsv1.2 -sSfL -o "$rootfs_tar" "$url"; then rc=0; break; fi +done < <(alarm_rootfs_urls) +[ "$rc" -eq 0 ] || { echo "ERROR: could not download the Arch Linux ARM rootfs" >&2; exit 1; } +# The rootfs ships device nodes we cannot recreate inside an unprivileged +# container; skip them. Remaining tar warnings are non-fatal. +tar -xzf "$rootfs_tar" -C "$CHROOT_DIR" --exclude='./dev/*' 2>/dev/null || true + +# chroot plumbing the rootfs does not ship: DNS resolution and a mount table +# (pacman reads /etc/mtab for its free-space check; /proc is not mounted here, +# so a static copy of the container's table is used). +rm -f "$CHROOT_DIR/etc/resolv.conf" +cp -L /etc/resolv.conf "$CHROOT_DIR/etc/resolv.conf" +rm -f "$CHROOT_DIR/etc/mtab" +cp /proc/self/mounts "$CHROOT_DIR/etc/mtab" + +# Initialize the chroot's pacman keyring from the container: gpg inside the +# chroot would run under emulation, and pacman-key's --populate needs +# process substitution (/dev/fd), which requires a mounted /proc the chroot +# does not have. The host container's pacman-key can act on the chroot's +# keyring via --gpgdir once the archlinuxarm keyring is visible to it. +# The -trusted/-revoked companions are required alongside the keyring: +# --populate applies ownertrust only from -trusted; without it +# every imported key lands at unknown trust and pacman refuses packages. +for f in archlinuxarm.gpg archlinuxarm-trusted archlinuxarm-revoked; do + cp "$CHROOT_DIR/usr/share/pacman/keyrings/$f" /usr/share/pacman/keyrings/ +done +pacman-key --gpgdir "$CHROOT_DIR/etc/pacman.d/gnupg" --init >/dev/null +pacman-key --gpgdir "$CHROOT_DIR/etc/pacman.d/gnupg" --populate archlinuxarm + +# /work is not visible inside the chroot: copy the script, its lib.sh and the +# package in. +cp "$PKG_FILE" "$CHROOT_DIR/$(basename "$PKG_FILE")" +cp "$0" "$CHROOT_DIR/smoke-arch.sh" +cp "$(cd "$(dirname "$0")/../common" && pwd)/lib.sh" "$CHROOT_DIR/smoke-lib.sh" -echo "smoke test passed for $PKG_NAME" +chroot "$CHROOT_DIR" /smoke-arch.sh --chroot "/$(basename "$PKG_FILE")" "$PKG_NAME" "$KIND" +rm -f "$CHROOT_DIR/smoke-arch.sh" "$CHROOT_DIR/smoke-lib.sh" "$CHROOT_DIR/$(basename "$PKG_FILE")" diff --git a/packaging/test-local.sh b/packaging/test-local.sh index b81651d040..b0128c8623 100755 --- a/packaging/test-local.sh +++ b/packaging/test-local.sh @@ -250,7 +250,7 @@ for arch in "${ARCHES[@]}"; do mintlayer-node-gui gui # The aarch64 leg relies on the qemu binfmt handlers (already required - # for the deb/rpm arm64 smoke tests) plus smoke-arch.sh's IgnoreArch + # for the deb/rpm arm64 smoke tests) plus smoke-arch.sh's foreign-arch # handling, mirroring the arm64 leg of release_linux.yml. run_step "smoke pkg node ($arch)" \ docker run --rm -v "$REPO_ROOT:/work" -w /work "$ARCH_IMAGE" \ diff --git a/wallet/wallet-rpc-daemon/docs/RPC.md b/wallet/wallet-rpc-daemon/docs/RPC.md index 314a9c74cf..24124cf3b4 100644 --- a/wallet/wallet-rpc-daemon/docs/RPC.md +++ b/wallet/wallet-rpc-daemon/docs/RPC.md @@ -1,6 +1,6 @@ # RPC documentation for Mintlayer node wallet -Version `1.4.0`. +Version `1.4.1`. ## Module `WalletRpc` diff --git a/wasm-wrappers/CHANGELOG.md b/wasm-wrappers/CHANGELOG.md index 7a93d048ea..920027dc9b 100644 --- a/wasm-wrappers/CHANGELOG.md +++ b/wasm-wrappers/CHANGELOG.md @@ -6,6 +6,8 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/ ## [Unreleased] +## [1.4.1] + ### Added - `make_default_account_privkey` now accepts an optional BIP39 passphrase as its third argument: `make_default_account_privkey(mnemonic, network, passphrase?)`. The passphrase