mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-15 02:42:38 +00:00
117 lines
2.5 KiB
Python
117 lines
2.5 KiB
Python
import os
|
|
import sys
|
|
import shutil
|
|
import subprocess
|
|
from subprocess import Popen, PIPE, STDOUT
|
|
|
|
NUM_VALIDATORS=3
|
|
TEST_MNEMONIC = "test test test test test test test test test test test waste"
|
|
WALLET_NAME="test_wallet"
|
|
|
|
tmp_dir = os.path.join(".", "tmp")
|
|
mnemonic_path = os.path.join(tmp_dir, "mnemonic.txt")
|
|
lh_dir = os.path.join(tmp_dir, "lh")
|
|
lh_json_path = os.path.join(lh_dir, "deposit-data.json")
|
|
lh_wallet_password_path = os.path.join(lh_dir, "wallet.pass")
|
|
sdc_dir = os.path.join(tmp_dir, "sdc")
|
|
sdc_git_dir = os.path.join(sdc_dir, "staking-deposit-cli")
|
|
|
|
|
|
def setup():
|
|
if os.path.exists(tmp_dir):
|
|
cleanup()
|
|
|
|
os.mkdir(tmp_dir)
|
|
os.mkdir(lh_dir)
|
|
os.mkdir(sdc_dir)
|
|
|
|
setup_sdc()
|
|
with open(mnemonic_path, "x") as file:
|
|
file.write(TEST_MNEMONIC)
|
|
|
|
|
|
def cleanup():
|
|
shutil.rmtree(tmp_dir)
|
|
|
|
|
|
def setup_sdc():
|
|
result = subprocess.run([
|
|
"git",
|
|
"clone",
|
|
"--single-branch",
|
|
"https://github.com/ethereum/staking-deposit-cli.git",
|
|
str(sdc_git_dir)
|
|
])
|
|
assert(result.returncode == 0)
|
|
result = subprocess.run([
|
|
"pip",
|
|
"install",
|
|
"-r",
|
|
"requirements.txt",
|
|
], cwd=sdc_git_dir)
|
|
assert(result.returncode == 0)
|
|
result = subprocess.run([
|
|
"python",
|
|
"setup.py",
|
|
"install",
|
|
], cwd=sdc_git_dir)
|
|
assert(result.returncode == 0)
|
|
|
|
|
|
def sdc_generate(network):
|
|
p = Popen([
|
|
'/bin/sh',
|
|
'deposit.sh',
|
|
], stdin=PIPE, cwd=sdc_git_dir)
|
|
p.communicate(input=TEST_MNEMONIC.encode('utf-8'))[0]
|
|
|
|
|
|
def lighthouse_generate(network):
|
|
result = subprocess.run([
|
|
"lighthouse",
|
|
"--network",
|
|
network,
|
|
"account",
|
|
"wallet",
|
|
"recover",
|
|
"--datadir",
|
|
str(lh_dir),
|
|
"--name",
|
|
WALLET_NAME,
|
|
"--mnemonic-path",
|
|
str(mnemonic_path),
|
|
"--password-file",
|
|
str(lh_wallet_password_path)
|
|
])
|
|
assert(result.returncode == 0)
|
|
|
|
result = subprocess.run([
|
|
"lighthouse",
|
|
"--network",
|
|
network,
|
|
"account",
|
|
"validator",
|
|
"create",
|
|
"--datadir",
|
|
str(lh_dir),
|
|
"--wallet-name",
|
|
WALLET_NAME,
|
|
"--wallet-password",
|
|
str(lh_wallet_password_path),
|
|
"--count",
|
|
str(NUM_VALIDATORS),
|
|
"--json-deposit-data-path",
|
|
str(lh_json_path)
|
|
])
|
|
assert(result.returncode == 0)
|
|
|
|
|
|
def test(network):
|
|
setup()
|
|
sdc_generate(network)
|
|
#lighthouse_generate(network)
|
|
# cleanup()
|
|
|
|
|
|
test("mainnet")
|