Skip to content
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

add prompt for seed when restoring wallet #3023

Merged
merged 9 commits into from
Feb 16, 2024

Conversation

mj10021
Copy link
Contributor

@mj10021 mj10021 commented Jan 16, 2024

Fixes issue #2990 by allowing a seed to be entered to stdin when restoring a wallet. I'm not sure if I got the type coercion/checking exactly right here, so would appreciate any feedback/help. Thanks!

Copy link
Collaborator

@raphjaph raphjaph left a comment

Choose a reason for hiding this comment

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

This is good start! Definitely add a an integration test somewhere in tests/wallet. If you need help with that let me know.

@@ -1,9 +1,10 @@
use super::*;
use std::io;
Copy link
Collaborator

Choose a reason for hiding this comment

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

combine these two

use {
  super::*,
  std::io,
};

println!("Please input your seed below:");
io::stdin().read_line(&mut input).expect("failed to read mnemonic");
let input = input.into_bytes();
assert_eq!(input.len(), 64);
Copy link
Collaborator

Choose a reason for hiding this comment

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

not sure if we need this the Mnemonic might already perform these checks.

@raphjaph
Copy link
Collaborator

@mj10021 Have a look at #3048. I read the descriptor from stdin and also have some tests in there that you can use as a template.

@mj10021
Copy link
Contributor Author

mj10021 commented Jan 26, 2024

thanks :) i'm away this weekend but should have done early next week

@mj10021
Copy link
Contributor Author

mj10021 commented Feb 1, 2024

hey @raphjaph , just to clarify, is the stdin meant to accept a descriptor or a mnemonic?

@mj10021
Copy link
Contributor Author

mj10021 commented Feb 2, 2024

hey @raphjaph , just to clarify, is the stdin meant to accept a descriptor or a mnemonic?

Oh I see, the --descriptor flag lets you enter a descriptor through stdin without the mnemonic

@mj10021
Copy link
Contributor Author

mj10021 commented Feb 2, 2024

Ok, sorry, I actually do need some clarification. I see that now there is an option to restore from stdin and tests have already been made for that. Is this PR now redundant? Or is the option to load a mnemonic from stdin in addition to the descriptor flag also wanted? Thanks!

@raphjaph
Copy link
Collaborator

raphjaph commented Feb 2, 2024

Ok, sorry, I actually do need some clarification. I see that now there is an option to restore from stdin and tests have already been made for that. Is this PR now redundant? Or is the option to load a mnemonic from stdin in addition to the descriptor flag also wanted? Thanks!

Yes we want to load the mnemonic from stdin only as well. And def also add a separate test for that. Let me know when this is ready for review.

@mj10021
Copy link
Contributor Author

mj10021 commented Feb 3, 2024

Ok, sorry, I actually do need some clarification. I see that now there is an option to restore from stdin and tests have already been made for that. Is this PR now redundant? Or is the option to load a mnemonic from stdin in addition to the descriptor flag also wanted? Thanks!

Yes we want to load the mnemonic from stdin only as well. And def also add a separate test for that. Let me know when this is ready for review.

Ok got it thanks. I'm not able to run the tests atm but I think this should be right?

@mj10021 mj10021 force-pushed the issue-2990-fix branch 6 times, most recently from 40989ae to 8a9db7c Compare February 3, 2024 17:45
@raphjaph
Copy link
Collaborator

Tests aren't passing yet. Install just and run just ci to run all our tests.

@mj10021
Copy link
Contributor Author

mj10021 commented Feb 15, 2024

Tests aren't passing yet. Install just and run just ci to run all our tests.

Got it, thanks. Should be good now.

@mj10021 mj10021 force-pushed the issue-2990-fix branch 3 times, most recently from 86f75ef to 8055d2f Compare February 15, 2024 03:34
@raphjaph raphjaph enabled auto-merge (squash) February 16, 2024 18:18
Copy link
Collaborator

