Coder Social home page Coder Social logo

eigenlayer-cli's Introduction

Tests Linter Build

EigenLayer CLI

EigenLayer CLI is used to manage core operator functionalities like local key management, operator registration and updates.

Supported Operating Systems

Operating System Architecture
Linux amd64
Linux arm64
Darwin amd64
Darwin arm64

Install eigenlayer CLI using a binary

To download a binary for the latest release, run:

curl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s

The binary will be installed inside the ~/bin directory.

To add the binary to your path, run:

export PATH=$PATH:~/bin

Installing in a custom location

To download the binary in a custom location, run:

curl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s -- -b <custom_location>

We collect anonymous usage data to improve the CLI. To disable telemetry, set the environment variable EIGENLAYER_CLI_TELEMETRY_ENABLED to false.

Install eigenlayer CLI using Go

First, install the Go programming language following the official instructions. You need at least the 1.21 version.

Eigenlayer is only supported on Linux. Make sure you install Go for Linux in a Linux environment (e.g. WSL2, Docker, etc.)

This command will install the eigenlayer executable along with the library and its dependencies in your system:

As the repository is private, you need to set the GOPRIVATE variable properly by running the following command: export GOPRIVATE=github.com/Layr-Labs/eigenlayer-cli,$GOPRIVATE. Git will automatically resolve the private access if your Git user has all the required permissions over the repository.

go install github.com/Layr-Labs/eigenlayer-cli/cmd/eigenlayer@latest

The executable will be in your $GOBIN ($GOPATH/bin).

To check if the GOBIN is not in your PATH, you can execute echo $GOBIN from the Terminal. If it doesn't print anything, then it is not in your PATH. To add GOBIN to your PATH, add the following lines to your $HOME/.profile:

export GOBIN=$GOPATH/bin
export PATH=$GOBIN:$PATH

Changes made to a profile file may not apply until the next time you log into your computer. To apply the changes immediately, run the shell commands directly or execute them from the profile using a command such as source $HOME/.profile.

Install eigenlayer CLI from source

With this method, you generate the binary manually (need Go installed), downloading and compiling the source code:

git clone https://github.com/Layr-Labs/eigenlayer-cli.git
cd eigenlayer-cli
mkdir -p build
go build -o build/eigenlayer cmd/eigenlayer/main.go

or if you have make installed:

git clone https://github.com/Layr-Labs/eigenlayer-cli.git
cd eigenlayer-cli
make build

The executable will be in the build folder.


