[Feature Request] - Easy way for Relayer to be Pauser? Perhaps a "Relayer Strategy"?


Hi! Our team would like to have it so that any team member can, with one click send an emergency pause transaction to some contracts. I can of course, setup multiple relayers and then write code to do this as an autotask. Though I wonder if other teams might have the same need? It seems like it would be cool to have this as a "pre-set", or maybe better yet, have an option when I go to the "pause" menu of like, "pause with relayer". Or maybe it's a strategy, and I can just send arbitrary transactions through a relayer?

Now like, I could achieve this by making a multisig that's 1/N and give everyone on the team the owner role to that multisig with their specific address, but that's more of an operational overhead. The Relayer is nice precisely because I don't have to deal with that, and because it doesn't require getting out a Ledger and all that madness. Emergency situation, a couple clicks, and it works.

What I'm Doing Now
Currently, without the solutions below, I'm going to have to create a couple Relayers, grant them perms, and write some Autotask code to pause the contracts, and then make sure everyone on my team knows that's the flow (rather than going to the contract and hitting "pause")

Potential Solutions

  • A "preset" Pauser Autotask, which you link up to a Relayer for whom you've granted Pauser Role too. This maybe is a new button in the Autotask section
  • A new "strategy" for contract interactions that allows Relayers to sign and send arbitrary transactions (assuming they have permissions). I think this is the most elegant. In this scenario, you create a new Relayer (your "Pauser Relayer"), and grant it Pauser Role, and then when I want to pause a contract, I just set that strategy and pick the Pauser Relayer, and click submit. No keys, no wallets. Same perms as executing an Autotask manually. This also seems nicely flexible. Like an ad-hoc, manually triggered Autotask.
1 Like

Hi @blakewest, super interesting ideas, as usual :).

The "Relayer execution strategy" is something we've been considering for a while, we're going to implement it eventually. Furthermore, we want "Pause via Relayer" to be fully supported from mobile browsers (current mobile support in Defender is extremely lacking at the moment).

As regards what you're doing now, it makes sense! Note that you can further automate this for certain scenarios by hooking sentinels to that "Pauser Autotask". That way you can reverse the default behavior under emergencies: the system pauses automatically and then someone intervenes manually to unpause it.

Great, thanks for the update! Always appreciate the very fast response time you all have! Looking forward to both features!