@ledgerhq/live-common 33.2.0-next.0 → 33.2.0-next.2
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/lib/families/evm/platformAdapter.d.ts +1 -1
- package/lib/families/evm/platformAdapter.d.ts.map +1 -1
- package/lib/families/evm/platformAdapter.js +2 -1
- package/lib/families/evm/platformAdapter.js.map +1 -1
- package/lib/families/evm/platformAdapter.test.js +27 -3
- package/lib/families/evm/platformAdapter.test.js.map +1 -1
- package/lib/families/evm/walletApiAdapter.d.ts +1 -1
- package/lib/families/evm/walletApiAdapter.d.ts.map +1 -1
- package/lib/families/evm/walletApiAdapter.js +2 -1
- package/lib/families/evm/walletApiAdapter.js.map +1 -1
- package/lib/families/evm/walletApiAdapter.test.js +30 -4
- package/lib/families/evm/walletApiAdapter.test.js.map +1 -1
- package/lib-es/families/evm/platformAdapter.d.ts +1 -1
- package/lib-es/families/evm/platformAdapter.d.ts.map +1 -1
- package/lib-es/families/evm/platformAdapter.js +2 -1
- package/lib-es/families/evm/platformAdapter.js.map +1 -1
- package/lib-es/families/evm/platformAdapter.test.js +27 -3
- package/lib-es/families/evm/platformAdapter.test.js.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.d.ts +1 -1
- package/lib-es/families/evm/walletApiAdapter.d.ts.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.js +2 -1
- package/lib-es/families/evm/walletApiAdapter.js.map +1 -1
- package/lib-es/families/evm/walletApiAdapter.test.js +30 -4
- package/lib-es/families/evm/walletApiAdapter.test.js.map +1 -1
- package/package.json +13 -13
- package/src/families/evm/platformAdapter.test.ts +34 -3
- package/src/families/evm/platformAdapter.ts +3 -2
- package/src/families/evm/walletApiAdapter.test.ts +37 -4
- package/src/families/evm/walletApiAdapter.ts +4 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EthereumTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
2
1
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
2
|
+
import { EthereumTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
3
3
|
declare const _default: {
|
|
4
4
|
getPlatformTransactionSignFlowInfos: (tx: PlatformTransaction) => {
|
|
5
5
|
canEditFees: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"platformAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;;;;;;;;AAkDpF,wBAAuD"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// TODO: to remove once live-app-sdk is depreciated and removed from LL
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const createTransaction_1 = require("@ledgerhq/coin-evm/createTransaction");
|
|
4
5
|
const CAN_EDIT_FEES = true;
|
|
5
6
|
const areFeesProvided = (tx) => !!(tx.gasLimit && tx.gasPrice);
|
|
6
7
|
const convertToLiveTransaction = (tx) => {
|
|
7
8
|
const hasFeesProvided = areFeesProvided(tx);
|
|
8
9
|
const params = {
|
|
9
10
|
family: "evm",
|
|
10
|
-
nonce: tx.nonce,
|
|
11
|
+
nonce: tx.nonce === undefined ? createTransaction_1.DEFAULT_NONCE : tx.nonce,
|
|
11
12
|
amount: tx.amount,
|
|
12
13
|
recipient: tx.recipient,
|
|
13
14
|
data: tx.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":";AAAA,uEAAuE;;
|
|
1
|
+
{"version":3,"file":"platformAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":";AAAA,uEAAuE;;AAEvE,4EAAqE;AAIrE,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,eAAe,GAAG,CAAC,EAAuB,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE7F,MAAM,wBAAwB,GAAG,CAAC,EAAuB,EAAwB,EAAE;IACjF,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iCAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;QACxD,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,cAAc,EAAE,EAAE,CAAC,QAAQ;QAC3B,YAAY,EAAE,SAAS;QACvB,oBAAoB,EAAE,SAAS;KAChC,CAAC;IAEF,mFAAmF;IACnF,MAAM,MAAM,GAAyB,EAAE,CAAC,QAAQ;QAC9C,CAAC,iCACM,MAAM;YACT,gFAAgF;YAChF,oEAAoE;YACpE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAC,SAAS,EAC/D,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,IAAI,EAAE,CAAC,IAEX,CAAC,iCAAM,MAAM,KAAE,IAAI,EAAE,CAAC,GAAE,CAAC;IAE3B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mCAAmC,GAAG,CAC1C,EAAuB,EAKvB,EAAE;IACF,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACpC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,EAAE,mCAAmC,EAAE,CAAC"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const createTransaction_1 = require("@ledgerhq/coin-evm/createTransaction");
|
|
6
7
|
const live_app_sdk_1 = require("@ledgerhq/live-app-sdk");
|
|
7
8
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
9
|
const platformAdapter_1 = __importDefault(require("./platformAdapter"));
|
|
@@ -20,7 +21,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
20
21
|
recipient: ethPlatformTx.recipient,
|
|
21
22
|
data: undefined,
|
|
22
23
|
gasLimit: undefined,
|
|
23
|
-
nonce:
|
|
24
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
24
25
|
customGasLimit: undefined,
|
|
25
26
|
feesStrategy: undefined,
|
|
26
27
|
type: 2,
|
|
@@ -46,7 +47,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
46
47
|
gasPrice: ethPlatformTx.gasPrice,
|
|
47
48
|
gasLimit: ethPlatformTx.gasLimit,
|
|
48
49
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
49
|
-
nonce:
|
|
50
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
50
51
|
data: undefined,
|
|
51
52
|
feesStrategy: "custom",
|
|
52
53
|
type: 0,
|
|
@@ -69,7 +70,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
69
70
|
recipient: ethPlatformTx.recipient,
|
|
70
71
|
gasLimit: ethPlatformTx.gasLimit,
|
|
71
72
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
72
|
-
nonce:
|
|
73
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
73
74
|
data: undefined,
|
|
74
75
|
type: 2,
|
|
75
76
|
};
|
|
@@ -78,6 +79,29 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
78
79
|
expect(hasFeesProvided).toBe(false);
|
|
79
80
|
expect(liveTx).toEqual(expectedLiveTx);
|
|
80
81
|
});
|
|
82
|
+
test("with nonce provided", () => {
|
|
83
|
+
const ethPlatformTx = {
|
|
84
|
+
family: live_app_sdk_1.FAMILIES.ETHEREUM,
|
|
85
|
+
amount: new bignumber_js_1.default(100000),
|
|
86
|
+
recipient: "0xABCDEF",
|
|
87
|
+
nonce: 1,
|
|
88
|
+
};
|
|
89
|
+
const expectedLiveTx = {
|
|
90
|
+
family: "evm",
|
|
91
|
+
amount: ethPlatformTx.amount,
|
|
92
|
+
recipient: ethPlatformTx.recipient,
|
|
93
|
+
data: undefined,
|
|
94
|
+
gasLimit: undefined,
|
|
95
|
+
nonce: 1,
|
|
96
|
+
customGasLimit: undefined,
|
|
97
|
+
feesStrategy: undefined,
|
|
98
|
+
type: 2,
|
|
99
|
+
};
|
|
100
|
+
const { canEditFees, hasFeesProvided, liveTx } = platformAdapter_1.default.getPlatformTransactionSignFlowInfos(ethPlatformTx);
|
|
101
|
+
expect(canEditFees).toBe(true);
|
|
102
|
+
expect(hasFeesProvided).toBe(false);
|
|
103
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
104
|
+
});
|
|
81
105
|
});
|
|
82
106
|
});
|
|
83
107
|
//# sourceMappingURL=platformAdapter.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.test.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"platformAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EthereumTransaction as WalletAPIEthereumTransaction } from "@ledgerhq/wallet-api-core";
|
|
2
1
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
2
|
+
import { EthereumTransaction as WalletAPIEthereumTransaction } from "@ledgerhq/wallet-api-core";
|
|
3
3
|
import { GetWalletAPITransactionSignFlowInfos } from "../../wallet-api/types";
|
|
4
4
|
declare const _default: {
|
|
5
5
|
getWalletAPITransactionSignFlowInfos: GetWalletAPITransactionSignFlowInfos<WalletAPIEthereumTransaction, Transaction>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletApiAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletApiAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,IAAI,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAGL,oCAAoC,EACrC,MAAM,wBAAwB,CAAC;;;;AAwEhC,wBAAwD"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const createTransaction_1 = require("@ledgerhq/coin-evm/createTransaction");
|
|
3
4
|
const CAN_EDIT_FEES = true;
|
|
4
5
|
const areFeesProvided = tx => !!((tx.gasLimit && tx.gasPrice) || (tx.gasLimit && tx.maxFeePerGas && tx.maxPriorityFeePerGas));
|
|
5
6
|
const convertToLiveTransaction = tx => {
|
|
6
7
|
const hasFeesProvided = areFeesProvided(tx);
|
|
7
8
|
const params = {
|
|
8
9
|
family: "evm",
|
|
9
|
-
nonce: tx.nonce,
|
|
10
|
+
nonce: tx.nonce === undefined ? createTransaction_1.DEFAULT_NONCE : tx.nonce,
|
|
10
11
|
amount: tx.amount,
|
|
11
12
|
recipient: tx.recipient,
|
|
12
13
|
data: tx.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletApiAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"walletApiAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":";;AAAA,4EAAqE;AASrE,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,eAAe,GAAkD,EAAE,CAAC,EAAE,CAC1E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAElG,MAAM,wBAAwB,GAG1B,EAAE,CAAC,EAAE;IACP,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAyB;QACnC,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iCAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;QACxD,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,YAAY,EAAE,eAAe,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAE,QAAkB;QACzE,cAAc,EAAE,EAAE,CAAC,QAAQ;KAC5B,CAAC;IAEF,mFAAmF;IAEnF;;;;;;;;;;;;;;OAcG;IAEH,MAAM,MAAM,GAAyB,EAAE,CAAC,QAAQ;QAC9C,CAAC,iCACM,MAAM,KACT,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,YAAY,EAAE,SAAS,EACvB,oBAAoB,EAAE,SAAS,EAC/B,IAAI,EAAE,CAAC,IAEX,CAAC,iCACM,MAAM,KACT,QAAQ,EAAE,SAAS,EACnB,YAAY,EAAE,EAAE,CAAC,YAAY,EAC7B,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAC7C,IAAI,EAAE,CAAC,GACR,CAAC;IAEN,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,oCAAoC,GAGtC,EAAE,CAAC,EAAE;IACP,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACpC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,EAAE,oCAAoC,EAAE,CAAC"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const createTransaction_1 = require("@ledgerhq/coin-evm/createTransaction");
|
|
6
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
7
8
|
const walletApiAdapter_1 = __importDefault(require("./walletApiAdapter"));
|
|
8
9
|
describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
@@ -19,7 +20,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
19
20
|
recipient: ethPlatformTx.recipient,
|
|
20
21
|
data: undefined,
|
|
21
22
|
gasLimit: undefined,
|
|
22
|
-
nonce:
|
|
23
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
23
24
|
customGasLimit: undefined,
|
|
24
25
|
feesStrategy: "medium",
|
|
25
26
|
maxFeePerGas: undefined,
|
|
@@ -46,7 +47,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
46
47
|
gasPrice: ethPlatformTx.gasPrice,
|
|
47
48
|
gasLimit: ethPlatformTx.gasLimit,
|
|
48
49
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
49
|
-
nonce:
|
|
50
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
50
51
|
data: undefined,
|
|
51
52
|
feesStrategy: "custom",
|
|
52
53
|
type: 0,
|
|
@@ -73,7 +74,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
73
74
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
74
75
|
maxFeePerGas: ethPlatformTx.maxFeePerGas,
|
|
75
76
|
maxPriorityFeePerGas: ethPlatformTx.maxPriorityFeePerGas,
|
|
76
|
-
nonce:
|
|
77
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
77
78
|
data: undefined,
|
|
78
79
|
feesStrategy: "custom",
|
|
79
80
|
type: 2,
|
|
@@ -99,7 +100,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
99
100
|
feesStrategy: "medium",
|
|
100
101
|
maxFeePerGas: undefined,
|
|
101
102
|
maxPriorityFeePerGas: undefined,
|
|
102
|
-
nonce:
|
|
103
|
+
nonce: createTransaction_1.DEFAULT_NONCE,
|
|
103
104
|
data: undefined,
|
|
104
105
|
type: 2,
|
|
105
106
|
};
|
|
@@ -108,6 +109,31 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
108
109
|
expect(hasFeesProvided).toBe(false);
|
|
109
110
|
expect(liveTx).toEqual(expectedLiveTx);
|
|
110
111
|
});
|
|
112
|
+
test("with nonce provided", () => {
|
|
113
|
+
const ethPlatformTx = {
|
|
114
|
+
family: "ethereum",
|
|
115
|
+
amount: new bignumber_js_1.default(100000),
|
|
116
|
+
recipient: "0xABCDEF",
|
|
117
|
+
nonce: 1,
|
|
118
|
+
};
|
|
119
|
+
const expectedLiveTx = {
|
|
120
|
+
family: "evm",
|
|
121
|
+
amount: ethPlatformTx.amount,
|
|
122
|
+
recipient: ethPlatformTx.recipient,
|
|
123
|
+
data: undefined,
|
|
124
|
+
gasLimit: undefined,
|
|
125
|
+
nonce: 1,
|
|
126
|
+
customGasLimit: undefined,
|
|
127
|
+
feesStrategy: "medium",
|
|
128
|
+
maxFeePerGas: undefined,
|
|
129
|
+
maxPriorityFeePerGas: undefined,
|
|
130
|
+
type: 2,
|
|
131
|
+
};
|
|
132
|
+
const { canEditFees, hasFeesProvided, liveTx } = walletApiAdapter_1.default.getWalletAPITransactionSignFlowInfos(ethPlatformTx);
|
|
133
|
+
expect(canEditFees).toBe(true);
|
|
134
|
+
expect(hasFeesProvided).toBe(false);
|
|
135
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
136
|
+
});
|
|
111
137
|
});
|
|
112
138
|
});
|
|
113
139
|
//# sourceMappingURL=walletApiAdapter.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletApiAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.test.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"walletApiAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EthereumTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
2
1
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
2
|
+
import { EthereumTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
3
3
|
declare const _default: {
|
|
4
4
|
getPlatformTransactionSignFlowInfos: (tx: PlatformTransaction) => {
|
|
5
5
|
canEditFees: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"platformAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;;;;;;;;AAkDpF,wBAAuD"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// TODO: to remove once live-app-sdk is depreciated and removed from LL
|
|
2
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
2
3
|
const CAN_EDIT_FEES = true;
|
|
3
4
|
const areFeesProvided = (tx) => !!(tx.gasLimit && tx.gasPrice);
|
|
4
5
|
const convertToLiveTransaction = (tx) => {
|
|
5
6
|
const hasFeesProvided = areFeesProvided(tx);
|
|
6
7
|
const params = {
|
|
7
8
|
family: "evm",
|
|
8
|
-
nonce: tx.nonce,
|
|
9
|
+
nonce: tx.nonce === undefined ? DEFAULT_NONCE : tx.nonce,
|
|
9
10
|
amount: tx.amount,
|
|
10
11
|
recipient: tx.recipient,
|
|
11
12
|
data: tx.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":"AAAA,uEAAuE;
|
|
1
|
+
{"version":3,"file":"platformAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,eAAe,GAAG,CAAC,EAAuB,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE7F,MAAM,wBAAwB,GAAG,CAAC,EAAuB,EAAwB,EAAE;IACjF,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;QACxD,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,cAAc,EAAE,EAAE,CAAC,QAAQ;QAC3B,YAAY,EAAE,SAAS;QACvB,oBAAoB,EAAE,SAAS;KAChC,CAAC;IAEF,mFAAmF;IACnF,MAAM,MAAM,GAAyB,EAAE,CAAC,QAAQ;QAC9C,CAAC,iCACM,MAAM;YACT,gFAAgF;YAChF,oEAAoE;YACpE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAC,SAAS,EAC/D,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,IAAI,EAAE,CAAC,IAEX,CAAC,iCAAM,MAAM,KAAE,IAAI,EAAE,CAAC,GAAE,CAAC;IAE3B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mCAAmC,GAAG,CAC1C,EAAuB,EAKvB,EAAE;IACF,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACpC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,EAAE,mCAAmC,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
1
2
|
import { FAMILIES } from "@ledgerhq/live-app-sdk";
|
|
2
3
|
import BigNumber from "bignumber.js";
|
|
3
4
|
import evm from "./platformAdapter";
|
|
@@ -15,7 +16,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
15
16
|
recipient: ethPlatformTx.recipient,
|
|
16
17
|
data: undefined,
|
|
17
18
|
gasLimit: undefined,
|
|
18
|
-
nonce:
|
|
19
|
+
nonce: DEFAULT_NONCE,
|
|
19
20
|
customGasLimit: undefined,
|
|
20
21
|
feesStrategy: undefined,
|
|
21
22
|
type: 2,
|
|
@@ -41,7 +42,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
41
42
|
gasPrice: ethPlatformTx.gasPrice,
|
|
42
43
|
gasLimit: ethPlatformTx.gasLimit,
|
|
43
44
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
44
|
-
nonce:
|
|
45
|
+
nonce: DEFAULT_NONCE,
|
|
45
46
|
data: undefined,
|
|
46
47
|
feesStrategy: "custom",
|
|
47
48
|
type: 0,
|
|
@@ -64,7 +65,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
64
65
|
recipient: ethPlatformTx.recipient,
|
|
65
66
|
gasLimit: ethPlatformTx.gasLimit,
|
|
66
67
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
67
|
-
nonce:
|
|
68
|
+
nonce: DEFAULT_NONCE,
|
|
68
69
|
data: undefined,
|
|
69
70
|
type: 2,
|
|
70
71
|
};
|
|
@@ -73,6 +74,29 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
73
74
|
expect(hasFeesProvided).toBe(false);
|
|
74
75
|
expect(liveTx).toEqual(expectedLiveTx);
|
|
75
76
|
});
|
|
77
|
+
test("with nonce provided", () => {
|
|
78
|
+
const ethPlatformTx = {
|
|
79
|
+
family: FAMILIES.ETHEREUM,
|
|
80
|
+
amount: new BigNumber(100000),
|
|
81
|
+
recipient: "0xABCDEF",
|
|
82
|
+
nonce: 1,
|
|
83
|
+
};
|
|
84
|
+
const expectedLiveTx = {
|
|
85
|
+
family: "evm",
|
|
86
|
+
amount: ethPlatformTx.amount,
|
|
87
|
+
recipient: ethPlatformTx.recipient,
|
|
88
|
+
data: undefined,
|
|
89
|
+
gasLimit: undefined,
|
|
90
|
+
nonce: 1,
|
|
91
|
+
customGasLimit: undefined,
|
|
92
|
+
feesStrategy: undefined,
|
|
93
|
+
type: 2,
|
|
94
|
+
};
|
|
95
|
+
const { canEditFees, hasFeesProvided, liveTx } = evm.getPlatformTransactionSignFlowInfos(ethPlatformTx);
|
|
96
|
+
expect(canEditFees).toBe(true);
|
|
97
|
+
expect(hasFeesProvided).toBe(false);
|
|
98
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
99
|
+
});
|
|
76
100
|
});
|
|
77
101
|
});
|
|
78
102
|
//# sourceMappingURL=platformAdapter.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"platformAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/platformAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EthereumTransaction as WalletAPIEthereumTransaction } from "@ledgerhq/wallet-api-core";
|
|
2
1
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
2
|
+
import { EthereumTransaction as WalletAPIEthereumTransaction } from "@ledgerhq/wallet-api-core";
|
|
3
3
|
import { GetWalletAPITransactionSignFlowInfos } from "../../wallet-api/types";
|
|
4
4
|
declare const _default: {
|
|
5
5
|
getWalletAPITransactionSignFlowInfos: GetWalletAPITransactionSignFlowInfos<WalletAPIEthereumTransaction, Transaction>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletApiAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletApiAdapter.d.ts","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,IAAI,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAGL,oCAAoC,EACrC,MAAM,wBAAwB,CAAC;;;;AAwEhC,wBAAwD"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
1
2
|
const CAN_EDIT_FEES = true;
|
|
2
3
|
const areFeesProvided = tx => !!((tx.gasLimit && tx.gasPrice) || (tx.gasLimit && tx.maxFeePerGas && tx.maxPriorityFeePerGas));
|
|
3
4
|
const convertToLiveTransaction = tx => {
|
|
4
5
|
const hasFeesProvided = areFeesProvided(tx);
|
|
5
6
|
const params = {
|
|
6
7
|
family: "evm",
|
|
7
|
-
nonce: tx.nonce,
|
|
8
|
+
nonce: tx.nonce === undefined ? DEFAULT_NONCE : tx.nonce,
|
|
8
9
|
amount: tx.amount,
|
|
9
10
|
recipient: tx.recipient,
|
|
10
11
|
data: tx.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletApiAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletApiAdapter.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AASrE,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,eAAe,GAAkD,EAAE,CAAC,EAAE,CAC1E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAElG,MAAM,wBAAwB,GAG1B,EAAE,CAAC,EAAE;IACP,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAyB;QACnC,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;QACxD,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,YAAY,EAAE,eAAe,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAE,QAAkB;QACzE,cAAc,EAAE,EAAE,CAAC,QAAQ;KAC5B,CAAC;IAEF,mFAAmF;IAEnF;;;;;;;;;;;;;;OAcG;IAEH,MAAM,MAAM,GAAyB,EAAE,CAAC,QAAQ;QAC9C,CAAC,iCACM,MAAM,KACT,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,YAAY,EAAE,SAAS,EACvB,oBAAoB,EAAE,SAAS,EAC/B,IAAI,EAAE,CAAC,IAEX,CAAC,iCACM,MAAM,KACT,QAAQ,EAAE,SAAS,EACnB,YAAY,EAAE,EAAE,CAAC,YAAY,EAC7B,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAC7C,IAAI,EAAE,CAAC,GACR,CAAC;IAEN,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,oCAAoC,GAGtC,EAAE,CAAC,EAAE;IACP,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACpC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,EAAE,oCAAoC,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
1
2
|
import BigNumber from "bignumber.js";
|
|
2
3
|
import evm from "./walletApiAdapter";
|
|
3
4
|
describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
@@ -14,7 +15,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
14
15
|
recipient: ethPlatformTx.recipient,
|
|
15
16
|
data: undefined,
|
|
16
17
|
gasLimit: undefined,
|
|
17
|
-
nonce:
|
|
18
|
+
nonce: DEFAULT_NONCE,
|
|
18
19
|
customGasLimit: undefined,
|
|
19
20
|
feesStrategy: "medium",
|
|
20
21
|
maxFeePerGas: undefined,
|
|
@@ -41,7 +42,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
41
42
|
gasPrice: ethPlatformTx.gasPrice,
|
|
42
43
|
gasLimit: ethPlatformTx.gasLimit,
|
|
43
44
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
44
|
-
nonce:
|
|
45
|
+
nonce: DEFAULT_NONCE,
|
|
45
46
|
data: undefined,
|
|
46
47
|
feesStrategy: "custom",
|
|
47
48
|
type: 0,
|
|
@@ -68,7 +69,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
68
69
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
69
70
|
maxFeePerGas: ethPlatformTx.maxFeePerGas,
|
|
70
71
|
maxPriorityFeePerGas: ethPlatformTx.maxPriorityFeePerGas,
|
|
71
|
-
nonce:
|
|
72
|
+
nonce: DEFAULT_NONCE,
|
|
72
73
|
data: undefined,
|
|
73
74
|
feesStrategy: "custom",
|
|
74
75
|
type: 2,
|
|
@@ -94,7 +95,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
94
95
|
feesStrategy: "medium",
|
|
95
96
|
maxFeePerGas: undefined,
|
|
96
97
|
maxPriorityFeePerGas: undefined,
|
|
97
|
-
nonce:
|
|
98
|
+
nonce: DEFAULT_NONCE,
|
|
98
99
|
data: undefined,
|
|
99
100
|
type: 2,
|
|
100
101
|
};
|
|
@@ -103,6 +104,31 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
103
104
|
expect(hasFeesProvided).toBe(false);
|
|
104
105
|
expect(liveTx).toEqual(expectedLiveTx);
|
|
105
106
|
});
|
|
107
|
+
test("with nonce provided", () => {
|
|
108
|
+
const ethPlatformTx = {
|
|
109
|
+
family: "ethereum",
|
|
110
|
+
amount: new BigNumber(100000),
|
|
111
|
+
recipient: "0xABCDEF",
|
|
112
|
+
nonce: 1,
|
|
113
|
+
};
|
|
114
|
+
const expectedLiveTx = {
|
|
115
|
+
family: "evm",
|
|
116
|
+
amount: ethPlatformTx.amount,
|
|
117
|
+
recipient: ethPlatformTx.recipient,
|
|
118
|
+
data: undefined,
|
|
119
|
+
gasLimit: undefined,
|
|
120
|
+
nonce: 1,
|
|
121
|
+
customGasLimit: undefined,
|
|
122
|
+
feesStrategy: "medium",
|
|
123
|
+
maxFeePerGas: undefined,
|
|
124
|
+
maxPriorityFeePerGas: undefined,
|
|
125
|
+
type: 2,
|
|
126
|
+
};
|
|
127
|
+
const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos(ethPlatformTx);
|
|
128
|
+
expect(canEditFees).toBe(true);
|
|
129
|
+
expect(hasFeesProvided).toBe(false);
|
|
130
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
131
|
+
});
|
|
106
132
|
});
|
|
107
133
|
});
|
|
108
134
|
//# sourceMappingURL=walletApiAdapter.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletApiAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletApiAdapter.test.js","sourceRoot":"","sources":["../../../src/families/evm/walletApiAdapter.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/live-common",
|
|
3
3
|
"description": "Common ground for the Ledger Live apps",
|
|
4
|
-
"version": "33.2.0-next.
|
|
4
|
+
"version": "33.2.0-next.2",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/LedgerHQ/ledger-live.git"
|
|
@@ -195,32 +195,32 @@
|
|
|
195
195
|
"varuint-bitcoin": "1.1.2",
|
|
196
196
|
"winston": "^3.4.0",
|
|
197
197
|
"xstate": "^4.30.2",
|
|
198
|
-
"@ledgerhq/coin-algorand": "^0.3.6-next.
|
|
199
|
-
"@ledgerhq/coin-evm": "^0.11.0-next.
|
|
200
|
-
"@ledgerhq/coin-
|
|
201
|
-
"@ledgerhq/coin-
|
|
202
|
-
"@ledgerhq/cryptoassets": "^11.2.0-next.0",
|
|
203
|
-
"@ledgerhq/devices": "^8.1.0-next.0",
|
|
198
|
+
"@ledgerhq/coin-algorand": "^0.3.6-next.1",
|
|
199
|
+
"@ledgerhq/coin-evm": "^0.11.0-next.1",
|
|
200
|
+
"@ledgerhq/coin-polkadot": "^0.4.6-next.1",
|
|
201
|
+
"@ledgerhq/coin-framework": "^0.9.0-next.1",
|
|
204
202
|
"@ledgerhq/errors": "^6.16.0-next.0",
|
|
203
|
+
"@ledgerhq/cryptoassets": "^11.2.0-next.1",
|
|
204
|
+
"@ledgerhq/devices": "^8.1.0-next.0",
|
|
205
205
|
"@ledgerhq/hw-app-algorand": "^6.28.0-next.0",
|
|
206
206
|
"@ledgerhq/hw-app-btc": "^10.1.0-next.0",
|
|
207
207
|
"@ledgerhq/hw-app-cosmos": "^6.29.0-next.0",
|
|
208
|
-
"@ledgerhq/hw-app-eth": "^6.35.0-next.
|
|
208
|
+
"@ledgerhq/hw-app-eth": "^6.35.0-next.1",
|
|
209
209
|
"@ledgerhq/hw-app-exchange": "^0.4.0-next.0",
|
|
210
210
|
"@ledgerhq/hw-app-near": "^6.28.0-next.0",
|
|
211
|
-
"@ledgerhq/hw-app-polkadot": "^6.28.0-next.0",
|
|
212
211
|
"@ledgerhq/hw-app-solana": "^7.1.0-next.0",
|
|
212
|
+
"@ledgerhq/hw-app-polkadot": "^6.28.0-next.0",
|
|
213
213
|
"@ledgerhq/hw-app-str": "^6.28.0-next.0",
|
|
214
214
|
"@ledgerhq/hw-app-tezos": "^6.28.0-next.0",
|
|
215
215
|
"@ledgerhq/hw-app-trx": "^6.28.0-next.0",
|
|
216
216
|
"@ledgerhq/hw-app-xrp": "^6.28.0-next.0",
|
|
217
217
|
"@ledgerhq/hw-transport": "^6.30.0-next.0",
|
|
218
|
-
"@ledgerhq/hw-transport-mocker": "^6.28.0-next.0",
|
|
219
218
|
"@ledgerhq/hw-transport-node-speculos": "^6.28.0-next.0",
|
|
220
219
|
"@ledgerhq/hw-transport-node-speculos-http": "^6.28.0-next.0",
|
|
220
|
+
"@ledgerhq/hw-transport-mocker": "^6.28.0-next.0",
|
|
221
221
|
"@ledgerhq/live-env": "^0.7.0-next.0",
|
|
222
|
-
"@ledgerhq/live-network": "^1.1.9-next.0",
|
|
223
222
|
"@ledgerhq/live-promise": "^0.0.3-next.0",
|
|
223
|
+
"@ledgerhq/live-network": "^1.1.9-next.0",
|
|
224
224
|
"@ledgerhq/logs": "^6.12.0-next.0"
|
|
225
225
|
},
|
|
226
226
|
"devDependencies": {
|
|
@@ -265,8 +265,8 @@
|
|
|
265
265
|
"uuid": "^8.3.2",
|
|
266
266
|
"ws": "7",
|
|
267
267
|
"@ledgerhq/types-cryptoassets": "^7.8.0-next.0",
|
|
268
|
-
"@ledgerhq/types-
|
|
269
|
-
"@ledgerhq/types-
|
|
268
|
+
"@ledgerhq/types-live": "^6.43.0-next.0",
|
|
269
|
+
"@ledgerhq/types-devices": "^6.23.0-next.0"
|
|
270
270
|
},
|
|
271
271
|
"scripts": {
|
|
272
272
|
"build": "zx ./scripts/build-ts.mjs",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
1
2
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
2
3
|
import { FAMILIES, EthereumTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
3
4
|
import BigNumber from "bignumber.js";
|
|
@@ -18,7 +19,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
18
19
|
recipient: ethPlatformTx.recipient,
|
|
19
20
|
data: undefined,
|
|
20
21
|
gasLimit: undefined,
|
|
21
|
-
nonce:
|
|
22
|
+
nonce: DEFAULT_NONCE,
|
|
22
23
|
customGasLimit: undefined,
|
|
23
24
|
feesStrategy: undefined,
|
|
24
25
|
type: 2,
|
|
@@ -51,7 +52,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
51
52
|
gasPrice: ethPlatformTx.gasPrice,
|
|
52
53
|
gasLimit: ethPlatformTx.gasLimit,
|
|
53
54
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
54
|
-
nonce:
|
|
55
|
+
nonce: DEFAULT_NONCE,
|
|
55
56
|
data: undefined,
|
|
56
57
|
feesStrategy: "custom",
|
|
57
58
|
type: 0,
|
|
@@ -81,7 +82,7 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
81
82
|
recipient: ethPlatformTx.recipient,
|
|
82
83
|
gasLimit: ethPlatformTx.gasLimit,
|
|
83
84
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
84
|
-
nonce:
|
|
85
|
+
nonce: DEFAULT_NONCE,
|
|
85
86
|
data: undefined,
|
|
86
87
|
type: 2,
|
|
87
88
|
};
|
|
@@ -95,5 +96,35 @@ describe("getPlatformTransactionSignFlowInfos", () => {
|
|
|
95
96
|
|
|
96
97
|
expect(liveTx).toEqual(expectedLiveTx);
|
|
97
98
|
});
|
|
99
|
+
|
|
100
|
+
test("with nonce provided", () => {
|
|
101
|
+
const ethPlatformTx: PlatformTransaction = {
|
|
102
|
+
family: FAMILIES.ETHEREUM,
|
|
103
|
+
amount: new BigNumber(100000),
|
|
104
|
+
recipient: "0xABCDEF",
|
|
105
|
+
nonce: 1,
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const expectedLiveTx: Partial<Transaction> = {
|
|
109
|
+
family: "evm",
|
|
110
|
+
amount: ethPlatformTx.amount,
|
|
111
|
+
recipient: ethPlatformTx.recipient,
|
|
112
|
+
data: undefined,
|
|
113
|
+
gasLimit: undefined,
|
|
114
|
+
nonce: 1,
|
|
115
|
+
customGasLimit: undefined,
|
|
116
|
+
feesStrategy: undefined,
|
|
117
|
+
type: 2,
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const { canEditFees, hasFeesProvided, liveTx } =
|
|
121
|
+
evm.getPlatformTransactionSignFlowInfos(ethPlatformTx);
|
|
122
|
+
|
|
123
|
+
expect(canEditFees).toBe(true);
|
|
124
|
+
|
|
125
|
+
expect(hasFeesProvided).toBe(false);
|
|
126
|
+
|
|
127
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
128
|
+
});
|
|
98
129
|
});
|
|
99
130
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// TODO: to remove once live-app-sdk is depreciated and removed from LL
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
4
4
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
5
|
+
import { EthereumTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
5
6
|
|
|
6
7
|
const CAN_EDIT_FEES = true;
|
|
7
8
|
|
|
@@ -12,7 +13,7 @@ const convertToLiveTransaction = (tx: PlatformTransaction): Partial<Transaction>
|
|
|
12
13
|
|
|
13
14
|
const params = {
|
|
14
15
|
family: "evm" as const,
|
|
15
|
-
nonce: tx.nonce,
|
|
16
|
+
nonce: tx.nonce === undefined ? DEFAULT_NONCE : tx.nonce,
|
|
16
17
|
amount: tx.amount,
|
|
17
18
|
recipient: tx.recipient,
|
|
18
19
|
data: tx.data,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
1
2
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
2
3
|
import { EthereumTransaction as WalletAPITransaction } from "@ledgerhq/wallet-api-core";
|
|
3
4
|
import BigNumber from "bignumber.js";
|
|
@@ -18,7 +19,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
18
19
|
recipient: ethPlatformTx.recipient,
|
|
19
20
|
data: undefined,
|
|
20
21
|
gasLimit: undefined,
|
|
21
|
-
nonce:
|
|
22
|
+
nonce: DEFAULT_NONCE,
|
|
22
23
|
customGasLimit: undefined,
|
|
23
24
|
feesStrategy: "medium",
|
|
24
25
|
maxFeePerGas: undefined,
|
|
@@ -52,7 +53,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
52
53
|
gasPrice: ethPlatformTx.gasPrice,
|
|
53
54
|
gasLimit: ethPlatformTx.gasLimit,
|
|
54
55
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
55
|
-
nonce:
|
|
56
|
+
nonce: DEFAULT_NONCE,
|
|
56
57
|
data: undefined,
|
|
57
58
|
feesStrategy: "custom",
|
|
58
59
|
type: 0,
|
|
@@ -86,7 +87,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
86
87
|
customGasLimit: ethPlatformTx.gasLimit,
|
|
87
88
|
maxFeePerGas: ethPlatformTx.maxFeePerGas,
|
|
88
89
|
maxPriorityFeePerGas: ethPlatformTx.maxPriorityFeePerGas,
|
|
89
|
-
nonce:
|
|
90
|
+
nonce: DEFAULT_NONCE,
|
|
90
91
|
data: undefined,
|
|
91
92
|
feesStrategy: "custom",
|
|
92
93
|
type: 2,
|
|
@@ -119,7 +120,7 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
119
120
|
feesStrategy: "medium",
|
|
120
121
|
maxFeePerGas: undefined,
|
|
121
122
|
maxPriorityFeePerGas: undefined,
|
|
122
|
-
nonce:
|
|
123
|
+
nonce: DEFAULT_NONCE,
|
|
123
124
|
data: undefined,
|
|
124
125
|
type: 2,
|
|
125
126
|
};
|
|
@@ -133,5 +134,37 @@ describe("getWalletAPITransactionSignFlowInfos", () => {
|
|
|
133
134
|
|
|
134
135
|
expect(liveTx).toEqual(expectedLiveTx);
|
|
135
136
|
});
|
|
137
|
+
|
|
138
|
+
test("with nonce provided", () => {
|
|
139
|
+
const ethPlatformTx: WalletAPITransaction = {
|
|
140
|
+
family: "ethereum",
|
|
141
|
+
amount: new BigNumber(100000),
|
|
142
|
+
recipient: "0xABCDEF",
|
|
143
|
+
nonce: 1,
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
const expectedLiveTx: Partial<Transaction> = {
|
|
147
|
+
family: "evm",
|
|
148
|
+
amount: ethPlatformTx.amount,
|
|
149
|
+
recipient: ethPlatformTx.recipient,
|
|
150
|
+
data: undefined,
|
|
151
|
+
gasLimit: undefined,
|
|
152
|
+
nonce: 1,
|
|
153
|
+
customGasLimit: undefined,
|
|
154
|
+
feesStrategy: "medium",
|
|
155
|
+
maxFeePerGas: undefined,
|
|
156
|
+
maxPriorityFeePerGas: undefined,
|
|
157
|
+
type: 2,
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const { canEditFees, hasFeesProvided, liveTx } =
|
|
161
|
+
evm.getWalletAPITransactionSignFlowInfos(ethPlatformTx);
|
|
162
|
+
|
|
163
|
+
expect(canEditFees).toBe(true);
|
|
164
|
+
|
|
165
|
+
expect(hasFeesProvided).toBe(false);
|
|
166
|
+
|
|
167
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
168
|
+
});
|
|
136
169
|
});
|
|
137
170
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DEFAULT_NONCE } from "@ledgerhq/coin-evm/createTransaction";
|
|
2
2
|
import { Transaction } from "@ledgerhq/coin-evm/types/index";
|
|
3
|
+
import { EthereumTransaction as WalletAPIEthereumTransaction } from "@ledgerhq/wallet-api-core";
|
|
3
4
|
import {
|
|
4
5
|
AreFeesProvided,
|
|
5
6
|
ConvertToLiveTransaction,
|
|
@@ -17,9 +18,9 @@ const convertToLiveTransaction: ConvertToLiveTransaction<
|
|
|
17
18
|
> = tx => {
|
|
18
19
|
const hasFeesProvided = areFeesProvided(tx);
|
|
19
20
|
|
|
20
|
-
const params = {
|
|
21
|
+
const params: Partial<Transaction> = {
|
|
21
22
|
family: "evm" as const,
|
|
22
|
-
nonce: tx.nonce,
|
|
23
|
+
nonce: tx.nonce === undefined ? DEFAULT_NONCE : tx.nonce,
|
|
23
24
|
amount: tx.amount,
|
|
24
25
|
recipient: tx.recipient,
|
|
25
26
|
data: tx.data,
|