From c0deaf6326e67d459dabff5380cc7bd5d8d31850 Mon Sep 17 00:00:00 2001 From: adjoly Date: Sun, 10 Aug 2025 20:35:51 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip(w?= =?UTF-8?q?allet):=20better=20tests=20added?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/knlWallet.sol | 10 ++++--- code/test/KNL_wallet.t.sol | 58 ++++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/code/knlWallet.sol b/code/knlWallet.sol index 9848123..bb5b646 100644 --- a/code/knlWallet.sol +++ b/code/knlWallet.sol @@ -34,11 +34,11 @@ contract knlWallet { modifier isOwner() { for (uint256 i = 0; i < owners.length; i++) { if (owners[i] == msg.sender) { - _; - return; + _; + return; } } - revert("need to be owner"); + revert("need to be owner"); } receive() external payable { } @@ -90,7 +90,9 @@ contract knlWallet { } 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]; if (_tx.tokenAddress == address(0)) { diff --git a/code/test/KNL_wallet.t.sol b/code/test/KNL_wallet.t.sol index 528f95f..47c49ce 100644 --- a/code/test/KNL_wallet.t.sol +++ b/code/test/KNL_wallet.t.sol @@ -8,50 +8,54 @@ import "../Kanel42_token.sol"; contract KNLwalletTest is Test { Kanel42_token public token; - knlWallet public wallet; + knlWallet public wallet; address owner1 = address(1); address owner2 = address(2); address owner3 = address(3); address owner4 = address(4); - address to = address(5); + address to = address(5); function setUp() public { - address[] memory owners = new address[](4); - owners[0] = owner1; - owners[1] = owner2; - owners[2] = owner3; - owners[3] = owner4; + address[] memory owners = new address[](4); + owners[0] = owner1; + owners[1] = owner2; + owners[2] = owner3; + owners[3] = owner4; wallet = new knlWallet(owners, 3); token = new Kanel42_token(); - console.log(wallet.owners(0)); - token.mint(10 * (10 ** token.decimals())); - vm.prank(owner3); - token.mint(4 * (10 ** token.decimals())); - token.transfer(address(wallet), 4 * (10 ** token.decimals())); + vm.prank(owner3); + token.mint(4 * (10 ** token.decimals())); + token.transfer(address(wallet), 4 * (10 ** token.decimals())); } - function testAdd() public { - vm.prank(owner1); - wallet.addTransaction(payable(to), 1, address(token)); - } + function testAdd() public { + vm.prank(owner1); + wallet.addTransaction(payable(to), 1, address(token)); + } - function testConfirm() public { - vm.prank(owner1); - wallet.submitTransaction(payable(to), 1, address(token)); + function testConfirm() public { + uint256 initialbalance = token.balanceOf(address(wallet)); + 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); - wallet.confirmTransaction(tr); + vm.prank(owner2); + wallet.confirmTransaction(tr); - vm.prank(owner3); - wallet.confirmTransaction(tr); + vm.prank(owner3); + wallet.confirmTransaction(tr); - vm.prank(owner4); - wallet.confirmTransaction(tr); - } + uint256 finalBalance = token.balanceOf(address(wallet)); + + assertEq(token.balanceOf(to) - initialbalanceTo, 10 ** token.decimals()); + assertEq(initialbalance - finalBalance, 1 * (10 ** token.decimals())); + } }