@ledgerhq/coin-hedera 1.12.0 → 1.12.1-nightly.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/lib/api/network.d.ts +2 -6
  4. package/lib/api/network.d.ts.map +1 -1
  5. package/lib/api/network.js +4 -25
  6. package/lib/api/network.js.map +1 -1
  7. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
  8. package/lib/bridge/buildOptimisticOperation.js +6 -2
  9. package/lib/bridge/buildOptimisticOperation.js.map +1 -1
  10. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  11. package/lib/bridge/getTransactionStatus.js +10 -13
  12. package/lib/bridge/getTransactionStatus.js.map +1 -1
  13. package/lib/bridge/utils.d.ts +4 -0
  14. package/lib/bridge/utils.d.ts.map +1 -1
  15. package/lib/bridge/utils.js +41 -3
  16. package/lib/bridge/utils.js.map +1 -1
  17. package/lib/errors.d.ts +12 -0
  18. package/lib/errors.d.ts.map +1 -1
  19. package/lib/errors.js +5 -1
  20. package/lib/errors.js.map +1 -1
  21. package/lib-es/api/network.d.ts +2 -6
  22. package/lib-es/api/network.d.ts.map +1 -1
  23. package/lib-es/api/network.js +3 -24
  24. package/lib-es/api/network.js.map +1 -1
  25. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
  26. package/lib-es/bridge/buildOptimisticOperation.js +7 -3
  27. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
  28. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  29. package/lib-es/bridge/getTransactionStatus.js +9 -12
  30. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  31. package/lib-es/bridge/utils.d.ts +4 -0
  32. package/lib-es/bridge/utils.d.ts.map +1 -1
  33. package/lib-es/bridge/utils.js +40 -3
  34. package/lib-es/bridge/utils.js.map +1 -1
  35. package/lib-es/errors.d.ts +12 -0
  36. package/lib-es/errors.d.ts.map +1 -1
  37. package/lib-es/errors.js +4 -0
  38. package/lib-es/errors.js.map +1 -1
  39. package/package.json +7 -7
  40. package/src/api/network.ts +2 -35
  41. package/src/bridge/buildOptimisticOperation.ts +7 -3
  42. package/src/bridge/getTransactionStatus.test.ts +27 -5
  43. package/src/bridge/getTransactionStatus.ts +14 -13
  44. package/src/bridge/utils.integration.test.ts +52 -0
  45. package/src/bridge/utils.ts +49 -2
  46. package/src/errors.ts +12 -0
  47. package/lib/api/mirror.test.d.ts +0 -2
  48. package/lib/api/mirror.test.d.ts.map +0 -1
  49. package/lib/api/mirror.test.js +0 -114
  50. package/lib/api/mirror.test.js.map +0 -1
  51. package/lib/api/network.test.d.ts +0 -2
  52. package/lib/api/network.test.d.ts.map +0 -1
  53. package/lib/api/network.test.js +0 -45
  54. package/lib/api/network.test.js.map +0 -1
  55. package/lib/bridge/buildOptimisticOperation.integration.test.d.ts +0 -2
  56. package/lib/bridge/buildOptimisticOperation.integration.test.d.ts.map +0 -1
  57. package/lib/bridge/buildOptimisticOperation.integration.test.js +0 -82
  58. package/lib/bridge/buildOptimisticOperation.integration.test.js.map +0 -1
  59. package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
  60. package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
  61. package/lib/bridge/getTransactionStatus.test.js +0 -176
  62. package/lib/bridge/getTransactionStatus.test.js.map +0 -1
  63. package/lib/bridge/js-estimateMaxSpendable.integration.test.d.ts +0 -2
  64. package/lib/bridge/js-estimateMaxSpendable.integration.test.d.ts.map +0 -1
  65. package/lib/bridge/js-estimateMaxSpendable.integration.test.js +0 -47
  66. package/lib/bridge/js-estimateMaxSpendable.integration.test.js.map +0 -1
  67. package/lib/bridge/js-transaction.test.d.ts +0 -2
  68. package/lib/bridge/js-transaction.test.d.ts.map +0 -1
  69. package/lib/bridge/js-transaction.test.js +0 -40
  70. package/lib/bridge/js-transaction.test.js.map +0 -1
  71. package/lib/bridge/prepareTransaction.test.d.ts +0 -2
  72. package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
  73. package/lib/bridge/prepareTransaction.test.js +0 -58
  74. package/lib/bridge/prepareTransaction.test.js.map +0 -1
  75. package/lib/bridge/serialization.test.d.ts +0 -2
  76. package/lib/bridge/serialization.test.d.ts.map +0 -1
  77. package/lib/bridge/serialization.test.js +0 -27
  78. package/lib/bridge/serialization.test.js.map +0 -1
  79. package/lib/bridge/transaction.test.d.ts +0 -2
  80. package/lib/bridge/transaction.test.d.ts.map +0 -1
  81. package/lib/bridge/transaction.test.js +0 -37
  82. package/lib/bridge/transaction.test.js.map +0 -1
  83. package/lib/bridge/utils.integration.test.d.ts +0 -2
  84. package/lib/bridge/utils.integration.test.d.ts.map +0 -1
  85. package/lib/bridge/utils.integration.test.js +0 -428
  86. package/lib/bridge/utils.integration.test.js.map +0 -1
  87. package/lib/logic.test.d.ts +0 -2
  88. package/lib/logic.test.d.ts.map +0 -1
  89. package/lib/logic.test.js +0 -111
  90. package/lib/logic.test.js.map +0 -1
  91. package/lib-es/api/mirror.test.d.ts +0 -2
  92. package/lib-es/api/mirror.test.d.ts.map +0 -1
  93. package/lib-es/api/mirror.test.js +0 -109
  94. package/lib-es/api/mirror.test.js.map +0 -1
  95. package/lib-es/api/network.test.d.ts +0 -2
  96. package/lib-es/api/network.test.d.ts.map +0 -1
  97. package/lib-es/api/network.test.js +0 -40
  98. package/lib-es/api/network.test.js.map +0 -1
  99. package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts +0 -2
  100. package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts.map +0 -1
  101. package/lib-es/bridge/buildOptimisticOperation.integration.test.js +0 -77
  102. package/lib-es/bridge/buildOptimisticOperation.integration.test.js.map +0 -1
  103. package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
  104. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
  105. package/lib-es/bridge/getTransactionStatus.test.js +0 -148
  106. package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
  107. package/lib-es/bridge/js-estimateMaxSpendable.integration.test.d.ts +0 -2
  108. package/lib-es/bridge/js-estimateMaxSpendable.integration.test.d.ts.map +0 -1
  109. package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js +0 -42
  110. package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js.map +0 -1
  111. package/lib-es/bridge/js-transaction.test.d.ts +0 -2
  112. package/lib-es/bridge/js-transaction.test.d.ts.map +0 -1
  113. package/lib-es/bridge/js-transaction.test.js +0 -35
  114. package/lib-es/bridge/js-transaction.test.js.map +0 -1
  115. package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
  116. package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
  117. package/lib-es/bridge/prepareTransaction.test.js +0 -30
  118. package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
  119. package/lib-es/bridge/serialization.test.d.ts +0 -2
  120. package/lib-es/bridge/serialization.test.d.ts.map +0 -1
  121. package/lib-es/bridge/serialization.test.js +0 -25
  122. package/lib-es/bridge/serialization.test.js.map +0 -1
  123. package/lib-es/bridge/transaction.test.d.ts +0 -2
  124. package/lib-es/bridge/transaction.test.d.ts.map +0 -1
  125. package/lib-es/bridge/transaction.test.js +0 -32
  126. package/lib-es/bridge/transaction.test.js.map +0 -1
  127. package/lib-es/bridge/utils.integration.test.d.ts +0 -2
  128. package/lib-es/bridge/utils.integration.test.d.ts.map +0 -1
  129. package/lib-es/bridge/utils.integration.test.js +0 -423
  130. package/lib-es/bridge/utils.integration.test.js.map +0 -1
  131. package/lib-es/logic.test.d.ts +0 -2
  132. package/lib-es/logic.test.d.ts.map +0 -1
  133. package/lib-es/logic.test.js +0 -109
  134. package/lib-es/logic.test.js.map +0 -1