In case you want the binary in your PATH (or if you used the Using Go method and you don't have $GOBIN in your PATH), please copy the binary to /usr/local/bin:

# Using Go
sudo cp $GOPATH/bin/eigenlayer /usr/local/bin/

# Build from source
sudo cp eigenlayer-cli/build/eigenlayer /usr/local/bin/

Documentation

Please refer to the full documentation here.

Links to specific sections are provided below.

If you see any issues in documentation please create an issue or PR here

Release Process

To release a new version of the CLI, follow the steps below:

Note: You need to have write permission to this repo to release new version

  1. Make sure the release version is updated here

  2. In your local clone, create a new release tag using the following command:

     git tag v<version> -m "Release v<version>"
  3. Push the tag to the repository using the following command:

    git push origin v<version>
  4. This will automatically start the release process in the GitHub Actions and will create a draft release to the GitHub Releases with all the required binaries and assets

  5. Check the release notes and add any notable changes and publish the release

eigenlayer-cli's People

Contributors

andrewkmin avatar antid2ta avatar cario-dev avatar danielboye avatar dependabot[bot] avatar eminmtas avatar fyinalt avatar igorline avatar neuweltgeld avatar nimavaziri avatar pschork avatar quinnlee avatar rootwarp avatar shrimalmadhur avatar subnetdev0 avatar thisislexar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eigenlayer-cli's Issues

CodeQL has a bug where pipeline fails

Describe the bug
Codeql workflow has an issue where pipeline is failing

To Reproduce
Check the master branch

Expected behavior
It should not fail

Screenshots

OS details

Additional context

Failed to fetch Slasher address {"err": "no contract code at given address"}

Describe the bug
ERROR logging/zap_logger.go:57 Failed to fetch Slasher address {"err": "no contract code at given address"}
github.com/Layr-Labs/eigensdk-go/logging.(*ZapLogger).Error
/root/go/pkg/mod/github.com/!layr-!labs/[email protected]/logging/zap_logger.go:57
github.com/Layr-Labs/eigensdk-go/chainio/utils.NewEigenlayerContractBindings
/root/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/utils/bindings.go:45
github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts.BuildELChainWriter
/root/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/clients/elcontracts/writer.go:80
github.com/Layr-Labs/eigenlayer-cli/pkg.OperatorCmd.RegisterCmd.func1
/root/go/pkg/mod/github.com/!layr-!labs/[email protected]/pkg/operator/register.go:98
github.com/urfave/cli/v2.(*Command).Run
/root/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:279
github.com/urfave/cli/v2.(*Command).Run
/root/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272
github.com/urfave/cli/v2.(*Command).Run
/root/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272
github.com/urfave/cli/v2.(*App).RunContext
/root/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:337
github.com/urfave/cli/v2.(*App).Run
/root/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:311
main.main
/root/go/pkg/mod/github.com/!layr-!labs/[email protected]/cmd/eigenlayer/main.go:34
runtime.main
/usr/local/go/src/runtime/proc.go:267
no contract code at given address

To Reproduce
eigenlayer operator register operator.yaml,

rpc points to goerli testnet infura and the contract address in the operator.yaml file: I have also tried BlockPI goerli rpc

I have upgrade version to 0.6.0, everything fill like on guide,

EigenLayer Delegation Manager contract address
This will be provided by EigenLayer team
el_delegation_manager_address: 0x1b7b8F6b258f95Cf9596EabB9aa18B62940Eb0a8
chain_id: 5

Expected behavior
Please give me solution because until now it has been stopped

Screenshoot

Version Version operator config operator.yaml register eigenlayer operator register operator.yaml,

OS details

Run eigenlayer-cli have a problem Failed to fetch Slasher address {"err": "401 Unauthorized: project id required in the url\n"}

eigenlayer operator register operator.yaml
✅ Operator configuration file read successfully 0xAeb66247Fb4fc9b0e2C86c34649e027a0e7295FF
✅ Operator configuration file validated successfully 0xAeb66247Fb4fc9b0e2C86c34649e027a0e7295FF
? Enter password to decrypt the ecdsa private key: ****************************************************************
2024-03-01T18:59:50.494+0800 ERROR logging/zap_logger.go:57 Failed to fetch Slasher address {"err": "401 Unauthorized: project id required in the url\n"}
github.com/Layr-Labs/eigensdk-go/logging.(*ZapLogger).Error
/Users/qianjinmo/go/pkg/mod/github.com/!layr-!labs/[email protected]/logging/zap_logger.go:57
github.com/Layr-Labs/eigensdk-go/chainio/utils.NewEigenlayerContractBindings
/Users/qianjinmo/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/utils/bindings.go:45
github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts.BuildELChainWriter
/Users/qianjinmo/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/clients/elcontracts/writer.go:80
github.com/Layr-Labs/eigenlayer-cli/pkg.OperatorCmd.RegisterCmd.func1
/Users/qianjinmo/Downloads/eigenlayer-cli-master/pkg/operator/register.go:98
github.com/urfave/cli/v2.(*Command).Run
/Users/qianjinmo/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:279
github.com/urfave/cli/v2.(*Command).Run
/Users/qianjinmo/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272
github.com/urfave/cli/v2.(*Command).Run
/Users/qianjinmo/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272
github.com/urfave/cli/v2.(*App).RunContext
/Users/qianjinmo/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:337
github.com/urfave/cli/v2.(*App).Run
/Users/qianjinmo/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:311
main.main
/Users/qianjinmo/Downloads/eigenlayer-cli-master/cmd/eigenlayer/main.go:34
runtime.main
/usr/local/go/src/runtime/proc.go:271
401 Unauthorized: project id required in the url

Invalid memory address or nil pointer dereference

Describe the bug
When trying to register an operator, hit this runtime error. Rerunning it worked but nevertheless, posting it here incase its a new bug.

To Reproduce
Register an operater using eigenlayer cli

2024-03-12T10:21:42.942Z        DEBUG   logging/zap_logger.go:45        Sending transaction
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x80634c]

goroutine 1 [running]:
github.com/ethereum/go-ethereum/core/types.(*Transaction).Hash(0x0?)
        /home/danny/go/pkg/mod/github.com/ethereum/[email protected]/core/types/transaction.go:464 +0x2c
