From f2ff74176715a87c7d3c2d829da018c2f6b5465a Mon Sep 17 00:00:00 2001 From: pscott Date: Fri, 27 Aug 2021 14:47:59 +0200 Subject: [PATCH] Increase size of V --- src_common/ethUstream.h | 2 +- src_common/network.c | 12 +- src_features/signTx/cmd_signTx.c | 2 +- src_features/signTx/logic_signTx.c | 6 + src_features/signTx/ui_flow_signTx.c | 1 + tests/snapshots/chainid/nanos/accept.png | Bin 0 -> 582 bytes tests/snapshots/chainid/nanos/address_1.png | Bin 0 -> 809 bytes tests/snapshots/chainid/nanos/address_2.png | Bin 0 -> 837 bytes tests/snapshots/chainid/nanos/address_3.png | Bin 0 -> 567 bytes tests/snapshots/chainid/nanos/amount_1.png | Bin 0 -> 474 bytes tests/snapshots/chainid/nanos/amount_2.png | Bin 0 -> 759 bytes tests/snapshots/chainid/nanos/amount_3.png | Bin 0 -> 479 bytes tests/snapshots/chainid/nanos/fees.png | Bin 0 -> 561 bytes tests/snapshots/chainid/nanos/network.png | Bin 0 -> 628 bytes tests/snapshots/chainid/nanos/palm.png | Bin 0 -> 572 bytes tests/snapshots/chainid/nanos/review.png | Bin 0 -> 541 bytes tests/snapshots/chainid/nanox/accept.png | Bin 0 -> 674 bytes tests/snapshots/chainid/nanox/address.png | Bin 0 -> 1298 bytes tests/snapshots/chainid/nanox/amount.png | Bin 0 -> 866 bytes tests/snapshots/chainid/nanox/fees.png | Bin 0 -> 692 bytes tests/snapshots/chainid/nanox/network.png | Bin 0 -> 739 bytes tests/snapshots/chainid/nanox/review.png | Bin 0 -> 636 bytes tests/src/chainid.test.js | 298 ++++++++++++++++++++ 23 files changed, 317 insertions(+), 4 deletions(-) create mode 100644 tests/snapshots/chainid/nanos/accept.png create mode 100644 tests/snapshots/chainid/nanos/address_1.png create mode 100644 tests/snapshots/chainid/nanos/address_2.png create mode 100644 tests/snapshots/chainid/nanos/address_3.png create mode 100644 tests/snapshots/chainid/nanos/amount_1.png create mode 100644 tests/snapshots/chainid/nanos/amount_2.png create mode 100644 tests/snapshots/chainid/nanos/amount_3.png create mode 100644 tests/snapshots/chainid/nanos/fees.png create mode 100644 tests/snapshots/chainid/nanos/network.png create mode 100644 tests/snapshots/chainid/nanos/palm.png create mode 100644 tests/snapshots/chainid/nanos/review.png create mode 100644 tests/snapshots/chainid/nanox/accept.png create mode 100644 tests/snapshots/chainid/nanox/address.png create mode 100644 tests/snapshots/chainid/nanox/amount.png create mode 100644 tests/snapshots/chainid/nanox/fees.png create mode 100644 tests/snapshots/chainid/nanox/network.png create mode 100644 tests/snapshots/chainid/nanox/review.png create mode 100644 tests/src/chainid.test.js diff --git a/src_common/ethUstream.h b/src_common/ethUstream.h index 01b9f37..e73cc95 100644 --- a/src_common/ethUstream.h +++ b/src_common/ethUstream.h @@ -126,7 +126,7 @@ typedef struct txContent_t { txInt256_t chainID; uint8_t destination[ADDRESS_LENGTH]; uint8_t destinationLength; - uint8_t v[4]; + uint8_t v[8]; uint8_t vLength; bool dataPresent; } txContent_t; diff --git a/src_common/network.c b/src_common/network.c index 9c85618..23872ea 100644 --- a/src_common/network.c +++ b/src_common/network.c @@ -20,10 +20,11 @@ const network_info_t NETWORK_MAPPING[] = { {.chain_id = 137, .name = "Polygon", .ticker = "MATIC "}, {.chain_id = 250, .name = "Fantom", .ticker = "FTM "}, {.chain_id = 43114, .name = "Avalanche", .ticker = "AVAX "}, - {.chain_id = 11297108099, .name = "Palm Network", .ticker = "PALM "}}; + {.chain_id = 11297108109, .name = "Palm Network", .ticker = "PALM "}}; uint64_t get_chain_id(void) { uint64_t chain_id = 0; + char tmp[16] = {0}; switch (txContext.txType) { case LEGACY: @@ -38,17 +39,24 @@ uint64_t get_chain_id(void) { PRINTF("Txtype `%d` not supported while generating chainID\n", txContext.txType); break; } - PRINTF("ChainID: %d\n", chain_id); + u64_to_string(chain_id, tmp, sizeof(tmp)); + PRINTF("\n\nTMP: %s\n", tmp); return chain_id; } network_info_t *get_network(void) { uint64_t chain_id = get_chain_id(); + char tmp1[16]; + char tmp2[16]; for (uint8_t i = 0; i < sizeof(NETWORK_MAPPING) / sizeof(*NETWORK_MAPPING); i++) { + u64_to_string(NETWORK_MAPPING[i].chain_id, tmp1, sizeof(tmp1)); + u64_to_string(chain_id, tmp2, sizeof(tmp2)); + PRINTF("Comparing %s but wanted %s\n", tmp1, tmp2); if (NETWORK_MAPPING[i].chain_id == chain_id) { return (network_info_t *) PIC(&NETWORK_MAPPING[i]); } } + PRINTF("RETURNING NULL\n"); return NULL; } diff --git a/src_features/signTx/cmd_signTx.c b/src_features/signTx/cmd_signTx.c index 4e4fdbe..09c0f8c 100644 --- a/src_features/signTx/cmd_signTx.c +++ b/src_features/signTx/cmd_signTx.c @@ -59,7 +59,7 @@ void handleSign(uint8_t p1, } else { txContext.txType = LEGACY; } - PRINTF("TxType: %d\n", txContext.txType); + PRINTF("TxType: %x\n", txContext.txType); } else if (p1 != P1_MORE) { THROW(0x6B00); } diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index 82f640a..8e291cc 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -267,6 +267,7 @@ void prepareNetworkDisplay() { } else { // Network name found, simply copy it. strlcpy(strings.common.network_name, name, sizeof(strings.common.network_name)); + PRINTF("COPIED\n"); } } @@ -452,9 +453,14 @@ void finalizeParsing(bool direct) { // Compute maximum fee prepareFeeDisplay(); + PRINTF("Fees displayed: %s\n", strings.common.maxFee); // Prepare chainID field prepareNetworkDisplay(); + PRINTF("Network bytes: %.*H\n", + sizeof(strings.common.network_name), + strings.common.network_name); + PRINTF("Network: %s\n", strings.common.network_name); bool no_consent; diff --git a/src_features/signTx/ui_flow_signTx.c b/src_features/signTx/ui_flow_signTx.c index b508ee5..7b47212 100644 --- a/src_features/signTx/ui_flow_signTx.c +++ b/src_features/signTx/ui_flow_signTx.c @@ -224,6 +224,7 @@ void ux_approve_tx(bool fromPlugin) { uint64_t chain_id = get_chain_id(); if (chainConfig->chainId == ETHEREUM_MAINNET_CHAINID && chain_id != chainConfig->chainId) { + PRINTF("ADDED GET CHAIN ID\n"); ux_approval_tx_flow[step++] = &ux_approval_network_step; } diff --git a/tests/snapshots/chainid/nanos/accept.png b/tests/snapshots/chainid/nanos/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..3158ea690450f2b8c85c12004b002b02e7b02539 GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfj3Yx;TbZFupw)IO&lagUi8i zu2=uq*Yz9Se)!g*VK4JBV-C&WKWoz`S-k14IyUoMm0IWFIu4EW+>4RtRSIvkw{qJ) z-k{BNYMKd;QTzYAL~p5OZSof#4llR(=qVMJ($*$Ab77)uTE-4V=fhVFPUOsN*u=_P zev*f``Ha_Lh0T`?P5_w@bmoG=iJGR?wG$oFmOfn9wp(f$o7BG*4~6I6nAJ9Y(#_4S zx*0Q4Cd`zYu+#gQ-puxsHA;+6txb81;;$K;SOc`)`Eb{n3mcS-P1XR-G*4O9=9zYy zWlA>hi9IogRX%T%Vw>52vEj_tR;Wnvk2E8bnCKl>8qOS+%J|{VJNeAR_7fKhJRN>6 zWt_R(#K%Y*B*bf?@cHzid?OPZ*R-q|Qfe~~OJ_JdGiQ7n#BAiBxx@R}2R5LKwiNib zwJkq!XF{bkuSv~rHmSN0W~1w3?WueMPz z$jMOtJF#s}Y?8nbo644w2lP(7Qu7&Lh$$GG`0$>%lOd6E?`G%PjEacEho#sgfuXFQ zeWOb_8W?6gy!z_Ez}=wqxl_z;<{4*T7^Tcp+APW)4b*$#gTTy%593WQI2=|m1}X&# zr~*UES~!4j_tt_NTU!sW)0HX9eYhc;yFK9u$bQ|Tj}*;XgammwB9|D81-LZ`XFR^n$fF;SI`v$~Bw#9iRXBdhZ99sk z8`td4mwb9bhHPRif?hDQUYA`V<=)BC+XvR2WdHhQH%(=F&8$W! zMzihGN~OCp&ZyB>K|(3A9qk4;oWdE&K?p9d1`WGy=_LX@LX2!min2l=M2slbD{MUb5t%PAS0uT7^VLjsV|_GCBElca4UkexH1riZL?{w_s8D zhPh}VMWu?qg17w-P`Ca1BSD&uhCu^u-mehg4xN2^R41JPWs5RGq$;lUv|0~4VA#RtV2sDi0w4xX;L}5VF-pN5>w{FKA#Ksj z(n4Y$PT<%Aoev$v98_+>(id8Y3Br!Sz#gK4J6t=cyPQhMiQAOXUrtXmk-?m1hO!Wp) dMc)c+e?_|s$wq~xc@nMwFF&VHJ)V8j@(=l|VF&;K literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/address_2.png b/tests/snapshots/chainid/nanos/address_2.png new file mode 100644 index 0000000000000000000000000000000000000000..93c90c542343a4423166f143ee5f43f335c73b96 GIT binary patch literal 837 zcmXAo4M-DV7{_;A%@R)~MB5oQ6F(yHVLVt$ZA=)^QU zBa$mqOLSqW0}B(ikSSa-LTA~M^?~9*LQSM{U?0zWaUbu!FYohz{?G4uuQ5L_n+PNW zB@zjt%~2P?XoE+-Qws0-{S~ni2_B?XXBJwqm5I{@W!f;+L`=i;zdOFE7GI3q(@a%%ggCfQn@u^+iip^<%vKAXE_sg2^OTwK8cYgpA)QlwvHdYYcoX z2bgK!RAU5Mt$@`d>q?fj?;F7Qi1_QVD(7qn&>7r*=L5+dHSVGAOCb#lr3w}pAa_-p zlo_~48)j3Oa(4=Ih)@|!9sq;O08x*=RR=>ZP7Ur#7=~;jQXTRs>{ZCq#E)j6REz_9 zh=eA{H+q2|PIY6bIx&VnoGuofiBqpCec?p6Uhv)k^ddd4^G&t%9 zY-k2o(470o9Kb|1c*OH30!6??u5JhP6bM<+K|&{NI5fW_YOc}VaBX4v;R9>6F}@>e b9;QD-q}la_C0C<6;P;SdHF@d*Woi9CJYZeG literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/address_3.png b/tests/snapshots/chainid/nanos/address_3.png new file mode 100644 index 0000000000000000000000000000000000000000..402c20d84b73864383ebc9f5a2cc87b175f5db3a GIT binary patch literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfjh}ba4!+V0?Qpu$}+Z;wl?0GvNM-UO}LpM zky5uhal%ZHQK4dSYZ+%cwzcJ7bU5q>gz}StoRy3-c_mXaD%7>#FL-$Sd3dKc15MFpd>Y7XB)^&w=$kU2LncsOmxlb>jgobGRf=9re@@GMm9+yX{PDZj-Jy`?7n3}800mQ0zj@S#rFxit?V zY9vzH*g&X^m)&T0TkK)KXTe7HH&5L>$-{f%jTA&~p9|0|Hc6=omCG4t=4akG$zuex zjEj5ywT3f(ZEfB_i$K!nlAiKNExR6J$vksm;;;I!xRs1EnSr`~8c9mA&1`Oi>s-l} z!Uq&t$T%}xFkqgkf^qF4#+mzpxPBeu%yjPaQWIwCxwW;WGo5l~HoDwus_=QkhYJm7 zN(zlkY;E4uAX2Cbdh_u!?T;G+*9 literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/amount_2.png b/tests/snapshots/chainid/nanos/amount_2.png new file mode 100644 index 0000000000000000000000000000000000000000..11ae75e8391d69f363be24e20c136f0ee32b13d0 GIT binary patch literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi@&ba4!+V0?Qp&`&v1#O2^* z)#v}j=g8l@cDdkcYoY6pnS>%$F{b` zI|@>Gt&L20W?nQ%abpIlU7F~gmKh->HuL_gLl;l>u%%3EyV!6h!{M18P*ySp$N;L7 zzqH{5k0j70KI!{w8E3k-waKq!oC#Fd$75t7bF@`C)bY?cP=5SXJ5Ka6+Wjt_GC6%9`D!IrY`NDl40?;i1&oe%^$OQc$deoVw}03 zQ{y~P)v7kvXQ8~^XMn+A4Ww2}O}GiP)$MTKnG6sG-b{T(V_>|+T?K~mnM)fkf6z1XW;Sw81BOR1&|&@D?$YFcvsLlQ$7&?QRF zAYZnfnGM9i5S+g#@x&fi2TR*Ey_cPDTi9+vP`{bucKb|_So<*tn4lRvUHx3vIVCg! E0D4U}bN~PV literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/amount_3.png b/tests/snapshots/chainid/nanos/amount_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e0420108494b969f9c050ba46e44f5c255fa1f1b GIT binary patch literal 479 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCjba4!+V0?Qpu2D;LWW?VAh6@j^#SRf&uFm zFwXq%#B9{w=J;$fTS|sRN*i0sz0}8CQWF+FG?Loq!X}xLVUg+ZOre>_$Ry@yvv#({ z#D$3yB&FD9E@T8D=fj<67CyXCFk$Cv_HcD$6NTao2`Qlbgr7n{X`pTgkimXZd`A1P z6ifi~WzFubWt`c}!~0(r$Oo#noaorrwz{H#mG^YD%?_rS3lo2q%k2qfHc~e-QTUu{ zWWr;l&bxo2L{A6 zpc$$Q&a7aZ=`S^5=FwwDTiG{fTAa{P0E+>AleTGN&Gm*eIc8!R4ry-uX+WpU0lIOs tK)|%jT%F+C5zDr1^vO-0c?+mDU$Ss>;+dSqdccTd@O1TaS?83{1OS_=#2f$s literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/fees.png b/tests/snapshots/chainid/nanos/fees.png new file mode 100644 index 0000000000000000000000000000000000000000..8b996b58a1ec0043e05a39e52d99ce49521f5116 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfjh`ba4!+V0?S<_9P{D2Iqr| z`M&&@U&B6g#fK@G39{B^n`3qv9lc+r*7-Ezit)LUYsQ{B#}yaM+3K2ZJNZZvkF(KjQp%**X8vFMuy3Y$pJn*fOlp&zxsVZr@-t_oENk;j%b1Z8clX%t z2@4am9Mas`Bva&;F-ih;PH=qI#$)vU!4dV$9o}tij?bn`m8G<`?Us6%P@Cp96s={P z`Lx+Yp*Z((6tmIk_K6E0-a59FEoBPfj{eKPE=hD0RpVDNPHb6Mw<&;$TB@9Js* literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/network.png b/tests/snapshots/chainid/nanos/network.png new file mode 100644 index 0000000000000000000000000000000000000000..3242d61090a1ac9a33010ab74a3f5d7a8a151067 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfdtrx;TbZFupw)nD;nL#O2`S zma6~U@A~^b2*l5rCZjTQqwSIi)qmHlJ!9g!tB%ioSEb&0`n5p7yIYHP-}8L*Ny_Zr zOWEnul@`djG8Sdf?*0V0!slcduxHJrJ$;lzc8GZ_wTY$;%38e57Rvyt;NM`k1UO@%H-CN@_c4sXwPc$Sej zr}s?%goTVVm2X;TNlN__mz0_i3Dop#`iTn#D&~DYZEcFqhbKt#cAwd=1Y}q$Gd^9+ zmZGN)w8dRo-c+I3Qc_aN?pDQm#+j!*PhR+N@7QdRw7T=**}djQCNX~N7-yPGzdw1Q zz;Y#9%01x#yDW!i-X=OgpLL(fkT6=Dc%r9G(O9bO%yOv-KSP*-0`6&wnx$k=m_VwHrHp?oEp=oZ!N6Ml%76) d8-l85EV2@kIJCgK1elr_JYD@<);T3K0RUBB1SbFh literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/palm.png b/tests/snapshots/chainid/nanos/palm.png new file mode 100644 index 0000000000000000000000000000000000000000..297527f5e3668ea0dfd55c0cb0a77c151ce46060 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcKDx;TbZFupw)nWyZ@;C%3S zOT~ZY&&|OaJ;JwmcH~AB=?XrokM(#|qVuY$RSd+CVLG))H>yOj^Rgk&x{`x016Zc4 z&2V_;#%z>-wc(5y@3v(R=bO%%C!N#F!#h7~L1SC!;Z==nQh6qKGG<6+EO_X~%xhwk zabps9^`(Y0s}fb6nT>*(jZ74Pw28vzEQd58npAnA;mkCiZ60lH%cU|ZcCw{xdv@sF zi9M}6yeD!_Cag}$_#q}KH6ijOP+9+p3ma6$xB0ZSc>+;dR>aAgP9EOLXXH3FzDrH8 zeCxq%^qmdN>fz!2&UPInHid`xI-5L*HHU{+o=rX_!{TiWvynX8br36r+2}gkcc2}i zye1bM4o^4v<8ipTZF_b_CtJ!p-gy&$mKvQfW}LV) zm52AlpJ_b2>@)W(0ade0N=>L#7k{_%p*K+Izf)VA1-(C=WRZ-BymEd z+ycg#=gr>vKI=O3DZ$93W?LaYQ1QY>pxO%?Y&v*&<#TnOD>)zbXF6qTB9pT3N&!&M z3dWi9&EBnj=ymuLi`0al9u7OFx80vqnaz8`W+_{Wop8XrwTVif&jYR3;ytm)i1F!7 zQ=gO!i4>qCfqpe|KCDm-Wb*LtR{=T`$TJ28kKEHk+7p0Y?mPqLwy~wK0ofM}OcabW z9iDmf0+pZOF#@XZFL)Sha%TzS%!Lnq%!RyR`IX+l PXlL+r^>bP0l+XkKp5EPW literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/accept.png b/tests/snapshots/chainid/nanox/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cb8f9dc97401fd76908866c585e2855970e054 GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|`Dhba4!+V0?R!F;Cf*f#Kl2 zz`9HS>x1^Ee)QO$Vfbu^0!v}qD!w`k`M$>q(WeXTJ`~u@;XhuuVeMlEKe= zblsz=UEx}KqN4T7AKeXEai{i!%Tgzxia)bM_ATa`n%*oPvTsvYch@PPsOZ%25IgUu zb64ysVo=Xt1~b`u>dHrcsjGGb&(xZ?G6v}P_fHu7w#{EPBV^y~gWI+M5wpe3X{I-( znE_FRgX_`ywTm8U1B3SWgYMNkf_H|j2#E>N13ADC7-B&0K=|*IJ{(=SVug=rxv188 zEw!of3l|juJplBIck8LmK(EQxd^j3f6LvH`)JIEndRKht$2_|qhkz$*-qD4tTGeO+0_=QHHdzz8l2yrP6@|$#y XzklTVrji}Nw8!A->gTe~DWM4f-qkj) literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/address.png b/tests/snapshots/chainid/nanox/address.png new file mode 100644 index 0000000000000000000000000000000000000000..4228ae193adbfaa0a04cbc0fd31351cfaa89582b GIT binary patch literal 1298 zcmY*Ze@t6d6s}XiJYkra=ZX#6AI>egH6v}4i8`XREKsc7YkObI5>`!<2LGv0vMF8X z0B2cjMWgj*U>4wES>G#73C)I(u`RefOy2&$NMd9VaV#})nIkl2quMdgZBb+M+TLI1 zp6`6$cizXGwXuSEj!~&p73QV}JN);+_w^@B;rE9hySr7YCzi|&^|<4>J@2q{=p8P3b-rM=>x0T;ip1ToRoNRq}&t^xiGB zVo12&E4E1Gtd&!UqEeP_jHctGS(KVp!z2NLRmddcjV5^{ zols-<+?+aJjCky}L4Ule@jclvH0e@7EHUCw?KuFn_%B_D$0_Cd6d zCergsd{5#6F{78)NftJ$aFeiCN+f!t1qE3&9$1?Ib@m+!^i~SjhS|P6>>uTEK&z;MQ57jk?bHK61k%i7J-cMusPGtNou?gM9&xy5RY|I63So*X$~pRvnUAqj2bh4 zoJQEGi7;d_XqQ@ic~0m&*^b!7`AWpbA2%h~c$*=AHlQqT2C=d@=+*B8u zuAYjL4>KeP*FiP|-7kvP2dWg=x&WxETtiq$y9CODSPs~!KA4VxuyyC8i_Y?vkiu;* zN0mAhED%Qn=%6iiNbrbiyj21wz#9gTc>%QeStk2|`9p7v6-^ffR?@Hz{DG0VK?Gu5 zqu$v36mYyhuEs%4YxE7BsQv!e=hm}R#kM&XFtHGRSAu87p_69Q+Ok;ZXNrLu+I1pR0cJ4C zv1~P5|LRP3t>AhvnFwg1o0rJrg}&61M#>We^nkBk{t6oMSip~Hlj)>Wq*(@c!`)AH m+&AN~#eOH!)< literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/amount.png b/tests/snapshots/chainid/nanox/amount.png new file mode 100644 index 0000000000000000000000000000000000000000..a5592a6c410c0198aaf506d1610c176183154cd3 GIT binary patch literal 866 zcmZuwT}V@57(Qlb9Mb6G6t=PpqtUktCWNk)wxeTC*M82vG5VomH6lFywCG~?PjAc zhulIE1d*e!C}-e%6`n)uvf%ytO-l)(=(qWT zwYjZdL%)ot+V85qCsyW*bHh)zE*DLxW@kQZeK8g8%pChVez8fqT_eY8OpW)4vzzUSb1Ps?|mxjW5v%qb!cqI|Ds+0() z{KzEm4|+~Yp+QD@?`J;~nhcZNr#X7S(R7$XcKHU3!fzQq`H@&?W}@Dt8fapr|F~^E zia-^cQZP_Xf7#HRXu>c2GVL;#^38!%eqyy|S;Cc~WnVZWtr+{_7|K|?$n{E>u#+JIE>2?dB zJOUi-(D@`#lZbR7JcRJGR~;<|Xq%EjnIQYYZypDshfqlw1bgvyl3N7lHWpnOW_d@z zoFX}Y92_hFbcCl90f*27Q-D2Bm)tPC&^$_Vea1w924<<7vOXUp34z>|X(3vw(&I~l zc>kt6Vjq^|@Flmw(v+@VwpjP2w9_4JX~@W(%&|valG9NrSPa?IN)SCO`}|oAI6@(X wDz*}&o%`f6_65M^77>0!c(W-`N60a zqGcCUxYQ_gP6$vkKD2OY(W)ImGqu)*#9e&AyJE!(AJNID+(Ybw0}EHp2nku%wK6Fv z5F{NEceU3%;G^W!t}f4~>sJ7c77Z6&-gQ32M{E6yW8J|kEmnri(Ndeb^3nbUMWKa3 zmCJ$(R|Qm>Hp?%1bbrMRph@e4e)gQY9~fAfYF=jnG$vhCer3Q9!1jY5I`(h3GMfuRzjHZ}MtP}{;!vTV06<<)Ekx*$B{ zkBO*OIMDayJ3pQc`KJjqIXrOTC$P41iJbkut*16~O$|4>QP<5ib^fzs>_98{Mb)R? z_gtC;w0?z;7Emvky%OlWaG=copu(V^>qA%AST|UUi)!8ey)s~@R7}W; zZawww9xxV~<3qHzeGgk$Bo(tFBB@mL^r}i)x+cdvI>snuFW6P#xJb{8jUD Vl`wj@6POwqJYD@<);T3K0RX#&PzV43 literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/network.png b/tests/snapshots/chainid/nanox/network.png new file mode 100644 index 0000000000000000000000000000000000000000..04c32e9264ac6e02c00afd8d14d0f69b70061242 GIT binary patch literal 739 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|?G1>Eakt!T9!IV{WoJ6T?Np zg?`KaPg*86ms6*a|KPdQiAS`%Yu+Ez@8{osyEj>X`*C)=J9aj9ck;~pYVS0#%ggn% zZ|8?d@;7%MXYX4J6g|F;?f5kydbejsmuu>(86k0=N0)pG=D8Q+di3K?YkQB@Q|Vgk zLbRrJX-{356f{#y4M+t>YJ~t9tGhg(PUXGlaCFHcqtF#PT3TAcM>ltQf=pS~wYuwk z$RCkrd8gD>J61(#Y5iN*we-=dN5-PzT3Yi1D@)7ob)5QG&1TdHq~dG9rx3JDC{xWY$NbiXsmz`F3G+PfL~`*L~v)*_?3Khs1fp9(#?WK)Qa zmiN&`Q0miEuBq!oR_Fk23qHE2DAaIeOsJ36{g>y=R|Txx0m4B*Kd4Pz>XZs&JdHdW zzw$>9&^bWCRRJ@#LY8q&?Rsza!wu-(pOdvh_605c6d(9A_}!kFK##9V3fj3U;HOvX zscm{BO$f1mPKMubcQMpfX- z86o?C#&4GX@BpZ)!d_G>yt$ie>SNoLAu+slD+4U=&GtHK^uu-Oql$b{tbP0l+XkKx=1&c literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/review.png b/tests/snapshots/chainid/nanox/review.png new file mode 100644 index 0000000000000000000000000000000000000000..4a982c5f30db04ecad96fda38069dd2fd8f96992 GIT binary patch literal 636 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|@3gba4!+V0?S7Zd@yx<8LGD|NL^HOwMbIhRMr6+gQ$n z$QbOfoPT3l5rg{eO>DO>VIn!5Rge5qUD*pZP3XEG70O~b+m^~6IH{zir*(hjjumT?HZ15`uN79ppw7MWhwRj;G6zmJ zX}t>p31G2LNNZm)gL*#D!l%o%LhK@2Pu*plvu7pO)Rj)DzqfKt&HQjsOG`^nG(I#& z>m8U?E?O@7-eGByRLu%5(W#zGlU4=%T;=4N8nkjp$cm5{t&n?;t*5>`I2-DtRW52D z`Y}^06p>c3F!~oyse=C}`u~=Lfl0?EtEOln)H`V4z<_C!bpSXi?Gf qAj6e=CNo>yoMw7sni(PVjlVP7(D7f?IZe literal 0 HcmV?d00001 diff --git a/tests/src/chainid.test.js b/tests/src/chainid.test.js new file mode 100644 index 0000000..ab7c972 --- /dev/null +++ b/tests/src/chainid.test.js @@ -0,0 +1,298 @@ +import "core-js/stable"; +import "regenerator-runtime/runtime"; +import Eth from "@ledgerhq/hw-app-eth"; +import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; +import Zemu from "@zondax/zemu"; +import { TransportStatusError } from "@ledgerhq/errors"; +import { expect } from "../jest"; + +const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); + +const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/chainid/"; + +const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; +const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + +test.skip("Transfer on network 112233445566 on Ethereum nanos", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOS_ELF_PATH); + let tmpPath = getTmpPath(expect.getState().currentTestName); + + try { + await sim.start(sim_options_nanos); + + let transport = await sim.getTransport(); + let eth = new Eth(transport); + + // Send transaction + let tx = eth.signTransaction( + "44'/60'/0'/0/0", + "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080" + ) + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(tmpPath + filename); + const review = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(review).toMatchSnapshot(expected_review); + + // Amount 1/3 + filename = "amount_1.png"; + await sim.clickRight(tmpPath + filename); + const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_1).toMatchSnapshot(expected_amount_1); + + // Amount 2/3 + filename = "amount_2.png"; + await sim.clickRight(tmpPath + filename); + const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_2).toMatchSnapshot(expected_amount_2); + + // Amount 3/3 + filename = "amount_3.png"; + await sim.clickRight(tmpPath + filename); + const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_3).toMatchSnapshot(expected_amount_3); + + // Address 1/3 + filename = "address_1.png"; + await sim.clickRight(tmpPath + filename); + const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_1).toMatchSnapshot(expected_address_1); + + // Address 2/3 + filename = "address_2.png"; + await sim.clickRight(tmpPath + filename); + const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_2).toMatchSnapshot(expected_address_2); + + // Address 3/3 + filename = "address_3.png"; + await sim.clickRight(tmpPath + filename); + const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_3).toMatchSnapshot(expected_address_3); + + // Network + filename = "network.png"; + await sim.clickRight(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); // scott + const network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); // scott + const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(network).toMatchSnapshot(expected_network); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(tmpPath + filename); + const fees = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(fees).toMatchSnapshot(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(tmpPath + filename); + const accept = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(accept).toMatchSnapshot(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + { + "r": "31fca443b3cad62f3ce18e287f3cf4892ac2669379cc21b5cf198561f0511d1e", + "s": "3cf21485cd8b86e1acddbcc641e16a3efad18aaeb5ae96a650f1a8b291078494", + "v": "344344f1a0", + } + ); + } finally { + await sim.close(); + } +}); + +test("Transfer on palm network on Ethereum nanos", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOS_ELF_PATH); + let tmpPath = getTmpPath(expect.getState().currentTestName); + + try { + await sim.start(sim_options_nanos); + + let transport = await sim.getTransport(); + let eth = new Eth(transport); + + // Send transaction + let tx = eth.signTransaction( + "44'/60'/0'/0/0", + "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080" + ) + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(tmpPath + filename); + const review = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(review).toMatchSnapshot(expected_review); + + // Amount 1/3 + filename = "amount_1.png"; + console.log("after5"); + await sim.clickRight(tmpPath + filename); + console.log("after6"); + const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); + console.log("after7"); + const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + console.log("after8"); + // expect(amount_1).toMatchSnapshot(expected_amount_1); + console.log("after9"); + + // Amount 2/3 + filename = "amount_2.png"; + console.log("after10"); + await sim.clickRight(tmpPath + filename); + console.log("after11"); + const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_2).toMatchSnapshot(expected_amount_2); + + // Amount 3/3 + filename = "amount_3.png"; + await sim.clickRight(tmpPath + filename); + const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_3).toMatchSnapshot(expected_amount_3); + + // Address 1/3 + filename = "address_1.png"; + await sim.clickRight(tmpPath + filename); + const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_1).toMatchSnapshot(expected_address_1); + + // Address 2/3 + filename = "address_2.png"; + await sim.clickRight(tmpPath + filename); + const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_2).toMatchSnapshot(expected_address_2); + + // Address 3/3 + filename = "address_3.png"; + await sim.clickRight(tmpPath + filename); + const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_3).toMatchSnapshot(expected_address_3); + + // Network + filename = "palm.png"; + await sim.clickRight(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); // scott + const network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); // scott + const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(network).toMatchSnapshot(expected_network); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(tmpPath + filename); + const fees = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(fees).toMatchSnapshot(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(tmpPath + filename); + const accept = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(accept).toMatchSnapshot(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + { + "r": "f9b5d903c47c34027156e869bda5aa002233d6cca583ad53d125612fc0795f3b", + "s": "00da038129414e5ae6f7c1529c6067e82484e3694c84c16d575e77162f631c27", + "v": "0542b8613d", + } + ); + } finally { + await sim.close(); + } +}); + +test.skip("Transfer on network 112233445566 on Ethereum nanox", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOX_ELF_PATH); + let tmpPath = getTmpPath(expect.getState().currentTestName); + + try { + await sim.start(sim_options_nanox); + + let transport = await sim.getTransport(); + let eth = new Eth(transport); + + // Send transaction + let tx = eth.signTransaction( + "44'/60'/0'/0/0", + "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080" + ) + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(tmpPath + filename); + const review = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(review).toMatchSnapshot(expected_review); + + // Amount + filename = "amount.png"; + await sim.clickRight(tmpPath + filename); + const amount = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(amount).toMatchSnapshot(expected_amount); + + // Address + filename = "address.png"; + await sim.clickRight(tmpPath + filename); + const address = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(address).toMatchSnapshot(expected_address); + + // Network + filename = "network.png"; + await sim.clickRight(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); // scott + const network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); // scott + const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(network).toMatchSnapshot(expected_network); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(tmpPath + filename); + const fees = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(fees).toMatchSnapshot(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(tmpPath + filename); + const accept = Zemu.LoadPng2RGB(tmpPath + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(accept).toMatchSnapshot(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + Buffer.from([]) + ); + } finally { + await sim.close(); + } +}); \ No newline at end of file