@@ -6,87 +6,47 @@ import "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
66import "@openzeppelin/contracts/utils/Multicall.sol " ;
77import "@openzeppelin/contracts/metatx/ERC2771Context.sol " ;
88
9- import "./interfaces/ITWRegistry.sol " ;
10-
11- contract TWRegistry is ITWRegistry , Multicall , ERC2771Context , AccessControlEnumerable {
9+ contract TWRegistry is Multicall , ERC2771Context , AccessControlEnumerable {
1210 bytes32 public constant OPERATOR_ROLE = keccak256 ("OPERATOR_ROLE " );
1311
1412 using EnumerableSet for EnumerableSet.AddressSet;
15- using EnumerableSet for EnumerableSet.UintSet;
1613
1714 /// @dev wallet address => [contract addresses]
18- mapping (address => mapping ( uint256 => EnumerableSet.AddressSet) ) private deployments;
15+ mapping (address => EnumerableSet.AddressSet) private deployments;
1916
20- EnumerableSet.UintSet private chainIds;
17+ event Added (address indexed deployer , address indexed deployment );
18+ event Deleted (address indexed deployer , address indexed deployment );
2119
2220 constructor (address _trustedForwarder ) ERC2771Context (_trustedForwarder) {
2321 _setupRole (DEFAULT_ADMIN_ROLE, _msgSender ());
2422 }
2523
2624 // slither-disable-next-line similar-names
27- function add (
28- address _deployer ,
29- address _deployment ,
30- uint256 _chainId
31- ) external {
25+ function add (address _deployer , address _deployment ) external {
3226 require (hasRole (OPERATOR_ROLE, _msgSender ()) || _deployer == _msgSender (), "not operator or deployer. " );
3327
34- bool added = deployments[_deployer][_chainId] .add (_deployment);
28+ bool added = deployments[_deployer].add (_deployment);
3529 require (added, "failed to add " );
3630
37- chainIds.add (_chainId);
38-
39- emit Added (_deployer, _deployment, _chainId);
31+ emit Added (_deployer, _deployment);
4032 }
4133
4234 // slither-disable-next-line similar-names
43- function remove (
44- address _deployer ,
45- address _deployment ,
46- uint256 _chainId
47- ) external {
35+ function remove (address _deployer , address _deployment ) external {
4836 require (hasRole (OPERATOR_ROLE, _msgSender ()) || _deployer == _msgSender (), "not operator or deployer. " );
4937
50- bool removed = deployments[_deployer][_chainId] .remove (_deployment);
38+ bool removed = deployments[_deployer].remove (_deployment);
5139 require (removed, "failed to remove " );
5240
53- emit Deleted (_deployer, _deployment, _chainId );
41+ emit Deleted (_deployer, _deployment);
5442 }
5543
56- function getAll (address _deployer ) external view returns (Deployment[] memory allDeployments ) {
57- uint256 totalDeployments;
58- uint256 chainIdsLen = chainIds.length ();
59-
60- for (uint256 i = 0 ; i < chainIdsLen; i += 1 ) {
61- uint256 chainId = chainIds.at (i);
62-
63- totalDeployments += deployments[_deployer][chainId].length ();
64- }
65-
66- allDeployments = new Deployment [](totalDeployments);
67- uint256 idx;
68-
69- for (uint256 j = 0 ; j < chainIdsLen; j += 1 ) {
70- uint256 chainId = chainIds.at (j);
71-
72- uint256 len = deployments[_deployer][chainId].length ();
73- address [] memory deploymentAddrs = deployments[_deployer][chainId].values ();
74-
75- for (uint256 k = 0 ; k < len; k += 1 ) {
76- allDeployments[idx] = Deployment ({ deploymentAddress: deploymentAddrs[k], chainId: chainId });
77- idx += 1 ;
78- }
79- }
44+ function getAll (address _deployer ) external view returns (address [] memory ) {
45+ return deployments[_deployer].values ();
8046 }
8147
82- function count (address _deployer ) external view returns (uint256 deploymentCount ) {
83- uint256 chainIdsLen = chainIds.length ();
84-
85- for (uint256 i = 0 ; i < chainIdsLen; i += 1 ) {
86- uint256 chainId = chainIds.at (i);
87-
88- deploymentCount += deployments[_deployer][chainId].length ();
89- }
48+ function count (address _deployer ) external view returns (uint256 ) {
49+ return deployments[_deployer].length ();
9050 }
9151
9252 function _msgSender () internal view virtual override (Context, ERC2771Context ) returns (address sender ) {
0 commit comments