@ledgerhq/coin-tezos 1.1.0-next.0 → 1.2.0-next.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-tezos@1.0.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
2
+ > @ledgerhq/coin-tezos@1.1.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,30 @@
1
1
  # @ledgerhq/coin-tezos
2
2
 
3
+ ## 1.2.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9126](https://github.com/LedgerHQ/ledger-live/pull/9126) [`339a611`](https://github.com/LedgerHQ/ledger-live/commit/339a61190c8bd9bb125f7fd3e3fbdaa9b31fcb58) Thanks [@jprudent](https://github.com/jprudent)! - Fix addresses on operations
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`da67b55`](https://github.com/LedgerHQ/ledger-live/commit/da67b5511b22553f7e3e089eca2e363a5e3cbffe), [`0a4413d`](https://github.com/LedgerHQ/ledger-live/commit/0a4413dd5cf50967c27b39bbd7dd9222e6322a60)]:
12
+ - @ledgerhq/cryptoassets@13.12.0-next.0
13
+ - @ledgerhq/coin-framework@2.1.0-next.0
14
+ - @ledgerhq/types-live@6.60.0-next.0
15
+
16
+ ## 1.1.0
17
+
18
+ ### Minor Changes
19
+
20
+ - [#8908](https://github.com/LedgerHQ/ledger-live/pull/8908) [`5ad0782`](https://github.com/LedgerHQ/ledger-live/commit/5ad07824ab794b826b47cb1136bba239b1c44322) Thanks [@qperrot](https://github.com/qperrot)! - Fix device actions on tezos
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [[`58c1a9c`](https://github.com/LedgerHQ/ledger-live/commit/58c1a9c68b2ce2ebef9dbd7af00ae09efd7a29dc), [`ff40e9a`](https://github.com/LedgerHQ/ledger-live/commit/ff40e9a00d325e5b46cb069936ba2a5781c601b5)]:
25
+ - @ledgerhq/coin-framework@2.0.0
26
+ - @ledgerhq/cryptoassets@13.11.0
27
+
3
28
  ## 1.1.0-next.0
4
29
 
5
30
  ### Minor Changes
@@ -8,9 +33,9 @@
8
33
 
9
34
  ### Patch Changes
10
35
 
11
- - Updated dependencies [[`ff40e9a`](https://github.com/LedgerHQ/ledger-live/commit/ff40e9a00d325e5b46cb069936ba2a5781c601b5)]:
36
+ - Updated dependencies [[`58c1a9c`](https://github.com/LedgerHQ/ledger-live/commit/58c1a9c68b2ce2ebef9dbd7af00ae09efd7a29dc), [`ff40e9a`](https://github.com/LedgerHQ/ledger-live/commit/ff40e9a00d325e5b46cb069936ba2a5781c601b5)]:
37
+ - @ledgerhq/coin-framework@2.0.0-next.0
12
38
  - @ledgerhq/cryptoassets@13.11.0-next.0
13
- - @ledgerhq/coin-framework@1.0.1-next.0
14
39
 
15
40
  ## 1.0.0
16
41
 
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAchC"}
1
+ {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAchC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listOperations = listOperations;
4
4
  const network_1 = require("../network");
5
+ const logs_1 = require("@ledgerhq/logs");
5
6
  const types_1 = require("../network/types");
6
7
  async function listOperations(address, { token, limit }) {
7
8
  let options = { limit: limit };
@@ -10,21 +11,35 @@ async function listOperations(address, { token, limit }) {
10
11
  }
11
12
  const operations = await network_1.tzkt.getAccountOperations(address, options);
12
13
  const lastOperation = operations.slice(-1)[0];
13
- const nextId = lastOperation ? JSON.stringify(lastOperation?.id) : "";
14
+ const nextToken = lastOperation ? JSON.stringify(lastOperation?.id) : "";
14
15
  return [
15
16
  operations
16
17
  .filter(op => (0, types_1.isAPITransactionType)(op) || (0, types_1.isAPIDelegationType)(op))
17
18
  .reduce((acc, op) => acc.concat(convertOperation(address, op)), []),
18
- nextId,
19
+ nextToken,
19
20
  ];
20
21
  }
22
+ // note that "initiator" of APITransactionType is never used in the conversion
21
23
  function convertOperation(address, operation) {
22
24
  const { amount, hash, storageFee, sender, timestamp, type, counter } = operation;
23
- let targetAddress = "";
24
- if ((0, types_1.isAPITransactionType)(operation) && operation.target) {
25
- targetAddress = operation.target.address;
25
+ let targetAddress = undefined;
26
+ if ((0, types_1.isAPITransactionType)(operation)) {
27
+ targetAddress = operation?.target?.address;
26
28
  }
29
+ else if ((0, types_1.isAPIDelegationType)(operation)) {
30
+ // delegate and undelegate has the type, but hold the address in different fields
31
+ targetAddress = operation?.newDelegate?.address || operation?.prevDelegate?.address;
32
+ }
33
+ const recipients = [];
34
+ if (!targetAddress) {
35
+ (0, logs_1.log)("coin:tezos", "(logic/operations): No target address found for operation", operation);
36
+ }
37
+ else {
38
+ recipients.push(targetAddress);
39
+ }
40
+ const senders = sender?.address ? [sender.address] : [];
27
41
  return {
42
+ // hash id defined nullable in the tzkt API, but I wonder when it would be null ?
28
43
  hash: hash ?? "",
29
44
  address,
30
45
  type: type,
@@ -36,8 +51,8 @@ function convertOperation(address, operation) {
36
51
  height: operation.level,
37
52
  time: new Date(operation.timestamp),
38
53
  },
39
- senders: [sender?.address ?? ""],
40
- recipients: [targetAddress],
54
+ senders: senders,
55
+ recipients: recipients,
41
56
  date: new Date(timestamp),
42
57
  transactionSequenceNumber: counter,
43
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;AAyBA,wCAiBC;AA1CD,wCAAkC;AAClC,4CAK0B;AAmBnB,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,EAAE,KAAK,EAAE,KAAK,EAAsC;IAEpD,IAAI,OAAO,GAAwC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACpE,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,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO;QACL,UAAU;aACP,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,4BAAoB,EAAC,EAAE,CAAC,IAAI,IAAA,2BAAmB,EAAC,EAAE,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAiB,CAAC;QACpF,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAe,EACf,SAAiD;IAEjD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IACjF,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,IAAA,4BAAoB,EAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACxD,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,OAAO;QACP,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,+CAA+C;QAC/C,GAAG,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC5B,KAAK,EAAE;YACL,IAAI,EAAE,SAAS,CAAC,KAAK;YACrB,MAAM,EAAE,SAAS,CAAC,KAAK;YACvB,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SACpC;QACD,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QAChC,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;QACzB,yBAAyB,EAAE,OAAO;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;AA0BA,wCAiBC;AA3CD,wCAAkC;AAClC,yCAAqC;AACrC,4CAK0B;AAmBnB,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,EAAE,KAAK,EAAE,KAAK,EAAsC;IAEpD,IAAI,OAAO,GAAwC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACpE,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,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO;QACL,UAAU;aACP,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,4BAAoB,EAAC,EAAE,CAAC,IAAI,IAAA,2BAAmB,EAAC,EAAE,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAiB,CAAC;QACpF,SAAS;KACV,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CACvB,OAAe,EACf,SAAiD;IAEjD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAEjF,IAAI,aAAa,GAAG,SAAS,CAAC;IAC9B,IAAI,IAAA,4BAAoB,EAAC,SAAS,CAAC,EAAE,CAAC;QACpC,aAAa,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;IAC7C,CAAC;SAAM,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,iFAAiF;QACjF,aAAa,GAAG,SAAS,EAAE,WAAW,EAAE,OAAO,IAAI,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC;IACtF,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAA,UAAG,EAAC,YAAY,EAAE,2DAA2D,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExD,OAAO;QACL,iFAAiF;QACjF,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,OAAO;QACP,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,+CAA+C;QAC/C,GAAG,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC5B,KAAK,EAAE;YACL,IAAI,EAAE,SAAS,CAAC,KAAK;YACrB,MAAM,EAAE,SAAS,CAAC,KAAK;YACvB,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SACpC;QACD,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;QACzB,yBAAyB,EAAE,OAAO;KACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=listOperations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listOperations.test.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const listOperations_1 = require("./listOperations");
4
+ const mockNetworkGetTransactions = jest.fn();
5
+ jest.mock("../network", () => ({
6
+ tzkt: {
7
+ getAccountOperations: async () => {
8
+ return mockNetworkGetTransactions();
9
+ },
10
+ },
11
+ }));
12
+ describe("listOperations", () => {
13
+ afterEach(() => {
14
+ mockNetworkGetTransactions.mockClear();
15
+ });
16
+ it("should return no operations", async () => {
17
+ // Given
18
+ mockNetworkGetTransactions.mockResolvedValue([]);
19
+ // When
20
+ const [results, token] = await (0, listOperations_1.listOperations)("any address", {});
21
+ // Then
22
+ expect(results).toEqual([]);
23
+ expect(token).toEqual("");
24
+ });
25
+ const someDestinationAddress = "tz3Vq38qYD3GEbWcXHMLt5PaASZrkDtEiA8D";
26
+ const someSenderAddress = "tz2CVMDVA16dD9A7kpWym2ptGDhs5zUhwWXr";
27
+ const delegate = {
28
+ type: "delegation",
29
+ id: 111,
30
+ level: 2702551,
31
+ block: "BMJ1ZQ6",
32
+ timestamp: "2022-09-12T01:36:59Z",
33
+ amount: 724846,
34
+ sender: {
35
+ address: someSenderAddress,
36
+ },
37
+ counter: 65214462,
38
+ prevDelegate: {
39
+ address: someDestinationAddress,
40
+ },
41
+ newDelegate: null,
42
+ };
43
+ const undelegate = {
44
+ ...delegate,
45
+ id: 222,
46
+ prevDelegate: null,
47
+ newDelegate: { address: someDestinationAddress },
48
+ };
49
+ const transfer = {
50
+ ...delegate,
51
+ id: 333,
52
+ initiator: null,
53
+ type: "transaction",
54
+ target: { address: someDestinationAddress },
55
+ };
56
+ it.each([undelegate, delegate, transfer])("should return operation with proper recipient list", async (operation) => {
57
+ // Given
58
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
59
+ // When
60
+ const [results, token] = await (0, listOperations_1.listOperations)("any address", {});
61
+ // Then
62
+ expect(results.length).toEqual(1);
63
+ expect(results[0].recipients).toEqual([someDestinationAddress]);
64
+ expect(token).toEqual(JSON.stringify(operation.id));
65
+ });
66
+ it.each([
67
+ { ...undelegate, newDelegate: null, prevDelegate: null },
68
+ { ...transfer, target: null },
69
+ ])("should return empty recipient list when no target can be found", async (operation) => {
70
+ // Given
71
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
72
+ // When
73
+ const [results, token] = await (0, listOperations_1.listOperations)("any address", {});
74
+ // Then
75
+ expect(results.length).toEqual(1);
76
+ expect(results[0].recipients).toEqual([]);
77
+ expect(token).toEqual(JSON.stringify(operation.id));
78
+ });
79
+ it("should return empty sender list when no sender can be found", async () => {
80
+ // Given
81
+ const operation = { ...undelegate, sender: null };
82
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
83
+ // When
84
+ const [results, token] = await (0, listOperations_1.listOperations)("any address", {});
85
+ // Then
86
+ expect(results.length).toEqual(1);
87
+ expect(results[0].senders).toEqual([]);
88
+ expect(token).toEqual(JSON.stringify(operation.id));
89
+ });
90
+ });
91
+ //# sourceMappingURL=listOperations.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bakers.d.ts","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,KAAK,8DA4BjB,CAAC;AAIF,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,KAAK,EAAE,CAItD,CAAC;AAKF,eAAO,MAAM,qBAAqB,uBAAwB,MAAM,EAAE,KAAG,KAAK,EAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,uBAA8B,MAAM,EAAE,KAAG,OAAO,CAAC,KAAK,EAAE,CAG9E,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE5D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,CA2B5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAMxE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAKxC;AAED,eAAO,MAAM,OAAO,SAAU,aAAa,KAAG,KAAK,GAAG,SAqBrD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,KAAK,EAAE,KAAG,IAG/C,CAAC"}
1
+ {"version":3,"file":"bakers.d.ts","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,KAAK,8DA6BjB,CAAC;AAIF,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,KAAK,EAAE,CAItD,CAAC;AAKF,eAAO,MAAM,qBAAqB,uBAAwB,MAAM,EAAE,KAAG,KAAK,EAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,uBAA8B,MAAM,EAAE,KAAG,OAAO,CAAC,KAAK,EAAE,CAG9E,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE5D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,CA2B5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAMxE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAKxC;AAED,eAAO,MAAM,OAAO,SAAU,aAAa,KAAG,KAAK,GAAG,SAqBrD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,KAAK,EAAE,KAAG,IAG/C,CAAC"}
@@ -30,6 +30,7 @@ exports.cache = (0, cache_1.makeLRUCache)(async () => {
30
30
  bakers.push(baker);
31
31
  }
32
32
  });
33
+ bakers.sort((a, b) => (a.name > b.name ? 1 : -1));
33
34
  }
34
35
  const ledgerBakerIndex = bakers.findIndex(baker => baker.address === bakers_whitelist_default_1.ledgerValidatorAddress);
35
36
  const [ledgerBaker] = bakers.splice(ledgerBakerIndex, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"bakers.js","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bakers.js","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAchC"}
1
+ {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAchC"}
@@ -1,4 +1,5 @@
1
1
  import { tzkt } from "../network";
2
+ import { log } from "@ledgerhq/logs";
2
3
  import { isAPIDelegationType, isAPITransactionType, } from "../network/types";
3
4
  export async function listOperations(address, { token, limit }) {
4
5
  let options = { limit: limit };
@@ -7,21 +8,35 @@ export async function listOperations(address, { token, limit }) {
7
8
  }
8
9
  const operations = await tzkt.getAccountOperations(address, options);
9
10
  const lastOperation = operations.slice(-1)[0];
10
- const nextId = lastOperation ? JSON.stringify(lastOperation?.id) : "";
11
+ const nextToken = lastOperation ? JSON.stringify(lastOperation?.id) : "";
11
12
  return [
12
13
  operations
13
14
  .filter(op => isAPITransactionType(op) || isAPIDelegationType(op))
14
15
  .reduce((acc, op) => acc.concat(convertOperation(address, op)), []),
15
- nextId,
16
+ nextToken,
16
17
  ];
17
18
  }
19
+ // note that "initiator" of APITransactionType is never used in the conversion
18
20
  function convertOperation(address, operation) {
19
21
  const { amount, hash, storageFee, sender, timestamp, type, counter } = operation;
20
- let targetAddress = "";
21
- if (isAPITransactionType(operation) && operation.target) {
22
- targetAddress = operation.target.address;
22
+ let targetAddress = undefined;
23
+ if (isAPITransactionType(operation)) {
24
+ targetAddress = operation?.target?.address;
23
25
  }
26
+ else if (isAPIDelegationType(operation)) {
27
+ // delegate and undelegate has the type, but hold the address in different fields
28
+ targetAddress = operation?.newDelegate?.address || operation?.prevDelegate?.address;
29
+ }
30
+ const recipients = [];
31
+ if (!targetAddress) {
32
+ log("coin:tezos", "(logic/operations): No target address found for operation", operation);
33
+ }
34
+ else {
35
+ recipients.push(targetAddress);
36
+ }
37
+ const senders = sender?.address ? [sender.address] : [];
24
38
  return {
39
+ // hash id defined nullable in the tzkt API, but I wonder when it would be null ?
25
40
  hash: hash ?? "",
26
41
  address,
27
42
  type: type,
@@ -33,8 +48,8 @@ function convertOperation(address, operation) {
33
48
  height: operation.level,
34
49
  time: new Date(operation.timestamp),
35
50
  },
36
- senders: [sender?.address ?? ""],
37
- recipients: [targetAddress],
51
+ senders: senders,
52
+ recipients: recipients,
38
53
  date: new Date(timestamp),
39
54
  transactionSequenceNumber: counter,
40
55
  };
@@ -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,EAGL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAmB1B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,EAAE,KAAK,EAAE,KAAK,EAAsC;IAEpD,IAAI,OAAO,GAAwC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACpE,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,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO;QACL,UAAU;aACP,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAiB,CAAC;QACpF,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAe,EACf,SAAiD;IAEjD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IACjF,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,oBAAoB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACxD,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,OAAO;QACP,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,+CAA+C;QAC/C,GAAG,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC5B,KAAK,EAAE;YACL,IAAI,EAAE,SAAS,CAAC,KAAK;YACrB,MAAM,EAAE,SAAS,CAAC,KAAK;YACvB,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SACpC;QACD,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QAChC,UAAU,EAAE,CAAC,aAAa,CAAC;QAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;QACzB,yBAAyB,EAAE,OAAO;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=listOperations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listOperations.test.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
1
+ import { listOperations } from "./listOperations";
2
+ const mockNetworkGetTransactions = jest.fn();
3
+ jest.mock("../network", () => ({
4
+ tzkt: {
5
+ getAccountOperations: async () => {
6
+ return mockNetworkGetTransactions();
7
+ },
8
+ },
9
+ }));
10
+ describe("listOperations", () => {
11
+ afterEach(() => {
12
+ mockNetworkGetTransactions.mockClear();
13
+ });
14
+ it("should return no operations", async () => {
15
+ // Given
16
+ mockNetworkGetTransactions.mockResolvedValue([]);
17
+ // When
18
+ const [results, token] = await listOperations("any address", {});
19
+ // Then
20
+ expect(results).toEqual([]);
21
+ expect(token).toEqual("");
22
+ });
23
+ const someDestinationAddress = "tz3Vq38qYD3GEbWcXHMLt5PaASZrkDtEiA8D";
24
+ const someSenderAddress = "tz2CVMDVA16dD9A7kpWym2ptGDhs5zUhwWXr";
25
+ const delegate = {
26
+ type: "delegation",
27
+ id: 111,
28
+ level: 2702551,
29
+ block: "BMJ1ZQ6",
30
+ timestamp: "2022-09-12T01:36:59Z",
31
+ amount: 724846,
32
+ sender: {
33
+ address: someSenderAddress,
34
+ },
35
+ counter: 65214462,
36
+ prevDelegate: {
37
+ address: someDestinationAddress,
38
+ },
39
+ newDelegate: null,
40
+ };
41
+ const undelegate = {
42
+ ...delegate,
43
+ id: 222,
44
+ prevDelegate: null,
45
+ newDelegate: { address: someDestinationAddress },
46
+ };
47
+ const transfer = {
48
+ ...delegate,
49
+ id: 333,
50
+ initiator: null,
51
+ type: "transaction",
52
+ target: { address: someDestinationAddress },
53
+ };
54
+ it.each([undelegate, delegate, transfer])("should return operation with proper recipient list", async (operation) => {
55
+ // Given
56
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
57
+ // When
58
+ const [results, token] = await listOperations("any address", {});
59
+ // Then
60
+ expect(results.length).toEqual(1);
61
+ expect(results[0].recipients).toEqual([someDestinationAddress]);
62
+ expect(token).toEqual(JSON.stringify(operation.id));
63
+ });
64
+ it.each([
65
+ { ...undelegate, newDelegate: null, prevDelegate: null },
66
+ { ...transfer, target: null },
67
+ ])("should return empty recipient list when no target can be found", async (operation) => {
68
+ // Given
69
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
70
+ // When
71
+ const [results, token] = await listOperations("any address", {});
72
+ // Then
73
+ expect(results.length).toEqual(1);
74
+ expect(results[0].recipients).toEqual([]);
75
+ expect(token).toEqual(JSON.stringify(operation.id));
76
+ });
77
+ it("should return empty sender list when no sender can be found", async () => {
78
+ // Given
79
+ const operation = { ...undelegate, sender: null };
80
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
81
+ // When
82
+ const [results, token] = await listOperations("any address", {});
83
+ // Then
84
+ expect(results.length).toEqual(1);
85
+ expect(results[0].senders).toEqual([]);
86
+ expect(token).toEqual(JSON.stringify(operation.id));
87
+ });
88
+ });
89
+ //# sourceMappingURL=listOperations.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bakers.d.ts","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,KAAK,8DA4BjB,CAAC;AAIF,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,KAAK,EAAE,CAItD,CAAC;AAKF,eAAO,MAAM,qBAAqB,uBAAwB,MAAM,EAAE,KAAG,KAAK,EAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,uBAA8B,MAAM,EAAE,KAAG,OAAO,CAAC,KAAK,EAAE,CAG9E,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE5D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,CA2B5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAMxE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAKxC;AAED,eAAO,MAAM,OAAO,SAAU,aAAa,KAAG,KAAK,GAAG,SAqBrD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,KAAK,EAAE,KAAG,IAG/C,CAAC"}
1
+ {"version":3,"file":"bakers.d.ts","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,KAAK,8DA6BjB,CAAC;AAIF,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,KAAK,EAAE,CAItD,CAAC;AAKF,eAAO,MAAM,qBAAqB,uBAAwB,MAAM,EAAE,KAAG,KAAK,EAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,uBAA8B,MAAM,EAAE,KAAG,OAAO,CAAC,KAAK,EAAE,CAG9E,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE5D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,CA2B5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAMxE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAKxC;AAED,eAAO,MAAM,OAAO,SAAU,aAAa,KAAG,KAAK,GAAG,SAqBrD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,KAAK,EAAE,KAAG,IAG/C,CAAC"}
@@ -19,6 +19,7 @@ export const cache = makeLRUCache(async () => {
19
19
  bakers.push(baker);
20
20
  }
21
21
  });
22
+ bakers.sort((a, b) => (a.name > b.name ? 1 : -1));
22
23
  }
23
24
  const ledgerBakerIndex = bakers.findIndex(baker => baker.address === ledgerValidatorAddress);
24
25
  const [ledgerBaker] = bakers.splice(ledgerBakerIndex, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"bakers.js","sourceRoot":"","sources":["../../src/network/bakers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bakers.js","sourceRoot":"","sources":["../../src/network/bakers.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.1.0-next.0",
3
+ "version": "1.2.0-next.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": "^1.0.1-next.0",
81
- "@ledgerhq/cryptoassets": "^13.11.0-next.0",
80
+ "@ledgerhq/coin-framework": "^2.1.0-next.0",
81
+ "@ledgerhq/cryptoassets": "^13.12.0-next.0",
82
82
  "@ledgerhq/devices": "8.4.4",
83
83
  "@ledgerhq/errors": "^6.19.1",
84
84
  "@ledgerhq/live-network": "^2.0.4",
85
85
  "@ledgerhq/logs": "^6.12.0",
86
86
  "@ledgerhq/types-cryptoassets": "^7.19.0",
87
- "@ledgerhq/types-live": "^6.59.0"
87
+ "@ledgerhq/types-live": "^6.60.0-next.0"
88
88
  },
89
89
  "devDependencies": {
90
90
  "@faker-js/faker": "^8.4.1",
@@ -113,6 +113,7 @@
113
113
  "lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
114
114
  "lint:fix": "pnpm lint --fix",
115
115
  "test": "jest",
116
+ "test-watch": "jest --watch",
116
117
  "test-integ": "jest --config=jest.integ.config.js",
117
118
  "unimported": "unimported"
118
119
  }
@@ -0,0 +1,101 @@
1
+ import { listOperations } from "./listOperations";
2
+ import { APIDelegationType, APITransactionType } from "../network/types";
3
+
4
+ const mockNetworkGetTransactions = jest.fn();
5
+ jest.mock("../network", () => ({
6
+ tzkt: {
7
+ getAccountOperations: async () => {
8
+ return mockNetworkGetTransactions();
9
+ },
10
+ },
11
+ }));
12
+
13
+ describe("listOperations", () => {
14
+ afterEach(() => {
15
+ mockNetworkGetTransactions.mockClear();
16
+ });
17
+
18
+ it("should return no operations", async () => {
19
+ // Given
20
+ mockNetworkGetTransactions.mockResolvedValue([]);
21
+ // When
22
+ const [results, token] = await listOperations("any address", {});
23
+ // Then
24
+ expect(results).toEqual([]);
25
+ expect(token).toEqual("");
26
+ });
27
+
28
+ const someDestinationAddress = "tz3Vq38qYD3GEbWcXHMLt5PaASZrkDtEiA8D";
29
+ const someSenderAddress = "tz2CVMDVA16dD9A7kpWym2ptGDhs5zUhwWXr";
30
+ const delegate: APIDelegationType = {
31
+ type: "delegation",
32
+ id: 111,
33
+ level: 2702551,
34
+ block: "BMJ1ZQ6",
35
+ timestamp: "2022-09-12T01:36:59Z",
36
+ amount: 724846,
37
+ sender: {
38
+ address: someSenderAddress,
39
+ },
40
+ counter: 65214462,
41
+ prevDelegate: {
42
+ address: someDestinationAddress,
43
+ },
44
+ newDelegate: null,
45
+ };
46
+
47
+ const undelegate: APIDelegationType = {
48
+ ...delegate,
49
+ id: 222,
50
+ prevDelegate: null,
51
+ newDelegate: { address: someDestinationAddress },
52
+ };
53
+
54
+ const transfer: APITransactionType = {
55
+ ...delegate,
56
+ id: 333,
57
+ initiator: null,
58
+ type: "transaction",
59
+ target: { address: someDestinationAddress },
60
+ };
61
+
62
+ it.each([undelegate, delegate, transfer])(
63
+ "should return operation with proper recipient list",
64
+ async operation => {
65
+ // Given
66
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
67
+ // When
68
+ const [results, token] = await listOperations("any address", {});
69
+ // Then
70
+ expect(results.length).toEqual(1);
71
+ expect(results[0].recipients).toEqual([someDestinationAddress]);
72
+ expect(token).toEqual(JSON.stringify(operation.id));
73
+ },
74
+ );
75
+
76
+ it.each([
77
+ { ...undelegate, newDelegate: null, prevDelegate: null },
78
+ { ...transfer, target: null },
79
+ ])("should return empty recipient list when no target can be found", async operation => {
80
+ // Given
81
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
82
+ // When
83
+ const [results, token] = await listOperations("any address", {});
84
+ // Then
85
+ expect(results.length).toEqual(1);
86
+ expect(results[0].recipients).toEqual([]);
87
+ expect(token).toEqual(JSON.stringify(operation.id));
88
+ });
89
+
90
+ it("should return empty sender list when no sender can be found", async () => {
91
+ // Given
92
+ const operation = { ...undelegate, sender: null };
93
+ mockNetworkGetTransactions.mockResolvedValue([operation]);
94
+ // When
95
+ const [results, token] = await listOperations("any address", {});
96
+ // Then
97
+ expect(results.length).toEqual(1);
98
+ expect(results[0].senders).toEqual([]);
99
+ expect(token).toEqual(JSON.stringify(operation.id));
100
+ });
101
+ });
@@ -1,4 +1,5 @@
1
1
  import { tzkt } from "../network";
2
+ import { log } from "@ledgerhq/logs";
2
3
  import {
3
4
  type APIDelegationType,
4
5
  type APITransactionType,
@@ -33,25 +34,41 @@ export async function listOperations(
33
34
  }
34
35
  const operations = await tzkt.getAccountOperations(address, options);
35
36
  const lastOperation = operations.slice(-1)[0];
36
- const nextId = lastOperation ? JSON.stringify(lastOperation?.id) : "";
37
+ const nextToken = lastOperation ? JSON.stringify(lastOperation?.id) : "";
37
38
  return [
38
39
  operations
39
40
  .filter(op => isAPITransactionType(op) || isAPIDelegationType(op))
40
41
  .reduce((acc, op) => acc.concat(convertOperation(address, op)), [] as Operation[]),
41
- nextId,
42
+ nextToken,
42
43
  ];
43
44
  }
44
45
 
46
+ // note that "initiator" of APITransactionType is never used in the conversion
45
47
  function convertOperation(
46
48
  address: string,
47
49
  operation: APITransactionType | APIDelegationType,
48
50
  ): Operation {
49
51
  const { amount, hash, storageFee, sender, timestamp, type, counter } = operation;
50
- let targetAddress = "";
51
- if (isAPITransactionType(operation) && operation.target) {
52
- targetAddress = operation.target.address;
52
+
53
+ let targetAddress = undefined;
54
+ if (isAPITransactionType(operation)) {
55
+ targetAddress = operation?.target?.address;
56
+ } else if (isAPIDelegationType(operation)) {
57
+ // delegate and undelegate has the type, but hold the address in different fields
58
+ targetAddress = operation?.newDelegate?.address || operation?.prevDelegate?.address;
59
+ }
60
+
61
+ const recipients = [];
62
+ if (!targetAddress) {
63
+ log("coin:tezos", "(logic/operations): No target address found for operation", operation);
64
+ } else {
65
+ recipients.push(targetAddress);
53
66
  }
67
+
68
+ const senders = sender?.address ? [sender.address] : [];
69
+
54
70
  return {
71
+ // hash id defined nullable in the tzkt API, but I wonder when it would be null ?
55
72
  hash: hash ?? "",
56
73
  address,
57
74
  type: type,
@@ -63,8 +80,8 @@ function convertOperation(
63
80
  height: operation.level,
64
81
  time: new Date(operation.timestamp),
65
82
  },
66
- senders: [sender?.address ?? ""],
67
- recipients: [targetAddress],
83
+ senders: senders,
84
+ recipients: recipients,
68
85
  date: new Date(timestamp),
69
86
  transactionSequenceNumber: counter,
70
87
  };
@@ -48,6 +48,7 @@ export const cache = makeLRUCache(
48
48
  bakers.push(baker);
49
49
  }
50
50
  });
51
+ bakers.sort((a, b) => (a.name > b.name ? 1 : -1));
51
52
  }
52
53
 
53
54
  const ledgerBakerIndex = bakers.findIndex(baker => baker.address === ledgerValidatorAddress);