mirror of
https://github.com/wealdtech/ethdo.git
synced 2026-01-10 06:28:07 -05:00
added to TestGenerateOperationFromMnemonicAndPath
This commit is contained in:
@@ -143,6 +143,11 @@ func (c *command) generateOperationFromMnemonicAndPath(ctx context.Context) erro
|
||||
}
|
||||
|
||||
validatorKeyPath := c.path
|
||||
// err if no path is provided
|
||||
if validatorKeyPath == "" {
|
||||
return errors.New("no validator path provided")
|
||||
}
|
||||
|
||||
match := validatorPath.Match([]byte(c.path))
|
||||
if !match {
|
||||
return fmt.Errorf("path %s does not match EIP-2334 format for a validator", c.path)
|
||||
@@ -509,6 +514,10 @@ func (c *command) createSignedOperation(ctx context.Context,
|
||||
}
|
||||
|
||||
func (c *command) parseWithdrawalAddress(_ context.Context) error {
|
||||
// check that the withdrawal address contains a 0x prefix.
|
||||
if !strings.HasPrefix(c.withdrawalAddressStr, "0x") {
|
||||
return fmt.Errorf("withdrawal address %s does not contain a 0x prefix", c.withdrawalAddressStr)
|
||||
}
|
||||
withdrawalAddressBytes, err := hex.DecodeString(strings.TrimPrefix(c.withdrawalAddressStr, "0x"))
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "failed to obtain execution address")
|
||||
|
||||
@@ -68,7 +68,7 @@ func TestGenerateOperationFromMnemonicAndPath(t *testing.T) {
|
||||
err: "mnemonic is invalid",
|
||||
},
|
||||
{
|
||||
name: "PathInvalid",
|
||||
name: "PathInvalidNoIndex",
|
||||
command: &command{
|
||||
mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
||||
path: "m/12381/3600/0/0",
|
||||
@@ -78,6 +78,47 @@ func TestGenerateOperationFromMnemonicAndPath(t *testing.T) {
|
||||
},
|
||||
err: "path m/12381/3600/0/0 does not match EIP-2334 format for a validator",
|
||||
},
|
||||
{
|
||||
name: "NoPathProvided",
|
||||
command: &command{
|
||||
mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
||||
chainInfo: chainInfo,
|
||||
signedOperations: make([]*capella.SignedBLSToExecutionChange, 0),
|
||||
withdrawalAddressStr: "0x8c1Ff978036F2e9d7CC382Eff7B4c8c53C22ac15",
|
||||
},
|
||||
err: "no validator path provided",
|
||||
},
|
||||
{
|
||||
name: "PathInvlaidIndexNot2334Format",
|
||||
command: &command{
|
||||
mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
||||
path: "1",
|
||||
chainInfo: chainInfo,
|
||||
signedOperations: make([]*capella.SignedBLSToExecutionChange, 0),
|
||||
withdrawalAddressStr: "0x8c1Ff978036F2e9d7CC382Eff7B4c8c53C22ac15",
|
||||
},
|
||||
err: "path 1 does not match EIP-2334 format for a validator",
|
||||
},
|
||||
{
|
||||
name: "withdrawalAddressNo0xPrefix",
|
||||
command: &command{mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
||||
path: "m/12381/3600/0/0/0",
|
||||
chainInfo: chainInfo,
|
||||
signedOperations: make([]*capella.SignedBLSToExecutionChange, 0),
|
||||
withdrawalAddressStr: "8c1Ff978036F2e9d7CC382Eff7B4c8c53C22ac15",
|
||||
},
|
||||
err: "failed to generate operation from seed and path: invalid withdrawal address: withdrawal address 8c1Ff978036F2e9d7CC382Eff7B4c8c53C22ac15 does not contain a 0x prefix",
|
||||
},
|
||||
{
|
||||
name: "withdrawalAddressInvalid",
|
||||
command: &command{mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
||||
path: "m/12381/3600/0/0/0",
|
||||
chainInfo: chainInfo,
|
||||
signedOperations: make([]*capella.SignedBLSToExecutionChange, 0),
|
||||
withdrawalAddressStr: "0x8c1Ff978036F2e9d7CC382Eff7B4c8c53C22ac",
|
||||
},
|
||||
err: "failed to generate operation from seed and path: invalid withdrawal address: withdrawal address must be exactly 20 bytes in length",
|
||||
},
|
||||
{
|
||||
name: "Good",
|
||||
command: &command{
|
||||
|
||||
Reference in New Issue
Block a user