Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
8eb3196
feat: add v3 phase 2 script
dry914 Dec 30, 2025
a16e675
test: init test for V3 phase 2
dry914 Dec 30, 2025
a3e4d3c
test: add scenario tests for factories
dry914 Dec 30, 2025
b731cb9
test: update expected vote id
dry914 Dec 30, 2025
0746f00
test: add event checks
dry914 Jan 4, 2026
90e736b
test: fix permitions test
dry914 Jan 4, 2026
da46aaf
test: local abi for events
dry914 Jan 4, 2026
c5b822c
test: force local events for vaultHub
dry914 Jan 4, 2026
675f597
feat: update CSM shareLimit and exit priority threshold
failingtwice Jan 8, 2026
bd77a79
feat: grant CSHashConsensus MANAGE_FRAME_CONFIG_ROLE to TwoPhaseFrame…
failingtwice Jan 8, 2026
753b29a
feat: move role grant to dg items
failingtwice Jan 9, 2026
bdb7340
test: add tests for CSM and oracle changes
failingtwice Jan 9, 2026
9d3f792
feat: update vote date
failingtwice Jan 12, 2026
8d965e9
feat: using placeholder PDG address to fix tests
failingtwice Jan 12, 2026
e2f202b
test: use custom helper for validating module update events
failingtwice Jan 12, 2026
65878dd
test: check that only the expected parameters have changed
failingtwice Jan 12, 2026
972563f
chore: add real addresses of some factories
dry914 Jan 12, 2026
c749e56
feat: add TwoPhaseFramConfigUpdate abi
failingtwice Jan 12, 2026
8d2e6c7
test: add ET factories checks
dry914 Jan 12, 2026
28bd742
feat: resume PDG
failingtwice Jan 12, 2026
53daa83
Merge pull request #582 from lidofinance/feat/v3-phase2-et
failingtwice Jan 13, 2026
f8df8a4
Merge branch 'feat/next-vote' of https://github.com/lidofinance/scrip…
failingtwice Jan 13, 2026
104293c
test: add a scenario test for frame offset contract
failingtwice Jan 13, 2026
b451e52
fix: add more context to storage manipulation
failingtwice Jan 13, 2026
8126d3e
feat: raise external shares ratio to 30%
failingtwice Jan 13, 2026
bd41e99
fix: use helper to upgrade validation
failingtwice Jan 13, 2026
4af0a00
fix: minor improvements
failingtwice Jan 13, 2026
10ce8e3
test: update vote id
failingtwice Jan 13, 2026
047a05d
fix: remove convert
failingtwice Jan 13, 2026
fa8f75a
feat: update vote date
failingtwice Jan 13, 2026
9990003
feat: update deployed addresses
failingtwice Jan 13, 2026
4d37a79
enable all CI tests
iamnp Jan 14, 2026
2715912
update DG items descriptions
iamnp Jan 14, 2026
55a47c6
update voting items descriptions
iamnp Jan 14, 2026
eddb0bf
items desc finalized
iamnp Jan 14, 2026
7dffcde
update formatting
iamnp Jan 14, 2026
9a58a70
update formatting (fix)
iamnp Jan 14, 2026
74e7c83
test: use existing validator
failingtwice Jan 14, 2026
7bf67c5
Merge branch 'feat/v3-phase-2' of https://github.com/lidofinance/scri…
failingtwice Jan 14, 2026
4c1104e
fix: reorganize DG items
failingtwice Jan 14, 2026
817abb4
fix: update date
failingtwice Jan 14, 2026
e563875
fix: remove unused vars
failingtwice Jan 14, 2026
826476e
feat: test offset reverts
failingtwice Jan 14, 2026
95e8a96
fix: items descriptions
iamnp Jan 15, 2026
9a29d23
feat: update easytrack var names for better clarity
failingtwice Jan 15, 2026
f527951
fix: uncomment asserts
failingtwice Jan 15, 2026
934a271
refactor: DRY the heck out of it
failingtwice Jan 15, 2026
e75fe01
test: vaulthub cannot mint more than external share limit
failingtwice Jan 15, 2026
21fc3e9
test: mint up to limit first, then attempt to overmint
failingtwice Jan 15, 2026
0bc3ecd
test: fix csm limits
dry914 Jan 15, 2026
1844ef8
test: fix permition test
dry914 Jan 15, 2026
2ff8235
test: fix gate seal test
dry914 Jan 15, 2026
192e887
test: fix snap tests
dry914 Jan 15, 2026
1424565
Merge pull request #584 from lidofinance/feat/v3-phase-2-ci
failingtwice Jan 16, 2026
5aace07
test: duplicate constants instead of reusing
failingtwice Jan 16, 2026
ad6c33c
Merge branch 'feat/v3-phase-2' of https://github.com/lidofinance/scri…
failingtwice Jan 16, 2026
42c6de6
fix: public CI runners
iamnp Jan 17, 2026
606fb0b
feat: add IPFS desc + test
iamnp Jan 17, 2026
a06a1aa
test: fix snap test
dry914 Jan 17, 2026
a025b9e
test: change epsilon value
dry914 Jan 17, 2026
382bcc3
chore: use develop for core tests
tamtamchik Jan 17, 2026
ee21eb4
Merge pull request #585 from lidofinance/test/v3-phase-2-snap
tamtamchik Jan 18, 2026
01f58e3
feat: update vote id
failingtwice Jan 19, 2026
4b8fd47
Merge pull request #580 from lidofinance/feat/v3-phase-2
iamnp Jan 19, 2026
04a86f0
fix: reorder test items
failingtwice Jan 19, 2026
8c69d2d
feat: check roles
failingtwice Jan 19, 2026
a760cad
Merge pull request #587 from lidofinance/fix/reorder-test-items
iamnp Jan 19, 2026
ddc3f82
Vote 2026/01/26 Hoodi
iamnp Jan 23, 2026
18038d7
added no reward address test
iamnp Jan 23, 2026
d4f09ab
small fixes
iamnp Jan 26, 2026
1ef2cc3
fix IPFS desc
iamnp Jan 26, 2026
942faa6
feat: update vote execution time
failingtwice Jan 26, 2026
d425da7
feat: archive vote
failingtwice Jan 26, 2026
a6c414f
Merge branch 'master' of https://github.com/lidofinance/scripts into …
failingtwice Jan 26, 2026
d40219c
archive vote
iamnp Jan 26, 2026
f4cc2cd
chore: restore test
tamtamchik Jan 28, 2026
873ed73
Merge pull request #591 from lidofinance/archive-198
iamnp Jan 28, 2026
54d712b
chore: archive test
failingtwice Jan 29, 2026
fadc0d0
test: restore snapshot tests
dry914 Jan 29, 2026
3a25164
Merge pull request #592 from lidofinance/vote-198-post-dg-enact
iamnp Jan 29, 2026
115bb38
Merge pull request #590 from lidofinance/vote-2026-01-26-hoodi
iamnp Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/core_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ on:
- "feat/rc2"
- "feat/rc1"
- "feat/next-vote"
- "feat/v3-phase-2"
schedule:
- cron: "0 0 * * TUE"

