Skip to content

Commit eecfeec

Browse files
Merge pull request #24 from StabilityNexus/FrontendSar
Removed inactive tokens mapping and added a mapping in factory.
2 parents 838f425 + 7ab4e30 commit eecfeec

2 files changed

Lines changed: 7 additions & 21 deletions

File tree

contracts/src/Factory.sol

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ contract Factory {
1010
mapping(address => address[]) public deployedTNTs;
1111
mapping(address => address[]) public userTNTs;
1212
mapping(address => bool) public isDeployedTNT;
13+
mapping(address => mapping(address => bool)) private userHasTNT;
1314

1415
event TNTCreated(address indexed owner, address tntAddress);
1516
event TokenRegistered(address indexed user, address indexed tntAddress);
@@ -30,25 +31,23 @@ contract Factory {
3031
}
3132

3233
function registerIssuedToken(address user, address tntAddr) external onlyDeployedTNT {
33-
address[] storage userTokens = userTNTs[user];
34-
uint256 len = userTokens.length;
35-
36-
for (uint256 i = 0; i < len; i++) {
37-
if (userTokens[i] == tntAddr) return;
38-
}
39-
40-
userTokens.push(tntAddr);
34+
if (userHasTNT[user][tntAddr]) return;
35+
userTNTs[user].push(tntAddr);
36+
userHasTNT[user][tntAddr] = true;
4137
emit TokenRegistered(user, tntAddr);
4238
}
4339

4440
function unregisterToken(address user, address tntAddr) external onlyDeployedTNT {
41+
if (!userHasTNT[user][tntAddr]) return;
42+
4543
address[] storage userTokens = userTNTs[user];
4644
uint256 len = userTokens.length;
4745

4846
for (uint256 i = 0; i < len; i++) {
4947
if (userTokens[i] == tntAddr) {
5048
userTokens[i] = userTokens[len - 1];
5149
userTokens.pop();
50+
userHasTNT[user][tntAddr] = false;
5251
emit TokenUnregistered(user, tntAddr);
5352
break;
5453
}

contracts/src/TNT.sol

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ contract TNT is ERC721, AccessControl {
2222

2323
uint256 private _nextTokenId;
2424
mapping(uint256 => address) public tokenIssuers;
25-
mapping(address => uint256[]) public _tokensByRecipient;
2625
mapping(address => uint256[]) public _activeTokensByRecipient;
2726
address[] public _allRecipients;
2827
mapping(address => bool) public _isRecipient;
@@ -62,7 +61,6 @@ contract TNT is ERC721, AccessControl {
6261
_safeMint(recipient, tokenId);
6362
tokenIssuers[tokenId] = msg.sender;
6463
metadata[tokenId] = TokenMetadata(block.timestamp);
65-
_tokensByRecipient[recipient].push(tokenId);
6664
_activeTokensByRecipient[recipient].push(tokenId);
6765

6866
if (!_isRecipient[recipient]) {
@@ -112,17 +110,6 @@ contract TNT is ERC721, AccessControl {
112110
}
113111
}
114112

115-
function getAllIssuedTokens(address user) public view returns (uint256[] memory tokenIds, address[] memory issuers) {
116-
uint256 len = _tokensByRecipient[user].length;
117-
tokenIds = new uint256[](len);
118-
issuers = new address[](len);
119-
120-
for (uint256 i = 0; i < len; i++) {
121-
tokenIds[i] = _tokensByRecipient[user][i];
122-
issuers[i] = tokenIssuers[tokenIds[i]];
123-
}
124-
}
125-
126113
function getActiveTokens(address user) public view returns (uint256[] memory tokenIds, address[] memory issuers) {
127114
uint256 len = _activeTokensByRecipient[user].length;
128115
tokenIds = new uint256[](len);

0 commit comments

Comments
 (0)