From a0a3187b30a90361a57e6f8f8395ef7e8a7b2f5f Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Wed, 26 Sep 2018 19:21:25 -0300 Subject: [PATCH] make roles initializers idempotent --- contracts/access/roles/CapperRole.sol | 4 +++- contracts/access/roles/MinterRole.sol | 4 +++- contracts/access/roles/PauserRole.sol | 4 +++- contracts/access/roles/SignerRole.sol | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/contracts/access/roles/CapperRole.sol b/contracts/access/roles/CapperRole.sol index 297c084b1..3cb800f6b 100644 --- a/contracts/access/roles/CapperRole.sol +++ b/contracts/access/roles/CapperRole.sol @@ -13,7 +13,9 @@ contract CapperRole is Initializable { Roles.Role private cappers; function initialize() public initializer { - _addCapper(msg.sender); + if (!isCapper(msg.sender)) { + _addCapper(msg.sender); + } } modifier onlyCapper() { diff --git a/contracts/access/roles/MinterRole.sol b/contracts/access/roles/MinterRole.sol index ddace6862..9c847097a 100644 --- a/contracts/access/roles/MinterRole.sol +++ b/contracts/access/roles/MinterRole.sol @@ -13,7 +13,9 @@ contract MinterRole is Initializable { Roles.Role private minters; function initialize() public initializer { - _addMinter(msg.sender); + if (!isMinter(msg.sender)) { + _addMinter(msg.sender); + } } modifier onlyMinter() { diff --git a/contracts/access/roles/PauserRole.sol b/contracts/access/roles/PauserRole.sol index 615bd767d..28f6f2003 100644 --- a/contracts/access/roles/PauserRole.sol +++ b/contracts/access/roles/PauserRole.sol @@ -13,7 +13,9 @@ contract PauserRole is Initializable { Roles.Role private pausers; function initialize() public initializer { - _addPauser(msg.sender); + if (!isPauser(msg.sender)) { + _addPauser(msg.sender); + } } modifier onlyPauser() { diff --git a/contracts/access/roles/SignerRole.sol b/contracts/access/roles/SignerRole.sol index ad74f03c9..4c60bedeb 100644 --- a/contracts/access/roles/SignerRole.sol +++ b/contracts/access/roles/SignerRole.sol @@ -13,7 +13,9 @@ contract SignerRole is Initializable { Roles.Role private signers; function initialize() public initializer { - _addSigner(msg.sender); + if (!isSigner(msg.sender)) { + _addSigner(msg.sender); + } } modifier onlySigner() {