mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 13:28:01 -05:00
Compare commits
4 Commits
c6c9414d8b
...
fee-recipi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eed79977a8 | ||
|
|
9de393ab84 | ||
|
|
2636d94f3b | ||
|
|
870e831595 |
@@ -108,12 +108,12 @@ func configureInteropConfig(cliCtx *cli.Context) {
|
||||
}
|
||||
|
||||
func configureExecutionSetting(cliCtx *cli.Context) error {
|
||||
if !cliCtx.IsSet(flags.FeeRecipient.Name) {
|
||||
if !cliCtx.IsSet(flags.SuggestedFeeRecipient.Name) {
|
||||
return nil
|
||||
}
|
||||
|
||||
c := params.BeaconConfig()
|
||||
ha := cliCtx.String(flags.FeeRecipient.Name)
|
||||
ha := cliCtx.String(flags.SuggestedFeeRecipient.Name)
|
||||
if !common.IsHexAddress(ha) {
|
||||
return fmt.Errorf("%s is not a valid fee recipient address", ha)
|
||||
}
|
||||
|
||||
@@ -90,19 +90,19 @@ func TestConfigureExecutionSetting(t *testing.T) {
|
||||
|
||||
app := cli.App{}
|
||||
set := flag.NewFlagSet("test", 0)
|
||||
set.String(flags.FeeRecipient.Name, "", "")
|
||||
require.NoError(t, set.Set(flags.FeeRecipient.Name, "0xB"))
|
||||
set.String(flags.SuggestedFeeRecipient.Name, "", "")
|
||||
require.NoError(t, set.Set(flags.SuggestedFeeRecipient.Name, "0xB"))
|
||||
cliCtx := cli.NewContext(&app, set, nil)
|
||||
err := configureExecutionSetting(cliCtx)
|
||||
require.ErrorContains(t, "0xB is not a valid fee recipient address", err)
|
||||
|
||||
require.NoError(t, set.Set(flags.FeeRecipient.Name, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))
|
||||
require.NoError(t, set.Set(flags.SuggestedFeeRecipient.Name, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))
|
||||
cliCtx = cli.NewContext(&app, set, nil)
|
||||
err = configureExecutionSetting(cliCtx)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, common.HexToAddress("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), params.BeaconConfig().DefaultFeeRecipient)
|
||||
|
||||
require.NoError(t, set.Set(flags.FeeRecipient.Name, "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))
|
||||
require.NoError(t, set.Set(flags.SuggestedFeeRecipient.Name, "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))
|
||||
cliCtx = cli.NewContext(&app, set, nil)
|
||||
err = configureExecutionSetting(cliCtx)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -18,6 +18,7 @@ go_library(
|
||||
],
|
||||
deps = [
|
||||
"//cmd:go_default_library",
|
||||
"//config/fieldparams:go_default_library",
|
||||
"//config/params:go_default_library",
|
||||
"@com_github_sirupsen_logrus//:go_default_library",
|
||||
"@com_github_urfave_cli_v2//:go_default_library",
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
package flags
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"strings"
|
||||
|
||||
fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams"
|
||||
"github.com/prysmaticlabs/prysm/config/params"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -216,10 +216,10 @@ var (
|
||||
Usage: "Sets the minimum number of peers that a node will attempt to peer with that are subscribed to a subnet.",
|
||||
Value: 6,
|
||||
}
|
||||
// FeeRecipient specifies the fee recipient for the transaction fees.
|
||||
FeeRecipient = &cli.StringFlag{
|
||||
Name: "fee-recipient",
|
||||
Usage: "Post bellatrix, this address will receive the transaction fees produced by any blocks from this node. Default to junk whilst bellatrix is in development state.",
|
||||
Value: hex.EncodeToString([]byte("0x0000000000000000000000000000000000000001")),
|
||||
// SuggestedFeeRecipient specifies the fee recipient for the transaction fees.
|
||||
SuggestedFeeRecipient = &cli.StringFlag{
|
||||
Name: "suggested-fee-recipient",
|
||||
Usage: "Post bellatrix, this address will receive the transaction fees produced by any blocks from this node. Default to junk whilst bellatrix is in development state. Validator client can override this value through the preparebeaconproposer api.",
|
||||
Value: fieldparams.EthBurnAddressHex,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -67,7 +67,7 @@ var appFlags = []cli.Flag{
|
||||
flags.Eth1HeaderReqLimit,
|
||||
flags.GenesisStatePath,
|
||||
flags.MinPeersPerSubnet,
|
||||
flags.FeeRecipient,
|
||||
flags.SuggestedFeeRecipient,
|
||||
cmd.EnableBackupWebhookFlag,
|
||||
cmd.BackupWebhookOutputDir,
|
||||
cmd.MinimalConfigFlag,
|
||||
|
||||
@@ -131,7 +131,7 @@ var appHelpFlagGroups = []flagGroup{
|
||||
{
|
||||
Name: "merge",
|
||||
Flags: []cli.Flag{
|
||||
flags.FeeRecipient,
|
||||
flags.SuggestedFeeRecipient,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -84,6 +84,43 @@ service KeyManagement {
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
// List all remote(web3signer) validating pubkeys known to this validator client binary
|
||||
// HTTP response status codes:
|
||||
// - 200: Successful response
|
||||
// - 401: Unauthorized
|
||||
// - 403: Forbidden from accessing the resource
|
||||
// - 500: Validator internal error
|
||||
rpc ListRemoteKeys(google.protobuf.Empty) returns (ListRemoteKeysResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/internal/eth/v1/remotekeys"
|
||||
};
|
||||
}
|
||||
// Imports unique remote(web3signer) validating pubkeys to be used for the web3signer.
|
||||
// HTTP response status codes:
|
||||
// - 200: Successful response
|
||||
// - 401: Unauthorized
|
||||
// - 403: Forbidden from accessing the resource
|
||||
// - 500: Validator internal error
|
||||
rpc ImportRemoteKeys(ImportKeystoresRequest) returns (ImportRemoteKeysResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/internal/eth/v1/remotekeys",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
// Deletes remote(web3signer) validating pubkeys from the keymanager so the remote signer does not sign with those keys.
|
||||
// DELETE must delete all keys from `request.pubkeys` that are known to the validator client and exist in its persistent storage.
|
||||
// DELETE should never return a 404 response, even if all pubkeys from request.pubkeys have no existing keystores.
|
||||
// HTTP response status codes:
|
||||
// - 200: Successful response
|
||||
// - 401: Unauthorized
|
||||
// - 403: Forbidden from accessing the resource
|
||||
// - 500: Validator internal error
|
||||
rpc DeleteRemoteKeys(DeleteKeystoresRequest) returns (DeleteRemoteKeysResponse) {
|
||||
option (google.api.http) = {
|
||||
delete: "/internal/eth/v1/remotekeys",
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message ListKeystoresResponse {
|
||||
@@ -133,3 +170,47 @@ message DeletedKeystoreStatus {
|
||||
Status status = 1;
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
|
||||
message ListRemoteKeysRequest {
|
||||
}
|
||||
|
||||
message ListRemoteKeysResponse {
|
||||
repeated bytes pubkeys = 1;
|
||||
}
|
||||
|
||||
message ImportRemoteKeysRequest {
|
||||
repeated string pubkeys = 1;
|
||||
}
|
||||
|
||||
message ImportRemoteKeysResponse {
|
||||
repeated ImportedRemoteKeyStatus data = 1;
|
||||
}
|
||||
|
||||
message DeleteRemoteKeysRequest {
|
||||
repeated bytes pubkeys = 1;
|
||||
}
|
||||
|
||||
message DeleteRemoteKeysResponse {
|
||||
repeated DeletedRemoteKeyStatus data = 1;
|
||||
}
|
||||
|
||||
message ImportedRemoteKeyStatus {
|
||||
enum Status {
|
||||
IMPORTED = 0;
|
||||
DUPLICATE = 1;
|
||||
ERROR = 2;
|
||||
}
|
||||
Status status = 1;
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
message DeletedRemoteKeyStatus {
|
||||
enum Status {
|
||||
DELETED = 0;
|
||||
NOT_FOUND = 1;
|
||||
ERROR = 2;
|
||||
}
|
||||
Status status = 1;
|
||||
string message = 2;
|
||||
}
|
||||
@@ -227,13 +227,8 @@ func getSignRequestJson(ctx context.Context, validator *validator.Validate, requ
|
||||
}
|
||||
|
||||
// SubscribeAccountChanges returns the event subscription for changes to public keys.
|
||||
func (*Keymanager) SubscribeAccountChanges(_ chan [][48]byte) event.Subscription {
|
||||
// Not used right now.
|
||||
// Returns a stub for the time being as there is a danger of being slashed if the apiClient reloads keys dynamically.
|
||||
// Because there is no way to dynamically reload keys, add or remove remote keys we are returning a stub without any event updates for the time being.
|
||||
return event.NewSubscription(func(i <-chan struct{}) error {
|
||||
return nil
|
||||
})
|
||||
func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BLSPubkeyLength]byte) event.Subscription {
|
||||
return km.accountsChangedFeed.Subscribe(pubKeysChan)
|
||||
}
|
||||
|
||||
// ExtractKeystores is not supported for the remote keymanager type.
|
||||
|
||||
Reference in New Issue
Block a user