@ledgerhq/coin-aptos 1.9.6-next.0 → 2.0.0-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.unimportedrc.json +18 -6
- package/CHANGELOG.md +19 -4
- package/jest.integ.config.js +8 -0
- package/lib/__tests__/api/index.integ.test.d.ts +2 -0
- package/lib/__tests__/api/index.integ.test.d.ts.map +1 -0
- package/lib/__tests__/api/index.integ.test.js +22 -0
- package/lib/__tests__/api/index.integ.test.js.map +1 -0
- package/lib/__tests__/api/index.test.js +48 -404
- package/lib/__tests__/api/index.test.js.map +1 -1
- package/lib/__tests__/bridge/broadcast.test.js +5 -5
- package/lib/__tests__/bridge/broadcast.test.js.map +1 -1
- package/lib/__tests__/bridge/buildTransaction.test.js +60 -5
- package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/getFeesForTransaction.test.js +115 -14
- package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/getTransactionStatus.test.js +175 -37
- package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
- package/lib/__tests__/bridge/logic.test.js +889 -115
- package/lib/__tests__/bridge/logic.test.js.map +1 -1
- package/lib/__tests__/bridge/prepareTransaction.test.js +3 -3
- package/lib/__tests__/bridge/prepareTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/signOperation.test.js +131 -4
- package/lib/__tests__/bridge/signOperation.test.js.map +1 -1
- package/lib/__tests__/bridge/synchronisation.test.js +1215 -68
- package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
- package/lib/__tests__/network/client.test.d.ts +2 -0
- package/lib/__tests__/network/client.test.d.ts.map +1 -0
- package/lib/__tests__/network/client.test.js +478 -0
- package/lib/__tests__/network/client.test.js.map +1 -0
- package/lib/api/index.d.ts +4 -30
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +26 -170
- package/lib/api/index.js.map +1 -1
- package/lib/bridge/bridge.fixture.d.ts +2 -0
- package/lib/bridge/bridge.fixture.d.ts.map +1 -1
- package/lib/bridge/bridge.fixture.js +85 -13
- package/lib/bridge/bridge.fixture.js.map +1 -1
- package/lib/bridge/broadcast.d.ts +3 -2
- package/lib/bridge/broadcast.d.ts.map +1 -1
- package/lib/bridge/broadcast.js +4 -3
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/bridge/buildTransaction.d.ts +1 -1
- package/lib/bridge/buildTransaction.d.ts.map +1 -1
- package/lib/bridge/buildTransaction.js +29 -3
- package/lib/bridge/buildTransaction.js.map +1 -1
- package/lib/bridge/estimateMaxSpendable.js +3 -3
- package/lib/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/getFeesForTransaction.d.ts +1 -1
- package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
- package/lib/bridge/getFeesForTransaction.js +12 -7
- package/lib/bridge/getFeesForTransaction.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +28 -14
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/index.d.ts +1 -1
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/logic.d.ts +13 -8
- package/lib/bridge/logic.d.ts.map +1 -1
- package/lib/bridge/logic.js +152 -54
- package/lib/bridge/logic.js.map +1 -1
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +4 -4
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +20 -6
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/synchronisation.d.ts +15 -0
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +129 -6
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/config.d.ts +13 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +9 -0
- package/lib/config.js.map +1 -0
- package/lib/constants.d.ts +5 -1
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +6 -2
- package/lib/constants.js.map +1 -1
- package/lib/network/client.d.ts +34 -0
- package/lib/network/client.d.ts.map +1 -0
- package/lib/network/client.js +213 -0
- package/lib/network/client.js.map +1 -0
- package/lib/network/graphql/queries.d.ts.map +1 -0
- package/lib/{api → network}/graphql/queries.js +6 -6
- package/lib/network/graphql/queries.js.map +1 -0
- package/lib/{api → network}/graphql/types.d.ts +9 -9
- package/lib/network/graphql/types.d.ts.map +1 -0
- package/lib/{api → network}/graphql/types.js.map +1 -1
- package/lib/network/index.d.ts +2 -1
- package/lib/network/index.d.ts.map +1 -1
- package/lib/network/index.js +15 -0
- package/lib/network/index.js.map +1 -1
- package/lib/test/bot-specs.d.ts.map +1 -1
- package/lib/test/bot-specs.js +40 -1
- package/lib/test/bot-specs.js.map +1 -1
- package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
- package/lib/test/bridgeDatasetTest.js +44 -62
- package/lib/test/bridgeDatasetTest.js.map +1 -1
- package/lib/test/speculos-deviceActions.d.ts +1 -0
- package/lib/test/speculos-deviceActions.d.ts.map +1 -1
- package/lib/test/speculos-deviceActions.js +37 -5
- package/lib/test/speculos-deviceActions.js.map +1 -1
- package/lib/types/assets.d.ts +3 -0
- package/lib/types/assets.d.ts.map +1 -0
- package/lib/types/assets.js +3 -0
- package/lib/types/assets.js.map +1 -0
- package/lib/types/index.d.ts +18 -7
- package/lib/types/index.d.ts.map +1 -1
- package/lib-es/__tests__/api/index.integ.test.d.ts +2 -0
- package/lib-es/__tests__/api/index.integ.test.d.ts.map +1 -0
- package/lib-es/__tests__/api/index.integ.test.js +20 -0
- package/lib-es/__tests__/api/index.integ.test.js.map +1 -0
- package/lib-es/__tests__/api/index.test.js +52 -408
- package/lib-es/__tests__/api/index.test.js.map +1 -1
- package/lib-es/__tests__/bridge/broadcast.test.js +2 -2
- package/lib-es/__tests__/bridge/broadcast.test.js.map +1 -1
- package/lib-es/__tests__/bridge/buildTransaction.test.js +60 -5
- package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +112 -11
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/getTransactionStatus.test.js +177 -39
- package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
- package/lib-es/__tests__/bridge/logic.test.js +891 -117
- package/lib-es/__tests__/bridge/logic.test.js.map +1 -1
- package/lib-es/__tests__/bridge/prepareTransaction.test.js +2 -2
- package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/signOperation.test.js +131 -4
- package/lib-es/__tests__/bridge/signOperation.test.js.map +1 -1
- package/lib-es/__tests__/bridge/synchronisation.test.js +1213 -69
- package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -1
- package/lib-es/__tests__/network/client.test.d.ts +2 -0
- package/lib-es/__tests__/network/client.test.d.ts.map +1 -0
- package/lib-es/__tests__/network/client.test.js +473 -0
- package/lib-es/__tests__/network/client.test.js.map +1 -0
- package/lib-es/api/index.d.ts +4 -30
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +24 -168
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/bridge/bridge.fixture.d.ts +2 -0
- package/lib-es/bridge/bridge.fixture.d.ts.map +1 -1
- package/lib-es/bridge/bridge.fixture.js +82 -12
- package/lib-es/bridge/bridge.fixture.js.map +1 -1
- package/lib-es/bridge/broadcast.d.ts +3 -2
- package/lib-es/bridge/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/broadcast.js +4 -3
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/bridge/buildTransaction.d.ts +1 -1
- package/lib-es/bridge/buildTransaction.d.ts.map +1 -1
- package/lib-es/bridge/buildTransaction.js +30 -4
- package/lib-es/bridge/buildTransaction.js.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js +2 -2
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/getFeesForTransaction.d.ts +1 -1
- package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
- package/lib-es/bridge/getFeesForTransaction.js +13 -8
- package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +28 -14
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/index.d.ts +1 -1
- package/lib-es/bridge/index.d.ts.map +1 -1
- package/lib-es/bridge/logic.d.ts +13 -8
- package/lib-es/bridge/logic.d.ts.map +1 -1
- package/lib-es/bridge/logic.js +146 -52
- package/lib-es/bridge/logic.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +3 -3
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/signOperation.js +18 -4
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/synchronisation.d.ts +15 -0
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +124 -4
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/config.d.ts +13 -0
- package/lib-es/config.d.ts.map +1 -0
- package/lib-es/config.js +4 -0
- package/lib-es/config.js.map +1 -0
- package/lib-es/constants.d.ts +5 -1
- package/lib-es/constants.d.ts.map +1 -1
- package/lib-es/constants.js +5 -1
- package/lib-es/constants.js.map +1 -1
- package/lib-es/network/client.d.ts +34 -0
- package/lib-es/network/client.d.ts.map +1 -0
- package/lib-es/network/client.js +206 -0
- package/lib-es/network/client.js.map +1 -0
- package/lib-es/network/graphql/queries.d.ts.map +1 -0
- package/lib-es/{api → network}/graphql/queries.js +6 -6
- package/lib-es/network/graphql/queries.js.map +1 -0
- package/lib-es/{api → network}/graphql/types.d.ts +9 -9
- package/lib-es/network/graphql/types.d.ts.map +1 -0
- package/lib-es/{api → network}/graphql/types.js.map +1 -1
- package/lib-es/network/index.d.ts +2 -1
- package/lib-es/network/index.d.ts.map +1 -1
- package/lib-es/network/index.js +1 -0
- package/lib-es/network/index.js.map +1 -1
- package/lib-es/test/bot-specs.d.ts.map +1 -1
- package/lib-es/test/bot-specs.js +41 -2
- package/lib-es/test/bot-specs.js.map +1 -1
- package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
- package/lib-es/test/bridgeDatasetTest.js +44 -59
- package/lib-es/test/bridgeDatasetTest.js.map +1 -1
- package/lib-es/test/speculos-deviceActions.d.ts +1 -0
- package/lib-es/test/speculos-deviceActions.d.ts.map +1 -1
- package/lib-es/test/speculos-deviceActions.js +36 -4
- package/lib-es/test/speculos-deviceActions.js.map +1 -1
- package/lib-es/types/assets.d.ts +3 -0
- package/lib-es/types/assets.d.ts.map +1 -0
- package/lib-es/types/assets.js +2 -0
- package/lib-es/types/assets.js.map +1 -0
- package/lib-es/types/index.d.ts +18 -7
- package/lib-es/types/index.d.ts.map +1 -1
- package/package.json +10 -8
- package/src/__tests__/api/index.integ.test.ts +24 -0
- package/src/__tests__/api/index.test.ts +58 -477
- package/src/__tests__/bridge/broadcast.test.ts +2 -2
- package/src/__tests__/bridge/buildTransaction.test.ts +87 -5
- package/src/__tests__/bridge/getFeesForTransaction.test.ts +146 -11
- package/src/__tests__/bridge/getTransactionStatus.test.ts +217 -38
- package/src/__tests__/bridge/logic.test.ts +922 -118
- package/src/__tests__/bridge/prepareTransaction.test.ts +2 -2
- package/src/__tests__/bridge/signOperation.test.ts +147 -5
- package/src/__tests__/bridge/synchronisation.test.ts +1265 -71
- package/src/__tests__/network/client.test.ts +569 -0
- package/src/api/index.ts +30 -223
- package/src/bridge/bridge.fixture.ts +91 -12
- package/src/bridge/broadcast.ts +7 -7
- package/src/bridge/buildTransaction.ts +40 -7
- package/src/bridge/estimateMaxSpendable.ts +2 -2
- package/src/bridge/getFeesForTransaction.ts +15 -10
- package/src/bridge/getTransactionStatus.ts +35 -13
- package/src/bridge/index.ts +1 -1
- package/src/bridge/logic.ts +202 -63
- package/src/bridge/prepareTransaction.ts +5 -3
- package/src/bridge/signOperation.ts +20 -4
- package/src/bridge/synchronisation.ts +171 -4
- package/src/config.ts +19 -0
- package/src/constants.ts +12 -1
- package/src/network/client.ts +265 -0
- package/src/{api → network}/graphql/queries.ts +6 -6
- package/src/{api → network}/graphql/types.ts +9 -9
- package/src/network/index.ts +2 -1
- package/src/test/bot-specs.ts +63 -3
- package/src/test/bridgeDatasetTest.ts +46 -59
- package/src/test/speculos-deviceActions.ts +40 -4
- package/src/types/assets.ts +3 -0
- package/src/types/index.ts +15 -1
- package/lib/api/graphql/queries.d.ts.map +0 -1
- package/lib/api/graphql/queries.js.map +0 -1
- package/lib/api/graphql/types.d.ts.map +0 -1
- package/lib-es/api/graphql/queries.d.ts.map +0 -1
- package/lib-es/api/graphql/queries.js.map +0 -1
- package/lib-es/api/graphql/types.d.ts.map +0 -1
- /package/lib/{api → network}/graphql/queries.d.ts +0 -0
- /package/lib/{api → network}/graphql/types.js +0 -0
- /package/lib-es/{api → network}/graphql/queries.d.ts +0 -0
- /package/lib-es/{api → network}/graphql/types.js +0 -0
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const broadcast_1 = __importDefault(require("../../bridge/broadcast"));
|
|
7
|
-
const
|
|
7
|
+
const network_1 = require("../../network");
|
|
8
8
|
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
9
9
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
-
jest.mock("../../
|
|
10
|
+
jest.mock("../../network");
|
|
11
11
|
jest.mock("@ledgerhq/coin-framework/operation");
|
|
12
12
|
describe("broadcast", () => {
|
|
13
13
|
const mockAccount = {
|
|
@@ -68,7 +68,7 @@ describe("broadcast", () => {
|
|
|
68
68
|
};
|
|
69
69
|
it("should broadcast the signed operation and return the patched operation", async () => {
|
|
70
70
|
const mockHash = "mockHash";
|
|
71
|
-
|
|
71
|
+
network_1.AptosAPI.prototype.broadcast.mockResolvedValue(mockHash);
|
|
72
72
|
operation_1.patchOperationWithHash.mockReturnValue({
|
|
73
73
|
...mockOperation,
|
|
74
74
|
hash: mockHash,
|
|
@@ -77,12 +77,12 @@ describe("broadcast", () => {
|
|
|
77
77
|
signedOperation: mockSignedOperation,
|
|
78
78
|
account: mockAccount,
|
|
79
79
|
});
|
|
80
|
-
expect(
|
|
80
|
+
expect(network_1.AptosAPI.prototype.broadcast).toHaveBeenCalledWith("mockSignature");
|
|
81
81
|
expect(operation_1.patchOperationWithHash).toHaveBeenCalledWith(mockOperation, mockHash);
|
|
82
82
|
expect(result).toEqual({ ...mockOperation, hash: mockHash });
|
|
83
83
|
});
|
|
84
84
|
it("should throw an error if broadcast fails", async () => {
|
|
85
|
-
|
|
85
|
+
network_1.AptosAPI.prototype.broadcast.mockRejectedValue(new Error("Broadcast failed"));
|
|
86
86
|
await expect((0, broadcast_1.default)({
|
|
87
87
|
signedOperation: mockSignedOperation,
|
|
88
88
|
account: mockAccount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/broadcast.test.ts"],"names":[],"mappings":";;;;;AAAA,uEAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"broadcast.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/broadcast.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const bridge_fixture_1 = require("../../bridge/bridge.fixture");
|
|
7
7
|
const buildTransaction_1 = __importDefault(require("../../bridge/buildTransaction"));
|
|
8
|
-
const
|
|
8
|
+
const network_1 = require("../../network");
|
|
9
9
|
const logic_1 = require("../../bridge/logic");
|
|
10
10
|
const generateTransaction = jest.fn(() => "tx");
|
|
11
11
|
jest.mock("../../bridge/logic", () => ({
|
|
@@ -16,7 +16,7 @@ jest.mock("../../bridge/logic", () => ({
|
|
|
16
16
|
DEFAULT_GAS: 100,
|
|
17
17
|
DEFAULT_GAS_PRICE: 200,
|
|
18
18
|
}));
|
|
19
|
-
jest.mock("../../
|
|
19
|
+
jest.mock("../../network", () => {
|
|
20
20
|
return {
|
|
21
21
|
AptosAPI: function () {
|
|
22
22
|
return {
|
|
@@ -25,11 +25,14 @@ jest.mock("../../api", () => {
|
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
27
|
});
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
jest.clearAllMocks();
|
|
30
|
+
});
|
|
28
31
|
describe("buildTransaction Test", () => {
|
|
29
|
-
it("should return
|
|
32
|
+
it("should return transaction for main account", async () => {
|
|
30
33
|
const account = (0, bridge_fixture_1.createFixtureAccount)();
|
|
31
34
|
const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
|
|
32
|
-
const aptosClient = new
|
|
35
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
33
36
|
const result = await (0, buildTransaction_1.default)(account, transaction, aptosClient);
|
|
34
37
|
const expected = "tx";
|
|
35
38
|
expect(result).toBe(expected);
|
|
@@ -45,9 +48,61 @@ describe("buildTransaction Test", () => {
|
|
|
45
48
|
expect(generateTransactionArgs[1]).toEqual({
|
|
46
49
|
function: "0x1::aptos_account::transfer_coins",
|
|
47
50
|
typeArguments: ["0x1::aptos_coin::AptosCoin"],
|
|
48
|
-
functionArguments: ["", "0"],
|
|
51
|
+
functionArguments: ["recipient", "0"],
|
|
52
|
+
});
|
|
53
|
+
expect(generateTransactionArgs[2]).toEqual({ maxGasAmount: "100", gasUnitPrice: "200" });
|
|
54
|
+
});
|
|
55
|
+
it("should return transaction for token account of type fungible asset", async () => {
|
|
56
|
+
const account = (0, bridge_fixture_1.createFixtureAccountWithSubAccount)("fungible_asset");
|
|
57
|
+
const transaction = (0, bridge_fixture_1.createFixtureTransactionWithSubAccount)();
|
|
58
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
59
|
+
const result = await (0, buildTransaction_1.default)(account, transaction, aptosClient);
|
|
60
|
+
const expected = "tx";
|
|
61
|
+
expect(result).toBe(expected);
|
|
62
|
+
const mockedNormalizeTransactionOptions = jest.mocked(logic_1.normalizeTransactionOptions);
|
|
63
|
+
expect(mockedNormalizeTransactionOptions).toHaveBeenCalledTimes(1);
|
|
64
|
+
expect(generateTransaction).toHaveBeenCalledTimes(1);
|
|
65
|
+
const generateTransactionArgs = generateTransaction.mock.calls[0];
|
|
66
|
+
expect(mockedNormalizeTransactionOptions.mock.calls[0][0]).toEqual({
|
|
67
|
+
maxGasAmount: "0",
|
|
68
|
+
gasUnitPrice: "0",
|
|
69
|
+
});
|
|
70
|
+
expect(generateTransactionArgs[0]).toBe("address");
|
|
71
|
+
expect(generateTransactionArgs[1]).toEqual({
|
|
72
|
+
function: "0x1::primary_fungible_store::transfer",
|
|
73
|
+
typeArguments: ["0x1::fungible_asset::Metadata"],
|
|
74
|
+
functionArguments: ["contract_address", "recipient", "0"],
|
|
49
75
|
});
|
|
50
76
|
expect(generateTransactionArgs[2]).toEqual({ maxGasAmount: "100", gasUnitPrice: "200" });
|
|
51
77
|
});
|
|
78
|
+
it("should return transaction for token account of type coin", async () => {
|
|
79
|
+
const account = (0, bridge_fixture_1.createFixtureAccountWithSubAccount)("coin");
|
|
80
|
+
const transaction = (0, bridge_fixture_1.createFixtureTransactionWithSubAccount)();
|
|
81
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
82
|
+
const result = await (0, buildTransaction_1.default)(account, transaction, aptosClient);
|
|
83
|
+
const expected = "tx";
|
|
84
|
+
expect(result).toBe(expected);
|
|
85
|
+
const mockedNormalizeTransactionOptions = jest.mocked(logic_1.normalizeTransactionOptions);
|
|
86
|
+
expect(mockedNormalizeTransactionOptions).toHaveBeenCalledTimes(1);
|
|
87
|
+
expect(generateTransaction).toHaveBeenCalledTimes(1);
|
|
88
|
+
const generateTransactionArgs = generateTransaction.mock.calls[0];
|
|
89
|
+
expect(mockedNormalizeTransactionOptions.mock.calls[0][0]).toEqual({
|
|
90
|
+
maxGasAmount: "0",
|
|
91
|
+
gasUnitPrice: "0",
|
|
92
|
+
});
|
|
93
|
+
expect(generateTransactionArgs[0]).toBe("address");
|
|
94
|
+
expect(generateTransactionArgs[1]).toEqual({
|
|
95
|
+
function: "0x1::aptos_account::transfer_coins",
|
|
96
|
+
typeArguments: ["contract_address"],
|
|
97
|
+
functionArguments: ["recipient", "0"],
|
|
98
|
+
});
|
|
99
|
+
expect(generateTransactionArgs[2]).toEqual({ maxGasAmount: "100", gasUnitPrice: "200" });
|
|
100
|
+
});
|
|
101
|
+
it("should throw error if token is not supported", async () => {
|
|
102
|
+
const account = (0, bridge_fixture_1.createFixtureAccountWithSubAccount)("not_supported_token_type");
|
|
103
|
+
const transaction = (0, bridge_fixture_1.createFixtureTransactionWithSubAccount)();
|
|
104
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
105
|
+
expect(async () => await (0, buildTransaction_1.default)(account, transaction, aptosClient)).rejects.toThrow("Token type not_supported_token_type not supported");
|
|
106
|
+
});
|
|
52
107
|
});
|
|
53
108
|
//# sourceMappingURL=buildTransaction.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/buildTransaction.test.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"buildTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/buildTransaction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,9 +29,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
30
30
|
const bridge_fixture_1 = require("../../bridge/bridge.fixture");
|
|
31
31
|
const getFeesForTransaction = __importStar(require("../../bridge/getFeesForTransaction"));
|
|
32
|
-
const
|
|
32
|
+
const network_1 = require("../../network");
|
|
33
33
|
let simulateTransaction = jest.fn();
|
|
34
|
-
jest.mock("../../
|
|
34
|
+
jest.mock("../../network", () => {
|
|
35
35
|
return {
|
|
36
36
|
AptosAPI: function () {
|
|
37
37
|
return {
|
|
@@ -48,15 +48,17 @@ jest.mock("@aptos-labs/ts-sdk", () => {
|
|
|
48
48
|
Ed25519PublicKey: jest.fn(),
|
|
49
49
|
};
|
|
50
50
|
});
|
|
51
|
-
jest.
|
|
52
|
-
return {
|
|
53
|
-
DEFAULT_GAS: 201,
|
|
54
|
-
DEFAULT_GAS_PRICE: 101,
|
|
55
|
-
ESTIMATE_GAS_MUL: 1,
|
|
56
|
-
normalizeTransactionOptions: jest.fn(),
|
|
57
|
-
};
|
|
58
|
-
});
|
|
51
|
+
const mockedGetTokenAccount = jest.fn();
|
|
59
52
|
describe("getFeesForTransaction Test", () => {
|
|
53
|
+
beforeEach(() => {
|
|
54
|
+
jest.mock("../../bridge/logic", () => ({
|
|
55
|
+
DEFAULT_GAS: 201,
|
|
56
|
+
DEFAULT_GAS_PRICE: 101,
|
|
57
|
+
ESTIMATE_GAS_MUL: 1,
|
|
58
|
+
normalizeTransactionOptions: jest.fn(),
|
|
59
|
+
getTokenAccount: mockedGetTokenAccount,
|
|
60
|
+
}));
|
|
61
|
+
});
|
|
60
62
|
describe("when using getFee", () => {
|
|
61
63
|
describe("with vm_status as INSUFFICIENT_BALANCE", () => {
|
|
62
64
|
it("should return a fee estimation object", async () => {
|
|
@@ -69,9 +71,38 @@ describe("getFeesForTransaction Test", () => {
|
|
|
69
71
|
gas_unit_price: "102",
|
|
70
72
|
},
|
|
71
73
|
]);
|
|
74
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
72
75
|
const account = (0, bridge_fixture_1.createFixtureAccount)();
|
|
73
76
|
const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
|
|
74
|
-
const aptosClient = new
|
|
77
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
78
|
+
transaction.amount = new bignumber_js_1.default(1);
|
|
79
|
+
account.xpub = "xpub";
|
|
80
|
+
account.spendableBalance = new bignumber_js_1.default(100000000);
|
|
81
|
+
const result = await getFeesForTransaction.getFee(account, transaction, aptosClient);
|
|
82
|
+
const expected = {
|
|
83
|
+
fees: new bignumber_js_1.default(20604),
|
|
84
|
+
estimate: {
|
|
85
|
+
maxGasAmount: "202",
|
|
86
|
+
gasUnitPrice: "102",
|
|
87
|
+
},
|
|
88
|
+
errors: {},
|
|
89
|
+
};
|
|
90
|
+
expect(result).toEqual(expected);
|
|
91
|
+
});
|
|
92
|
+
it("should return a fee estimation object for the token transaction", async () => {
|
|
93
|
+
simulateTransaction = jest.fn(() => [
|
|
94
|
+
{
|
|
95
|
+
success: true,
|
|
96
|
+
vm_status: [],
|
|
97
|
+
expiration_timestamp_secs: 5,
|
|
98
|
+
gas_used: "202",
|
|
99
|
+
gas_unit_price: "102",
|
|
100
|
+
},
|
|
101
|
+
]);
|
|
102
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
103
|
+
const account = (0, bridge_fixture_1.createFixtureAccountWithSubAccount)("coin");
|
|
104
|
+
const transaction = (0, bridge_fixture_1.createFixtureTransactionWithSubAccount)();
|
|
105
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
75
106
|
transaction.amount = new bignumber_js_1.default(1);
|
|
76
107
|
account.xpub = "xpub";
|
|
77
108
|
account.spendableBalance = new bignumber_js_1.default(100000000);
|
|
@@ -98,9 +129,10 @@ describe("getFeesForTransaction Test", () => {
|
|
|
98
129
|
gas_unit_price: "100",
|
|
99
130
|
},
|
|
100
131
|
]);
|
|
132
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
101
133
|
const account = (0, bridge_fixture_1.createFixtureAccount)();
|
|
102
134
|
const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
|
|
103
|
-
const aptosClient = new
|
|
135
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
104
136
|
transaction.amount = new bignumber_js_1.default(1);
|
|
105
137
|
account.xpub = "xpub";
|
|
106
138
|
account.spendableBalance = new bignumber_js_1.default(100000000);
|
|
@@ -109,6 +141,38 @@ describe("getFeesForTransaction Test", () => {
|
|
|
109
141
|
}).rejects.toThrow("Simulation failed with following error: DUMMY_STATE");
|
|
110
142
|
});
|
|
111
143
|
});
|
|
144
|
+
describe("with vm_status as MAX_GAS_UNITS_BELOW_MIN_TRANSACTION_GAS_UNITS", () => {
|
|
145
|
+
it("should return a fee estimation object with GasInsuficeinetBalance error", async () => {
|
|
146
|
+
simulateTransaction = jest.fn(() => [
|
|
147
|
+
{
|
|
148
|
+
success: false,
|
|
149
|
+
vm_status: ["MAX_GAS_UNITS_BELOW_MIN_TRANSACTION_GAS_UNITS"],
|
|
150
|
+
expiration_timestamp_secs: 5,
|
|
151
|
+
gas_used: "0",
|
|
152
|
+
gas_unit_price: "100",
|
|
153
|
+
},
|
|
154
|
+
]);
|
|
155
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
156
|
+
const account = (0, bridge_fixture_1.createFixtureAccountWithSubAccount)("coin");
|
|
157
|
+
const transaction = (0, bridge_fixture_1.createFixtureTransactionWithSubAccount)();
|
|
158
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
159
|
+
transaction.amount = new bignumber_js_1.default(1);
|
|
160
|
+
account.xpub = "xpub";
|
|
161
|
+
account.spendableBalance = new bignumber_js_1.default(100000000);
|
|
162
|
+
const result = await getFeesForTransaction.getFee(account, transaction, aptosClient);
|
|
163
|
+
const expected = {
|
|
164
|
+
fees: new bignumber_js_1.default(0),
|
|
165
|
+
estimate: {
|
|
166
|
+
maxGasAmount: "0",
|
|
167
|
+
gasUnitPrice: "100",
|
|
168
|
+
},
|
|
169
|
+
errors: {
|
|
170
|
+
maxGasAmount: "GasInsufficientBalance",
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
expect(result).toEqual(expected);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
112
176
|
});
|
|
113
177
|
describe("when using getEstimatedGas", () => {
|
|
114
178
|
describe("when key not in cache", () => {
|
|
@@ -122,9 +186,10 @@ describe("getFeesForTransaction Test", () => {
|
|
|
122
186
|
gas_unit_price: "102",
|
|
123
187
|
},
|
|
124
188
|
]);
|
|
189
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
125
190
|
const account = (0, bridge_fixture_1.createFixtureAccount)();
|
|
126
191
|
const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
|
|
127
|
-
const aptosClient = new
|
|
192
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
128
193
|
transaction.amount = new bignumber_js_1.default(1);
|
|
129
194
|
account.xpub = "xpub";
|
|
130
195
|
account.spendableBalance = new bignumber_js_1.default(100000000);
|
|
@@ -154,10 +219,11 @@ describe("getFeesForTransaction Test", () => {
|
|
|
154
219
|
gas_unit_price: "102",
|
|
155
220
|
},
|
|
156
221
|
]);
|
|
222
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
157
223
|
const account = (0, bridge_fixture_1.createFixtureAccount)();
|
|
158
224
|
account.xpub = "xpub";
|
|
159
225
|
const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
|
|
160
|
-
const aptosClient = new
|
|
226
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
161
227
|
transaction.amount = new bignumber_js_1.default(10);
|
|
162
228
|
const result1 = await getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
|
|
163
229
|
const result2 = await getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
|
|
@@ -175,5 +241,40 @@ describe("getFeesForTransaction Test", () => {
|
|
|
175
241
|
});
|
|
176
242
|
});
|
|
177
243
|
});
|
|
244
|
+
describe("when key is in cache from a token account", () => {
|
|
245
|
+
beforeEach(() => {
|
|
246
|
+
jest.clearAllMocks();
|
|
247
|
+
});
|
|
248
|
+
it("should return cached fee", async () => {
|
|
249
|
+
simulateTransaction = jest.fn(() => [
|
|
250
|
+
{
|
|
251
|
+
success: true,
|
|
252
|
+
vm_status: [],
|
|
253
|
+
expiration_timestamp_secs: 5,
|
|
254
|
+
gas_used: "202",
|
|
255
|
+
gas_unit_price: "102",
|
|
256
|
+
},
|
|
257
|
+
]);
|
|
258
|
+
mockedGetTokenAccount.mockReturnValue(undefined);
|
|
259
|
+
const account = (0, bridge_fixture_1.createFixtureAccountWithSubAccount)("coin");
|
|
260
|
+
account.xpub = "xpub";
|
|
261
|
+
const transaction = (0, bridge_fixture_1.createFixtureTransactionWithSubAccount)();
|
|
262
|
+
const aptosClient = new network_1.AptosAPI(account.currency.id);
|
|
263
|
+
transaction.amount = new bignumber_js_1.default(10);
|
|
264
|
+
const result1 = await getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
|
|
265
|
+
const result2 = await getFeesForTransaction.getEstimatedGas(account, transaction, aptosClient);
|
|
266
|
+
expect(simulateTransaction.mock.calls).toHaveLength(1);
|
|
267
|
+
const expected = {
|
|
268
|
+
errors: {},
|
|
269
|
+
estimate: {
|
|
270
|
+
gasUnitPrice: "102",
|
|
271
|
+
maxGasAmount: "202",
|
|
272
|
+
},
|
|
273
|
+
fees: new bignumber_js_1.default("20604"),
|
|
274
|
+
};
|
|
275
|
+
expect(result1).toEqual(expected);
|
|
276
|
+
expect(result2).toEqual(expected);
|
|
277
|
+
});
|
|
278
|
+
});
|
|
178
279
|
});
|
|
179
280
|
//# sourceMappingURL=getFeesForTransaction.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFeesForTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"getFeesForTransaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":"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"}
|