From 55d35550a5721480a4acb522deefe6b19c9fe9c1 Mon Sep 17 00:00:00 2001 From: Kiryl Yermakou Date: Thu, 7 Apr 2022 16:53:47 -0400 Subject: [PATCH] fix(Gateway setup): check admins/owners/operators for address(0) (#84) * fix(Gateway setup): check admins/owners/operators for address(0) * chore(npm): version bump * refactor(Gateway): emptiness emphasizes the contents --- package-lock.json | 4 ++-- package.json | 2 +- src/AdminMultisigBase.sol | 2 ++ src/AxelarGatewayMultisig.sol | 4 +++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e4736d7..35388e52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@axelar-network/axelar-cgp-solidity", - "version": "3.1.0", + "version": "3.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@axelar-network/axelar-cgp-solidity", - "version": "3.1.0", + "version": "3.1.1", "license": "ISC", "dependencies": { "ethereum-waffle": "^3.4.0", diff --git a/package.json b/package.json index 27bea2b9..69373964 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@axelar-network/axelar-cgp-solidity", - "version": "3.1.0", + "version": "3.1.1", "description": "Ethereum Smart Contracts for Axelar Network", "main": "index.js", "scripts": { diff --git a/src/AdminMultisigBase.sol b/src/AdminMultisigBase.sol index 1a51b472..6027aea7 100644 --- a/src/AdminMultisigBase.sol +++ b/src/AdminMultisigBase.sol @@ -161,6 +161,8 @@ contract AdminMultisigBase is EternalStorage { // Check that the account wasn't already set as an admin for this epoch. if (_isAdmin(adminEpoch, account)) revert DuplicateAdmin(account); + if (account == address(0)) revert InvalidAdmins(); + // Set this account as the i-th admin in this epoch (needed to we can clear topic votes in `onlyAdmin`). _setAdmin(adminEpoch, i, account); _setIsAdmin(adminEpoch, account, true); diff --git a/src/AxelarGatewayMultisig.sol b/src/AxelarGatewayMultisig.sol index ea9cd8ee..0947aab5 100644 --- a/src/AxelarGatewayMultisig.sol +++ b/src/AxelarGatewayMultisig.sol @@ -184,6 +184,8 @@ contract AxelarGatewayMultisig is IAxelarGatewayMultisig, AxelarGateway { // Check that the account wasn't already set as an owner for this ownerEpoch. if (_isOwner(epoch, account)) revert DuplicateOwner(account); + if (account == address(0)) revert InvalidOwners(); + // Set this account as the i-th owner in this ownerEpoch (needed to we can get all the owners for `owners`). _setOwner(epoch, i, account); _setIsOwner(epoch, account, true); @@ -335,7 +337,7 @@ contract AxelarGatewayMultisig is IAxelarGatewayMultisig, AxelarGateway { // Check that the account wasn't already set as an operator for this operatorEpoch. if (_isOperator(epoch, account)) revert DuplicateOperator(account); - if (account == address(0)) revert InvalidAddress(); + if (account == address(0)) revert InvalidOperators(); // Set this account as the i-th operator in this operatorEpoch (needed to we can get all the operators for `operators`). _setOperator(epoch, i, account);