@ledgerhq/coin-sui 0.9.0 → 0.10.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 (159) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +1 -1
  3. package/CHANGELOG.md +26 -0
  4. package/lib/api/index.d.ts.map +1 -1
  5. package/lib/api/index.integration.test.js +21 -2
  6. package/lib/api/index.integration.test.js.map +1 -1
  7. package/lib/api/index.js +2 -0
  8. package/lib/api/index.js.map +1 -1
  9. package/lib/api/index.test.js +37 -0
  10. package/lib/api/index.test.js.map +1 -1
  11. package/lib/bridge/buildTransaction.d.ts +1 -3
  12. package/lib/bridge/buildTransaction.d.ts.map +1 -1
  13. package/lib/bridge/buildTransaction.integration.test.js +17 -35
  14. package/lib/bridge/buildTransaction.integration.test.js.map +1 -1
  15. package/lib/bridge/buildTransaction.js +10 -21
  16. package/lib/bridge/buildTransaction.js.map +1 -1
  17. package/lib/bridge/buildTransaction.test.js +33 -130
  18. package/lib/bridge/buildTransaction.test.js.map +1 -1
  19. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
  20. package/lib/bridge/getFeesForTransaction.js +5 -1
  21. package/lib/bridge/getFeesForTransaction.js.map +1 -1
  22. package/lib/logic/craftTransaction.d.ts +2 -2
  23. package/lib/logic/craftTransaction.d.ts.map +1 -1
  24. package/lib/logic/craftTransaction.integration.test.d.ts +2 -0
  25. package/lib/logic/craftTransaction.integration.test.d.ts.map +1 -0
  26. package/lib/logic/craftTransaction.integration.test.js +56 -0
  27. package/lib/logic/craftTransaction.integration.test.js.map +1 -0
  28. package/lib/logic/craftTransaction.js +2 -2
  29. package/lib/logic/craftTransaction.js.map +1 -1
  30. package/lib/logic/estimateFees.d.ts +1 -1
  31. package/lib/logic/estimateFees.d.ts.map +1 -1
  32. package/lib/logic/estimateFees.integration.test.d.ts +2 -0
  33. package/lib/logic/estimateFees.integration.test.d.ts.map +1 -0
  34. package/lib/logic/estimateFees.integration.test.js +79 -0
  35. package/lib/logic/estimateFees.integration.test.js.map +1 -0
  36. package/lib/logic/estimateFees.js +7 -2
  37. package/lib/logic/estimateFees.js.map +1 -1
  38. package/lib/logic/getBalance.d.ts.map +1 -1
  39. package/lib/logic/getBalance.integration.test.d.ts +2 -0
  40. package/lib/logic/getBalance.integration.test.d.ts.map +1 -0
  41. package/lib/logic/getBalance.integration.test.js +56 -0
  42. package/lib/logic/getBalance.integration.test.js.map +1 -0
  43. package/lib/logic/getBalance.js +18 -7
  44. package/lib/logic/getBalance.js.map +1 -1
  45. package/lib/logic/getBalance.test.js +49 -7
  46. package/lib/logic/getBalance.test.js.map +1 -1
  47. package/lib/logic/index.d.ts +1 -0
  48. package/lib/logic/index.d.ts.map +1 -1
  49. package/lib/logic/index.js +4 -1
  50. package/lib/logic/index.js.map +1 -1
  51. package/lib/logic/staking.d.ts +4 -0
  52. package/lib/logic/staking.d.ts.map +1 -0
  53. package/lib/logic/staking.js +36 -0
  54. package/lib/logic/staking.js.map +1 -0
  55. package/lib/network/index.d.ts +6 -6
  56. package/lib/network/index.d.ts.map +1 -1
  57. package/lib/network/index.js +9 -3
  58. package/lib/network/index.js.map +1 -1
  59. package/lib/network/sdk.d.ts +27 -19
  60. package/lib/network/sdk.d.ts.map +1 -1
  61. package/lib/network/sdk.integration.test.js +21 -22
  62. package/lib/network/sdk.integration.test.js.map +1 -1
  63. package/lib/network/sdk.js +113 -68
  64. package/lib/network/sdk.js.map +1 -1
  65. package/lib/network/sdk.test.js +148 -65
  66. package/lib/network/sdk.test.js.map +1 -1
  67. package/lib/test/testUtils.d.ts +2 -0
  68. package/lib/test/testUtils.d.ts.map +1 -0
  69. package/lib/test/testUtils.js +35 -0
  70. package/lib/test/testUtils.js.map +1 -0
  71. package/lib-es/api/index.d.ts.map +1 -1
  72. package/lib-es/api/index.integration.test.js +21 -2
  73. package/lib-es/api/index.integration.test.js.map +1 -1
  74. package/lib-es/api/index.js +3 -1
  75. package/lib-es/api/index.js.map +1 -1
  76. package/lib-es/api/index.test.js +37 -0
  77. package/lib-es/api/index.test.js.map +1 -1
  78. package/lib-es/bridge/buildTransaction.d.ts +1 -3
  79. package/lib-es/bridge/buildTransaction.d.ts.map +1 -1
  80. package/lib-es/bridge/buildTransaction.integration.test.js +13 -31
  81. package/lib-es/bridge/buildTransaction.integration.test.js.map +1 -1
  82. package/lib-es/bridge/buildTransaction.js +9 -16
  83. package/lib-es/bridge/buildTransaction.js.map +1 -1
  84. package/lib-es/bridge/buildTransaction.test.js +34 -131
  85. package/lib-es/bridge/buildTransaction.test.js.map +1 -1
  86. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
  87. package/lib-es/bridge/getFeesForTransaction.js +5 -1
  88. package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
  89. package/lib-es/logic/craftTransaction.d.ts +2 -2
  90. package/lib-es/logic/craftTransaction.d.ts.map +1 -1
  91. package/lib-es/logic/craftTransaction.integration.test.d.ts +2 -0
  92. package/lib-es/logic/craftTransaction.integration.test.d.ts.map +1 -0
  93. package/lib-es/logic/craftTransaction.integration.test.js +51 -0
  94. package/lib-es/logic/craftTransaction.integration.test.js.map +1 -0
  95. package/lib-es/logic/craftTransaction.js +2 -2
  96. package/lib-es/logic/craftTransaction.js.map +1 -1
  97. package/lib-es/logic/estimateFees.d.ts +1 -1
  98. package/lib-es/logic/estimateFees.d.ts.map +1 -1
  99. package/lib-es/logic/estimateFees.integration.test.d.ts +2 -0
  100. package/lib-es/logic/estimateFees.integration.test.d.ts.map +1 -0
  101. package/lib-es/logic/estimateFees.integration.test.js +74 -0
  102. package/lib-es/logic/estimateFees.integration.test.js.map +1 -0
  103. package/lib-es/logic/estimateFees.js +7 -2
  104. package/lib-es/logic/estimateFees.js.map +1 -1
  105. package/lib-es/logic/getBalance.d.ts.map +1 -1
  106. package/lib-es/logic/getBalance.integration.test.d.ts +2 -0
  107. package/lib-es/logic/getBalance.integration.test.d.ts.map +1 -0
  108. package/lib-es/logic/getBalance.integration.test.js +51 -0
  109. package/lib-es/logic/getBalance.integration.test.js.map +1 -0
  110. package/lib-es/logic/getBalance.js +19 -8
  111. package/lib-es/logic/getBalance.js.map +1 -1
  112. package/lib-es/logic/getBalance.test.js +50 -8
  113. package/lib-es/logic/getBalance.test.js.map +1 -1
  114. package/lib-es/logic/index.d.ts +1 -0
  115. package/lib-es/logic/index.d.ts.map +1 -1
  116. package/lib-es/logic/index.js +1 -0
  117. package/lib-es/logic/index.js.map +1 -1
  118. package/lib-es/logic/staking.d.ts +4 -0
  119. package/lib-es/logic/staking.d.ts.map +1 -0
  120. package/lib-es/logic/staking.js +8 -0
  121. package/lib-es/logic/staking.js.map +1 -0
  122. package/lib-es/network/index.d.ts +6 -6
  123. package/lib-es/network/index.d.ts.map +1 -1
  124. package/lib-es/network/index.js +6 -3
  125. package/lib-es/network/index.js.map +1 -1
  126. package/lib-es/network/sdk.d.ts +27 -19
  127. package/lib-es/network/sdk.d.ts.map +1 -1
  128. package/lib-es/network/sdk.integration.test.js +22 -23
  129. package/lib-es/network/sdk.integration.test.js.map +1 -1
  130. package/lib-es/network/sdk.js +106 -64
  131. package/lib-es/network/sdk.js.map +1 -1
  132. package/lib-es/network/sdk.test.js +148 -65
  133. package/lib-es/network/sdk.test.js.map +1 -1
  134. package/lib-es/test/testUtils.d.ts +2 -0
  135. package/lib-es/test/testUtils.d.ts.map +1 -0
  136. package/lib-es/test/testUtils.js +31 -0
  137. package/lib-es/test/testUtils.js.map +1 -0
  138. package/package.json +7 -7
  139. package/src/api/index.integration.test.ts +24 -2
  140. package/src/api/index.test.ts +40 -0
  141. package/src/api/index.ts +4 -0
  142. package/src/bridge/buildTransaction.integration.test.ts +14 -39
  143. package/src/bridge/buildTransaction.test.ts +37 -160
  144. package/src/bridge/buildTransaction.ts +12 -21
  145. package/src/bridge/getFeesForTransaction.ts +6 -1
  146. package/src/logic/craftTransaction.integration.test.ts +63 -0
  147. package/src/logic/craftTransaction.ts +4 -4
  148. package/src/logic/estimateFees.integration.test.ts +89 -0
  149. package/src/logic/estimateFees.ts +7 -1
  150. package/src/logic/getBalance.integration.test.ts +66 -0
  151. package/src/logic/getBalance.test.ts +58 -8
  152. package/src/logic/getBalance.ts +24 -8
  153. package/src/logic/index.ts +1 -0
  154. package/src/logic/staking.ts +10 -0
  155. package/src/network/index.ts +12 -3
  156. package/src/network/sdk.integration.test.ts +25 -22
  157. package/src/network/sdk.test.ts +186 -77
  158. package/src/network/sdk.ts +149 -93
  159. package/src/test/testUtils.ts +38 -0
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const helpers_1 = require("@ledgerhq/coin-framework/account/helpers");
3
4
  const bignumber_js_1 = require("bignumber.js");
