Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 39 additions & 34 deletions generate_infinite_expiry_signing_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,49 +46,54 @@ class AevoRegister(TypedDict):
},
}

# NOTE: Change this to "mainnet" if you want to generate a mainnet signing key
environment = "testnet"
# NOTE: Paste your account private key here
# NOTE: BE CAREFUL WITH YOUR PRIVATE KEY, DO NOT SHARE IT WITH ANYONE
account_key = ""

domain = make_domain(**CONFIG[environment]["signing_domain"])
def generate_signing_key(environment: str, account_key: str) -> AevoRegister:
domain = make_domain(**CONFIG[environment]["signing_domain"])

account = Account.from_key(account_key)
print("Account:", account.address)
account = Account.from_key(account_key)
signing_key = secrets.token_hex(32)
signing_key_account = Account.from_key(signing_key)
expiry = 2 ** 256 - 1

signing_key = secrets.token_hex(32)
signing_key_account = Account.from_key(signing_key)
sign_key = SignKey(account=account.address)
register = Register(key=signing_key_account.address, expiry=expiry)

expiry = 2**256 - 1
sign_key_hash = keccak_256(sign_key.signable_bytes(domain=domain))
signing_key_signature = Account._sign_hash(sign_key_hash, signing_key).signature.hex()

sign_key = SignKey(account=account.address)
register = Register(key=signing_key_account.address, expiry=expiry)
register_hash = keccak_256(register.signable_bytes(domain=domain))
account_signature = Account._sign_hash(register_hash, account_key).signature.hex()

sign_key_hash = keccak_256(sign_key.signable_bytes(domain=domain))
signing_key_signature = Account._sign_hash(sign_key_hash, signing_key).signature.hex()
return {
"account": account.address,
"signing_key": signing_key_account.address,
"expiry": str(expiry),
"account_signature": account_signature,
"signing_key_signature": signing_key_signature,
}

register_hash = keccak_256(register.signable_bytes(domain=domain))
account_signature = Account._sign_hash(register_hash, account_key).signature.hex()

aevo_register: AevoRegister = {
"account": account.address,
"signing_key": signing_key_account.address,
"expiry": str(expiry),
"account_signature": account_signature,
"signing_key_signature": signing_key_signature,
}
def main():
environment = "testnet"
account_key = input("Enter your account private key: ").strip()

aevo_register = generate_signing_key(environment, account_key)

print(aevo_register)

r = requests.post(f"{CONFIG[environment]['rest_url']}/register", json=aevo_register)
print(r)
j = r.json()

print(j)

print(aevo_register)
if "error" in j:
print("\n\nError:", j["error"])
else:
print(f"\n\nInfinite expiry signing key generated for: {aevo_register['account']}")
print(f"Signing Key (Use this): {aevo_register['signing_key']}")

r = requests.post(f"{CONFIG[environment]['rest_url']}/register", json=aevo_register)
print(r)
j = r.json()

print(j)
if __name__ == "__main__":
main()

if "error" in j:
print("\n\nError:", j["error"])
else:
print(f"\n\nInfinite expiry signing key generated for: {account.address}")
print(f"Signing Key (Use this): {signing_key}")