Static Analyzer for Solidity
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
slither/tests/e2e/detectors/test_data/mapping-deletion/0.7.6/MappingDeletion.sol

54 lines
1.3 KiB

// pragma solidity ^0.4.24;
library Lib{
struct MyStruct{
mapping(address => uint) maps;
}
function deleteSt(MyStruct[1] storage st) internal {
delete st[0];
}
}
contract Balances {
struct BalancesStruct{
address owner;
mapping(address => uint) balances;
}
struct NestedBalanceStruct {
BalancesStruct balanceStruct;
}
mapping(uint => BalancesStruct) public stackBalance;
NestedBalanceStruct internal nestedStackBalance;
function createBalance(uint idx) public {
require(stackBalance[idx].owner == address(0));
BalancesStruct storage str = stackBalance[idx];
str.owner = msg.sender;
}
function deleteBalance(uint idx) public {
require(stackBalance[idx].owner == msg.sender);
delete stackBalance[idx];
}
function deleteNestedBalance() public {
delete nestedStackBalance;
}
function setBalance(uint idx, address addr, uint val) public {
require(stackBalance[idx].owner == msg.sender);
stackBalance[idx].balances[addr] = val;
}
function getBalance(uint idx, address addr) public view returns(uint){
return stackBalance[idx].balances[addr];
}
}