diff --git a/Cargo.lock b/Cargo.lock index ad5059fb..9a571624 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4417,7 +4417,7 @@ dependencies = [ [[package]] name = "sol_rpc_client" -version = "1.0.0" +version = "2.0.0" dependencies = [ "assert_matches", "async-trait", @@ -4526,7 +4526,7 @@ dependencies = [ [[package]] name = "sol_rpc_types" -version = "1.0.0" +version = "2.0.0" dependencies = [ "base64 0.22.1", "bincode", diff --git a/end_to_end_tests/CHANGELOG.md b/end_to_end_tests/CHANGELOG.md new file mode 100644 index 00000000..482814ea --- /dev/null +++ b/end_to_end_tests/CHANGELOG.md @@ -0,0 +1,27 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.0.0](https://github.com/dfinity/sol-rpc-canister/releases/tag/sol_rpc_e2e_tests-v1.0.0) - 2025-07-31 + +### Added + +- [**breaking**] add `try_send` method to SOL RPC client ([#187](https://github.com/dfinity/sol-rpc-canister/pull/187)) +- add client method to estimate recent blockhash ([#121](https://github.com/dfinity/sol-rpc-canister/pull/121)) +- add client method to sign a transaction ([#113](https://github.com/dfinity/sol-rpc-canister/pull/113)) + +### Other + +- migrate dependencies to `solana-sdk` repository ([#55](https://github.com/dfinity/sol-rpc-canister/pull/55)) +- add `Cargo.toml` linting to CI pipeline ([#155](https://github.com/dfinity/sol-rpc-canister/pull/155)) +- update dependencies and bump version ([#145](https://github.com/dfinity/sol-rpc-canister/pull/145)) +- durable nonce end-to-end test ([#124](https://github.com/dfinity/sol-rpc-canister/pull/124)) +- add client builder helper methods for `RpcConfig` ([#133](https://github.com/dfinity/sol-rpc-canister/pull/133)) +- bump version and use a release notes template ([#130](https://github.com/dfinity/sol-rpc-canister/pull/130)) +- use threshold signing in end-to-end tests ([#114](https://github.com/dfinity/sol-rpc-canister/pull/114)) +- end-to-end tests for `sendTransaction` ([#104](https://github.com/dfinity/sol-rpc-canister/pull/104)) diff --git a/examples/basic_solana/CHANGELOG.md b/examples/basic_solana/CHANGELOG.md new file mode 100644 index 00000000..b5eef22d --- /dev/null +++ b/examples/basic_solana/CHANGELOG.md @@ -0,0 +1,50 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.0.0](https://github.com/dfinity/sol-rpc-canister/releases/tag/basic_solana-v1.0.0) - 2025-07-31 + +### Added + +- add client method to estimate recent blockhash ([#121](https://github.com/dfinity/sol-rpc-canister/pull/121)) +- method to extract durable nonce from account ([#117](https://github.com/dfinity/sol-rpc-canister/pull/117)) +- add client method to sign a transaction ([#113](https://github.com/dfinity/sol-rpc-canister/pull/113)) +- add support for `getTokenAccountBalance` RPC method ([#90](https://github.com/dfinity/sol-rpc-canister/pull/90)) +- default commitment level for `SolRpcClient` ([#77](https://github.com/dfinity/sol-rpc-canister/pull/77)) +- Support method `getBalance` ([#74](https://github.com/dfinity/sol-rpc-canister/pull/74)) +- add `sendTransaction` RPC method ([#59](https://github.com/dfinity/sol-rpc-canister/pull/59)) +- Implement getSlot RPC method ([#33](https://github.com/dfinity/sol-rpc-canister/pull/33)) +- basic Solana wallet example ([#1](https://github.com/dfinity/sol-rpc-canister/pull/1)) + +### Fixed + +- use correct Token Program for SPL in `basic_solana` ([#128](https://github.com/dfinity/sol-rpc-canister/pull/128)) + +### Other + +- improvements to SOL RPC docs ([#158](https://github.com/dfinity/sol-rpc-canister/pull/158)) +- add `Custom` Solana network to `basic_solana` canister ([#171](https://github.com/dfinity/sol-rpc-canister/pull/171)) +- migrate dependencies to `solana-sdk` repository ([#55](https://github.com/dfinity/sol-rpc-canister/pull/55)) +- add build requirements to READMEs and rustdoc ([#169](https://github.com/dfinity/sol-rpc-canister/pull/169)) +- more links ([#168](https://github.com/dfinity/sol-rpc-canister/pull/168)) +- improve `basic_solana` Candid documentation ([#161](https://github.com/dfinity/sol-rpc-canister/pull/161)) +- use build script for `basic_solana` deployment ([#156](https://github.com/dfinity/sol-rpc-canister/pull/156)) +- add support for running `basic_solana` locally and on mainnet ([#91](https://github.com/dfinity/sol-rpc-canister/pull/91)) +- update dependencies and bump version ([#145](https://github.com/dfinity/sol-rpc-canister/pull/145)) +- add client builder helper methods for `RpcConfig` ([#133](https://github.com/dfinity/sol-rpc-canister/pull/133)) +- use 2-out-of-3 threshold consensus for `basic_solana` ([#132](https://github.com/dfinity/sol-rpc-canister/pull/132)) +- bump version and use a release notes template ([#130](https://github.com/dfinity/sol-rpc-canister/pull/130)) +- update Rust and libraries ([#126](https://github.com/dfinity/sol-rpc-canister/pull/126)) +- [**breaking**] use secure primitive types for `Pubkey`, `Signature` and `Hash` ([#98](https://github.com/dfinity/sol-rpc-canister/pull/98)) +- remove unused `serde_json` dependency in `basic_solana` ([#94](https://github.com/dfinity/sol-rpc-canister/pull/94)) +- clean-up TODOs ([#81](https://github.com/dfinity/sol-rpc-canister/pull/81)) +- transfer of SPL token in `basic_solana` ([#78](https://github.com/dfinity/sol-rpc-canister/pull/78)) +- integration tests for the `basic_solana` example ([#75](https://github.com/dfinity/sol-rpc-canister/pull/75)) +- use SOL RPC canister in `basic_solana` example ([#69](https://github.com/dfinity/sol-rpc-canister/pull/69)) +- *(deps)* Bump base64 from 0.13.1 to 0.22.1 ([#11](https://github.com/dfinity/sol-rpc-canister/pull/11)) +- *(deps)* use new ic-ed25519 crate ([#7](https://github.com/dfinity/sol-rpc-canister/pull/7)) diff --git a/integration_tests/CHANGELOG.md b/integration_tests/CHANGELOG.md new file mode 100644 index 00000000..aa67252f --- /dev/null +++ b/integration_tests/CHANGELOG.md @@ -0,0 +1,76 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.0.0](https://github.com/dfinity/sol-rpc-canister/releases/tag/sol_rpc_int_tests-v1.0.0) - 2025-07-31 + +### Added + +- [**breaking**] add `try_send` method to SOL RPC client ([#187](https://github.com/dfinity/sol-rpc-canister/pull/187)) +- Select supported providers based on successful responses ([#183](https://github.com/dfinity/sol-rpc-canister/pull/183)) +- add client method to estimate recent blockhash ([#121](https://github.com/dfinity/sol-rpc-canister/pull/121)) +- add support for `transactionDetails=accounts` ([#139](https://github.com/dfinity/sol-rpc-canister/pull/139)) +- add support for `rewards` parameter for `getBlock` ([#135](https://github.com/dfinity/sol-rpc-canister/pull/135)) +- add client method to sign a transaction ([#113](https://github.com/dfinity/sol-rpc-canister/pull/113)) +- Candid NonZeroU8 ([#108](https://github.com/dfinity/sol-rpc-canister/pull/108)) +- add support for `getSignaturesForAddress` ([#106](https://github.com/dfinity/sol-rpc-canister/pull/106)) +- add support for `getSignatureStatuses` RPC method ([#96](https://github.com/dfinity/sol-rpc-canister/pull/96)) +- Add support for `getRecentPrioritizationFees` ([#92](https://github.com/dfinity/sol-rpc-canister/pull/92)) +- add support for `getTokenAccountBalance` RPC method ([#90](https://github.com/dfinity/sol-rpc-canister/pull/90)) +- Support method `getBalance` ([#74](https://github.com/dfinity/sol-rpc-canister/pull/74)) +- add support for `getTransaction` RPC method ([#68](https://github.com/dfinity/sol-rpc-canister/pull/68)) +- add `getBlock` RPC method ([#53](https://github.com/dfinity/sol-rpc-canister/pull/53)) +- add `sendTransaction` RPC method ([#59](https://github.com/dfinity/sol-rpc-canister/pull/59)) +- cycles cost ([#52](https://github.com/dfinity/sol-rpc-canister/pull/52)) +- add `getAccountInfo` RPC method ([#49](https://github.com/dfinity/sol-rpc-canister/pull/49)) +- client builder ([#54](https://github.com/dfinity/sol-rpc-canister/pull/54)) +- round result from `getSlot` RPC method ([#48](https://github.com/dfinity/sol-rpc-canister/pull/48)) +- use `canhttp` `multi` feature ([#46](https://github.com/dfinity/sol-rpc-canister/pull/46)) +- Implement a method for making generic RPC request ([#39](https://github.com/dfinity/sol-rpc-canister/pull/39)) +- Implement getSlot RPC method ([#33](https://github.com/dfinity/sol-rpc-canister/pull/33)) +- add logging crate ([#13](https://github.com/dfinity/sol-rpc-canister/pull/13)) +- add support for override providers ([#12](https://github.com/dfinity/sol-rpc-canister/pull/12)) +- Add support for API keys ([#10](https://github.com/dfinity/sol-rpc-canister/pull/10)) +- hard-code SOL RPC providers ([#9](https://github.com/dfinity/sol-rpc-canister/pull/9)) + +### Fixed + +- missing `TraceHttp` logs ([#129](https://github.com/dfinity/sol-rpc-canister/pull/129)) + +### Other + +- do not record metrics for requests with insufficient cycles ([#184](https://github.com/dfinity/sol-rpc-canister/pull/184)) +- require HTTP outcall base fee ([#185](https://github.com/dfinity/sol-rpc-canister/pull/185)) +- add more metrics ([#144](https://github.com/dfinity/sol-rpc-canister/pull/144)) +- migrate dependencies to `solana-sdk` repository ([#55](https://github.com/dfinity/sol-rpc-canister/pull/55)) +- integration test for fetching metrics ([#143](https://github.com/dfinity/sol-rpc-canister/pull/143)) +- update dependencies and bump version ([#145](https://github.com/dfinity/sol-rpc-canister/pull/145)) +- Revisit response size estimates ([#147](https://github.com/dfinity/sol-rpc-canister/pull/147)) +- add missing documentation for `getTransaction` ([#137](https://github.com/dfinity/sol-rpc-canister/pull/137)) +- add helper methods for request builders ([#136](https://github.com/dfinity/sol-rpc-canister/pull/136)) +- add client builder helper methods for `RpcConfig` ([#133](https://github.com/dfinity/sol-rpc-canister/pull/133)) +- bump version and use a release notes template ([#130](https://github.com/dfinity/sol-rpc-canister/pull/130)) +- update Rust and libraries ([#126](https://github.com/dfinity/sol-rpc-canister/pull/126)) +- add Chainstack RPC provider ([#118](https://github.com/dfinity/sol-rpc-canister/pull/118)) +- end-to-end tests for `sendTransaction` ([#104](https://github.com/dfinity/sol-rpc-canister/pull/104)) +- [**breaking**] use secure primitive types for `Pubkey`, `Signature` and `Hash` ([#98](https://github.com/dfinity/sol-rpc-canister/pull/98)) +- use default commitment for client in `solana_test_validator.rs` ([#97](https://github.com/dfinity/sol-rpc-canister/pull/97)) +- add integration test for `getTokenAccountBalance` ([#95](https://github.com/dfinity/sol-rpc-canister/pull/95)) +- integration test for `verifyApiKey` ([#82](https://github.com/dfinity/sol-rpc-canister/pull/82)) +- use `canlog_derive` and `canlog` from crates.io ([#84](https://github.com/dfinity/sol-rpc-canister/pull/84)) +- *(http-types)* Remove http_types module and use external ic-http-types crate ([#73](https://github.com/dfinity/sol-rpc-canister/pull/73)) +- use SOL RPC canister to fetch blockhash in integration test ([#67](https://github.com/dfinity/sol-rpc-canister/pull/67)) +- use constant size JSON-RPC request ID ([#62](https://github.com/dfinity/sol-rpc-canister/pull/62)) +- add NOTICE to Apache license ([#60](https://github.com/dfinity/sol-rpc-canister/pull/60)) +- Forward calls through wallet canister ([#40](https://github.com/dfinity/sol-rpc-canister/pull/40)) +- Add some tested RPC providers for Solana Mainnet and Devnet ([#15](https://github.com/dfinity/sol-rpc-canister/pull/15)) +- Streamline providers ([#32](https://github.com/dfinity/sol-rpc-canister/pull/32)) +- e2e test with Solana test validator ([#20](https://github.com/dfinity/sol-rpc-canister/pull/20)) +- *(deps)* update Pocket IC ([#31](https://github.com/dfinity/sol-rpc-canister/pull/31)) +- update rust toolchain to 1.85 ([#21](https://github.com/dfinity/sol-rpc-canister/pull/21)) +- initial cargo workspace and build pipeline ([#2](https://github.com/dfinity/sol-rpc-canister/pull/2)) diff --git a/libs/client/CHANGELOG.md b/libs/client/CHANGELOG.md index e225d5b3..d79abbd3 100644 --- a/libs/client/CHANGELOG.md +++ b/libs/client/CHANGELOG.md @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.0.0](https://github.com/dfinity/sol-rpc-canister/compare/sol_rpc_client-v1.0.0...sol_rpc_client-v2.0.0) - 2025-07-31 + +### Added + +- [**breaking**] add `try_send` method to SOL RPC client ([#187](https://github.com/dfinity/sol-rpc-canister/pull/187)) + +### Fixed + +- use correct fee for t-sig with local development key ([#160](https://github.com/dfinity/sol-rpc-canister/pull/160)) + +### Other + +- revert `sol_rpc_client` bump ([#178](https://github.com/dfinity/sol-rpc-canister/pull/178)) +- migrate dependencies to `solana-sdk` repository ([#55](https://github.com/dfinity/sol-rpc-canister/pull/55)) +- add build requirements to READMEs and rustdoc ([#169](https://github.com/dfinity/sol-rpc-canister/pull/169)) +- bump `sol_rpc_client` to `v1.0.1` ([#164](https://github.com/dfinity/sol-rpc-canister/pull/164)) +- enable `ed25519` feature in docs ([#162](https://github.com/dfinity/sol-rpc-canister/pull/162)) +- add `Cargo.toml` linting to CI pipeline ([#155](https://github.com/dfinity/sol-rpc-canister/pull/155)) + ## [1.0.0] - 2025-06-13 ### Added diff --git a/libs/client/Cargo.toml b/libs/client/Cargo.toml index aed587d5..0483eb4f 100644 --- a/libs/client/Cargo.toml +++ b/libs/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sol_rpc_client" -version = "1.0.0" +version = "2.0.0" description = "Client to interact with the SOL RPC canister" authors.workspace = true edition.workspace = true @@ -31,7 +31,7 @@ ic-ed25519 = { workspace = true, optional = true } ic-error-types = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } -sol_rpc_types = { version = "1.0.0", path = "../types" } +sol_rpc_types = { version = "2.0.0", path = "../types" } solana-account-decoder-client-types = { workspace = true, features = ["zstd"] } solana-hash = { workspace = true } solana-instruction = { workspace = true } diff --git a/libs/types/CHANGELOG.md b/libs/types/CHANGELOG.md index 7db20371..72a02052 100644 --- a/libs/types/CHANGELOG.md +++ b/libs/types/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.0.0](https://github.com/dfinity/sol-rpc-canister/compare/sol_rpc_types-v1.0.0...sol_rpc_types-v2.0.0) - 2025-07-31 + +### Added + +- Select supported providers based on successful responses ([#183](https://github.com/dfinity/sol-rpc-canister/pull/183)) + +### Other + +- require HTTP outcall base fee ([#185](https://github.com/dfinity/sol-rpc-canister/pull/185)) +- add optional `cost_units` to `TransactionStatusMeta` ([#180](https://github.com/dfinity/sol-rpc-canister/pull/180)) +- migrate dependencies to `solana-sdk` repository ([#55](https://github.com/dfinity/sol-rpc-canister/pull/55)) +- improve docs for `InstallArgs` ([#172](https://github.com/dfinity/sol-rpc-canister/pull/172)) +- add build requirements to READMEs and rustdoc ([#169](https://github.com/dfinity/sol-rpc-canister/pull/169)) +- add `Cargo.toml` linting to CI pipeline ([#155](https://github.com/dfinity/sol-rpc-canister/pull/155)) + ## [1.0.0] - 2025-06-13 ### Added diff --git a/libs/types/Cargo.toml b/libs/types/Cargo.toml index fcdda361..21bc9b3d 100644 --- a/libs/types/Cargo.toml +++ b/libs/types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sol_rpc_types" -version = "1.0.0" +version = "2.0.0" description = "Candid types used by the SOL RPC canister" authors.workspace = true edition.workspace = true diff --git a/release-plz.toml b/release-plz.toml index 6b0576fc..9d9d4da4 100644 --- a/release-plz.toml +++ b/release-plz.toml @@ -32,16 +32,18 @@ publish_allow_dirty = false [[package]] # the double square brackets define a TOML table array name = "sol_rpc_canister" semver_check = false # disable API breaking changes checks +release = true publish = false # disable `cargo publish` +initial_version = "1.0.0" [[package]] # the double square brackets define a TOML table array name = "sol_rpc_client" -#git_release_enable = false # enable GitHub releases +#git_release_enable = false # disable GitHub releaseschangelog = true publish = true # enable `cargo publish` [[package]] # the double square brackets define a TOML table array name = "sol_rpc_types" -#git_release_enable = false # enable GitHub releases +#git_release_enable = false # disable GitHub releases publish = true # enable `cargo publish` [[package]]