vacuumlabs / cardano-hw-cli

Cardano CLI tool for hardware wallets
71 stars 24 forks source link

Multisig support #98

Closed KubqoA closed 2 years ago

KubqoA commented 3 years ago

Done:

Todo

After Connect and LedgerJS release:

DavidTranDucVL commented 3 years ago

Reopening after auto-close

DavidTranDucVL commented 3 years ago

I'm trying to create keyHash and noticed we have problem with envelope types. Here are steps to reproduce:

cardano-hw-cli address key-gen \
--path 1854H/1815H/0H/0/0 \
--verification-key-file payment.vkey \
--hw-signing-file payment.hwsfile

Use cardano-cli (1.29.0) to get keyHash:

cardano-cli address key-hash --payment-verification-key-file payment.vkey

Returns error with:

Command failed: address key-hash  Error: payment.vkey: TextEnvelope type error:  Expected one of: PaymentVerificationKeyByron_ed25519_bip32, PaymentVerificationKeyShelley_ed25519, PaymentExtendedVerificationKeyShelley_ed25519_bip32, GenesisUTxOVerificationKey_ed25519 Actual: PaymentVerificationKey_ed25519

This is content of payment.vkey:

{
    "type": "PaymentVerificationKey_ed25519",
    "description": "Script Payment Verification Key",
    "cborHex": "58200fa60d5831ee0be1f221ff93ba0a4fdeca5a5866e47569607b04e287fc9b5ec0"
}

After manually changing type from PaymentVerificationKey_ed25519 to PaymentVerificationKeyShelley_ed25519 the call:

cardano-cli address key-hash --payment-verification-key-file payment.vkey

returns

9a70dd7c77e9db9442b560a11446962e9d7c595274c587a62f8a0b61
DavidTranDucVL commented 3 years ago

I tried creating witness for transaction, there seem to be 2 problems.

Steps to reproduce:

tx.raw:

{
    "type": "TxBodyMary",
    "description": "",
    "cborHex": "83a30081825820911be7646cb660654c9cb354f7576e3829c28237c557682911fdc0c022f70754000181825839304b45ae976a543c4267b1448d188765f1cbd4af56046a5e745d63ba9a87a28a0106a376da135381c818e221dfb4e5a84db110dccec93f46741a3b97bcc0021a00030d409ffff6"
}

payment1.hwsfile:

{
    "type": "PaymentHWSigningFileShelley_ed25519",
    "description": "Payment Hardware Signing File",
    "path": "1854H/1815H/0H/0/0",
    "cborXPubKeyHex": "58400fa60d5831ee0be1f221ff93ba0a4fdeca5a5866e47569607b04e287fc9b5ec057fccd2e6071fbcab281598c6e2e53515d2e3ca762566237583d76915a401d09"
}

Run

cardano-hw-cli transaction witness \
--tx-body-file tx.raw \
--hw-signing-file payment1.hwsfile \
--testnet-magic 1097911063 \
--out-file payment1.witness

returns:

Error: Cannot create separate witness for transaction other than pool registration, use "sign" subcommand instead

I commented out the validation. But then Ledger seem to enter some corrupted state, where there are 3 dots ... on screen. cardano-hw-cli on command line finishes but doesn't create payment1.witness file.

Full steps to reproduce: https://github.com/DavidTranDucVL/multisig-cardano-hw-cli-demo/blob/master/create-a-wallet.md https://github.com/DavidTranDucVL/multisig-cardano-hw-cli-demo/blob/master/send-transaction.md