-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate-keys.sh
More file actions
executable file
·69 lines (55 loc) · 1.99 KB
/
generate-keys.sh
File metadata and controls
executable file
·69 lines (55 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
set -euo pipefail
# Get the script's directory and project root
script_dir=$(dirname "$0")
project_root=$(cd "$script_dir/.." && pwd)
# Define directory paths relative to project root
keys_dir="$project_root/keys"
# Create keys directory if it doesn't exist
mkdir -p "$keys_dir"
# Source the cardano-cli wrapper
source "$script_dir/helper/cardano-cli-wrapper.sh"
# Check network for mainnet warning (only in Docker mode)
if [ "$NODE_MODE" = "docker" ]; then
container_name="$("$script_dir/helper/get-container.sh")"
network=$(echo $container_name | cut -d'-' -f2)
if [ "$network" = "mainnet" ]; then
echo "These scripts are not secure and should not be used to create mainnet transactions!!"
echo "Exiting."
exit 0
fi
fi
# Check if keys already exist
if [ -f "$keys_dir/drep.id" ]; then
echo "Keys already generated."
echo "Exiting."
exit 0
fi
# Generate keys; payment, stake and DRep.
echo "Generating keys; payment, stake and DRep."
echo "from keys, generate payment address, stake address and DRep ID."
# Generate payment keys
cardano_cli address key-gen \
--verification-key-file "$keys_dir/payment.vkey" \
--signing-key-file "$keys_dir/payment.skey"
# Generate stake keys
cardano_cli stake-address key-gen \
--verification-key-file "$keys_dir/stake.vkey" \
--signing-key-file "$keys_dir/stake.skey"
# Generate DRep keys
cardano_cli conway governance drep key-gen \
--verification-key-file "$keys_dir/drep.vkey" \
--signing-key-file "$keys_dir/drep.skey"
# Generate DRep ID
cardano_cli conway governance drep id \
--drep-verification-key-file "$keys_dir/drep.vkey" \
--out-file "$keys_dir/drep.id"
# Get payment address from keys
cardano_cli address build \
--payment-verification-key-file "$keys_dir/payment.vkey" \
--stake-verification-key-file "$keys_dir/stake.vkey" \
--out-file "$keys_dir/payment.addr"
# Derive stake address from stake keys
cardano_cli stake-address build \
--stake-verification-key-file "$keys_dir/stake.vkey" \
--out-file "$keys_dir/stake.addr"