jobs:
run-tests:
name: Core repo tests in docker
runs-on: [voting-private-runners]
runs-on: [ubuntu-latest]
timeout-minutes: 120

services:
Expand All @@ -35,7 +36,7 @@ jobs:
- name: Run init script
run: docker exec -e CORE_BRANCH tests-runner bash -c 'PYTHONPATH=$PWD make init'
env:
CORE_BRANCH: master
CORE_BRANCH: develop

- name: Run node
run: docker exec -e ETH_RPC_URL --detach tests-runner bash -c 'NODE_PORT=8545 make node'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dual_governance_regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "feat/rc2"
- "feat/rc1"
- "feat/next-vote"
- "feat/v3-phase-2"
workflow_dispatch:

jobs:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/normal_vote_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
run-tests-normal-1:
name: Brownie fork NORMAL tests 1
runs-on: [voting-private-runners]
runs-on: [ubuntu-latest]
timeout-minutes: 150

services:
Expand All @@ -36,7 +36,7 @@ jobs:

run-tests-normal-2:
name: Brownie fork NORMAL tests 2
runs-on: [voting-private-runners]
runs-on: [ubuntu-latest]
timeout-minutes: 150

services:
Expand Down
366 changes: 366 additions & 0 deletions archive/scripts/upgrade_2026_01_20_v3_phase_2.py

