Executed

Pauseable Auth on Liquidity Layer — Set as Guardian Instead of Auth


Proposal ID

127

Proposed

Mar 26th, 2026

Result details
Final Votes

Quorum

5.66M of 4M

Majority support

Yes

For

5.66M

Against

0

Abstain

0

Actions

Type

Address

Details

Custom

0x2386...1F4c

executePayload(..)

Custom

Account

0x2386...1F4c

Method

executePayload(..)

Proposal

Summary

This proposal fixes an issue from IGP-126 Action 10, which incorrectly registered pauseableAuth as an auth on the Liquidity Layer using updateAuths(). The Liquidity Layer's pauseUser and unpauseUser functions are gated by the onlyGuardians modifier, so the pauseable contract must be a guardian to execute emergency pauses. IGP-126 Action 10 is being skipped, and this proposal correctly adds pauseableAuth as a guardian via updateGuardians().

The pauseableAuth address is configurable by Team Multisig before governance execution.

Code Changes

Action 1: Set Pauseable Auth as Guardian on Liquidity Layer

  • Calls LIQUIDITY.updateGuardians() to add pauseableAuth as a guardian on the Liquidity Layer
  • Enables the pauseable contract to execute pauseUser / unpauseUser for emergency pauses on LL protocols
  • Requires pauseableAuth to be set by Team Multisig before execution

Description

IGP-126 Action 10 attempted to register pauseableAuth as an authorized address on the Liquidity Layer using updateAuths(). However, the Liquidity Layer's pause functions (pauseUser, unpauseUser) are protected by the onlyGuardians modifier in the GuardianModule, not by auth checks. As a result, the pauseableAuth contract would not have been able to call these functions even after being added as an auth.

This proposal corrects the issue by calling updateGuardians() instead, which grants the pauseableAuth contract the guardian role required to invoke emergency pause operations.

Note: pausableDexAuth (DEX factory global auth from IGP-126 Action 11) is correct as-is — DEX operations use auth-based access control, not guardian-based.

Configurable Addresses (Team Multisig sets before execution)

VariablePurpose
pauseableAuthContract authorized as guardian for emergency pauses on Liquidity Layer

Conclusion

IGP-127 corrects the access control misconfiguration from IGP-126 by registering pauseableAuth as a guardian on the Liquidity Layer, enabling the pauseable contract to properly execute emergency pause and unpause operations.

Final Votes

Quorum

5.66M of 4M

Majority support

Yes

For

5.66M

Against

0

Abstain

0

Final Votes
Status

Thu Mar 26, 09:39 pm

Published onchain

Fri Mar 27, 09:46 pm

Voting period started

Sun Mar 29, 09:56 pm

Voting period ended

Mon Mar 30, 11:20 am

Proposal queued

Tue Mar 31, 06:56 pm

Proposal executed