Changelog
[Unreleased]¶
Target: 1.1.0
Added¶
- Enum
PyAddressVersionexposed to Python asAddressVersion - Enum
PyNetworkTypeexposed to Python asNetworkType - Enum
PyEncodingexposed to Python asEncoding - Enum
PyNotificationEventexposed to Python asNotificationEvent - Documentation site using MkDocs, Material for MkDocs, and mike.
- Automatic generation of (most of) the stub (.pyi) file using
pyo3-stub-gencrate and a binary. RPC TypedDicts (Request/Response structures, RPC types) are manually maintained inkaspa_rpc.pyistill. - Unit and integration tests with [pytest]https://docs.pytest.org/en/stable/.
GetVirtualChainFromBlockV2RPC method.to_dict()method forTransaction,TransactionInput,TransactionOutput,TransactionOutpoint,UtxoEntry,UtxoEntries, andUtxoEntryReference.from_dict()method forTransaction,TransactionInput,TransactionOutput,TransactionOutpoint, andUtxoEntry.UtxoProcessorandUtxoContextbindings for UTXO tracking and mature range access.UtxoProcessormaturity setters (set_coinbase_transaction_maturity_daa,set_user_transaction_maturity_daa).UtxoContext.pending()for pending UTXO access (implemented via processor pending map; exact snapshot parity would require rusty-kaspa exposure).- Submodule
exceptionswhere custom exceptions will be located. Currently empty given no custom exceptions exist (yet). - Added
versiongetter forScriptPublicKey.
Changed¶
- Bumped rusty-kaspa dependency version to commit a311302.
- Moved Kaspa Python SDK out of Rusty-Kaspa (as a workspace member crate) to its own dedicated repository. The internals of this project have changed significantly as a result. However, all APIs exposed to Python remain unchanged.
- All Python-exposed structs and enums are prefixed with
Py(e.g.PyAddress) internally. The corresponding Python class name has not changed (prefix is dropped in Python). - All Python-exposed functions are prefixed with
py_(e.g.py_sign_message) internally. The corresponding Python function name has not changed (prefix is dropped in Python). - All enum parameter types across all functions/methods can be passed as a string (for backwards compatibility) or enum variant. Prior, only a string was accepted.
Opcodesis the exception to this. - Standardize internal Rust method names for getters/setters to comply with pyo3 and pyo3-stub-gen. Prefix all with
get_orset_. Remove unnecessary name overrides. - All setters changed to use consistent
valuefor parameter name. PrivateKeyGeneratorconstructor acceptsxprvparameter as both astrorXPrvinstance now.PublicKeyGenerator.from_master_xprv()acceptsxprvparameter as both astrorXPrvinstance now.Generator,create_transactions, andestimate_transactionsnow acceptUtxoContextentries (network_id optional for context inputs).- Python 3.9 is no longer supported. Minimum supported version is now 3.10.
Fixed¶
Breaking Changes¶
- Python 3.9 is no longer supported. Minimum supported version is now 3.10.
Generator,create_transactions, andestimate_transactionsreordered parameters to keep required arguments first (entries, change_address, network_id optional). Positional callers must update.
[1.0.1.post2] - 2025-11-13¶
Added¶
- Support for Python 3.14
Changed¶
- Specify Python compatibility as >=3.9,<=3.14
- Upgraded crate pyo3 from 0.24.2 to 0.27.1.
- Upgraded crate pyo3-async-runtimes from 0.24 to 0.27.0
- Upgraded crate pyo3-log from 0.12.4 to 0.13.2
- Upgraded crate serde-pyobject from 0.6.2 to 0.8.0
- CI updates
[1.0.1.post1] - 2025-09-27¶
Added¶
- Added RPC method
submit_block. - RPC method
get_virtual_chain_from_blocksupport ofminConfirmationCount. - RPC method doc strings in .pyi with expected
requestdict structure (for calls that require arequestdict).
Changed¶
- RPC method
submit_transaction'srequestparameter now supports keyallowOrphan. A deprecation warning will print when keyallow_orphanis used. Support forallow_orphanwill be removed in future version. This moves towards case consistency. - KeyError is now raised when an expected key is not contained in a dictionary. Prior, a general Exception was raised.