@ledgerhq/coin-tezos 1.3.1 → 1.4.0
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 +28 -0
- package/lib/logic/listOperations.js +5 -2
- package/lib/logic/listOperations.js.map +1 -1
- package/lib/logic/listOperations.test.js +16 -0
- package/lib/logic/listOperations.test.js.map +1 -1
- package/lib-es/logic/listOperations.js +5 -2
- package/lib-es/logic/listOperations.js.map +1 -1
- package/lib-es/logic/listOperations.test.js +16 -0
- package/lib-es/logic/listOperations.test.js.map +1 -1
- package/package.json +3 -3
- package/src/logic/listOperations.test.ts +17 -0
- package/src/logic/listOperations.ts +7 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/coin-tezos@1.
|
|
2
|
+
> @ledgerhq/coin-tezos@1.4.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
|
|
3
3
|
> tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @ledgerhq/coin-tezos
|
|
2
2
|
|
|
3
|
+
## 1.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#9472](https://github.com/LedgerHQ/ledger-live/pull/9472) [`9c4c82e`](https://github.com/LedgerHQ/ledger-live/commit/9c4c82e8e81aaadfc1132f0a25812be094e54453) Thanks [@KVNLS](https://github.com/KVNLS)! - Fix elliptic library version used
|
|
8
|
+
|
|
9
|
+
- [#9194](https://github.com/LedgerHQ/ledger-live/pull/9194) [`ce00b67`](https://github.com/LedgerHQ/ledger-live/commit/ce00b67011b7ff554af7e0ee82696dc4ea0b632f) Thanks [@jprudent](https://github.com/jprudent)! - Tesos tx fee is now the sum of storageFee + bakerFee + allocationFee
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`5abde51`](https://github.com/LedgerHQ/ledger-live/commit/5abde5192d32f493ece2f99aec0e2de0c411f9e5), [`cc00249`](https://github.com/LedgerHQ/ledger-live/commit/cc002495f3e107aba283a3aa4abca90954de6d76)]:
|
|
14
|
+
- @ledgerhq/types-live@6.63.0
|
|
15
|
+
- @ledgerhq/coin-framework@2.3.0
|
|
16
|
+
|
|
17
|
+
## 1.4.0-next.0
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- [#9472](https://github.com/LedgerHQ/ledger-live/pull/9472) [`9c4c82e`](https://github.com/LedgerHQ/ledger-live/commit/9c4c82e8e81aaadfc1132f0a25812be094e54453) Thanks [@KVNLS](https://github.com/KVNLS)! - Fix elliptic library version used
|
|
22
|
+
|
|
23
|
+
- [#9194](https://github.com/LedgerHQ/ledger-live/pull/9194) [`ce00b67`](https://github.com/LedgerHQ/ledger-live/commit/ce00b67011b7ff554af7e0ee82696dc4ea0b632f) Thanks [@jprudent](https://github.com/jprudent)! - Tesos tx fee is now the sum of storageFee + bakerFee + allocationFee
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- Updated dependencies [[`5abde51`](https://github.com/LedgerHQ/ledger-live/commit/5abde5192d32f493ece2f99aec0e2de0c411f9e5), [`cc00249`](https://github.com/LedgerHQ/ledger-live/commit/cc002495f3e107aba283a3aa4abca90954de6d76)]:
|
|
28
|
+
- @ledgerhq/types-live@6.63.0-next.0
|
|
29
|
+
- @ledgerhq/coin-framework@2.3.0-next.0
|
|
30
|
+
|
|
3
31
|
## 1.3.1
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
|
@@ -37,7 +37,7 @@ async function listOperations(address, { token, limit, sort, minHeight, }) {
|
|
|
37
37
|
}
|
|
38
38
|
// note that "initiator" of APITransactionType is never used in the conversion
|
|
39
39
|
function convertOperation(address, operation) {
|
|
40
|
-
const { amount, hash,
|
|
40
|
+
const { amount, hash, sender, timestamp, type, counter } = operation;
|
|
41
41
|
let targetAddress = undefined;
|
|
42
42
|
if ((0, types_1.isAPITransactionType)(operation)) {
|
|
43
43
|
targetAddress = operation?.target?.address;
|
|
@@ -54,6 +54,9 @@ function convertOperation(address, operation) {
|
|
|
54
54
|
recipients.push(targetAddress);
|
|
55
55
|
}
|
|
56
56
|
const senders = sender?.address ? [sender.address] : [];
|
|
57
|
+
const fee = BigInt(operation.storageFee ?? 0) +
|
|
58
|
+
BigInt(operation.bakerFee ?? 0) +
|
|
59
|
+
BigInt(operation.allocationFee ?? 0);
|
|
57
60
|
return {
|
|
58
61
|
// hash id defined nullable in the tzkt API, but I wonder when it would be null ?
|
|
59
62
|
hash: hash ?? "",
|
|
@@ -61,7 +64,7 @@ function convertOperation(address, operation) {
|
|
|
61
64
|
type: type,
|
|
62
65
|
value: BigInt(amount),
|
|
63
66
|
// storageFee for transaction is always present
|
|
64
|
-
fee:
|
|
67
|
+
fee: fee,
|
|
65
68
|
block: {
|
|
66
69
|
hash: operation.block,
|
|
67
70
|
height: operation.level,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;AAuCA,wCA0BC;AAjED,wCAAkC;AAClC,yCAAqC;AACrC,4CAM0B;AAmB1B;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,EACE,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,GAC+E;IAE1F,IAAI,OAAO,GAAiC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACnF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,cAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,2EAA2E;IAC3E,qCAAqC;IACrC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,kBAAkB,GAAG,UAAU;SAClC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,4BAAoB,EAAC,EAAE,CAAC,IAAI,IAAA,2BAAmB,EAAC,EAAE,CAAC,CAAC;SACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;IACrF,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,+CAA+C;QAC/C,kBAAkB,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CACvB,OAAe,EACf,SAAiD;IAEjD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,9 @@ describe("listOperations", () => {
|
|
|
43
43
|
address: someDestinationAddress,
|
|
44
44
|
},
|
|
45
45
|
newDelegate: null,
|
|
46
|
+
storageFee: 1,
|
|
47
|
+
bakerFee: 2,
|
|
48
|
+
allocationFee: 3,
|
|
46
49
|
};
|
|
47
50
|
const undelegate = {
|
|
48
51
|
...delegate,
|
|
@@ -80,6 +83,19 @@ describe("listOperations", () => {
|
|
|
80
83
|
expect(results[0].recipients).toEqual([]);
|
|
81
84
|
expect(token).toEqual(JSON.stringify(operation.id));
|
|
82
85
|
});
|
|
86
|
+
it.each([
|
|
87
|
+
["undelegate", { ...undelegate, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
88
|
+
["delegate", { ...delegate, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
89
|
+
["transfer", { ...transfer, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
90
|
+
])("should compute the fees properly for %s operation", async (_label, operation) => {
|
|
91
|
+
// Given
|
|
92
|
+
mockNetworkGetTransactions.mockResolvedValue([operation]);
|
|
93
|
+
// When
|
|
94
|
+
const [results, _] = await (0, listOperations_1.listOperations)("any address", options);
|
|
95
|
+
// Then
|
|
96
|
+
expect(results.length).toEqual(1);
|
|
97
|
+
expect(results[0].fee).toEqual(BigInt(6));
|
|
98
|
+
});
|
|
83
99
|
it("should return empty sender list when no sender can be found", async () => {
|
|
84
100
|
// Given
|
|
85
101
|
const operation = { ...undelegate, sender: null };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":";;AAAA,qDAAkD;AAGlD,MAAM,0BAA0B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,EAAE;QACJ,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,0BAA0B,EAAE,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,OAAO,GAA4D;IACvE,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,CAAC;CACb,CAAC;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,0BAA0B,CAAC,SAAS,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,QAAQ;QACR,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO;QACP,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,+BAAc,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO;QACP,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;IACtE,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;IACjE,MAAM,QAAQ,GAAsB;QAClC,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,MAAM;QACd,MAAM,EAAE;YACN,OAAO,EAAE,iBAAiB;SAC3B;QACD,OAAO,EAAE,QAAQ;QACjB,YAAY,EAAE;YACZ,OAAO,EAAE,sBAAsB;SAChC;QACD,WAAW,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export async function listOperations(address, { token, limit, sort, minHeight, }
|
|
|
34
34
|
}
|
|
35
35
|
// note that "initiator" of APITransactionType is never used in the conversion
|
|
36
36
|
function convertOperation(address, operation) {
|
|
37
|
-
const { amount, hash,
|
|
37
|
+
const { amount, hash, sender, timestamp, type, counter } = operation;
|
|
38
38
|
let targetAddress = undefined;
|
|
39
39
|
if (isAPITransactionType(operation)) {
|
|
40
40
|
targetAddress = operation?.target?.address;
|
|
@@ -51,6 +51,9 @@ function convertOperation(address, operation) {
|
|
|
51
51
|
recipients.push(targetAddress);
|
|
52
52
|
}
|
|
53
53
|
const senders = sender?.address ? [sender.address] : [];
|
|
54
|
+
const fee = BigInt(operation.storageFee ?? 0) +
|
|
55
|
+
BigInt(operation.bakerFee ?? 0) +
|
|
56
|
+
BigInt(operation.allocationFee ?? 0);
|
|
54
57
|
return {
|
|
55
58
|
// hash id defined nullable in the tzkt API, but I wonder when it would be null ?
|
|
56
59
|
hash: hash ?? "",
|
|
@@ -58,7 +61,7 @@ function convertOperation(address, operation) {
|
|
|
58
61
|
type: type,
|
|
59
62
|
value: BigInt(amount),
|
|
60
63
|
// storageFee for transaction is always present
|
|
61
|
-
fee:
|
|
64
|
+
fee: fee,
|
|
62
65
|
block: {
|
|
63
66
|
hash: operation.block,
|
|
64
67
|
height: operation.level,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAIL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAmB1B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,EACE,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,GAC+E;IAE1F,IAAI,OAAO,GAAiC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACnF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,2EAA2E;IAC3E,qCAAqC;IACrC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,kBAAkB,GAAG,UAAU;SAClC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;SACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAiB,CAAC,CAAC;IACrF,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,+CAA+C;QAC/C,kBAAkB,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CACvB,OAAe,EACf,SAAiD;IAEjD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,9 @@ describe("listOperations", () => {
|
|
|
41
41
|
address: someDestinationAddress,
|
|
42
42
|
},
|
|
43
43
|
newDelegate: null,
|
|
44
|
+
storageFee: 1,
|
|
45
|
+
bakerFee: 2,
|
|
46
|
+
allocationFee: 3,
|
|
44
47
|
};
|
|
45
48
|
const undelegate = {
|
|
46
49
|
...delegate,
|
|
@@ -78,6 +81,19 @@ describe("listOperations", () => {
|
|
|
78
81
|
expect(results[0].recipients).toEqual([]);
|
|
79
82
|
expect(token).toEqual(JSON.stringify(operation.id));
|
|
80
83
|
});
|
|
84
|
+
it.each([
|
|
85
|
+
["undelegate", { ...undelegate, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
86
|
+
["delegate", { ...delegate, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
87
|
+
["transfer", { ...transfer, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
88
|
+
])("should compute the fees properly for %s operation", async (_label, operation) => {
|
|
89
|
+
// Given
|
|
90
|
+
mockNetworkGetTransactions.mockResolvedValue([operation]);
|
|
91
|
+
// When
|
|
92
|
+
const [results, _] = await listOperations("any address", options);
|
|
93
|
+
// Then
|
|
94
|
+
expect(results.length).toEqual(1);
|
|
95
|
+
expect(results[0].fee).toEqual(BigInt(6));
|
|
96
|
+
});
|
|
81
97
|
it("should return empty sender list when no sender can be found", async () => {
|
|
82
98
|
// Given
|
|
83
99
|
const operation = { ...undelegate, sender: null };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,MAAM,0BAA0B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,EAAE;QACJ,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,0BAA0B,EAAE,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,OAAO,GAA4D;IACvE,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,CAAC;CACb,CAAC;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,0BAA0B,CAAC,SAAS,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,QAAQ;QACR,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO;QACP,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO;QACP,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;IACtE,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;IACjE,MAAM,QAAQ,GAAsB;QAClC,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,MAAM;QACd,MAAM,EAAE;YACN,OAAO,EAAE,iBAAiB;SAC3B;QACD,OAAO,EAAE,QAAQ;QACjB,YAAY,EAAE;YACZ,OAAO,EAAE,sBAAsB;SAChC;QACD,WAAW,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-tezos",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Tezos Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -77,14 +77,14 @@
|
|
|
77
77
|
"invariant": "^2.2.4",
|
|
78
78
|
"lodash": "^4.17.21",
|
|
79
79
|
"rxjs": "^7.8.1",
|
|
80
|
-
"@ledgerhq/coin-framework": "^2.
|
|
80
|
+
"@ledgerhq/coin-framework": "^2.3.0",
|
|
81
81
|
"@ledgerhq/cryptoassets": "^13.13.0",
|
|
82
82
|
"@ledgerhq/devices": "8.4.4",
|
|
83
83
|
"@ledgerhq/errors": "^6.19.1",
|
|
84
84
|
"@ledgerhq/live-network": "^2.0.5",
|
|
85
85
|
"@ledgerhq/logs": "^6.12.0",
|
|
86
86
|
"@ledgerhq/types-cryptoassets": "^7.20.0",
|
|
87
|
-
"@ledgerhq/types-live": "^6.
|
|
87
|
+
"@ledgerhq/types-live": "^6.63.0"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
90
|
"@faker-js/faker": "^8.4.1",
|
|
@@ -47,6 +47,9 @@ describe("listOperations", () => {
|
|
|
47
47
|
address: someDestinationAddress,
|
|
48
48
|
},
|
|
49
49
|
newDelegate: null,
|
|
50
|
+
storageFee: 1,
|
|
51
|
+
bakerFee: 2,
|
|
52
|
+
allocationFee: 3,
|
|
50
53
|
};
|
|
51
54
|
|
|
52
55
|
const undelegate: APIDelegationType = {
|
|
@@ -92,6 +95,20 @@ describe("listOperations", () => {
|
|
|
92
95
|
expect(token).toEqual(JSON.stringify(operation.id));
|
|
93
96
|
});
|
|
94
97
|
|
|
98
|
+
it.each([
|
|
99
|
+
["undelegate", { ...undelegate, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
100
|
+
["delegate", { ...delegate, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
101
|
+
["transfer", { ...transfer, storageFee: 1, bakerFee: 2, allocationFee: 3 }],
|
|
102
|
+
])("should compute the fees properly for %s operation", async (_label, operation) => {
|
|
103
|
+
// Given
|
|
104
|
+
mockNetworkGetTransactions.mockResolvedValue([operation]);
|
|
105
|
+
// When
|
|
106
|
+
const [results, _] = await listOperations("any address", options);
|
|
107
|
+
// Then
|
|
108
|
+
expect(results.length).toEqual(1);
|
|
109
|
+
expect(results[0].fee).toEqual(BigInt(6));
|
|
110
|
+
});
|
|
111
|
+
|
|
95
112
|
it("should return empty sender list when no sender can be found", async () => {
|
|
96
113
|
// Given
|
|
97
114
|
const operation = { ...undelegate, sender: null };
|
|
@@ -70,7 +70,7 @@ function convertOperation(
|
|
|
70
70
|
address: string,
|
|
71
71
|
operation: APITransactionType | APIDelegationType,
|
|
72
72
|
): Operation {
|
|
73
|
-
const { amount, hash,
|
|
73
|
+
const { amount, hash, sender, timestamp, type, counter } = operation;
|
|
74
74
|
|
|
75
75
|
let targetAddress = undefined;
|
|
76
76
|
if (isAPITransactionType(operation)) {
|
|
@@ -89,6 +89,11 @@ function convertOperation(
|
|
|
89
89
|
|
|
90
90
|
const senders = sender?.address ? [sender.address] : [];
|
|
91
91
|
|
|
92
|
+
const fee =
|
|
93
|
+
BigInt(operation.storageFee ?? 0) +
|
|
94
|
+
BigInt(operation.bakerFee ?? 0) +
|
|
95
|
+
BigInt(operation.allocationFee ?? 0);
|
|
96
|
+
|
|
92
97
|
return {
|
|
93
98
|
// hash id defined nullable in the tzkt API, but I wonder when it would be null ?
|
|
94
99
|
hash: hash ?? "",
|
|
@@ -96,7 +101,7 @@ function convertOperation(
|
|
|
96
101
|
type: type,
|
|
97
102
|
value: BigInt(amount),
|
|
98
103
|
// storageFee for transaction is always present
|
|
99
|
-
fee:
|
|
104
|
+
fee: fee,
|
|
100
105
|
block: {
|
|
101
106
|
hash: operation.block,
|
|
102
107
|
height: operation.level,
|