From 03a72532fbc7d1590c7d060a1e1b707793a95eb8 Mon Sep 17 00:00:00 2001 From: smartgoo Date: Sun, 14 Jun 2026 20:39:36 -0400 Subject: [PATCH 1/2] genesis covenant group updates --- Cargo.lock | 56 ++++++++++++++++---------------- Cargo.toml | 24 +++++++------- docs/CHANGELOG.md | 3 +- python/kaspa/__init__.pyi | 16 +++++++++ src/consensus/client/covenant.rs | 35 ++++++++++---------- src/wallet/core/tx/payment.rs | 2 +- 6 files changed, 76 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9519f590..6695bf1f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2272,7 +2272,7 @@ dependencies = [ [[package]] name = "kaspa-addresses" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "borsh", "js-sys", @@ -2287,7 +2287,7 @@ dependencies = [ [[package]] name = "kaspa-bip32" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "borsh", "bs58", @@ -2314,7 +2314,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-client" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "ahash", "borsh", @@ -2344,7 +2344,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "arc-swap", "async-trait", @@ -2383,7 +2383,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-notify" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-channel 2.5.0", "cfg-if 1.0.4", @@ -2403,7 +2403,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-wasm" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "cfg-if 1.0.4", "faster-hex", @@ -2428,7 +2428,7 @@ dependencies = [ [[package]] name = "kaspa-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "anyhow", "cfg-if 1.0.4", @@ -2448,7 +2448,7 @@ dependencies = [ [[package]] name = "kaspa-hashes" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "blake2b_simd", "blake3", @@ -2469,7 +2469,7 @@ dependencies = [ [[package]] name = "kaspa-index-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-channel 2.5.0", "async-trait", @@ -2489,7 +2489,7 @@ dependencies = [ [[package]] name = "kaspa-math" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "borsh", "faster-hex", @@ -2509,7 +2509,7 @@ dependencies = [ [[package]] name = "kaspa-merkle" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "kaspa-hashes", ] @@ -2517,7 +2517,7 @@ dependencies = [ [[package]] name = "kaspa-metrics-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-trait", "borsh", @@ -2534,7 +2534,7 @@ dependencies = [ [[package]] name = "kaspa-mining-errors" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "kaspa-consensus-core", "thiserror 2.0.18", @@ -2543,7 +2543,7 @@ dependencies = [ [[package]] name = "kaspa-muhash" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "kaspa-hashes", "kaspa-math", @@ -2554,7 +2554,7 @@ dependencies = [ [[package]] name = "kaspa-notify" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-channel 2.5.0", "async-trait", @@ -2624,7 +2624,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-channel 2.5.0", "async-trait", @@ -2666,7 +2666,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-macros" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "convert_case 0.6.0", "proc-macro-error", @@ -2679,7 +2679,7 @@ dependencies = [ [[package]] name = "kaspa-smt" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "blake3", "kaspa-hashes", @@ -2690,7 +2690,7 @@ dependencies = [ [[package]] name = "kaspa-txscript" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "ark-bn254", "ark-ec", @@ -2735,7 +2735,7 @@ dependencies = [ [[package]] name = "kaspa-txscript-errors" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "borsh", "kaspa-hashes", @@ -2746,7 +2746,7 @@ dependencies = [ [[package]] name = "kaspa-utils" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-channel 2.5.0", "borsh", @@ -2770,7 +2770,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "aes", "ahash", @@ -2848,7 +2848,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-keys" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-trait", "borsh", @@ -2881,7 +2881,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-macros" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "convert_case 0.5.0", "proc-macro-error", @@ -2895,7 +2895,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-pskt" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "bincode", "derive_builder", @@ -2924,7 +2924,7 @@ dependencies = [ [[package]] name = "kaspa-wasm-core" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "faster-hex", "hexplay", @@ -2936,7 +2936,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-client" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "async-lock", "async-trait", @@ -2973,7 +2973,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-wasm" version = "2.0.0" -source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=90dbf07#90dbf074275d60c1fe74a3491883196f110970c0" +source = "git+https://github.com/kaspanet/rusty-kaspa.git?rev=c53a83bf4#c53a83bf4829d430d5179fd02f6d756dab782028" dependencies = [ "ahash", "async-lock", diff --git a/Cargo.toml b/Cargo.toml index 26cd3f78..700c2f9a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,18 +16,18 @@ ahash = "0.8.12" bincode = "1.3.3" faster-hex = "0.9.0" futures = "0.3.31" -kaspa-addresses = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-bip32 = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-consensus-client = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-consensus-core = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-hashes = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-notify = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-rpc-core = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-txscript = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07", features = ["wasm32-sdk"]} -kaspa-utils = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-wallet-core = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-wallet-keys = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } -kaspa-wrpc-client = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "90dbf07" } +kaspa-addresses = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-bip32 = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-consensus-client = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-consensus-core = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-hashes = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-notify = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-rpc-core = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-txscript = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4", features = ["wasm32-sdk"]} +kaspa-utils = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-wallet-core = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-wallet-keys = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } +kaspa-wrpc-client = { git = "https://github.com/kaspanet/rusty-kaspa.git", rev = "c53a83bf4" } paste = "1.0" pyo3 = { version = "0.27.1", features = ['multiple-pymethods'] } pyo3-async-runtimes = { version = "0.27.0", features = ['tokio-runtime'] } diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9b9ddda3..7b0b795b 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -31,12 +31,13 @@ search: - Enum `AccountKind` exposed to Python. Represents the account type (legacy, bip32, multisig, keypair, etc.). - Wallet-specific exception classes populated into the `kaspa.exceptions` submodule, covering the rusty-kaspa wallet error variants (e.g. `WalletInsufficientFundsError`, `WalletAccountNotFoundError`, `WalletNotSyncedError`, etc.). - Examples under `examples/wallet/` demonstrating wallet usage +- Wallet `sync-state` events now include an SMT-sync phase payload (`{processed, total}`), emitted while the node imports the pruning-point SMT state during IBD. - TypedDicts for `RpcClient` subscription event payloads — `BlockAddedEvent`, `VirtualChainChangedEvent`, `FinalityConflictEvent`, `FinalityConflictResolvedEvent`, `UtxosChangedEvent`, `SinkBlueScoreChangedEvent`, `VirtualDaaScoreChangedEvent`, `PruningPointUtxoSetOverrideEvent`, `NewBlockTemplateEvent`, `ConnectEvent`, `DisconnectEvent` — and their notification body TypedDicts (`RpcBlockAddedNotification`, etc.) for typing event-listener callbacks. - `RpcClient.get_block_reward_info(request)` — new RPC returning a block's reward info (header, block color, confirmation count, merging chain block hash, reward amount). - `ScriptBuilder` covenant/engine flags: optional `covenants_enabled` and `sigop_script_units` arguments on `ScriptBuilder(...)` and `ScriptBuilder.from_script(...)`, plus read-only `covenants_enabled` / `sigop_script_units` properties (mirrors the WASM SDK's `ScriptBuilderOptions`). - `Transaction.storage_mass` property and a `storageMass` key in the `Transaction` dict output (alongside the existing `mass`), mirroring the WASM SDK. - Class `CovenantBinding` exposed to Python. Binds a transaction output to the covenant and the input authorizing its creation. Accepted as either an instance or a `{"authorizingInput": ..., "covenantId": ...}` dict wherever the bindings take a `CovenantBinding`. -- Class `GenesisCovenantGroup` exposed to Python. Describes a group of transaction outputs bound to a single covenant id, used with `Transaction.populate_genesis_covenants`. +- Class `GenesisCovenantGroup` exposed to Python. Describes a group of transaction outputs bound to a single covenant id, used with `Transaction.populate_genesis_covenants`. Constructible via `GenesisCovenantGroup(authorizing_input, outputs)`, with read/write `authorizing_input` and `outputs` properties. - `Transaction.populate_genesis_covenants(groups)` — computes covenant ids and sets the bindings on the targeted outputs. - Function `covenant_id(outpoint, auth_outputs)` exposed to Python. Computes a covenant id from the authorizing input outpoint and ordered auth outputs. - `PaymentOutput.with_covenant(address, amount, covenant)` static method, plus an optional `covenant` key in `PaymentOutput` dicts. diff --git a/python/kaspa/__init__.pyi b/python/kaspa/__init__.pyi index da8087e4..634b5b4c 100644 --- a/python/kaspa/__init__.pyi +++ b/python/kaspa/__init__.pyi @@ -688,6 +688,22 @@ class GenesisCovenantGroup: Args: value: The index of the transaction input authorizing the covenant. """ + @property + def outputs(self) -> builtins.list[builtins.int]: + r""" + The indices of the transaction outputs bound to the covenant. + + Returns: + list[int]: The output indices in this group. + """ + @outputs.setter + def outputs(self, value: builtins.list[builtins.int]) -> None: + r""" + Set the output indices. + + Args: + value: The indices of the transaction outputs to bind to the covenant. + """ def __new__(cls, authorizing_input: builtins.int, outputs: typing.Sequence[builtins.int]) -> GenesisCovenantGroup: r""" Create a new GenesisCovenantGroup. diff --git a/src/consensus/client/covenant.rs b/src/consensus/client/covenant.rs index b70d90d2..f59bd468 100644 --- a/src/consensus/client/covenant.rs +++ b/src/consensus/client/covenant.rs @@ -1,6 +1,5 @@ use crate::crypto::hashes::PyHash; use kaspa_consensus_client::{CovenantBinding, GenesisCovenantGroup}; -use kaspa_consensus_core::tx::GenesisCovenantGroup as CoreGenesisCovenantGroup; use pyo3::{ prelude::*, types::{PyAny, PyDict}, @@ -131,11 +130,7 @@ impl PyGenesisCovenantGroup { /// GenesisCovenantGroup: A new GenesisCovenantGroup instance. #[new] pub fn constructor(authorizing_input: u16, outputs: Vec) -> Self { - // TODO this tmp construction process is temporary - // until client::GenesisCovenantGroup exposes new fn that takes rust native types - let tmp = CoreGenesisCovenantGroup::new(authorizing_input, outputs); - let inner = GenesisCovenantGroup::from(tmp); - Self(inner) + Self(GenesisCovenantGroup::new(authorizing_input, outputs)) } /// The index of the transaction input authorizing the covenant. @@ -153,19 +148,23 @@ impl PyGenesisCovenantGroup { self.0.set_authorizing_input(value); } - // TODO blocked until GenesisCovenantGroup exposes non-WASM `outputs` fns - // `GenesisCovenantGroup::outputs -> NumberArray` instead of Vec return type - // NumberArray is WASM type, we should not convert from that here. - // Better solution is that native GenesisCovenantGroup exposes native Rust getter/setter - // #[getter] - // pub fn get_outputs(&self) -> Vec { - // self.0.outputs.clone() - // } + /// The indices of the transaction outputs bound to the covenant. + /// + /// Returns: + /// list[int]: The output indices in this group. + #[getter] + pub fn get_outputs(&self) -> Vec { + self.0.outputs() + } - // #[setter] - // pub fn set_outputs(&mut self, value: Vec) { - // self.0.outputs = value - // } + /// Set the output indices. + /// + /// Args: + /// value: The indices of the transaction outputs to bind to the covenant. + #[setter] + pub fn set_outputs(&mut self, value: Vec) { + self.0.set_outputs(value); + } } impl From for PyGenesisCovenantGroup { diff --git a/src/wallet/core/tx/payment.rs b/src/wallet/core/tx/payment.rs index 7843c567..4e038aa2 100644 --- a/src/wallet/core/tx/payment.rs +++ b/src/wallet/core/tx/payment.rs @@ -74,7 +74,7 @@ impl PyPaymentOutput { self.0.address.address_to_string(), self.0.amount, match &self.0.covenant { - Some(covenant) => PyCovenantBinding::from(*covenant).__repr__(), + Some(covenant) => PyCovenantBinding::from(covenant.clone()).__repr__(), None => "None".to_string(), } ) From 6dcd18466b6ea5337072640a1294a034c0b59eda Mon Sep 17 00:00:00 2001 From: smartgoo Date: Sun, 14 Jun 2026 20:52:09 -0400 Subject: [PATCH 2/2] changelog rk version --- docs/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 7b0b795b..de858616 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -67,7 +67,7 @@ search: ### Development *Internal SDK changes — not visible through the Python package API.* -- Bumped the pinned `rusty-kaspa` dependency from `d290179` to `90dbf07` (v2.0.0, Toccata hardfork). +- Bumped the pinned `rusty-kaspa` dependency from `d290179` to `c53a83bf4` (which includes rusty-kaspa v2.0.0, Toccata hardfork). - `py_error_map!` macro generating the wallet exception classes, the rusty-kaspa error → Python exception mapping, and `register_exceptions`. The mapping's `match` is exhaustive, so an upstream error variant addition fails the build until it is mapped. - `IntoPyResult` trait for more ergonomic conversion of rusty-kaspa native errors into `PyResult`. - `pyproject.toml`: set `python-source = "python"` and moved the package stub tree under `python/kaspa/` (`kaspa.pyi` → `python/kaspa/__init__.pyi`).