> loading_
# Migrating fee-recipient config to the on-chain Validator Config v2 contract
# before the --consensus.fee-recipient flag is removed (~2 weeks from now).
#
# Step 1: Confirm you're running Tempo v1.5.2+
# $ tempo --version
# tempo/v1.5.2-...
#
# Step 2: Query the new fork schedule endpoint to verify your node
# recognizes upcoming changes (useful for sanity-checking connectivity).
# $ curl -s -X POST http://localhost:8545 \
# -H 'Content-Type: application/json' \
# -d '{"jsonrpc":"2.0","method":"tempo_forkSchedule","params":[],"id":1}' | jq .
# You should see a JSON response listing scheduled fork activations.
#
# Step 3: Set your fee recipient on-chain via the ValidatorConfigV2 contract.
# Below is an ethers.js v6 example — adapt the RPC URL and signer to your setup.
#
# import { ethers } from 'ethers';
#
# const VALIDATOR_CONFIG_V2_ADDRESS = '0x<YourNetworkValidatorConfigV2Address>';
#
# // Minimal ABI — only the setFeeRecipient function
# const abi = [
# 'function setFeeRecipient(address recipient) external'
# ];
#
# const provider = new ethers.JsonRpcProvider('http://localhost:8545');
# const signer = new ethers.Wallet(process.env.VALIDATOR_PRIVATE_KEY, provider);
# const config = new ethers.Contract(VALIDATOR_CONFIG_V2_ADDRESS, abi, signer);
#
# const tx = await config.setFeeRecipient('0xYourFeeRecipientAddress');
# console.log('Tx submitted:', tx.hash);
# const receipt = await tx.wait();
# console.log('Confirmed in block:', receipt.blockNumber);
#
# Step 4: Once confirmed on-chain, remove the deprecated flag from your
# node startup command or systemd unit file:
# BEFORE: tempo --consensus.fee-recipient 0xYourFeeRecipientAddress ...
# AFTER: tempo ...
#
# Step 5: Restart your node and verify fee-recipient is being read from
# the contract by checking builder logs for:
# "Fee recipient sourced from ValidatorConfigV2"
#
# If you see a deprecation warning like:
# "WARN: --consensus.fee-recipient is deprecated and will be removed"
# that means the flag is still present in your config — remove it now
# to avoid a hard failure when the flag is deleted in ~2 weeks.