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