@ledgerhq/coin-stellar 2.0.0 → 2.1.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/jest.config.js +14 -2
  3. package/jest.integ.config.js +1 -0
  4. package/lib/api/index.integ.test.js +2 -2
  5. package/lib/api/index.integ.test.js.map +1 -1
  6. package/lib/bridge/generators.fixture.d.ts +20 -0
  7. package/lib/bridge/generators.fixture.d.ts.map +1 -0
  8. package/lib/bridge/generators.fixture.js +42 -0
  9. package/lib/bridge/generators.fixture.js.map +1 -0
  10. package/lib/bridge/msw-handles.fixture.d.ts +4 -0
  11. package/lib/bridge/msw-handles.fixture.d.ts.map +1 -0
  12. package/lib/bridge/msw-handles.fixture.js +111 -0
  13. package/lib/bridge/msw-handles.fixture.js.map +1 -0
  14. package/lib/bridge/synchronization.d.ts.map +1 -1
  15. package/lib/bridge/synchronization.integ.test.js +1 -1
  16. package/lib/bridge/synchronization.integ.test.js.map +1 -1
  17. package/lib/bridge/synchronization.js +12 -6
  18. package/lib/bridge/synchronization.js.map +1 -1
  19. package/lib/bridge/synchronization.unit.test.d.ts +2 -0
  20. package/lib/bridge/synchronization.unit.test.d.ts.map +1 -0
  21. package/lib/bridge/synchronization.unit.test.js +130 -0
  22. package/lib/bridge/synchronization.unit.test.js.map +1 -0
  23. package/lib/network/horizon.d.ts +3 -7
  24. package/lib/network/horizon.d.ts.map +1 -1
  25. package/lib/network/horizon.integ.test.d.ts +2 -0
  26. package/lib/network/horizon.integ.test.d.ts.map +1 -0
  27. package/lib/network/horizon.integ.test.js +42 -0
  28. package/lib/network/horizon.integ.test.js.map +1 -0
  29. package/lib/network/horizon.js +10 -3
  30. package/lib/network/horizon.js.map +1 -1
  31. package/lib/network/serialization.js +1 -1
  32. package/lib/network/serialization.js.map +1 -1
  33. package/lib-es/api/index.integ.test.js +2 -2
  34. package/lib-es/api/index.integ.test.js.map +1 -1
  35. package/lib-es/bridge/generators.fixture.d.ts +20 -0
  36. package/lib-es/bridge/generators.fixture.d.ts.map +1 -0
  37. package/lib-es/bridge/generators.fixture.js +38 -0
  38. package/lib-es/bridge/generators.fixture.js.map +1 -0
  39. package/lib-es/bridge/msw-handles.fixture.d.ts +4 -0
  40. package/lib-es/bridge/msw-handles.fixture.d.ts.map +1 -0
  41. package/lib-es/bridge/msw-handles.fixture.js +108 -0
  42. package/lib-es/bridge/msw-handles.fixture.js.map +1 -0
  43. package/lib-es/bridge/synchronization.d.ts.map +1 -1
  44. package/lib-es/bridge/synchronization.integ.test.js +1 -1
  45. package/lib-es/bridge/synchronization.integ.test.js.map +1 -1
  46. package/lib-es/bridge/synchronization.js +12 -6
  47. package/lib-es/bridge/synchronization.js.map +1 -1
  48. package/lib-es/bridge/synchronization.unit.test.d.ts +2 -0
  49. package/lib-es/bridge/synchronization.unit.test.d.ts.map +1 -0
  50. package/lib-es/bridge/synchronization.unit.test.js +125 -0
  51. package/lib-es/bridge/synchronization.unit.test.js.map +1 -0
  52. package/lib-es/network/horizon.d.ts +3 -7
  53. package/lib-es/network/horizon.d.ts.map +1 -1
  54. package/lib-es/network/horizon.integ.test.d.ts +2 -0
  55. package/lib-es/network/horizon.integ.test.d.ts.map +1 -0
  56. package/lib-es/network/horizon.integ.test.js +37 -0
  57. package/lib-es/network/horizon.integ.test.js.map +1 -0
  58. package/lib-es/network/horizon.js +10 -3
  59. package/lib-es/network/horizon.js.map +1 -1
  60. package/lib-es/network/serialization.js +1 -1
  61. package/lib-es/network/serialization.js.map +1 -1
  62. package/package.json +11 -8
  63. package/src/api/index.integ.test.ts +2 -2
  64. package/src/bridge/generators.fixture.ts +42 -0
  65. package/src/bridge/msw-handles.fixture.ts +114 -0
  66. package/src/bridge/synchronization.integ.test.ts +8 -12
  67. package/src/bridge/synchronization.ts +16 -5
  68. package/src/bridge/synchronization.unit.test.ts +148 -0
  69. package/src/network/horizon.integ.test.ts +54 -0
  70. package/src/network/horizon.ts +17 -13
  71. package/src/network/serialization.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @ledgerhq/coin-stellar
