@ledgerhq/coin-evm 0.11.1 → 0.12.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/CHANGELOG.md +25 -0
- package/lib/__tests__/unit/editTransaction/hasMinimumFunds.test.d.ts +2 -0
- package/lib/__tests__/unit/editTransaction/hasMinimumFunds.test.d.ts.map +1 -0
- package/lib/__tests__/unit/editTransaction/hasMinimumFunds.test.js +127 -0
- package/lib/__tests__/unit/editTransaction/hasMinimumFunds.test.js.map +1 -0
- package/lib/__tests__/unit/editTransaction/isStrategyDisabled.test.js +34 -0
- package/lib/__tests__/unit/editTransaction/isStrategyDisabled.test.js.map +1 -1
- package/lib/__tests__/unit/editTransaction/isTransactionConfirmed.test.d.ts +2 -0
- package/lib/__tests__/unit/editTransaction/isTransactionConfirmed.test.d.ts.map +1 -0
- package/lib/__tests__/unit/editTransaction/isTransactionConfirmed.test.js +61 -0
- package/lib/__tests__/unit/editTransaction/isTransactionConfirmed.test.js.map +1 -0
- package/lib/__tests__/unit/getTransactionStatus.unit.test.js +708 -368
- package/lib/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -1
- package/lib/__tests__/unit/operation.test.js +93 -27
- package/lib/__tests__/unit/operation.test.js.map +1 -1
- package/lib/api/gasTracker/ledger.d.ts.map +1 -1
- package/lib/api/gasTracker/ledger.js +2 -0
- package/lib/api/gasTracker/ledger.js.map +1 -1
- package/lib/editTransaction/index.d.ts.map +1 -1
- package/lib/editTransaction/index.js +1 -0
- package/lib/editTransaction/index.js.map +1 -1
- package/lib/getTransactionStatus.d.ts +17 -1
- package/lib/getTransactionStatus.d.ts.map +1 -1
- package/lib/getTransactionStatus.js +4 -3
- package/lib/getTransactionStatus.js.map +1 -1
- package/lib/operation.d.ts.map +1 -1
- package/lib/operation.js +0 -2
- package/lib/operation.js.map +1 -1
- package/lib/specs.d.ts.map +1 -1
- package/lib/specs.js +2 -0
- package/lib/specs.js.map +1 -1
- package/lib-es/__tests__/unit/editTransaction/hasMinimumFunds.test.d.ts +2 -0
- package/lib-es/__tests__/unit/editTransaction/hasMinimumFunds.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/editTransaction/hasMinimumFunds.test.js +99 -0
- package/lib-es/__tests__/unit/editTransaction/hasMinimumFunds.test.js.map +1 -0
- package/lib-es/__tests__/unit/editTransaction/isStrategyDisabled.test.js +34 -0
- package/lib-es/__tests__/unit/editTransaction/isStrategyDisabled.test.js.map +1 -1
- package/lib-es/__tests__/unit/editTransaction/isTransactionConfirmed.test.d.ts +2 -0
- package/lib-es/__tests__/unit/editTransaction/isTransactionConfirmed.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/editTransaction/isTransactionConfirmed.test.js +36 -0
- package/lib-es/__tests__/unit/editTransaction/isTransactionConfirmed.test.js.map +1 -0
- package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js +683 -366
- package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/operation.test.js +93 -27
- package/lib-es/__tests__/unit/operation.test.js.map +1 -1
- package/lib-es/api/gasTracker/ledger.d.ts.map +1 -1
- package/lib-es/api/gasTracker/ledger.js +2 -0
- package/lib-es/api/gasTracker/ledger.js.map +1 -1
- package/lib-es/editTransaction/index.d.ts.map +1 -1
- package/lib-es/editTransaction/index.js +1 -0
- package/lib-es/editTransaction/index.js.map +1 -1
- package/lib-es/getTransactionStatus.d.ts +17 -1
- package/lib-es/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/getTransactionStatus.js +1 -1
- package/lib-es/getTransactionStatus.js.map +1 -1
- package/lib-es/operation.d.ts.map +1 -1
- package/lib-es/operation.js +0 -2
- package/lib-es/operation.js.map +1 -1
- package/lib-es/specs.d.ts.map +1 -1
- package/lib-es/specs.js +2 -0
- package/lib-es/specs.js.map +1 -1
- package/package.json +10 -10
- package/src/__tests__/unit/editTransaction/__snapshots__/getFormattedFeeFields.test.ts.snap +360 -0
- package/src/__tests__/unit/editTransaction/hasMinimumFunds.test.ts +123 -0
- package/src/__tests__/unit/editTransaction/isStrategyDisabled.test.ts +37 -0
- package/src/__tests__/unit/editTransaction/isTransactionConfirmed.test.ts +35 -0
- package/src/__tests__/unit/getTransactionStatus.unit.test.ts +1059 -611
- package/src/__tests__/unit/operation.test.ts +160 -49
- package/src/api/gasTracker/ledger.ts +2 -0
- package/src/editTransaction/index.ts +2 -0
- package/src/getTransactionStatus.ts +2 -2
- package/src/operation.ts +0 -1
- package/src/specs.ts +2 -0
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @ledgerhq/coin-evm
|
|
2
2
|
|
|
3
|
+
## 0.12.0-nightly.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#5743](https://github.com/LedgerHQ/ledger-live/pull/5743) [`e494a2b`](https://github.com/LedgerHQ/ledger-live/commit/e494a2b984fb0406fe9225bb4eccde3d9585efe1) Thanks [@chabroA](https://github.com/chabroA)! - remove unreachable statement
|
|
8
|
+
|
|
9
|
+
## 0.12.0-nightly.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#5722](https://github.com/LedgerHQ/ledger-live/pull/5722) [`2358e87`](https://github.com/LedgerHQ/ledger-live/commit/2358e8748d9ae9398cfc05a0ec20a6b191fc7324) Thanks [@chabroA](https://github.com/chabroA)! - Add Ethereum Sepolia and Holesky
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [[`2358e87`](https://github.com/LedgerHQ/ledger-live/commit/2358e8748d9ae9398cfc05a0ec20a6b191fc7324), [`69bbdce`](https://github.com/LedgerHQ/ledger-live/commit/69bbdce5c88d69248cbddb94ac4627334c1df626)]:
|
|
18
|
+
- @ledgerhq/types-cryptoassets@7.9.0-nightly.0
|
|
19
|
+
- @ledgerhq/cryptoassets@11.4.0-nightly.0
|
|
20
|
+
- @ledgerhq/coin-framework@0.11.0-nightly.0
|
|
21
|
+
- @ledgerhq/live-env@0.9.0-nightly.0
|
|
22
|
+
- @ledgerhq/types-live@6.43.2-nightly.0
|
|
23
|
+
- @ledgerhq/domain-service@1.1.17-nightly.0
|
|
24
|
+
- @ledgerhq/evm-tools@1.0.13-nightly.0
|
|
25
|
+
- @ledgerhq/hw-app-eth@6.35.2-nightly.0
|
|
26
|
+
- @ledgerhq/live-network@1.1.11-nightly.0
|
|
27
|
+
|
|
3
28
|
## 0.11.1
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasMinimumFunds.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/editTransaction/hasMinimumFunds.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
30
|
+
const liveEnv = __importStar(require("@ledgerhq/live-env"));
|
|
31
|
+
const logic = __importStar(require("../../../logic"));
|
|
32
|
+
const hasMinimumFunds_1 = require("../../../editTransaction/hasMinimumFunds");
|
|
33
|
+
jest.mock("@ledgerhq/live-env");
|
|
34
|
+
jest.mock("../../../logic");
|
|
35
|
+
const mockedLogic = jest.mocked(logic);
|
|
36
|
+
const mockedLiveEnv = jest.mocked(liveEnv);
|
|
37
|
+
describe("hasMinimumFunds", () => {
|
|
38
|
+
describe("hasMinimumFundsToCancel", () => {
|
|
39
|
+
const mainAccount = {
|
|
40
|
+
balance: new bignumber_js_1.default(0),
|
|
41
|
+
};
|
|
42
|
+
afterAll(() => {
|
|
43
|
+
jest.restoreAllMocks();
|
|
44
|
+
});
|
|
45
|
+
describe.each([
|
|
46
|
+
{ label: "EIP1559", type: 2, envVar: "EVM_REPLACE_TX_EIP1559_MAXFEE_FACTOR" },
|
|
47
|
+
{ label: "Legacy", type: 1, envVar: "EVM_REPLACE_TX_LEGACY_GASPRICE_FACTOR" },
|
|
48
|
+
])("$label", ({ type, envVar }) => {
|
|
49
|
+
const transactionToUpdate = { type };
|
|
50
|
+
test("should return true if has enough funds", () => {
|
|
51
|
+
// Mock the necessary dependencies
|
|
52
|
+
jest.spyOn(liveEnv, "getEnv").mockReturnValue(new bignumber_js_1.default(2));
|
|
53
|
+
jest.spyOn(logic, "getEstimatedFees").mockReturnValue(new bignumber_js_1.default(100));
|
|
54
|
+
mainAccount.balance = new bignumber_js_1.default(201);
|
|
55
|
+
const result = (0, hasMinimumFunds_1.hasMinimumFundsToCancel)({ mainAccount, transactionToUpdate });
|
|
56
|
+
expect(result).toBe(true);
|
|
57
|
+
expect(mockedLiveEnv.getEnv).toHaveBeenCalledWith(envVar);
|
|
58
|
+
expect(mockedLogic.getEstimatedFees).toHaveBeenCalledWith(transactionToUpdate);
|
|
59
|
+
});
|
|
60
|
+
test("should return false if does not have enough funds", () => {
|
|
61
|
+
// Mock the necessary dependencies
|
|
62
|
+
jest.spyOn(liveEnv, "getEnv").mockReturnValue(new bignumber_js_1.default(2));
|
|
63
|
+
jest.spyOn(logic, "getEstimatedFees").mockReturnValue(new bignumber_js_1.default(100));
|
|
64
|
+
mainAccount.balance = new bignumber_js_1.default(200);
|
|
65
|
+
const result = (0, hasMinimumFunds_1.hasMinimumFundsToCancel)({ mainAccount, transactionToUpdate });
|
|
66
|
+
expect(result).toBe(false);
|
|
67
|
+
expect(mockedLiveEnv.getEnv).toHaveBeenCalledWith(envVar);
|
|
68
|
+
expect(mockedLogic.getEstimatedFees).toHaveBeenCalledWith(transactionToUpdate);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe("hasMinimumFundsToSpeedUp", () => {
|
|
73
|
+
const mainAccount = {
|
|
74
|
+
balance: new bignumber_js_1.default(0),
|
|
75
|
+
};
|
|
76
|
+
afterAll(() => {
|
|
77
|
+
jest.restoreAllMocks();
|
|
78
|
+
});
|
|
79
|
+
describe.each([
|
|
80
|
+
{ label: "`account` is Account type", accountType: "Account" },
|
|
81
|
+
{ label: "`account` is not Account type", accountType: "TokenAccount" },
|
|
82
|
+
])("$label", ({ accountType }) => {
|
|
83
|
+
const account = {
|
|
84
|
+
type: accountType,
|
|
85
|
+
};
|
|
86
|
+
const defaultBalance = accountType === "Account" ? 300 : 200;
|
|
87
|
+
describe.each([
|
|
88
|
+
{ label: "EIP1559", type: 2, envVar: "EVM_REPLACE_TX_EIP1559_MAXFEE_FACTOR" },
|
|
89
|
+
{ label: "Legacy", type: 1, envVar: "EVM_REPLACE_TX_LEGACY_GASPRICE_FACTOR" },
|
|
90
|
+
])("$label", ({ type, envVar }) => {
|
|
91
|
+
const transactionToUpdate = {
|
|
92
|
+
amount: new bignumber_js_1.default(100),
|
|
93
|
+
type,
|
|
94
|
+
};
|
|
95
|
+
test("should return true if has enough funds", () => {
|
|
96
|
+
// Mock the necessary dependencies
|
|
97
|
+
jest.spyOn(liveEnv, "getEnv").mockReturnValue(new bignumber_js_1.default(2));
|
|
98
|
+
jest.spyOn(logic, "getEstimatedFees").mockReturnValue(new bignumber_js_1.default(100));
|
|
99
|
+
mainAccount.balance = new bignumber_js_1.default(defaultBalance + 1);
|
|
100
|
+
const result = (0, hasMinimumFunds_1.hasMinimumFundsToSpeedUp)({
|
|
101
|
+
account,
|
|
102
|
+
mainAccount,
|
|
103
|
+
transactionToUpdate,
|
|
104
|
+
});
|
|
105
|
+
expect(result).toBe(true);
|
|
106
|
+
expect(mockedLiveEnv.getEnv).toHaveBeenCalledWith(envVar);
|
|
107
|
+
expect(mockedLogic.getEstimatedFees).toHaveBeenCalledWith(transactionToUpdate);
|
|
108
|
+
});
|
|
109
|
+
test("should return false if does not have enough funds", () => {
|
|
110
|
+
// Mock the necessary dependencies
|
|
111
|
+
jest.spyOn(liveEnv, "getEnv").mockReturnValue(new bignumber_js_1.default(2));
|
|
112
|
+
jest.spyOn(logic, "getEstimatedFees").mockReturnValue(new bignumber_js_1.default(100));
|
|
113
|
+
mainAccount.balance = new bignumber_js_1.default(defaultBalance);
|
|
114
|
+
const result = (0, hasMinimumFunds_1.hasMinimumFundsToSpeedUp)({
|
|
115
|
+
account,
|
|
116
|
+
mainAccount,
|
|
117
|
+
transactionToUpdate,
|
|
118
|
+
});
|
|
119
|
+
expect(result).toBe(false);
|
|
120
|
+
expect(mockedLiveEnv.getEnv).toHaveBeenCalledWith(envVar);
|
|
121
|
+
expect(mockedLogic.getEstimatedFees).toHaveBeenCalledWith(transactionToUpdate);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=hasMinimumFunds.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasMinimumFunds.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/editTransaction/hasMinimumFunds.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,30 @@ describe("isStrategyDisabled", () => {
|
|
|
31
31
|
};
|
|
32
32
|
expect((0, isStrategyDisabled_1.isStrategyDisabled)({ transaction, feeData })).toBe(false);
|
|
33
33
|
});
|
|
34
|
+
it("should return false if feeData.maxFeePerGas not provided", () => {
|
|
35
|
+
const transaction = {
|
|
36
|
+
type: 2,
|
|
37
|
+
maxFeePerGas: new bignumber_js_1.default("50000000"),
|
|
38
|
+
maxPriorityFeePerGas: new bignumber_js_1.default("10000000"),
|
|
39
|
+
};
|
|
40
|
+
const feeData = {
|
|
41
|
+
maxFeePerGas: null,
|
|
42
|
+
maxPriorityFeePerGas: new bignumber_js_1.default("100000000"),
|
|
43
|
+
};
|
|
44
|
+
expect((0, isStrategyDisabled_1.isStrategyDisabled)({ transaction, feeData })).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
it("should return false if feeData.maxPriorityFeePerGas not provided", () => {
|
|
47
|
+
const transaction = {
|
|
48
|
+
type: 2,
|
|
49
|
+
maxFeePerGas: new bignumber_js_1.default("50000000"),
|
|
50
|
+
maxPriorityFeePerGas: new bignumber_js_1.default("10000000"),
|
|
51
|
+
};
|
|
52
|
+
const feeData = {
|
|
53
|
+
maxFeePerGas: new bignumber_js_1.default("500000000"),
|
|
54
|
+
maxPriorityFeePerGas: null,
|
|
55
|
+
};
|
|
56
|
+
expect((0, isStrategyDisabled_1.isStrategyDisabled)({ transaction, feeData })).toBe(false);
|
|
57
|
+
});
|
|
34
58
|
});
|
|
35
59
|
describe("Legacy transaction (type 0 or 1)", () => {
|
|
36
60
|
it("should return true if the strategy's gas price is lower than the minimum gas price", () => {
|
|
@@ -53,6 +77,16 @@ describe("isStrategyDisabled", () => {
|
|
|
53
77
|
};
|
|
54
78
|
expect((0, isStrategyDisabled_1.isStrategyDisabled)({ transaction, feeData })).toBe(false);
|
|
55
79
|
});
|
|
80
|
+
it("should return false if feeData.gasPrice not provided", () => {
|
|
81
|
+
const transaction = {
|
|
82
|
+
type: 1,
|
|
83
|
+
gasPrice: new bignumber_js_1.default("100000000"),
|
|
84
|
+
};
|
|
85
|
+
const feeData = {
|
|
86
|
+
gasPrice: null,
|
|
87
|
+
};
|
|
88
|
+
expect((0, isStrategyDisabled_1.isStrategyDisabled)({ transaction, feeData })).toBe(false);
|
|
89
|
+
});
|
|
56
90
|
});
|
|
57
91
|
});
|
|
58
92
|
//# sourceMappingURL=isStrategyDisabled.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isStrategyDisabled.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/editTransaction/isStrategyDisabled.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AACrC,oFAAiF;AAEjF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,MAAM,WAAW,GAAG;gBAClB,IAAI,EAAE,CAAC;gBACP,YAAY,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;gBACxC,oBAAoB,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;aAC1C,CAAC;YACT,MAAM,OAAO,GAAG;gBACd,YAAY,EAAE,IAAI,sBAAS,CAAC,UAAU,CAAC;gBACvC,oBAAoB,EAAE,IAAI,sBAAS,CAAC,UAAU,CAAC;aACzC,CAAC;YACT,MAAM,CAAC,IAAA,uCAAkB,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,WAAW,GAAG;gBAClB,IAAI,EAAE,CAAC;gBACP,YAAY,EAAE,IAAI,sBAAS,CAAC,UAAU,CAAC;gBACvC,oBAAoB,EAAE,IAAI,sBAAS,CAAC,UAAU,CAAC;aACzC,CAAC;YACT,MAAM,OAAO,GAAG;gBACd,YAAY,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;gBACxC,oBAAoB,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;aAC1C,CAAC;YACT,MAAM,CAAC,IAAA,uCAAkB,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;YAC5F,MAAM,WAAW,GAAG;gBAClB,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,IAAI,sBAAS,CAAC,YAAY,CAAC;aAC/B,CAAC;YACT,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;aAC9B,CAAC;YACT,MAAM,CAAC,IAAA,uCAAkB,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;YAC9F,MAAM,WAAW,GAAG;gBAClB,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;aAC9B,CAAC;YACT,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;aAC9B,CAAC;YACT,MAAM,CAAC,IAAA,uCAAkB,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"isStrategyDisabled.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/editTransaction/isStrategyDisabled.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isTransactionConfirmed.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/editTransaction/isTransactionConfirmed.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
const isTransactionConfirmed_1 = require("../../../editTransaction/isTransactionConfirmed");
|
|
36
|
+
const nodeApi = __importStar(require("../../../api/node/rpc.common"));
|
|
37
|
+
describe("isTransactionConfirmed", () => {
|
|
38
|
+
const mockedNodeApi = jest.mocked(nodeApi);
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
jest.clearAllMocks();
|
|
41
|
+
});
|
|
42
|
+
test("should return true if blockHeight is not null", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
const currency = { ethereumLikeInfo: { node: { type: "external" } } };
|
|
44
|
+
const hash = "transactionHash";
|
|
45
|
+
const blockHeight = 12345;
|
|
46
|
+
jest.spyOn(nodeApi, "getTransaction").mockResolvedValue({ blockHeight });
|
|
47
|
+
const result = yield (0, isTransactionConfirmed_1.isTransactionConfirmed)({ currency, hash });
|
|
48
|
+
expect(result).toBe(true);
|
|
49
|
+
expect(mockedNodeApi.getTransaction).toHaveBeenCalledWith(currency, hash);
|
|
50
|
+
}));
|
|
51
|
+
test("should return false if blockHeight is null", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
52
|
+
const currency = { ethereumLikeInfo: { node: { type: "external" } } };
|
|
53
|
+
const hash = "transactionHash";
|
|
54
|
+
const blockHeight = null;
|
|
55
|
+
jest.spyOn(nodeApi, "getTransaction").mockResolvedValue({ blockHeight });
|
|
56
|
+
const result = yield (0, isTransactionConfirmed_1.isTransactionConfirmed)({ currency, hash });
|
|
57
|
+
expect(result).toBe(false);
|
|
58
|
+
expect(mockedNodeApi.getTransaction).toHaveBeenCalledWith(currency, hash);
|
|
59
|
+
}));
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=isTransactionConfirmed.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isTransactionConfirmed.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/editTransaction/isTransactionConfirmed.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAyF;AACzF,sEAAwD;AAExD,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAS,EAAE;QAC/D,MAAM,QAAQ,GAAG,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAS,CAAC;QAC7E,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAC/B,MAAM,WAAW,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAS,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,IAAA,+CAAsB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAS,EAAE;QAC5D,MAAM,QAAQ,GAAG,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAS,CAAC;QAC7E,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAS,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,IAAA,+CAAsB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|