Documentation ¶
Overview ¶
Package depositutil contains useful functions for dealing with eth2 deposit inputs.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DepositInput ¶
func DepositInput(depositKey, withdrawalKey bls.SecretKey, amountInGwei uint64) (*ethpb.Deposit_Data, [32]byte, error)
DepositInput for a given key. This input data can be used to when making a validator deposit. The input data includes a proof of possession field signed by the deposit key.
Spec details about general deposit workflow:
To submit a deposit: - Pack the validator's initialization parameters into deposit_data, a Deposit_Data SSZ object. - Let amount be the amount in Gwei to be deposited by the validator where MIN_DEPOSIT_AMOUNT <= amount <= MAX_EFFECTIVE_BALANCE. - Set deposit_data.amount = amount. - Let signature be the result of bls_sign of the signing_root(deposit_data) with domain=compute_domain(DOMAIN_DEPOSIT). (Deposits are valid regardless of fork version, compute_domain will default to zeroes there). - Send a transaction on the Ethereum 1.0 chain to DEPOSIT_CONTRACT_ADDRESS executing def deposit(pubkey: bytes[48], withdrawal_credentials: bytes[32], signature: bytes[96]) along with a deposit of amount Gwei.
func VerifyDepositSignature ¶
func VerifyDepositSignature(dd *ethpb.Deposit_Data, domain []byte) error
VerifyDepositSignature verifies the correctness of Eth1 deposit BLS signature
func WithdrawalCredentialsHash ¶
WithdrawalCredentialsHash forms a 32 byte hash of the withdrawal public address.
The specification is as follows:
withdrawal_credentials[:1] == BLS_WITHDRAWAL_PREFIX_BYTE withdrawal_credentials[1:] == hash(withdrawal_pubkey)[1:]
where withdrawal_credentials is of type bytes32.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.