@raphjaph raphjaph left a comment

Choose a reason for hiding this comment

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

LGTM

@raphjaph raphjaph merged commit aff1044 into ordinals:master Feb 16, 2024
6 checks passed
thedoublejay pushed a commit to sadoprotocol/ord that referenced this pull request Mar 12, 2024
* Add recipe to deploy to all servers in fleet (ordinals#2992)

* Suppress empty command output (ordinals#2995)

* Optimize get_inscription_ids_by_sat_paginated (ordinals#2996)

* Add crate to audit content security policy (ordinals#2993)

* Remove dead link from README (ordinals#3000)

* Add `indexed` to output JSON (ordinals#2971)

* Cache less aggressively (ordinals#3002)

* Add minimal Dockerfile (ordinals#2786)

* Don't use browser sniffing when serving favicon (ordinals#3003)

* Add option to retain sat index for spent outputs (ordinals#2999)

* Hide BVM Network inscriptions (ordinals#3012)

* Use --name instead of --wallet in README (ordinals#3010)

* Add blocks and transaction JSON endpoints (ordinals#3004)

* Inscribe with delegate (ordinals#3021)

* Use untyped table API to get table info (ordinals#2747)

* Make wallet communicate with index via RPC (ordinals#2929)

* Break deploy recipes into multiple lines (ordinals#3026)

* Test fee-spent inscription numbering (ordinals#3032)

* Remove uneccessary allocations in Inscription Script Creation (ordinals#3039)

* Better wallet error messages (ordinals#3041)

* Add documentation for reinscriptions (ordinals#2963)

* Exclude unnecessary docs (ordinals#3043)

* Enable JSON API by default (ordinals#3047)

* Forbid destinations in same-sat mode (ordinals#3038)

* Dump and restore wallet from descriptors (ordinals#3048)

* Add /runes/balances (ordinals#2978)

* Make invariant message more concise (ordinals#3029)

* Add dry run to send, print Outgoing and PSBT (ordinals#3063)

* Use a flag to indicate a mint (ordinals#3068)

* Move SatPoint into library (ordinals#3077)

* [ordinals] Bump version: 0.0.1 → 0.0.2 (ordinals#3078)

* Use min instead of clamp (ordinals#3081)

* Make clippy stop complaining about insane repair callback (ordinals#3104)

* Remove index parameter from index_block (ordinals#3088)

* Allow specifying satpoint in `same-sat` batch inscribe (ordinals#3100)

* Show reinscriptions in `ord wallet inscriptions` (ordinals#3101)

* Move sat and friends into ordinals crate (ordinals#3079)

* fix naming (ordinals#3112)

* Return signed PSBT from `ord wallet send` (ordinals#3093)

* Add /r/blockinfo endpoint (ordinals#3075)

* Import multiple descriptors at a time (ordinals#3091)

* Add `satpoints` batch inscribe mode (ordinals#3115)

* Allow inscribing AVIF images (ordinals#3123)

* Fix spelling mistake in bip.mediawiki (ordinals#3118)

* Only allow mnemonic from stdin (ordinals#3023)

* Emit inscription update events to channel (ordinals#3137)

* Make Options public (ordinals#3138)

* Use `image-rendering: auto` when downscaling images (ordinals#3144)

* Add `ord env` to spin up a test bitcoin daemon and ord server (ordinals#3146)

* Display inscription content type counts on /status (ordinals#3127)

* Add optional HTTP authentication for server (ordinals#3131)

* Make wallet async (ordinals#3142)

* Add `/r/inscription` endpoint for getting inscription details (ordinals#2628)

* Use `image-rendering: auto` for AVIF inscriptions (ordinals#3148)

* Make `ord env` more user friendly (ordinals#3153)

* Move JSON structs into api module (ordinals#3167)

* Display parent above metadata on /inscription (ordinals#3160)

* Represent rune IDs as `BLOCK:TX` (ordinals#3165)

* Add parent preview to inscription page (ordinals#3163)

* Update inscription sat documentation (ordinals#3114)

* Fix lints (ordinals#3124)

* Remove unnecessary lifetime from Formatter (ordinals#3178)

* Print PSBT for dry run inscribe (ordinals#3116)

* Update docs to reflect wallet changes (ordinals#3179)

* Improve configuration (ordinals#3156)

* Document `ord env` (ordinals#3180)

* Install openssl in docker image (ordinals#3181)

* Release 0.16.0-rc0 (ordinals#3182)

* Refactor test server to use arguments (ordinals#3183)

* Update ordinals crate (ordinals#3184)

* Release 0.16.0-rc1 (ordinals#3185)

* Allow configuring interval between commits to index (ordinals#3186)

* Credit contributors in changelog (ordinals#3187)

* Make deploys noninteractive (ordinals#3189)

* Make nop and burn tags one byte (ordinals#3207)

* Encode claims as tag (ordinals#3206)

* Add content proxy (ordinals#3216)

* Add reinscribe option to batch file (ordinals#3220)

* Check for duplicate satpoints in `satpoints` mode (ordinals#3221)

* Overhaul settings (ordinals#3188)

* Rename index_envelopes to index_inscriptions (ordinals#3233)

* Test that runes can be minted with no edict (ordinals#3231)

* Add libssl-dev to ubuntu install command (ordinals#3235)

* Enable indexing runes on mainnet (ordinals#3236)

* Document `ord wallet restore` (ordinals#3237)

* Load config from default data dir and configure `ord env ` using config (ordinals#3240)

* Document `ord env` commands (ordinals#3241)

* Fix list numbering in handbook (ordinals#3248)

* Display initial sync time on status page (ordinals#3250)

* Create tempdir in download-log recipe (ordinals#3242)

* Don't consider unconfirmed UTXOs as spent (ordinals#3255)

* Reserve inscription tag 15 (ordinals#3256)

* Rename genesis fee to inscription fee (ordinals#3257)

* Add more fields to /r/blockinfo (ordinals#3260)

* Add `id` inscription recursive JSON (ordinals#3258)

* Document recursive endpoint backwards compatibility guarantees (ordinals#3265)

* Release 0.16.0 (ordinals#3264)

- Bump version: 0.16.0-rc1 → 0.16.0
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Bump ordinals version: 0.0.3 → 0.0.4 (ordinals#3267)

---------

Co-authored-by: Casey Rodarmor <casey@rodarmor.com>
Co-authored-by: oxSaturn <oxSaturn@proton.me>
Co-authored-by: raph <raphjaph@protonmail.com>
Co-authored-by: Robert Clarke <robert@rjfc.net>
Co-authored-by: Davirain <davirain.yin@gmail.com>
Co-authored-by: Jeremy Rubin <jeremy.l.rubin@gmail.com>
Co-authored-by: mj10021 <jamesthespeedy@gmail.com>
Co-authored-by: zhiqiangxu <652732310@qq.com>
Co-authored-by: 0xLugon <lugon@alphatrue.com>
Co-authored-by: Jerry the Martian <38183696+jerryfane@users.noreply.github.com>
Co-authored-by: HarveyV <34950940+HarveyV@users.noreply.github.com>
Co-authored-by: Michael Yu <michael@magiceden.io>
Co-authored-by: lifofifo <134870335+devords@users.noreply.github.com>
Co-authored-by: Eloc <42568538+elocremarc@users.noreply.github.com>
Co-authored-by: Sitt Guruvanich <aekazitt@gmail.com>
Co-authored-by: bingryan <41174435+bingryan@users.noreply.github.com>
Co-authored-by: Andrew <47720952+andrewhong5297@users.noreply.github.com>
Co-authored-by: Arik <arik-so@users.noreply.github.com>
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.

Feature request: ord wallet restore to accept user input for MNEMONIC
2 participants