Large diffs are not rendered by default.

79 changes: 79 additions & 0 deletions archive/scripts/vote_2026_01_26_hoodi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
"""
Voting 26/01/2026. Hoodi network.

1. Grant MANAGE_SIGNING_KEYS role for operator ID = 1 to 0xc8195bb2851d7129D9100af9d65Bd448A6dE11eF on Hoodi

Vote #56 passed & executed on Jan-26-2026 12:52:36 PM UTC, block 2108630.
"""

from typing import Dict, List, Tuple

from utils.voting import bake_vote_items, confirm_vote_script, create_vote
from utils.ipfs import upload_vote_ipfs_description, calculate_vote_ipfs_description
from utils.config import get_deployer_account, get_is_live, get_priority_fee
from utils.permissions import encode_permission_grant_p
from utils.permission_parameters import Param, Op, ArgumentValue
from utils.mainnet_fork import pass_and_exec_dao_vote


# ============================== Addresses ===================================
NEW_MANAGER_ADDRESS = "0xc8195bb2851d7129D9100af9d65Bd448A6dE11eF"
TARGET_NO_REGISTRY = "0x682E94d2630846a503BDeE8b6810DF71C9806891"
OPERATOR_ID = 1


# ============================= Description ==================================
IPFS_DESCRIPTION = "Grant MANAGE_SIGNING_KEYS role for operator ID = 1 to 0xc8195bb2851d7129D9100af9d65Bd448A6dE11eF on Hoodi"


def get_vote_items() -> Tuple[List[str], List[Tuple[str, str]]]:
params = [Param(0, Op.EQ, ArgumentValue(OPERATOR_ID))]

vote_desc_items, call_script_items = zip(
(
"1. Grant MANAGE_SIGNING_KEYS role for operator ID = 1 to 0xc8195bb2851d7129D9100af9d65Bd448A6dE11eF on Hoodi",
encode_permission_grant_p(
target_app=TARGET_NO_REGISTRY,
permission_name="MANAGE_SIGNING_KEYS",
grant_to=NEW_MANAGER_ADDRESS,
params=params,
),
),
)

return vote_desc_items, call_script_items


def start_vote(tx_params: Dict[str, str], silent: bool = False):
vote_desc_items, call_script_items = get_vote_items()
vote_items = bake_vote_items(list(vote_desc_items), list(call_script_items))

desc_ipfs = (
calculate_vote_ipfs_description(IPFS_DESCRIPTION)
if silent else upload_vote_ipfs_description(IPFS_DESCRIPTION)
)

vote_id, tx = confirm_vote_script(vote_items, silent, desc_ipfs) and list(
create_vote(vote_items, tx_params, desc_ipfs=desc_ipfs)
)

return vote_id, tx


def main():
tx_params: Dict[str, str] = {"from": get_deployer_account().address}
if get_is_live():
tx_params["priority_fee"] = get_priority_fee()

vote_id, _ = start_vote(tx_params=tx_params, silent=False)
vote_id >= 0 and print(f"Vote created: {vote_id}.")


def start_and_execute_vote_on_fork_manual():
if get_is_live():
raise Exception("This script is for local testing only.")

tx_params = {"from": get_deployer_account()}
vote_id, _ = start_vote(tx_params=tx_params, silent=True)
print(f"Vote created: {vote_id}.")
pass_and_exec_dao_vote(int(vote_id), step_by_step=True)
1,362 changes: 1,362 additions & 0 deletions archive/tests/test_2026_01_20.py

Large diffs are not rendered by default.

153 changes: 153 additions & 0 deletions archive/tests/test_2026_01_26_hoodi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
from brownie import interface, web3, reverts
from brownie.network.transaction import TransactionReceipt
from utils.evm_script import encode_call_script
from utils.ipfs import get_lido_vote_cid_from_str
from utils.permission_parameters import Param, Op, ArgumentValue
from utils.test.event_validators.permission import Permission, validate_permission_grantp_event
from utils.test.keys_helpers import random_pubkeys_batch, random_signatures_batch
from utils.test.tx_tracing_helpers import (
count_vote_items_by_events,
display_voting_events,
group_voting_events_from_receipt,
)
from utils.balance import set_balance
from utils.voting import find_metadata_by_vote_id

