From f9f461d78d65b616a4ad2fef8b3ecb3e22c5ac5f Mon Sep 17 00:00:00 2001 From: Hendrik Hofstadt Date: Tue, 20 Jul 2021 18:52:09 +0200 Subject: [PATCH] Add upgrade authority command to cli Change-Id: I58d617cbf19a8300a0915f317e63469c73e64c0f --- solana/bridge/client/src/main.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/solana/bridge/client/src/main.rs b/solana/bridge/client/src/main.rs index 7a657c72..7f8a78b5 100644 --- a/solana/bridge/client/src/main.rs +++ b/solana/bridge/client/src/main.rs @@ -61,7 +61,9 @@ use solana_sdk::{ use solitaire::{ processors::seeded::Seeded, AccountState, + Info, }; +use solitaire_client::Derive; struct Config { rpc_client: RpcClient, @@ -214,6 +216,20 @@ fn main() { Defaults to the client keypair.", ), ) + .subcommand( + SubCommand::with_name("upgrade-authority") + .about("Get the derived signer used for contract upgrades") + .arg( + Arg::with_name("bridge") + .long("bridge") + .value_name("BRIDGE_KEY") + .validator(is_pubkey_or_keypair) + .takes_value(true) + .index(1) + .required(true) + .help("Specify the bridge program address"), + ) + ) .subcommand( SubCommand::with_name("create-bridge") .about("Create a new bridge") @@ -361,6 +377,13 @@ fn main() { msg_fee_persistent, ) } + ("upgrade-authority", Some(arg_matches)) => { + let bridge = pubkey_of(arg_matches, "bridge").unwrap(); + let upgrade_auth = , "upgrade">>::key(None, &bridge); + println!("Upgrade Key: {}", upgrade_auth); + + Ok(None) + } ("post-message", Some(arg_matches)) => { let bridge = pubkey_of(arg_matches, "bridge").unwrap(); let data_str: String = value_of(arg_matches, "data").unwrap();