2
2
 
3
+ ## 2.1.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9298](https://github.com/LedgerHQ/ledger-live/pull/9298) [`2785d49`](https://github.com/LedgerHQ/ledger-live/commit/2785d49ac320498f98ed39b4eccc48310ad35fe1) Thanks [@Canestin](https://github.com/Canestin)! - config coin-integration env for sonarqube
8
+
9
+ - [#9584](https://github.com/LedgerHQ/ledger-live/pull/9584) [`32f2a0c`](https://github.com/LedgerHQ/ledger-live/commit/32f2a0cf073e5c1a5d65cbe44e69660f8f510dd7) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - perf: set a limit on the number of operations retrieved during the initial synchronization of the Stellar account to improve sync performance.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [[`2785d49`](https://github.com/LedgerHQ/ledger-live/commit/2785d49ac320498f98ed39b4eccc48310ad35fe1), [`2effe04`](https://github.com/LedgerHQ/ledger-live/commit/2effe04d9d4b3e407ed25da3b9f11324a82126d3), [`32f2a0c`](https://github.com/LedgerHQ/ledger-live/commit/32f2a0cf073e5c1a5d65cbe44e69660f8f510dd7), [`2407a6e`](https://github.com/LedgerHQ/ledger-live/commit/2407a6e1f3153c30c52d4bac4c9334fa95c351da), [`40e98c3`](https://github.com/LedgerHQ/ledger-live/commit/40e98c392bd9192570e46c2d62cf0779bdfe01ec), [`a656e47`](https://github.com/LedgerHQ/ledger-live/commit/a656e47c1dc3ac8b578debf9cf80eab370c7086f)]:
14
+ - @ledgerhq/coin-framework@2.5.0-next.0
15
+ - @ledgerhq/types-live@6.65.0-next.0
16
+ - @ledgerhq/live-env@2.7.0-next.0
17
+ - @ledgerhq/types-cryptoassets@7.21.0-next.0
18
+ - @ledgerhq/cryptoassets@13.14.0-next.0
19
+ - @ledgerhq/live-network@2.0.6-next.0
20
+
3
21
  ## 2.0.0
4
22
 
5
23
  ### Major Changes
package/jest.config.js CHANGED
@@ -1,8 +1,20 @@
1
1
  /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
2
2
  module.exports = {
3
- collectCoverageFrom: ["src/**/*.ts"],
4
- coverageDirectory: "coverage",
5
3
  preset: "ts-jest",
4
+ passWithNoTests: true,
5
+ collectCoverageFrom: [
6
+ "src/**/*.ts",
7
+ "!src/**/*.test.ts",
8
+ "!src/**/*.spec.ts",
9
+ "!src/test/**/*.ts",
10
+ ],
11
+ coverageReporters: ["json", ["lcov", { file: "stellar-lcov.info", projectRoot: "../" }], "text"],
6
12
  testEnvironment: "node",
7
13
  testPathIgnorePatterns: ["lib/", "lib-es/", ".*\\.integ\\.test\\.[tj]s"],
14
+ reporters: [
15
+ [
16
+ "jest-sonar",
17
+ { outputName: "stellar-sonar-executionTests-report.xml", reportedFilePath: "absolute" },
18
+ ],
19
+ ],
8
20
  };
@@ -4,4 +4,5 @@ module.exports = {
4
4
  testEnvironment: "node",
5
5
  testRegex: ".integ.test.ts$",
6
6
  testPathIgnorePatterns: ["lib/", "lib-es/"],
7
+ testTimeout: 60_000,
7
8
  };
@@ -4,7 +4,7 @@ const _1 = require(".");
4
4
  /**
5
5
  * Testnet scan: https://testnet.lumenscan.io/
6
6
  */
7
- describe("Stellar Api", () => {
7
+ describe.skip("Stellar Api", () => {
8
8
  let module;
9
9
  const address = "GBAUZBDXMVV7HII4JWBGFMLVKVJ6OLQAKOCGXM5E2FM4TAZB6C7JO2L7";
10
10
  beforeAll(() => {
@@ -33,7 +33,7 @@ describe("Stellar Api", () => {
33
33
  let txs;
34
34
  beforeAll(async () => {
35
35
  [txs] = await module.listOperations(address, { minHeight: 0 });
36
- }, 20 * 1000); // 20s
36
+ });
37
37
  it("returns a list regarding address parameter", async () => {
38
38
  expect(txs.length).toBeGreaterThanOrEqual(100);
39
39
  txs.forEach(operation => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare const generateOperationsList: (address: string, count?: number) => {
2
+ _links: {
3
+ transaction: {
4
+ href: string;
5
+ };
6
+ };
7
+ id: string;
8
+ paging_token: string;
9
+ transaction_successful: boolean;
10
+ source_account: string;
11
+ type: string;
12
+ type_i: number;
13
+ created_at: string;
14
+ transaction_hash: string;
15
+ asset_type: string;
16
+ from: string;
17
+ to: string;
18
+ amount: string;
19
+ }[];
20
+ //# sourceMappingURL=generators.fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators.fixture.d.ts","sourceRoot":"","sources":["../../src/bridge/generators.fixture.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,sBAAsB,YAAa,MAAM;;;;;;;;;;;;;;;;;;GA4BrD,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateOperationsList = void 0;
4
+ const msw_handles_fixture_1 = require("./msw-handles.fixture");
5
+ const generateFakeTxHash = () => {
6
+ let hash = "";
7
+ const hexChars = "0123456789abcdef";
8
+ for (let i = 0; i < 64; i++) {
9
+ hash += hexChars[Math.floor(Math.random() * 16)];
10
+ }
11
+ return hash;
12
+ };
13
+ const generateOperationsList = (address, count = 100) => {
14
+ const operations = [];
15
+ for (let i = 0; i < count; i++) {
16
+ const randomId = Math.floor(Math.random() * 1000000000);
17
+ const randomTxHash = generateFakeTxHash();
18
+ const operation = {
19
+ _links: {
20
+ transaction: {
21
+ href: `${msw_handles_fixture_1.HORIZON_TEST_BASE_URL}/transactions/${randomTxHash}`,
22
+ },
23
+ },
24
+ id: randomId.toString(),
25
+ paging_token: randomId.toString(),
26
+ transaction_successful: true,
27
+ source_account: address,
28
+ type: "payment",
29
+ type_i: 1,
30
+ created_at: "2025-03-12T07:13:30Z",
31
+ transaction_hash: randomTxHash,
32
+ asset_type: "native",
33
+ from: address,
34
+ to: "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF",
35
+ amount: "1.0000000",
36
+ };
37
+ operations.push(operation);
38
+ }
39
+ return operations;
40
+ };
41
+ exports.generateOperationsList = generateOperationsList;
42
+ //# sourceMappingURL=generators.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators.fixture.js","sourceRoot":"","sources":["../../src/bridge/generators.fixture.ts"],"names":[],"mappings":";;;AAAA,+DAA8D;AAE9D,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,kBAAkB,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE;IACrE,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE;gBACN,WAAW,EAAE;oBACX,IAAI,EAAE,GAAG,2CAAqB,iBAAiB,YAAY,EAAE;iBAC9D;aACF;YACD,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE;YACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE;YACjC,sBAAsB,EAAE,IAAI;YAC5B,cAAc,EAAE,OAAO;YACvB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,sBAAsB;YAClC,gBAAgB,EAAE,YAAY;YAC9B,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,0DAA0D;YAC9D,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AA5BW,QAAA,sBAAsB,0BA4BjC"}
@@ -0,0 +1,4 @@
1
+ export declare const HORIZON_TEST_BASE_URL = "https://horizon.example.com";
2
+ export declare const handles: import("msw").HttpHandler[];
3
+ export declare const mockServer: import("msw/node").SetupServerApi;
4
+ //# sourceMappingURL=msw-handles.fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msw-handles.fixture.d.ts","sourceRoot":"","sources":["../../src/bridge/msw-handles.fixture.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AAEnE,eAAO,MAAM,OAAO,6BA2GnB,CAAC;AACF,eAAO,MAAM,UAAU,mCAAgB,CAAC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockServer = exports.handles = exports.HORIZON_TEST_BASE_URL = void 0;
4
+ const msw_1 = require("msw");
5
+ const node_1 = require("msw/node");
6
+ exports.HORIZON_TEST_BASE_URL = "https://horizon.example.com";
7
+ exports.handles = [
8
+ msw_1.http.get(`${exports.HORIZON_TEST_BASE_URL}/accounts/:addr`, ({ params }) => {
9
+ const addr = params.addr;
10
+ return msw_1.HttpResponse.json({
11
+ id: addr,
12
+ account_id: addr,
13
+ sequence: "126500681086402560",
14
+ subentry_count: 0,
15
+ last_modified_ledger: 56086052,
16
+ last_modified_time: "2025-03-10T10:24:01Z",
17
+ thresholds: {
18
+ low_threshold: 0,
19
+ med_threshold: 0,
20
+ high_threshold: 0,
21
+ },
22
+ flags: {
23
+ auth_required: false,
24
+ auth_revocable: false,
25
+ auth_immutable: false,
26
+ auth_clawback_enabled: false,
27
+ },
28
+ balances: [
29
+ {
30
+ balance: "83277.0750826",
31
+ buying_liabilities: "0.0000000",
32
+ selling_liabilities: "0.0000000",
33
+ asset_type: "native",
34
+ },
35
+ ],
36
+ signers: [
37
+ {
38
+ weight: 1,
39
+ key: addr,
40
+ type: "ed25519_public_key",
41
+ },
42
+ ],
43
+ data: {},
44
+ num_sponsoring: 0,
45
+ num_sponsored: 0,
46
+ paging_token: addr,
47
+ });
48
+ }),
49
+ msw_1.http.get(`${exports.HORIZON_TEST_BASE_URL}/fee_stats`, () => {
50
+ return msw_1.HttpResponse.json({
51
+ last_ledger: "56116307",
52
+ last_ledger_base_fee: "100",
53
+ ledger_capacity_usage: "0.56",
54
+ fee_charged: {
55
+ max: "404782",
56
+ min: "100",
57
+ mode: "100",
58
+ p10: "100",
59
+ p20: "100",
60
+ p30: "100",
61
+ p40: "100",
62
+ p50: "100",
63
+ p60: "100",
64
+ p70: "100",
65
+ p80: "100",
66
+ p90: "100",
67
+ p95: "100",
68
+ p99: "100",
69
+ },
70
+ max_fee: {
71
+ max: "129853690",
72
+ min: "100",
73
+ mode: "5000002",
74
+ p10: "101",
75
+ p20: "2569",
76
+ p30: "15885",
77
+ p40: "51234",
78
+ p50: "100159",
79
+ p60: "250005",
80
+ p70: "500000",
81
+ p80: "2000001",
82
+ p90: "5000002",
83
+ p95: "7062290",
84
+ p99: "112536447",
85
+ },
86
+ });
87
+ }),
88
+ msw_1.http.get(`${exports.HORIZON_TEST_BASE_URL}/transactions/:txId`, ({ params }) => {
89
+ const txId = params.txId;
90
+ const ledgerNum = Math.floor(Math.random() * 1000000);
91
+ return msw_1.HttpResponse.json({
92
+ _links: {
93
+ ledger: {
94
+ href: `${exports.HORIZON_TEST_BASE_URL}/ledgers/${ledgerNum}`,
95
+ },
96
+ },
97
+ id: txId,
98
+ hash: txId,
99
+ ledger: ledgerNum,
100
+ created_at: "2024-11-07T01:24:02Z",
101
+ });
102
+ }),
103
+ msw_1.http.get(`${exports.HORIZON_TEST_BASE_URL}/ledgers/:ledgerNum`, () => {
104
+ return msw_1.HttpResponse.json({
105
+ hash: "0000000000000000000000000000000000000000000000000000000000000000",
106
+ closed_at: "2024-01-07T09:28:18Z",
107
+ });
108
+ }),
109
+ ];
110
+ exports.mockServer = (0, node_1.setupServer)();
111
+ //# sourceMappingURL=msw-handles.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msw-handles.fixture.js","sourceRoot":"","sources":["../../src/bridge/msw-handles.fixture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"synchronization.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAMtF,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,CAoEpD,CAAC"}
1
+ {"version":3,"file":"synchronization.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAOtF,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,CA8EpD,CAAC"}
@@ -34,6 +34,6 @@ describe("Sync Accounts", () => {
34
34
  freshAddress: accountId,
35
35
  });
36
36
  expect(account.id).toEqual(`js:2:stellar:${accountId}:`);
37
- }, 10 * 1_000);
37
+ });
38
38
  });
39
39
  //# sourceMappingURL=synchronization.integ.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synchronization.integ.test.js","sourceRoot":"","sources":["../../src/bridge/synchronization.integ.test.ts"],"names":[],"mappings":";;AAAA,+BAA8C;AAI9C,2CAAgD;AAChD,4DAA+D;AAE/D,MAAM,iBAAiB,GAAG;IACxB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;CACxB,CAAC;AACF,SAAS,WAAW,CAClB,MAA2B,EAC3B,OAAU,EACV,aAAyB,iBAAiB;IAE1C,OAAO,IAAA,qBAAc,EACnB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CACvF,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,IAAA,qCAAoB,GAAE,CAAC;AAE5C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,MAAwC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAsB,EAAE,CAAC,CAAC;YAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,QAAQ,EAAE;gBACR,GAAG,EAAE,iCAAiC;gBACtC,UAAU,EAAE,GAAG;aAChB;SACF,CAAC,CAAC;QACH,MAAM,GAAG,IAAA,qBAAa,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC;QACR,0DAA0D;QAC1D,0DAA0D;KAC3D,CAAC,CACA,oDAAoD,EACpD,KAAK,EAAE,SAAiB,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,MAAM,WAAW,CAA8B,MAAM,CAAC,aAAa,EAAE;YACnF,GAAG,YAAY;YACf,EAAE,EAAE,gBAAgB,SAAS,GAAG;YAChC,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,SAAS,GAAG,CAAC,CAAC;IAC3D,CAAC,EACD,EAAE,GAAG,KAAK,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"synchronization.integ.test.js","sourceRoot":"","sources":["../../src/bridge/synchronization.integ.test.ts"],"names":[],"mappings":";;AAAA,+BAA8C;AAI9C,2CAAgD;AAChD,4DAA+D;AAE/D,MAAM,iBAAiB,GAAG;IACxB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;CACxB,CAAC;AACF,SAAS,WAAW,CAClB,MAA2B,EAC3B,OAAU,EACV,aAAyB,iBAAiB;IAE1C,OAAO,IAAA,qBAAc,EACnB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CACvF,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,IAAA,qCAAoB,GAAE,CAAC;AAE5C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,MAAwC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAAsB,EAAE,CAAC,CAAC;YAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,QAAQ,EAAE;gBACR,GAAG,EAAE,iCAAiC;gBACtC,UAAU,EAAE,GAAG;aAChB;SACF,CAAC,CAAC;QACH,MAAM,GAAG,IAAA,qBAAa,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC;QACR,0DAA0D;QAC1D,0DAA0D;KAC3D,CAAC,CAAC,oDAAoD,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE;QACnF,MAAM,OAAO,GAAG,MAAM,WAAW,CAA8B,MAAM,CAAC,aAAa,EAAE;YACnF,GAAG,YAAY;YACf,EAAE,EAAE,gBAAgB,SAAS,GAAG;YAChC,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,SAAS,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -8,6 +8,7 @@ const network_1 = require("../network");
8
8
  const tokens_1 = require("./tokens");
9
9
  const types_1 = require("../types");
10
10
  const logic_1 = require("./logic");
11
+ const live_env_1 = require("@ledgerhq/live-env");
11
12
  const getAccountShape = async (info, syncConfig) => {
12
13
  const { address, currency, initialAccount, derivationMode } = info;
13
14
  // FIXME Workaround for burn address, see https://ledgerhq.atlassian.net/browse/LIVE-4014
@@ -22,12 +23,17 @@ const getAccountShape = async (info, syncConfig) => {
22
23
  });
23
24
  const { blockHeight, balance, spendableBalance, assets } = await (0, network_1.fetchAccount)(address);
24
25
  const oldOperations = (initialAccount?.operations || []);
25
- const newOperations = (await (0, network_1.fetchAllOperations)({
26
- accountId,
27
- addr: address,
28
- order: "asc",
29
- cursor: oldOperations[0]?.extra.pagingToken,
30
- })) || [];
26
+ const lastPagingToken = oldOperations[0]?.extra.pagingToken || "";
27
+ const isInitSync = lastPagingToken === "";
28
+ const newOperations = (await (0, network_1.fetchAllOperations)(accountId, address, isInitSync ? "desc" : "asc", lastPagingToken,
29
+ /**
30
+ * For an account with a particularly high number of historical transactions,
31
+ * retrieving all the data would take a considerable amount of time and is likely to
32
+ * fail due to poor network connection quality or other reasons. Therefore, we set a
33
+ * limit on the number of retrieval operations here.
34
+ * If users want to access historical records from earlier, I would suggest they use a professional blockchain explorer.
35
+ */
36
+ isInitSync ? (0, live_env_1.getEnv)("API_STELLAR_HORIZON_INITIAL_FETCH_MAX_OPERATIONS") : undefined)) || [];
31
37
  const allOperations = (0, jsHelpers_1.mergeOps)(oldOperations, newOperations);
32
38
  const assetOperations = [];
33
39
  allOperations.forEach(operation => {
@@ -1 +1 @@
1
- {"version":3,"file":"synchronization.js","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":";;;AAAA,kEAAyE;AACzE,wEAAkF;AAElF,yEAAsF;AACtF,wCAA8D;AAC9D,qCAA4C;AAC5C,oCAAqE;AACrE,mCAA+C;AAExC,MAAM,eAAe,GAA6B,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAClF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnE,yFAAyF;IACzF,IAAI,OAAO,KAAK,4BAAoB;QAAE,MAAM,IAAI,+BAAuB,EAAE,CAAC;IAE1E,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;IAEvF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,IAAI,EAAE,CAAuB,CAAC;IAE/E,MAAM,aAAa,GACjB,CAAC,MAAM,IAAA,4BAAkB,EAAC;QACxB,SAAS;QACT,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW;KAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,MAAM,aAAa,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,aAAa,CAAuB,CAAC;IACnF,MAAM,eAAe,GAAuB,EAAE,CAAC;IAE/C,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,IACE,SAAS,EAAE,KAAK,EAAE,SAAS;YAC3B,SAAS,EAAE,KAAK,EAAE,WAAW;YAC7B,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAC/C,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GACf,IAAA,yBAAgB,EAAC;QACf,QAAQ;QACR,SAAS;QACT,MAAM;QACN,UAAU;QACV,UAAU,EAAE,eAAe;KAC5B,CAAC,IAAI,EAAE,CAAC;IAEX,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,SAAS;QACb,OAAO;QACP,gBAAgB;QAChB,eAAe,EAAE,aAAa,CAAC,MAAM;QACrC,WAAW;QACX,WAAW;KACZ,CAAC;IAEF,OAAO;QACL,GAAG,KAAK;QACR,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACjC,MAAM,aAAa,GAAG,IAAA,0BAAkB,EAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAE/D,OAAO;gBACL,GAAG,EAAE;gBACL,aAAa;aACd,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AApEW,QAAA,eAAe,mBAoE1B"}
1
+ {"version":3,"file":"synchronization.js","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":";;;AAAA,kEAAyE;AACzE,wEAAkF;AAElF,yEAAsF;AACtF,wCAA8D;AAC9D,qCAA4C;AAC5C,oCAAqE;AACrE,mCAA+C;AAC/C,iDAA4C;AAErC,MAAM,eAAe,GAA6B,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAClF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnE,yFAAyF;IACzF,IAAI,OAAO,KAAK,4BAAoB;QAAE,MAAM,IAAI,+BAAuB,EAAE,CAAC;IAE1E,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;IAEvF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,IAAI,EAAE,CAAuB,CAAC;IAC/E,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE,CAAC;IAE1C,MAAM,aAAa,GACjB,CAAC,MAAM,IAAA,4BAAkB,EACvB,SAAS,EACT,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAC3B,eAAe;IACf;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,CAAC,IAAA,iBAAM,EAAC,kDAAkD,CAAC,CAAC,CAAC,CAAC,SAAS,CACpF,CAAC,IAAI,EAAE,CAAC;IAEX,MAAM,aAAa,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,aAAa,CAAuB,CAAC;IACnF,MAAM,eAAe,GAAuB,EAAE,CAAC;IAE/C,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,IACE,SAAS,EAAE,KAAK,EAAE,SAAS;YAC3B,SAAS,EAAE,KAAK,EAAE,WAAW;YAC7B,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAC/C,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GACf,IAAA,yBAAgB,EAAC;QACf,QAAQ;QACR,SAAS;QACT,MAAM;QACN,UAAU;QACV,UAAU,EAAE,eAAe;KAC5B,CAAC,IAAI,EAAE,CAAC;IAEX,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,SAAS;QACb,OAAO;QACP,gBAAgB;QAChB,eAAe,EAAE,aAAa,CAAC,MAAM;QACrC,WAAW;QACX,WAAW;KACZ,CAAC;IAEF,OAAO;QACL,GAAG,KAAK;QACR,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACjC,MAAM,aAAa,GAAG,IAAA,0BAAkB,EAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAE/D,OAAO;gBACL,GAAG,EAAE;gBACL,aAAa;aACd,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AA9EW,QAAA,eAAe,mBA8E1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=synchronization.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.unit.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const msw_1 = require("msw");
7
+ const config_1 = __importDefault(require("../config"));
8
+ const currencies_1 = require("@ledgerhq/cryptoassets/lib/currencies");
9
+ const synchronization_1 = require("./synchronization");
10
+ const msw_handles_fixture_1 = require("./msw-handles.fixture");
11
+ const generators_fixture_1 = require("./generators.fixture");
12
+ describe("getAccountShape", () => {
13
+ beforeAll(() => {
14
+ config_1.default.setCoinConfig(() => ({
15
+ status: { type: "active" },
16
+ explorer: {
17
+ url: msw_handles_fixture_1.HORIZON_TEST_BASE_URL,
18
+ fetchLimit: 100,
19
+ },
20
+ }));
21
+ msw_handles_fixture_1.mockServer.listen({ onUnhandledRequest: "error" });
22
+ });
23
+ beforeEach(() => {
24
+ let requestCount = 0; // track the number of requests
25
+ msw_handles_fixture_1.mockServer.resetHandlers();
26
+ msw_handles_fixture_1.mockServer.use(...msw_handles_fixture_1.handles, msw_1.http.get(`${msw_handles_fixture_1.HORIZON_TEST_BASE_URL}/accounts/:addr/operations`, ({ params, request }) => {
27
+ const addr = params.addr;
28
+ const url = new URL(request.url);
29
+ const order = url.searchParams.get("order");
30
+ let operationsCount = 100;
31
+ // init sync, reach the threshold for fetching operations
32
+ if (addr == "GC65W5WLL7FN6WASRY5RCQAFF2CM75RBY2A6G7GF6UP244PVPUFBLIB6") {
33
+ if (order !== "desc") {
34
+ return msw_1.HttpResponse.json({}, { status: 400 });
35
+ }
36
+ }
37
+ // init sync, not reach the threshold for fetching operations
38
+ if (addr == "GBRBXWKLSAE2JMVCJSPC2NJEOS33MLMQ6DPSBEK76DEB5A6Q3DR43BJC") {
39
+ if (order !== "desc") {
40
+ return msw_1.HttpResponse.json({}, { status: 400 });
41
+ }
42
+ if (requestCount >= 3) {
43
+ operationsCount = 0;
44
+ }
45
+ }
46
+ // sync, fetch new operations after init sync
47
+ if (addr == "GBYLYVN3JLX4CTJ7HRAME5MNT5BJ32JLYBI7M7R5TI35I3HR6DLU46CC") {
48
+ switch (requestCount) {
49
+ case 0:
50
+ operationsCount = 80;
51
+ break;
52
+ case 2:
53
+ {
54
+ operationsCount = 10;
55
+ if (order !== "asc") {
56
+ return msw_1.HttpResponse.json({}, { status: 400 });
57
+ }
58
+ }
59
+ break;
60
+ default:
61
+ operationsCount = 0;
62
+ }
63
+ }
64
+ requestCount++;
65
+ const resp = {
66
+ _links: {
67
+ self: {
68
+ href: `${msw_handles_fixture_1.HORIZON_TEST_BASE_URL}/accounts/${addr}/operations?order=${order}`,
69
+ },
70
+ next: {
71
+ href: `${msw_handles_fixture_1.HORIZON_TEST_BASE_URL}/accounts/${addr}/operations?order=${order}`,
72
+ },
73
+ prev: {
74
+ href: `${msw_handles_fixture_1.HORIZON_TEST_BASE_URL}/accounts/${addr}/operations?order=${order}`,
75
+ },
76
+ },
77
+ _embedded: {
78
+ records: (0, generators_fixture_1.generateOperationsList)(addr, operationsCount),
79
+ },
80
+ };
81
+ return msw_1.HttpResponse.json(resp);
82
+ }));
83
+ });
84
+ afterAll(() => {
85
+ msw_handles_fixture_1.mockServer.close();
86
+ });
87
+ it("init sync, reach the threshold for fetching operations", async () => {
88
+ const info = {
89
+ address: "GC65W5WLL7FN6WASRY5RCQAFF2CM75RBY2A6G7GF6UP244PVPUFBLIB6",
90
+ currency: (0, currencies_1.getCryptoCurrencyById)("stellar"),
91
+ derivationMode: "",
92
+ index: 0,
93
+ };
94
+ const syncConfig = {};
95
+ const account = await (0, synchronization_1.getAccountShape)(info, syncConfig);
96
+ expect(account.operations?.length).toEqual(1000);
97
+ });
98
+ it("init sync, not reach the threshold for fetching operations", async () => {
99
+ const info = {
100
+ address: "GBRBXWKLSAE2JMVCJSPC2NJEOS33MLMQ6DPSBEK76DEB5A6Q3DR43BJC",
101
+ currency: (0, currencies_1.getCryptoCurrencyById)("stellar"),
102
+ derivationMode: "",
103
+ index: 0,
104
+ };
105
+ const syncConfig = {};
106
+ const account = await (0, synchronization_1.getAccountShape)(info, syncConfig);
107
+ expect(account.operations?.length).toEqual(300);
108
+ });
109
+ it("sync, fetch new operations after init sync", async () => {
110
+ const initInfo = {
111
+ address: "GBYLYVN3JLX4CTJ7HRAME5MNT5BJ32JLYBI7M7R5TI35I3HR6DLU46CC",
112
+ currency: (0, currencies_1.getCryptoCurrencyById)("stellar"),
113
+ derivationMode: "",
114
+ index: 0,
115
+ };
116
+ const syncConfig = {};
117
+ const initAccount = await (0, synchronization_1.getAccountShape)(initInfo, syncConfig);
118
+ expect(initAccount.operations?.length).toEqual(80);
119
+ const info = {
120
+ address: "GBYLYVN3JLX4CTJ7HRAME5MNT5BJ32JLYBI7M7R5TI35I3HR6DLU46CC",
121
+ currency: (0, currencies_1.getCryptoCurrencyById)("stellar"),
122
+ derivationMode: "",
123
+ index: 0,
124
+ initialAccount: initAccount,
125
+ };
126
+ const account = await (0, synchronization_1.getAccountShape)(info, syncConfig);
127
+ expect(account.operations?.length).toEqual(90);
128
+ });
129
+ });
130
+ //# sourceMappingURL=synchronization.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.unit.test.js","sourceRoot":"","sources":["../../src/bridge/synchronization.unit.test.ts"],"names":[],"mappings":"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"}
@@ -24,21 +24,17 @@ export declare function fetchAccount(addr: string): Promise<{
24
24
  assets: BalanceAsset[];
25
25
  }>;
26
26
  /**
27
- * Fetch all operations for a single account from indexer
27
+ * Fetch operations for a single account from indexer
28
28
  *
29
29
  * @param {string} accountId
30
30
  * @param {string} addr
31
31
  * @param {string} order - "desc" or "asc" order of returned records
32
32
  * @param {string} cursor - point to start fetching records
33
+ * @param {number} maxOperations - maximum number of operations to return, stops fetching after reaching this threshold
33
34
  *
34
35
  * @return {Operation[]}
35
36
  */
36
- export declare function fetchAllOperations({ accountId, addr, order, cursor, }: {
37
- accountId: string;
38
- addr: string;
39
- order: "asc" | "desc";
40
- cursor: string | undefined;
41
- }): Promise<StellarOperation[]>;
37
+ export declare function fetchAllOperations(accountId: string, addr: string, order: "asc" | "desc", cursor?: string, maxOperations?: number): Promise<StellarOperation[]>;
42
38
  export declare function fetchOperations({ accountId, addr, order, cursor, limit, }: {
43
39
  accountId: string;
44
40
  addr: string;
@@ -1 +1 @@
1
- {"version":3,"file":"horizon.d.ts","sourceRoot":"","sources":["../../src/network/horizon.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAEL,aAAa,EASd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,MAAM,EACX,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAqBlB,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,WAAW,IAAI,CAAC;AA+C7B,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,CAAC,CAsCD;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;IACnB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC,CA6BD;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,IAAI,EACJ,KAAK,EACL,MAAY,GACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6D9B;AAGD,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,GACN,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,GAAG,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC,CAsDxC;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBpF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAGxE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOtE;AAED,wBAAsB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMrF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAU7E;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC,CAOD;AAED,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,KAAK,CAAC;IACJ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,EACF;IACE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,IAAI,CAQT,CAAC"}
1
+ {"version":3,"file":"horizon.d.ts","sourceRoot":"","sources":["../../src/network/horizon.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAEL,aAAa,EASd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,MAAM,EACX,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAqBlB,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,WAAW,IAAI,CAAC;AA+C7B,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,CAAC,CAsCD;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;IACnB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC,CA6BD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,MAAM,GAAE,MAAW,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoE7B;AAGD,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,GACN,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,GAAG,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC,CAsDxC;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBpF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAGxE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOtE;AAED,wBAAsB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMrF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAU7E;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC,CAOD;AAED,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,KAAK,CAAC;IACJ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,EACF;IACE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,IAAI,CAQT,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=horizon.integ.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizon.integ.test.d.ts","sourceRoot":"","sources":["../../src/network/horizon.integ.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const config_1 = __importDefault(require("../config"));
7
+ const horizon_1 = require("./horizon");
8
+ describe("fetchAllOperations", () => {
9
+ beforeAll(() => {
10
+ config_1.default.setCoinConfig(() => ({
11
+ status: { type: "active" },
12
+ explorer: {
13
+ url: "https://stellar.coin.ledger.com",
14
+ fetchLimit: 10,
15
+ },
16
+ }));
17
+ });
18
+ it("fetch operations with limitations, set order to desc", async () => {
19
+ const addr = "GCOCZ3ODGW3YH6PPGMLGT3MORS5YBTVJCSL46TC2NMU2KCXGL52XLEZB";
20
+ const limit = 30;
21
+ const ops = await (0, horizon_1.fetchAllOperations)(addr, addr, "desc", "241343231793946722", limit);
22
+ expect(ops.length).toEqual(limit);
23
+ expect(ops[0].id).toEqual(`${addr}-241343231793946721-IN`);
24
+ expect(ops[29].id).toEqual(`${addr}-241343231793946692-IN`);
25
+ }, 10 * 1_000);
26
+ it("fetch operations without limitations, set order to desc", async () => {
27
+ const addr = "GCOCZ3ODGW3YH6PPGMLGT3MORS5YBTVJCSL46TC2NMU2KCXGL52XLEZB";
28
+ const ops = await (0, horizon_1.fetchAllOperations)(addr, addr, "desc", "241330913827401737");
29
+ expect(ops.length).toEqual(19);
30
+ expect(ops[0].id).toEqual(`${addr}-241330913827401736-IN`);
31
+ expect(ops[18].id).toEqual(`${addr}-241330845108273153-IN`);
32
+ }, 10 * 1_000);
33
+ it("fetch operations with limitations, set order to asc", async () => {
34
+ const addr = "GCOCZ3ODGW3YH6PPGMLGT3MORS5YBTVJCSL46TC2NMU2KCXGL52XLEZB";
35
+ const limit = 20;
36
+ const ops = await (0, horizon_1.fetchAllOperations)(addr, addr, "asc", "241343201729257475", limit);
37
+ expect(ops.length).toEqual(limit);
38
+ expect(ops[0].id).toEqual(`${addr}-241343201729257476-IN`);
39
+ expect(ops[19].id).toEqual(`${addr}-241343201729257495-IN`);
40
+ }, 10 * 1_000);
41
+ });
42
+ //# sourceMappingURL=horizon.integ.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizon.integ.test.js","sourceRoot":"","sources":["../../src/network/horizon.integ.test.ts"],"names":[],"mappings":";;;;;AAAA,uDAA0D;AAC1D,uCAA+C;AAE/C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,gBAAU,CAAC,aAAa,CACtB,GAAsB,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,QAAQ,EAAE;gBACR,GAAG,EAAE,iCAAiC;gBACtC,UAAU,EAAE,EAAE;aACf;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CACA,sDAAsD,EACtD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,0DAA0D,CAAC;QACxE,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACtF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IAC9D,CAAC,EACD,EAAE,GAAG,KAAK,CACX,CAAC;IAEF,EAAE,CACA,yDAAyD,EACzD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,0DAA0D,CAAC;QACxE,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IAC9D,CAAC,EACD,EAAE,GAAG,KAAK,CACX,CAAC;IAEF,EAAE,CACA,qDAAqD,EACrD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,0DAA0D,CAAC;QACxE,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACrF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IAC9D,CAAC,EACD,EAAE,GAAG,KAAK,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}