Skip to content

Commit

Permalink
Merge pull request #600 from tokencard/inheritable-init-pattern
Browse files Browse the repository at this point in the history
ENS registry/node init pattern
  • Loading branch information
i-stam committed Jul 15, 2020
2 parents a6b1f10 + 3a6e045 commit 6dc76df
Show file tree
Hide file tree
Showing 14 changed files with 28 additions and 19 deletions.
3 changes: 2 additions & 1 deletion contracts/externals/upgradeability/UpgradeabilityProxy.sol
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@ contract UpgradeabilityProxy is BaseUpgradeabilityProxy {
(bool success,) = _logic.delegatecall(_data);
require(success);
}
}
}

}
10 changes: 6 additions & 4 deletions contracts/internals/ensResolvable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ import "../externals/ens/PublicResolver.sol";
///@title ENSResolvable - Ethereum Name Service Resolver
///@notice contract should be used to get an address for an ENS node
contract ENSResolvable is Initializable {
/// @notice _ensRegistry points to the ENS registry smart contract.
address private _ensRegistry;
/// @notice Address of the ENS registry contract set to the default ENS registry address.
address private _ensRegistry = address(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e);

/// @notice Checks if the contract has been initialized succesfully i.e. the ENS registry has been set.
modifier initialized() {
Expand All @@ -49,7 +49,9 @@ contract ENSResolvable is Initializable {

/// @param _ensReg is the ENS registry used
function _initializeENSResolvable(address _ensReg) internal initializer {
require(_ensReg != address(0), "ensReg is 0");
_ensRegistry = _ensReg;
// Set ENS registry or use default
if (_ensReg != address(0)) {
_ensRegistry = _ensReg;
}
}
}
12 changes: 9 additions & 3 deletions contracts/internals/tokenWhitelistable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ import "../externals/initializable.sol";

/// @title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.
contract TokenWhitelistable is ENSResolvable {
/// @notice Is the registered ENS node identifying the tokenWhitelist contract
bytes32 private _tokenWhitelistNode;
// token-whitelist.tokencard.eth
bytes32 private constant _DEFAULT_TOKEN_WHITELIST_NODE = 0xe84f90570f13fe09f288f2411ff9cf50da611ed0c7db7f73d48053ffc974d396;

/// @notice This is the registered ENS node identifying the tokenWhitelist contract
bytes32 private _tokenWhitelistNode = _DEFAULT_TOKEN_WHITELIST_NODE;

/// @notice This shows what TokenWhitelist is being used
/// @return TokenWhitelist's node registered in ENS.
Expand Down Expand Up @@ -68,7 +71,10 @@ contract TokenWhitelistable is ENSResolvable {
/// @notice Initializes the TokenWhitelistable object.
/// @param _tokenWhitelistNode_ is the ENS node of the TokenWhitelist.
function _initializeTokenWhitelistable(bytes32 _tokenWhitelistNode_) internal initializer {
_tokenWhitelistNode = _tokenWhitelistNode_;
// Set tokenWhitelistNode or use default
if (_tokenWhitelistNode_ != bytes32(0)) {
_tokenWhitelistNode = _tokenWhitelistNode_;
}
}

/// @notice Checks whether a token is available.
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/bindings/holder.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/licence.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/mocks/isValidSignatureExporter.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 6dc76df

Please sign in to comment.