@ledgerhq/coin-sui 0.11.0 → 0.12.0-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 (188) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.turbo/turbo-build.log +1 -1
  3. package/.unimportedrc.json +1 -0
  4. package/CHANGELOG.md +21 -0
  5. package/index.d.ts +0 -1
  6. package/jest.config.js +1 -1
  7. package/lib/bridge/broadcast.d.ts.map +1 -1
  8. package/lib/bridge/broadcast.js +3 -0
  9. package/lib/bridge/broadcast.js.map +1 -1
  10. package/lib/bridge/buildOptimisticOperation.js +31 -0
  11. package/lib/bridge/buildOptimisticOperation.js.map +1 -1
  12. package/lib/bridge/buildTransaction.d.ts +1 -1
  13. package/lib/bridge/buildTransaction.d.ts.map +1 -1
  14. package/lib/bridge/buildTransaction.js +3 -1
  15. package/lib/bridge/buildTransaction.js.map +1 -1
  16. package/lib/bridge/buildTransaction.test.js +4 -0
  17. package/lib/bridge/buildTransaction.test.js.map +1 -1
  18. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -1
  19. package/lib/bridge/estimateMaxSpendable.js +15 -3
  20. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  21. package/lib/bridge/estimateMaxSpendable.test.js +27 -0
  22. package/lib/bridge/estimateMaxSpendable.test.js.map +1 -1
  23. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
  24. package/lib/bridge/getFeesForTransaction.js +13 -1
  25. package/lib/bridge/getFeesForTransaction.js.map +1 -1
  26. package/lib/bridge/getOperationExtra.d.ts +2 -0
  27. package/lib/bridge/getOperationExtra.d.ts.map +1 -0
  28. package/lib/bridge/getOperationExtra.js +6 -0
  29. package/lib/bridge/getOperationExtra.js.map +1 -0
  30. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  31. package/lib/bridge/getTransactionStatus.js +45 -20
  32. package/lib/bridge/getTransactionStatus.js.map +1 -1
  33. package/lib/bridge/preload.d.ts.map +1 -1
  34. package/lib/bridge/preload.js +5 -3
  35. package/lib/bridge/preload.js.map +1 -1
  36. package/lib/bridge/preload.test.js +13 -217
  37. package/lib/bridge/preload.test.js.map +1 -1
  38. package/lib/bridge/prepareTransaction.js +1 -1
  39. package/lib/bridge/prepareTransaction.js.map +1 -1
  40. package/lib/bridge/synchronisation.d.ts.map +1 -1
  41. package/lib/bridge/synchronisation.js +5 -2
  42. package/lib/bridge/synchronisation.js.map +1 -1
  43. package/lib/bridge/synchronisation.test.js +355 -7
  44. package/lib/bridge/synchronisation.test.js.map +1 -1
  45. package/lib/bridge/utils.d.ts +1 -1
  46. package/lib/bridge/utils.d.ts.map +1 -1
  47. package/lib/bridge/utils.js +22 -0
  48. package/lib/bridge/utils.js.map +1 -1
  49. package/lib/constants.d.ts +4 -0
  50. package/lib/constants.d.ts.map +1 -0
  51. package/lib/constants.js +7 -0
  52. package/lib/constants.js.map +1 -0
  53. package/lib/errors.d.ts +13 -0
  54. package/lib/errors.d.ts.map +1 -0
  55. package/lib/errors.js +21 -0
  56. package/lib/errors.js.map +1 -0
  57. package/lib/logic/craftTransaction.d.ts +5 -10
  58. package/lib/logic/craftTransaction.d.ts.map +1 -1
  59. package/lib/logic/craftTransaction.js +2 -1
  60. package/lib/logic/craftTransaction.js.map +1 -1
  61. package/lib/logic/estimateFees.d.ts +1 -1
  62. package/lib/logic/estimateFees.d.ts.map +1 -1
  63. package/lib/logic/estimateFees.js +14 -2
  64. package/lib/logic/estimateFees.js.map +1 -1
  65. package/lib/logic/index.d.ts +2 -1
  66. package/lib/logic/index.d.ts.map +1 -1
  67. package/lib/logic/index.js +3 -1
  68. package/lib/logic/index.js.map +1 -1
  69. package/lib/logic/stake.d.ts +3 -0
  70. package/lib/logic/stake.d.ts.map +1 -0
  71. package/lib/logic/stake.js +12 -0
  72. package/lib/logic/stake.js.map +1 -0
  73. package/lib/network/index.d.ts +5 -4
  74. package/lib/network/index.d.ts.map +1 -1
  75. package/lib/network/index.js +5 -3
  76. package/lib/network/index.js.map +1 -1
  77. package/lib/network/sdk.d.ts +5 -3
  78. package/lib/network/sdk.d.ts.map +1 -1
  79. package/lib/network/sdk.js +148 -26
  80. package/lib/network/sdk.js.map +1 -1
  81. package/lib/network/sdk.test.js +491 -6
  82. package/lib/network/sdk.test.js.map +1 -1
  83. package/lib/types/bridge.d.ts +33 -6
  84. package/lib/types/bridge.d.ts.map +1 -1
  85. package/lib-es/bridge/broadcast.d.ts.map +1 -1
  86. package/lib-es/bridge/broadcast.js +3 -0
  87. package/lib-es/bridge/broadcast.js.map +1 -1
  88. package/lib-es/bridge/buildOptimisticOperation.js +31 -0
  89. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
  90. package/lib-es/bridge/buildTransaction.d.ts +1 -1
  91. package/lib-es/bridge/buildTransaction.d.ts.map +1 -1
  92. package/lib-es/bridge/buildTransaction.js +3 -1
  93. package/lib-es/bridge/buildTransaction.js.map +1 -1
  94. package/lib-es/bridge/buildTransaction.test.js +4 -0
  95. package/lib-es/bridge/buildTransaction.test.js.map +1 -1
  96. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -1
  97. package/lib-es/bridge/estimateMaxSpendable.js +15 -3
  98. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  99. package/lib-es/bridge/estimateMaxSpendable.test.js +27 -0
  100. package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -1
  101. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
  102. package/lib-es/bridge/getFeesForTransaction.js +13 -1
  103. package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
  104. package/lib-es/bridge/getOperationExtra.d.ts +2 -0
  105. package/lib-es/bridge/getOperationExtra.d.ts.map +1 -0
  106. package/lib-es/bridge/getOperationExtra.js +2 -0
  107. package/lib-es/bridge/getOperationExtra.js.map +1 -0
  108. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  109. package/lib-es/bridge/getTransactionStatus.js +46 -21
  110. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  111. package/lib-es/bridge/preload.d.ts.map +1 -1
  112. package/lib-es/bridge/preload.js +5 -3
  113. package/lib-es/bridge/preload.js.map +1 -1
  114. package/lib-es/bridge/preload.test.js +14 -218
  115. package/lib-es/bridge/preload.test.js.map +1 -1
  116. package/lib-es/bridge/prepareTransaction.js +1 -1
  117. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  118. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  119. package/lib-es/bridge/synchronisation.js +6 -3
  120. package/lib-es/bridge/synchronisation.js.map +1 -1
  121. package/lib-es/bridge/synchronisation.test.js +332 -7
  122. package/lib-es/bridge/synchronisation.test.js.map +1 -1
  123. package/lib-es/bridge/utils.d.ts +1 -1
  124. package/lib-es/bridge/utils.d.ts.map +1 -1
  125. package/lib-es/bridge/utils.js +22 -0
  126. package/lib-es/bridge/utils.js.map +1 -1
  127. package/lib-es/constants.d.ts +4 -0
  128. package/lib-es/constants.d.ts.map +1 -0
  129. package/lib-es/constants.js +4 -0
  130. package/lib-es/constants.js.map +1 -0
  131. package/lib-es/errors.d.ts +13 -0
  132. package/lib-es/errors.d.ts.map +1 -0
  133. package/lib-es/errors.js +18 -0
  134. package/lib-es/errors.js.map +1 -0
  135. package/lib-es/logic/craftTransaction.d.ts +5 -10
  136. package/lib-es/logic/craftTransaction.d.ts.map +1 -1
  137. package/lib-es/logic/craftTransaction.js +2 -1
  138. package/lib-es/logic/craftTransaction.js.map +1 -1
  139. package/lib-es/logic/estimateFees.d.ts +1 -1
  140. package/lib-es/logic/estimateFees.d.ts.map +1 -1
  141. package/lib-es/logic/estimateFees.js +14 -2
  142. package/lib-es/logic/estimateFees.js.map +1 -1
  143. package/lib-es/logic/index.d.ts +2 -1
  144. package/lib-es/logic/index.d.ts.map +1 -1
  145. package/lib-es/logic/index.js +1 -0
  146. package/lib-es/logic/index.js.map +1 -1
  147. package/lib-es/logic/stake.d.ts +3 -0
  148. package/lib-es/logic/stake.d.ts.map +1 -0
  149. package/lib-es/logic/stake.js +8 -0
  150. package/lib-es/logic/stake.js.map +1 -0
  151. package/lib-es/network/index.d.ts +5 -4
  152. package/lib-es/network/index.d.ts.map +1 -1
  153. package/lib-es/network/index.js +4 -3
  154. package/lib-es/network/index.js.map +1 -1
  155. package/lib-es/network/sdk.d.ts +5 -3
  156. package/lib-es/network/sdk.d.ts.map +1 -1
  157. package/lib-es/network/sdk.js +144 -25
  158. package/lib-es/network/sdk.js.map +1 -1
  159. package/lib-es/network/sdk.test.js +491 -6
  160. package/lib-es/network/sdk.test.js.map +1 -1
  161. package/lib-es/types/bridge.d.ts +33 -6
  162. package/lib-es/types/bridge.d.ts.map +1 -1
  163. package/package.json +20 -12
  164. package/src/bridge/broadcast.ts +3 -0
  165. package/src/bridge/buildOptimisticOperation.ts +47 -4
  166. package/src/bridge/buildTransaction.test.ts +4 -0
  167. package/src/bridge/buildTransaction.ts +3 -1
  168. package/src/bridge/estimateMaxSpendable.test.ts +33 -0
  169. package/src/bridge/estimateMaxSpendable.ts +17 -3
  170. package/src/bridge/getFeesForTransaction.ts +14 -1
  171. package/src/bridge/getOperationExtra.ts +1 -0
  172. package/src/bridge/getTransactionStatus.ts +53 -21
  173. package/src/bridge/preload.test.ts +13 -279
  174. package/src/bridge/preload.ts +5 -3
  175. package/src/bridge/prepareTransaction.ts +1 -1
  176. package/src/bridge/synchronisation.test.ts +389 -7
  177. package/src/bridge/synchronisation.ts +6 -3
  178. package/src/bridge/utils.ts +25 -1
  179. package/src/constants.ts +4 -0
  180. package/src/errors.ts +21 -0
  181. package/src/logic/craftTransaction.ts +6 -9
  182. package/src/logic/estimateFees.ts +16 -1
  183. package/src/logic/index.ts +2 -1
  184. package/src/logic/stake.ts +9 -0
  185. package/src/network/index.ts +6 -3
  186. package/src/network/sdk.test.ts +538 -10
  187. package/src/network/sdk.ts +179 -31
  188. package/src/types/bridge.ts +32 -6
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ import { faker } from "@faker-js/faker";
4
4
  import { createFixtureAccount, createFixtureOperation } from "../types/bridge.fixture";
