Add AddressToUintMap (#3150)
* add AddressToUintMap * Update contracts/utils/structs/EnumerableMap.sol Co-authored-by: Francisco Giordano <frangio.1@gmail.com> * address comments * lint code * merge mocks into a single file * add PR link to changelog entry Co-authored-by: Francisco Giordano <frangio.1@gmail.com> Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
This commit is contained in:
@ -4,7 +4,8 @@ pragma solidity ^0.8.0;
|
||||
|
||||
import "../utils/structs/EnumerableMap.sol";
|
||||
|
||||
contract EnumerableMapMock {
|
||||
// UintToAddressMap
|
||||
contract UintToAddressMapMock {
|
||||
using EnumerableMap for EnumerableMap.UintToAddressMap;
|
||||
|
||||
event OperationResult(bool result);
|
||||
@ -45,3 +46,42 @@ contract EnumerableMapMock {
|
||||
return _map.get(key, errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
// AddressToUintMap
|
||||
contract AddressToUintMapMock {
|
||||
using EnumerableMap for EnumerableMap.AddressToUintMap;
|
||||
|
||||
event OperationResult(bool result);
|
||||
|
||||
EnumerableMap.AddressToUintMap private _map;
|
||||
|
||||
function contains(address key) public view returns (bool) {
|
||||
return _map.contains(key);
|
||||
}
|
||||
|
||||
function set(address key, uint256 value) public {
|
||||
bool result = _map.set(key, value);
|
||||
emit OperationResult(result);
|
||||
}
|
||||
|
||||
function remove(address key) public {
|
||||
bool result = _map.remove(key);
|
||||
emit OperationResult(result);
|
||||
}
|
||||
|
||||
function length() public view returns (uint256) {
|
||||
return _map.length();
|
||||
}
|
||||
|
||||
function at(uint256 index) public view returns (address key, uint256 value) {
|
||||
return _map.at(index);
|
||||
}
|
||||
|
||||
function tryGet(address key) public view returns (bool, uint256) {
|
||||
return _map.tryGet(key);
|
||||
}
|
||||
|
||||
function get(address key) public view returns (uint256) {
|
||||
return _map.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user