# Example script to register a validator
# See https://github.com/hyperliquid-dex/node?tab=readme-ov-file#join-network for spec
#
# IMPORTANT: Replace any arguments for the exchange calls below to match your deployment requirements.
import example_utils
from hyperliquid.utils import constants
# Change to one of "Register", "ChangeProfile", or "Unregister"
ACTION = ""
DUMMY_SIGNER = "0x0000000000000000000000000000000000000001"
def main():
address, info, exchange = example_utils.setup(constants.TESTNET_API_URL, skip_ws=True)
if ACTION == "Register":
node_ip = "1.2.3.4"
name = "..."
description = "..."
delegations_disabled = True
commission_bps = 5
signer = DUMMY_SIGNER
unjailed = False
initial_wei = 100000
register_result = exchange.c_validator_register(
node_ip,
name,
description,
delegations_disabled,
commission_bps,
signer,
unjailed,
initial_wei,
)
print("register result", register_result)
elif ACTION == "ChangeProfile":
node_ip = None
name = None
description = None
unjailed = False
disable_delegations = None
commission_bps = None
signer = None
change_profile_result = exchange.c_validator_change_profile(
node_ip,
name,
description,
unjailed,
disable_delegations,
commission_bps,
signer,
)
print("change profile result", change_profile_result)
elif ACTION == "Unregister":
unregister_result = exchange.c_validator_unregister()
print("unregister result", unregister_result)
else:
raise ValueError("Invalid action specified")
if __name__ == "__main__":
main()