from archive.scripts.vote_2026_01_26_hoodi import (
start_vote,
get_vote_items,
)


VOTING = "0x49B3512c44891bef83F8967d075121Bd1b07a01B"
TARGET_NO_REGISTRY = "0x682E94d2630846a503BDeE8b6810DF71C9806891"
ACL = "0x78780e70Eae33e2935814a327f7dB6c01136cc62"
NEW_MANAGER_ADDRESS = "0xc8195bb2851d7129D9100af9d65Bd448A6dE11eF"
MANAGE_SIGNING_KEYS = web3.keccak(text="MANAGE_SIGNING_KEYS").hex()
OPERATOR_ID = 1
EXPECTED_REWARD_ADDRESS = "0x031624fAD4E9BFC2524e7a87336C4b190E70BCA8"

EXPECTED_VOTE_ID = 56
EXPECTED_VOTE_EVENTS_COUNT = 1
IPFS_DESCRIPTION_HASH = "bafkreibcmwxupju2hx54awwjh7fpbybkmcxban5v36go4nsnrem2fwipgq"


def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env):
voting = interface.Voting(VOTING)
no = interface.NodeOperatorsRegistry(TARGET_NO_REGISTRY)
perm_param = Param(0, Op.EQ, ArgumentValue(OPERATOR_ID))
perm_param_uint = perm_param.to_uint256()

# =========================================================================
# ======================== Identify or Create vote ========================
# =========================================================================
if vote_ids_from_env:
vote_id = vote_ids_from_env[0]
assert vote_id == EXPECTED_VOTE_ID
elif voting.votesLength() > EXPECTED_VOTE_ID:
vote_id = EXPECTED_VOTE_ID
else:
vote_id, _ = start_vote({"from": ldo_holder}, silent=True)

_, call_script_items = get_vote_items()
onchain_script = voting.getVote(vote_id)["script"]
assert str(onchain_script).lower() == encode_call_script(call_script_items).lower()

# =========================================================================
# ============================= Execute Vote ==============================
# =========================================================================
is_executed = voting.getVote(vote_id)["executed"]
if not is_executed:
# =====================================================================
# ========================= Before voting checks ======================
# =====================================================================

# Item 1
assert no.getNodeOperator(OPERATOR_ID, True)["rewardAddress"] == EXPECTED_REWARD_ADDRESS
assert not no.canPerform(NEW_MANAGER_ADDRESS, MANAGE_SIGNING_KEYS, [perm_param_uint])
# scenario test
add_signing_keys_fails_before_vote(accounts)

assert get_lido_vote_cid_from_str(find_metadata_by_vote_id(vote_id)) == IPFS_DESCRIPTION_HASH

vote_tx: TransactionReceipt = helpers.execute_vote(vote_id=vote_id, accounts=accounts, dao_voting=voting)
display_voting_events(vote_tx)
vote_events = group_voting_events_from_receipt(vote_tx)

# =====================================================================
# ========================= After voting checks =======================
# =====================================================================

# Item 1
assert no.canPerform(NEW_MANAGER_ADDRESS, MANAGE_SIGNING_KEYS, [perm_param_uint])

assert len(vote_events) == EXPECTED_VOTE_EVENTS_COUNT
assert count_vote_items_by_events(vote_tx, voting.address) == EXPECTED_VOTE_EVENTS_COUNT

# events check
permission = Permission(entity=NEW_MANAGER_ADDRESS, app=no, role=MANAGE_SIGNING_KEYS)
validate_permission_grantp_event(vote_events[0], permission, [perm_param], emitted_by=ACL)

# scenario tests
manager_adds_signing_keys(accounts)
add_signing_keys_to_notallowed_operator_fails(accounts)


def add_signing_keys_fails_before_vote(accounts):
no = interface.SimpleDVT(TARGET_NO_REGISTRY)

manager = accounts.at(NEW_MANAGER_ADDRESS, force=True)
set_balance(manager, 10)

