feat: add authorizedSigners to operators #41
Draft
+1,691
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #40
Important
WIP
Summary of the changes:
Added new logic to add a set of authorized signers per operator.
This solves the problem of operators having to use their operator private key to run their bolt-sidecar: after this upgrade, operators will be able to specify additional EOAs that can make commitments on their behalf.
This will require an upgrade of all our contracts. Here's how the new flow will look like:
registerOperator(rpcEndpoint, extraData, authorizedSigners)
: A set of authorized signers can be specified at registration time, along with the operator RPC and extradata.a.
addOperatorAuthorizedSigner(address signer)
allows an operator to add a signer to the authorized setb.
pauseOperatorAuthorizedSigner(address signer)
allows an operator to pause a signer. it will still be considered active until the end of the current epoch, and from the next epoch onward it will be considered paused or inactivec.
unpauseOperatorAuthorizedSigner(address signer)
self-explanatory, but will consider the signer active again after the end of the current epochd.
removeOperatorAuthorizedSigner(address signer)
self-explanatory, but will remove the signer from the set if they are currently paused