validators add

lceth validators add [flags]

Options

  -o, --operator-idx int       Required operator index on OperatorRegistry contract
  -d, --deposit-data string    JSON deposit data file listing validator keys to be added
  -i, --deposit-input string   Hex input of deposit transaction listing validator keys to be added
      --from address           Optional account used to sign the transaction.
                               Expects an 0x prefixed Ethereum address (default 0x0000000000000000000000000000000000000000)
  -n, --nonce bigInt           Optional nonce to use for the transaction, if not set then use pending nonce.
                               Expects either a decimal or an hex encoded value with 0x prefix
  -v, --value bigInt           Optional funds to transfer along the transaction in Wei, if not set then no funds are transferred
                               Expects either a decimal or an hex encoded value with 0x prefix (default 0x0)
  -p, --gas-price bigInt       Optional gas price to use for the transaction execution in Wei. If not set then uses gas price oracle
                               Expects either a decimal or an hex encoded value with 0x prefix
  -f, --gas-fee-cap bigInt     Optional gas fee cap to use for the EIP-1559 transaction execution in Wei. If not set then uses gas price oracle
                               Expects either a decimal or an hex encoded value with 0x prefix
  -t, --gas-tip-cap bigInt     Optional gas priority tip fee cap to use for the EIP-1559 transaction execution in Wei. If not set then uses gas price oracle
                               Expects either a decimal or an hex encoded value with 0x prefix
  -l, --gas-limit uint         Optional gas limit to set for the transaction execution. If not set then estimate gas
                               Expects either a decimal or an hex encoded value with 0x prefix
      --send                   If set then performs all transaction steps and send the transaction to the network
      --no-sign                If set then performs all transaction steps and stop before signing the transaction
  -h, --help                   help for add

Options inherited from parent commands

      --allowlist-addr string            Address of the Allowlist contract [env: ALLOWLIST_ADDR]
      --beacon-deployment-block string   deployment block beacon deposit contract [env: BEACON_DEPLOYMENT_BLOCK]
      --beacon-deposit-addr string       Address of the Beacon Deposit contract [env: BEACON_DEPOSIT_ADDR]
      --deployment-block uint            Deployment block of the contracts [env: DEPLOYMENT_BLOCK]
      --el-fee-recipient-addr string     Address of the Execution Layer fee recipient contract [env: EL_FEE_RECIPIENT_ADDR]
      --eth-el-addr string               JSON-RPC address of the Ethereum execution layer node to connect to [env: ETH_EL_ADDR]
      --healthz-addr string              healthz entrypoint address:port [env: HEALTHZ_ADDR] (default ":8081")
      --keystore-password string         Password used to encrypt key files [env: KEYSTORE_PASSWORD]
      --keystore-path string             Directory where to store keys [env: KEYSTORE_PATH]
      --kms-key-id string                KMS key ID used to sign and submit transactions [env: KMS_KEY_ID]
      --log-format string                Log output format (text or json) [env: LOG_FORMAT] (default "text")
      --log-level string                 Log output level [env: LOG_LEVEL] (default "info")
      --operators-registry-addr string   Address of the Operators Registry contract [env: OPERATORS_REGISTRY_ADDR]
      --oracle-addr string               Address of the Oracle contract [env: ORACLE_ADDR]
      --redeem-manager-addr string       Address of the RedeemManager contract [env: REDEEM_MANAGER_ADDR]
      --river-addr string                Address of the River contract [env: RIVER_ADDR]
      --server-addr string               Server entrypoint address:port [env: SERVER_ADDR] (default ":8080")
      --tlc-addr string                  Address of the TLC contract [env: TLC_ADDR]
      --withdraw-addr string             Address of the Withdraw contract [env: WITHDRAW_ADDR]
      --wls-eth-addr string              Address of the WlsEth contract [env: WLSETH_ADDR]

Example Usage

Signing with encrypted geth keystore