4
5
  const cryptoassets_1 = require("@ledgerhq/cryptoassets");
5
6
  const utils_1 = require("./utils");
6
7
  const logic_1 = require("../logic");
8
+ const sdk_1 = require("../network/sdk");
7
9
  /**
8
10
  * Fetch the transaction fees for a transaction
9
11
  *
@@ -25,12 +27,14 @@ async function getEstimatedFees({ account, transaction, }) {
25
27
  },
26
28
  }), // Remove fees if present since we are fetching fees
27
29
  };
30
+ const subAccount = (0, helpers_1.findSubAccountById)(account, transaction.subAccountId ?? "");
31
+ const asset = (0, sdk_1.toSuiAsset)(subAccount?.token.contractAddress ?? sdk_1.DEFAULT_COIN_TYPE);
28
32
  const fees = await (0, logic_1.estimateFees)({
29
33
  recipient: (0, cryptoassets_1.getAbandonSeedAddress)(account.currency.id),
30
34
  sender: account.freshAddress,
31
35
  amount: BigInt(t.amount.toString()),
32
36
  type: "send",
33
- asset: { type: "native" },
37
+ asset,
34
38
  });
35
39
  return new bignumber_js_1.BigNumber(fees.toString());
36
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getFeesForTransaction.js","sourceRoot":"","sources":["../../src/bridge/getFeesForTransaction.ts"],"names":[],"mappings":";;AAAA,+CAAyC;AACzC,yDAA+D;AAE/D,mCAA0C;AAC1C,oCAAwC;AAExC;;;;;;;GAOG;AACY,KAAK,UAAU,gBAAgB,CAAC,EAC7C,OAAO,EACP,WAAW,GAIZ;IACC,MAAM,CAAC,GAAG;QACR,GAAG,WAAW;QACd,SAAS,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,+CAA+C;QAC/C,MAAM,EAAE,IAAA,uBAAe,EAAC;YACtB,OAAO;YACP,WAAW,EAAE;gBACX,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;aAC3C;SACF,CAAC,EAAE,oDAAoD;KACzD,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAY,EAAC;QAC9B,SAAS,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,OAAO,CAAC,YAAY;QAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAC;IACH,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC;AA5BD,mCA4BC"}
1
+ {"version":3,"file":"getFeesForTransaction.js","sourceRoot":"","sources":["../../src/bridge/getFeesForTransaction.ts"],"names":[],"mappings":";;AAAA,sEAA8E;AAC9E,+CAAyC;AACzC,yDAA+D;AAE/D,mCAA0C;AAC1C,oCAAwC;AACxC,wCAA+D;AAE/D;;;;;;;GAOG;AACY,KAAK,UAAU,gBAAgB,CAAC,EAC7C,OAAO,EACP,WAAW,GAIZ;IACC,MAAM,CAAC,GAAG;QACR,GAAG,WAAW;QACd,SAAS,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,+CAA+C;QAC/C,MAAM,EAAE,IAAA,uBAAe,EAAC;YACtB,OAAO;YACP,WAAW,EAAE;gBACX,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,wBAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;aAC3C;SACF,CAAC,EAAE,oDAAoD;KACzD,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,4BAAkB,EAAC,OAAO,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAA,gBAAU,EAAC,UAAU,EAAE,KAAK,CAAC,eAAe,IAAI,uBAAiB,CAAC,CAAC;IAEjF,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAY,EAAC;QAC9B,SAAS,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,OAAO,CAAC,YAAY;QAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,EAAE,MAAM;QACZ,KAAK;KACN,CAAC,CAAC;IACH,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC;AA/BD,mCA+BC"}
@@ -2,11 +2,11 @@ import BigNumber from "bignumber.js";
2
2
  import type { TransactionIntent } from "@ledgerhq/coin-framework/api/index";
3
3
  import type { SuiTransactionMode, CoreTransaction } from "../types";
4
4
  export type CreateExtrinsicArg = {
5
- mode: SuiTransactionMode;
6
5
  amount: BigNumber;
7
6
  coinType: string;
7
+ mode: SuiTransactionMode;
8
8
  recipient: string;
9
9
  useAllAmount?: boolean | undefined;
10
10
  };
11
- export declare function craftTransaction({ sender, amount, recipient, asset, type, }: TransactionIntent): Promise<CoreTransaction>;
11
+ export declare function craftTransaction({ amount, asset, recipient, sender, type, }: TransactionIntent): Promise<CoreTransaction>;
12
12
  //# 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,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,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":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=craftTransaction.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craftTransaction.integration.test.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
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 client_1 = require("@mysten/sui/client");
7
+ const config_1 = __importDefault(require("../config"));
8
+ const testUtils_1 = require("../test/testUtils");
9
+ const craftTransaction_1 = require("./craftTransaction");
10
+ const SENDER = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
11
+ const RECIPIENT = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
12
+ describe("craftTransaction", () => {
13
+ beforeAll(() => {
14
+ config_1.default.setCoinConfig(() => ({
15
+ status: {
16
+ type: "active",
17
+ },
18
+ node: {
19
+ url: (0, client_1.getFullnodeUrl)("mainnet"),
20
+ },
21
+ }));
22
+ });
23
+ it("should craft a native SUI send transaction", async () => {
24
+ const transactionIntent = {
25
+ sender: SENDER,
26
+ recipient: RECIPIENT,
27
+ amount: BigInt(1000),
28
+ type: "send",
29
+ asset: { type: "native" },
30
+ };
31
+ const result = await (0, craftTransaction_1.craftTransaction)(transactionIntent);
32
+ expect(result).toBeDefined();
33
+ expect(result.unsigned).toBeInstanceOf(Uint8Array);
34
+ const resultCoinTypes = await (0, testUtils_1.extractCoinTypeFromUnsignedTx)(result.unsigned);
35
+ expect(resultCoinTypes).toEqual(expect.arrayContaining([expect.stringContaining("sui")]));
36
+ }, 15000);
37
+ it("should craft a token send transaction", async () => {
38
+ const coinType = "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT";
39
+ const transactionIntent = {
40
+ sender: SENDER,
41
+ recipient: RECIPIENT,
42
+ amount: BigInt(1000),
43
+ type: "send",
44
+ asset: {
45
+ type: "token",
46
+ assetReference: coinType,
47
+ },
48
+ };
49
+ const result = await (0, craftTransaction_1.craftTransaction)(transactionIntent);
50
+ expect(result).toBeDefined();
51
+ expect(result.unsigned).toBeInstanceOf(Uint8Array);
52
+ const resultCoinTypes = await (0, testUtils_1.extractCoinTypeFromUnsignedTx)(result.unsigned);
53
+ expect(resultCoinTypes).toEqual(expect.arrayContaining([expect.stringContaining("usdt")]));
54
+ }, 15000);
55
+ });
56
+ //# sourceMappingURL=craftTransaction.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craftTransaction.integration.test.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.integration.test.ts"],"names":[],"mappings":";;;;;AACA,+CAAoD;AACpD,uDAAmC;AACnC,iDAAkE;AAClE,yDAAsD;AAEtD,MAAM,MAAM,GAAG,oEAAoE,CAAC;AACpF,MAAM,SAAS,GAAG,oEAAoE,CAAC;AAEvF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,gBAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9B,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,GAAG,EAAE,IAAA,uBAAc,EAAC,SAAS,CAAC;aAC/B;SACF,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,iBAAiB,GAAsB;YAC3C,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,iBAAiB,CAAC,CAAC;QAEzD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEnD,MAAM,eAAe,GAAG,MAAM,IAAA,yCAA6B,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,QAAQ,GACZ,gFAAgF,CAAC;QAEnF,MAAM,iBAAiB,GAAsB;YAC3C,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,cAAc,EAAE,QAAQ;aACzB;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,iBAAiB,CAAC,CAAC;QAEzD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEnD,MAAM,eAAe,GAAG,MAAM,IAAA,yCAA6B,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -7,16 +7,16 @@ exports.craftTransaction = void 0;
7
7
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
8
  const network_1 = __importDefault(require("../network"));
9
9
  const sdk_1 = require("../network/sdk");
10
- async function craftTransaction({ sender, amount, recipient, asset, type, }) {
10
+ async function craftTransaction({ amount, asset, recipient, sender, type, }) {
11
11
  let coinType = sdk_1.DEFAULT_COIN_TYPE;
12
12
  if (asset.type === "token" && asset.assetReference) {
13
13
  coinType = asset.assetReference;
14
14
  }
15
15
  const unsigned = await network_1.default.createTransaction(sender, {
16
16
  amount: (0, bignumber_js_1.default)(amount.toString()),
17
- recipient,
18
17
  coinType,
19
18
  mode: type,
19
+ recipient,
20
20
  });
21
21
  return { unsigned };
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAGrC,yDAAgC;AAChC,wCAAmD;AAU5C,KAAK,UAAU,gBAAgB,CAAC,EACrC,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,IAAI,GACc;IAClB,IAAI,QAAQ,GAAG,uBAAiB,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACnD,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;QACtD,MAAM,EAAE,IAAA,sBAAS,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,SAAS;QACT,QAAQ;QACR,IAAI,EAAE,IAA0B;KACjC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAnBD,4CAmBC"}
1
+ {"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAGrC,yDAAgC;AAChC,wCAAmD;AAU5C,KAAK,UAAU,gBAAgB,CAAC,EACrC,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAM,EACN,IAAI,GACc;IAClB,IAAI,QAAQ,GAAG,uBAAiB,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACnD,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;QACtD,MAAM,EAAE,IAAA,sBAAS,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,QAAQ;QACR,IAAI,EAAE,IAA0B;QAChC,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAnBD,4CAmBC"}
@@ -1,3 +1,3 @@
1
1
  import type { TransactionIntent } from "@ledgerhq/coin-framework/api/index";
2
- export declare function estimateFees({ recipient, amount, sender, }: TransactionIntent): Promise<bigint>;
2
+ export declare function estimateFees({ recipient, amount, sender, asset, }: TransactionIntent): Promise<bigint>;
3
3
  //# sourceMappingURL=estimateFees.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,wBAAsB,YAAY,CAAC,EACjC,SAAS,EACT,MAAM,EACN,MAAM,GACP,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrC"}
1
+ {"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,wBAAsB,YAAY,CAAC,EACjC,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,GACN,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAcrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=estimateFees.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateFees.integration.test.d.ts","sourceRoot":"","sources":["../../src/logic/estimateFees.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
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 client_1 = require("@mysten/sui/client");
7
+ const config_1 = __importDefault(require("../config"));
8
+ const estimateFees_1 = require("./estimateFees");
9
+ const SENDER = "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0";
10
+ const RECIPIENT = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
11
+ describe("estimateFees", () => {
12
+ beforeAll(() => {
13
+ config_1.default.setCoinConfig(() => ({
14
+ status: {
15
+ type: "active",
16
+ },
17
+ node: {
18
+ url: (0, client_1.getFullnodeUrl)("mainnet"),
19
+ },
20
+ }));
21
+ });
22
+ it("should estimate fees for native SUI transaction", async () => {
23
+ const transactionIntent = {
24
+ sender: SENDER,
25
+ recipient: RECIPIENT,
26
+ amount: BigInt(1000),
27
+ type: "send",
28
+ asset: { type: "native" },
29
+ };
30
+ const estimatedFees = await (0, estimateFees_1.estimateFees)(transactionIntent);
31
+ expect(typeof estimatedFees).toBe("bigint");
32
+ expect(estimatedFees).toBeGreaterThan(1000n);
33
+ expect(estimatedFees).toBeLessThan(10000000n);
34
+ }, 25000);
35
+ it("should estimate fees for token transaction", async () => {
36
+ const coinType = "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT";
37
+ const transactionIntent = {
38
+ sender: SENDER,
39
+ recipient: RECIPIENT,
40
+ amount: BigInt(1000),
41
+ type: "send",
42
+ asset: {
43
+ type: "token",
44
+ assetReference: coinType,
45
+ },
46
+ };
47
+ const estimatedFees = await (0, estimateFees_1.estimateFees)(transactionIntent);
48
+ expect(typeof estimatedFees).toBe("bigint");
49
+ expect(estimatedFees).toBeGreaterThan(1000n);
50
+ expect(estimatedFees).toBeLessThan(10000000n);
51
+ }, 25000);
52
+ it("should handle concurrent fee estimations", async () => {
53
+ const transactionIntent = {
54
+ sender: SENDER,
55
+ recipient: RECIPIENT,
56
+ amount: BigInt(1000),
57
+ type: "send",
58
+ asset: { type: "native" },
59
+ };
60
+ // Run multiple concurrent estimations
61
+ const promises = Array(5)
62
+ .fill(0)
63
+ .map(() => (0, estimateFees_1.estimateFees)(transactionIntent));
64
+ const results = await Promise.all(promises);
65
+ // All results should be valid
66
+ results.forEach(fees => {
67
+ expect(typeof fees).toBe("bigint");
68
+ expect(fees).toBeGreaterThan(1000n);
69
+ expect(fees).toBeLessThan(10000000n);
70
+ });
71
+ // Results should be similar (may have slight variations)
72
+ const values = results.map(r => Number(r));
73
+ const minValue = Math.min(...values);
74
+ const maxValue = Math.max(...values);
75
+ // Should not vary by more than 50% under concurrent load
76
+ expect((maxValue - minValue) / minValue).toBeLessThan(0.5);
77
+ }, 25000);
78
+ });
79
+ //# sourceMappingURL=estimateFees.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateFees.integration.test.js","sourceRoot":"","sources":["../../src/logic/estimateFees.integration.test.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.estimateFees = void 0;
7
7
  const network_1 = __importDefault(require("../network"));
8
8
  const bignumber_js_1 = require("bignumber.js");
9
- async function estimateFees({ recipient, amount, sender, }) {
9
+ const sdk_1 = require("../network/sdk");
10
+ async function estimateFees({ recipient, amount, sender, asset, }) {
11
+ let coinType = sdk_1.DEFAULT_COIN_TYPE;
12
+ if (asset.type === "token" && asset.assetReference) {
13
+ coinType = asset.assetReference;
14
+ }
10
15
  const { gasBudget } = await network_1.default.paymentInfo(sender, {
11
16
  mode: "send",
12
17
  family: "sui",
13
18
  recipient,
14
19
  amount: (0, bignumber_js_1.BigNumber)(amount.toString()),
15
20
  errors: {},
16
- coinType: "0x2::sui::SUI",
21
+ coinType,
17
22
  });
18
23
  return BigInt(gasBudget);
19
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAgC;AAChC,+CAAyC;AAGlC,KAAK,UAAU,YAAY,CAAC,EACjC,SAAS,EACT,MAAM,EACN,MAAM,GACY;IAClB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,iBAAM,CAAC,WAAW,CAAC,MAAM,EAAE;QACrD,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,KAAK;QACb,SAAS;QACT,MAAM,EAAE,IAAA,wBAAS,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAdD,oCAcC"}
1
+ {"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAgC;AAChC,+CAAyC;AAEzC,wCAAmD;AAE5C,KAAK,UAAU,YAAY,CAAC,EACjC,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,GACa;IAClB,IAAI,QAAQ,GAAG,uBAAiB,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACnD,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,iBAAM,CAAC,WAAW,CAAC,MAAM,EAAE;QACrD,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,KAAK;QACb,SAAS;QACT,MAAM,EAAE,IAAA,wBAAS,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,EAAE,EAAE;QACV,QAAQ;KACT,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAnBD,oCAmBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpE"}
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAG7D,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAMpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getBalance.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.integration.test.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
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 client_1 = require("@mysten/sui/client");
7
+ const config_1 = __importDefault(require("../config"));
8
+ const getBalance_1 = require("./getBalance");
9
+ const SENDER = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
10
+ describe("getBalance", () => {
11
+ beforeAll(() => {
12
+ config_1.default.setCoinConfig(() => ({
13
+ status: {
14
+ type: "active",
15
+ },
16
+ node: {
17
+ url: (0, client_1.getFullnodeUrl)("testnet"),
18
+ },
19
+ }));
20
+ });
21
+ it("should fetch native SUI balance", async () => {
22
+ const balances = await (0, getBalance_1.getBalance)(SENDER);
23
+ expect(balances.length).toBeGreaterThanOrEqual(1);
24
+ expect(balances[0]).toMatchObject({
25
+ asset: { type: "native" },
26
+ });
27
+ expect(typeof balances[0].value).toBe("bigint");
28
+ expect(balances[0].value).toBeGreaterThanOrEqual(0n);
29
+ }, 10000);
30
+ it("should fetch token balances", async () => {
31
+ const balances = await (0, getBalance_1.getBalance)(SENDER);
32
+ expect(balances.length).toBeGreaterThanOrEqual(1);
33
+ const tokenBalances = balances.filter(balance => balance.asset.type === "token");
34
+ tokenBalances.forEach(balance => {
35
+ expect(balance.asset.type).toBe("token");
36
+ if (balance.asset.type === "token") {
37
+ expect(balance.asset.assetReference).toMatch(/^0x[a-fA-F0-9]+::[a-zA-Z0-9_]+::[a-zA-Z0-9_]+$/);
38
+ }
39
+ expect(typeof balance.value).toBe("bigint");
40
+ expect(balance.value).toBeGreaterThanOrEqual(0n);
41
+ });
42
+ }, 15000);
43
+ it("should properly parse token asset reference", async () => {
44
+ const balances = await (0, getBalance_1.getBalance)(SENDER);
45
+ const usdTokens = balances.filter(balance => balance.asset.type === "token" &&
46
+ balance.asset.assetReference?.toLowerCase().includes("usd"));
47
+ usdTokens.forEach(balance => {
48
+ expect(balance.asset.type).toBe("token");
49
+ if (balance.asset.type === "token") {
50
+ expect(balance.asset.assetReference).toBeTruthy();
51
+ }
52
+ expect(typeof balance.value).toBe("bigint");
53
+ });
54
+ }, 15000);
55
+ });
56
+ //# sourceMappingURL=getBalance.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.integration.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.integration.test.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBalance = void 0;
4
4
  const network_1 = require("../network");
5
+ const sdk_1 = require("../network/sdk");
5
6
  async function getBalance(address) {
6
- const { balance } = await (0, network_1.getAccount)(address);
7
- return [
8
- {
9
- value: BigInt(balance.toString()),
10
- asset: { type: "native" },
11
- },
12
- ];
7
+ const [native, staking] = await Promise.all([
8
+ getNativeBalance(address),
9
+ getStakingBalances(address),
10
+ ]);
11
+ return [...native, ...staking];
13
12
  }
14
13
  exports.getBalance = getBalance;
14
+ const getNativeBalance = async (address) => {
15
+ const balances = await (0, network_1.getAllBalancesCached)(address);
16
+ return balances.map(({ coinType, totalBalance }) => ({
17
+ value: BigInt(totalBalance),
18
+ asset: (0, sdk_1.toSuiAsset)(coinType),
19
+ }));
20
+ };
21
+ const getStakingBalances = (address) => (0, network_1.getStakes)(address).then(stakes => stakes.map(stake => ({
22
+ value: stake.amount,
23
+ asset: stake.asset,
24
+ stake: stake,
25
+ })));
15
26
  //# sourceMappingURL=getBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AAGjC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC;IAC9C,OAAO;QACL;YACE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B;KACF,CAAC;AACJ,CAAC;AARD,gCAQC"}
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":";;;AAAA,wCAA6D;AAE7D,wCAA4C;AAErC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,gBAAgB,CAAC,OAAO,CAAC;QACzB,kBAAkB,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AACjC,CAAC;AAND,gCAMC;AAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAe,EAAsB,EAAE;IACrE,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC;QAC3B,KAAK,EAAE,IAAA,gBAAU,EAAC,QAAQ,CAAC;KAC5B,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAsB,EAAE,CACjE,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,MAAM;IACnB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK;CACb,CAAC,CAAC,CACJ,CAAC"}
@@ -2,21 +2,63 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const getBalance_1 = require("./getBalance");
4
4
  const network_1 = require("../network");
5
- // Mock the getAccount function
6
5
  jest.mock("../network", () => ({
7
- getAccount: jest.fn().mockResolvedValue({ balance: 1000000000 }),
6
+ getAllBalancesCached: jest.fn().mockResolvedValue([
7
+ { coinType: "0x2::sui::SUI", totalBalance: 1000000000 },
8
+ { coinType: "0x3::usdt::USDT", totalBalance: 500000000 },
9
+ ]),
10
+ getStakes: jest.fn().mockResolvedValue([]),
8
11
  }));
12
+ const mockedGetStakes = jest.mocked(network_1.getStakes);
9
13
  describe("getBalance", () => {
10
14
  beforeEach(() => {
11
15
  jest.clearAllMocks();
12
16
  });
13
- it("should return the correct balance as bigint", async () => {
14
- // Mock the getAccount response
15
- const mockBalance = { balance: 1000000000 };
17
+ it("should return the correct native SUI balance", async () => {
16
18
  const address = "0x123";
17
19
  const result = await (0, getBalance_1.getBalance)(address);
18
- expect(network_1.getAccount).toHaveBeenCalledWith(address);
19
- expect(result[0].value).toBe(BigInt(mockBalance.balance.toString()));
20
+ expect(result[0]).toMatchObject({
21
+ value: BigInt(1000000000),
22
+ asset: { type: "native" },
23
+ });
24
+ });
25
+ it("should return the correct USDT token balance", async () => {
26
+ const address = "0x123";
27
+ const result = await (0, getBalance_1.getBalance)(address);
28
+ expect(result[1]).toMatchObject({
29
+ value: BigInt(500000000),
30
+ asset: { type: "token", assetReference: "0x3::usdt::USDT" },
31
+ });
32
+ });
33
+ it("should return staking balances when stakes are available", async () => {
34
+ const mockStakes = [
35
+ {
36
+ uid: "stake_1",
37
+ address: "0x123",
38
+ delegate: "0xvalidator1",
39
+ state: "active",
40
+ asset: { type: "native" },
41
+ amount: BigInt(2000000000),
42
+ },
43
+ ];
44
+ mockedGetStakes.mockResolvedValueOnce(mockStakes);
45
+ const address = "0x123";
46
+ const result = await (0, getBalance_1.getBalance)(address);
47
+ expect(network_1.getAllBalancesCached).toHaveBeenCalledWith(address);
48
+ expect(network_1.getStakes).toHaveBeenCalledWith(address);
49
+ expect(result).toHaveLength(3);
50
+ expect(result[2]).toMatchObject({
51
+ value: BigInt(2000000000),
52
+ asset: { type: "native" },
53
+ stake: {
54
+ uid: "stake_1",
55
+ address: "0x123",
56
+ delegate: "0xvalidator1",
57
+ state: "active",
58
+ asset: { type: "native" },
59
+ amount: BigInt(2000000000),
60
+ },
61
+ });
20
62
  });
21
63
  });
22
64
  //# sourceMappingURL=getBalance.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":";;AAAA,6CAA0C;AAC1C,wCAAwC;AAExC,+BAA+B;AAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;CACjE,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,+BAA+B;QAC/B,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAE5C,MAAM,OAAO,GAAG,OAAO,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,CAAC,oBAAU,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export { getBalance } from "./getBalance";
6
6
  export { lastBlock } from "./lastBlock";
7
7
  export { getBlock, getBlockInfo } from "./getBlock";
8
8
  export { listOperations } from "./listOperations";
9
+ export { getStakes, getRewards } from "./staking";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listOperations = exports.getBlockInfo = exports.getBlock = exports.lastBlock = exports.getBalance = exports.combine = exports.broadcast = exports.estimateFees = exports.craftTransaction = void 0;
3
+ exports.getRewards = exports.getStakes = exports.listOperations = exports.getBlockInfo = exports.getBlock = exports.lastBlock = exports.getBalance = exports.combine = exports.broadcast = exports.estimateFees = exports.craftTransaction = void 0;
4
4
  var craftTransaction_1 = require("./craftTransaction");
5
5
  Object.defineProperty(exports, "craftTransaction", { enumerable: true, get: function () { return craftTransaction_1.craftTransaction; } });
6
6
  var estimateFees_1 = require("./estimateFees");
@@ -18,4 +18,7 @@ Object.defineProperty(exports, "getBlock", { enumerable: true, get: function ()
18
18
  Object.defineProperty(exports, "getBlockInfo", { enumerable: true, get: function () { return getBlock_1.getBlockInfo; } });
19
19
  var listOperations_1 = require("./listOperations");
20
20
  Object.defineProperty(exports, "listOperations", { enumerable: true, get: function () { return listOperations_1.listOperations; } });
21
+ var staking_1 = require("./staking");
22
+ Object.defineProperty(exports, "getStakes", { enumerable: true, get: function () { return staking_1.getStakes; } });
23
+ Object.defineProperty(exports, "getRewards", { enumerable: true, get: function () { return staking_1.getRewards; } });
21
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAAtE,oHAAA,gBAAgB,OAAA;AACzB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,uCAAoD;AAA3C,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAC/B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAAtE,oHAAA,gBAAgB,OAAA;AACzB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,uCAAoD;AAA3C,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAC/B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qCAAkD;AAAzC,oGAAA,SAAS,OAAA;AAAE,qGAAA,UAAU,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { Cursor, Page, Stake, Reward } from "@ledgerhq/coin-framework/api/types";
2
+ export declare const getStakes: (address: string, _cursor?: Cursor) => Promise<Page<Stake>>;
3
+ export declare const getRewards: (_address: string, _cursor?: Cursor) => Promise<Page<Reward>>;
4
+ //# sourceMappingURL=staking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.d.ts","sourceRoot":"","sources":["../../src/logic/staking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,SAAS,YAAa,MAAM,YAAY,MAAM,KAAG,QAAQ,KAAK,KAAK,CAAC,CAEhF,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,MAAM,YAAY,MAAM,KAAG,QAAQ,KAAK,MAAM,CAAC,CAEnF,CAAC"}
@@ -0,0 +1,36 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getRewards = exports.getStakes = void 0;
27
+ const sdk = __importStar(require("../network"));
28
+ const getStakes = (address, _cursor) => {
29
+ return sdk.getStakes(address).then(stakes => ({ items: stakes }));
30
+ };
31
+ exports.getStakes = getStakes;
32
+ const getRewards = (_address, _cursor) => {
33
+ throw new Error("getRewards is not supported");
34
+ };
35
+ exports.getRewards = getRewards;
36
+ //# sourceMappingURL=staking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../src/logic/staking.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAkC;AAE3B,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAwB,EAAE;IACnF,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,OAAgB,EAAyB,EAAE;IACtF,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACjD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB"}
@@ -1,16 +1,16 @@
1
- import { getAccount, getAccountBalances, getOperations, paymentInfo, createTransaction, executeTransactionBlock } from "./sdk";
2
- export { getAccount, getAccountBalances, getOperations, paymentInfo, createTransaction, executeTransactionBlock, };
1
+ import { getAccountBalances, getAllBalancesCached, getOperations, getBlock, getBlockInfo, getStakes, paymentInfo, createTransaction, executeTransactionBlock } from "./sdk";
2
+ export { getAccountBalances, getAllBalancesCached, getOperations, getBlock, getBlockInfo, getStakes, paymentInfo, createTransaction, executeTransactionBlock, };
3
3
  declare const _default: {
4
- getAccount: (addr: string) => Promise<{
5
- blockHeight: number;
6
- balance: import("bignumber.js").BigNumber;
7
- }>;
8
4
  getAccountBalances: (addr: string) => Promise<{
9
5
  coinType: string;
10
6
  blockHeight: number;
11
7
  balance: import("bignumber.js").BigNumber;
12
8
  }[]>;
9
+ getAllBalancesCached: import("@ledgerhq/live-network/lib/cache").CacheRes<[owner: string], import("@mysten/sui/dist/cjs/client").CoinBalance[]>;
13
10
  getOperations: (accountId: string, addr: string, cursor?: string | null | undefined) => Promise<import("@ledgerhq/types-live").Operation[]>;
11
+ getBlock: (id: string) => Promise<import("@ledgerhq/coin-framework/lib/api").Block>;
12
+ getBlockInfo: (id: string) => Promise<import("@ledgerhq/coin-framework/lib/api").BlockInfo>;
13
+ getStakes: (address: string) => Promise<import("@ledgerhq/coin-framework/lib/api").Stake[]>;
14
14
  paymentInfo: (sender: string, fakeTransaction: import("..").Transaction) => Promise<{
15
15
  gasBudget: string;
16
16
  totalGasUsed: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,uBAAuB,GACxB,CAAC;;;;;;;;;;;;;;;;;;;;AAEF,wBAOE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,uBAAuB,GACxB,CAAC;;;;;;;;;;;;;;;;;;;;AAEF,wBAUE"}