github.com/Layr-Labs/eigensdk-go/chainio/txmgr.(*SimpleTxManager).Send(0xc0003247d0, {0xd05158, 0x11e94a0}, 0x0?)
        /home/danny/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/txmgr/txmgr.go:123 +0x66a
github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts.(*ELChainWriter).RegisterAsOperator(0xc00031e000, {0xd05158, 0x11e94a0}, {{0xc00014a420, 0x2a}, {0xc00014a450, 0x2a}, {0xc00014a480, 0x2a}, 0x0, ...})
        /home/danny/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/clients/elcontracts/writer.go:129 +0x1db
github.com/Layr-Labs/eigenlayer-cli/pkg.OperatorCmd.RegisterCmd.func1(0xc0002bf8b8?)
        /home/danny/eigenlayer-cli/pkg/operator/register.go:126 +0x89c
github.com/urfave/cli/v2.(*Command).Run(0xc0001589a0, 0xc000130300, {0xc000124c40, 0x2, 0x2})
        /home/danny/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:279 +0x9dd
github.com/urfave/cli/v2.(*Command).Run(0xc000158dc0, 0xc0001301c0, {0xc00011c2d0, 0x3, 0x3})
        /home/danny/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272 +0xc2e
github.com/urfave/cli/v2.(*Command).Run(0xc000159080, 0xc000130080, {0xc000036080, 0x4, 0x4})
        /home/danny/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272 +0xc2e
github.com/urfave/cli/v2.(*App).RunContext(0xc000156000, {0xd05158?, 0x11e94a0}, {0xc000036080, 0x4, 0x4})
        /home/danny/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:337 +0x5db
github.com/urfave/cli/v2.(*App).Run(...)
        /home/danny/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:311
main.main()
        /home/danny/eigenlayer-cli/cmd/eigenlayer/main.go:34 +0x218

Screenshots
Screenshot 2024-03-12 at 10 23 10

OS details
Ubuntu 20

operator register piped password ?

Hello,

Is there any way I can pipe password into the "operator register" command like it is possible for key creation ?
(echo "password" | eigenlayer operator keys create --key-type ecdsa [keyname])

