-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(spaceward): build TxRaw without StargateClient #795
Conversation
WalkthroughWalkthroughThe changes involve modifications to the transaction signing process within the Changes
Sequence Diagram(s)sequenceDiagram
participant A as useEnqueueAction
participant B as useTx
participant C as sign
A->>B: Call useTx()
B->>C: Call sign(msgs, options)
C-->>B: Return signed transaction
B-->>A: Return transaction result
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Outside diff range, codebase verification and nitpick comments (3)
spaceward/src/features/actions/hooks.ts (1)
Line range hint
63-103
: Approved and suggested minor refactor for clarity.The integration of the
sign
method fromuseTx
intouseEnqueueAction
simplifies the transaction signing process significantly. This change aligns well with the PR's objectives and enhances code modularity.However, the function contains a large number of parameters in the
_opts
object, which could be refactored for better clarity and maintainability.Consider breaking down the
_opts
object into more manageable parts or creating a dedicated type or interface to handle these parameters more cleanly.Example refactor:
interface ActionOptions extends TxOptions { chainName?: string; tx?: TransactionLike; signDoc?: StdSignDoc; pubkey?: Uint8Array; title?: string; keyThemeIndex?: number; walletConnectRequestId?: number; walletConnectTopic?: string; snapRequestId?: string; } async function addAction( data: Parameters<typeof getMessage>[0], opts: ActionOptions = {}, actionTimeoutHeight = 0, ) { // function body remains the same }spaceward/src/hooks/useClient.ts (2)
46-57
: Well-structured newsign
function.The
sign
function is well-implemented, encapsulating the transaction signing logic effectively. It uses sensible defaults and clear structuring to handle the transaction creation.Consider adding error handling for potential failures in
getOfflineSigner
andgetSigningClient
to enhance robustness.
Line range hint
71-91
: Refactoredtx
function to use the newsign
function.The refactoring of the
tx
function to use thesign
function simplifies the transaction handling and centralizes the signing logic, which is a positive change for maintainability.Consider adding more specific error messages or handling specific error types to provide clearer user feedback.
Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Files selected for processing (2)
- spaceward/src/features/actions/hooks.ts (3 hunks)
- spaceward/src/hooks/useClient.ts (5 hunks)
Additional comments not posted (3)
spaceward/src/features/actions/hooks.ts (1)
6-6
: Approved changes in imports.The replacement of
getSigningClient
withuseTx
aligns with the PR's objective to simplify the transaction signing process using a centralized hook.spaceward/src/hooks/useClient.ts (2)
134-134
: Updated return statement inuseTx
.The inclusion of the
sign
function in the return statement ofuseTx
is a good practice, as it exposes the new functionality to other parts of the application.
188-192
: SimplifiedTxRaw
construction inbuildTxRaw
.The use of
TxRaw.fromPartial
instead of the previous encoding method simplifies the construction process and is a cleaner approach to handling protobuf data.
This PR makes src/features/actions/hooks.ts use the standard
useTx
hook to build transaction (that now exposes asign()
fn for building a TxRaw object without broadcasting it).SigningStargateClient no longer works due to the use of evmos keys.
Summary by CodeRabbit
New Features
sign
function to theuseTx
hook for improved modularity in transaction handling.Bug Fixes
Documentation