@ledgerhq/coin-aptos
Version:
Ledger Aptos Coin integration
51 lines • 3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const network_1 = require("../../network");
const bridge_fixture_1 = require("../../bridge/bridge.fixture");
const ts_sdk_1 = require("@aptos-labs/ts-sdk");
jest.mock("@aptos-labs/ts-sdk", () => {
const originalModule = jest.requireActual("@aptos-labs/ts-sdk");
const partialMockedModule = Object.keys(originalModule).reduce((pre, methodName) => {
pre[methodName] = jest.fn();
return pre;
}, {});
return {
...partialMockedModule,
// mock all except these
AccountAddress: originalModule.AccountAddress,
Hex: originalModule.Hex,
};
});
let mockedGenerateSigningMessageForTransaction;
let mockedGenerateSignedTransaction;
describe("signTransaction", () => {
beforeAll(() => {
mockedGenerateSigningMessageForTransaction = jest.mocked(ts_sdk_1.generateSigningMessageForTransaction);
mockedGenerateSignedTransaction = jest.mocked(ts_sdk_1.generateSignedTransaction);
});
afterEach(() => {
jest.resetAllMocks();
});
it("should throw an error", async () => {
mockedGenerateSigningMessageForTransaction.mockReturnValue("signingMessage");
const mockGenerateSignedTransactionSpy = jest.spyOn({ generateSignedTransaction: mockedGenerateSignedTransaction }, "generateSignedTransaction");
const signerContext = jest.fn().mockImplementation(() => ({ signature: "0x7aa193705193f4" }));
const account = (0, bridge_fixture_1.createFixtureAccount)();
const deviceId = "nanoX";
const rawTxn = new ts_sdk_1.RawTransaction(new ts_sdk_1.AccountAddress(Uint8Array.from(Buffer.from("thisaddressmustbe32byteslooooong"))), BigInt(1), "", BigInt(100), BigInt(50), BigInt(1), { chainId: 1 });
expect((0, network_1.signTransaction)(signerContext, account, deviceId, rawTxn)).rejects.toThrow("Account must have a public signing key");
expect(mockGenerateSignedTransactionSpy).toHaveBeenCalledTimes(0);
});
it("should sign a transaction", async () => {
mockedGenerateSigningMessageForTransaction.mockReturnValue("signingMessage");
const mockGenerateSignedTransactionSpy = jest.spyOn({ generateSignedTransaction: mockedGenerateSignedTransaction }, "generateSignedTransaction");
const signerContext = jest.fn().mockImplementation(() => ({ signature: "0x7aa193705193f4" }));
const account = (0, bridge_fixture_1.createFixtureAccount)();
account.xpub = "0xb69a68cc64f7aa193705193f4dd598320a0a74baf7e4b50c9980c5bd60a82390";
const deviceId = "nanoX";
const rawTxn = new ts_sdk_1.RawTransaction(ts_sdk_1.AccountAddress.fromString(account.xpub), BigInt(1), "", BigInt(100), BigInt(50), BigInt(1), { chainId: 1 });
await (0, network_1.signTransaction)(signerContext, account, deviceId, rawTxn);
expect(mockGenerateSignedTransactionSpy).toHaveBeenCalledTimes(1);
});
});
//# sourceMappingURL=index.test.js.map