Add lcli indexed-attestations (#3221)

## Proposed Changes

It's reasonably often that we want to manually convert an attestation to indexed form. This PR adds an `lcli` command for doing this, using an SSZ state and a list of JSON attestations (as extracted from a JSON block) as input.
This commit is contained in:
Michael Sproul
2022-05-31 06:09:08 +00:00
parent af5da1244e
commit ee18f6a9f7
2 changed files with 71 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ mod create_payload_header;
mod deploy_deposit_contract;
mod eth1_genesis;
mod generate_bootnode_enr;
mod indexed_attestations;
mod insecure_validators;
mod interop_genesis;
mod new_testnet;
@@ -598,6 +599,26 @@ fn main() {
.help("The number of nodes to divide the validator keys to"),
)
)
.subcommand(
SubCommand::with_name("indexed-attestations")
.about("Convert attestations to indexed form, using the committees from a state.")
.arg(
Arg::with_name("state")
.long("state")
.value_name("SSZ_STATE")
.takes_value(true)
.required(true)
.help("BeaconState to generate committees from (SSZ)"),
)
.arg(
Arg::with_name("attestations")
.long("attestations")
.value_name("JSON_ATTESTATIONS")
.takes_value(true)
.required(true)
.help("List of Attestations to convert to indexed form (JSON)"),
)
)
.get_matches();
let result = matches
@@ -679,6 +700,8 @@ fn run<T: EthSpec>(
.map_err(|e| format!("Failed to run generate-bootnode-enr command: {}", e)),
("insecure-validators", Some(matches)) => insecure_validators::run(matches)
.map_err(|e| format!("Failed to run insecure-validators command: {}", e)),
("indexed-attestations", Some(matches)) => indexed_attestations::run::<T>(matches)
.map_err(|e| format!("Failed to run indexed-attestations command: {}", e)),
(other, _) => Err(format!("Unknown subcommand {}. See --help.", other)),
}
}