Skip to content

feat!: add try_send method to SOL RPC client#187

Merged
lpahlavi merged 4 commits intomainfrom
lpahlavi/add-try-send-method
Jul 28, 2025
Merged

feat!: add try_send method to SOL RPC client#187
lpahlavi merged 4 commits intomainfrom
lpahlavi/add-try-send-method

Conversation

@lpahlavi
Copy link
Contributor

@lpahlavi lpahlavi commented Jul 11, 2025

Add a try_send method to the client in sol_rpc_client that doesn't panic if sending the request fails and instead returns the resulting error. The bulk of this change involves a refactoring to use ic_error_types::RejectCode instead of ic_cdk::api::call::RejectionCode wherever possible in the repository.

BREAKING CHANGE: Various public methods now return a Result<(..., (ic_error_types::RejectCode, String))> instead of a Result<(..., (ic_cdk::api::call::RejectionCode, String))> previously.

@lpahlavi lpahlavi requested a review from gregorydemay July 11, 2025 14:02
@lpahlavi lpahlavi marked this pull request as ready for review July 11, 2025 14:02
@lpahlavi lpahlavi requested a review from a team as a code owner July 11, 2025 14:02
Copy link
Contributor

@gregorydemay gregorydemay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this separate PR @lpahlavi ! Some minor comments but otherwise LGTM!

@lpahlavi lpahlavi changed the title feat: add try_send method to SOL RPC client feat!: add try_send method to SOL RPC client Jul 28, 2025
@lpahlavi lpahlavi merged commit b9725ec into main Jul 28, 2025
12 checks passed
@lpahlavi lpahlavi deleted the lpahlavi/add-try-send-method branch July 28, 2025 11:55
This was referenced Jul 28, 2025
lpahlavi added a commit that referenced this pull request Jul 31, 2025
## 🤖 New release

* `sol_rpc_types`: 1.0.0 -> 2.0.0 (⚠ API breaking changes)
* `sol_rpc_canister`: 1.0.0 -> 1.1.0 (✓ API compatible changes)
* `sol_rpc_client`: 1.0.0 -> 2.0.0 (⚠ API breaking changes)

### ⚠ `sol_rpc_types` breaking changes

```text
--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field TransactionStatusMeta.cost_units in /tmp/.tmpuppblp/sol-rpc-canister/libs/types/src/solana/transaction/mod.rs:286
```

<details><summary><i><b>Changelog</b></i></summary><p>

## `sol_rpc_types`

<blockquote>

## [2.0.0] - 2025-07-31

### Added

- Add optional `cost_units` to `TransactionStatusMeta`
([#180](#180))
- Add build requirements to READMEs and rustdoc
([#169](#169))
- Add `Cargo.toml` linting to CI pipeline
([#155](#155))

### Changed

- Require HTTP outcall base fee
([#185](#185))
- Select supported providers based on successful responses
([#183](#183))
- Migrate dependencies to `solana-sdk` repository
([#55](#55))
- Improve docs for `InstallArgs`
([#172](#172))

[2.0.0]:
https://github.com/dfinity/sol-rpc-canister/compare/1.0.0..2.0.0
</blockquote>

## `sol_rpc_canister`

<blockquote>

## [1.1.0] - 2025-07-31

### Added

- Add optional `cost_units` to `TransactionStatusMeta` (#180)
- Add more metrics (#144)

### Changed

- Do not record metrics for requests with insufficient cycles (#184)
- Require HTTP outcall base fee (#185)
- Select supported providers based on successful responses (#183)

### Fixed

- Change `nat16` to `nat32` in examples (#151)
</blockquote>

## `sol_rpc_client`

<blockquote>

## [2.0.0] - 2025-07-31

### Added

- Add `try_send` method to SOL RPC client
([#187](#187))
- Add build requirements to READMEs and rustdoc
([#169](#169))
- Add `Cargo.toml` linting to CI pipeline
([#155](#155))

### Changed

- Revert `sol_rpc_client` bump
([#178](#178))
- Migrate dependencies to `solana-sdk` repository
([#55](#55))
- Bump `sol_rpc_client` to `v1.0.1`
([#164](#164))
- Enable `ed25519` feature in docs
([#162](#162))

### Fixed

- Use correct fee for t-sig with local development key
([#160](#160))

[2.0.0]:
https://github.com/dfinity/sol-rpc-canister/compare/1.0.0..2.0.0
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Louis Pahlavi <louis.pahlavi@dfinity.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants