Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
Siddharth2207 committed Jul 8, 2024
1 parent b66d215 commit 3ba37dd
Showing 1 changed file with 94 additions and 15 deletions.
109 changes: 94 additions & 15 deletions test/StopLimitTest.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,12 @@ contract WlthLimitOrderSingleTest is StrategyTests {
getEncodedSellWlthRoute(address(ARB_INSTANCE)),
0,
0,
1e6,
10000e6,
10000e18,
0,
0,
"strategies/stop-limit.rain",
"stop-limit-order.buy.prod",
"stop-limit-order.sell.prod",
"./lib/h20.test-std/lib/rain.orderbook",
"./lib/h20.test-std/lib/rain.orderbook/Cargo.toml",
inputVaults,
Expand All @@ -102,24 +102,103 @@ contract WlthLimitOrderSingleTest is StrategyTests {

OrderV2 memory order = addOrderDepositOutputTokens(strategy);

// {
// vm.recordLogs();
// // `arb()` called
// takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);
{
vm.recordLogs();
// `arb()` called
takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);

// Vm.Log[] memory entries = vm.getRecordedLogs();
// (uint256 strategyAmount, uint256 strategyRatio) = getCalculationContext(entries);
Vm.Log[] memory entries = vm.getRecordedLogs();
(uint256 strategyAmount, uint256 strategyRatio) = getCalculationContext(entries);

// assertEq(strategyRatio, 0.02e18);
// assertEq(strategyAmount, 50e18);
// }
// {
// vm.expectRevert("Max order count");
// takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);
// }
assertEq(strategyRatio, 0.02e18);
assertEq(strategyAmount, 50e18);
}
{
vm.expectRevert("Max order count");
takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);
}

}

function testStopLimitBuy() public {
IO[] memory inputVaults = new IO[](1);
inputVaults[0] = baseWlthIo();

IO[] memory outputVaults = new IO[](1);
outputVaults[0] = baseUsdcIo();

LibStrategyDeployment.StrategyDeployment memory strategy = LibStrategyDeployment.StrategyDeployment(
getEncodedSellWlthRoute(address(ARB_INSTANCE)),
getEncodedBuyWlthRoute(address(ARB_INSTANCE)),
0,
0,
100000e18,
10000e6,
0,
0,
"strategies/stop-limit.rain",
"stop-limit-order.buy.prod",
"./lib/h20.test-std/lib/rain.orderbook",
"./lib/h20.test-std/lib/rain.orderbook/Cargo.toml",
inputVaults,
outputVaults
);

OrderV2 memory order = addOrderDepositOutputTokens(strategy);

{
vm.recordLogs();
// `arb()` called
takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);

Vm.Log[] memory entries = vm.getRecordedLogs();
(uint256 strategyAmount, uint256 strategyRatio) = getCalculationContext(entries);

assertEq(strategyRatio, 35e18);
assertEq(strategyAmount, 1e18);
}
{
vm.expectRevert("Max order count");
takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);
}
}

function testEnsureStopLimit() public {

IO[] memory inputVaults = new IO[](1);
inputVaults[0] = baseUsdcIo();

IO[] memory outputVaults = new IO[](1);
outputVaults[0] = baseWlthIo();

LibStrategyDeployment.StrategyDeployment memory strategy = LibStrategyDeployment.StrategyDeployment(
getEncodedBuyWlthRoute(address(ARB_INSTANCE)),
getEncodedSellWlthRoute(address(ARB_INSTANCE)),
0,
0,
10000e6,
10000e18,
0,
0,
"strategies/stop-limit.rain",
"stop-limit-order.sell.prod",
"./lib/h20.test-std/lib/rain.orderbook",
"./lib/h20.test-std/lib/rain.orderbook/Cargo.toml",
inputVaults,
outputVaults
);

OrderV2 memory order = addOrderDepositOutputTokens(strategy);

moveExternalPrice(
strategy.inputVaults[strategy.inputTokenIndex].token,
strategy.outputVaults[strategy.outputTokenIndex].token,
100000e6,
strategy.makerRoute
);
vm.expectRevert("Stop price.");
takeArbOrder(order, strategy.takerRoute, strategy.inputTokenIndex, strategy.outputTokenIndex);
}


function getEncodedBuyWlthRoute(address toAddress) internal pure returns (bytes memory) {
Expand Down

0 comments on commit 3ba37dd

Please sign in to comment.