@@ -1,109 +0,0 @@
1
- import network from "@ledgerhq/live-network/network";
2
- import { getAccount, getAccountTokens, getAccountTransactions } from "./mirror";
3
- jest.mock("@ledgerhq/live-network/network");
4
- const mockedNetwork = jest.mocked(network);
5
- const makeMockResponse = (data) => ({
6
- data,
7
- status: 200,
8
- statusText: "OK",
9
- headers: {},
10
- config: {
11
- headers: {},
12
- },
13
- });
14
- describe("getAccountTransactions", () => {
15
- beforeEach(() => {
16
- jest.clearAllMocks();
17
- });
18
- test("should include 'account.id', 'limit=100' and 'order=desc' query params", async () => {
19
- mockedNetwork.mockResolvedValueOnce(makeMockResponse({ transactions: [], links: { next: null } }));
20
- await getAccountTransactions("0.0.1234", null);
21
- const requestUrl = mockedNetwork.mock.calls[0][0].url;
22
- expect(requestUrl).toContain("account.id=0.0.1234");
23
- expect(requestUrl).toContain("limit=100");
24
- expect(requestUrl).toContain("order=desc");
25
- });
26
- test("should keep fetching if links.next is present", async () => {
27
- mockedNetwork
28
- .mockResolvedValueOnce(makeMockResponse({
29
- transactions: [{ consensus_timestamp: "1" }],
30
- links: { next: "/next-1" },
31
- }))
32
- .mockResolvedValueOnce(makeMockResponse({
33
- transactions: [],
34
- links: { next: "/next-2" },
35
- }))
36
- .mockResolvedValueOnce(makeMockResponse({
37
- transactions: [{ consensus_timestamp: "3" }],
38
- links: { next: "/next-3" },
39
- }))
40
- .mockResolvedValueOnce(makeMockResponse({
41
- transactions: [],
42
- links: { next: "/next-4" },
43
- }))
44
- .mockResolvedValueOnce(makeMockResponse({
45
- transactions: [],
46
- links: { next: null },
47
- }));
48
- const result = await getAccountTransactions("0.0.1234", null);
49
- expect(result).toHaveLength(2);
50
- expect(result.map(tx => tx.consensus_timestamp)).toEqual(["1", "3"]);
51
- expect(mockedNetwork).toHaveBeenCalledTimes(5);
52
- });
53
- });
54
- describe("getAccount", () => {
55
- beforeEach(() => {
56
- jest.clearAllMocks();
57
- });
58
- it("should call the correct endpoint and return account data", async () => {
59
- mockedNetwork.mockResolvedValueOnce(makeMockResponse({
60
- account: "0.0.1234",
61
- max_automatic_token_associations: 0,
62
- balance: {
63
- balance: 1000,
64
- timestamp: "1749047764.000113442",
65
- tokens: [],
66
- },
67
- }));
68
- const result = await getAccount("0.0.1234");
69
- const requestUrl = mockedNetwork.mock.calls[0][0].url;
70
- expect(result.account).toEqual("0.0.1234");
71
- expect(requestUrl).toContain("/api/v1/accounts/0.0.1234");
72
- expect(mockedNetwork).toHaveBeenCalledTimes(1);
73
- });
74
- });
75
- describe("getAccountTokens", () => {
76
- beforeEach(() => {
77
- jest.clearAllMocks();
78
- });
79
- it("should return all tokens if only one page is needed", async () => {
80
- mockedNetwork.mockResolvedValueOnce(makeMockResponse({
81
- tokens: [
82
- { token_id: "0.0.1001", balance: 10 },
83
- { token_id: "0.0.1002", balance: 20 },
84
- ],
85
- links: { next: null },
86
- }));
87
- const result = await getAccountTokens("0.0.1234");
88
- const requestUrl = mockedNetwork.mock.calls[0][0].url;
89
- expect(result.map(t => t.token_id)).toEqual(["0.0.1001", "0.0.1002"]);
90
- expect(requestUrl).toContain("/api/v1/accounts/0.0.1234/tokens");
91
- expect(requestUrl).toContain("limit=100");
92
- expect(mockedNetwork).toHaveBeenCalledTimes(1);
93
- });
94
- it("should keep fetching if links.next is present and new tokens are returned", async () => {
95
- mockedNetwork
96
- .mockResolvedValueOnce(makeMockResponse({
97
- tokens: [{ token_id: "0.0.1001", balance: 10 }],
98
- links: { next: "/next-1" },
99
- }))
100
- .mockResolvedValueOnce(makeMockResponse({
101
- tokens: [{ token_id: "0.0.1002", balance: 20 }],
102
- links: { next: null },
103
- }));
104
- const result = await getAccountTokens("0.0.1234");
105
- expect(result.map(t => t.token_id)).toEqual(["0.0.1001", "0.0.1002"]);
106
- expect(mockedNetwork).toHaveBeenCalledTimes(2);
107
- });
108
- });
109
- //# sourceMappingURL=mirror.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mirror.test.js","sourceRoot":"","sources":["../../src/api/mirror.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=network.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network.test.d.ts","sourceRoot":"","sources":["../../src/api/network.test.ts"],"names":[],"mappings":""}
@@ -1,40 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { TransferTransaction } from "@hashgraph/sdk";
3
- import { buildUnsignedTransaction } from "./network";
4
- import invariant from "invariant";
5
- describe("buildUnsignedTransaction", () => {
6
- const mockAccount = {
7
- freshAddress: "0.0.123",
8
- id: "hedera:0:0.0.123",
9
- balance: new BigNumber(1000),
10
- };
11
- test("builds basic transaction without maxFee", async () => {
12
- const transaction = {
13
- family: "hedera",
14
- amount: new BigNumber(100),
15
- recipient: "0.0.456",
16
- memo: "test memo",
17
- };
18
- const result = await buildUnsignedTransaction({ account: mockAccount, transaction });
19
- expect(result).toBeInstanceOf(TransferTransaction);
20
- invariant(result instanceof TransferTransaction, "hedera: TransferTransaction type guard");
21
- expect(result.transactionMemo).toBe("test memo");
22
- expect(result.isFrozen()).toBe(true);
23
- expect(result.hbarTransfers.size).toBe(2);
24
- const senderTransfer = result.hbarTransfers.get("0.0.123");
25
- const recipientTransfer = result.hbarTransfers.get("0.0.456");
26
- expect(senderTransfer?.toTinybars().toNumber()).toBe(-100);
27
- expect(recipientTransfer?.toTinybars().toNumber()).toBe(100);
28
- });
29
- test("sets max transaction fee when provided", async () => {
30
- const transaction = {
31
- family: "hedera",
32
- amount: new BigNumber(100),
33
- recipient: "0.0.456",
34
- maxFee: new BigNumber(50),
35
- };
36
- const result = await buildUnsignedTransaction({ account: mockAccount, transaction });
37
- expect(result.maxTransactionFee?.toTinybars().toNumber()).toBe(50);
38
- });
39
- });
40
- //# sourceMappingURL=network.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network.test.js","sourceRoot":"","sources":["../../src/api/network.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,WAAW,GAAG;QAClB,YAAY,EAAE,SAAS;QACvB,EAAE,EAAE,kBAAkB;QACtB,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC;KAClB,CAAC;IAEb,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,WAAW,GAAgB;YAC/B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC;YAC1B,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAErF,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACnD,SAAS,CAAC,MAAM,YAAY,mBAAmB,EAAE,wCAAwC,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE9D,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,WAAW,GAAgB;YAC/B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC;YAC1B,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;SAC1B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=buildOptimisticOperation.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildOptimisticOperation.integration.test.d.ts","sourceRoot":"","sources":["../../src/bridge/buildOptimisticOperation.integration.test.ts"],"names":[],"mappings":""}
@@ -1,77 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { getMockedAccount, getMockedTokenAccount } from "../test/fixtures/account.fixture";
3
- import { getMockedTokenCurrency } from "../test/fixtures/currency.fixture";
4
- import { getMockedTransaction } from "../test/fixtures/transaction.fixture";
5
- import { buildOptimisticOperation } from "./buildOptimisticOperation";
6
- import { getEstimatedFees } from "./utils";
7
- import { HEDERA_OPERATION_TYPES, HEDERA_TRANSACTION_KINDS } from "../constants";
8
- describe("buildOptimisticOperation", () => {
9
- let estimatedFees;
10
- beforeAll(async () => {
11
- const mockedAccount = getMockedAccount();
12
- const [crypto, associate] = await Promise.all([
13
- getEstimatedFees(mockedAccount, HEDERA_OPERATION_TYPES.CryptoTransfer),
14
- getEstimatedFees(mockedAccount, HEDERA_OPERATION_TYPES.TokenAssociate),
15
- ]);
16
- estimatedFees = { crypto, associate };
17
- });
18
- test("builds optimistic operation for token association", async () => {
19
- const mockedAccount = getMockedAccount();
20
- const mockedToken = getMockedTokenCurrency();
21
- const mockedTransaction = getMockedTransaction({
22
- amount: new BigNumber(0),
23
- recipient: "0.0.1234",
24
- properties: {
25
- name: HEDERA_TRANSACTION_KINDS.TokenAssociate.name,
26
- token: mockedToken,
27
- },
28
- });
29
- const op = await buildOptimisticOperation({
30
- account: mockedAccount,
31
- transaction: mockedTransaction,
32
- });
33
- expect(op.type).toBe("ASSOCIATE_TOKEN");
34
- expect(op.extra).toEqual({ associatedTokenId: mockedToken.contractAddress });
35
- expect(op.fee).toEqual(estimatedFees.associate);
36
- expect(op.senders).toContain(mockedAccount.freshAddress.toString());
37
- expect(op.recipients).toContain("0.0.1234");
38
- });
39
- test("builds optimistic operation for coin", async () => {
40
- const mockedAccount = getMockedAccount();
41
- const mockedTransaction = getMockedTransaction({
42
- amount: new BigNumber(123),
43
- recipient: "0.0.5678",
44
- });
45
- const op = await buildOptimisticOperation({
46
- account: mockedAccount,
47
- transaction: mockedTransaction,
48
- });
49
- expect(op.type).toBe("OUT");
50
- expect(op.fee).toEqual(estimatedFees.crypto);
51
- expect(op.value).toEqual(new BigNumber(123));
52
- expect(op.senders).toContain(mockedAccount.freshAddress.toString());
53
- expect(op.recipients).toContain("0.0.5678");
54
- });
55
- test("builds optimistic operation for token", async () => {
56
- const mockedTokenCurrency = getMockedTokenCurrency();
57
- const tokenAccount = getMockedTokenAccount(mockedTokenCurrency);
58
- const parentAccount = getMockedAccount({ subAccounts: [tokenAccount] });
59
- const mockedTransaction = getMockedTransaction({
60
- subAccountId: tokenAccount.id,
61
- amount: new BigNumber(123),
62
- recipient: "0.0.9999",
63
- });
64
- const op = await buildOptimisticOperation({
65
- account: parentAccount,
66
- transaction: mockedTransaction,
67
- });
68
- const subOp = op.subOperations[0];
69
- expect(op.type).toBe("FEES");
70
- expect(op.subOperations).toHaveLength(1);
71
- expect(subOp.type).toBe("OUT");
72
- expect(subOp.value).toEqual(new BigNumber(123));
73
- expect(subOp.accountId).toBe(tokenAccount.id);
74
- expect(subOp.recipients).toContain("0.0.9999");
75
- });
76
- });
77
- //# sourceMappingURL=buildOptimisticOperation.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildOptimisticOperation.integration.test.js","sourceRoot":"","sources":["../../src/bridge/buildOptimisticOperation.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getTransactionStatus.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":""}
@@ -1,148 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, AmountRequired, NotEnoughBalance, HederaInsufficientFundsForAssociation, HederaRecipientTokenAssociationRequired, HederaRecipientTokenAssociationUnverified, } from "@ledgerhq/errors";
3
- import { getMockedAccount, getMockedTokenAccount } from "../test/fixtures/account.fixture";
4
- import { getMockedTokenCurrency } from "../test/fixtures/currency.fixture";
5
- import { getMockedTransaction } from "../test/fixtures/transaction.fixture";
6
- import { getTransactionStatus } from "./getTransactionStatus";
7
- import * as utils from "./utils";
8
- import { HEDERA_TRANSACTION_KINDS } from "../constants";
9
- describe("getTransactionStatus", () => {
10
- const mockedEstimatedFee = new BigNumber(1);
11
- const mockedUsdRate = new BigNumber(1);
12
- const validRecipientAddress = "0.0.1234567";
13
- const invalidRecipientAddress = "invalid_address";
14
- beforeEach(() => {
15
- jest.clearAllMocks();
16
- jest.spyOn(utils, "getCurrencyToUSDRate").mockResolvedValueOnce(mockedUsdRate);
17
- jest.spyOn(utils, "getEstimatedFees").mockResolvedValueOnce(mockedEstimatedFee);
18
- });
19
- test("coin transfer with valid recipient and sufficient balance completes successfully", async () => {
20
- const mockedAccount = getMockedAccount({ balance: new BigNumber(1000) });
21
- const mockedTransaction = getMockedTransaction({
22
- recipient: validRecipientAddress,
23
- amount: new BigNumber(100),
24
- });
25
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
26
- expect(result.errors).toEqual({});
27
- expect(result.warnings).toEqual({});
28
- expect(result.amount).toEqual(new BigNumber(100));
29
- expect(result.totalSpent.isGreaterThan(100)).toBe(true);
30
- });
31
- test("token transfer with valid recipient and sufficient balance completes successfully", async () => {
32
- jest.spyOn(utils, "checkAccountTokenAssociationStatus").mockResolvedValueOnce(true);
33
- const tokenCurrency = getMockedTokenCurrency();
34
- const tokenAccount = getMockedTokenAccount(tokenCurrency, { balance: new BigNumber(500) });
35
- const account = getMockedAccount({ balance: new BigNumber(1000), subAccounts: [tokenAccount] });
36
- const transaction = getMockedTransaction({
37
- subAccountId: tokenAccount.id,
38
- recipient: validRecipientAddress,
39
- amount: new BigNumber(200),
40
- });
41
- const result = await getTransactionStatus(account, transaction);
42
- expect(result.errors).toEqual({});
43
- expect(result.warnings).toEqual({});
44
- expect(result.amount).toEqual(new BigNumber(200));
45
- });
46
- test("token associate transaction with sufficient USD worth completes successfully", async () => {
47
- const mockedTokenCurrency = getMockedTokenCurrency();
48
- const mockedAccount = getMockedAccount();
49
- const mockedTransaction = getMockedTransaction({
50
- properties: {
51
- name: HEDERA_TRANSACTION_KINDS.TokenAssociate.name,
52
- token: mockedTokenCurrency,
53
- },
54
- });
55
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
56
- expect(result.amount).toEqual(new BigNumber(0));
57
- expect(result.errors).toEqual({});
58
- expect(result.warnings).toEqual({});
59
- expect(result.totalSpent).toEqual(mockedEstimatedFee);
60
- expect(result.estimatedFees).toEqual(mockedEstimatedFee);
61
- });
62
- test("adds error for invalid recipient address", async () => {
63
- const mockedAccount = getMockedAccount();
64
- const mockedTransaction = getMockedTransaction({ recipient: invalidRecipientAddress });
65
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
66
- expect(result.errors.recipient).toBeInstanceOf(InvalidAddress);
67
- });
68
- test("adds error for self transfers", async () => {
69
- const mockedAccount = getMockedAccount();
70
- const mockedTransaction = getMockedTransaction({
71
- recipient: mockedAccount.freshAddress,
72
- });
73
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
74
- expect(result.errors.recipient).toBeInstanceOf(InvalidAddressBecauseDestinationIsAlsoSource);
75
- });
76
- test("adds error during coin transfer with insufficient balance", async () => {
77
- const mockedAccount = getMockedAccount({ balance: new BigNumber(0) });
78
- const mockedTransaction = getMockedTransaction({
79
- amount: new BigNumber(100),
80
- recipient: validRecipientAddress,
81
- });
82
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
83
- expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance);
84
- });
85
- test("adds error if USD balance is too low for token association", async () => {
86
- const mockedTokenCurrency = getMockedTokenCurrency();
87
- const mockedAccount = getMockedAccount({ balance: new BigNumber(0) });
88
- const mockedTransaction = getMockedTransaction({
89
- properties: {
90
- name: HEDERA_TRANSACTION_KINDS.TokenAssociate.name,
91
- token: mockedTokenCurrency,
92
- },
93
- });
94
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
95
- expect(result.errors.insufficientAssociateBalance).toBeInstanceOf(HederaInsufficientFundsForAssociation);
96
- });
97
- test("adds warning during token transfer if recipient has no token associated", async () => {
98
- jest.spyOn(utils, "checkAccountTokenAssociationStatus").mockResolvedValueOnce(false);
99
- const mockedTokenCurrency = getMockedTokenCurrency();
100
- const mockedTokenAccount = getMockedTokenAccount(mockedTokenCurrency);
101
- const mockedAccount = getMockedAccount({ subAccounts: [mockedTokenAccount] });
102
- const mockedTransaction = getMockedTransaction({
103
- subAccountId: mockedTokenAccount.id,
104
- recipient: validRecipientAddress,
105
- });
106
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
107
- expect(result.warnings.missingAssociation).toBeInstanceOf(HederaRecipientTokenAssociationRequired);
108
- });
109
- test("adds warning if token association status can't be verified", async () => {
110
- jest
111
- .spyOn(utils, "checkAccountTokenAssociationStatus")
112
- .mockRejectedValueOnce(new HederaRecipientTokenAssociationUnverified());
113
- const mockedTokenCurrency = getMockedTokenCurrency();
114
- const mockedTokenAccount = getMockedTokenAccount(mockedTokenCurrency);
115
- const mockedAccount = getMockedAccount({ subAccounts: [mockedTokenAccount] });
116
- const mockedTransaction = getMockedTransaction({
117
- subAccountId: mockedTokenAccount.id,
118
- recipient: validRecipientAddress,
119
- });
120
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
121
- expect(result.warnings.unverifiedAssociation).toBeInstanceOf(HederaRecipientTokenAssociationUnverified);
122
- });
123
- test("adds error during token transfer with insufficient balance", async () => {
124
- const mockedTokenCurrency = getMockedTokenCurrency();
125
- const mockedTokenAccount = getMockedTokenAccount(mockedTokenCurrency, {
126
- balance: new BigNumber(0),
127
- });
128
- const mockedAccount = getMockedAccount({ subAccounts: [mockedTokenAccount] });
129
- const mockedTransaction = getMockedTransaction({
130
- subAccountId: mockedTokenAccount.id,
131
- recipient: validRecipientAddress,
132
- amount: new BigNumber(100),
133
- });
134
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
135
- expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance);
136
- });
137
- test("adds error if amount is zero and useAllAmount is false", async () => {
138
- const mockedAccount = getMockedAccount();
139
- const mockedTransaction = getMockedTransaction({
140
- recipient: validRecipientAddress,
141
- amount: new BigNumber(0),
142
- useAllAmount: false,
143
- });
144
- const result = await getTransactionStatus(mockedAccount, mockedTransaction);
145
- expect(result.errors.amount).toBeInstanceOf(AmountRequired);
146
- });
147
- });
148
- //# sourceMappingURL=getTransactionStatus.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=js-estimateMaxSpendable.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-estimateMaxSpendable.integration.test.d.ts","sourceRoot":"","sources":["../../src/bridge/js-estimateMaxSpendable.integration.test.ts"],"names":[],"mappings":""}
@@ -1,42 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { createBridges } from ".";
3
- import { getEstimatedFees } from "./utils";
4
- import { getMockedAccount, getMockedTokenAccount } from "../test/fixtures/account.fixture";
5
- import { getMockedTokenCurrency } from "../test/fixtures/currency.fixture";
6
- import { HEDERA_OPERATION_TYPES } from "../constants";
7
- describe("js-estimateMaxSpendable", () => {
8
- let bridge;
9
- let estimatedFees;
10
- beforeAll(async () => {
11
- const signer = jest.fn();
12
- bridge = createBridges(signer);
13
- const mockedAccount = getMockedAccount();
14
- const crypto = await getEstimatedFees(mockedAccount, HEDERA_OPERATION_TYPES.CryptoTransfer);
15
- estimatedFees = { crypto };
16
- });
17
- test("estimateMaxSpendable returns balance minus fee", async () => {
18
- const mockedAccount = getMockedAccount();
19
- const result = await bridge.accountBridge.estimateMaxSpendable({
20
- account: mockedAccount,
21
- });
22
- expect(result).toEqual(mockedAccount.balance.minus(estimatedFees.crypto));
23
- });
24
- test("estimateMaxSpendable returns 0 if balance < estimated fees", async () => {
25
- const mockedAccount = getMockedAccount({ balance: estimatedFees.crypto.minus(1) });
26
- const result = await bridge.accountBridge.estimateMaxSpendable({
27
- account: mockedAccount,
28
- });
29
- expect(result).toEqual(new BigNumber(0));
30
- });
31
- test("estimateMaxSpendable returns token balance for token account", async () => {
32
- const mockedTokenCurrency = getMockedTokenCurrency();
33
- const mockedTokenAccount = getMockedTokenAccount(mockedTokenCurrency);
34
- const mockedAccount = getMockedAccount({ subAccounts: [mockedTokenAccount] });
35
- const result = await bridge.accountBridge.estimateMaxSpendable({
36
- account: mockedTokenAccount,
37
- parentAccount: mockedAccount,
38
- });
39
- expect(result).toEqual(mockedTokenAccount.balance);
40
- });
41
- });
42
- //# sourceMappingURL=js-estimateMaxSpendable.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-estimateMaxSpendable.integration.test.js","sourceRoot":"","sources":["../../src/bridge/js-estimateMaxSpendable.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,MAAwC,CAAC;IAC7C,IAAI,aAA0C,CAAC;IAE/C,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAE5F,aAAa,GAAG,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC;YAC7D,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEnF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC;YAC7D,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;QACrD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAE9E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC;YAC7D,OAAO,EAAE,kBAAkB;YAC3B,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=js-transaction.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-transaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/js-transaction.test.ts"],"names":[],"mappings":""}
@@ -1,35 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { updateTransaction } from "@ledgerhq/coin-framework/bridge/jsHelpers";
3
- import { createBridges } from ".";
4
- import { getMockedAccount } from "../test/fixtures/account.fixture";
5
- import { getMockedTransaction } from "../test/fixtures/transaction.fixture";
6
- describe("js-transaction", () => {
7
- let bridge;
8
- const mockedAccount = getMockedAccount();
9
- const mockedTransaction = getMockedTransaction();
10
- beforeAll(() => {
11
- const signer = jest.fn();
12
- bridge = createBridges(signer);
13
- });
14
- test("createTransaction", () => {
15
- const data = mockedTransaction;
16
- const result = bridge.accountBridge.createTransaction(mockedAccount);
17
- expect(result).toEqual(data);
18
- });
19
- test("updateTransaction", () => {
20
- const patch = {
21
- amount: new BigNumber(5),
22
- recipient: "0.0.3",
23
- useAllAmount: true,
24
- };
25
- const data = { ...mockedTransaction, ...patch };
26
- const result = updateTransaction(mockedTransaction, patch);
27
- expect(result).toEqual(data);
28
- });
29
- test("prepareTransaction", async () => {
30
- const data = mockedTransaction;
31
- const result = await bridge.accountBridge.prepareTransaction(mockedAccount, mockedTransaction);
32
- expect(result).toEqual(data);
33
- });
34
- });
35
- //# sourceMappingURL=js-transaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-transaction.test.js","sourceRoot":"","sources":["../../src/bridge/js-transaction.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAG5E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,MAAwC,CAAC;IAC7C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAErE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,KAAK,GAAyB;YAClC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;YACxB,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,IAAI;SACnB,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,KAAK,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAE/F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=prepareTransaction.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareTransaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import * as utils from "./utils";
3
- import { prepareTransaction } from "./prepareTransaction";
4
- describe("prepareTransaction", () => {
5
- const mockAccount = {
6
- id: "hedera:0:testAccount",
7
- freshAddress: "0.0.123",
8
- spendableBalance: new BigNumber(1000000),
9
- currency: { id: "hedera" },
10
- };
11
- const mockTx = {
12
- family: "hedera",
13
- amount: new BigNumber(0),
14
- recipient: "",
15
- useAllAmount: false,
16
- };
17
- beforeEach(() => {
18
- jest.clearAllMocks();
19
- jest.spyOn(utils, "getEstimatedFees").mockResolvedValue(Promise.resolve(new BigNumber(10)));
20
- jest
21
- .spyOn(utils, "calculateAmount")
22
- .mockResolvedValue(Promise.resolve({ amount: new BigNumber(100), totalSpent: new BigNumber(100) }));
23
- });
24
- test("should set amount and maxFee from utils", async () => {
25
- const result = await prepareTransaction(mockAccount, mockTx);
26
- expect(result.amount).toStrictEqual(new BigNumber(100));
27
- expect(result.maxFee).toStrictEqual(new BigNumber(10));
28
- });
29
- });
30
- //# sourceMappingURL=prepareTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,sBAAsB;QAC1B,YAAY,EAAE,SAAS;QACvB,gBAAgB,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC;QACxC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KAChB,CAAC;IAEb,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;QACxB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,KAAK;KACL,CAAC;IAEjB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI;aACD,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC;aAC/B,iBAAiB,CAChB,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAChF,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=serialization.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialization.test.d.ts","sourceRoot":"","sources":["../../src/bridge/serialization.test.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { getMockedAccount, getMockedAccountRaw, mockHederaResources, mockHederaResourcesRaw, } from "../test/fixtures/account.fixture";
2
- import { assignFromAccountRaw, assignToAccountRaw, fromHederaResourcesRaw, toHederaResourcesRaw, } from "./serialization";
3
- const mockedAccount = getMockedAccount();
4
- const mockedAccountRaw = getMockedAccountRaw();
5
- describe("serialization", () => {
6
- test("toHederaResourcesRaw should convert HederaResources to HederaResourcesRaw", () => {
7
- const result = toHederaResourcesRaw(mockHederaResources);
8
- expect(result).toEqual(mockHederaResourcesRaw);
9
- });
10
- test("fromHederaResourcesRaw should convert HederaResourcesRaw to HederaResources", () => {
11
- const result = fromHederaResourcesRaw(mockHederaResourcesRaw);
12
- expect(result).toEqual(mockHederaResources);
13
- });
14
- test("assignToAccountRaw should assign HederaResources to AccountRaw", () => {
15
- assignToAccountRaw(mockedAccount, mockedAccountRaw);
16
- expect(typeof mockedAccountRaw.hederaResources).toBe("object");
17
- expect(mockedAccountRaw.hederaResources).not.toBeNull();
18
- });
19
- test("assignFromAccountRaw should assign HederaResourcesRaw to Account", () => {
20
- assignFromAccountRaw(mockedAccountRaw, mockedAccount);
21
- expect(typeof mockedAccountRaw.hederaResources).toBe("object");
22
- expect(mockedAccountRaw.hederaResources).not.toBeNull();
23
- });
24
- });
25
- //# sourceMappingURL=serialization.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialization.test.js","sourceRoot":"","sources":["../../src/bridge/serialization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AACzC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAE/C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACrF,MAAM,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACvF,MAAM,MAAM,GAAG,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;QAC1E,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC5E,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}