erigon-pulse/tests/contracts/eip2027.sol

50 lines
1.1 KiB
Solidity

pragma solidity ^0.5.0;
contract eip2027 {
mapping(address => uint) public balances;
constructor() public {
balances[msg.sender] = 100;
}
function create(uint newBalance) public {
balances[msg.sender] = newBalance;
}
function update(uint newBalance) public {
balances[msg.sender] = newBalance;
}
function remove() public {
delete balances[msg.sender];
}
function createAndRevert(uint newBalance) public {
balances[msg.sender] = newBalance;
revert();
}
function updateAndRevert(uint newBalance) public {
balances[msg.sender] = newBalance;
revert();
}
function removeAndRevert() public {
delete balances[msg.sender];
revert();
}
function createAndException(uint newBalance) public {
balances[msg.sender] = newBalance;
assert(false);
}
function updateAndException(uint newBalance) public {
balances[msg.sender] = newBalance;
assert(false);
}
function removeAndException() public {
delete balances[msg.sender];
assert(false);
}
}