IntersectMBO / cardano-cli

This repository contains sources for the command-line interface (CLI) tool for interacting with the Cardano blockchain.
Apache License 2.0
37 stars 13 forks source link

transaction view: show proposals and votes #774

Closed smelc closed 3 months ago

smelc commented 3 months ago

Changelog

- description: |
    transaction view: show proposals and votes

    This adds to new fiels to the JSON output of `transaction view`: `governance actions` and `voters`.
    Please see https://github.com/IntersectMBO/cardano-cli/pull/774#issuecomment-2139062455 for example outputs.
    When those fields are irrelevant, they are present but there value is `null`.
# uncomment types applicable to the change:
  type:
  # - feature        # introduces a new feature
  # - breaking       # the API has changed in a breaking way
  - compatible     # the API has changed but is non-breaking
  # - optimisation   # measurable performance improvements
  # - refactoring    # QoL changes
  # - bugfix         # fixes a defect
  # - test           # fixes/modifies tests
  # - maintenance    # not directly related to the code
  # - release        # related to a new release preparation
  # - documentation  # change in code docs, haddocks...

Context

Fixes https://github.com/IntersectMBO/cardano-cli/issues/711

How to trust this PR

Checklist

CarlosLopezDeLara commented 3 months ago

Nice!!! Here is the output of a transaction with three votes:

{
    "type": "Witnessed Tx ConwayEra",
    "description": "Ledger Cddl Format",
    "cborHex": "84a400d901028182582096e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d0001818258390062573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c4208f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d31b0000000b8641a6ef021a0002d45913a18202581cefda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2a38258204c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50008201f682582067820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027008200f68258209bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397008202f6a100d90102828258208e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc0258408e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb048258208a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a584080bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505f5f6"
}
./dist-newstyle/build/x86_64-linux/ghc-9.6.4/cardano-cli-8.23.1.0/x/cardano-cli/build/cardano-cli/cardano-cli conway transaction view --tx-file ~/networks/sancho/transactions/threevotes-tx.signed 
{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "185433 Lovelace",
    "governance actions": [],
    "inputs": [
        "96e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace": 49497089775
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "votes": {
        "drep-keyHash-efda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2": {
            "4c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50#0": {
                "anchor": null,
                "decision": "VoteYes"
            },
            "67820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027#0": {
                "anchor": null,
                "decision": "VoteNo"
            },
            "9bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397#0": {
                "anchor": null,
                "decision": "Abstain"
            }
        }
    },
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"8e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb04\")"
        },
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"80bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505\")"
        }
    ]
}
CarlosLopezDeLara commented 3 months ago

And the output of a transaction with a proposal

{
    "type": "Witnessed Tx ConwayEra",
    "description": "Ledger Cddl Format",
    "cborHex": "84a400d9010281825820e51d839ec4ef4b3522a965dab8cbd0a2c52ecd5959a469384c001c8691a98ab60001818258390062573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c4208f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d31b0000000ba438aef3021a0002c50d14d9010281841b0000000ba43b7400581de008f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d38301f6820a0082784b68747470733a2f2f6769746875622e636f6d2f6361726c6f736c6f64656c61722f70726f706f73616c732f626c6f622f6d61696e2f7768792d68617264666f726b2d746f2d31302e74787458206fad941a5236c151b44c23458fb99d6812bbc5c6eb3a3a8a5d2518e8be8962aba100d90102818258208e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02584028230d2507267600d17c7f062d9f3184f4686af570c31e2f9ed652d339d776dcd72fccf30dd17bc077d2615845bbad64fd6ddffdba5b2874651d0c3533e10d0bf5f6"
}
./dist-newstyle/build/x86_64-linux/ghc-9.6.4/cardano-cli-8.23.1.0/x/cardano-cli/build/cardano-cli/cardano-cli conway transaction view --tx-file ~/networks/sancho/transactions/hardfork-tx.signed 
{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "181517 Lovelace",
    "governance actions": [
        {
            "anchor": {
                "dataHash": "6fad941a5236c151b44c23458fb99d6812bbc5c6eb3a3a8a5d2518e8be8962ab",
                "url": "https://github.com/carloslodelar/proposals/blob/main/why-hardfork-to-10.txt"
            },
            "deposit": 50000000000,
            "governance action": {
                "contents": [
                    null,
                    {
                        "major": 10,
                        "minor": 0
                    }
                ],
                "tag": "HardForkInitiation"
            },
            "return address": {
                "credential": {
                    "keyHash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
                },
                "network": "Testnet"
            }
        }
    ],
    "inputs": [
        "e51d839ec4ef4b3522a965dab8cbd0a2c52ecd5959a469384c001c8691a98ab6#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace": 49999818483
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "votes": {},
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"28230d2507267600d17c7f062d9f3184f4686af570c31e2f9ed652d339d776dcd72fccf30dd17bc077d2615845bbad64fd6ddffdba5b2874651d0c3533e10d0b\")"
        }
    ]
}
smelc commented 3 months ago

@mkoura> can you look at the newly versioned golden files and let me know if the JSON format for the new fields governance actions and voters is what we want?

smelc commented 3 months ago

If you want to see the JSON output of the new fields, execute these examples:

#!/usr/bin/env bash

threeVotesTx='{
    "type": "Witnessed Tx ConwayEra",
    "description": "Ledger Cddl Format",
    "cborHex": "84a400d901028182582096e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d0001818258390062573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c4208f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d31b0000000b8641a6ef021a0002d45913a18202581cefda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2a38258204c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50008201f682582067820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027008200f68258209bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397008202f6a100d90102828258208e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc0258408e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb048258208a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a584080bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505f5f6"
}'

