//! Dump a sample GovernorDatum as PlutusData CBOR hex. //! //! Useful for constructing the inline datum for a governor bootstrap //! tx — edit the values in `main()` to your DAO's parameters and run: //! //! ```sh //! cargo run --example dump_governor -p aldabra-dao --release //! ``` //! //! Pipe the output hex into `wallet_plutus_mint_unsigned`'s //! `dest_inline_datum_cbor_hex` arg. use aldabra_dao::agora::proposal::{ProposalThresholds, ProposalTimingConfig}; use aldabra_dao::agora::GovernorDatum; use pallas_codec::minicbor; fn main() { let g = GovernorDatum { proposal_thresholds: ProposalThresholds { execute: 50, create: 100, to_voting: 100, vote: 1, cosign: 1, }, next_proposal_id: 0, proposal_timings: ProposalTimingConfig { // Short timings for preprod testing — flip these up for // any real DAO on mainnet (e.g. 7d/7d/48h/24h/1h/30min). draft_time: 60_000, voting_time: 60_000, locking_time: 30_000, executing_time: 30_000, min_stake_voting_time: 60_000, voting_time_range_max_width: 30_000, }, create_proposal_time_range_max_width: 30_000, maximum_created_proposals_per_stake: 20, }; let pd = g.to_plutus_data().expect("encode GovernorDatum"); let mut buf = Vec::new(); minicbor::encode(&pd, &mut buf).expect("encode CBOR"); let hex: String = buf.iter().map(|b| format!("{:02x}", b)).collect(); println!("{}", hex); }