From ade344de30c5b576b9c5f2eccdf97a8773ef180e Mon Sep 17 00:00:00 2001 From: Michael Taylor Date: Wed, 2 Sep 2026 17:29:11 -0700 Subject: [PATCH 1/4] build(deps): bump dig-node-control-interface 0.30->0.31, dig-mirror-coin 0.7->0.9 Closes #418 Closes #357 Closes #308 Co-Authored-By: Claude --- Cargo.toml | 2 +- crates/dig-node-service/Cargo.toml | 8 ++++---- crates/dig-wallet/Cargo.toml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d8a20e84..93c0a906 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ edition = "2021" # the ROOT manifest (`[workspace.package].version`), so it MUST be set here for a # release to fire (§3.6). The library crates (dig-node-core/dig-runtime/dig-wallet) # keep their own independent versions — only the released binary tracks the workspace version. -version = "0.252.4" +version = "0.263.0" # Release hardening, matching digstore: keep integer-overflow checks ON in release. # The node parses untrusted serialized input and does offset/length arithmetic over diff --git a/crates/dig-node-service/Cargo.toml b/crates/dig-node-service/Cargo.toml index 6da75f01..726e465f 100644 --- a/crates/dig-node-service/Cargo.toml +++ b/crates/dig-node-service/Cargo.toml @@ -92,7 +92,7 @@ async-trait = "0.1" # "0.6.0" the suite went green over a `control.wallet.coinById` the contract had never heard of -- # it checked nothing about the very method the change added. A caret range keeps the pin moving # with the published catalog instead of silently narrowing what CI can see. -dig-node-control-interface = "0.30" +dig-node-control-interface = "0.31" # The deterministic mirror-coin collateral model: the per-epoch requirement, the controller # multiplier, the small-network handicap, the floor clamp, and the safety-margin arithmetic. @@ -107,7 +107,7 @@ dig-mirror-collateral = "0.3" # The chain half of the same model: `census` counts the collateralised network at a block height # and hands `dig-mirror-collateral` the three integers its controller consumes (dig-node#400). # Without it a node could only ever record epoch 1, which is derivable from nothing. -dig-mirror-coin = "0.7" +dig-mirror-coin = "0.9" # The canonical `ChainSource` trait `dig-mirror-coin`'s census is generic over. Declared, not # implemented: `chia-query` already provides the implementation this node uses @@ -120,7 +120,7 @@ dig-chainsource-interface = "0.3" # `build_reclaim` pass them straight through. They were dev-dependencies while the module was # unwired; a public signature cannot be spelled in a dev-dependency. # -# The whole chia set moves TOGETHER and every version here is the one `dig-mirror-coin` 0.7 and +# The whole chia set moves TOGETHER and every version here is the one `dig-mirror-coin` 0.9 and # `dig-wallet` compile against. A crate split across two chia lines compiles until something # crosses a public signature -- which is exactly what these four do -- and then the `Bytes32` the # builder wants is a different type from the one the caller holds. @@ -337,7 +337,7 @@ chia-protocol = "0.36.1" # hand-written `CoinRecord` cannot exercise the authentication path the census runs, so the probe # would assert its property against a fixture that could not exhibit it. # -# Every version here is the one `dig-mirror-coin` 0.7 itself compiles against, and the whole set +# Every version here is the one `dig-mirror-coin` 0.9 itself compiles against, and the whole set # moves together: the chia ceiling is not one number, and a crate split across two chia lines # compiles only until something crosses a public signature. chia-puzzle-types = "0.36.1" diff --git a/crates/dig-wallet/Cargo.toml b/crates/dig-wallet/Cargo.toml index 0fb68453..6b02bea6 100644 --- a/crates/dig-wallet/Cargo.toml +++ b/crates/dig-wallet/Cargo.toml @@ -64,7 +64,7 @@ axum = "0.7" # The PUBLISHED control-plane contract. `BalanceAsset` is re-exported from it rather than # restated here: the wire spelling of an asset and the asset a read scopes to must be the same # value, and two enums naming the same tokens agree only until one of them gains a variant. -dig-node-control-interface = "0.30" +dig-node-control-interface = "0.31" # The ecosystem's single definition of a Chia offer id (dig_ecosystem#3140, #283): # `sha256(spend_bundle.to_bytes())`, the value Chia's `Offer.name()`, Sage and dexie use. This # crate once derived the id itself from the offered coin set alone, which collided across offers From 8fa0b6aeed6326d80a40c8d53501ca1fa0732fdb Mon Sep 17 00:00:00 2001 From: Michael Taylor Date: Wed, 2 Sep 2026 17:46:43 -0700 Subject: [PATCH 2/4] chore(deps): re-lock dig-node-control-interface 0.31, dig-mirror-coin 0.9 Co-Authored-By: Claude --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b827726e..26decf0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2880,9 +2880,9 @@ dependencies = [ [[package]] name = "dig-mirror-coin" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f53968cacd4bbb5be4540aab0940b24a70e73b0b26f05cdfca9c8ccc6778e053" +checksum = "2ac3c72506f13eef2cd6dccce66fd715191e2fc7b751f3b682332d92bf545812" dependencies = [ "chia-bls 0.36.1", "chia-protocol 0.36.1", @@ -2957,9 +2957,9 @@ dependencies = [ [[package]] name = "dig-node-control-interface" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58d0b2c9fb51ef2d76ac61d73f08eb95749375cf45da65c373f1c013fcb78b58" +checksum = "714e4022a13278a2c329dcc7b16a24cbf800502027579b80838b1eafa4caafde" dependencies = [ "async-trait", "semver", @@ -3031,7 +3031,7 @@ dependencies = [ [[package]] name = "dig-node-service" -version = "0.252.4" +version = "0.263.0" dependencies = [ "async-trait", "axum", From 79d18c799a68190f263a4a6a4fec38ac21808df2 Mon Sep 17 00:00:00 2001 From: Michael Taylor Date: Wed, 2 Sep 2026 18:37:09 -0700 Subject: [PATCH 3/4] fix(mirror): declare no peer on created mirror coins, matching pre-0.9 behaviour dig-mirror-coin 0.8.0 made `declared_peer` a required field of `MirrorAdvertisement`. Passing `None` reproduces exactly what 0.7 wrote -- that version had no declared_peer concept -- so the dependency bump changes nothing about the coins this node creates. The crate made the field required specifically so a consumer cannot inherit one silently, so the choice is recorded at the call site rather than defaulted. Binding this collateral to the node's own DIG peer id is dig-node#473, which owns that decision and the `build_create` signature change it needs. Co-Authored-By: Claude --- crates/dig-node-service/src/mirror/spends.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/dig-node-service/src/mirror/spends.rs b/crates/dig-node-service/src/mirror/spends.rs index bf58dbc4..f1bef2db 100644 --- a/crates/dig-node-service/src/mirror/spends.rs +++ b/crates/dig-node-service/src/mirror/spends.rs @@ -182,6 +182,13 @@ pub fn build_create( root_hash, epoch: epoch.clone(), urls, + // No peer declaration: this reproduces exactly what dig-mirror-coin 0.7 wrote, which + // had no declared_peer concept at all, so the bump changes nothing about the coins this + // node creates. It is a deliberate choice rather than a default -- the crate made the + // field required precisely so a consumer cannot inherit one silently. Binding this + // collateral to the node's own DIG peer id is dig-node#473, which owns that decision and + // the signature change it needs. + declared_peer: None, collateral: collateral_dig_base_units, }, dig_coins, From 826c0eeed5d540eca8f2581ef9ed7c31f65a4311 Mon Sep 17 00:00:00 2001 From: Michael Taylor Date: Wed, 2 Sep 2026 19:37:02 -0700 Subject: [PATCH 4/4] chore: renumber to 0.252.9, under the MSI ProductVersion ceiling (#521) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26decf0a..7a64e133 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3031,7 +3031,7 @@ dependencies = [ [[package]] name = "dig-node-service" -version = "0.263.0" +version = "0.252.9" dependencies = [ "async-trait", "axum", diff --git a/Cargo.toml b/Cargo.toml index 93c0a906..b8235bb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ edition = "2021" # the ROOT manifest (`[workspace.package].version`), so it MUST be set here for a # release to fire (§3.6). The library crates (dig-node-core/dig-runtime/dig-wallet) # keep their own independent versions — only the released binary tracks the workspace version. -version = "0.263.0" +version = "0.252.9" # Release hardening, matching digstore: keep integer-overflow checks ON in release. # The node parses untrusted serialized input and does offset/length arithmetic over