proposalTx='{
    "type": "Witnessed Tx ConwayEra",
    "description": "Ledger Cddl Format",
    "cborHex": "84a400d9010281825820e51d839ec4ef4b3522a965dab8cbd0a2c52ecd5959a469384c001c8691a98ab60001818258390062573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c4208f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d31b0000000ba438aef3021a0002c50d14d9010281841b0000000ba43b7400581de008f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d38301f6820a0082784b68747470733a2f2f6769746875622e636f6d2f6361726c6f736c6f64656c61722f70726f706f73616c732f626c6f622f6d61696e2f7768792d68617264666f726b2d746f2d31302e74787458206fad941a5236c151b44c23458fb99d6812bbc5c6eb3a3a8a5d2518e8be8962aba100d90102818258208e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02584028230d2507267600d17c7f062d9f3184f4686af570c31e2f9ed652d339d776dcd72fccf30dd17bc077d2615845bbad64fd6ddffdba5b2874651d0c3533e10d0bf5f6"
}'

tx_file="/tmp/tx.json"
rm -Rf "$tx_file"
echo $threeVotesTx > "$tx_file"
set -x
cardano-cli conway transaction view --tx-file "$tx_file"
set +x

rm -Rf "$tx_file"
echo $proposalTx > "$tx_file"
set -x
cardano-cli conway transaction view --tx-file "$tx_file"
set +x

This will output:

{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "185433 Lovelace",
    "governance actions": [],
    "inputs": [
        "96e3be606ca03f67b0d299ca0eb0d660670edaa8452fffcc4bfccd8757a9b45d#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace": 49497089775
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "voters": {
        "drep-keyHash-efda35608d806f37ac3948f1ddaff912e5f9130e9b52035c166bd8f2": {
            "4c2121ececebac2a364878d295c959029e55225b426dfea5e0511ae0abc28d50#0": {
                "anchor": null,
                "decision": "VoteYes"
            },
            "67820c121787464a9b670cf4c648f67cabd9573eb71b220214971ce467d25027#0": {
                "anchor": null,
                "decision": "VoteNo"
            },
            "9bd2b6547ab8e8ed5c34049d6b984772a8352ac70e92198e1a7f6cdbb12d6397#0": {
                "anchor": null,
                "decision": "Abstain"
            }
        }
    },
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"8e92da471878c0fe6b97a4390df93cc81a6b84348bf1b393e6270b680b0d6402c9681672f393a54b35817c92884f7806ed5a00811e5aff6cfee8468100fecb04\")"
        },
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8a10253789af22a6493dbe6a3a415732152989a9bd00b010e18f07a7cabcc74a\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"80bf834e873c59259fe6248cb98d7de49e7214f293895bbc7e0064030c7de10e565f867c5dfded379aaa8bfd2140f41ace6301f02e2b6678ad020a72e26b6505\")"
        }
    ]
}

and

{
    "auxiliary scripts": null,
    "certificates": null,
    "collateral inputs": [],
    "era": "Conway",
    "fee": "181517 Lovelace",
    "governance actions": [
        {
            "anchor": {
                "dataHash": "6fad941a5236c151b44c23458fb99d6812bbc5c6eb3a3a8a5d2518e8be8962ab",
                "url": "https://github.com/carloslodelar/proposals/blob/main/why-hardfork-to-10.txt"
            },
            "deposit": 50000000000,
            "governance action": {
                "contents": [
                    null,
                    {
                        "major": 10,
                        "minor": 0
                    }
                ],
                "tag": "HardForkInitiation"
            },
            "return address": {
                "credential": {
                    "keyHash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
                },
                "network": "Testnet"
            }
        }
    ],
    "inputs": [
        "e51d839ec4ef4b3522a965dab8cbd0a2c52ecd5959a469384c001c8691a98ab6#0"
    ],
    "metadata": null,
    "mint": null,
    "outputs": [
        {
            "address": "addr_test1qp39w0fa0ccdc4gmg87puydf2kxt5mgt0vteq4a22ktrcssg7ysmx64l90xa0k4z25wpuejngya833qeu9cdxvveynfscsskf5",
            "address era": "Shelley",
            "amount": {
                "lovelace": 49999818483
            },
            "network": "Testnet",
            "payment credential key hash": "62573d3d7e30dc551b41fc1e11a9558cba6d0b7b179057aa55963c42",
            "reference script": null,
            "stake reference": {
                "stake credential key hash": "08f121b36abf2bcdd7daa2551c1e6653413a78c419e170d3319924d3"
            }
        }
    ],
    "redeemers": {},
    "reference inputs": [],
    "required signers (payment key hashes needed for scripts)": null,
    "return collateral": null,
    "total collateral": null,
    "update proposal": null,
    "validity range": {
        "lower bound": null,
        "upper bound": null
    },
    "voters": {},
    "withdrawals": null,
    "witnesses": [
        {
            "key": "VKey (VerKeyEd25519DSIGN \"8e090717d4c91437d3b8c467acc850197485913efdbfb48114a4d6cf0ca2dc02\")",
            "signature": "SignedDSIGN (SigEd25519DSIGN \"28230d2507267600d17c7f062d9f3184f4686af570c31e2f9ed652d339d776dcd72fccf30dd17bc077d2615845bbad64fd6ddffdba5b2874651d0c3533e10d0b\")"
        }
    ]
}