pubkeys = random_pubkeys_batch(1)
signatures = random_signatures_batch(1)

with reverts():
no.addSigningKeys(
OPERATOR_ID,
1,
pubkeys,
signatures,
{"from": manager},
)


def manager_adds_signing_keys(accounts):
no = interface.SimpleDVT(TARGET_NO_REGISTRY)

manager = accounts.at(NEW_MANAGER_ADDRESS, force=True)
set_balance(manager, 10)

total_keys_before = no.getTotalSigningKeyCount(OPERATOR_ID)
pubkeys = random_pubkeys_batch(1)
signatures = random_signatures_batch(1)

no.addSigningKeys(
OPERATOR_ID,
1,
pubkeys,
signatures,
{"from": manager},
)

total_keys_after = no.getTotalSigningKeyCount(OPERATOR_ID)
assert total_keys_after == total_keys_before + 1


def add_signing_keys_to_notallowed_operator_fails(accounts):
no = interface.SimpleDVT(TARGET_NO_REGISTRY)

manager = accounts.at(NEW_MANAGER_ADDRESS, force=True)
set_balance(manager, 10)

pubkeys = random_pubkeys_batch(1)
signatures = random_signatures_batch(1)

with reverts():
no.addSigningKeys(
2, # NO id 2 - not allowed
1,
pubkeys,
signatures,
{"from": manager},
)
7 changes: 4 additions & 3 deletions configs/config_mainnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,8 @@
CS_MODULE_NAME = "Community Staking"
CS_MODULE_MODULE_FEE_BP = 600
CS_MODULE_TREASURY_FEE_BP = 400
CS_MODULE_TARGET_SHARE_BP = 500
CS_MODULE_PRIORITY_EXIT_SHARE_THRESHOLD = 625
CS_MODULE_TARGET_SHARE_BP = 750
CS_MODULE_PRIORITY_EXIT_SHARE_THRESHOLD = 900
CS_MODULE_MAX_DEPOSITS_PER_BLOCK = 30
CS_MODULE_MIN_DEPOSIT_BLOCK_DISTANCE = 25

Expand Down Expand Up @@ -407,6 +407,7 @@
CS_PERMISSIONLESS_GATE_ADDRESS = "0xcF33a38111d0B1246A3F38a838fb41D626B454f0"
CS_VERIFIER_V2_ADDRESS = "0xdC5FE1782B6943f318E05230d688713a560063DC"
CS_GATE_SEAL_V2_ADDRESS = "0xE1686C2E90eb41a48356c1cC7FaA17629af3ADB3"
TWO_PHASE_FRAME_CONFIG_UPDATE = "0xb2B4DB1491cbe949ae85EfF01E0d3ee239f110C1"

# DualGovernance
DUAL_GOVERNANCE = "0xC1db28B3301331277e307FDCfF8DE28242A4486E"
Expand Down Expand Up @@ -530,7 +531,7 @@
OPERATOR_GRID = "0xC69685E89Cefc327b43B7234AC646451B27c544d"
LAZY_ORACLE = "0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c"
PREDEPOSIT_GUARANTEE = "0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3"
VAULTS_ADAPTER = "0xe2DE6d2DefF15588a71849c0429101F8ca9FB14D"
VAULTS_ADAPTER = "0x28F9Ac198C4E0FA6A9Ad2c2f97CB38F1A3120f27"
GATE_SEAL_V3 = "0x881dAd714679A6FeaA636446A0499101375A365c"
STAKING_VAULT_BEACON = "0x5FbE8cEf9CCc56ad245736D3C5bAf82ad54Ca789"

