1
0

🏗️」 wip(wallet): better tests added

This commit is contained in:
2025-08-10 20:35:51 +02:00
parent 164f8b80c8
commit c0deaf6326
2 changed files with 37 additions and 31 deletions

View File

@ -34,11 +34,11 @@ contract knlWallet {
modifier isOwner() { modifier isOwner() {
for (uint256 i = 0; i < owners.length; i++) { for (uint256 i = 0; i < owners.length; i++) {
if (owners[i] == msg.sender) { if (owners[i] == msg.sender) {
_; _;
return; return;
} }
} }
revert("need to be owner"); revert("need to be owner");
} }
receive() external payable { } receive() external payable { }
@ -90,7 +90,9 @@ contract knlWallet {
} }
function executeTransaction(uint256 transactionId) public isOwner { function executeTransaction(uint256 transactionId) public isOwner {
require(isConfirmed(transactionId), "transaction has not been confirmed"); require(
isConfirmed(transactionId), "transaction has not been confirmed"
);
Transaction storage _tx = transactions[transactionId]; Transaction storage _tx = transactions[transactionId];
if (_tx.tokenAddress == address(0)) { if (_tx.tokenAddress == address(0)) {

View File

@ -8,50 +8,54 @@ import "../Kanel42_token.sol";
contract KNLwalletTest is Test { contract KNLwalletTest is Test {
Kanel42_token public token; Kanel42_token public token;
knlWallet public wallet; knlWallet public wallet;
address owner1 = address(1); address owner1 = address(1);
address owner2 = address(2); address owner2 = address(2);
address owner3 = address(3); address owner3 = address(3);
address owner4 = address(4); address owner4 = address(4);
address to = address(5); address to = address(5);
function setUp() public { function setUp() public {
address[] memory owners = new address[](4); address[] memory owners = new address[](4);
owners[0] = owner1; owners[0] = owner1;
owners[1] = owner2; owners[1] = owner2;
owners[2] = owner3; owners[2] = owner3;
owners[3] = owner4; owners[3] = owner4;
wallet = new knlWallet(owners, 3); wallet = new knlWallet(owners, 3);
token = new Kanel42_token(); token = new Kanel42_token();
console.log(wallet.owners(0));
token.mint(10 * (10 ** token.decimals())); token.mint(10 * (10 ** token.decimals()));
vm.prank(owner3); vm.prank(owner3);
token.mint(4 * (10 ** token.decimals())); token.mint(4 * (10 ** token.decimals()));
token.transfer(address(wallet), 4 * (10 ** token.decimals())); token.transfer(address(wallet), 4 * (10 ** token.decimals()));
} }
function testAdd() public { function testAdd() public {
vm.prank(owner1); vm.prank(owner1);
wallet.addTransaction(payable(to), 1, address(token)); wallet.addTransaction(payable(to), 1, address(token));
} }
function testConfirm() public { function testConfirm() public {
vm.prank(owner1); uint256 initialbalance = token.balanceOf(address(wallet));
wallet.submitTransaction(payable(to), 1, address(token)); uint256 initialbalanceTo = token.balanceOf(to);
vm.prank(owner1);
wallet.submitTransaction(
payable(to), 1 * (10 ** 6), address(token)
);
uint tr = wallet.transactionCount() - 1; uint256 tr = wallet.transactionCount() - 1;
vm.prank(owner2); vm.prank(owner2);
wallet.confirmTransaction(tr); wallet.confirmTransaction(tr);
vm.prank(owner3); vm.prank(owner3);
wallet.confirmTransaction(tr); wallet.confirmTransaction(tr);
vm.prank(owner4); uint256 finalBalance = token.balanceOf(address(wallet));
wallet.confirmTransaction(tr);
} assertEq(token.balanceOf(to) - initialbalanceTo, 10 ** token.decimals());
assertEq(initialbalance - finalBalance, 1 * (10 ** token.decimals()));
}
} }