def load_pools_data(cluster_obj: clusterlib.ClusterLib) -> dict: """Load data for pools existing in the cluster environment.""" data_dir = get_cluster_env().state_dir / "nodes" pools_data = {} for pool_data_dir in data_dir.glob("node-pool*"): pools_data[pool_data_dir.name] = { "payment": clusterlib.AddressRecord( address=clusterlib.read_address_from_file(pool_data_dir / "owner.addr"), vkey_file=pool_data_dir / "owner-utxo.vkey", skey_file=pool_data_dir / "owner-utxo.skey", ), "stake": clusterlib.AddressRecord( address=clusterlib.read_address_from_file(pool_data_dir / "owner-stake.addr"), vkey_file=pool_data_dir / "owner-stake.vkey", skey_file=pool_data_dir / "owner-stake.skey", ), "reward": clusterlib.AddressRecord( address=cluster_obj.gen_stake_addr( addr_name="reward", stake_vkey_file=pool_data_dir / "reward.vkey", destination_dir=pool_data_dir, ), vkey_file=pool_data_dir / "reward.vkey", skey_file=pool_data_dir / "reward.skey", ), "stake_addr_registration_cert": pool_data_dir / "stake.reg.cert", "stake_addr_delegation_cert": pool_data_dir / "owner-stake.deleg.cert", "reward_addr_registration_cert": pool_data_dir / "stake-reward.reg.cert", "pool_registration_cert": pool_data_dir / "register.cert", "pool_operational_cert": pool_data_dir / "op.cert", "cold_key_pair": clusterlib.ColdKeyPair( vkey_file=pool_data_dir / "cold.vkey", skey_file=pool_data_dir / "cold.skey", counter_file=pool_data_dir / "cold.counter", ), "vrf_key_pair": clusterlib.KeyPair( vkey_file=pool_data_dir / "vrf.vkey", skey_file=pool_data_dir / "vrf.skey", ), "kes_key_pair": clusterlib.KeyPair( vkey_file=pool_data_dir / "kes.vkey", skey_file=pool_data_dir / "kes.skey", ), } return pools_data
def create_addrs_data( self, cluster_obj: clusterlib.ClusterLib, destination_dir: FileType = ".") -> Dict[str, Dict[str, Any]]: """Create addresses and their keys for usage in tests.""" destination_dir = Path(destination_dir).expanduser() destination_dir.mkdir(parents=True, exist_ok=True) cluster_env = get_cluster_env() instance_num = cluster_env.instance_num # create new addresses new_addrs_data: Dict[str, Dict[str, Any]] = {} for addr_name in self.test_addr_records: addr_name_instance = f"{addr_name}_ci{instance_num}" payment = cluster_obj.gen_payment_addr_and_keys( name=addr_name_instance, destination_dir=destination_dir, ) new_addrs_data[addr_name] = { "payment": payment, } # create records for existing byron addresses byron_addrs_data: Dict[str, Dict[str, Any]] = {} byron_dir = get_cluster_env().state_dir / "byron" for b in range(len(list(byron_dir.glob("*.skey")))): byron_addr = { "payment": clusterlib.AddressRecord( address=clusterlib.read_address_from_file( byron_dir / f"address-00{b}-converted"), vkey_file=byron_dir / f"payment-keys.00{b}-converted.vkey", skey_file=byron_dir / f"payment-keys.00{b}-converted.skey", ) } byron_addrs_data[f"byron00{b}"] = byron_addr # fund new addresses from byron address LOGGER.debug("Funding created addresses.") to_fund = [d["payment"] for d in new_addrs_data.values()] clusterlib_utils.fund_from_faucet( *to_fund, cluster_obj=cluster_obj, faucet_data=byron_addrs_data["byron000"], amount=100_000_000_000_000, destination_dir=destination_dir, force=True, ) addrs_data = {**new_addrs_data, **byron_addrs_data} return addrs_data
def create_addr_record(addr_file: Path) -> clusterlib.AddressRecord: """Return a `clusterlib.AddressRecord`.""" f_name = addr_file.name.replace(".addr", "") basedir = addr_file.parent vkey_file = basedir / f"{f_name}.vkey" skey_file = basedir / f"{f_name}.skey" if not (vkey_file.exists() and skey_file.exists()): raise ValueError(f"Keys for '{addr_file}' not available.") addr_record = clusterlib.AddressRecord( address=clusterlib.read_address_from_file(addr_file), vkey_file=vkey_file, skey_file=skey_file, ) return addr_record
def create_addrs_data( self, cluster_obj: clusterlib.ClusterLib, destination_dir: FileType = "." ) -> Dict[str, Dict[str, Any]]: """Create addresses and their keys for usage in tests.""" shelley_dir = get_cluster_env().state_dir / "shelley" addrs_data: Dict[str, Dict[str, Any]] = {} for addr_name in self.test_addr_records: faucet_addr = { "payment": clusterlib.AddressRecord( address=clusterlib.read_address_from_file(shelley_dir / "faucet.addr"), vkey_file=shelley_dir / "faucet.vkey", skey_file=shelley_dir / "faucet.skey", ) } addrs_data[addr_name] = faucet_addr return addrs_data