diff --git a/.clang-format b/.clang-format index b4abfa06..c76e9fc2 100644 --- a/.clang-format +++ b/.clang-format @@ -12,7 +12,6 @@ SortIncludes: false SpaceAfterCStyleCast: true AllowShortCaseLabelsOnASingleLine: false AllowAllArgumentsOnNextLine: false -AllowAllParametersOfDeclarationOnNextLine: false AllowShortBlocksOnASingleLine: Never AllowShortFunctionsOnASingleLine: None BinPackArguments: false diff --git a/PLUGIN_SPECIFICATION.md b/PLUGIN_SPECIFICATION.md index 94ceccdf..945759a8 100644 --- a/PLUGIN_SPECIFICATION.md +++ b/PLUGIN_SPECIFICATION.md @@ -11,10 +11,6 @@ Smart contracts covered by the plugin shall be described here: | -------------------- | -------------------------------------------- | | OETH Zapper | `0x9858e47bcbbe6fbac040519b02d7cd4b2c470c66` | | OETH Vault | `0x39254033945aa2e4809cc2977e7087bee48bd7ab` | -| ETH/OETH Curve Pool | `0x94b17476a93b3262d87b9a326965d1e91f9c13e7` | -| Curve Router | `0x99a58482bd75cbab83b27ec03ca68ff489b5788f` | -| OUSD Vault | `0xe75d77b1865ae93c7eaa3040b038d7aa7bc02f70` | -| OUSD Flipper | `0xcecad69d7d4ed6d52efcfa028af8732f27e08f70` | | UniswapV3 Router | `0xe592427a0aece92de3edee1f18e0157c05861564` | | OUSD/3CRV Curve Pool | `0x87650d7bbfc3a9f10587d7778206671719d9910d` | | ETH/OETH Curve Pool | `0x94b17476a93b3262d87b9a326965d1e91f9c13e7` | diff --git a/README.md b/README.md index 5e6d5ec8..6a5f516a 100644 --- a/README.md +++ b/README.md @@ -33,5 +33,5 @@ The documentation about the plugin is in [PLUGIN_SPECIFICATON.md](https://github The C source code is expected to be formatted with `clang-format` 11.0.0 or higher. ``` -clang-format -style=Google -i src/* +clang-format -i src/* ``` \ No newline at end of file diff --git a/fuzzing/fuzz_plugin.c b/fuzzing/fuzz_plugin.c index 82da199f..d34509a2 100644 --- a/fuzzing/fuzz_plugin.c +++ b/fuzzing/fuzz_plugin.c @@ -50,10 +50,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { return 0; } + context.next_param = 99; + init_contract.interfaceVersion = ETH_PLUGIN_INTERFACE_VERSION_LATEST; init_contract.selector = data; init_contract.pluginContext = (uint8_t *) &context; init_contract.pluginContextLength = sizeof(context); + init_contract.pluginSharedRO = &shared_ro; handle_init_contract(&init_contract); if (init_contract.result != ETH_PLUGIN_RESULT_OK) { diff --git a/src/handle_init_contract.c b/src/handle_init_contract.c index f5c6d75e..e62097f5 100644 --- a/src/handle_init_contract.c +++ b/src/handle_init_contract.c @@ -20,6 +20,8 @@ void handle_init_contract(ethPluginInitContract_t *msg) { context_t *context = (context_t *) msg->pluginContext; + bool is_fuzz_test = context->next_param == 99; + // Initialize the context (to 0). memset(context, 0, sizeof(*context)); @@ -44,6 +46,16 @@ void handle_init_contract(ethPluginInitContract_t *msg) { break; case CURVE_POOL_EXCHANGE: case CURVE_POOL_EXCHANGE_UNDERLYING: + if (is_fuzz_test) { + // Workaround to revert during fuzz tests. + // Since `txContent->destination` isn't populated during fuzz tests, + // it'll throw a null pointer exception causing the fuzz tests + // to fail on CI. Right way would be to pass some value to + // `txContent->destination` but that breaks a lot of + // other fuzz tests. + msg->result = ETH_PLUGIN_RESULT_ERROR; + return; + } if (memcmp(CURVE_OETH_POOL_ADDRESS, msg->pluginSharedRO->txContent->destination, ADDRESS_LENGTH) == 0 || @@ -53,12 +65,10 @@ void handle_init_contract(ethPluginInitContract_t *msg) { context->next_param = TOKEN_SENT; break; } - PRINTF("Missing selectorIndex: %d\n", context->selectorIndex); msg->result = ETH_PLUGIN_RESULT_ERROR; return; case UNISWAP_V3_ROUTER_EXACT_INPUT: - context->skip += 2; - context->next_param = BENEFICIARY; + context->next_param = PARAM_OFFSET; break; case UNISWAP_ROUTER_EXACT_INPUT_SINGLE: break; diff --git a/src/handle_provide_parameter.c b/src/handle_provide_parameter.c index ac167773..36284f28 100644 --- a/src/handle_provide_parameter.c +++ b/src/handle_provide_parameter.c @@ -32,7 +32,7 @@ static void handle_token_sent_curve_pool(ethPluginProvideParameter_t *msg, conte ADDRESS_LENGTH) == 0; if (is_oeth) { - switch (msg->parameter[PARAMETER_LENGTH - 1]) { + switch (U2BE(msg->parameter, PARAMETER_LENGTH - 2)) { case 0: memcpy(context->contract_address_sent, NULL_ETH_ADDRESS, ADDRESS_LENGTH); break; @@ -44,7 +44,7 @@ static void handle_token_sent_curve_pool(ethPluginProvideParameter_t *msg, conte break; } } else { - switch (msg->parameter[PARAMETER_LENGTH - 1]) { + switch (U2BE(msg->parameter, PARAMETER_LENGTH - 2)) { case 0: memcpy(context->contract_address_sent, OUSD_ADDRESS, ADDRESS_LENGTH); break; @@ -85,7 +85,7 @@ static void handle_token_received_curve_pool(ethPluginProvideParameter_t *msg, c // determine token addresses of curve pools based on contract address and // value of i/j params if (is_oeth) { - switch (msg->parameter[PARAMETER_LENGTH - 1]) { + switch (U2BE(msg->parameter, PARAMETER_LENGTH - 2)) { case 0: memcpy(context->contract_address_received, NULL_ETH_ADDRESS, ADDRESS_LENGTH); break; @@ -97,7 +97,7 @@ static void handle_token_received_curve_pool(ethPluginProvideParameter_t *msg, c break; } } else { - switch (msg->parameter[PARAMETER_LENGTH - 1]) { + switch (U2BE(msg->parameter, PARAMETER_LENGTH - 2)) { case 0: memcpy(context->contract_address_received, OUSD_ADDRESS, ADDRESS_LENGTH); break; @@ -118,13 +118,15 @@ static void handle_token_received_curve_pool(ethPluginProvideParameter_t *msg, c printf_hex_array("TOKEN RECEIVED: ", ADDRESS_LENGTH, context->contract_address_received); } +// deposit(uint256,address) +// redeem(uint256,address,address) static void handle_wrap_and_unwrap(ethPluginProvideParameter_t *msg, context_t *context) { switch (context->next_param) { - case AMOUNT_SENT: // path[1] -> contract address of token received + case AMOUNT_SENT: handle_amount_sent(msg, context); context->next_param = BENEFICIARY; break; - case BENEFICIARY: // path[1] -> contract address of token received + case BENEFICIARY: handle_beneficiary(msg, context); context->next_param = NONE; break; @@ -138,6 +140,7 @@ static void handle_wrap_and_unwrap(ethPluginProvideParameter_t *msg, context_t * } } +// deposit() static void handle_zapper_deposit_eth(ethPluginProvideParameter_t *msg, context_t *context) { switch (context->next_param) { case NONE: @@ -149,6 +152,7 @@ static void handle_zapper_deposit_eth(ethPluginProvideParameter_t *msg, context_ } } +// depositSFRXETH(uint256,uint256) static void handle_zapper_deposit_sfrxeth(ethPluginProvideParameter_t *msg, context_t *context) { switch (context->next_param) { case AMOUNT_SENT: @@ -213,6 +217,7 @@ static void handle_vault_redeem(ethPluginProvideParameter_t *msg, context_t *con } // exchange(int128 i,int128 j,uint256 _dx,uint256 _min_dy) +// exchange_underlying(int128 i,int128 j,uint256 _dx,uint256 _min_dy) static void handle_curve_pool_exchange(ethPluginProvideParameter_t *msg, context_t *context) { switch (context->next_param) { case TOKEN_SENT: @@ -249,19 +254,25 @@ static void handle_curve_router_exchange(ethPluginProvideParameter_t *msg, conte context->next_param = TOKEN_RECEIVED; break; case TOKEN_RECEIVED: - PRINTF("Counter: %d\n", context->counter); context->counter += 1; - if (memcmp(&msg->parameter[PARAMETER_LENGTH - ADDRESS_LENGTH], - NULL_ETH_ADDRESS, - ADDRESS_LENGTH) == 0) { + if (context->counter % 2 == 0) { + handle_token_received(msg, context); + if (context->counter == 8) { + context->skip += 20 - context->counter; + context->counter = 0; + context->next_param = AMOUNT_SENT; + } else { + context->next_param = TOKEN_RECEIVED; + } + } else if (memcmp(&msg->parameter[PARAMETER_LENGTH - ADDRESS_LENGTH], + NULL_ETH_ADDRESS, + ADDRESS_LENGTH) == 0) { context->skip += 20 - context->counter; context->counter = 0; context->next_param = AMOUNT_SENT; - } else { - handle_token_received(msg, context); - context->next_param = TOKEN_RECEIVED; } break; + case AMOUNT_SENT: handle_amount_sent(msg, context); context->next_param = MIN_AMOUNT_RECEIVED; @@ -281,10 +292,29 @@ static void handle_curve_router_exchange(ethPluginProvideParameter_t *msg, conte // exactInput(tuple params) static void handle_uniswap_v3_exchange(ethPluginProvideParameter_t *msg, context_t *context) { + if (context->go_to_offset) { + if (msg->parameterOffset != context->offset + SELECTOR_SIZE) { + return; + } + context->go_to_offset = false; + } + switch (context->next_param) { + case PARAM_OFFSET: + // Jump to actual data offset + context->offset = U2BE(msg->parameter, PARAMETER_LENGTH - 2); + context->go_to_offset = true; + context->next_param = PATH_OFFSET; + break; + case PATH_OFFSET: + // Load path offset (but don't jump yet) + context->offset = + msg->parameterOffset + U2BE(msg->parameter, PARAMETER_LENGTH - 2) - SELECTOR_SIZE; + context->next_param = BENEFICIARY; + break; case BENEFICIARY: handle_beneficiary(msg, context); - context->skip += 1; + context->skip += 1; // Skip `deadline` context->next_param = AMOUNT_SENT; break; case AMOUNT_SENT: @@ -293,17 +323,19 @@ static void handle_uniswap_v3_exchange(ethPluginProvideParameter_t *msg, context break; case MIN_AMOUNT_RECEIVED: handle_min_amount_received(msg, context); + // Jump to the path offset + context->go_to_offset = true; context->next_param = PATH_LENGTH; break; case PATH_LENGTH: + // Note: Store the offset of the token received. + // But don't jump yet. context->offset = U2BE(msg->parameter, PARAMETER_LENGTH - sizeof(context->offset)); - PRINTF("OFFSET: %d\n", context->offset); context->next_param = TOKEN_SENT; break; case TOKEN_SENT: // first 20 bytes of path is token sent memcpy(context->contract_address_sent, msg->parameter, ADDRESS_LENGTH); - printf_hex_array("TOKEN_SENT: ", ADDRESS_LENGTH, context->contract_address_sent); context->skip = (context->offset - ADDRESS_LENGTH) / 32 - 1; context->next_param = TOKEN_RECEIVED; break; @@ -315,6 +347,11 @@ static void handle_uniswap_v3_exchange(ethPluginProvideParameter_t *msg, context context->next_param = TOKEN_RECEIVED_REST; break; case TOKEN_RECEIVED_REST: + if ((PARAMETER_LENGTH - (context->offset - ADDRESS_LENGTH) % PARAMETER_LENGTH) > 20) { + context->next_param = NONE; + break; + } + // copy rest of address in case it overflows into the next param memcpy(&context->contract_address_received[PARAMETER_LENGTH - (context->offset - ADDRESS_LENGTH) % diff --git a/src/plugin.h b/src/plugin.h index e2d1abd7..b5a255df 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -92,6 +92,8 @@ typedef enum { AMOUNT_SENT, MIN_AMOUNT_RECEIVED, BENEFICIARY, + PARAM_OFFSET, + PATH_OFFSET, PATH_LENGTH, UNEXPECTED_PARAMETER, NONE, @@ -115,7 +117,8 @@ typedef struct context_s { uint8_t decimals_received; uint8_t skip; - bool valid; + bool go_to_offset; // If set, will force the parsing to iterate through parameters until + // `offset` is reached. uint8_t amount_length; // For parsing data. diff --git a/tests/oeth/test_oeth_curve_swap.py b/tests/oeth/test_oeth_curve_swap.py index a42de5a9..e3443817 100644 --- a/tests/oeth/test_oeth_curve_swap.py +++ b/tests/oeth/test_oeth_curve_swap.py @@ -129,4 +129,29 @@ def test_oeth_curve_swap_multiple_oeth_to_eth(backend, firmware, navigator, test Web3.to_wei(0.941, "ether"), ]) + run_test(contract_curve_router, data, backend, firmware, navigator, test_name) + +def test_oeth_curve_swap_multiple_eth_to_oeth_diff_route(backend, firmware, navigator, test_name): + data = contract_curve_router.encodeABI("exchange_multiple", [ + [ + bytes.fromhex("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("94b17476a93b3262d87b9a326965d1e91f9c13e7"), + bytes.fromhex("856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3"), + ], + [ + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0] + ], + Web3.to_wei(1, "ether"), + Web3.to_wei(0.941, "ether"), + ]) + run_test(contract_curve_router, data, backend, firmware, navigator, test_name) \ No newline at end of file diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png new file mode 100644 index 00000000..8d84cc70 Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png differ diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png new file mode 100644 index 00000000..0791458f Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png differ diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png new file mode 100644 index 00000000..096a2e4c Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png differ diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png new file mode 100644 index 00000000..0b9c638e Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png differ diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png new file mode 100644 index 00000000..1492e09f Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png differ diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png new file mode 100644 index 00000000..1c9156c3 Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png differ diff --git a/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png new file mode 100644 index 00000000..ce795f34 Binary files /dev/null and b/tests/snapshots/nanos/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00002.png index c52eb7ef..d4bf280f 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00002.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00004.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_from_oeth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00002.png index ea439675..17c1e2c1 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00002.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00004.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00006.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00006.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png new file mode 100644 index 00000000..487ea10f Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png new file mode 100644 index 00000000..39492eaf Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png new file mode 100644 index 00000000..17c1e2c1 Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png new file mode 100644 index 00000000..a561172c Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png new file mode 100644 index 00000000..9cdfdf9d Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png new file mode 100644 index 00000000..570ce28d Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png new file mode 100644 index 00000000..65788722 Binary files /dev/null and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00002.png index c52eb7ef..d4bf280f 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00002.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00004.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00006.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00006.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_eth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00002.png index c52eb7ef..d4bf280f 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00002.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00004.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00006.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00006.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_oeth_to_reth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00002.png index 0d789883..8c66a87b 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00002.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00004.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00006.png b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00006.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_multiple_reth_to_oeth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00002.png b/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00002.png index ea439675..17c1e2c1 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00002.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00004.png b/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00004.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00006.png b/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00006.png and b/tests/snapshots/nanosp/test_oeth_curve_swap_to_oeth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_unwrap/00004.png b/tests/snapshots/nanosp/test_oeth_unwrap/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_unwrap/00004.png and b/tests/snapshots/nanosp/test_oeth_unwrap/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_unwrap/00006.png b/tests/snapshots/nanosp/test_oeth_unwrap/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_unwrap/00006.png and b/tests/snapshots/nanosp/test_oeth_unwrap/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00004.png b/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00004.png and b/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00006.png b/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00006.png and b/tests/snapshots/nanosp/test_oeth_unwrap_different_beneficiary/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00002.png b/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00002.png index 2d552caa..94162cea 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00002.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00002.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00004.png b/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00004.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00006.png b/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00006.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_frxeth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00004.png b/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00004.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00006.png b/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00006.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_reth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00004.png b/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00004.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00006.png b/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00006.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_steth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00004.png b/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00004.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00006.png b/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00006.png and b/tests/snapshots/nanosp/test_oeth_vault_mint_weth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_redeem/00003.png b/tests/snapshots/nanosp/test_oeth_vault_redeem/00003.png index bfe25c80..1ffbfe26 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_redeem/00003.png and b/tests/snapshots/nanosp/test_oeth_vault_redeem/00003.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_redeem/00004.png b/tests/snapshots/nanosp/test_oeth_vault_redeem/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_redeem/00004.png and b/tests/snapshots/nanosp/test_oeth_vault_redeem/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_vault_redeem/00006.png b/tests/snapshots/nanosp/test_oeth_vault_redeem/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_vault_redeem/00006.png and b/tests/snapshots/nanosp/test_oeth_vault_redeem/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_wrap/00004.png b/tests/snapshots/nanosp/test_oeth_wrap/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_wrap/00004.png and b/tests/snapshots/nanosp/test_oeth_wrap/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_wrap/00006.png b/tests/snapshots/nanosp/test_oeth_wrap/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_wrap/00006.png and b/tests/snapshots/nanosp/test_oeth_wrap/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00004.png b/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00004.png and b/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00006.png b/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00006.png and b/tests/snapshots/nanosp/test_oeth_wrap_different_beneficiary/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00004.png b/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00004.png and b/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00006.png b/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00006.png and b/tests/snapshots/nanosp/test_oeth_zapper_deposit_eth/00006.png differ diff --git a/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00004.png b/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00004.png and b/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00004.png differ diff --git a/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00006.png b/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00006.png and b/tests/snapshots/nanosp/test_oeth_zapper_deposit_sfrxeth/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00002.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00002.png index e1599663..cf2c9115 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00002.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00004.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00006.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00002.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00002.png index fb7370f8..cfd41d49 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00002.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00002.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00002.png index 84aea411..d3a57e6a 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00002.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_from_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00002.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00002.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00004.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00006.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00002.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00002.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00002.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00002.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_curve_swap_to_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00002.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00002.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00004.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00006.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00002.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00002.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00002.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00002.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_to_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00002.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00002.png index e1599663..cf2c9115 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00002.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00004.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00006.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00002.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00002.png index 68d3a5dc..997aff51 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00002.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00002.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00002.png index cb08ae9a..6e537c5c 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00002.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_flipper_flip_with_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00002.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00002.png index 4211ee7e..96c05715 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00002.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00004.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00006.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00002.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00002.png index 42d3bad0..007dd0bd 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00002.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00002.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00002.png index bfcd2610..fa6a3ea7 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00002.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_from_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00002.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00002.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00004.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00006.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00002.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00002.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00002.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00002.png index ab52e6b6..b6b7cf0e 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00002.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00002.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_univ3_swap_to_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_unwrap/00004.png b/tests/snapshots/nanosp/test_ousd_unwrap/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_unwrap/00004.png and b/tests/snapshots/nanosp/test_ousd_unwrap/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_unwrap/00006.png b/tests/snapshots/nanosp/test_ousd_unwrap/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_unwrap/00006.png and b/tests/snapshots/nanosp/test_ousd_unwrap/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00004.png b/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00004.png and b/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00006.png b/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00006.png and b/tests/snapshots/nanosp/test_ousd_unwrap_different_beneficiary/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00004.png b/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00004.png and b/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00006.png b/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00006.png and b/tests/snapshots/nanosp/test_ousd_vault_mint_dai/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00004.png b/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00004.png and b/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00006.png b/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00006.png and b/tests/snapshots/nanosp/test_ousd_vault_mint_usdc/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00004.png b/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00004.png and b/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00006.png b/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00006.png and b/tests/snapshots/nanosp/test_ousd_vault_mint_usdt/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_redeem/00003.png b/tests/snapshots/nanosp/test_ousd_vault_redeem/00003.png index 977ff24a..d9eddf39 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_redeem/00003.png and b/tests/snapshots/nanosp/test_ousd_vault_redeem/00003.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_redeem/00004.png b/tests/snapshots/nanosp/test_ousd_vault_redeem/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_redeem/00004.png and b/tests/snapshots/nanosp/test_ousd_vault_redeem/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_vault_redeem/00006.png b/tests/snapshots/nanosp/test_ousd_vault_redeem/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_vault_redeem/00006.png and b/tests/snapshots/nanosp/test_ousd_vault_redeem/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_wrap/00004.png b/tests/snapshots/nanosp/test_ousd_wrap/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_wrap/00004.png and b/tests/snapshots/nanosp/test_ousd_wrap/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_wrap/00006.png b/tests/snapshots/nanosp/test_ousd_wrap/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_wrap/00006.png and b/tests/snapshots/nanosp/test_ousd_wrap/00006.png differ diff --git a/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00004.png b/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00004.png index c2c9b769..9cdfdf9d 100644 Binary files a/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00004.png and b/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00004.png differ diff --git a/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00006.png b/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00006.png index a58590b9..65788722 100644 Binary files a/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00006.png and b/tests/snapshots/nanosp/test_ousd_wrap_different_beneficiary/00006.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png new file mode 100644 index 00000000..487ea10f Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png new file mode 100644 index 00000000..39492eaf Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png new file mode 100644 index 00000000..17c1e2c1 Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png new file mode 100644 index 00000000..a561172c Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png new file mode 100644 index 00000000..9cdfdf9d Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png new file mode 100644 index 00000000..570ce28d Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00005.png differ diff --git a/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png new file mode 100644 index 00000000..65788722 Binary files /dev/null and b/tests/snapshots/nanox/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00006.png differ diff --git a/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png new file mode 100644 index 00000000..725fb26c Binary files /dev/null and b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00000.png differ diff --git a/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png new file mode 100644 index 00000000..148be150 Binary files /dev/null and b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00001.png differ diff --git a/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png new file mode 100644 index 00000000..e5661473 Binary files /dev/null and b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00002.png differ diff --git a/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png new file mode 100644 index 00000000..cd2f5275 Binary files /dev/null and b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00003.png differ diff --git a/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png new file mode 100644 index 00000000..b1ff1b3a Binary files /dev/null and b/tests/snapshots/stax/test_oeth_curve_swap_multiple_eth_to_oeth_diff_route/00004.png differ