It doesn't seem to work, when I try to pipe passord I get :
✅ Operator configuration file validated successfully 0x5c72439cb7eaDbB877c23bD3fFc8e88dc5316148
? Enter password to decrypt the ecdsa private key: Error while reading ecdsa key password
EOF
^[[48;204R^[[48;52R%

Thanks !

HIghlight during key creation to save private key hex

Is your feature request related to a problem? Please describe.
Currently we show private key and message to users while key creation that please save the key. it's not well highlighted

Describe the solution you'd like
We want to highlight that and make it more visible

  • Make it bold
  • add emojis, color etc?

Describe alternatives you've considered

Additional context

EIGENLAYER node port?

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Failed to fetch StrategyManager address

Hello, I get the following error after running eigenlayer operator register operator.yaml command. I use the Goerli Network and got the Rpc through Alchemy. I think there is a problem with the SDK
https://github.com/Layr-Labs/eigensdk-go/tree/master/contracts/bindings/StrategyManager

2024-01-21T11:42:55.806Z        ERROR   logging/zap_logger.go:57        Failed to fetch StrategyManager address {"err": "no contract code at given address"}
github.com/Layr-Labs/eigensdk-go/logging.(*ZapLogger).Error
        /root/go/pkg/mod/github.com/!layr-!labs/[email protected]/logging/zap_logger.go:57
github.com/Layr-Labs/eigensdk-go/chainio/utils.NewEigenlayerContractBindings
        /root/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/utils/bindings.go:49
github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts.BuildELChainWriter
        /root/go/pkg/mod/github.com/!layr-!labs/[email protected]/chainio/clients/elcontracts/writer.go:98
github.com/Layr-Labs/eigenlayer-cli/pkg.OperatorCmd.RegisterCmd.func1
        /root/eigenlayer-cli/pkg/operator/register.go:114
github.com/urfave/cli/v2.(*Command).Run
        /root/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:279
github.com/urfave/cli/v2.(*Command).Run
        /root/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272
github.com/urfave/cli/v2.(*Command).Run
        /root/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:272
github.com/urfave/cli/v2.(*App).RunContext
        /root/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:337
github.com/urfave/cli/v2.(*App).Run
        /root/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:311
main.main
        /root/eigenlayer-cli/cmd/eigenlayer/main.go:34
runtime.main
        /usr/local/go/src/runtime/proc.go:267
no contract code at given address

Operator.yaml;

operator:
    address: 0x6542de144ec034ac17712da8a1cc93c13899fd4b
    earnings_receiver_address: 0x6542de144ec034ac17712da8a1cc93c13899fd4b
    delegation_approver_address: "0x0000000000000000000000000000000000000000"
    staker_opt_out_window_blocks: 0
    metadata_url: "https://raw.githubusercontent.com/enzifiri/eigenlayer-cli/master/metadata.json"
el_slasher_address: ""
bls_public_key_compendium_address: ""
eth_rpc_url: https://eth-goerli.g.alchemy.com/v2/Jq1oomMShB5EaFoDz80Ay8xAN2WiAUiV
private_key_store_path: /root/.eigenlayer/operator_keys/wallet.ecdsa.key.json
signer_type: local_keystore
bls_private_key_store_path: /root/.eigenlayer/operator_keys/wallet.bls.key.json
chain_id: 5

Ubuntu 20.04 LTS
go version go1.21.6 linux/amd64

Can not pipe password to eigenlayer operator keys create --key-type ecdsa test

Describe the bug

I am going to use pipe to input password when I execute "eigenlayer operator keys create --key-type ecdsa test". However, I got an exeception as following:
? Enter password to encrypt the ecdsa private key: panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x81456b]

goroutine 1 [running]:
github.com/AlecAivazis/survey/v2/terminal.(*RuneReader).ReadLineWithDefault.func2(...)
/home/runner/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/terminal/runereader.go:65
github.com/AlecAivazis/survey/v2/terminal.(*RuneReader).ReadLineWithDefault(0xc0000c4380, 0x120018?, {0x1181ea0, 0x0, 0x0}, {0x0?, 0x7fdebc1b0108?, 0x50?})
/home/runner/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/terminal/runereader.go:328 +0x8ab
github.com/AlecAivazis/survey/v2/terminal.(*RuneReader).ReadLine(...)
/home/runner/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/terminal/runereader.go:37
github.com/AlecAivazis/survey/v2.(*Password).Prompt(0xc0000c6140, 0xc0000b74e8)
/home/runner/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/password.go:63 +0x2cd
github.com/AlecAivazis/survey/v2.Ask({0xc0001dd1a0, 0x1, 0xc0001dd1c8?}, {0xa2f520?, 0xc000046b50}, {0xc0001dd198, 0x1, 0x10fe4d0?})
/home/runner/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/survey.go:366 +0x36f
github.com/AlecAivazis/survey/v2.AskOne(...)
/home/runner/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/survey.go:283
github.com/Layr-Labs/eigenlayer-cli/pkg/utils.(*prompter).InputHiddenString(0xc000042180?, {0xb77530, 0x30}, {0x0, 0x0}, 0xc000014ed0)
/home/runner/work/eigenlayer-cli/eigenlayer-cli/eigenlayer-cli/pkg/utils/prompter.go:69 +0x1b5
github.com/Layr-Labs/eigenlayer-cli/pkg/operator/keys.saveEcdsaKey({0x7ffe046986d9, 0x9}, {0xcb0a90, 0x1181ea0}, 0xc0000ac3f0, 0x0)
/home/runner/work/eigenlayer-cli/eigenlayer-cli/eigenlayer-cli/pkg/operator/keys/create.go:146 +0x175
github.com/Layr-Labs/eigenlayer-cli/pkg/operator.KeysCmd.CreateCmd.func1(0xc0001dd628?)
/home/runner/work/eigenlayer-cli/eigenlayer-cli/eigenlayer-cli/pkg/operator/keys/create.go:73 +0x216
github.com/urfave/cli/v2.(*Command).Run(0xc0000b6000, 0xc00007e400, {0xc00007e440, 0x4, 0x4})
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:277 +0x9d8
github.com/urfave/cli/v2.(*Command).Run(0xc0000b6420, 0xc00007e300, {0xc0000920f0, 0x5, 0x5})
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:270 +0xc25
github.com/urfave/cli/v2.(*Command).Run(0xc0000b6c60, 0xc00007e1c0, {0xc0000880c0, 0x6, 0x6})
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:270 +0xc25
github.com/urfave/cli/v2.(*Command).Run(0xc0000b6f20, 0xc00007e080, {0xc000132000, 0x7, 0x7})
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/command.go:270 +0xc25
github.com/urfave/cli/v2.(*App).RunContext(0xc0000b4000, {0xcb0ac8?, 0x1181ea0}, {0xc000132000, 0x7, 0x7})
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:335 +0x5db
github.com/urfave/cli/v2.(*App).Run(...)
/home/runner/go/pkg/mod/github.com/urfave/cli/[email protected]/app.go:309
main.main()
/home/runner/work/eigenlayer-cli/eigenlayer-cli/eigenlayer-cli/cmd/eigenlayer/main.go:34 +0x218

To Reproduce

echo '!@#123qwerQWER' | eigenlayer operator keys create --key-type ecdsa operator1

Expected behavior

generate key and ethereum address

Screenshots

OS details

Additional context

The issue is related to
AlecAivazis/survey#394
zk-org/zk#172
and
jetify-com/devbox#867

similar solution:
docker/compose#9739
docker/compose#10144

Failed to fetch Slasher address

When im trying to register operator im getting error :
command : eigenlayer operator register operator.yaml
✅ Operator configuration file read successfully ****************************************
✅ Operator configuration file validated successfully ******************************************
? Enter password to decrypt the ecdsa private key: *************
Failed to fetch Slasher address: Post "https://eth-goerli.g.alchemy.com/v2/*****-TGo6uXBnh7ynizHVm-13c94jeN": dial tcp: lookup eth-goerli.g.alchemy.com on 127.0.0.53:53: no such host
edit: after changing alchemy rpc from goerli to sepolia im getting error :
Failed to fetch Slasher address: no contract code at given address

Operator Registration Failure Despite Valid Data

Describe the bug

When attempting to register an operator using the eigenlayer operator register operator.yaml command, the registration fails despite providing valid data.

Details

The metadata used in the metadata.json file corresponds exactly to the raw data available on my GitHub repository.
https://github.com/samui68400/eigenlayer-metadata/blob/main/metadata.json

I provided this GitHub link in the operator.yaml files.

All data is publicly accessible on my GitHub repository, and I have ensured that my operator.yaml file matches the example provided in the EigenLayer documentation : https://github.com/Layr-Labs/eigenlayer-cli/blob/master/pkg/operator/config/operator-config-example.yaml

To Reproduce

Run the command eigenlayer operator register operator.yaml.
Observe that the registration fails despite providing valid data.
Expected behavior
The eigenlayer operator register command should successfully register the operator using the data provided in the operator.yaml file.

Screenshots
Screenshot 2024-04-03 at 11 52 47

OS: Linux
Version: [Insert version here]

Additional context

All data used for registration is publicly available on my GitHub repository, and I have followed the example provided in the EigenLayer documentation for creating the operator.yaml file.

Print a message for delay in showing the UI

Is your feature request related to a problem? Please describe.

Describe the solution you'd like
register/update should print that metadata updates could take up to 30 min to reflect on our webapp

Describe alternatives you've considered

Additional context

"no contract code at given address" When Checking EigenLayer Node Status

When attempting to check the status of my EigenLayer node using the eigenlayer operator status operator-config.yaml command, I encounter the following error message:

2024/02/10 07:10:54 no contract code at given address

Also, git pull shows that the code is up to date! Do you have any idea why I get this error?


# All the below fields are required for successful operator registration.

operator:
  # This is the standard Ethereum address format (ex: 0x6a8c0D554a694899041E52a91B4EC3Ff23d8aBD5) of your operator
  # which is the ecdsa key you created or imported using EigenLayer CLI
  address: myaddress (redacted)
  # This is the standard Ethereum address format (ex: 0x6a8c0D554a694899041E52a91B4EC3Ff23d8aBD5)
  # This is the address where your operator will receive earnings. This could be same as operator address
  earnings_receiver_address: myaddress (redacted)
  # This is the standard Ethereum address format (0x...)
  # This is the address which operator will use to approve delegation requests from stakers.
  # if set, this address must sign and approve new delegation from Stakers to this Operator
  # This is optional, so you can leave it  with the default value for un-gated delegation requests
  delegation_approver_address: 0x0000000000000000000000000000000000000000
  # Please keep this field to 0, and it can be updated later using EigenLayer CLI
  staker_opt_out_window_blocks: 0
  metadata_url: https://raw.githubusercontent.com/ImanSharaf/Eigen/main/metadata.json

# EigenLayer Slasher contract address
# This will be provided by EigenLayer team
el_slasher_address: 0xD11d60b669Ecf7bE10329726043B3ac07B380C22
el_delegation_manager_address: 0x1b7b8F6b258f95Cf9596EabB9aa18B62940Eb0a8


# Address of BLS Public Key Compendium contract
# This will be provided by EigenLayer team
bls_public_key_compendium_address: 0xc81d3963087Fe09316cd1E032457989C7aC91b19

# ETH RPC URL to the ethereum node you are using for on-chain operations
eth_rpc_url: redacted (it is working okay)
# Signer Type to use
# Supported values: local_keystore
signer_type: local_keystore

# Full path to local ecdsa private key store file
private_key_store_path: /root/.eigenlayer/operator_keys/iman.ecdsa.key.json

# Full path to local bls private key store file
bls_private_key_store_path: /root/.eigenlayer/operator_keys/iman.bls.key.json

# Chain ID: 1 for mainnet, 5 for Goerli, 31337 for local
chain_id: 5

Display operator information after register/status/update command

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

  • Clearly display a link to eigenlayer webapp for operator after register, status and update command
  • Clearly display the transaction information

Describe alternatives you've considered

Additional context

Add eigenlayer operator keys export command

Is your feature request related to a problem? Please describe.
Currently if I create a new ecdsa/bls key using eigenlayer operator keys create command, I am only shown the private key at that time. If I forget that, there's no way to get private key again.

Describe the solution you'd like
Implement an eigenlayer operator keys export command which can take a keyname and then export the private key to user. It will also ask for password and a double confirmation to continue.
We also want a flag where a user can provide a file location and the command can ignore default location and use that file location to decrypt key.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Update CLI with new DM bindings

Is your feature request related to a problem? Please describe.

Describe the solution you'd like
DM bindings is being changed to remove earningReciever

Update CLI when Layr-Labs/eigensdk-go#251 is closed

Describe alternatives you've considered

Additional context

operator.yaml The gas cost adjustment setting is not found in operator.yaml. Can it be increased?

https://github.com/Layr-Labs/eigenlayer-cli/blob/master/pkg/operator/config/operator-config-example.yaml#L24
Gas cost adjustment setting not found in operator.yaml. Can it be increased?
I've also encountered this problem, and I suspect it's a gas bill issue.
image

Tasks

No tasks being tracked yet.

Tasks

No tasks being tracked yet.

Cannot Register Operator If Path uses ~

Describe the bug

Cannot register operator if private_key_store_path in operator.yaml begins with ~ instead of /

To Reproduce

  1. eigenlayer operator config create
  2. Enter your ecdsa key path: ~/.eigenlayer/operator_keys/bountyblok.ecdsa.key.json
  3. eigenlayer operator register operator.yaml

Error: open ~/.eigenlayer/operator_keys/bountyblok.ecdsa.key.json: no such file or directory

To fix manually:
Set the private_key_store_path to /root/.eigenlayer/operator_keys/bountyblok.ecdsa.key.json

Expected behavior
Support both / and ~ during eigenlayer operator config create

Example:
private_key_store_path: /root/.eigenlayer/operator_keys/bountyblok.ecdsa.key.json
private_key_store_path: ~/.eigenlayer/operator_keys/bountyblok.ecdsa.key.json

OS details
ubuntu jammy
eigenlayer version 0.7.0

goerli rpc, updated el_slasher and bls, still returns "no contract code at given address"

Describe the bug
After successfully validating config file the following error prompts:
? Enter password to decrypt the bls private key: *************
? Enter password to decrypt the ecdsa private key: *************
no contract code at given address

To Reproduce
eigenlayer operator register operator.yaml,

rpc points to goerli testnet infura and the contract address in the operator.yaml file: I have also tried blast public goerli rpc

el_slasher_address: "0xD11d60b669Ecf7bE10329726043B3ac07B380C22"
bls_public_key_compendium_address: "0xc81d3963087Fe09316cd1E032457989C7aC91b19"
chain_id: 5

Expected behavior
it worked last night, tried this morning and stopped working

Screenshots

OS details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.