input-output-hk / voting-tools Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Just as an info, the new version of cardano-signer 1.5.0 has implemented the upcoming CIP-0036 standard for governance/catalyst multi-delegation of voting-power. It generates the registration cbor hex string or directly the binary cbor file to submit it on chain.
### REGISTER/DELEGATE TO A SINGLE VOTING-KEY
$ cardano-signer sign --cip36 \
--rewards-address "stake_test1urqntq4wexjylnrdnp97qq79qkxxvrsa9lcnwr7ckjd6w0cr04y4p" \
--secret-key ../owner.staking.skey \
--vote-public-key somevote.vkey \
--nonce 71948552 \
--out-file catalyst-delegation.cbor
a219ef64a5018182582057758911253f6b31df2a87c10eb08a2c9b8450768cb8dd0d378d93f7c2e220f0010258209be513df12b3fabe7c1b8c3f9fab0968eb2168d5689bf981c2f7c35b11718b2703581de0c13582aec9a44fcc6d984be003c5058c660e1d2ff1370fd8b49ba73f041a0449d908050019ef65a1015840c839244556db17a2df914c7291c891e5abd1bd580de7786d640da9e27983efe86495cbee900eb685c08e367e778bb0860c6e366b9ec715d8fba824ef55c8aa0f
### REGISTER/DELEGATE TO MULTIPLE VOTING-KEYS WITH VOTINGPOWER 10%,20%,70%
$ cardano-signer sign --cip36 \
--rewards-address "stake_test1urqntq4wexjylnrdnp97qq79qkxxvrsa9lcnwr7ckjd6w0cr04y4p" \
--secret-key ../owner.staking.skey \
--vote-public-key ../somevote.vkey \
--vote-weight 10 \
--vote-public-key "C2CD50D8A231FBC1444D65ABAB4F6BF74178E6DE64722558EEEF0B73DE293A8A" \
--vote-weight 20 \
--vote-public-key "ed25519_pk128c305nw9xh20kearuhcwj447kzlvxdfttkk6uwnrf6qfjm9276svd678w" \
--vote-weight 70 \
--nonce 71948552 \
--out-file catalyst-multidelegation.cbor
a219ef64a5018382582099d1d0c4cdc8a4b206066e9606c6c3729678bd7338a8eab9bffdffa39d3df9580a825820c2cd50d8a231fbc1444d65abab4f6bf74178e6de64722558eeef0b73de293a8a1482582051f117d26e29aea7db3d1f2f874ab5f585f619a95aed6d71d31a7404cb6557b518460258209be513df12b3fabe7c1b8c3f9fab0968eb2168d5689bf981c2f7c35b11718b2703581de0c13582aec9a44fcc6d984be003c5058c660e1d2ff1370fd8b49ba73f041a0449d908050019ef65a1015840ecce4b2e10146857b9f583ce01b10a26726022963d47fd61d0fbb67b543428fa46315d4e35b2ab73e7e15f620883176422a19e780a751d71ac488053365e6402
Please add a versioning to the voting-tools incl. voter-registration via standard parameter -V | --version
Hi Guys, just wanted to chime in that it seems the current readme is not clear how a SPO can participate in the full Catalyst Fund2 Voting Process
make build CARDANO_NODE_SOCKET_PATH=state-node-testnet/node.socket \ ./voter-registration-tool/voter-registration/bin/voter-registration \ --payment-signing-key payment.skey \ --stake-signing-key stake.skey \ --vote-public-key vote.pub \ --payment-address "addr_test..." \ --testnet-magic 1097911063 > meta.txsigned
I was wondering if we can improve this? I'll try to play with this and submit a PR if I get any reasonable progress
Thanks,
~ Clark, ADAPH Team
Feature-Request:
Adding a --output-format
flag with the values: txbody, txsigned and metadata
Adding a --nonce
flag to provide custom data instead of fixed value slotHeight
In --output-format metadata
mode this would reduce the needed input-flags to:
./voter-registration --payment-address STRING
--vote-public-key FILE
--stake-signing-key FILE
--nonce NONCE
(--mainnet | --testnet-magic NATURAL)
--output-format metadata
--out-file FILE
The metadata out-file format should be binary(cbor) format so it can be attached to a transaction via the cardano-cli transaction build-raw --metadata-cbor-file
flag.
This would also be in line with the cardano-hw-cli
workflow for voting with hw-wallets, which also generates the metadata-cbor-file in raw(binary) format.
P.S.: Maybe it would also be an idea to rename the --payment-address
flag into --rewards-payout-address
flag, because maybe --payment-address is misleading here. The transaction including such a voting-registration-metadata can be paid by any wallet.
Tag: @disassembler
I have successfully built the voter-registration-tool and have the binary which outputs the help menu successfully:
[nix-shell:/voter-registration-tool]# ./voter-registration/bin/voter-registration --help
voter-registration - a tool to create vote transactions
Usage: voter-registration --payment-signing-key FILE --payment-address STRING
--vote-public-key FILE --stake-signing-key FILE
(--mainnet | --testnet-magic NATURAL)
[--time-to-live WORD64] --out-file FILE
Create a vote transaction
Available options:
--payment-signing-key FILE
file used to sign transaction
--payment-address STRING address associated with payment (hard-coded to use
info from first utxo of address)
--vote-public-key FILE vote key generated by jcli (corresponding private key
must be ed25519extended)
--stake-signing-key FILE stake authorizing vote key
--mainnet Use the mainnet magic id.
--testnet-magic NATURAL Specify a testnet magic id.
--time-to-live WORD64 The number of slots from the current slot at which
the vote transaction times out. (default: 5000)
--out-file FILE File to output the signed transaction to
-h,--help Show this help text
[nix-shell:/voter-registration-tool]#
However whenever I try to build a voting registration transaction I receive a failure:
[nix-shell:/voter-registration-tool]# ./voter-registration/bin/voter-registration --payment-signing-key /priv/wallet/Pool_Wallet/payment.skey --stake-signing-key /priv/wallet/Pool_Wallet/stake.skey --vote-public-key /priv/wallet/Pool_Wallet/vote.vkey --payment-address $(cat /priv/wallet/Pool_Wallet/payment.addr) --mainnet --out-file /priv/wallet/Pool_Wallet/voter-reg-metadata.txsigned --time-to-live 16400000
voter-registration: Prelude.undefined
CallStack (from HasCallStack):
error, called at libraries/base/GHC/Err.hs:78:14 in base:GHC.Err
undefined, called at src/Cardano/CLI/Voting.hs:123:21 in voter-registration-0.1.0.0-8ewluHg54h1C5uodO7hz7s:Cardano.CLI.Voting
Cardano Version 1.24.2
Testnet/Mainnet
Doing the voter registration command I am getting the following error
voter-registration: user error (AppShelleyQueryError (EraMismatchError (EraMismatch {ledgerEraName = "Allegra", otherEraName = "Shelley"})))
Adding --allegra-era to the command gives Invalid option
Looks like the current version of the voter-registration tool is having some issues calculating the right amount of lovelaces in the transaction when there are native asset on the payment address. The following error occured on a users tryout:
cardano-cli transaction submit --cardano-mode --mainnet --tx-file vote-registration.tx
Command failed: transaction submit Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [UtxowFailure (UtxoFailure (ValueNotConservedUTxO (Value 35777639 (fromList [(PolicyID {policyID = ScriptHash "98dc68b04026544619a251bc01aad2075d28433524ac36cbc75599a1"},fromList [("hosk",9)])])) (Value 35777639 (fromList []))))])
The Voter-Registration tool is no longer working with node 1.30.1 and later in the Alonzo-Era. Trying to generate a Catalyst Registration Tx results in the following error message:
$ ./voter-registration --payment-signing-key somepay.skey --payment-address $(cat somepay.addr) --rewards-address $(cat voting/catalyst-rewards.staking.addr) --vote-public-key voting/vote.pkey --stake-signing-key pledge.staking.skey --cardano-mode --mainnet --out-file voting/catalystregistration.tx
voter-registration: DecoderFailure (LocalStateQuery HardForkBlock (': * ByronBlock (': * (ShelleyBlock (ShelleyEra StandardCrypto)) (': * (ShelleyBlock (ShelleyMAEra 'Allegra StandardCrypto)) (': * (ShelleyBlock (ShelleyMAEra 'Mary StandardCrypto)) ('[] *))))) Query (HardForkBlock (': * ByronBlock (': * (ShelleyBlock (ShelleyEra StandardCrypto)) (': * (ShelleyBlock (ShelleyMAEra 'Allegra StandardCrypto)) (': * (ShelleyBlock (ShelleyMAEra 'Mary StandardCrypto)) ('[] *))))))) ServerAgency TokQuerying QueryIfCurrent (QS (QZ GetCurrentPParams))) (DeserialiseFailure 15 "decodeNS: invalid index 4")
The Catalyst Toolbox Repo (https://github.com/input-output-hk/catalyst-toolbox) do not include a registration signing feature yet, soo.... are we now stuck here?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.