5
5
  import { DEFAULT_COIN_TYPE } from "../network/sdk";
6
6
  import { getAccountShape } from "./synchronisation";
7
+ import coinConfig from "../config";
8
+ import { getFullnodeUrl } from "@mysten/sui/client";
9
+ import * as networkModule from "../network";
7
10
  // Mock getTokenById and listTokensForCryptoCurrency
8
11
  jest.mock("@ledgerhq/cryptoassets/tokens", () => ({
9
12
  getTokenById: (coinType) => ({
@@ -18,22 +21,38 @@ jest.mock("@ledgerhq/cryptoassets/tokens", () => ({
18
21
  }),
19
22
  listTokensForCryptoCurrency: () => [{ id: "0x123::sui::TEST" }],
20
23
  }));
21
- const mockGetAccountBalances = jest.fn();
22
- const mockGetOperations = jest.fn();
23
- jest.mock("../network", () => ({
24
- getAccountBalances: () => mockGetAccountBalances(),
25
- getOperations: () => mockGetOperations(),
26
- }));
24
+ jest.mock("../network", () => {
25
+ const mockGetAccountBalances = jest.fn();
26
+ const mockGetOperations = jest.fn();
27
+ const mockGetStakesRaw = jest.fn();
28
+ return {
29
+ getAccountBalances: mockGetAccountBalances,
30
+ getOperations: mockGetOperations,
31
+ getStakesRaw: mockGetStakesRaw,
32
+ createTransaction: jest.fn(),
33
+ };
34
+ });
27
35
  describe("getAccountShape", () => {
36
+ const mockGetAccountBalances = networkModule.getAccountBalances;
37
+ const mockGetOperations = networkModule.getOperations;
38
+ const mockGetStakesRaw = networkModule.getStakesRaw;
28
39
  beforeEach(() => {
29
40
  mockGetAccountBalances.mockClear();
30
41
  mockGetOperations.mockClear();
42
+ mockGetStakesRaw.mockClear();
43
+ });
44
+ beforeAll(() => {
45
+ coinConfig.setCoinConfig(() => ({
46
+ status: { type: "active" },
47
+ node: { url: getFullnodeUrl("mainnet") },
48
+ }));
31
49
  });
32
50
  it("calls getAccountBalances and getOperations", async () => {
33
51
  // GIVEN
34
52
  const initialAccount = undefined;
35
53
  mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
36
54
  mockGetOperations.mockResolvedValue([]);
55
+ mockGetStakesRaw.mockResolvedValue([]);
37
56
  // WHEN
38
57
  await getAccountShape({
39
58
  index: 0,
@@ -53,6 +72,7 @@ describe("getAccountShape", () => {
53
72
  const accountBalance = createAccountBalance();
54
73
  mockGetAccountBalances.mockResolvedValue([accountBalance]);
55
74
  mockGetOperations.mockResolvedValue([]);
75
+ mockGetStakesRaw.mockResolvedValue([]);
56
76
  // WHEN
57
77
  const shape = await getAccountShape({
58
78
  index: 0,
@@ -70,8 +90,11 @@ describe("getAccountShape", () => {
70
90
  blockHeight: 5,
71
91
  operations: [],
72
92
  operationsCount: 0,
73
- suiResources: {},
93
+ suiResources: {
94
+ stakes: [],
95
+ },
74
96
  subAccounts: [],
97
+ syncHash: undefined,
75
98
  });
76
99
  });
77
100
  it("returns an AccountShapeInfo with operations from initialAccount", async () => {
@@ -82,6 +105,7 @@ describe("getAccountShape", () => {
82
105
  const accountBalance = createAccountBalance();
83
106
  mockGetAccountBalances.mockResolvedValue([accountBalance]);
84
107
  mockGetOperations.mockResolvedValue([]);
108
+ mockGetStakesRaw.mockResolvedValue([]);
85
109
  // WHEN
86
110
  const shape = await getAccountShape({
87
111
  index: 0,
@@ -106,6 +130,7 @@ describe("getAccountShape", () => {
106
130
  createFixtureOperation({ id: faker.string.uuid(), extra }),
107
131
  ];
108
132
  mockGetOperations.mockResolvedValue(apiOperations);
133
+ mockGetStakesRaw.mockResolvedValue([]);
109
134
  // WHEN
110
135
  const shape = await getAccountShape({
111
136
  index: 0,
@@ -126,6 +151,7 @@ describe("getAccountShape", () => {
126
151
  const tokenBalance = createAccountBalance({ coinType: "0x123::sui::TEST" });
127
152
  mockGetAccountBalances.mockResolvedValue([mainBalance, tokenBalance]);
128
153
  mockGetOperations.mockResolvedValue([]);
154
+ mockGetStakesRaw.mockResolvedValue([]);
129
155
  // WHEN
130
156
  const shape = await getAccountShape({
131
157
  index: 0,
@@ -140,6 +166,305 @@ describe("getAccountShape", () => {
140
166
  expect(shape.subAccounts).toBeDefined();
141
167
  expect(Array.isArray(shape.subAccounts)).toBe(true);
142
168
  });
169
+ describe("stakes functionality", () => {
170
+ it("calls getStakesRaw with the correct address", async () => {
171
+ // GIVEN
172
+ const address = "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0";
173
+ const initialAccount = undefined;
174
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
175
+ mockGetOperations.mockResolvedValue([]);
176
+ mockGetStakesRaw.mockResolvedValue([]);
177
+ // WHEN
178
+ await getAccountShape({
179
+ index: 0,
180
+ derivationPath: "44'/784'/0'/0'/0'",
181
+ currency: getCryptoCurrencyById("sui"),
182
+ address,
183
+ initialAccount,
184
+ derivationMode: "sui",
185
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
186
+ // THEN
187
+ expect(mockGetStakesRaw).toHaveBeenCalledTimes(1);
188
+ expect(mockGetStakesRaw).toHaveBeenCalledWith(address);
189
+ });
190
+ it("includes empty stakes in suiResources when no stakes are returned", async () => {
191
+ // GIVEN
192
+ const initialAccount = undefined;
193
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
194
+ mockGetOperations.mockResolvedValue([]);
195
+ mockGetStakesRaw.mockResolvedValue([]);
196
+ // WHEN
197
+ const shape = await getAccountShape({
198
+ index: 0,
199
+ derivationPath: "44'/784'/0'/0'/0'",
200
+ currency: getCryptoCurrencyById("sui"),
201
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
202
+ initialAccount,
203
+ derivationMode: "sui",
204
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
205
+ // THEN
206
+ expect(shape.suiResources).toBeDefined();
207
+ expect(shape.suiResources?.stakes).toEqual([]);
208
+ });
209
+ it("includes stakes in suiResources when stakes are returned", async () => {
210
+ // GIVEN
211
+ const initialAccount = undefined;
212
+ const mockStakes = [
213
+ {
214
+ validatorAddress: "0xvalidator1",
215
+ stakes: [
216
+ {
217
+ stakedSuiId: "0xstake1",
218
+ status: "Active",
219
+ principal: "1000000000",
220
+ stakeActiveEpoch: "100",
221
+ stakeRequestEpoch: "95",
222
+ },
223
+ ],
224
+ },
225
+ {
226
+ validatorAddress: "0xvalidator2",
227
+ stakes: [
228
+ {
229
+ stakedSuiId: "0xstake2",
230
+ status: "Pending",
231
+ principal: "2000000000",
232
+ stakeActiveEpoch: "0",
233
+ stakeRequestEpoch: "100",
234
+ },
235
+ ],
236
+ },
237
+ ];
238
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
239
+ mockGetOperations.mockResolvedValue([]);
240
+ mockGetStakesRaw.mockResolvedValue(mockStakes);
241
+ // WHEN
242
+ const shape = await getAccountShape({
243
+ index: 0,
244
+ derivationPath: "44'/784'/0'/0'/0'",
245
+ currency: getCryptoCurrencyById("sui"),
246
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
247
+ initialAccount,
248
+ derivationMode: "sui",
249
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
250
+ // THEN
251
+ expect(shape.suiResources).toBeDefined();
252
+ expect(shape.suiResources?.stakes).toEqual(mockStakes);
253
+ });
254
+ it("handles multiple stakes per validator", async () => {
255
+ // GIVEN
256
+ const initialAccount = undefined;
257
+ const mockStakes = [
258
+ {
259
+ validatorAddress: "0xvalidator1",
260
+ stakes: [
261
+ {
262
+ stakedSuiId: "0xstake1",
263
+ status: "Active",
264
+ principal: "1000000000",
265
+ stakeActiveEpoch: "100",
266
+ stakeRequestEpoch: "95",
267
+ },
268
+ {
269
+ stakedSuiId: "0xstake2",
270
+ status: "Active",
271
+ principal: "1500000000",
272
+ stakeActiveEpoch: "100",
273
+ stakeRequestEpoch: "95",
274
+ },
275
+ ],
276
+ },
277
+ ];
278
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
279
+ mockGetOperations.mockResolvedValue([]);
280
+ mockGetStakesRaw.mockResolvedValue(mockStakes);
281
+ // WHEN
282
+ const shape = await getAccountShape({
283
+ index: 0,
284
+ derivationPath: "44'/784'/0'/0'/0'",
285
+ currency: getCryptoCurrencyById("sui"),
286
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
287
+ initialAccount,
288
+ derivationMode: "sui",
289
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
290
+ // THEN
291
+ expect(shape.suiResources?.stakes).toEqual(mockStakes);
292
+ expect(shape.suiResources?.stakes?.[0].stakes).toHaveLength(2);
293
+ });
294
+ it("handles different stake statuses correctly", async () => {
295
+ // GIVEN
296
+ const initialAccount = undefined;
297
+ const mockStakes = [
298
+ {
299
+ validatorAddress: "0xvalidator1",
300
+ stakes: [
301
+ {
302
+ stakedSuiId: "0xactive",
303
+ status: "Active",
304
+ principal: "1000000000",
305
+ stakeActiveEpoch: "100",
306
+ stakeRequestEpoch: "95",
307
+ },
308
+ {
309
+ stakedSuiId: "0xpending",
310
+ status: "Pending",
311
+ principal: "2000000000",
312
+ stakeActiveEpoch: "0",
313
+ stakeRequestEpoch: "100",
314
+ },
315
+ {
316
+ stakedSuiId: "0xunstaked",
317
+ status: "Unstaked",
318
+ principal: "3000000000",
319
+ stakeActiveEpoch: "0",
320
+ stakeRequestEpoch: "0",
321
+ },
322
+ ],
323
+ },
324
+ ];
325
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
326
+ mockGetOperations.mockResolvedValue([]);
327
+ mockGetStakesRaw.mockResolvedValue(mockStakes);
328
+ // WHEN
329
+ const shape = await getAccountShape({
330
+ index: 0,
331
+ derivationPath: "44'/784'/0'/0'/0'",
332
+ currency: getCryptoCurrencyById("sui"),
333
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
334
+ initialAccount,
335
+ derivationMode: "sui",
336
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
337
+ // THEN
338
+ expect(shape.suiResources?.stakes).toEqual(mockStakes);
339
+ const stakes = shape.suiResources?.stakes?.[0].stakes || [];
340
+ expect(stakes).toHaveLength(3);
341
+ expect(stakes.find(s => s.stakedSuiId === "0xactive")?.status).toBe("Active");
342
+ expect(stakes.find(s => s.stakedSuiId === "0xpending")?.status).toBe("Pending");
343
+ expect(stakes.find(s => s.stakedSuiId === "0xunstaked")?.status).toBe("Unstaked");
344
+ });
345
+ it("handles getStakesRaw throwing an error gracefully", async () => {
346
+ // GIVEN
347
+ const initialAccount = undefined;
348
+ const error = new Error("Network error");
349
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
350
+ mockGetOperations.mockResolvedValue([]);
351
+ mockGetStakesRaw.mockRejectedValue(error);
352
+ // WHEN & THEN
353
+ await expect(getAccountShape({
354
+ index: 0,
355
+ derivationPath: "44'/784'/0'/0'/0'",
356
+ currency: getCryptoCurrencyById("sui"),
357
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
358
+ initialAccount,
359
+ derivationMode: "sui",
360
+ }, { blacklistedTokenIds: [], paginationConfig: {} })).rejects.toThrow("Network error");
361
+ });
362
+ it("preserves existing suiResources when initialAccount has stakes", async () => {
363
+ // GIVEN
364
+ const existingStakes = [
365
+ {
366
+ validatorAddress: "0xexistingValidator",
367
+ stakes: [
368
+ {
369
+ stakedSuiId: "0xexistingStake",
370
+ status: "Active",
371
+ principal: "500000000",
372
+ stakeActiveEpoch: "90",
373
+ stakeRequestEpoch: "85",
374
+ },
375
+ ],
376
+ },
377
+ ];
378
+ const initialAccount = createFixtureAccount({
379
+ suiResources: { stakes: existingStakes },
380
+ });
381
+ const newStakes = [
382
+ {
383
+ validatorAddress: "0xnewValidator",
384
+ stakes: [
385
+ {
386
+ stakedSuiId: "0xnewStake",
387
+ status: "Active",
388
+ principal: "1000000000",
389
+ stakeActiveEpoch: "100",
390
+ stakeRequestEpoch: "95",
391
+ },
392
+ ],
393
+ },
394
+ ];
395
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
396
+ mockGetOperations.mockResolvedValue([]);
397
+ mockGetStakesRaw.mockResolvedValue(newStakes);
398
+ // WHEN
399
+ const shape = await getAccountShape({
400
+ index: 0,
401
+ derivationPath: "44'/784'/0'/0'/0'",
402
+ currency: getCryptoCurrencyById("sui"),
403
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
404
+ initialAccount,
405
+ derivationMode: "sui",
406
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
407
+ // THEN
408
+ expect(shape.suiResources?.stakes).toEqual(newStakes);
409
+ // The new stakes should replace the old ones, not merge
410
+ expect(shape.suiResources?.stakes).not.toEqual(existingStakes);
411
+ });
412
+ it("handles large stake amounts correctly", async () => {
413
+ // GIVEN
414
+ const initialAccount = undefined;
415
+ const mockStakes = [
416
+ {
417
+ validatorAddress: "0xvalidator1",
418
+ stakes: [
419
+ {
420
+ stakedSuiId: "0xlargeStake",
421
+ status: "Active",
422
+ principal: "999999999999999999999999999999",
423
+ stakeActiveEpoch: "1000",
424
+ stakeRequestEpoch: "995",
425
+ },
426
+ ],
427
+ },
428
+ ];
429
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
430
+ mockGetOperations.mockResolvedValue([]);
431
+ mockGetStakesRaw.mockResolvedValue(mockStakes);
432
+ // WHEN
433
+ const shape = await getAccountShape({
434
+ index: 0,
435
+ derivationPath: "44'/784'/0'/0'/0'",
436
+ currency: getCryptoCurrencyById("sui"),
437
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
438
+ initialAccount,
439
+ derivationMode: "sui",
440
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
441
+ // THEN
442
+ expect(shape.suiResources?.stakes).toEqual(mockStakes);
443
+ const stake = shape.suiResources?.stakes?.[0].stakes?.[0];
444
+ expect(stake?.principal).toBe("999999999999999999999999999999");
445
+ expect(stake?.stakeActiveEpoch).toBe("1000");
446
+ expect(stake?.stakeRequestEpoch).toBe("995");
447
+ });
448
+ it("handles getStakesRaw returning null or undefined", async () => {
449
+ // GIVEN
450
+ const initialAccount = undefined;
451
+ mockGetAccountBalances.mockResolvedValue([createAccountBalance()]);
452
+ mockGetOperations.mockResolvedValue([]);
453
+ mockGetStakesRaw.mockResolvedValue(null);
454
+ // WHEN
455
+ const shape = await getAccountShape({
456
+ index: 0,
457
+ derivationPath: "44'/784'/0'/0'/0'",
458
+ currency: getCryptoCurrencyById("sui"),
459
+ address: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
460
+ initialAccount,
461
+ derivationMode: "sui",
462
+ }, { blacklistedTokenIds: [], paginationConfig: {} });
463
+ // THEN
464
+ expect(shape.suiResources).toBeDefined();
465
+ expect(shape.suiResources?.stakes).toBeNull();
466
+ });
467
+ });
143
468
  });
144
469
  function createAccountBalance(overrides = {}) {
145
470
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.test.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synchronisation.test.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":"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"}
@@ -23,5 +23,5 @@ export declare const calculateAmount: ({ account, transaction, }: {
23
23
  account: SuiAccount;
24
24
  transaction: Transaction;
25
25
  }) => BigNumber;
26
- export declare const assertUnreachable: (_: never) => never;
26
+ export declare const assertUnreachable: (_: unknown) => never;
27
27
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGxD,eAAO,MAAM,gBAAgB,uBAAqB,CAAC;AAEnD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,YAAY,iBAAiB;CAC9B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAMA;AAcD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;aAIjB,UAAU;iBACN,WAAW;MACtB,SAkBH,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,KAAK,KAAG,KAE5C,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGxD,eAAO,MAAM,gBAAgB,uBAAqB,CAAC;AAEnD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,YAAY,iBAAiB;CAC9B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAMA;AA8BD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;aAIjB,UAAU;iBACN,WAAW;MACtB,SA0BH,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,OAAO,KAAG,KAE9C,CAAC"}
@@ -24,6 +24,20 @@ const calculateMaxSend = (account, transaction) => {
24
24
  const amount = account.spendableBalance.minus(transaction.fees || 0);
25
25
  return amount.lt(0) ? new BigNumber(0) : amount;
26
26
  };
27
+ /**
28
+ * Calculate the maximum amount that can be delegated after deducting fees and reserving gas.
29
+ *
30
+ * @param {SuiAccount} account - The account from which the amount is being delegated.
31
+ * @param {Transaction} transaction - The transaction details including fees.
32
+ * @returns {BigNumber} - The maximum amount that can be delegated, or 0 if insufficient balance.
33
+ */
34
+ const calculateMaxDelegate = (account, transaction) => {
35
+ // Reserve 0.1 SUI for future gas fees as recommended for delegation
36
+ const ONE_SUI = new BigNumber("1000000000"); // 1 SUI in MIST
37
+ const gasReserve = ONE_SUI.div(10); // 0.1 SUI
38
+ const amount = account.spendableBalance.minus(transaction.fees || 0).minus(gasReserve);
39
+ return amount.lt(0) ? new BigNumber(0) : amount;
40
+ };
27
41
  /**
28
42
  * Calculates the amount to be sent in a transaction based on the account's balance and transaction details.
29
43
  *
@@ -43,6 +57,14 @@ export const calculateAmount = ({ account, transaction, }) => {
43
57
  amount =
44
58
  findSubAccountById(account, transaction.subAccountId)?.spendableBalance ??
45
59
  new BigNumber(0);
60
+ break;
61
+ case "delegate":
62
+ amount = calculateMaxDelegate(account, transaction);
63
+ break;
64
+ case "undelegate":
65
+ // For undelegate, use the full staked amount (handled elsewhere)
66
+ amount = transaction.amount;
67
+ break;
46
68
  }
47
69
  }
48
70
  else if (transaction.amount.gt(MAX_AMOUNT_INPUT)) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAG5E,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,4CAA6B,CAAA;AAC/B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,UAAU,cAAc,CAAC,OAAoB;IAKjD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAE,WAAwB,EAAa,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,OAAO,EACP,WAAW,GAIZ,EAAa,EAAE;IACd,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAEhC,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM;gBACT,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,YAAY;gBACf,MAAM;oBACJ,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,YAAa,CAAC,EAAE,gBAAgB;wBACxE,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAQ,EAAS,EAAE;IACnD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const STAKING_GAS_BASE = "25000000000000";
2
+ export declare const FIGMENT_SUI_VALIDATOR_ADDRESS = "0x3d9fb148e35ef4d74fcfc36995da14fc504b885d5f2bfeca37d6ea2cc044a32d";
3
+ export declare const ONE_SUI = 1000000000;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,6BAA6B,uEAC4B,CAAC;AACvE,eAAO,MAAM,OAAO,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const STAKING_GAS_BASE = "25000000000000";
2
+ export const FIGMENT_SUI_VALIDATOR_ADDRESS = "0x3d9fb148e35ef4d74fcfc36995da14fc504b885d5f2bfeca37d6ea2cc044a32d";
3
+ export const ONE_SUI = 1000000000;
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,MAAM,CAAC,MAAM,6BAA6B,GACxC,oEAAoE,CAAC;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const OneSuiMinForStake: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
2
+ [key: string]: unknown;
3
+ }>;
4
+ export declare const OneSuiMinForUnstake: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
5
+ [key: string]: unknown;
6
+ }>;
7
+ export declare const OneSuiMinForUnstakeToBeLeft: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
8
+ [key: string]: unknown;
9
+ }>;
10
+ export declare const SomeSuiForUnstake: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
11
+ [key: string]: unknown;
12
+ }>;
13
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB;;EAA8C,CAAC;AAK7E,eAAO,MAAM,mBAAmB;;EAAgD,CAAC;AAKjF,eAAO,MAAM,2BAA2B;;EAAwD,CAAC;AAKjG,eAAO,MAAM,iBAAiB;;EAA8C,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { createCustomErrorClass } from "@ledgerhq/errors";
2
+ /*
3
+ * One SUI is minimal to stake.
4
+ */
5
+ export const OneSuiMinForStake = createCustomErrorClass("OneSuiMinForStake");
6
+ /*
7
+ * One SUI is minimal for partial unstake.
8
+ */
9
+ export const OneSuiMinForUnstake = createCustomErrorClass("OneSuiMinForUnstake");
10
+ /*
11
+ * One SUI is minimal to be left when partial unstake.
12
+ */
13
+ export const OneSuiMinForUnstakeToBeLeft = createCustomErrorClass("OneSuiMinForUnstakeToBeLeft");
14
+ /*
15
+ * At least 0.1 SUI to unstake
16
+ */
17
+ export const SomeSuiForUnstake = createCustomErrorClass("SomeSuiForUnstake");
18
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,6BAA6B,CAAC,CAAC;AAEjG;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1,12 +1,7 @@
1
- import BigNumber from "bignumber.js";
2
1
  import type { TransactionIntent } from "@ledgerhq/coin-framework/api/index";
3
- import type { SuiTransactionMode, CoreTransaction } from "../types";
4
- export type CreateExtrinsicArg = {
5
- amount: BigNumber;
6
- coinType: string;
7
- mode: SuiTransactionMode;
8
- recipient: string;
9
- useAllAmount?: boolean | undefined;
10
- };
11
- export declare function craftTransaction({ amount, asset, recipient, sender, type, }: TransactionIntent): Promise<CoreTransaction>;
2
+ import type { CoreTransaction } from "../types";
3
+ export declare function craftTransaction({ amount, asset, recipient, sender, type, ...extra }: TransactionIntent & {
4
+ useAllAmount?: boolean;
5
+ stakedSuiId?: string;
6
+ }): Promise<CoreTransaction>;
12
7
  //# sourceMappingURL=craftTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIpE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAM,EACN,IAAI,GACL,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAa9C"}
1
+ {"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,UAAU,CAAC;AAIpE,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAM,EACN,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAc3B"}
@@ -1,7 +1,7 @@
1
1
  import BigNumber from "bignumber.js";
2
2
  import suiAPI from "../network";
3
3
  import { DEFAULT_COIN_TYPE } from "../network/sdk";
4
- export async function craftTransaction({ amount, asset, recipient, sender, type, }) {
4
+ export async function craftTransaction({ amount, asset, recipient, sender, type, ...extra }) {
5
5
  let coinType = DEFAULT_COIN_TYPE;
6
6
  if (asset.type === "token" && asset.assetReference) {
7
7
  coinType = asset.assetReference;
@@ -11,6 +11,7 @@ export async function craftTransaction({ amount, asset, recipient, sender, type,
11
11
  coinType,
12
12
  mode: type,
13
13
  recipient,
14
+ ...extra,
14
15
  });
15
16
  return { unsigned };
16
17
  }