@ledgerhq/coin-canton 0.8.0-nightly.7 → 0.8.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 (213) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +36 -66
  3. package/lib/api/getBalance.integ.test.d.ts +2 -0
  4. package/lib/api/getBalance.integ.test.d.ts.map +1 -0
  5. package/lib/api/getBalance.integ.test.js +28 -0
  6. package/lib/api/getBalance.integ.test.js.map +1 -0
  7. package/lib/api/index.test.d.ts +2 -0
  8. package/lib/api/index.test.d.ts.map +1 -0
  9. package/lib/api/index.test.js +16 -0
  10. package/lib/api/index.test.js.map +1 -0
  11. package/lib/api/lastBlock.integ.test.d.ts +2 -0
  12. package/lib/api/lastBlock.integ.test.d.ts.map +1 -0
  13. package/lib/api/lastBlock.integ.test.js +22 -0
  14. package/lib/api/lastBlock.integ.test.js.map +1 -0
  15. package/lib/api/listOperations.integ.test.d.ts +2 -0
  16. package/lib/api/listOperations.integ.test.d.ts.map +1 -0
  17. package/lib/api/listOperations.integ.test.js +24 -0
  18. package/lib/api/listOperations.integ.test.js.map +1 -0
  19. package/lib/bridge/broadcast.test.d.ts +2 -0
  20. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  21. package/lib/bridge/broadcast.test.js +44 -0
  22. package/lib/bridge/broadcast.test.js.map +1 -0
  23. package/lib/bridge/createTransaction.test.d.ts +2 -0
  24. package/lib/bridge/createTransaction.test.d.ts.map +1 -0
  25. package/lib/bridge/createTransaction.test.js +12 -0
  26. package/lib/bridge/createTransaction.test.js.map +1 -0
  27. package/lib/bridge/deviceTransactionConfig.test.d.ts +2 -0
  28. package/lib/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  29. package/lib/bridge/deviceTransactionConfig.test.js +22 -0
  30. package/lib/bridge/deviceTransactionConfig.test.js.map +1 -0
  31. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  32. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  33. package/lib/bridge/getTransactionStatus.test.js +365 -0
  34. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  35. package/lib/bridge/index.test.d.ts +2 -0
  36. package/lib/bridge/index.test.d.ts.map +1 -0
  37. package/lib/bridge/index.test.js +31 -0
  38. package/lib/bridge/index.test.js.map +1 -0
  39. package/lib/bridge/onboard.d.ts +1 -1
  40. package/lib/bridge/onboard.d.ts.map +1 -1
  41. package/lib/bridge/onboard.integ.test.d.ts +2 -0
  42. package/lib/bridge/onboard.integ.test.d.ts.map +1 -0
  43. package/lib/bridge/onboard.integ.test.js +182 -0
  44. package/lib/bridge/onboard.integ.test.js.map +1 -0
  45. package/lib/bridge/onboard.js +9 -23
  46. package/lib/bridge/onboard.js.map +1 -1
  47. package/lib/bridge/onboard.test.d.ts +2 -0
  48. package/lib/bridge/onboard.test.d.ts.map +1 -0
  49. package/lib/bridge/onboard.test.js +84 -0
  50. package/lib/bridge/onboard.test.js.map +1 -0
  51. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  52. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  53. package/lib/bridge/prepareTransaction.test.js +42 -0
  54. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  55. package/lib/bridge/sync.d.ts.map +1 -1
  56. package/lib/bridge/sync.integ.test.d.ts +2 -0
  57. package/lib/bridge/sync.integ.test.d.ts.map +1 -0
  58. package/lib/bridge/sync.integ.test.js +198 -0
  59. package/lib/bridge/sync.integ.test.js.map +1 -0
  60. package/lib/bridge/sync.js +2 -4
  61. package/lib/bridge/sync.js.map +1 -1
  62. package/lib/bridge/sync.test.d.ts +2 -0
  63. package/lib/bridge/sync.test.d.ts.map +1 -0
  64. package/lib/bridge/sync.test.js +201 -0
  65. package/lib/bridge/sync.test.js.map +1 -0
  66. package/lib/common-logic/account/getBalance.unit.test.d.ts +2 -0
  67. package/lib/common-logic/account/getBalance.unit.test.d.ts.map +1 -0
  68. package/lib/common-logic/account/getBalance.unit.test.js +91 -0
  69. package/lib/common-logic/account/getBalance.unit.test.js.map +1 -0
  70. package/lib/common-logic/history/lastBlock.test.d.ts +2 -0
  71. package/lib/common-logic/history/lastBlock.test.d.ts.map +1 -0
  72. package/lib/common-logic/history/lastBlock.test.js +46 -0
  73. package/lib/common-logic/history/lastBlock.test.js.map +1 -0
  74. package/lib/common-logic/transaction/broadcast.test.d.ts +2 -0
  75. package/lib/common-logic/transaction/broadcast.test.d.ts.map +1 -0
  76. package/lib/common-logic/transaction/broadcast.test.js +71 -0
  77. package/lib/common-logic/transaction/broadcast.test.js.map +1 -0
  78. package/lib/common-logic/transaction/combine.test.d.ts +2 -0
  79. package/lib/common-logic/transaction/combine.test.d.ts.map +1 -0
  80. package/lib/common-logic/transaction/combine.test.js +18 -0
  81. package/lib/common-logic/transaction/combine.test.js.map +1 -0
  82. package/lib/common-logic/transaction/estimateFees.test.d.ts +2 -0
  83. package/lib/common-logic/transaction/estimateFees.test.d.ts.map +1 -0
  84. package/lib/common-logic/transaction/estimateFees.test.js +72 -0
  85. package/lib/common-logic/transaction/estimateFees.test.js.map +1 -0
  86. package/lib/common-logic/utils.test.d.ts +2 -0
  87. package/lib/common-logic/utils.test.d.ts.map +1 -0
  88. package/lib/common-logic/utils.test.js +104 -0
  89. package/lib/common-logic/utils.test.js.map +1 -0
  90. package/lib/network/gateway.integ.test.d.ts +2 -0
  91. package/lib/network/gateway.integ.test.d.ts.map +1 -0
  92. package/lib/network/gateway.integ.test.js +190 -0
  93. package/lib/network/gateway.integ.test.js.map +1 -0
  94. package/lib/network/gateway.test.d.ts +2 -0
  95. package/lib/network/gateway.test.d.ts.map +1 -0
  96. package/lib/network/gateway.test.js +59 -0
  97. package/lib/network/gateway.test.js.map +1 -0
  98. package/lib/network/node.integ.test.d.ts +2 -0
  99. package/lib/network/node.integ.test.d.ts.map +1 -0
  100. package/lib/network/node.integ.test.js +44 -0
  101. package/lib/network/node.integ.test.js.map +1 -0
  102. package/lib/network/node.unit.test.d.ts +2 -0
  103. package/lib/network/node.unit.test.d.ts.map +1 -0
  104. package/lib/network/node.unit.test.js +32 -0
  105. package/lib/network/node.unit.test.js.map +1 -0
  106. package/lib-es/api/getBalance.integ.test.d.ts +2 -0
  107. package/lib-es/api/getBalance.integ.test.d.ts.map +1 -0
  108. package/lib-es/api/getBalance.integ.test.js +26 -0
  109. package/lib-es/api/getBalance.integ.test.js.map +1 -0
  110. package/lib-es/api/index.test.d.ts +2 -0
  111. package/lib-es/api/index.test.d.ts.map +1 -0
  112. package/lib-es/api/index.test.js +14 -0
  113. package/lib-es/api/index.test.js.map +1 -0
  114. package/lib-es/api/lastBlock.integ.test.d.ts +2 -0
  115. package/lib-es/api/lastBlock.integ.test.d.ts.map +1 -0
  116. package/lib-es/api/lastBlock.integ.test.js +20 -0
  117. package/lib-es/api/lastBlock.integ.test.js.map +1 -0
  118. package/lib-es/api/listOperations.integ.test.d.ts +2 -0
  119. package/lib-es/api/listOperations.integ.test.d.ts.map +1 -0
  120. package/lib-es/api/listOperations.integ.test.js +22 -0
  121. package/lib-es/api/listOperations.integ.test.js.map +1 -0
  122. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  123. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  124. package/lib-es/bridge/broadcast.test.js +42 -0
  125. package/lib-es/bridge/broadcast.test.js.map +1 -0
  126. package/lib-es/bridge/createTransaction.test.d.ts +2 -0
  127. package/lib-es/bridge/createTransaction.test.d.ts.map +1 -0
  128. package/lib-es/bridge/createTransaction.test.js +10 -0
  129. package/lib-es/bridge/createTransaction.test.js.map +1 -0
  130. package/lib-es/bridge/deviceTransactionConfig.test.d.ts +2 -0
  131. package/lib-es/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  132. package/lib-es/bridge/deviceTransactionConfig.test.js +17 -0
  133. package/lib-es/bridge/deviceTransactionConfig.test.js.map +1 -0
  134. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  135. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  136. package/lib-es/bridge/getTransactionStatus.test.js +360 -0
  137. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  138. package/lib-es/bridge/index.test.d.ts +2 -0
  139. package/lib-es/bridge/index.test.d.ts.map +1 -0
  140. package/lib-es/bridge/index.test.js +29 -0
  141. package/lib-es/bridge/index.test.js.map +1 -0
  142. package/lib-es/bridge/onboard.d.ts +1 -1
  143. package/lib-es/bridge/onboard.d.ts.map +1 -1
  144. package/lib-es/bridge/onboard.integ.test.d.ts +2 -0
  145. package/lib-es/bridge/onboard.integ.test.d.ts.map +1 -0
  146. package/lib-es/bridge/onboard.integ.test.js +177 -0
  147. package/lib-es/bridge/onboard.integ.test.js.map +1 -0
  148. package/lib-es/bridge/onboard.js +7 -21
  149. package/lib-es/bridge/onboard.js.map +1 -1
  150. package/lib-es/bridge/onboard.test.d.ts +2 -0
  151. package/lib-es/bridge/onboard.test.d.ts.map +1 -0
  152. package/lib-es/bridge/onboard.test.js +49 -0
  153. package/lib-es/bridge/onboard.test.js.map +1 -0
  154. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  155. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  156. package/lib-es/bridge/prepareTransaction.test.js +37 -0
  157. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  158. package/lib-es/bridge/sync.d.ts.map +1 -1
  159. package/lib-es/bridge/sync.integ.test.d.ts +2 -0
  160. package/lib-es/bridge/sync.integ.test.d.ts.map +1 -0
  161. package/lib-es/bridge/sync.integ.test.js +160 -0
  162. package/lib-es/bridge/sync.integ.test.js.map +1 -0
  163. package/lib-es/bridge/sync.js +3 -5
  164. package/lib-es/bridge/sync.js.map +1 -1
  165. package/lib-es/bridge/sync.test.d.ts +2 -0
  166. package/lib-es/bridge/sync.test.d.ts.map +1 -0
  167. package/lib-es/bridge/sync.test.js +163 -0
  168. package/lib-es/bridge/sync.test.js.map +1 -0
  169. package/lib-es/common-logic/account/getBalance.unit.test.d.ts +2 -0
  170. package/lib-es/common-logic/account/getBalance.unit.test.d.ts.map +1 -0
  171. package/lib-es/common-logic/account/getBalance.unit.test.js +56 -0
  172. package/lib-es/common-logic/account/getBalance.unit.test.js.map +1 -0
  173. package/lib-es/common-logic/history/lastBlock.test.d.ts +2 -0
  174. package/lib-es/common-logic/history/lastBlock.test.d.ts.map +1 -0
  175. package/lib-es/common-logic/history/lastBlock.test.js +41 -0
  176. package/lib-es/common-logic/history/lastBlock.test.js.map +1 -0
  177. package/lib-es/common-logic/transaction/broadcast.test.d.ts +2 -0
  178. package/lib-es/common-logic/transaction/broadcast.test.d.ts.map +1 -0
  179. package/lib-es/common-logic/transaction/broadcast.test.js +36 -0
  180. package/lib-es/common-logic/transaction/broadcast.test.js.map +1 -0
  181. package/lib-es/common-logic/transaction/combine.test.d.ts +2 -0
  182. package/lib-es/common-logic/transaction/combine.test.d.ts.map +1 -0
  183. package/lib-es/common-logic/transaction/combine.test.js +16 -0
  184. package/lib-es/common-logic/transaction/combine.test.js.map +1 -0
  185. package/lib-es/common-logic/transaction/estimateFees.test.d.ts +2 -0
  186. package/lib-es/common-logic/transaction/estimateFees.test.d.ts.map +1 -0
  187. package/lib-es/common-logic/transaction/estimateFees.test.js +37 -0
  188. package/lib-es/common-logic/transaction/estimateFees.test.js.map +1 -0
  189. package/lib-es/common-logic/utils.test.d.ts +2 -0
  190. package/lib-es/common-logic/utils.test.d.ts.map +1 -0
  191. package/lib-es/common-logic/utils.test.js +99 -0
  192. package/lib-es/common-logic/utils.test.js.map +1 -0
  193. package/lib-es/network/gateway.integ.test.d.ts +2 -0
  194. package/lib-es/network/gateway.integ.test.d.ts.map +1 -0
  195. package/lib-es/network/gateway.integ.test.js +185 -0
  196. package/lib-es/network/gateway.integ.test.js.map +1 -0
  197. package/lib-es/network/gateway.test.d.ts +2 -0
  198. package/lib-es/network/gateway.test.d.ts.map +1 -0
  199. package/lib-es/network/gateway.test.js +54 -0
  200. package/lib-es/network/gateway.test.js.map +1 -0
  201. package/lib-es/network/node.integ.test.d.ts +2 -0
  202. package/lib-es/network/node.integ.test.d.ts.map +1 -0
  203. package/lib-es/network/node.integ.test.js +39 -0
  204. package/lib-es/network/node.integ.test.js.map +1 -0
  205. package/lib-es/network/node.unit.test.d.ts +2 -0
  206. package/lib-es/network/node.unit.test.d.ts.map +1 -0
  207. package/lib-es/network/node.unit.test.js +27 -0
  208. package/lib-es/network/node.unit.test.js.map +1 -0
  209. package/package.json +9 -9
  210. package/src/bridge/onboard.test.ts +4 -4
  211. package/src/bridge/onboard.ts +7 -26
  212. package/src/bridge/sync.test.ts +1 -1
  213. package/src/bridge/sync.ts +3 -5
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const sync_1 = require("./sync");
40
+ const gateway = __importStar(require("../network/gateway"));
41
+ const onboard = __importStar(require("./onboard"));
42
+ const config = __importStar(require("../config"));
43
+ const signer_1 = __importDefault(require("../signer"));
44
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
45
+ jest.mock("../network/gateway");
46
+ jest.mock("../signer");
47
+ jest.mock("../config");
48
+ jest.mock("./onboard");
49
+ const mockedGetBalance = gateway.getBalance;
50
+ const mockedGetLedgerEnd = gateway.getLedgerEnd;
51
+ const mockedGetOperations = gateway.getOperations;
52
+ const mockedResolver = signer_1.default;
53
+ const mockedIsOnboarded = onboard.isAccountOnboarded;
54
+ const mockedIsAuthorized = onboard.isAccountAuthorized;
55
+ const mockedCoinConfig = config.default.getCoinConfig;
56
+ const sampleCurrency = {
57
+ id: "testcoin",
58
+ };
59
+ describe("makeGetAccountShape", () => {
60
+ const fakeSignerContext = {};
61
+ const defaultInfo = {
62
+ address: "addr1",
63
+ currency: sampleCurrency,
64
+ derivationMode: "",
65
+ derivationPath: "44'/0'/0'/0/0",
66
+ deviceId: "fakeDevice",
67
+ initialAccount: undefined,
68
+ };
69
+ beforeEach(() => {
70
+ jest.clearAllMocks();
71
+ mockedResolver.mockReturnValue(async () => ({
72
+ publicKey: "FAKE_PUBLIC_KEY",
73
+ }));
74
+ mockedIsOnboarded.mockResolvedValue({
75
+ isOnboarded: true,
76
+ partyId: "party123",
77
+ });
78
+ mockedCoinConfig.mockReturnValue({
79
+ nativeInstrumentId: "Native",
80
+ minReserve: "0",
81
+ });
82
+ mockedIsAuthorized.mockResolvedValue(true);
83
+ mockedGetLedgerEnd.mockResolvedValue(12345);
84
+ });
85
+ it("should return a valid account shape with correct balances and operations", async () => {
86
+ mockedGetBalance.mockResolvedValue([
87
+ {
88
+ instrument_id: "Native",
89
+ amount: "1000",
90
+ locked: false,
91
+ },
92
+ ]);
93
+ mockedGetOperations.mockResolvedValue({
94
+ operations: [
95
+ {
96
+ transaction_hash: "tx1",
97
+ uid: "uid1",
98
+ type: "Send",
99
+ fee: { value: "5" },
100
+ transfers: [
101
+ {
102
+ value: "100",
103
+ details: {
104
+ metadata: {
105
+ reason: "test transfer",
106
+ },
107
+ },
108
+ },
109
+ ],
110
+ transaction_timestamp: new Date().toISOString(),
111
+ senders: ["party123"],
112
+ recipients: ["party456"],
113
+ block: {
114
+ height: 1,
115
+ hash: "blockhash1",
116
+ },
117
+ },
118
+ ],
119
+ });
120
+ const getAccountShape = (0, sync_1.makeGetAccountShape)(fakeSignerContext);
121
+ const shape = await getAccountShape(defaultInfo, {
122
+ paginationConfig: {},
123
+ });
124
+ expect(shape).toHaveProperty("id");
125
+ expect(shape.balance).toEqual((0, bignumber_js_1.default)(1000));
126
+ expect(shape.operations?.length).toBe(1);
127
+ expect(shape.operations[0].type).toBe("OUT");
128
+ expect(shape.operations[0].value).toEqual((0, bignumber_js_1.default)(105)); // 100 + 5 fee
129
+ expect(shape.spendableBalance).toEqual((0, bignumber_js_1.default)(1000));
130
+ expect(shape.used).toBe(true);
131
+ });
132
+ it("should handle locked balances correctly", async () => {
133
+ mockedGetBalance.mockResolvedValue([
134
+ {
135
+ instrument_id: "LockedNative",
136
+ amount: "1000",
137
+ locked: true,
138
+ },
139
+ {
140
+ instrument_id: "Native",
141
+ amount: "10",
142
+ locked: false,
143
+ },
144
+ ]);
145
+ const getAccountShape = (0, sync_1.makeGetAccountShape)(fakeSignerContext);
146
+ const shape = await getAccountShape(defaultInfo, {
147
+ paginationConfig: {},
148
+ });
149
+ expect(shape).toBeDefined();
150
+ expect(shape.balance).toEqual((0, bignumber_js_1.default)(1010));
151
+ expect(shape.spendableBalance).toEqual((0, bignumber_js_1.default)(10));
152
+ });
153
+ it("should handle empty balances correctly", async () => {
154
+ mockedGetBalance.mockResolvedValue([]);
155
+ const getAccountShape = (0, sync_1.makeGetAccountShape)(fakeSignerContext);
156
+ const shape = await getAccountShape(defaultInfo, {
157
+ paginationConfig: {},
158
+ });
159
+ expect(shape).toBeDefined();
160
+ expect(shape.balance).toEqual((0, bignumber_js_1.default)(0));
161
+ expect(shape.spendableBalance).toEqual((0, bignumber_js_1.default)(0));
162
+ });
163
+ it("should default to FEES operation type when transferValue is 0", async () => {
164
+ mockedGetOperations.mockResolvedValue({
165
+ operations: [
166
+ {
167
+ transaction_hash: "tx2",
168
+ uid: "uid2",
169
+ type: "Send",
170
+ fee: { value: "3" },
171
+ transfers: [
172
+ {
173
+ value: "0",
174
+ details: {
175
+ metadata: {
176
+ reason: "fee only",
177
+ },
178
+ },
179
+ },
180
+ ],
181
+ transaction_timestamp: new Date().toISOString(),
182
+ senders: ["party123"],
183
+ recipients: ["party456"],
184
+ block: {
185
+ height: 2,
186
+ hash: "blockhash2",
187
+ },
188
+ },
189
+ ],
190
+ });
191
+ const getAccountShape = (0, sync_1.makeGetAccountShape)(fakeSignerContext);
192
+ const shape = await getAccountShape(defaultInfo, {
193
+ paginationConfig: {},
194
+ });
195
+ expect(shape).toBeDefined();
196
+ expect(shape.operations[0].type).toBe("FEES");
197
+ // In this case, value should equal the fee
198
+ expect(shape.operations[0].value).toEqual((0, bignumber_js_1.default)(3));
199
+ });
200
+ });
201
+ //# sourceMappingURL=sync.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/bridge/sync.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getBalance.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.unit.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const gateway_1 = require("../../network/gateway");
37
+ const coinConfigModule = __importStar(require("../../config"));
38
+ const getBalance_1 = require("./getBalance");
39
+ const mockCurrency = {
40
+ id: "canton_network",
41
+ };
42
+ jest.mock("../../network/gateway", () => ({
43
+ getBalance: jest.fn(),
44
+ }));
45
+ describe("getBalance", () => {
46
+ const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig");
47
+ afterEach(() => {
48
+ jest.clearAllMocks();
49
+ });
50
+ it("should return adapted balances when useGateway is true", async () => {
51
+ mockGetCoinConfig.mockReturnValue({
52
+ useGateway: true,
53
+ nativeInstrumentId: "native-id",
54
+ });
55
+ const mockInstruments = [
56
+ {
57
+ instrument_id: "native-id",
58
+ amount: "1000",
59
+ locked: false,
60
+ },
61
+ {
62
+ instrument_id: "token-123",
63
+ amount: "5000",
64
+ locked: true,
65
+ },
66
+ ];
67
+ gateway_1.getBalance.mockResolvedValue(mockInstruments);
68
+ const result = await (0, getBalance_1.getBalance)(mockCurrency, "party-id");
69
+ expect(gateway_1.getBalance).toHaveBeenCalledWith(mockCurrency, "party-id");
70
+ expect(result).toEqual([
71
+ {
72
+ value: BigInt(1000),
73
+ locked: BigInt(0),
74
+ asset: { type: "native" },
75
+ },
76
+ {
77
+ value: BigInt(5000),
78
+ locked: BigInt(5000),
79
+ asset: { type: "token", assetReference: "token-123" },
80
+ },
81
+ ]);
82
+ });
83
+ it("should throw an error when useGateway is false (not implemented with node)", async () => {
84
+ mockGetCoinConfig.mockReturnValue({
85
+ useGateway: false,
86
+ });
87
+ await expect((0, getBalance_1.getBalance)(mockCurrency, "party-id")).rejects.toThrow("Not implemented");
88
+ expect(gateway_1.getBalance).not.toHaveBeenCalled();
89
+ });
90
+ });
91
+ //# sourceMappingURL=getBalance.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.unit.test.js","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.unit.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA4E;AAC5E,+DAAiD;AACjD,6CAA0C;AAI1C,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,gBAAgB;CACQ,CAAC;AAE/B,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEhF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,IAAI;YAChB,kBAAkB,EAAE,WAAW;SACzB,CAAC,CAAC;QAEV,MAAM,eAAe,GAAG;YACtB;gBACE,aAAa,EAAE,WAAW;gBAC1B,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;aACd;YACD;gBACE,aAAa,EAAE,WAAW;gBAC1B,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAED,oBAAmC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE1D,MAAM,CAAC,oBAAqB,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAY;YAChC;gBACE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD;gBACE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE;aACtD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,KAAK;SACX,CAAC,CAAC;QAEV,MAAM,MAAM,CAAC,IAAA,uBAAU,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACtF,MAAM,CAAC,oBAAqB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lastBlock.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lastBlock.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
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 lastBlock_1 = require("./lastBlock");
7
+ const gateway_1 = require("../../network/gateway");
8
+ const node_1 = require("../../network/node");
9
+ jest.mock("../../network/gateway", () => ({
10
+ getLedgerEnd: jest.fn(),
11
+ }));
12
+ jest.mock("../../network/node", () => ({
13
+ getLedgerEnd: jest.fn(),
14
+ }));
15
+ jest.mock("../../config", () => ({
16
+ __esModule: true,
17
+ default: {
18
+ getCoinConfig: jest.fn(),
19
+ },
20
+ }));
21
+ const config_1 = __importDefault(require("../../config"));
22
+ const mockCurrency = {
23
+ id: "canton_network",
24
+ };
25
+ describe("lastBlock", () => {
26
+ beforeEach(() => {
27
+ jest.clearAllMocks();
28
+ });
29
+ it("should use gateway.getLedgerEnd when useGateway is true", async () => {
30
+ config_1.default.getCoinConfig.mockReturnValue({ useGateway: true });
31
+ gateway_1.getLedgerEnd.mockResolvedValue(100);
32
+ const result = await (0, lastBlock_1.lastBlock)(mockCurrency);
33
+ expect(result).toEqual({ height: 100 });
34
+ expect(gateway_1.getLedgerEnd).toHaveBeenCalledTimes(1);
35
+ expect(node_1.getLedgerEnd).not.toHaveBeenCalled();
36
+ });
37
+ it("should use node.getLedgerEnd when useGateway is false", async () => {
38
+ config_1.default.getCoinConfig.mockReturnValue({ useGateway: false });
39
+ node_1.getLedgerEnd.mockResolvedValue(200);
40
+ const result = await (0, lastBlock_1.lastBlock)(mockCurrency);
41
+ expect(result).toEqual({ height: 200 });
42
+ expect(node_1.getLedgerEnd).toHaveBeenCalledTimes(1);
43
+ expect(gateway_1.getLedgerEnd).not.toHaveBeenCalled();
44
+ });
45
+ });
46
+ //# sourceMappingURL=lastBlock.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lastBlock.test.js","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAwC;AACxC,mDAA4E;AAC5E,6CAAsE;AAGtE,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AACJ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;KACzB;CACF,CAAC,CAAC,CAAC;AAEJ,0DAAsC;AAEtC,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,gBAAgB;CACQ,CAAC;AAE/B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACtE,gBAAU,CAAC,aAA2B,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,sBAAiC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,sBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,mBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACpE,gBAAU,CAAC,aAA2B,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,mBAA8B,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,mBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,sBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=broadcast.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/broadcast.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const gateway_1 = require("../../network/gateway");
37
+ const coinConfigModule = __importStar(require("../../config"));
38
+ const broadcast_1 = require("./broadcast");
39
+ jest.mock("../../network/gateway", () => ({
40
+ submit: jest.fn(),
41
+ }));
42
+ const mockSerialized = JSON.stringify({
43
+ serialized: "serialized-tx",
44
+ signature: "signature__PARTY__alice:123",
45
+ });
46
+ const mockCurrency = {
47
+ id: "canton_network",
48
+ };
49
+ describe("broadcast", () => {
50
+ const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig");
51
+ afterEach(() => {
52
+ jest.clearAllMocks();
53
+ });
54
+ it("should broadcast", async () => {
55
+ mockGetCoinConfig.mockReturnValue({
56
+ useGateway: true,
57
+ });
58
+ gateway_1.submit.mockResolvedValue({ update_id: "my-update-id" });
59
+ const result = await (0, broadcast_1.broadcast)(mockCurrency, mockSerialized);
60
+ expect(gateway_1.submit).toHaveBeenCalledWith(mockCurrency, "alice:123", "serialized-tx", "signature");
61
+ expect(result).toEqual("my-update-id");
62
+ });
63
+ it("should throw an error when useGateway is false (not implemented with node)", async () => {
64
+ mockGetCoinConfig.mockReturnValue({
65
+ useGateway: false,
66
+ });
67
+ await expect((0, broadcast_1.broadcast)(mockCurrency, mockSerialized)).rejects.toThrow("Not implemented");
68
+ expect(gateway_1.submit).not.toHaveBeenCalled();
69
+ });
70
+ });
71
+ //# sourceMappingURL=broadcast.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.test.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/broadcast.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA+C;AAC/C,+DAAiD;AACjD,2CAAwC;AAGxC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,UAAU,EAAE,eAAe;IAC3B,SAAS,EAAE,6BAA6B;CACzC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,gBAAgB;CACQ,CAAC;AAE/B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEhF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,IAAI;SACV,CAAC,CAAC;QAET,gBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,EAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAE7D,MAAM,CAAC,gBAAM,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,KAAK;SACX,CAAC,CAAC;QAEV,MAAM,MAAM,CAAC,IAAA,qBAAS,EAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzF,MAAM,CAAC,gBAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=combine.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const combine_1 = require("./combine");
4
+ describe("combine", () => {
5
+ it("responds with a Stringify version of the payload to broadcast", () => {
6
+ // GIVEN
7
+ const transaction = "0x000000001";
8
+ const signature = "SIGNATURE";
9
+ // WHEN
10
+ const result = (0, combine_1.combine)(transaction, signature);
11
+ // THEN
12
+ expect(JSON.parse(result)).toEqual({
13
+ serialized: "0x000000001",
14
+ signature: "SIGNATURE",
15
+ });
16
+ });
17
+ });
18
+ //# sourceMappingURL=combine.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.test.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.test.ts"],"names":[],"mappings":";;AAAA,uCAAoC;AAEpC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,QAAQ;QACR,MAAM,WAAW,GAAG,aAAa,CAAC;QAClC,MAAM,SAAS,GAAG,WAAW,CAAC;QAE9B,OAAO;QACP,MAAM,MAAM,GAAG,IAAA,iBAAO,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE/C,OAAO;QACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACjC,UAAU,EAAE,aAAa;YACzB,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=estimateFees.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateFees.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const estimateFees_1 = require("./estimateFees");
37
+ const coinConfigModule = __importStar(require("../../config"));
38
+ const mockCurrency = {
39
+ id: "canton_network",
40
+ };
41
+ const magnitude = 10n ** 38n;
42
+ describe("estimateFees", () => {
43
+ const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig");
44
+ afterEach(() => {
45
+ jest.clearAllMocks();
46
+ });
47
+ it("returns 2 CC fees for 100 CC", async () => {
48
+ mockGetCoinConfig.mockReturnValue({
49
+ fee: undefined,
50
+ });
51
+ const result = await (0, estimateFees_1.estimateFees)(mockCurrency, 100n * magnitude);
52
+ // 2 CC
53
+ expect(result).toEqual(2n * magnitude);
54
+ });
55
+ it("returns 11 CC fees for 1000 CC", async () => {
56
+ mockGetCoinConfig.mockReturnValue({
57
+ fee: undefined,
58
+ });
59
+ const result = await (0, estimateFees_1.estimateFees)(mockCurrency, 1000n * magnitude);
60
+ // 11 CC
61
+ expect(result).toEqual(11n * magnitude);
62
+ });
63
+ it("returns forced fees when setup in config", async () => {
64
+ mockGetCoinConfig.mockReturnValue({
65
+ fee: 3,
66
+ });
67
+ const result = await (0, estimateFees_1.estimateFees)(mockCurrency, 1000n * magnitude);
68
+ // 3 CC
69
+ expect(result).toEqual(3n * magnitude);
70
+ });
71
+ });
72
+ //# sourceMappingURL=estimateFees.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateFees.test.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA8C;AAC9C,+DAAiD;AAGjD,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,gBAAgB;CACQ,CAAC;AAE/B,MAAM,SAAS,GAAW,GAAG,IAAI,GAAG,CAAC;AAErC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEhF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,iBAAiB,CAAC,eAAe,CAAC;YAChC,GAAG,EAAE,SAAS;SACiC,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;QAElE,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,iBAAiB,CAAC,eAAe,CAAC;YAChC,GAAG,EAAE,SAAS;SACiC,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;QAEnE,QAAQ;QACR,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,iBAAiB,CAAC,eAAe,CAAC;YAChC,GAAG,EAAE,CAAC;SACyC,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;QAEnE,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.test.ts"],"names":[],"mappings":""}