UNPKG

@ledgerhq/hw-app-aptos

Version:
67 lines (61 loc) 3.56 kB
import { openTransportReplayer, RecordStore } from "@ledgerhq/hw-transport-mocker"; import Aptos from "../src/Aptos"; test("getVersion", async () => { const transport = await openTransportReplayer( RecordStore.fromString(` => 5b03000000 <= 0000019000 `), ); const aptos = new Aptos(transport); const result = await aptos.getVersion(); expect(result).toEqual({ version: "0.0.1", }); }); test("getAddress without display", async () => { const transport = await openTransportReplayer( RecordStore.fromString(` => 5b05000015058000002c8000027d800000018000000080000000 <= 2104d1d99b67e37b483161a0fa369c46f34a3be4863c20e20fc7cdc669c0826a41132070c750d272682024bdab22357e7091dff07583574df88850196c14e2da0209df9000 `), ); const aptos = new Aptos(transport); const { address } = await aptos.getAddress("m/44'/637'/1'/0'/0'", false); expect(address).toEqual("0x783135e8b00430253a22ba041d860c373d7a1501ccf7ac2d1ad37a8ed2775aee"); }); test("getAddress with display", async () => { const transport = await openTransportReplayer( RecordStore.fromString(` => 5b05010015058000002c8000027d800000018000000080000000 <= 2104d1d99b67e37b483161a0fa369c46f34a3be4863c20e20fc7cdc669c0826a41132070c750d272682024bdab22357e7091dff07583574df88850196c14e2da0209df9000 `), ); const aptos = new Aptos(transport); const { address } = await aptos.getAddress("m/44'/637'/1'/0'/0'", true); expect(address).toEqual("0x783135e8b00430253a22ba041d860c373d7a1501ccf7ac2d1ad37a8ed2775aee"); }); test("signTransaction", async () => { const transport = await openTransportReplayer( RecordStore.fromString(` => 5b06008015058000002c8000027d800000018000000080000000 <= 9000 => 5b060100f3b5e97db07fa0bd0e5598aa3643a9bc6f6693bddc1a9fec9e674a461eaa00b193783135e8b00430253a22ba041d860c373d7a1501ccf7ac2d1ad37a8ed2775aee000000000000000002000000000000000000000000000000000000000000000000000000000000000104636f696e087472616e73666572010700000000000000000000000000000000000000000000000000000000000000010a6170746f735f636f696e094170746f73436f696e000220094c6fc0d3b382a599c37e1aaa7618eff2c96a3586876082c4594c50c50d7dde082a00000000000000204e0000000000006400000000000000565c51630000000022 <= 409f6cc54741dceafa8ef5cd11bb33bf432b3296dc516ffa7d798778dac588e2efe2974a9401a366003fd66e14ae446f1d2a9eb99d863e9cf4bf7665cd19663b079000 `), ); const aptos = new Aptos(transport); const transaction = Buffer.from( "b5e97db07fa0bd0e5598aa3643a9bc6f6693bddc1a9fec9e674a461eaa00b193783135e8b00430253a22ba041d860c373d7a1501ccf7ac2d1ad37a8ed2775aee000000000000000002000000000000000000000000000000000000000000000000000000000000000104636f696e087472616e73666572010700000000000000000000000000000000000000000000000000000000000000010a6170746f735f636f696e094170746f73436f696e000220094c6fc0d3b382a599c37e1aaa7618eff2c96a3586876082c4594c50c50d7dde082a00000000000000204e0000000000006400000000000000565c51630000000022", "hex", ); const { signature } = await aptos.signTransaction("m/44'/637'/1'/0'/0'", transaction); expect(signature.toString("hex")).toEqual( "9f6cc54741dceafa8ef5cd11bb33bf432b3296dc516ffa7d798778dac588e2efe2974a9401a366003fd66e14ae446f1d2a9eb99d863e9cf4bf7665cd19663b07", ); }); test("should throw on invalid derivation path", async () => { const transport = await openTransportReplayer(new RecordStore()); const aptos = new Aptos(transport); return expect(aptos.getAddress("some invalid derivation path", false)).rejects.toThrow("input"); });