Files
contract/test/TestCancelOrder.sol
2024-10-27 23:52:21 -04:00

86 lines
2.7 KiB
Solidity

pragma solidity 0.8.26;
import "@forge-std/Test.sol";
import "@forge-std/console2.sol";
import {MockEnv} from "./MockEnv.sol";
import {VaultFactory} from "../src/core/VaultFactory.sol";
import {Dexorder} from "../src/more/Dexorder.sol";
import {IVault} from "../src/interface/IVault.sol";
import "../src/core/OrderSpec.sol";
contract TestCancelOrder is MockEnv, Test {
IVault public vault;
// vault gets 100,000 COIN and 100,000 USD
function setUp() public {
initNoFees();
vault = IVault(factory.deployVault(address(this)));
vm.deal(payable(address(vault)), 1 ether); // native for fees
uint256 coinAmount = 100_000 * 10 ** COIN.decimals();
COIN.mint(address(vault), coinAmount);
uint256 usdAmount = 100_000 * 10 ** USD.decimals();
USD.mint(address(vault), usdAmount);
}
function placeOrder() public {
Tranche[] memory tranches = new Tranche[](3);
tranches[0].fraction = 21845;
tranches[0].startTimeIsRelative = true;
tranches[0].startTime = 0;
tranches[1].fraction = 21845;
tranches[1].startTimeIsRelative = true;
tranches[1].startTime = 60;
tranches[2].fraction = 21845;
tranches[2].startTimeIsRelative = true;
tranches[2].startTime = 120;
uint256 amount = 100000000000000000000;
SwapOrder memory order = SwapOrder(
0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9, 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,
Route(Exchange.UniswapV3, 500), amount, amount/100, true, false, false,
NO_CONDITIONAL_ORDER, tranches
);
vault.placeDexorder(order);
}
// Simple test
function testCancelOrder() public {
placeOrder();
placeOrder();
placeOrder();
assert( vault.numSwapOrders() == 3 );
vault.cancelDexorder(0);
assert( vault.orderCanceled(0) );
assert( !vault.orderCanceled(1) );
assert( !vault.orderCanceled(2) );
vault.cancelDexorder(2);
assert( vault.orderCanceled(0) );
assert( !vault.orderCanceled(1) );
assert( vault.orderCanceled(2) );
vault.cancelAllDexorders();
assert( vault.orderCanceled(0) );
assert( vault.orderCanceled(1) );
assert( vault.orderCanceled(2) );
placeOrder();
assert( vault.numSwapOrders() == 4 );
assert( vault.orderCanceled(0) );
assert( vault.orderCanceled(1) );
assert( vault.orderCanceled(2) );
assert( !vault.orderCanceled(3) );
vault.cancelAllDexorders();
assert( vault.orderCanceled(0) );
assert( vault.orderCanceled(1) );
assert( vault.orderCanceled(2) );
assert( vault.orderCanceled(3) );
}
}