LiskArchive / lisk-sdk

🔩 Lisk software development kit
https://lisk.com
Apache License 2.0
2.72k stars 456 forks source link

Offline signing of multisig transaction fails schema validation #9037

Closed bobanm closed 1 year ago

bobanm commented 1 year ago

Actual behavior

When using --offline flag, transaction:sign command returns error:

LiskValidationError: Lisk validator found 1 error[s]:
Missing property, must have required property 'chainID'

Expected behavior

The command should sign the transaction.

Steps to reproduce

We create transfer tx

./bin/run transaction:create token transfer 100000000 --offline --chain-id 03000001 --nonce 0 --json --key-derivation-path 'm/44'/134'/0' with a multi-sig account

Then we sign it offline one by one by each key by providing the tx hex from prev step and then providing mandatory/optional keys info

./bin/run transaction:sign 0a05746f6b656e12087472616e7366657218002080c2d72f2a20bab2de16d9d9c409f19befc529542927cc45fb05ae52d39af95b3ebefb15005e322a0a0803000001000000001095d8970b1a14a90e238ec53202fafc2f3f2db89530ec1ff0159922036a6b273a40904c9ae644499de872ee0f9ff65ba879ca07bf7f30cb381894b284e69ba7f52f56118d637f49abddf6d95c8bf824d49a42c198d71682566d28287ae61cd5640a --mandatory-keys "['dfda7c78310bcda455b258084bb43283168271d3bae5cf5a560013918cf7f21d', '47ef4e36c52968f27cc1aefb003b344319ad08672120494b31e7c13450dc710e']" --optional-keys "['55c3fc3afaa5d717b8bba76e5e621f536f6544e7dcd7362b0a7953e8dfd79f33', '12c440d0c9e6fb1cb96921b6e788e9dda4b1e1f6aec338a7cfd0af761e6f2458']" --key-derivation-path 'm/44'/134'/1' --json --chain-id 03000001 --offline

Additional information

The missing chainID which validator complains about is not the one provided in the command arguments, but chainID which it expects to be defined in genesis properties.

Missing chainID value should be provided from the flags, like in create command.