Comments (7)
That seems reasonable. I agree it would be a clearer description of the wallet with less ambiguity. So:
Singlesig:
P2PKH: pkh(keystore)
P2SH-P2PKH: sh(wpkh(keystore))
P2WPKH: wpkh(keystore)
Multisig:
P2SH: sh(multi(m,keystore1,keystore2,...))
P2SH-P2WSH: sh(wsh(multi(m,keystore1,keystore2,...)))
P2WSH: wsh(multi(m,keystore1,keystore2,...))
I agree the underscore seems missing looking at sipa's doc, but it doesn't feel natural to include in the above.
from sparrow.
I'm unsure if that's valid miniscript. Certainly sh(wpkh(key))
is used in output descriptors, and (for example) Sparrow will display that in the Receive panel. But I can't seem to find any reference to it in http://bitcoin.sipa.be/miniscript/ or any other document on miniscript that I've seen. It would be good to have clarity on this point!
from sparrow.
Yeah, I confused the terminology too again. What you display seems to actually be miniscript (maybe missing an underscore), but in the case of p2sh-p2wpkh
there just isn't any miniscript involved. What you want to display is probably a miniscript-based descriptor, because while sh(pk_h(key))
, sh(wphk(key))
and sh(wsh(pk_h(key)))
all encode the same spend policy, they produce different scripts/addresses. And the addresses you display are sh(wphk(key))
ones, so the displayed miniscript is kinda misleading. I think the descriptor concept is easy to see in rust-miniscript.
EDIT: if you want to play around with policies/miniscript/descriptors @afilini built a nice playground based on rust-miniscript.
from sparrow.
Implemented in sparrowwallet/drongo@3115669
from sparrow.
Nice! I think it should also be named differently in the ui (something along the lines of Miniscript descriptor
) once sparrow actually uses the new version of drogo. Looking forward to the next release!
from sparrow.
Agreed - due to label space I think I'm going to go with 'Descriptor', since it is closest to output descriptor language, but with each keystore abbreviated to it's label to make it easier to read. Each keystore will have a a tooltip with the output descriptor representation of the keystore e.g. [d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL
(no child key derivation). The context menu will allow for copying the full unabbreviated output descriptor.
I'm also moving from multi to sortedmulti as a more accurate representation of multisig wallets in Sparrow.
from sparrow.
Implemented in b8c3bf1.
from sparrow.
Related Issues (20)
- Very slow connection to Sparrow on Trezor One HOT 9
- Need option to RBF with exact same input-output ordering as original txn HOT 1
- Signing by QR does not open camera dialog HOT 1
- A bug with labels with multiple tx outputs HOT 3
- Webcam not reading QR. HOT 2
- Minor UI glitch: Sparrow displays uncompressed pubkeys as signatures. HOT 1
- [FEATURE REQUEST] RBF deactivated by default HOT 1
- Camera Access issue HOT 8
- Incorrect sort order for 'sortedmulti' Output Descriptor HOT 1
- Send to many dialog - handling of entries with amount 0.########
- unrecoverable wallet HOT 4
- wallet birthdate earlier than bitcoin core prune date HOT 6
- Tor identity isolation is broken HOT 5
- Import Watch Only Wallet generated by SeedHammer fails with `Error parsing UR CBOR` HOT 2
- [Windows] Are we Regtest friendly? HOT 1
- Windows Defender Alert HOT 6
- [MULTISIG][REGTEST] Extended keys HOT 1
- [UI] Change unfocused tab color HOT 1
- Clearer splash screen HOT 1
- [UI] Blue stroke of focused tab disappers HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sparrow.