A proposal to add an additional withdrawal address that is the target for RPL bond withdrawals and RPL reward claims. Essentially there will be two withdrawal addresses: one for ETH; and one for RPL. The RPL withdrawal address will default to the ETH withdrawal address.
As a node operator, I MUST be able to confirm the RPL withdrawal address from the new target address before it takes effect, to ensure it is the correct address
Could this be an optional feature? Otherwise it adds an extra transaction for automated workflows like Constellation:
tx 1) Deploy node
tx 2) Set RPL withdrawal address to external contract
tx 3) Call external contract to request verification
Would be nice to remove step 3 via e.g. a parameter skipConfirm as true in step 2.
This is also the case for setting the current “primary” withdrawal address and it would be a nice little optimization to add in there, too. I don’t think this is really a security issue since the user would explicitly be requesting to skip confirmation. Another option for the sake of extra safety might be to just allow skipping confirmation on nodes with no minipools.
RPIP LGTM. I note that this by the way solves an existing problem with the contracts, even if the new RPL withdrawal address is not used. Namely, after this change, if the RPL withdrawal address is unset, then the primary withdrawal address can withdraw RPL (not just the node account address). (Also any workflows depending on the node account’s ability to withdraw RPL will be thwarted once an RPL withdrawal address is set.)
Reviewed. Minor oddity to me was that, when RPL address is unset, modifying the allowlist for RPL staking has to come from the node address (and can’t come from the primary withdrawal address). Not a big enough deal that I’m pushing for an edit here.