diff --git a/evm/src/assets/sharedComponents/AccessControl.sol b/evm/src/assets/sharedComponents/AccessControl.sol index 7f41f324..f17a3268 100644 --- a/evm/src/assets/sharedComponents/AccessControl.sol +++ b/evm/src/assets/sharedComponents/AccessControl.sol @@ -235,8 +235,12 @@ abstract contract AccessControl { } else { uint256 rawIndex = state.isAdmin[admin]; - if (rawIndex != state.admins.length) - state.admins[rawIndex - 1] = state.admins[state.admins.length - 1]; + if (rawIndex != state.admins.length) { + address tmpAdmin = state.admins[state.admins.length - 1]; + uint256 newIndex = rawIndex - 1; + state.isAdmin[tmpAdmin] = newIndex; + state.admins[newIndex] = tmpAdmin; + } state.isAdmin[admin] = 0; state.admins.pop();