From b3a36f9b11e86e374f54c8e3d45a3f594c648b71 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Tue, 15 Feb 2022 10:26:30 +0100 Subject: [PATCH] Added new tests for ERC-1155 --- .../nanox_erc1155_transfer_wo_info/00000.png | 1 + .../nanox_erc1155_transfer_wo_info/00001.png | 1 + .../nanox_erc1155_transfer_wo_info/00002.png | 1 + .../nanox_erc1155_transfer_wo_info/00003.png | Bin 0 -> 457 bytes .../nanox_erc1155_transfer_wo_info/00004.png | 1 + .../nanox_erc1155_transfer_wo_info/00005.png | 1 + .../nanox_erc1155_transfer_wo_info/00006.png | 1 + .../nanox_erc1155_transfer_wo_info/00007.png | 1 + .../nanox_erc1155_transfer_wo_info/00008.png | 1 + .../nanox_erc1155_transfer_wo_info/00009.png | 1 + .../nanox_erc1155_transfer_wo_info/00010.png | 1 + .../nanox_erc1155_transfer_wo_info/00011.png | 1 + .../nanox_erc1155_transfer_wo_info/00012.png | 1 + tests/src/erc1155.test.js | 83 +++++++++++------- 14 files changed, 65 insertions(+), 30 deletions(-) create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00000.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00001.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00002.png create mode 100644 tests/snapshots/nanox_erc1155_transfer_wo_info/00003.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00004.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00005.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00006.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00007.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00008.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00009.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00010.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00011.png create mode 120000 tests/snapshots/nanox_erc1155_transfer_wo_info/00012.png diff --git a/tests/snapshots/nanox_erc1155_transfer_wo_info/00000.png b/tests/snapshots/nanox_erc1155_transfer_wo_info/00000.png new file mode 120000 index 0000000..a808e25 --- /dev/null +++ b/tests/snapshots/nanox_erc1155_transfer_wo_info/00000.png @@ -0,0 +1 @@ +../nanox_erc1155_transfer/00000.png \ No newline at end of file diff --git a/tests/snapshots/nanox_erc1155_transfer_wo_info/00001.png b/tests/snapshots/nanox_erc1155_transfer_wo_info/00001.png new file mode 120000 index 0000000..18b62b5 --- /dev/null +++ b/tests/snapshots/nanox_erc1155_transfer_wo_info/00001.png @@ -0,0 +1 @@ +../nanox_erc1155_transfer/00001.png \ No newline at end of file diff --git a/tests/snapshots/nanox_erc1155_transfer_wo_info/00002.png b/tests/snapshots/nanox_erc1155_transfer_wo_info/00002.png new file mode 120000 index 0000000..3ba3b50 --- /dev/null +++ b/tests/snapshots/nanox_erc1155_transfer_wo_info/00002.png @@ -0,0 +1 @@ +../nanox_erc1155_transfer/00002.png \ No newline at end of file diff --git a/tests/snapshots/nanox_erc1155_transfer_wo_info/00003.png b/tests/snapshots/nanox_erc1155_transfer_wo_info/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..b34af53fcd4c2abde410f077c7f6ee0d6d53ff3a GIT binary patch literal 457 zcmV;)0XF`LP)aH1MOvfRFde|Kx zk4HM~ZXu0%)_BH!_f^|Abk)(>WUbIS0Ty+MIfG@qEL4#p1T`OdcQM8kRvE?}<{6Ca zwAfu^t+i>+C6R;=YWZ3X1rR}zte)u}G(PPwmT z)k16fil@+F@-3*9OxfU>jA&ZB%HZG9v|CU^c2KQ*06Q+I=XEo$M`IRWWnk!!i> z*{Z z*OM;I{2 { +{ + const set_plugin = apdu_as_string('e01600007401010745524331313535495f947276749ce646f68ac8c248420045cb7b5ef242432a00000000000000010001473045022100ec4377d17e8d98d424bf16b29c691bc1a010825fb5b8a35de0268a9dc22eab2402206701b016fe6718bf519d18cc12e9838e9ef898cc4c143017839023c3260b2d74'); + const provide_nft_info = apdu_as_string('e01400007b0101124f70656e53656120436f6c6c656374696f6e495f947276749ce646f68ac8c248420045cb7b5e0000000000000001000147304502210083e357a828f13d574b1296214a3749c194ab1df1f8a243655c053b1c72f91e0c02201ed93cfac7e87759445c4da2e4bfd6e1cf0405ea37c7293bc965948f51bef5cc'); + const sign_first = apdu_as_string('e004000096058000002c8000003c800000000000000000000000f901090b8520b673dd0082bcb394495f947276749ce646f68ac8c248420045cb7b5e80b8e4f242432a0000000000000000000000006cbcd73cd8e8a42844662f0a0e76d7f79afd933d000000000000000000000000c2907efcce4011c491bbeda8a0fa63ba7aab596cabf06640f8ca8fc5e0ed471b10befcdf65a33e4300000000'); + const sign_more = apdu_as_string('e00480008b00006a0000000064000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000043078303000000000000000000000000000000000000000000000000000000000018080'); - const set_plugin = apdu_as_string('e01600007401010745524331313535495f947276749ce646f68ac8c248420045cb7b5ef242432a00000000000000010001473045022100ec4377d17e8d98d424bf16b29c691bc1a010825fb5b8a35de0268a9dc22eab2402206701b016fe6718bf519d18cc12e9838e9ef898cc4c143017839023c3260b2d74'); - const provide_nft_info = apdu_as_string('e01400007b0101124f70656e53656120436f6c6c656374696f6e495f947276749ce646f68ac8c248420045cb7b5e0000000000000001000147304502210083e357a828f13d574b1296214a3749c194ab1df1f8a243655c053b1c72f91e0c02201ed93cfac7e87759445c4da2e4bfd6e1cf0405ea37c7293bc965948f51bef5cc'); - const sign_first = apdu_as_string('e004000096058000002c8000003c800000000000000000000000f901090b8520b673dd0082bcb394495f947276749ce646f68ac8c248420045cb7b5e80b8e4f242432a0000000000000000000000006cbcd73cd8e8a42844662f0a0e76d7f79afd933d000000000000000000000000c2907efcce4011c491bbeda8a0fa63ba7aab596cabf06640f8ca8fc5e0ed471b10befcdf65a33e4300000000'); - const sign_more = apdu_as_string('e00480008b00006a0000000064000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000043078303000000000000000000000000000000000000000000000000000000000018080'); + test('[Nano ' + model.letter + '] Transfer ERC-1155', zemu(model, async (sim, eth) => { + const current_screen = sim.getMainMenuSnapshot(); + await send_apdu(eth.transport, set_plugin); + await send_apdu(eth.transport, provide_nft_info); + await send_apdu(eth.transport, sign_first); + let sign_promise = send_apdu(eth.transport, sign_more); - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - await send_apdu(eth.transport, provide_nft_info); - await send_apdu(eth.transport, sign_first); - let sign_promise = send_apdu(eth.transport, sign_more); + await waitForAppScreen(sim, current_screen); + await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_transfer', [10, -1, 0]); - await waitForAppScreen(sim, current_screen); - await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_transfer', [10, -1, 0]); + await sign_promise; + })); - await sign_promise; -})); + test('[Nano ' + model.letter + '] Transfer ERC-1155 w/o PROVIDE_NFT_INFORMATION', zemu(model, async (sim, eth) => { + const current_screen = sim.getMainMenuSnapshot(); + await send_apdu(eth.transport, set_plugin); + await send_apdu(eth.transport, sign_first); + let sign_promise = send_apdu(eth.transport, sign_more); + + await waitForAppScreen(sim, current_screen); + await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_transfer_wo_info', [10, -1, 0]); + + await sign_promise; + })); + + test('[Nano ' + model.letter + '] Transfer ERC-1155 w/o SET_PLUGIN', zemu(model, async (sim, eth) => { + const current_screen = sim.getMainMenuSnapshot(); + await send_apdu(eth.transport, provide_nft_info); + let sign_tx = send_apdu(eth.transport, sign_first); + + await expect(sign_tx).rejects.toEqual(new TransportStatusError(0x6a80)); + })); +} test('[Nano ' + model.letter + '] Batch transfer ERC-1155', zemu(model, async (sim, eth) => { - const set_plugin = apdu_as_string('e01600007401010745524331313535495f947276749ce646f68ac8c248420045cb7b5e2eb2c2d60000000000000001000147304502210087b35cefc53fd94e25404933eb0d5ff08f20ba655d181de3b24ff0099dc3317f02204a216aa9e0b84bef6e20fcb036bd49647bf0cab66732b99b49ec277ffb682aa1'); - const provide_nft_info = apdu_as_string('e0140000820101194f70656e536561205368617265642053746f726566726f6e74495f947276749ce646f68ac8c248420045cb7b5e00000000000000010001473045022100c74cd613a27a9f4887210f5a3a0e12745e1ba0ab3a0d284cb6485d89c3cce4e602205a13e62a91164985cf58a838f8f531c0b91b980d206a5ba8df28270023ef93a3'); - const sign_first = apdu_as_string('e004000096058000002c8000003c800000000000000000000000f9020b0e850d8cfd86008301617d94495f947276749ce646f68ac8c248420045cb7b5e80b901e42eb2c2d60000000000000000000000006cbcd73cd8e8a42844662f0a0e76d7f79afd933d000000000000000000000000c2907efcce4011c491bbeda8a0fa63ba7aab596c00000000000000000000000000000000000000000000'); - const sign_more_1 = apdu_as_string('e004800096000000000000000000a0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000003abf06640f8ca8fc5e0ed471b10befcdf65a33e430000000000006a0000000064def9d99ff495856496c028c0'); - const sign_more_2 = apdu_as_string('e00480009689732473fcd0bbbe000000000000a30000000001abf06640f8ca8fc5e0ed471b10befcdf65a33e430000000000006a00000000640000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000'); - const sign_more_3 = apdu_as_string('e00480006100000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000043078303000000000000000000000000000000000000000000000000000000000018080'); + const set_plugin = apdu_as_string('e01600007401010745524331313535495f947276749ce646f68ac8c248420045cb7b5e2eb2c2d60000000000000001000147304502210087b35cefc53fd94e25404933eb0d5ff08f20ba655d181de3b24ff0099dc3317f02204a216aa9e0b84bef6e20fcb036bd49647bf0cab66732b99b49ec277ffb682aa1'); + const provide_nft_info = apdu_as_string('e0140000820101194f70656e536561205368617265642053746f726566726f6e74495f947276749ce646f68ac8c248420045cb7b5e00000000000000010001473045022100c74cd613a27a9f4887210f5a3a0e12745e1ba0ab3a0d284cb6485d89c3cce4e602205a13e62a91164985cf58a838f8f531c0b91b980d206a5ba8df28270023ef93a3'); + const sign_first = apdu_as_string('e004000096058000002c8000003c800000000000000000000000f9020b0e850d8cfd86008301617d94495f947276749ce646f68ac8c248420045cb7b5e80b901e42eb2c2d60000000000000000000000006cbcd73cd8e8a42844662f0a0e76d7f79afd933d000000000000000000000000c2907efcce4011c491bbeda8a0fa63ba7aab596c00000000000000000000000000000000000000000000'); + const sign_more_1 = apdu_as_string('e004800096000000000000000000a0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000003abf06640f8ca8fc5e0ed471b10befcdf65a33e430000000000006a0000000064def9d99ff495856496c028c0'); + const sign_more_2 = apdu_as_string('e00480009689732473fcd0bbbe000000000000a30000000001abf06640f8ca8fc5e0ed471b10befcdf65a33e430000000000006a00000000640000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000'); + const sign_more_3 = apdu_as_string('e00480006100000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000043078303000000000000000000000000000000000000000000000000000000000018080'); - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - await send_apdu(eth.transport, provide_nft_info); - await send_apdu(eth.transport, sign_first); - await send_apdu(eth.transport, sign_more_1); - await send_apdu(eth.transport, sign_more_2); - let sign_promise = send_apdu(eth.transport, sign_more_3); + const current_screen = sim.getMainMenuSnapshot(); + await send_apdu(eth.transport, set_plugin); + await send_apdu(eth.transport, provide_nft_info); + await send_apdu(eth.transport, sign_first); + await send_apdu(eth.transport, sign_more_1); + await send_apdu(eth.transport, sign_more_2); + let sign_promise = send_apdu(eth.transport, sign_more_3); - await waitForAppScreen(sim, current_screen); - await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_batch_transfer', [8, -1, 0]); + await waitForAppScreen(sim, current_screen); + await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_batch_transfer', [8, -1, 0]); - await sign_promise; + await sign_promise; }));