From e5fafae176a22a2da9803fab0730fb6d7daef1cb Mon Sep 17 00:00:00 2001 From: pscott Date: Thu, 17 Jun 2021 17:20:52 +0200 Subject: [PATCH] Add working tests for send_bsc and send --- tests/jest.js | 4 +- tests/snapshots/send/nanos/accept.png | Bin 0 -> 582 bytes tests/snapshots/send/nanos/address_1.png | Bin 0 -> 809 bytes tests/snapshots/send/nanos/address_2.png | Bin 0 -> 837 bytes tests/snapshots/send/nanos/address_3.png | Bin 0 -> 567 bytes tests/snapshots/send/nanos/amount_1.png | Bin 0 -> 474 bytes tests/snapshots/send/nanos/amount_2.png | Bin 0 -> 759 bytes tests/snapshots/send/nanos/amount_3.png | Bin 0 -> 479 bytes tests/snapshots/send/nanos/fees.png | Bin 0 -> 561 bytes tests/snapshots/send/nanos/review.png | Bin 0 -> 541 bytes tests/snapshots/send/nanox/accept.png | Bin 0 -> 667 bytes tests/snapshots/send/nanox/address.png | Bin 0 -> 1292 bytes tests/snapshots/send/nanox/amount.png | Bin 0 -> 860 bytes tests/snapshots/send/nanox/fees.png | Bin 0 -> 685 bytes tests/snapshots/send/nanox/review.png | Bin 0 -> 633 bytes tests/snapshots/send_bsc/nanos/accept.png | Bin 0 -> 582 bytes tests/snapshots/send_bsc/nanos/address_1.png | Bin 0 -> 809 bytes tests/snapshots/send_bsc/nanos/address_2.png | Bin 0 -> 837 bytes tests/snapshots/send_bsc/nanos/address_3.png | Bin 0 -> 567 bytes tests/snapshots/send_bsc/nanos/amount_1.png | Bin 0 -> 474 bytes tests/snapshots/send_bsc/nanos/amount_2.png | Bin 0 -> 759 bytes tests/snapshots/send_bsc/nanos/amount_3.png | Bin 0 -> 479 bytes tests/snapshots/send_bsc/nanos/chainid.png | Bin 0 -> 382 bytes tests/snapshots/send_bsc/nanos/fees.png | Bin 0 -> 545 bytes tests/snapshots/send_bsc/nanos/review.png | Bin 0 -> 541 bytes tests/snapshots/send_bsc/nanox/accept.png | Bin 0 -> 667 bytes tests/snapshots/send_bsc/nanox/address.png | Bin 0 -> 1292 bytes tests/snapshots/send_bsc/nanox/amount.png | Bin 0 -> 860 bytes tests/snapshots/send_bsc/nanox/chainid.png | Bin 0 -> 473 bytes tests/snapshots/send_bsc/nanox/fees.png | Bin 0 -> 669 bytes tests/snapshots/send_bsc/nanox/review.png | Bin 0 -> 633 bytes tests/snapshots/tmp/nanos/.gitignore | 1 + tests/snapshots/tmp/nanox/.gitignore | 1 + tests/src/chunk_size.test.js | 60 ------ tests/src/ethereum.test.js | 195 ------------------- tests/src/generic.js | 8 +- tests/src/send.test.js | 168 ++++++++++++++++ tests/src/send_bsc.test.js | 184 +++++++++++++++++ 38 files changed, 360 insertions(+), 261 deletions(-) create mode 100644 tests/snapshots/send/nanos/accept.png create mode 100644 tests/snapshots/send/nanos/address_1.png create mode 100644 tests/snapshots/send/nanos/address_2.png create mode 100644 tests/snapshots/send/nanos/address_3.png create mode 100644 tests/snapshots/send/nanos/amount_1.png create mode 100644 tests/snapshots/send/nanos/amount_2.png create mode 100644 tests/snapshots/send/nanos/amount_3.png create mode 100644 tests/snapshots/send/nanos/fees.png create mode 100644 tests/snapshots/send/nanos/review.png create mode 100644 tests/snapshots/send/nanox/accept.png create mode 100644 tests/snapshots/send/nanox/address.png create mode 100644 tests/snapshots/send/nanox/amount.png create mode 100644 tests/snapshots/send/nanox/fees.png create mode 100644 tests/snapshots/send/nanox/review.png create mode 100644 tests/snapshots/send_bsc/nanos/accept.png create mode 100644 tests/snapshots/send_bsc/nanos/address_1.png create mode 100644 tests/snapshots/send_bsc/nanos/address_2.png create mode 100644 tests/snapshots/send_bsc/nanos/address_3.png create mode 100644 tests/snapshots/send_bsc/nanos/amount_1.png create mode 100644 tests/snapshots/send_bsc/nanos/amount_2.png create mode 100644 tests/snapshots/send_bsc/nanos/amount_3.png create mode 100644 tests/snapshots/send_bsc/nanos/chainid.png create mode 100644 tests/snapshots/send_bsc/nanos/fees.png create mode 100644 tests/snapshots/send_bsc/nanos/review.png create mode 100644 tests/snapshots/send_bsc/nanox/accept.png create mode 100644 tests/snapshots/send_bsc/nanox/address.png create mode 100644 tests/snapshots/send_bsc/nanox/amount.png create mode 100644 tests/snapshots/send_bsc/nanox/chainid.png create mode 100644 tests/snapshots/send_bsc/nanox/fees.png create mode 100644 tests/snapshots/send_bsc/nanox/review.png create mode 100644 tests/snapshots/tmp/nanos/.gitignore create mode 100644 tests/snapshots/tmp/nanox/.gitignore delete mode 100644 tests/src/chunk_size.test.js delete mode 100644 tests/src/ethereum.test.js create mode 100644 tests/src/send.test.js create mode 100644 tests/src/send_bsc.test.js diff --git a/tests/jest.js b/tests/jest.js index 767335f..521ecbe 100644 --- a/tests/jest.js +++ b/tests/jest.js @@ -18,5 +18,5 @@ export const sim_options_x = { }; export const Resolve = require("path").resolve; -export const NANOS_PATH = Resolve("elfs/ethereum_nanos.elf"); -export const NANOX_PATH = Resolve("elfs/ethereum_nanox.elf"); \ No newline at end of file +export const NANOS_ELF_PATH = Resolve("elfs/ethereum_nanos.elf"); +export const NANOX_ELF_PATH = Resolve("elfs/ethereum_nanox.elf"); \ No newline at end of file diff --git a/tests/snapshots/send/nanos/accept.png b/tests/snapshots/send/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/send/nanos/address_2.png b/tests/snapshots/send/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/send/nanos/address_3.png b/tests/snapshots/send/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/send/nanos/amount_2.png b/tests/snapshots/send/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/send/nanos/amount_3.png b/tests/snapshots/send/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/send/nanos/fees.png b/tests/snapshots/send/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/send/nanos/review.png b/tests/snapshots/send/nanos/review.png new file mode 100644 index 0000000000000000000000000000000000000000..2994983f84cf76ab587bac356d5afe297c0e0632 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcyxba4!+V0?SfW}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/send/nanox/accept.png b/tests/snapshots/send/nanox/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2b8c89bd1a94620c388b2ac5599a5860918179 GIT binary patch literal 667 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 U6a97!m<$;_UHx3vIVCg!0AW%^y8r+H literal 0 HcmV?d00001 diff --git a/tests/snapshots/send/nanox/review.png b/tests/snapshots/send/nanox/review.png new file mode 100644 index 0000000000000000000000000000000000000000..8794afe436a71131138e8f80fe7d0d4eca0eb076 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|@3aba4!+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}^0h?Z-ue|C^NaAm;G;F&;qYmldcfNZU0TvK;*O?@A-!benV@~M!8 zpS4RtRSIvkw{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/send_bsc/nanos/address_2.png b/tests/snapshots/send_bsc/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/send_bsc/nanos/address_3.png b/tests/snapshots/send_bsc/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/send_bsc/nanos/amount_2.png b/tests/snapshots/send_bsc/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/send_bsc/nanos/amount_3.png b/tests/snapshots/send_bsc/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/send_bsc/nanos/chainid.png b/tests/snapshots/send_bsc/nanos/chainid.png new file mode 100644 index 0000000000000000000000000000000000000000..acfe3d3d4145536db8b7957bb87c3fca04bcca55 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfh7$x;TbZFupzLn0LoPfaTyC z#@GM(-#O1z*wd_<$|$5Fe_|fT$MCXA5mkX@Z?>HF6Y`d4I;6*WD^UI~?L4E%YIJ`R)69I&#xsgX*^SCK6{>6U8SQs^c09!|NTFCW;KC^i)XVu(NDbv~~DjvQ1AQr@$q}h^wf$n;zf`Q@6;OXk;vd$@?2>>gZm`eZv literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_bsc/nanos/fees.png b/tests/snapshots/send_bsc/nanos/fees.png new file mode 100644 index 0000000000000000000000000000000000000000..2c12e0ae5461c7044763f35bf38efe39249e85f9 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfhLGba4!+V0?Qpu;{THgY!Z5 zX$Ak8A2Y9>)up~@$=V~G*EgMbDOUe-s>-zD!1X&Wg|1iGIH$d#=&D%kS1+N{mN|D` zh@M`_pjFL*fj z#07&BHmb%ZHM7nH8~LBKnII`O;pa=Ua|;+HQ!;*t8JYYk5${{}(EB9N1|B05A0y|( zDxWWNYJ8WP5XrZMab~qNnB~^iRxQ09B<9uD7A-9gV)?bT@k`66WJK_-W1Pt^y&c2? z+8WJtYA;*Lza4F|GZ#K=JaeJpj32X+zbTK={;LKj-k9(hS@SlZ@q>8V2k6oI5N4zA zdN#_Rb5rC_@bI4alg0DT(*=pwiLCQ`O2Tq9Q$ONa_?emc=n8xe^c9> zGiId3Jv_AfB+#pVhi^}uDHWHRY`L}f=@q>_Q9w^EP05f*S;m&a1_~z6wl>GKNedGv z{B$=0Iw=?^uf=q#C`$VD%3Pi0+cwU*b*v~0$ob2(@a3MPg1^gF0i&M5)78&qol`;+ E06HM$@&Et; literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_bsc/nanos/review.png b/tests/snapshots/send_bsc/nanos/review.png new file mode 100644 index 0000000000000000000000000000000000000000..2994983f84cf76ab587bac356d5afe297c0e0632 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcyxba4!+V0?SfW}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/send_bsc/nanox/accept.png b/tests/snapshots/send_bsc/nanox/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2b8c89bd1a94620c388b2ac5599a5860918179 GIT binary patch literal 667 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 ArT_o{ literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_bsc/nanox/fees.png b/tests/snapshots/send_bsc/nanox/fees.png new file mode 100644 index 0000000000000000000000000000000000000000..71a1ef94c1b086e595dd68c3e93e9cb9d81f76c7 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|>q|ba4!+V0?S9u~*uhf#IO7 z)7+f@s=2yd96uUPKejL9QNPqZ$MVO+e+4q^x1;)gGxHxm{P&>+-?mbj19RJd|2_Ay zpx&adIhVJ&`#1CLAif9Zwyin1Z3_@d>#usWq-d4J%0HT-@+swU&dqUQb1N?=^IFoeD8rS>yIpTU2y;m#1s$su@~pqCnMN zu1`bnRxpdk2d-Q(BjjJ_sg;jH3PTH5{qQ=vGX7!(^F&7$*01#)TXZP@_f1~DQM@a86oR{ z+~A{APZ{5-Fap}WjBD!s(1k{!D{4YOq>rdpaO)`;Q#2gR^?Z7h?Y8{FPqKF_Hg!!t zwSGkfJJ8+fJ3gjp{hxL!^l16wqE!{spy4@xMZiycpd0_GOa)pBG-+jskCr-!y(GwR z<)0p4IDmuux>kstRfDy-sMhV@D+6{)#e}TLdGEROQPv0N)>Gf^0RyF3K16HV_ppUU uQZXw+a^3@d^orqK&S|L}Z)qB!-`qv*mUrfyjH?DFI|ffzKbLh*2~7ZXW-37Zd@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}^0h?Z-ue|C^NaAm;G;F&;qYmldcfNZU0TvK;*O?@A-!benV@~M!8 zpS { - jest.setTimeout(100000); - const sim = new Zemu(NANOS_PATH); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - const eth = new Eth(transport); - - // Send transaction - // Couldn't find the transaction, but this is a special raw tx that checks that what was fixed by https://github.com/LedgerHQ/ledgerjs/pull/606 still works. - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f8c282abcd8609184e72a00082271094aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa820300b858bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb25a0eb7170e671a8dd4607248d4850ac3daec22f6acea72cd0e4fe26adb0e8e08095a02f36ae65347b134cdfc0809292a34fa59c3e3e2eda0283b65d190fe8823a35d3" - ); - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - await sim.clickRight(); - // Data Present - await sim.clickRight(); - // Amount 1/3 - await sim.clickRight(); - // Amount 2/3 - await sim.clickRight(); - // Amount 3/3 - await sim.clickRight(); - // Address 1/3 - await sim.clickRight(); - // Address 2/3 - await sim.clickRight(); - // Address 3/3 - await sim.clickRight(); - // Chain ID - await sim.clickRight(); - // Max Fees - await sim.clickRight(); - // Accept - await sim.clickBoth(); - - await expect(tx).resolves.toEqual({ - r: "99ef8e0ff0f1755571c8c00ca18483ae97b907e5c90780333d474930fb7d68ee", - s: "707dfc5d5ae47dba7fd7d6afe84c4a3c5a5a649630963a04dc1b88304327ba2a", - v: "6d", - }); - - } finally { - await sim.close(); - } -}); \ No newline at end of file diff --git a/tests/src/ethereum.test.js b/tests/src/ethereum.test.js deleted file mode 100644 index dd7032b..0000000 --- a/tests/src/ethereum.test.js +++ /dev/null @@ -1,195 +0,0 @@ -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"; - -const {NANOS_PATH, NANOX_PATH, sim_options_nanos, sim_options_nanox} = require("generic.js"); - -test("Transfer nanos", async () => { - jest.setTimeout(100000); - const sim = new Zemu(NANOS_PATH); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - const eth = new Eth(transport); - - // Send transaction - // https://etherscan.io/tx/0xa0f067369c92d240e253ac3bcb7b7aa56952f7e6feb4c2d93239713fb4e2c40e - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "F8A95F850684EE180082CA2D944297394C20800E8A38A619A243E9BBE7681FF24E80B844A9059CBB000000000000000000000000D99A9739CF8B0BF66A7C99D9E14510C3146358C60000000000000000000000000000000000000000000002F0DEB79238F100000025A04CABB0BD9DFDC55605915450F9C7E0E3311996071D9F722BFA12E09C9EF8A23FA03DD645E1DA9B19448A327CC5ADCF89FA228C3642528D60258D9AE32A5B07F7A2" - ); - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - await sim.clickRight(); - // Data Present - await sim.clickRight(); - // Amount - await sim.clickRight(); - // Address 1/3 - await sim.clickRight(); - // Address 2/3 - await sim.clickRight(); - // Address 3/3 - await sim.clickRight(); - // Chain ID - await sim.clickRight(); - // Max Fees - await sim.clickRight(); - // Accept - await sim.clickBoth(); - - await expect(tx).resolves.toEqual({ - r: "610f4e866a960467e139387d21a922e836c6ae09af548940aa8ceaa04f720ab4", - s: "1e9f5e10bf4667c3a8b094856af1d1a98faa544331f654158255fe87cbb55737", - v: "6d", - }); - - } finally { - await sim.close(); - } -}); - -test("Transfer nanox", async () => { - jest.setTimeout(100000); - const sim = new Zemu(NANOX_PATH); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - const eth = new Eth(transport); - - // Send transaction - // https://etherscan.io/tx/0xa0f067369c92d240e253ac3bcb7b7aa56952f7e6feb4c2d93239713fb4e2c40e - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "F8A95F850684EE180082CA2D944297394C20800E8A38A619A243E9BBE7681FF24E80B844A9059CBB000000000000000000000000D99A9739CF8B0BF66A7C99D9E14510C3146358C60000000000000000000000000000000000000000000002F0DEB79238F100000025A04CABB0BD9DFDC55605915450F9C7E0E3311996071D9F722BFA12E09C9EF8A23FA03DD645E1DA9B19448A327CC5ADCF89FA228C3642528D60258D9AE32A5B07F7A2" - ); - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - await sim.clickRight(); - // Data Present - await sim.clickRight(); - // Amount - await sim.clickRight(); - // Address 1 - await sim.clickRight(); - // Chain ID - await sim.clickRight(); - // Max Fees - await sim.clickRight(); - // Accept - await sim.clickBoth(); - - await expect(tx).resolves.toEqual({ - r: "610f4e866a960467e139387d21a922e836c6ae09af548940aa8ceaa04f720ab4", - s: "1e9f5e10bf4667c3a8b094856af1d1a98faa544331f654158255fe87cbb55737", - v: "6d", - }); - } finally { - await sim.close(); - } -}); - -test("Deposit nanos", async () => { - jest.setTimeout(100000); - const sim = new Zemu(NANOS_PATH); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - const eth = new Eth(transport); - - // Deposit transaction - // https://etherscan.io/tx/0xf2ff5519baafdc46c3b300e03e189a5b45f48552969fd6bc45ed6e3adb0ecb5f - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f8eb81958508e534039d8302177594d54f502e184b6b739d7d27a6410a67dc462d69c880b8842505c3d903f33191df6561f0409b39172d41aafe1edef210994ef40957a0a2afc4d9d1ec02893294412a4c8f915f75892b395ebbf6859ec246ec365c3b1f56f47c3a0a5d00000000000000000000000000000000000000000000000000000000000045c90000000000000000000000000000000000000000000000000000000041be71c025a0dd2ca8adf62d74dd023a35695281e9859737fecf3597409915e63bf4297ebf20a022e73752616372ce3cf2e473d951f4063227df1a2ace5a2320314803f6993b72" - ); - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - await sim.clickRight(); - // Data Present - await sim.clickRight(); - // Amount - await sim.clickRight(); - // Address 1 - await sim.clickRight(); - // Address 2 - await sim.clickRight(); - // Address 3 - await sim.clickRight(); - // Chain ID - await sim.clickRight(); - // Max Fees 1 - await sim.clickRight(); - // Max Fees 2 - await sim.clickRight(); - // Max Fees 3 - await sim.clickRight(); - // Accept - await sim.clickBoth(); - - await expect(tx).resolves.toEqual({ - r: "760c0d133c1095830614736e24c5741dcfcf1c46aeb301c3f213d92eac66c7b8", - s: "0e19d23ef82e04d2a3e77bc24ad036a381a2a12333b8d9228776bedf08092472", - v: "6e" - }); - } finally { - await sim.close(); - } -}); - -test("Deposit nanox", async () => { - jest.setTimeout(100000); - const sim = new Zemu(NANOX_PATH); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - const eth = new Eth(transport); - - // Deposit transaction - // https://etherscan.io/tx/0xf2ff5519baafdc46c3b300e03e189a5b45f48552969fd6bc45ed6e3adb0ecb5f - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f8eb81958508e534039d8302177594d54f502e184b6b739d7d27a6410a67dc462d69c880b8842505c3d903f33191df6561f0409b39172d41aafe1edef210994ef40957a0a2afc4d9d1ec02893294412a4c8f915f75892b395ebbf6859ec246ec365c3b1f56f47c3a0a5d00000000000000000000000000000000000000000000000000000000000045c90000000000000000000000000000000000000000000000000000000041be71c025a0dd2ca8adf62d74dd023a35695281e9859737fecf3597409915e63bf4297ebf20a022e73752616372ce3cf2e473d951f4063227df1a2ace5a2320314803f6993b72" - ); - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - await sim.clickRight(); - // Data Present - await sim.clickRight(); - // Amount - await sim.clickRight(); - // Address 1 - await sim.clickRight(); - // Chain ID - await sim.clickRight(); - // Max Fees 1/2 - await sim.clickRight(); - - // Accept - await sim.clickBoth(); - - await expect(tx).resolves.toEqual({ - r: "760c0d133c1095830614736e24c5741dcfcf1c46aeb301c3f213d92eac66c7b8", - s: "0e19d23ef82e04d2a3e77bc24ad036a381a2a12333b8d9228776bedf08092472", - v: "6e", - }); - - } finally { - await sim.close(); - } -}); \ No newline at end of file diff --git a/tests/src/generic.js b/tests/src/generic.js index 3ab22ed..0fb103d 100644 --- a/tests/src/generic.js +++ b/tests/src/generic.js @@ -15,12 +15,12 @@ const sim_options_nanox = { }; const Resolve = require("path").resolve; -const NANOS_PATH = Resolve("elfs/ethereum_nanos.elf"); -const NANOX_PATH = Resolve("elfs/ethereum_nanox.elf"); +const NANOS_ELF_PATH = Resolve("elfs/ethereum_nanos.elf"); +const NANOX_ELF_PATH = Resolve("elfs/ethereum_nanox.elf"); module.exports = { - NANOS_PATH, - NANOX_PATH, + NANOS_ELF_PATH, + NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox } \ No newline at end of file diff --git a/tests/src/send.test.js b/tests/src/send.test.js new file mode 100644 index 0000000..80bca1e --- /dev/null +++ b/tests/src/send.test.js @@ -0,0 +1,168 @@ +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} = require("generic.js"); + +const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send/"; +const SNAPSHOT_PATH_PREFIX = "snapshots/tmp/"; + +const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; +const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + +const SNAPSHOT_PATH_NANOS = SNAPSHOT_PATH_PREFIX + "nanos/"; +const SNAPSHOT_PATH_NANOX = SNAPSHOT_PATH_PREFIX + "nanox/"; + + +test("Transfer nanos", async () => { + jest.setTimeout(100000); + const sim = new Zemu(NANOS_ELF_PATH); + + try { + await sim.start(sim_options_nanos); + + let transport = await sim.getTransport(); + + let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080", "hex"); + + // Send transaction + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(SNAPSHOT_PATH_NANOS + filename); + const review = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(review).toEqual(expected_review); + + // Amount 1/3 + filename = "amount_1.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const amount_1 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_1).toEqual(expected_amount_1); + + // Amount 2/3 + filename = "amount_2.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const amount_2 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_2).toEqual(expected_amount_2); + + // Amount 3/3 + filename = "amount_3.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const amount_3 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_3).toEqual(expected_amount_3); + + // Address 1/3 + filename = "address_1.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const address_1 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_1).toEqual(expected_address_1); + + // Address 2/3 + filename = "address_2.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const address_2 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_2).toEqual(expected_address_2); + + // Address 3/3 + filename = "address_3.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const address_3 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_3).toEqual(expected_address_3); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const fees = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(fees).toEqual(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const accept = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(accept).toEqual(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) + ); + } finally { + await sim.close(); + } +}); + +test("Transfer nanox", async () => { + jest.setTimeout(100000); + const sim = new Zemu(NANOX_ELF_PATH); + + try { + await sim.start(sim_options_nanox); + + let transport = await sim.getTransport(); + let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080", "hex"); + + // Send transaction + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(SNAPSHOT_PATH_NANOX + filename); + const review = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(review).toEqual(expected_review); + + // Amount + filename = "amount.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const amount = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(amount).toEqual(expected_amount); + + // Address + filename = "address.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const address = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(address).toEqual(expected_address); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const fees = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(fees).toEqual(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const accept = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(accept).toEqual(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) + ); + } finally { + await sim.close(); + } +}); \ No newline at end of file diff --git a/tests/src/send_bsc.test.js b/tests/src/send_bsc.test.js new file mode 100644 index 0000000..e0a8700 --- /dev/null +++ b/tests/src/send_bsc.test.js @@ -0,0 +1,184 @@ +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} = require("generic.js"); + +const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send_bsc/"; +const SNAPSHOT_PATH_PREFIX = "snapshots/tmp/"; + +const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; +const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + +const SNAPSHOT_PATH_NANOS = SNAPSHOT_PATH_PREFIX + "nanos/"; +const SNAPSHOT_PATH_NANOX = SNAPSHOT_PATH_PREFIX + "nanox/"; + + +test("Transfer bsc nanos", async () => { + jest.setTimeout(100000); + const sim = new Zemu(NANOS_ELF_PATH); + + try { + await sim.start(sim_options_nanos); + + let transport = await sim.getTransport(); + + let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080", "hex"); + + // Send transaction + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(SNAPSHOT_PATH_NANOS + filename); + const review = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(review).toEqual(expected_review); + + // Amount 1/3 + filename = "amount_1.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const amount_1 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_1).toEqual(expected_amount_1); + + // Amount 2/3 + filename = "amount_2.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const amount_2 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_2).toEqual(expected_amount_2); + + // Amount 3/3 + filename = "amount_3.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const amount_3 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(amount_3).toEqual(expected_amount_3); + + // Address 1/3 + filename = "address_1.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const address_1 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_1).toEqual(expected_address_1); + + // Address 2/3 + filename = "address_2.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const address_2 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_2).toEqual(expected_address_2); + + // Address 3/3 + filename = "address_3.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const address_3 = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(address_3).toEqual(expected_address_3); + + // Chain ID + filename = "chainid.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const chainid = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_chainid = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(chainid).toEqual(expected_chainid); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const fees = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(fees).toEqual(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOS + filename); + const accept = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOS + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); + expect(accept).toEqual(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + Buffer.from([147, 246, 103, 204, 52, 233, 129, 93, 244, 240, 82, 251, 52, 99, 205, 190, 53, 95, 255, 92, 26, 207, 78, 145, 155, 53, 57, 128, 101, 33, 160, 89, 173, 107, 53, 73, 43, 113, 8, 217, 217, 225, 204, 122, 237, 229, 54, 237, 107, 49, 115, 25, 123, 86, 221, 135, 60, 188, 59, 67, 224, 65, 214, 244, 7, 144, 0]), + ); + + } finally { + await sim.close(); + } +}); + +test("Transfer bsc nanox", async () => { + jest.setTimeout(100000); + const sim = new Zemu(NANOX_ELF_PATH); + + try { + await sim.start(sim_options_nanox); + + let transport = await sim.getTransport(); + let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080", "hex"); + + // Send transaction + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + let filename; + + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + // Review tx + filename = "review.png"; + await sim.snapshot(SNAPSHOT_PATH_NANOX + filename); + const review = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(review).toEqual(expected_review); + + // Amount + filename = "amount.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const amount = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(amount).toEqual(expected_amount); + + // Address + filename = "address.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const address = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(address).toEqual(expected_address); + + // Chain ID + filename = "chainid.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const chainid = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_chainid = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(chainid).toEqual(expected_chainid); + + // Max Fees + filename = "fees.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const fees = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(fees).toEqual(expected_fees); + + // Accept + filename = "accept.png"; + await sim.clickRight(SNAPSHOT_PATH_NANOX + filename); + const accept = Zemu.LoadPng2RGB(SNAPSHOT_PATH_NANOX + filename); + const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); + expect(accept).toEqual(expected_accept); + + await sim.clickBoth(); + + await expect(tx).resolves.toEqual( + Buffer.from([147, 246, 103, 204, 52, 233, 129, 93, 244, 240, 82, 251, 52, 99, 205, 190, 53, 95, 255, 92, 26, 207, 78, 145, 155, 53, 57, 128, 101, 33, 160, 89, 173, 107, 53, 73, 43, 113, 8, 217, 217, 225, 204, 122, 237, 229, 54, 237, 107, 49, 115, 25, 123, 86, 221, 135, 60, 188, 59, 67, 224, 65, 214, 244, 7, 144, 0]), + ); + + } finally { + await sim.close(); + } +}); \ No newline at end of file