Expand Down
1 change: 1 addition & 0 deletions interfaces/TwoPhaseFrameConfigUpdate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"inputs":[{"internalType":"address","name":"oracle","type":"address"},{"components":[{"internalType":"uint256","name":"reportsToProcessBeforeOffsetPhase","type":"uint256"},{"internalType":"uint256","name":"reportsToProcessBeforeRestorePhase","type":"uint256"},{"internalType":"uint256","name":"offsetPhaseEpochsPerFrame","type":"uint256"},{"internalType":"uint256","name":"restorePhaseFastLaneLengthSlots","type":"uint256"}],"internalType":"struct TwoPhaseFrameConfigUpdate.PhasesConfig","name":"phasesConfig","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CurrentReportMainPhaseIsNotCompleted","type":"error"},{"inputs":[],"name":"FastLanePeriodCannotBeLongerThanFrame","type":"error"},{"inputs":[],"name":"FastLaneTooShort","type":"error"},{"inputs":[],"name":"NoneOfPhasesExpired","type":"error"},{"inputs":[],"name":"OffsetPhaseNotExecuted","type":"error"},{"inputs":[],"name":"PhaseAlreadyExecuted","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentSlot","type":"uint256"},{"internalType":"uint256","name":"deadlineSlot","type":"uint256"}],"name":"PhaseExpired","type":"error"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"}],"name":"UnexpectedLastProcessingRefSlot","type":"error"},{"inputs":[],"name":"ZeroEpochsPerFrame","type":"error"},{"inputs":[],"name":"ZeroOracleAddress","type":"error"},{"inputs":[],"name":"ZeroReportsToEnableUpdate","type":"error"},{"anonymous":false,"inputs":[],"name":"OffsetPhaseExecuted","type":"event"},{"anonymous":false,"inputs":[],"name":"RestorePhaseExecuted","type":"event"},{"inputs":[],"name":"GENESIS_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HASH_CONSENSUS","outputs":[{"internalType":"contract IConsensusContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OFFSET_PHASE_FAST_LANE_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE","outputs":[{"internalType":"contract IReportAsyncProcessor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_PER_SLOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SLOTS_PER_EPOCH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"executeOffsetPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeRestorePhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getExpirationStatus","outputs":[{"internalType":"bool","name":"offsetExpired","type":"bool"},{"internalType":"bool","name":"restoreExpired","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReadyForOffsetPhase","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReadyForRestorePhase","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offsetPhase","outputs":[{"internalType":"uint256","name":"expectedProcessingRefSlot","type":"uint256"},{"internalType":"uint256","name":"expirationSlot","type":"uint256"},{"internalType":"uint256","name":"epochsPerFrame","type":"uint256"},{"internalType":"uint256","name":"fastLaneLengthSlots","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceRoleWhenExpired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restorePhase","outputs":[{"internalType":"uint256","name":"expectedProcessingRefSlot","type":"uint256"},{"internalType":"uint256","name":"expirationSlot","type":"uint256"},{"internalType":"uint256","name":"epochsPerFrame","type":"uint256"},{"internalType":"uint256","name":"fastLaneLengthSlots","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"}]
4 changes: 0 additions & 4 deletions tests/regression/test_gate_seal.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,10 +357,6 @@ def test_gate_seal_v3_vaults_scenario(gate_seal_committee):

pause_duration = gate_seal_v3.get_seal_duration_seconds()

# TODO remove this after PDG unpause
reseal_manager_account = accounts.at(RESEAL_MANAGER, force=True)
contracts.predeposit_guarantee.resume({"from": reseal_manager_account})

assert not contracts.vault_hub.isPaused()
assert not contracts.predeposit_guarantee.isPaused()

Expand Down
5 changes: 3 additions & 2 deletions tests/regression/test_permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@
VAULTS_ADAPTER,
GATE_SEAL_V3,
L1_TOKEN_RATE_NOTIFIER,
STAKING_VAULT_BEACON
STAKING_VAULT_BEACON,
TWO_PHASE_FRAME_CONFIG_UPDATE
)


Expand Down Expand Up @@ -399,7 +400,7 @@ def protocol_permissions():
"DEFAULT_ADMIN_ROLE": [contracts.agent],
"MANAGE_MEMBERS_AND_QUORUM_ROLE": [contracts.agent],
"DISABLE_CONSENSUS_ROLE": [],
"MANAGE_FRAME_CONFIG_ROLE": [],
"MANAGE_FRAME_CONFIG_ROLE": [TWO_PHASE_FRAME_CONFIG_UPDATE],
"MANAGE_FAST_LANE_CONFIG_ROLE": [],
"MANAGE_REPORT_PROCESSOR_ROLE": [],
},
Expand Down
Loading
Loading