Documentation ¶
Index ¶
- Constants
- type DepositDataManager
- func (m *DepositDataManager) ComputeMerkleRoot(data []types.ExtendedDepositData) (common.Hash, error)
- func (m *DepositDataManager) GenerateDepositData(keys []*eth2types.BLSPrivateKey) ([]*types.ExtendedDepositData, error)
- func (m *DepositDataManager) GetDepositData() ([]byte, error)
- func (m *DepositDataManager) UpdateDepositData(data []types.ExtendedDepositData) error
- type DepositDataMetaResponse
- type DepositDataResponse
- type ExitData
- type ExitMessage
- type ExitMessageDetails
- type NodesetClient
- func (c *NodesetClient) EnsureAuthSignatureExists() error
- func (c *NodesetClient) GetRegisteredValidators(ctx context.Context) ([]ValidatorStatus, error)
- func (c *NodesetClient) GetServerDepositData(ctx context.Context) (int, []types.ExtendedDepositData, error)
- func (c *NodesetClient) GetServerDepositDataVersion(ctx context.Context) (int, error)
- func (c *NodesetClient) UploadDepositData(ctx context.Context, depositData []byte) ([]byte, error)
- func (c *NodesetClient) UploadSignedExitData(ctx context.Context, exitData []ExitData) ([]byte, error)
- type StakewiseServiceProvider
- func (s *StakewiseServiceProvider) GetDepositDataManager() *DepositDataManager
- func (s *StakewiseServiceProvider) GetModuleConfig() *swconfig.StakewiseConfig
- func (s *StakewiseServiceProvider) GetNodesetClient() *NodesetClient
- func (s *StakewiseServiceProvider) GetResources() *swconfig.StakewiseResources
- func (s *StakewiseServiceProvider) GetWallet() *Wallet
- func (sp *StakewiseServiceProvider) RequireStakewiseWalletReady(ctx context.Context, status wallet.WalletStatus) error
- func (sp *StakewiseServiceProvider) WaitForStakewiseWallet(ctx context.Context) error
- type ValidatorStatus
- type ValidatorsResponse
- type Wallet
- func (w *Wallet) CheckIfStakewiseWalletExists() (bool, error)
- func (w *Wallet) DerivePubKeys(privateKeys []*eth2types.BLSPrivateKey) ([]beacon.ValidatorPubkey, error)
- func (w *Wallet) GenerateNewValidatorKey() (*eth2types.BLSPrivateKey, error)
- func (w *Wallet) GetAllPrivateKeys() ([]*eth2types.BLSPrivateKey, error)
- func (w *Wallet) GetLatestDepositDataVersion() int
- func (w *Wallet) GetPrivateKeyForPubkey(pubkey beacon.ValidatorPubkey) (*eth2types.BLSPrivateKey, error)
- func (w *Wallet) SaveStakewiseWallet(ethKey []byte, password string) error
- func (w *Wallet) SetLatestDepositDataVersion(version int) error
Constants ¶
const ( // Stakewise validators deposit a full 32 ETH StakewiseDepositAmount uint64 = 32e9 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DepositDataManager ¶
type DepositDataManager struct {
// contains filtered or unexported fields
}
DepositDataManager manages the aggregated deposit data file that Stakewise uses
func NewDepositDataManager ¶
func NewDepositDataManager(sp *StakewiseServiceProvider) (*DepositDataManager, error)
Creates a new manager
func (*DepositDataManager) ComputeMerkleRoot ¶
func (m *DepositDataManager) ComputeMerkleRoot(data []types.ExtendedDepositData) (common.Hash, error)
Compute the Merkle root of the aggregated deposit data using the Stakewise rules NOTE: reverse engineered from https://github.com/stakewise/v3-operator/blob/fa4ac2673a64a486ced51098005376e56e2ddd19/src/validators/utils.py#L207
func (*DepositDataManager) GenerateDepositData ¶
func (m *DepositDataManager) GenerateDepositData(keys []*eth2types.BLSPrivateKey) ([]*types.ExtendedDepositData, error)
Generates deposit data for the provided keys
func (*DepositDataManager) GetDepositData ¶
func (m *DepositDataManager) GetDepositData() ([]byte, error)
Read the deposit data file
func (*DepositDataManager) UpdateDepositData ¶
func (m *DepositDataManager) UpdateDepositData(data []types.ExtendedDepositData) error
Save the deposit data file
type DepositDataMetaResponse ¶
type DepositDataMetaResponse struct {
Version int `json:"version"`
}
api/deposit-data/meta
type DepositDataResponse ¶
type DepositDataResponse struct { Version int `json:"version"` Data []types.ExtendedDepositData `json:"data"` }
api/deposit-data
type ExitData ¶
type ExitData struct { Pubkey string `json:"pubkey"` ExitMessage ExitMessage `json:"exit_message"` }
type ExitMessage ¶
type ExitMessage struct { Message ExitMessageDetails `json:"message"` Signature string `json:"signature"` }
type ExitMessageDetails ¶
type ExitMessageDetails struct { Epoch string `json:"epoch"` ValidatorIndex string `json:"validator_index"` }
================= === Requests === =================
type NodesetClient ¶
type NodesetClient struct {
// contains filtered or unexported fields
}
Client for interacting with the Nodeset server
func NewNodesetClient ¶
func NewNodesetClient(sp *StakewiseServiceProvider) *NodesetClient
Creates a new Nodeset client
func (*NodesetClient) EnsureAuthSignatureExists ¶
func (c *NodesetClient) EnsureAuthSignatureExists() error
Checks if the NodeSet authorization signature has been set, and if not, creates it by getting a signed message from the node wallet
func (*NodesetClient) GetRegisteredValidators ¶
func (c *NodesetClient) GetRegisteredValidators(ctx context.Context) ([]ValidatorStatus, error)
Get a list of all of the pubkeys that have already been registered with NodeSet for this node
func (*NodesetClient) GetServerDepositData ¶
func (c *NodesetClient) GetServerDepositData(ctx context.Context) (int, []types.ExtendedDepositData, error)
Get the aggregated deposit data from the server
func (*NodesetClient) GetServerDepositDataVersion ¶
func (c *NodesetClient) GetServerDepositDataVersion(ctx context.Context) (int, error)
Get the current version of the aggregated deposit data on the server
func (*NodesetClient) UploadDepositData ¶
Uploads deposit data to Nodeset
func (*NodesetClient) UploadSignedExitData ¶
func (c *NodesetClient) UploadSignedExitData(ctx context.Context, exitData []ExitData) ([]byte, error)
Submit signed exit data to Nodeset
type StakewiseServiceProvider ¶
type StakewiseServiceProvider struct { *services.ServiceProvider // contains filtered or unexported fields }
func NewStakewiseServiceProvider ¶
func NewStakewiseServiceProvider(sp *services.ServiceProvider) (*StakewiseServiceProvider, error)
Create a new service provider with Stakewise daemon-specific features
func (*StakewiseServiceProvider) GetDepositDataManager ¶
func (s *StakewiseServiceProvider) GetDepositDataManager() *DepositDataManager
func (*StakewiseServiceProvider) GetModuleConfig ¶
func (s *StakewiseServiceProvider) GetModuleConfig() *swconfig.StakewiseConfig
func (*StakewiseServiceProvider) GetNodesetClient ¶
func (s *StakewiseServiceProvider) GetNodesetClient() *NodesetClient
func (*StakewiseServiceProvider) GetResources ¶
func (s *StakewiseServiceProvider) GetResources() *swconfig.StakewiseResources
func (*StakewiseServiceProvider) GetWallet ¶
func (s *StakewiseServiceProvider) GetWallet() *Wallet
func (*StakewiseServiceProvider) RequireStakewiseWalletReady ¶
func (sp *StakewiseServiceProvider) RequireStakewiseWalletReady(ctx context.Context, status wallet.WalletStatus) error
func (*StakewiseServiceProvider) WaitForStakewiseWallet ¶
func (sp *StakewiseServiceProvider) WaitForStakewiseWallet(ctx context.Context) error
type ValidatorStatus ¶
type ValidatorStatus struct { Pubkey beacon.ValidatorPubkey `json:"pubkey"` Status string `json:"status"` ExitMessageUploaded bool `json:"exitMessage"` }
api/validators
type ValidatorsResponse ¶
type ValidatorsResponse struct {
Data []ValidatorStatus `json:"data"`
}
api/dev/validators
type Wallet ¶
type Wallet struct {
// contains filtered or unexported fields
}
Wallet manager for the Stakewise daemon
func (*Wallet) CheckIfStakewiseWalletExists ¶
Check if the Stakewise wallet and password files exist
func (*Wallet) DerivePubKeys ¶
func (w *Wallet) DerivePubKeys(privateKeys []*eth2types.BLSPrivateKey) ([]beacon.ValidatorPubkey, error)
Get the private validator key with the corresponding pubkey
func (*Wallet) GenerateNewValidatorKey ¶
func (w *Wallet) GenerateNewValidatorKey() (*eth2types.BLSPrivateKey, error)
Generate a new validator key and save it
func (*Wallet) GetAllPrivateKeys ¶
func (w *Wallet) GetAllPrivateKeys() ([]*eth2types.BLSPrivateKey, error)
Gets all of the validator private keys that are stored in the Stakewise keystore folder
func (*Wallet) GetLatestDepositDataVersion ¶
Get the version of the aggregated deposit data from the NodeSet server that's stored on disk
func (*Wallet) GetPrivateKeyForPubkey ¶
func (w *Wallet) GetPrivateKeyForPubkey(pubkey beacon.ValidatorPubkey) (*eth2types.BLSPrivateKey, error)
Get the private validator key with the corresponding pubkey
func (*Wallet) SaveStakewiseWallet ¶
Saves the Stakewise wallet and password files
func (*Wallet) SetLatestDepositDataVersion ¶
Set the latest deposit data version and save the wallet data