「🏗️」 wip(wallet): better tests added
This commit is contained in:
@ -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)) {
|
||||
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user