-
Notifications
You must be signed in to change notification settings - Fork 75
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
feat: tx sign --sign-with-lab #1604
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The new `sign` subcommand allows for signing a passed transaction envelope. And can choose a different source_account than the signing key's corresponding public key. Additionally, `signer::{Transaction, TransactionHash, Blob}` traits which simplifies the interface. Using blanket implementations, any type that implements `Blob`, will implement, `TransactionHash` and any type that implements `TransactionHash` implements `Transaction`, which uses the hash. This will allow for types to opt in to how they want to sign the transaction.
This was referenced Sep 13, 2024
Closed
Co-authored-by: Leigh McCulloch <[email protected]>
elizabethengelman
force-pushed
the
feat/sign_with_lab
branch
from
September 17, 2024 15:48
22fc7ce
to
5379176
Compare
Remove Blob trait. Add to TransactionHash trait to include hint. Move print to top level signer and fix test. Also remove the prompt for this PR since the sign command is already approval for signing.
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.
I merged main into this PR to update it.
Some comments below.
leighmcculloch
approved these changes
Sep 25, 2024
leighmcculloch
approved these changes
Sep 25, 2024
Ifropc
reviewed
Sep 25, 2024
printer.globeln(format!("Opening lab to sign transaction: {url}")); | ||
open::that(url)?; | ||
|
||
Err(Error::ReturningSignatureFromLab) |
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.
In the future it'd be good to add a TODO with a task number in the code
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This branch is based on #1590.
Companion Lab PR: stellar/laboratory#987 (merged)
old pr: #1579
What
Closes #1428
This PR adds the ability to sign a tx via lab, by opening lab in the browser with the xdr prefilled in the Lab UI.
To test, on this branch, run:
(
stellar contract deploy --wasm target/wasm32-unknown-unknown/test-wasms/test_hello_world.wasm --build-only --network testnet --source testnet-alice
)Why
This will allow for another way for users to sign their tx.
Known limitations
Based on discussions during our weekly check-in, this PR is the first step in implementing this feature. For now, when the user adds the
--sign-with-lab
flag, the CLI will send the transaction's xdr to lab via a query param, and then will print out the xdr to the stdout.In future iterations, we may want to send the signed tx xdr back to the command line, but for now the intention is to have the user either:
a. send the transaction from lab
b. manually copy the signed xdr from Lab, and paste it back in the command line to use with the cli
Instead of having the flag be
--sign-with-lab
, what if we change it to--sign-externally
? This would open us up to allow a user to pass in any URL that acceptsxdr
andnetworkPasshrase
as query params. 🤔