% lceth validators add --operator-idx 0 
--deposit-data ~/Downloads/deposit-data.json 
--from 0x24f3b2bc10e59c6c2fb4cd1e706e51b977cf4754 
--operators-registry-addr 0xAF73C9D8Eb11F54930746e1fC0E68ca3574AE485 
--river-addr 0x4558cffD081638E8E791C4183b77d6Fe80E7dF4c 
--withdraw-addr 0xd22445dFeB2e394d097DbfBa94270d1E0868d5AE 
--redeem-manager-addr 0x33993476440bE94Ef664a7069cd52b928168f053 
--oracle-addr 0xdc9fA1e97FF3c097EE47141517479E344f21d1Fc 
--el-fee-recipient-addr 0xC26615450c5B81b73D59fE00CCACF47f4C364BC2 
--beacon-deposit-addr 0x4242424242424242424242424242424242424242 
--deployment-block 2439806 
--block-log-fetch-step 10000 
--eth-el-addr <ETH_RPC_URL> 
--keystore-password <PASSWORD> 
--keystore-path ./data/keystore/ 
--skip-check-duplicates 
--send
INFO[0000] initialization succeeded                      addr.allowlist=0x1C8d258846f5e3EaCC0885AD265Fb505c69B600f addr.beacon-deposit=0x4242424242424242424242424242424242424242 addr.el-fee-recipient=0xC26615450c5B81b73D59fE00CCACF47f4C364BC2 addr.operators-registry=0xAF73C9D8Eb11F54930746e1fC0E68ca3574AE485 addr.oracle=0xdc9fA1e97FF3c097EE47141517479E344f21d1Fc addr.river=0x4558cffD081638E8E791C4183b77d6Fe80E7dF4c addr.tlc=0x0000000000000000000000000000000000000000 addr.withdraw=0xd22445dFeB2e394d097DbfBa94270d1E0868d5AE addr.wlseth=0x21ae523bf67C81c8e4F640d8f76F9c7B77eCc0bf beacon-deployment.block=0 chain.id=17000 deployment.block=2439806
INFO[0000] configuring geth keystore                     keystore-path=./data/keystore/
INFO[0000] set signer address                            address=0x24f3b2BC10E59C6c2Fb4CD1e706e51B977CF4754
INFO[0000] reading deposit data file                     file=/Users/alexandermackay/Downloads/deposit-data.json version=v0.30.0-6-ga1a1339
INFO[0000] found deposit data                            keys=2 version=v0.30.0-6-ga1a1339
INFO[0000] adding 2 validators in 1 txs                  version=v0.30.0-6-ga1a1339
INFO[0000] creating tx 1/1 with 2 validators             version=v0.30.0-6-ga1a1339
INFO[0000] validate deposit data...                      expected.amount=32000000000 expected.fork_version=0x01017000 expected.withdrawal_credentials=0x010000000000000000000000d22445dfeb2e394d097dbfba94270d1e0868d5ae
INFO[0000] valid deposit data                           
INFO[0001] tx 1/1 sent                                   tx_hash=0xda143c3f1a90b4455e2913c2195eebfba53eadf9f90202116ab2bee51df2d55b version=v0.30.0-6-ga1a1339
INFO[0006] waiting for tx 1/1 to be confirmed            timeElapsed=5.00078575s tx_hash=0xda143c3f1a90b4455e2913c2195eebfba53eadf9f90202116ab2bee51df2d55b version=v0.30.0-6-ga1a1339
INFO[0006] tx 1/1 confirmed successfully                 tx_hash=0xda143c3f1a90b4455e2913c2195eebfba53eadf9f90202116ab2bee51df2d55b version=v0.30.0-6-ga1a1339

https://holesky.etherscan.io/tx/0xda143c3f1a90b4455e2913c2195eebfba53eadf9f90202116ab2bee51df2d55b

Signing with AWS KMS ECDSA key

% lceth validators add --operator-idx 0 
--deposit-data ~/Downloads/deposit-data.json 
--from 0x348d29b8bfa00ee5d62aa8d4205d72bad1c3cb7c 
--operators-registry-addr 0xAF73C9D8Eb11F54930746e1fC0E68ca3574AE485 
--river-addr 0x4558cffD081638E8E791C4183b77d6Fe80E7dF4c 
--withdraw-addr 0xd22445dFeB2e394d097DbfBa94270d1E0868d5AE 
--redeem-manager-addr 0x33993476440bE94Ef664a7069cd52b928168f053 
--oracle-addr 0xdc9fA1e97FF3c097EE47141517479E344f21d1Fc 
--el-fee-recipient-addr 0xC26615450c5B81b73D59fE00CCACF47f4C364BC2 
--beacon-deposit-addr 0x4242424242424242424242424242424242424242 
--deployment-block 2439806 
--block-log-fetch-step 10000 
--eth-el-addr <ETH_RPC_URL> 
--kms-key-id <KMS_KEY_ID> 
--skip-check-duplicates 
--send

SEE ALSO

Last updated