From f090f964180c04ee67494b6770c58de59e25cb78 Mon Sep 17 00:00:00 2001 From: Manoj Patra Date: Fri, 20 Oct 2023 02:30:35 +0530 Subject: [PATCH] backward compatible --- src/handle_finalize.c | 2 + src/handle_init_contract.c | 2 + src/handle_provide_parameter.c | 2 + src/handle_query_contract_id.c | 2 + src/handle_query_contract_ui.c | 2 + src/main.c | 14 ++++++ src/staderlabs_plugin.h | 4 +- tests/networks/ethereum/staderlabs/b2c.json | 10 +++++ .../00000.png | Bin 0 -> 374 bytes .../00001.png | Bin 0 -> 362 bytes .../00002.png | Bin 0 -> 396 bytes .../00003.png | Bin 0 -> 494 bytes .../00004.png | Bin 0 -> 473 bytes .../00005.png | Bin 0 -> 366 bytes .../00006.png | Bin 0 -> 366 bytes .../00007.png | Bin 0 -> 480 bytes .../00008.png | Bin 0 -> 349 bytes .../00009.png | Bin 0 -> 414 bytes .../00010.png | Bin 0 -> 349 bytes .../00000.png | Bin 0 -> 374 bytes .../00001.png | Bin 0 -> 335 bytes .../00002.png | Bin 0 -> 319 bytes .../00003.png | Bin 0 -> 484 bytes .../00004.png | Bin 0 -> 496 bytes .../00005.png | Bin 0 -> 409 bytes .../00006.png | Bin 0 -> 366 bytes .../00007.png | Bin 0 -> 457 bytes .../00008.png | Bin 0 -> 353 bytes .../00009.png | Bin 0 -> 414 bytes .../00010.png | Bin 0 -> 349 bytes .../00000.png | Bin 0 -> 414 bytes .../00001.png | Bin 0 -> 434 bytes .../00002.png | Bin 0 -> 450 bytes .../00003.png | Bin 0 -> 789 bytes .../00004.png | Bin 0 -> 599 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 382 bytes .../00000.png | Bin 0 -> 414 bytes .../00001.png | Bin 0 -> 418 bytes .../00002.png | Bin 0 -> 355 bytes .../00003.png | Bin 0 -> 823 bytes .../00004.png | Bin 0 -> 599 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 382 bytes .../00000.png | Bin 0 -> 414 bytes .../00001.png | Bin 0 -> 430 bytes .../00002.png | Bin 0 -> 453 bytes .../00003.png | Bin 0 -> 789 bytes .../00004.png | Bin 0 -> 597 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 381 bytes .../00000.png | Bin 0 -> 414 bytes .../00001.png | Bin 0 -> 415 bytes .../00002.png | Bin 0 -> 353 bytes .../00003.png | Bin 0 -> 823 bytes .../00004.png | Bin 0 -> 598 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 381 bytes tests/src/eth/ethx/deposit_legacy.test.js | 42 ++++++++++++++++++ tests/src/eth/ethx/withdraw_legacy.test.js | 42 ++++++++++++++++++ 60 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00000.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00001.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00002.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00003.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00004.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00005.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00006.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00007.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00008.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00009.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00010.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00000.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00001.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00002.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00003.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00004.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00005.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00006.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00007.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00008.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00009.png create mode 100644 tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00010.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00000.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00001.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00002.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00003.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00004.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00005.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00006.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00000.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00001.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00002.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00003.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00004.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00005.png create mode 100644 tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00006.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00000.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00001.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00002.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00003.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00004.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00005.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00006.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00000.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00001.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00002.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00003.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00004.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00005.png create mode 100644 tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00006.png create mode 100644 tests/src/eth/ethx/deposit_legacy.test.js create mode 100644 tests/src/eth/ethx/withdraw_legacy.test.js diff --git a/src/handle_finalize.c b/src/handle_finalize.c index ff2f0e0..667100f 100644 --- a/src/handle_finalize.c +++ b/src/handle_finalize.c @@ -6,7 +6,9 @@ void handle_finalize(void *parameters) { switch (context->selectorIndex) { case ETHX_DEPOSIT: + case ETHX_DEPOSIT_LEGACY: case ETHX_REQUEST_WITHDRAW: + case ETHX_REQUEST_WITHDRAW_LEGACY: msg->numScreens = 2; break; diff --git a/src/handle_init_contract.c b/src/handle_init_contract.c index 8ee3a86..9e5bf5d 100644 --- a/src/handle_init_contract.c +++ b/src/handle_init_contract.c @@ -45,11 +45,13 @@ void handle_init_contract(void *parameters) { // EDIT THIS: Adapt the `cases`, and set the `next_param` to be the first parameter you expect // to parse. switch (context->selectorIndex) { + case ETHX_DEPOSIT_LEGACY: case ETHX_DEPOSIT: context->next_param = ACCOUNT_ADDR; context->ticker = "ETH"; break; + case ETHX_REQUEST_WITHDRAW_LEGACY: case ETHX_REQUEST_WITHDRAW: context->next_param = UNSTAKE_AMOUNT; context->ticker = "ETHX"; diff --git a/src/handle_provide_parameter.c b/src/handle_provide_parameter.c index b0c66f8..a5ca5f9 100644 --- a/src/handle_provide_parameter.c +++ b/src/handle_provide_parameter.c @@ -98,10 +98,12 @@ void handle_provide_parameter(void *parameters) { // EDIT THIS: adapt the cases and the names of the functions. switch (context->selectorIndex) { + case ETHX_DEPOSIT_LEGACY: case ETHX_DEPOSIT: handle_ethx_deposit(msg, context); break; + case ETHX_REQUEST_WITHDRAW_LEGACY: case ETHX_REQUEST_WITHDRAW: handle_ethx_request_withdraw(msg, context); break; diff --git a/src/handle_query_contract_id.c b/src/handle_query_contract_id.c index 0bb30a7..7b435ad 100644 --- a/src/handle_query_contract_id.c +++ b/src/handle_query_contract_id.c @@ -14,6 +14,7 @@ void handle_query_contract_id(void *parameters) { // EDIT THIS: Adapt the cases by modifying the strings you pass to `strlcpy`. switch (context->selectorIndex) { case ETHX_DEPOSIT: + case ETHX_DEPOSIT_LEGACY: case ETH_MATICX_SUBMIT: case POLYGON_CHILDPOOL_SWAP_MATIC_FOR_MATICX_VIA_INSTANT_POOL: case BSC_STAKEMANAGER_DEPOSIT: @@ -22,6 +23,7 @@ void handle_query_contract_id(void *parameters) { break; case ETHX_REQUEST_WITHDRAW: + case ETHX_REQUEST_WITHDRAW_LEGACY: case ETH_MATICX_REQUEST_WITHDRAW: case POLYGON_CHILDPOOL_REQUEST_MATICX_SWAP: case BSC_STAKEMANAGER_REQUEST_WITHDRAW: diff --git a/src/handle_query_contract_ui.c b/src/handle_query_contract_ui.c index 6f3760c..ea8a8ec 100644 --- a/src/handle_query_contract_ui.c +++ b/src/handle_query_contract_ui.c @@ -150,10 +150,12 @@ void handle_query_contract_ui(void *parameters) { break; case ETHX_DEPOSIT: + case ETHX_DEPOSIT_LEGACY: handle_ethx_deposit(msg, context); break; case ETHX_REQUEST_WITHDRAW: + case ETHX_REQUEST_WITHDRAW_LEGACY: handle_ethx_request_withdraw(msg, context); break; diff --git a/src/main.c b/src/main.c index a26575c..6906a18 100644 --- a/src/main.c +++ b/src/main.c @@ -118,6 +118,18 @@ static const uint32_t ETHX_REQUEST_WITHDRAW_SELECTOR = 0x1f7ec122; // Selector: 0x379607f5 static const uint32_t ETHX_CLAIM_SELECTOR = 0x379607f5; +// Network: Ethereum +// Contract: StaderStakePoolsManager +// Method: function deposit(address _receiver) +// Selector: 0xf340fa01 +static const uint32_t ETHX_DEPOSIT_LEGACY_SELECTOR = 0xf340fa01; + +// Network: Ethereum +// Contract: UserWithdrawalManager +// Method: function requestWithdraw(uint256 _ethXAmount, address _owner) +// Selector: 0xccc143b8 +static const uint32_t ETHX_REQUEST_WITHDRAW_LEGACY_SELECTOR = 0xccc143b8; + // Array of all the different staderlabs selectors. Make sure this follows the same order as the // enum defined in `staderlabs_plugin.h` const uint32_t STADERLABS_SELECTORS[NUM_SELECTORS] = { @@ -136,6 +148,8 @@ const uint32_t STADERLABS_SELECTORS[NUM_SELECTORS] = { ETHX_DEPOSIT_SELECTOR, ETHX_REQUEST_WITHDRAW_SELECTOR, ETHX_CLAIM_SELECTOR, + ETHX_DEPOSIT_LEGACY_SELECTOR, + ETHX_REQUEST_WITHDRAW_LEGACY_SELECTOR, }; // Function to dispatch calls from the ethereum app. diff --git a/src/staderlabs_plugin.h b/src/staderlabs_plugin.h index f51c0d6..45e81b1 100644 --- a/src/staderlabs_plugin.h +++ b/src/staderlabs_plugin.h @@ -5,7 +5,7 @@ #include // Number of selectors defined in this plugin. Should match the enum `selector_t`. -#define NUM_SELECTORS 15 +#define NUM_SELECTORS 17 // Name of the plugin. #define PLUGIN_NAME "Staderlabs" @@ -28,6 +28,8 @@ typedef enum { ETHX_DEPOSIT, ETHX_REQUEST_WITHDRAW, ETHX_CLAIM, + ETHX_DEPOSIT_LEGACY, + ETHX_REQUEST_WITHDRAW_LEGACY, } selector_t; // Enumeration used to parse the smart contract data. diff --git a/tests/networks/ethereum/staderlabs/b2c.json b/tests/networks/ethereum/staderlabs/b2c.json index 2f90bf7..0cad120 100644 --- a/tests/networks/ethereum/staderlabs/b2c.json +++ b/tests/networks/ethereum/staderlabs/b2c.json @@ -26,6 +26,11 @@ "address": "0xcf5ea1b38380f6af39068375516daf40ed70d299", "contractName": "StaderStakePoolsManager", "selectors": { + "0xf340fa01": { + "erc20OfInterest": [], + "method": "deposit", + "plugin": "Staderlabs" + }, "0xb7482509": { "erc20OfInterest": [], "method": "deposit", @@ -37,6 +42,11 @@ "address": "0x9f0491b32dbce587c50c4c43ab303b06478193a7", "contractName": "UserWithdrawalManager", "selectors": { + "0xccc143b8": { + "erc20OfInterest": [], + "method": "requestWithdraw", + "plugin": "Staderlabs" + }, "0x1f7ec122": { "erc20OfInterest": [], "method": "requestWithdraw", diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00000.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..8d84cc70fea8013b7e8b25c0982ce142fa103d5c GIT binary patch literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00001.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..1d263aad4d46ef0bdb1c12568e0009e9ccaafbc2 GIT binary patch literal 362 zcmV-w0hRuVP)m@xKZPP-0{(?kd%g!u7VKc53*zwCBk(KC6* zEITio%hy`B{0%_?C`l=qzUO6=p*bqew9SpFTXiW1%Gs2bJ0pvau5Wo)HtO9*XLBcF z2b2jbGtRDsrRUIW5$PXSf~sm$-I@&A8TGQvmixHJ;NiR;G)hjKM#K(KDt29dA|MS^$^TbzlX%p8vRJ>o?y{y}&U zG>LVDyZ~;f!mgKTaZ>Xr#MdqmdL_u>Tw0t|FbA{*dk6IBxn{j!$lUt<8 literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00002.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4c243430c16700de9a151a5c0cee78af361bc82a GIT binary patch literal 396 zcmV;70dxL|P)0NB| zj2?hV@7!so!fF0K*YDOO`mL8}0hFSrpk6Ktc~eyO*a;%{3ef1MGm(3gbGW{8!2ncm zYB6YUdkIm_lzA>&gh|FfPnQ{{r+zamyKy@;_ zKMcXu@cv*BgGi8tBKddnB)oQR&iKZW#7{gi)ut%q#)(c*HjazR_E5#`>{=ba(+=DF zYRkpGtKnBM+>W8MP1)$RVPN*{(@NqFV(mbb@ie4x!cg}Gz_|cVEiF8dVraGVbCWoG zal)q2&JG1 zTDb_;uK;#Fc3pD$9N%D|ZE(%4XZ--6v;Z5sZ@IeoPJTA^Q#1H1J-epo2F}=o;b7D_ zq82LP(k98UPwB>vRP7$@?>_d*4Er@VARTRYjefbz0B8zt9Q~`oggT?YnH+;N$t-jx zpFuvD$MjgHpTm$0>_GntQzRuDBF9AP3pGG-hc&y9;OGJL9cnEVK}!WjstAp#wcDo4 zD@AEmtuY$ZS=B=4m+;&oZFerf8oe$?J*SNW2DqTJ+n_)ECEPwlEi2Jx6IO0795rD! zfmqThD`w2YL&NDD0BRpB$}1MQl3-WHA|Sn@zsriz7IyO(Vofb5Qa_1DzrybSv!Khp zeCB7f`~E!u70V(h^Heur7PE$@#-#p=Z%wExz>+tOxs|%w3d`*lNlFThuh7FHvXeD{ k&9S;YNs=T?E5~T3WNlagH?PM!Dsr6a+yK1YLOCzn?}u?Vbpipg{Sw z-SnP}6N#2__i1OhuU)mP%u!7@+*1CWZtw40i6$(R|1a<@GydQud2O&o^DTW=A-DTV z^q&FneRM;rig`hT^2sD7RzBzY(|-WOvXD2ry{b&`Y?WMw%SLuyEBIP^S~56N_R~I_ za6TBXT!@xZph}x212_C~V;8En9?+GF2=t-pY$u9<5f$T%b_v%P6!b6K_j|1|zM4>s2`bOikDT7MV){ z+jV!m;icF0Q-oGV%9yT)8vte{b%Ep!~nR)MyhRD4C$v=4IQj@ zcqCTagx!4-RuFRmO^@iytgws>EPWd#SpE%j|Fb4S>#%18K@bE%5S)W2n%`KPy#DSd P00000NkvXXu0mjfc2v~s literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00005.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..d00ffb987ac091a0c0367b1df5856e4ae2338ea8 GIT binary patch literal 366 zcmV-!0g?WRP)@BhHN*e+ZcftDY!<>=0rWf7>wwg^&|g%CmrG2#9C{RZ`nKS}aPqCnm{ z-t|myEYUn(Z8d)Er>S<8VAZSj+Mm5ThwVDoAr)0G^AG0#H4tY^)L2073{Mgb;$n2M*B)WT+%Yr2qf` M07*qoM6N<$f*)I<(*OVf literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00006.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..1595331ec79f428bc693d2355f40310a007a155a GIT binary patch literal 366 zcmV-!0g?WRP)x=m}#p4T>jn# zcFDrT4{=P*uQEC{;^F17=e`|;ff3;F)j)hP#Sv4~Y^@$FzG+0BWpW2(Y)$!?(rInE z#J+xB+7Ixh`*DZ&l8{d`F2@Y|lAaZ;6 zNxK7bI!|!l2!hpc|643`8DIO;n1|>)tbbvDJl%UEv00000006AO7a23LaXAb4dH?_b M07*qoM6N<$f{Wdk?*IS* literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00007.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..07b4b292bfb48f482e9e77fd4f1f41d703620693 GIT binary patch literal 480 zcmV<60U!Q}P)U8j`_(D3RAP9oss@!G?KOZTjbose4fwyM;81>sD^6iT&#`CA^JKplHVr^MsmpvM4@QOBQ$&y$T#MZQ;sx@P zn862bV=1NRSYDE6Vh@YI#{nxKQ?^|=Vd08tYFZW(+GZy_xNov^ zE!_83|3~&k9exZ!5j?>AX=fDlj-z>)$lt(2IGe$9n~cY*FqARjoH+}32Zwm3A@cR! zPrC;|)47884*|G3yuX+jgPp`Kw3Gi%X4z0F*lJ!=mBc5%$69QZY!7US6kn27S@iXI z6xOKph}d{ySxcg(E33m(L(1YaW*ziAk56AO1>0|FZN;XW@Yoy8`aA8o8W-M#n~j$C z1o*+kF01JKO7+&L8XxmPMn4RE(@n~5DmKPaQgsAF`&SLXs5J}Ey?X!cnx{?g!y>Ro zIDrftvjTibd(kBCD>Ztt4FFH;*CS8<(m$<87=uE$AZ%5$QhQ&9w?7DiAP9ost9b!} W?Nu-wrfEC?0000fc literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00008.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..095bef49a6d473646060d540ebc791cc108177df GIT binary patch literal 349 zcmV-j0iyniP)?1K0y!psXD zQ*&2AM>j6B(Nfv#!~hwP;BD7jux7^WYVIaeIr*A0@+iR*P_Q-UV@{{F!m+;Diqd#l3$Q3D(0iczz vza-S*oMX?n28EioS000000MxJo%_6-iE0xfO00000NkvXXu0mjft}U2Z literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00009.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b GIT binary patch literal 414 zcmV;P0b%}$P)j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00010.png b/tests/snapshots/ethereum_ethx_nanos_legacy_request_withdraw_eth/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00000.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..8d84cc70fea8013b7e8b25c0982ce142fa103d5c GIT binary patch literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00001.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d7ed1c874775abf36c47a1f90864bc9a25ebb8 GIT binary patch literal 335 zcmV-V0kHmwP)DS2S*fONYK&pUA-$0H#QVd z6P9M2TnkBLQ*RdOZ&!kfYEzsF0_}u)NqS2$>T~c?9?vyQPCSOi3ScUJHCwB?2u0(nx&MK)NEVh{YK9WEH8}Zi5n12`VzMC10ssKuu9Rp4boT9aF01Rl=Nj-r z1E5L#+N?aI4RBNaTfb$s>VuX-yN2R8&A#E!5{{a zpbJIv?qs$N9kx^C%bYI!O-St#&C{l3QRR{Rk3=h5t=jDUkFg^4s66xYSS~jSpCvjU zLnmS9n0o1#DKr4i?Bo6VLfpOuMS}nYGs7ET(^j7JH)K6?6_)@20001h2o9C`mo4eT R%dP+b002ovPDHLkV1fkDi6;O6 literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00003.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2dc64cad7f39b7f0deca6396c306555751e7b4 GIT binary patch literal 484 zcmVyU=pRlT21vjCFdg}r|^2v>*qClhP1lE^|U z`E~L}T&{Lq`G)3JjN8w>?J#FPf(TR)s#CpSLUSPpDb$RDD@ebQqqS{nm4|}(h*5vs z2wUXSQ_UDOg5;zQ987VB66FvEdnN32POE%0^uI1lE1>!et*C@?APZ$`rd%ZpRHb04 zndQ=#gS*{#nYn1?az!(cO?Sy-unKylpyt?G!8#}cdeTvqF8iOU;erPYsU2cpfc;7A zN$iHd43Fq(DMB!$c1UXh$ixT1hIjN!Avqw;z83eyjr~bnFr9v1Kbjr6;E*5)f*=Tj a;KK_dqm{F>Y*`%u0000D)d z_D_8#*0DtMxZ68f?VqXaDt4>3D{hg0ZrA5`PNE4H+K z@(Wp#)LM*?WxAM%uhpj<*0srncz}VL6c8DSRlj zMV=f*@<@wd=y+`20#v0JO&AVrjoG&Wml!%yP}~1ZWC3z-ArAnUl#B|idmGLH)!=U* mTFXiW@IW9C2m}Iw74Qq7g>aFP)!(`R0000@BhHN*e+Zcqd$Ps7Ps?dSyXC)Q$#Gw0ssI2nDBgjekc8$Z%NT4)_|6t zuR4->dLk)aEj4cT-PF5C>eagOSLo@wz5jD3l5yeue_=?)mSYZjr|kA zj>l@3y87HJQ2tcq2W+V^_5moSh5TamuC6Ms$<3*reFh)p$7^^x5b+YugR$#aT%iVC z-Xt64^`2l?2d=@s_Oe&zaKFY1Qt|ey>Mzp-Ky&!R>dyuvHPm+oF^B}SP$b_XuS~J^ zs%vin%>pg*SDUoZlopXyV_GR~m<91)Fb7gMQc+4EH{Li$`m@06OE{MJaVHX#jxI1w zAWQ1ck+qHp0DZ=(1kxN$kBfZ*_C^-HQZL*Cz$&GfCFnqAJ+Lx=m}#p4T>jn# zcFDrT4{=P*uQEC{;^F17=e`|;ff3;F)j)hP#Sv4~Y^@$FzG+0BWpW2(Y)$!?(rInE z#J+xB+7Ixh`*DZ&l8{d`F2@Y|lAaZ;6 zNxK7bI!|!l2!hpc|643`8DIO;n1|>)tbbvDJl%UEv00000006AO7a23LaXAb4dH?_b M07*qoM6N<$f{Wdk?*IS* literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00007.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..c135a4bf2ba0e8090182811c9eae32903871d429 GIT binary patch literal 457 zcmV;)0XF`LP)Xv8K~nVzDpSTnqQL z&3`Fg9Je1sPy{z{A6D*ydW`1VL|!8PgiDzC-zM`hYa7Z4_|NQxdw@fnIT87L_hIz} zXgXJLe-i|&)BVZh9IPZ)p_O?4!~9ULJR&9KR*ccZ^hTTd5TtL(cJM}xsn%(s(+nj`r@YB%P!%>gE>!h|i8COdti%BHo2y1moi(;>g4jRwN zdWI1I=6wM?(a2vk?zJy9B-Z6E_Fz;qjAF_J49TM4TFe*aA@t~X)Qw+)M&+;^Ytc0Q z=)P%tDf>3Gsg_tGc0eqdukVOVk|arzB)KpjnXai{==?d!00000NkvXXu0mjf{E^Tk literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00008.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..7b71a4dc60e334fa58cceeeb897445fb5477d717 GIT binary patch literal 353 zcmV-n0iOPeP)Dg zT2>%gCYS@{Rl3oYue)LuDvVrrmfDqlCmJPSJE>_tvc^e;ty4^p1&l==Ke@nuvM{wF zW6s=V=*Z4xR(eieb)tg`$k1z7ov>=f9BLjGlU;m86?v7)2{3Hk^Knn7wC54~?(=E= z0DrPm+wF%7?tL=1jq#-$kCf5 zU;^Y9n8;uaXiT+_^7T-UIm502000000AsQOQH8rvE7&ib00000NkvXXu0mjf-Zq$c literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00009.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b GIT binary patch literal 414 zcmV;P0b%}$P)j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00010.png b/tests/snapshots/ethereum_ethx_nanos_legacy_stake_eth/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00000.png b/tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..487ea10fcfeb2f3e6b79239459672251d49addd7 GIT binary patch literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*3AN zP6z4u_!qS1sSB}!Yih~jXVmeR>UWyo2*}+tb=5kcPG7t4t5*k0R%7zLo^zw?2oNF$=BKNiuCP73l>4000000000000000 c005@>0}#_4dM5>zWdHyG literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00002.png b/tests/snapshots/ethereum_ethx_nanosp_legacy_request_withdraw_eth/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..d89b812b22ef90524da1dc5ddfc9b9172083255c GIT binary patch literal 450 zcmV;z0X_bSP)Q31IlGsZ>EFm;6BOE-qz30mr1Hlj;CdUB)008_qwbojzzFzbd8~VUpS0-+2#6oDz7-J7y~FhNrVbF(j_8BFV+LC`apr0Eoq|kl(wNA2grg_RS9S&L z#ZauP<{~Vzi$(ZQjUF%QAAKeO003N=--haKoVN??H+k)lM+bG`BFz!L00)WVs_MP3 zmn%q4#+RY|QegSLhjaaLK-o)W! zaYQHWr0I52!4dx4l9-Skzf;H875q2xu}P!;@jeqL#tW5FEKQ8q+NhkBVwFb zXt?SkLZI_Q*QVOZf%@hM{S-qph1j{f;uB~BkW3oVI#JSfobHfDTHJrX7&wLti6A3w#khj93ubmU31P^+!2c6y!BO*wvoI%PNC^M{00000cYgd;mQs!%IcKS5 zSmv8@{CPzWU?v;cy%OnwQcBL5EZ+2gIUhD{w}^ea^m26J7Maueb=GGgpQO_|y8TVBzcN3N{W}&xO^)1^tz!=Th?Ayv91O)>J1VbIL z?6xf@(F1vli}CM1y)6)p4C}kWm>Sl120n-cQ796e!;$pnwPr(=vYGx7X;CWFECp-2 zoK~q`Y$|<=ztv09sLW_WMph|l>L1x(W~-(Y?Rtw+ZZ#}l?`5p|(t}FOO?Yma-aqd@ zQKMfn?sCvlOd!36zq*XY1a?%nH0m#}k`2`lgR$jCI6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*41i&FGB@%5N8&E?!`QI21$39n#P|7Sw4!{Qni2p201)mc@?kk=Io`JI!oA~n zb>q(#ILSNgNxH&|G{L>%I-nx6LAt@4ALV)TR`!cjNBW!HipiCs)nU% zP!EsgWOPm25uHTSo2OYm0b_KoTH{%I~FX35=? z5C1#^004Ndd>9O#{XWk!n3)*7x~$u>p=U`RDK%54$;#^J81(7IXCyaQ#&ol!D_D01 zmMgEbg1o;a@yz|Rk>k|L&RC~XtvC6uvGb+e zMyB<{7)?#<2cr+}#42>BP9xI?Q_;Kt000000000000000006)=AD$fBFejj#@vnzOS-1{7w-79%w^%gdu9-Z$e-Zl8U{Q9~r_p|-XnjL-NW$ZF$ zQ|hJeNQw$C_;T~YWr6ejQ`hpVUG@^4zCg}M^oYf^-wvy1f7{j9WxSxjP_Xdv(xkWB zE}Xfta%B=z)QskYE9`6MUO0ZgBCXuvchQ!xxZIef-y5F2U797Fr}iR?TXP>LGXuk& z;9G`Q=JC0=dxuW7*7)9yy&~ChAgK>+D)11a~CkTFJEwP%I}`rbp>%&w-3t4=C|r*NTe*< w-y@v0XupKzi6dH5I%_S2AF=|yiwyiev#k(%)pR;>&0UbNr>mdKI;Vst0ELQ~ApigX literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00003.png b/tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2f308805845dfc05d23ef013fd432cddd8e1b1 GIT binary patch literal 823 zcmV-71IYY|P)ojTb;Ud9G-xC?cYhDC{LfADECF}QFrNQr64slvJi=2 zk#oRS`#C=WMLJG@=DQr(@UN`RJGYLsA|rB21A;!on~vbTDhXSkegcheP}hfA_Z0Z zR$Z)fR=`L)D$?cnH8tH}ha)^7%@dH^v4-@?9X4IhP7N8P9T-bX>?2dlEv3Rf4@5@)?4UxA`tQxBVZ z62Oyi%-)`yTX`b0uDCus$eK{8Pk?oJvreibj$<6OQ&g5NaQekK^mzS; zdLqwH>gpKqD@%^t%GcJ-Oug|0Y@}A)tHG&EK$EiQtAq0L@m=5GOJUY~qM#i)B6aCh ztyLzVDZN;g)rKPi>RSLNhW-@P6u3N%T6!UP1MsEFR4Bzu#J<`MeD`6M?0Gm!2qA}(7zSC{&o&Zo_@t<)z7SuY3ntMtdd_)SW(ygaX zd|0%I-4kFvN0Wt4LrYH`>B&QG34{*;1}HWvy`~EN?QN`002ovPDHLkV1kg& BgQWlf literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00004.png b/tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..e5979a2340b519cb2145f69a572e2391e817e2c6 GIT binary patch literal 599 zcmV-d0;v6oP)#Z7V=3twZruy zYO0h{wOKp1a>T-R&=;QOf*oBDe<#wp_IviIZHRn z^Z-sN%Merz?Jov4@C07S6YRsDaP^v^p-RpSuOcO42*Hvb zst>A+sFci=FLuA|dmAO6iC5if%&UxzdAgOJfc27mj@Vc466_?*L;Q0i{v-0AT|f8) z<1SrL%~pGG!P4tXMiggd)Sx(jF@g2c1uc35$ozOF8Ywy2i@DRru}I&!xo<{kmZw-@ zfGJml)faQ8JcSYYBYj_YL9;Gq-@fb}k^lNdbZ>L#Rbu0cy_Z-bPCzVKFaJSH00000 z01%8@-;`i7Jj7@TI&Mp_Xz2eVOlqQnCFr;;cZi_={4D lc()aI4*&oF0002MfnQ=qJ|p9#2qFLg002ovPDHLkV1fqn4YU9N literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00005.png b/tests/snapshots/ethereum_ethx_nanosp_legacy_stake_eth/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*O!pGnp(2>8Fl=n=R3`B1my0Sx@sLzr?1`j)vJRgt1S$|b>?o!d8tzw4(uji@DePk#C9 z82|vl=M!&)H+}*6d`$hv)*oUc_D^x!vfa=TgWqo5{nVgs_0%!n%bJ49^VS~R$cEiW zIjd|v0xaYEscP^hsZZXo0m{E$8du9RB6zEr=Uo@!dh_nCU}tg!SUqd1_WCK*OK4-` zvt5_}lXlX(Z8!NOW|GOi8zt3b-x+PN60^`sog~u+Q;}W(000000000000000003Z` YCvN;2;~T>V`~Uy|07*qoM6N<$f`RwRrvLx| literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00002.png b/tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..30f0cec80e926fecaf34a62e53c032a360d726fa GIT binary patch literal 453 zcmV;$0XqJPP)m|+-6$chslZtwYWWFQ#A!z3jD007{>DW#NB^!22#IMDa* z3cTg;#*O&dT>)DuCFk54H|Jb~EkS>`Ui6WcMU>gc{lv?hI|6DS=y=Y##@pRK(yqnG zFh7nGuXN}LaEKqWzU2_jeZuthqz(|%j_8BFV}dQaapq~xoq|kl(zuZ^xua*7uiX`} z7eleGnv1Z=E*9aW8r@&gKl)4n006jfa~rDnaHB0?zr$-MJUVEWFOntq1=vaK*H-U+ zN4cCdt2eTvSIx)?jCm1Erqf3fJGow}TaEa2e$}3%2=RvX6f@0C793X$z!%jp09ytO= z|3hiFcVPWj=v}Ew?b000000000000000fN6dK_Vkx|4#+RY|QegSLhjaaLK-o)W! zaYQHWr0I52!4dx4l9-Skzf;H875q2xu}P!;@jeqL#tW5FEKQ8q+NhkBVwFb zXt?SkLZI_Q*QVOZf%@hM{S-qph1j{f;uB~BkW3oVI#JSfobHfDTHJrX7&wLti6A3w#khj93ubmU31P^+!2c6y!BO*wvoIIqP)%PNC^M{00000cYgd;mQs!%IcKS5 zSmv8@{CPzWU?v;cy%OnwQcBL5EZ+2gIUhD{w}^ea^m26J7Maueb=GGgpQO_|yCJ1+hAL$<{Ug$%RH#`B)^s_o zQoYzz`WAnym!wgd(S(ewQqt5vvcJq$O)1*-7Ny*3SiauNSoNg`m6)6G+%&y^-hZM- zzhvCyprx2VdJTVd8H)+*sBUT0UtT2}svibp%Z+qoKc)4;Exjalq{T9RCkM>hv+TLY zR(4u6URs~+!fIp}kcCxtz!*|2ddT{U#$ikjsP)7B4EslYiv{DK!eN2zs4kV-=Q4f# z000000H4hswV@SzLKHlUJt4X{A5s^DweL!wP-EM-;6rx6zHD{~Cm|u)f>`t{w>~be j4?++C000000N=+SSC0It5SR!F00000NkvXXu0mjfq00wE literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00005.png b/tests/snapshots/ethereum_ethx_nanox_legacy_request_withdraw_eth/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000U4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00000.png b/tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..487ea10fcfeb2f3e6b79239459672251d49addd7 GIT binary patch literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*`A)An+(Cd;wGRXyFsSG+aKk5^W+(vbCyP`Np0*rxg?Evk&FBUJfl=~ z_&hj|kGEt^k8Z>Z*36cx*U<5o`Zq0Z2gvd~m#PlX!`EK>=GDQL%^0~iGB<|qfU1Y3 zYEciiRxWMNRLkAe_wS-p&=fB}EPYmF{z;KPL(T77`AP7ybNj~h`TaE0h}m-Y{1ouC?=}+(Bma z!x%%&=m%pC?nD;4Q)iHwgQXZ=0000000000000000001BnLqqS7Q=${?dAXg002ov JPDHLkV1k9Wz(W84 literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00002.png b/tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..41f278ca76cb703370dce9ea69f5d64b0439df62 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hnba4!+nDh2Vv{17Gk3-Tv@&|&(C;k{e0ojTb;Ud9G-xC?cYhDC{LfADECF}QFrNQr64slvJi=2 zk#oRS`#C=WMLJG@=DQr(@UN`RJGYLsA|rB21A;!on~vbTDhXSkegcheP}hfA_Z0Z zR$Z)fR=`L)D$?cnH8tH}ha)^7%@dH^v4-@?9X4IhP7N8P9T-bX>?2dlEv3Rf4@5@)?4UxA`tQxBVZ z62Oyi%-)`yTX`b0uDCus$eK{8Pk?oJvreibj$<6OQ&g5NaQekK^mzS; zdLqwH>gpKqD@%^t%GcJ-Oug|0Y@}A)tHG&EK$EiQtAq0L@m=5GOJUY~qM#i)B6aCh ztyLzVDZN;g)rKPi>RSLNhW-@P6u3N%T6!UP1MsEFR4Bzu#J<`MeD`6M?0Gm!2qA}(7zSC{&o&Zo_@t<)z7SuY3ntMtdd_)SW(ygaX zd|0%I-4kFvN0Wt4LrYH`>B&QG34{*;1}HWvy`~EN?QN`002ovPDHLkV1kg& BgQWlf literal 0 HcmV?d00001 diff --git a/tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00004.png b/tests/snapshots/ethereum_ethx_nanox_legacy_stake_eth/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e5c5da7fa164aed1477b8109b07b03ffed3c3a GIT binary patch literal 598 zcmV-c0;&CpP)#Z7V=3twZruy zYO0h{wOKp1a>T-R&=;QOf*oBDUlZwk_j~rJZHR4@1+}iG@?a?tIfs75Lf=go00000;4^WEhCVK;#wc`%x4tEe0gT>UjK1v*T#z#`fHTwp z+b-L3;ysZeF6JNo@j}p5GPJ)8LDkUyVqgPL;DtQFKI{osuPGX;8 zpvs6!$z1tj_shPwQSzC1)vd<7%Gj8vTj>c{FUjYKef2KEPQpCIKR4n(BLCU-gHJH- z(goFQwFeh0y}o2baaKkRit`r}ST9}Bq7^{q$1~AL$g|`p(ULGfJ~O#R>yV zxf-m#m^()(8&~YT#1e4=V##{>4_X2M0001h zVBGqq1e4(*MoZ9fTY^PH{~uve6BR5$$88B|0KNf;{|^X3JOl76gwS9Qa3;oIlv>2Q kt+;yt00000000jB0_$NrBee%$@&Et;07*qoM6N<$f+5!z8vp6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000U4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/src/eth/ethx/deposit_legacy.test.js b/tests/src/eth/ethx/deposit_legacy.test.js new file mode 100644 index 0000000..e00487d --- /dev/null +++ b/tests/src/eth/ethx/deposit_legacy.test.js @@ -0,0 +1,42 @@ +import "core-js/stable"; +import "regenerator-runtime"; +import { + waitForAppScreen, + zemu, + nano_models, + serializeTx, + txFromEtherscan, +} from "../../test.fixture"; + +const contractAddr = "0xcf5ea1b38380f6af39068375516daf40ed70d299"; +const pluginName = "staderlabs"; +const testNetwork = "ethereum"; +const chainID = 1; +// Test from replayed transaction: https://etherscan.io/tx/0x4e771017864ff34176c8c9fa62fe1950852933345f921dc5316c63554c9bc453 +const inputData = + "0x02f8980113850550de54dd850550de54dd8301c88a94cf5ea1b38380f6af39068375516daf40ed70d29987038d7ea4c68000a4f340fa01000000000000000000000000ad345b348bd84a4b42a5fde63feb7a29ef2af4e9c080a0a3adf22f4ce9fead664befb0ca33730f3bb8edb1a1d65a7f5275ac9a8622d29ea01a99e171740d723ee61049d7f0465f4e219fca86aaddf06bab02d3400f554242"; + +nano_models.forEach(function (model) { + test( + "[Nano " + model.letter + "] Legacy Deposit ETH", + zemu(model, async (sim, eth) => { + const serializedTx = txFromEtherscan(inputData); + + const tx = eth.signTransaction("44'/60'/0'/0", serializedTx); + + const right_clicks = model.letter === "S" ? 9 : 5; + + // Wait for the application to actually load and parse the transaction + await waitForAppScreen(sim); + // Navigate the display by pressing the right button `right_clicks` times, then pressing both buttons to accept the transaction. + await sim.navigateAndCompareSnapshots( + ".", + testNetwork + "_ethx_" + model.name + "_legacy_stake_eth", + [right_clicks, 0] + ); + + await tx; + }), + 50000 + ); +}); diff --git a/tests/src/eth/ethx/withdraw_legacy.test.js b/tests/src/eth/ethx/withdraw_legacy.test.js new file mode 100644 index 0000000..48ded2f --- /dev/null +++ b/tests/src/eth/ethx/withdraw_legacy.test.js @@ -0,0 +1,42 @@ +import "core-js/stable"; +import "regenerator-runtime"; +import { + waitForAppScreen, + zemu, + nano_models, + serializeTx, + txFromEtherscan, +} from "../../test.fixture"; + +const contractAddr = "0xcf5ea1b38380f6af39068375516daf40ed70d299"; +const pluginName = "staderlabs"; +const testNetwork = "ethereum"; +const chainID = 1; +// Test from replayed transaction: https://etherscan.io/tx/0xa7b2f78c84bc5528629d37b56856d47601c42f4d7f1505fa6767bcd090fb5044 +const inputData = + "0x02f8b30182059585053f837bd185053f837bd18304d7be949f0491b32dbce587c50c4c43ab303b06478193a780b844ccc143b80000000000000000000000000000000000000000000000056a30e2758fb0a40000000000000000000000000087bc2f2ba8c83f412fed5c3151de0ffbdc959984c080a01bf62d962c7e2d888df40f0a61dd9eb6c60ed01e1291ce15b9acbad154e0cf619fc470d4477df1e52cb4030e2f976dc13856d09010d164dd97a5532d59b9d413"; + +nano_models.forEach(function (model) { + test( + "[Nano " + model.letter + "] Legacy Request Withdraw ETH", + zemu(model, async (sim, eth) => { + const serializedTx = txFromEtherscan(inputData); + + const tx = eth.signTransaction("44'/60'/0'/0", serializedTx); + + const right_clicks = model.letter === "S" ? 9 : 5; + + // Wait for the application to actually load and parse the transaction + await waitForAppScreen(sim); + // Navigate the display by pressing the right button `right_clicks` times, then pressing both buttons to accept the transaction. + await sim.navigateAndCompareSnapshots( + ".", + testNetwork + "_ethx_" + model.name + "_legacy_request_withdraw_eth", + [right_clicks, 0] + ); + + await tx; + }), + 50000 + ); +});