@ledgerhq/coin-ton 0.5.2 → 0.5.3

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 (124) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +14 -0
  3. package/lib/__tests__/fixtures/api.fixtures.d.ts +1 -1
  4. package/lib/__tests__/fixtures/api.fixtures.d.ts.map +1 -1
  5. package/lib/__tests__/fixtures/common.fixtures.js +4 -1
  6. package/lib/__tests__/fixtures/common.fixtures.js.map +1 -1
  7. package/lib/__tests__/integration/bridge.integration.test.js +2 -3
  8. package/lib/__tests__/integration/bridge.integration.test.js.map +1 -1
  9. package/lib/__tests__/unit/api.unit.test.js +18 -27
  10. package/lib/__tests__/unit/api.unit.test.js.map +1 -1
  11. package/lib/__tests__/unit/broadcast.unit.test.js +10 -13
  12. package/lib/__tests__/unit/broadcast.unit.test.js.map +1 -1
  13. package/lib/__tests__/unit/createTransaction.unit.test.js +2 -11
  14. package/lib/__tests__/unit/createTransaction.unit.test.js.map +1 -1
  15. package/lib/__tests__/unit/deviceTransactionConfig.unit.test.js +19 -22
  16. package/lib/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -1
  17. package/lib/__tests__/unit/estimateMaxSpendable.unit.test.js +6 -15
  18. package/lib/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -1
  19. package/lib/__tests__/unit/getTransactionStatus.unit.test.js +58 -48
  20. package/lib/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -1
  21. package/lib/__tests__/unit/hw-getAddress.unit.test.js +12 -25
  22. package/lib/__tests__/unit/hw-getAddress.unit.test.js.map +1 -1
  23. package/lib/__tests__/unit/prepareTransaction.unit.test.js +46 -34
  24. package/lib/__tests__/unit/prepareTransaction.unit.test.js.map +1 -1
  25. package/lib/__tests__/unit/signOperation.unit.test.js +11 -22
  26. package/lib/__tests__/unit/signOperation.unit.test.js.map +1 -1
  27. package/lib/__tests__/unit/txn.unit.test.js +32 -39
  28. package/lib/__tests__/unit/txn.unit.test.js.map +1 -1
  29. package/lib/__tests__/unit/utils.unit.test.js +22 -8
  30. package/lib/__tests__/unit/utils.unit.test.js.map +1 -1
  31. package/lib/bridge/bridgeHelpers/api.js +65 -88
  32. package/lib/bridge/bridgeHelpers/api.js.map +1 -1
  33. package/lib/bridge/bridgeHelpers/txn.js +52 -66
  34. package/lib/bridge/bridgeHelpers/txn.js.map +1 -1
  35. package/lib/bridge/js.js +1 -10
  36. package/lib/bridge/js.js.map +1 -1
  37. package/lib/broadcast.js +3 -12
  38. package/lib/broadcast.js.map +1 -1
  39. package/lib/cli-transaction.js +6 -1
  40. package/lib/cli-transaction.js.map +1 -1
  41. package/lib/config.js +1 -1
  42. package/lib/config.js.map +1 -1
  43. package/lib/estimateMaxSpendable.js +7 -16
  44. package/lib/estimateMaxSpendable.js.map +1 -1
  45. package/lib/getTransactionStatus.js +14 -18
  46. package/lib/getTransactionStatus.js.map +1 -1
  47. package/lib/hw-getAddress.js +6 -15
  48. package/lib/hw-getAddress.js.map +1 -1
  49. package/lib/hw-signMessage.js +3 -12
  50. package/lib/hw-signMessage.js.map +1 -1
  51. package/lib/prepareTransaction.js +5 -15
  52. package/lib/prepareTransaction.js.map +1 -1
  53. package/lib/signOperation.js +23 -35
  54. package/lib/signOperation.js.map +1 -1
  55. package/lib/specs.js +12 -18
  56. package/lib/specs.js.map +1 -1
  57. package/lib/synchronisation.js +46 -55
  58. package/lib/synchronisation.js.map +1 -1
  59. package/lib/transaction.js +13 -2
  60. package/lib/transaction.js.map +1 -1
  61. package/lib/utils.js +11 -20
  62. package/lib/utils.js.map +1 -1
  63. package/lib-es/__tests__/fixtures/api.fixtures.d.ts +1 -1
  64. package/lib-es/__tests__/fixtures/api.fixtures.d.ts.map +1 -1
  65. package/lib-es/__tests__/fixtures/common.fixtures.js +4 -1
  66. package/lib-es/__tests__/fixtures/common.fixtures.js.map +1 -1
  67. package/lib-es/__tests__/integration/bridge.integration.test.js +2 -3
  68. package/lib-es/__tests__/integration/bridge.integration.test.js.map +1 -1
  69. package/lib-es/__tests__/unit/api.unit.test.js +18 -27
  70. package/lib-es/__tests__/unit/api.unit.test.js.map +1 -1
  71. package/lib-es/__tests__/unit/broadcast.unit.test.js +10 -13
  72. package/lib-es/__tests__/unit/broadcast.unit.test.js.map +1 -1
  73. package/lib-es/__tests__/unit/createTransaction.unit.test.js +2 -11
  74. package/lib-es/__tests__/unit/createTransaction.unit.test.js.map +1 -1
  75. package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.js +19 -22
  76. package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -1
  77. package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.js +6 -15
  78. package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -1
  79. package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js +58 -48
  80. package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -1
  81. package/lib-es/__tests__/unit/hw-getAddress.unit.test.js +12 -25
  82. package/lib-es/__tests__/unit/hw-getAddress.unit.test.js.map +1 -1
  83. package/lib-es/__tests__/unit/prepareTransaction.unit.test.js +46 -34
  84. package/lib-es/__tests__/unit/prepareTransaction.unit.test.js.map +1 -1
  85. package/lib-es/__tests__/unit/signOperation.unit.test.js +11 -22
  86. package/lib-es/__tests__/unit/signOperation.unit.test.js.map +1 -1
  87. package/lib-es/__tests__/unit/txn.unit.test.js +32 -39
  88. package/lib-es/__tests__/unit/txn.unit.test.js.map +1 -1
  89. package/lib-es/__tests__/unit/utils.unit.test.js +22 -8
  90. package/lib-es/__tests__/unit/utils.unit.test.js.map +1 -1
  91. package/lib-es/bridge/bridgeHelpers/api.js +65 -88
  92. package/lib-es/bridge/bridgeHelpers/api.js.map +1 -1
  93. package/lib-es/bridge/bridgeHelpers/txn.js +52 -66
  94. package/lib-es/bridge/bridgeHelpers/txn.js.map +1 -1
  95. package/lib-es/bridge/js.js +1 -10
  96. package/lib-es/bridge/js.js.map +1 -1
  97. package/lib-es/broadcast.js +3 -12
  98. package/lib-es/broadcast.js.map +1 -1
  99. package/lib-es/cli-transaction.js +6 -1
  100. package/lib-es/cli-transaction.js.map +1 -1
  101. package/lib-es/config.js +1 -1
  102. package/lib-es/config.js.map +1 -1
  103. package/lib-es/estimateMaxSpendable.js +7 -16
  104. package/lib-es/estimateMaxSpendable.js.map +1 -1
  105. package/lib-es/getTransactionStatus.js +14 -18
  106. package/lib-es/getTransactionStatus.js.map +1 -1
  107. package/lib-es/hw-getAddress.js +6 -15
  108. package/lib-es/hw-getAddress.js.map +1 -1
  109. package/lib-es/hw-signMessage.js +3 -12
  110. package/lib-es/hw-signMessage.js.map +1 -1
  111. package/lib-es/prepareTransaction.js +5 -15
  112. package/lib-es/prepareTransaction.js.map +1 -1
  113. package/lib-es/signOperation.js +23 -35
  114. package/lib-es/signOperation.js.map +1 -1
  115. package/lib-es/specs.js +12 -18
  116. package/lib-es/specs.js.map +1 -1
  117. package/lib-es/synchronisation.js +46 -55
  118. package/lib-es/synchronisation.js.map +1 -1
  119. package/lib-es/transaction.js +13 -2
  120. package/lib-es/transaction.js.map +1 -1
  121. package/lib-es/utils.js +11 -20
  122. package/lib-es/utils.js.map +1 -1
  123. package/package.json +4 -4
  124. package/tsconfig.json +0 -1
@@ -1,17 +1,8 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
11
2
  import { broadcastTx } from "./bridge/bridgeHelpers/api";
12
- const broadcast = (_a) => __awaiter(void 0, [_a], void 0, function* ({ signedOperation: { signature, operation }, }) {
13
- const hash = yield broadcastTx(signature);
3
+ const broadcast = async ({ signedOperation: { signature, operation }, }) => {
4
+ const hash = await broadcastTx(signature);
14
5
  return patchOperationWithHash(operation, hash);
15
- });
6
+ };
16
7
  export default broadcast;
17
8
  //# sourceMappingURL=broadcast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,MAAM,SAAS,GAA4C,KAExD,EAAE,4CAF6D,EAChE,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAC1C;IACC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAA,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,MAAM,SAAS,GAA4C,KAAK,EAAE,EAChE,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAC1C,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -8,7 +8,12 @@ function inferTransactions(transactions, opts) {
8
8
  const isDelisted = account.token.delisted === true;
9
9
  invariant(!isDelisted, "token is delisted");
10
10
  }
11
- return Object.assign(Object.assign({}, transaction), { family: "ton", mode: opts.mode || "send", subAccountId: isTokenAccount ? account.id : null });
11
+ return {
12
+ ...transaction,
13
+ family: "ton",
14
+ mode: opts.mode || "send",
15
+ subAccountId: isTokenAccount ? account.id : null,
16
+ };
12
17
  });
13
18
  }
14
19
  export default function makeCliTools() {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-transaction.js","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAKrC,SAAS,iBAAiB,CACxB,YAGE,EACF,IAA4B;IAE5B,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,KAAK,EAAE,YAAY,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC;QAEvD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnD,SAAS,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,gCACF,WAAW,KACd,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,EACzB,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAClC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli-transaction.js","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAKrC,SAAS,iBAAiB,CACxB,YAGE,EACF,IAA4B;IAE5B,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,KAAK,EAAE,YAAY,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC;QAEvD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnD,SAAS,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;YACzB,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SAClC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
package/lib-es/config.js CHANGED
@@ -3,7 +3,7 @@ export const setCoinConfig = (config) => {
3
3
  coinConfig = config;
4
4
  };
5
5
  export const getCoinConfig = () => {
6
- if (!(coinConfig === null || coinConfig === void 0 ? void 0 : coinConfig())) {
6
+ if (!coinConfig?.()) {
7
7
  throw new Error("Ton module config not set");
8
8
  }
9
9
  return coinConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,IAAI,UAAqC,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAQ,EAAE;IAC3D,UAAU,GAAG,MAAM,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAA8B,EAAE;IAC3D,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,EAAI,CAAA,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,IAAI,UAAqC,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAQ,EAAE;IAC3D,UAAU,GAAG,MAAM,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAA8B,EAAE;IAC3D,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC,CAAC"}
@@ -1,23 +1,13 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { findSubAccountById, getMainAccount, isTokenAccount, } from "@ledgerhq/coin-framework/account/index";
11
2
  import { BigNumber } from "bignumber.js";
12
3
  import { fetchAccountInfo } from "./bridge/bridgeHelpers/api";
13
4
  import { buildTonTransaction, getTonEstimatedFees } from "./utils";
14
- const estimateMaxSpendable = (_a) => __awaiter(void 0, [_a], void 0, function* ({ account, parentAccount, transaction, }) {
15
- var _b, _c;
5
+ const estimateMaxSpendable = async ({ account, parentAccount, transaction, }) => {
16
6
  const mainAccount = getMainAccount(account, parentAccount);
17
7
  let balance = mainAccount.spendableBalance;
18
8
  if (balance.eq(0))
19
9
  return balance;
20
- const accountInfo = yield fetchAccountInfo(mainAccount.freshAddress);
10
+ const accountInfo = await fetchAccountInfo(mainAccount.freshAddress);
21
11
  const isTokenType = isTokenAccount(account);
22
12
  if (transaction && !transaction.subAccountId) {
23
13
  transaction.subAccountId = isTokenType ? account.id : null;
@@ -28,20 +18,21 @@ const estimateMaxSpendable = (_a) => __awaiter(void 0, [_a], void 0, function* (
28
18
  tokenAccountTxn = true;
29
19
  subAccount = account;
30
20
  }
31
- if ((transaction === null || transaction === void 0 ? void 0 : transaction.subAccountId) && !subAccount) {
21
+ if (transaction?.subAccountId && !subAccount) {
32
22
  tokenAccountTxn = true;
33
- subAccount = (_b = findSubAccountById(mainAccount, transaction.subAccountId || "")) !== null && _b !== void 0 ? _b : null;
23
+ subAccount = findSubAccountById(mainAccount, transaction.subAccountId || "") ?? null;
34
24
  }
35
25
  if (tokenAccountTxn && subAccount) {
36
26
  return subAccount.spendableBalance;
37
27
  }
38
28
  const estimatedFees = transaction
39
- ? (_c = transaction.fees) !== null && _c !== void 0 ? _c : (yield getTonEstimatedFees(mainAccount, accountInfo.status === "uninit", buildTonTransaction(transaction, accountInfo.seqno, mainAccount)))
29
+ ? transaction.fees ??
30
+ (await getTonEstimatedFees(mainAccount, accountInfo.status === "uninit", buildTonTransaction(transaction, accountInfo.seqno, mainAccount)))
40
31
  : BigNumber(0);
41
32
  if (balance.lte(estimatedFees))
42
33
  return new BigNumber(0);
43
34
  balance = balance.minus(estimatedFees);
44
35
  return balance;
45
- });
36
+ };
46
37
  export default estimateMaxSpendable;
47
38
  //# sourceMappingURL=estimateMaxSpendable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../src/estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,oBAAoB,GAAgE,KAQnE,EAAE,4CARwE,EAC/F,OAAO,EACP,aAAa,EACb,WAAW,GAKZ;;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAE3C,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAElC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7C,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,IAAI,eAAe,GAAY,KAAK,CAAC;IACrC,IAAI,UAA2C,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,GAAG,IAAI,CAAC;QACvB,UAAU,GAAG,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,KAAI,CAAC,UAAU,EAAE,CAAC;QAC7C,eAAe,GAAG,IAAI,CAAC;QACvB,UAAU,GAAG,MAAA,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,mCAAI,IAAI,CAAC;IACvF,CAAC;IAED,IAAI,eAAe,IAAI,UAAU,EAAE,CAAC;QAClC,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,WAAW;QAC/B,CAAC,CAAC,MAAA,WAAW,CAAC,IAAI,mCAChB,CAAC,MAAM,mBAAmB,CACxB,WAAW,EACX,WAAW,CAAC,MAAM,KAAK,QAAQ,EAC/B,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CACjE,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAExD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAA,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../src/estimateMaxSpendable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,oBAAoB,GAAgE,KAAK,EAAE,EAC/F,OAAO,EACP,aAAa,EACb,WAAW,GAKZ,EAAsB,EAAE;IACvB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAE3C,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAElC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7C,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,IAAI,eAAe,GAAY,KAAK,CAAC;IACrC,IAAI,UAA2C,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,GAAG,IAAI,CAAC;QACvB,UAAU,GAAG,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,WAAW,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7C,eAAe,GAAG,IAAI,CAAC;QACvB,UAAU,GAAG,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;IACvF,CAAC;IAED,IAAI,eAAe,IAAI,UAAU,EAAE,CAAC;QAClC,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,WAAW;QAC/B,CAAC,CAAC,WAAW,CAAC,IAAI;YAChB,CAAC,MAAM,mBAAmB,CACxB,WAAW,EACX,WAAW,CAAC,MAAM,KAAK,QAAQ,EAC/B,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CACjE,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAExD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { findSubAccountById, isTokenAccount } from "@ledgerhq/coin-framework/account/index";
11
2
  import { AmountRequired, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, NotEnoughBalance, RecipientRequired, } from "@ledgerhq/errors";
12
3
  import { toNano } from "@ton/core";
@@ -53,16 +44,15 @@ const validateSender = (account) => {
53
44
  return [errors];
54
45
  };
55
46
  const validateAmount = (account, transaction, totalSpent) => {
56
- var _a;
57
47
  const errors = {};
58
48
  const warnings = {};
59
- const subAccount = findSubAccountById(account, (_a = transaction.subAccountId) !== null && _a !== void 0 ? _a : "");
49
+ const subAccount = findSubAccountById(account, transaction.subAccountId ?? "");
60
50
  const tokenTransfer = Boolean(subAccount && isTokenAccount(subAccount));
61
51
  // if no amount or 0
62
52
  if (!transaction.amount || transaction.amount.isZero()) {
63
53
  errors.amount = new AmountRequired(); // "Amount required"
64
54
  }
65
- else if (totalSpent.isGreaterThan(tokenTransfer && subAccount ? subAccount === null || subAccount === void 0 ? void 0 : subAccount.spendableBalance : account.balance)) {
55
+ else if (totalSpent.isGreaterThan(tokenTransfer && subAccount ? subAccount?.spendableBalance : account.balance)) {
66
56
  // if not enough to make the transaction
67
57
  errors.amount = new NotEnoughBalance(); // "Sorry, insufficient funds"
68
58
  }
@@ -91,9 +81,8 @@ const validateComment = (transaction) => {
91
81
  }
92
82
  return [errors];
93
83
  };
94
- export const getTransactionStatus = (account, transaction) => __awaiter(void 0, void 0, void 0, function* () {
95
- var _a;
96
- const subAccount = findSubAccountById(account, (_a = transaction.subAccountId) !== null && _a !== void 0 ? _a : "");
84
+ export const getTransactionStatus = async (account, transaction) => {
85
+ const subAccount = findSubAccountById(account, transaction.subAccountId ?? "");
97
86
  const tokenTransfer = Boolean(subAccount && isTokenAccount(subAccount));
98
87
  const totalSpent = tokenTransfer ? transaction.amount : transaction.amount.plus(transaction.fees);
99
88
  // Recipient related errors and warnings
@@ -104,8 +93,15 @@ export const getTransactionStatus = (account, transaction) => __awaiter(void 0,
104
93
  const [amountErr, amountWarn] = validateAmount(account, transaction, totalSpent);
105
94
  // Transaction related errors and warnings
106
95
  const [transactionErr] = validateComment(transaction);
107
- const errors = Object.assign(Object.assign(Object.assign(Object.assign({}, recipientErr), senderErr), amountErr), transactionErr);
108
- const warnings = Object.assign({}, amountWarn);
96
+ const errors = {
97
+ ...recipientErr,
98
+ ...senderErr,
99
+ ...amountErr,
100
+ ...transactionErr,
101
+ };
102
+ const warnings = {
103
+ ...amountWarn,
104
+ };
109
105
  return {
110
106
  amount: transaction.amount,
111
107
  errors,
@@ -113,6 +109,6 @@ export const getTransactionStatus = (account, transaction) => __awaiter(void 0,
113
109
  estimatedFees: transaction.fees,
114
110
  totalSpent,
115
111
  };
116
- });
112
+ };
117
113
  export default getTransactionStatus;
118
114
  //# sourceMappingURL=getTransactionStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,12 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { getLedgerTonPath } from "./utils";
11
2
  const resolver = (signerContext) => {
12
- return (deviceId_1, _a) => __awaiter(void 0, [deviceId_1, _a], void 0, function* (deviceId, { path, verify }) {
3
+ return async (deviceId, { path, verify }) => {
13
4
  const ledgerPath = getLedgerTonPath(path);
14
- const sig = yield signerContext(deviceId, (signer) => __awaiter(void 0, void 0, void 0, function* () {
5
+ const sig = await signerContext(deviceId, async (signer) => {
15
6
  return verify
16
- ? yield signer.validateAddress(ledgerPath, { bounceable: false })
17
- : yield signer.getAddress(ledgerPath, { bounceable: false });
18
- }));
7
+ ? await signer.validateAddress(ledgerPath, { bounceable: false })
8
+ : await signer.getAddress(ledgerPath, { bounceable: false });
9
+ });
19
10
  if (!sig.address || !sig.publicKey.length)
20
11
  throw Error(`[ton] Response is empty ${sig.address} ${sig.publicKey}`);
21
12
  return {
@@ -23,7 +14,7 @@ const resolver = (signerContext) => {
23
14
  publicKey: sig.publicKey.toString("hex"),
24
15
  path,
25
16
  };
26
- });
17
+ };
27
18
  };
28
19
  export default resolver;
29
20
  //# sourceMappingURL=hw-getAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hw-getAddress.js","sourceRoot":"","sources":["../src/hw-getAddress.ts"],"names":[],"mappings":";;;;;;;;;AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,QAAQ,GAAG,CAAC,aAAuC,EAAgB,EAAE;IACzE,OAAO,iBAA8D,EAAE,wDAAzD,QAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAqB;QACjE,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAM,MAAM,EAAC,EAAE;YACvD,OAAO,MAAM;gBACX,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;gBACjE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC,CAAA,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;YACvC,MAAM,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI;SACL,CAAC;IACJ,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"hw-getAddress.js","sourceRoot":"","sources":["../src/hw-getAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,QAAQ,GAAG,CAAC,aAAuC,EAAgB,EAAE;IACzE,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAqB,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YACvD,OAAO,MAAM;gBACX,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;gBACjE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;YACvC,MAAM,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI;SACL,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,19 +1,10 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { getLedgerTonPath } from "./utils";
11
- export const signMessage = (signerContext) => (deviceId_1, account_1, _a) => __awaiter(void 0, [deviceId_1, account_1, _a], void 0, function* (deviceId, account, { message }) {
2
+ export const signMessage = (signerContext) => async (deviceId, account, { message }) => {
12
3
  if (typeof message !== "string")
13
4
  throw new Error("Invalid message value");
14
5
  const parsedMessage = JSON.parse(message);
15
6
  const ledgerPath = getLedgerTonPath(account.freshAddressPath);
16
- const sig = yield signerContext(deviceId, signer => signer.signTransaction(ledgerPath, parsedMessage));
7
+ const sig = await signerContext(deviceId, signer => signer.signTransaction(ledgerPath, parsedMessage));
17
8
  if (!sig) {
18
9
  throw new Error("No signature");
19
10
  }
@@ -25,5 +16,5 @@ export const signMessage = (signerContext) => (deviceId_1, account_1, _a) => __a
25
16
  },
26
17
  signature: sig.toString(),
27
18
  };
28
- });
19
+ };
29
20
  //# sourceMappingURL=hw-signMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hw-signMessage.js","sourceRoot":"","sources":["../src/hw-signMessage.ts"],"names":[],"mappings":";;;;;;;;;AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,aAAuC,EAAE,EAAE,CAC5C,4BAAoE,EAAE,mEAA/D,QAAgB,EAAE,OAAgB,EAAE,EAAE,OAAO,EAAc;IAChE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAE1E,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACjD,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,aAA+B,CAAC,CACpE,CAAC;IAEF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,EAAE;YACH,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,CAAC;SACL;QACD,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE;KAC1B,CAAC;AACJ,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"hw-signMessage.js","sourceRoot":"","sources":["../src/hw-signMessage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,aAAuC,EAAE,EAAE,CAC5C,KAAK,EAAE,QAAgB,EAAE,OAAgB,EAAE,EAAE,OAAO,EAAc,EAAE,EAAE;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAE1E,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACjD,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,aAA+B,CAAC,CACpE,CAAC;IAEF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,EAAE;YACH,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,CAAC;SACL;QACD,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE;KAC1B,CAAC;AACJ,CAAC,CAAC"}
@@ -1,22 +1,12 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
11
2
  import { updateTransaction } from "@ledgerhq/coin-framework/bridge/jsHelpers";
12
3
  import { fetchAccountInfo } from "./bridge/bridgeHelpers/api";
13
4
  import { buildTonTransaction, getTonEstimatedFees } from "./utils";
14
- const prepareTransaction = (account, transaction) => __awaiter(void 0, void 0, void 0, function* () {
15
- var _a;
16
- const accountInfo = yield fetchAccountInfo(account.freshAddress);
17
- const subAccount = findSubAccountById(account, (_a = transaction.subAccountId) !== null && _a !== void 0 ? _a : "");
5
+ const prepareTransaction = async (account, transaction) => {
6
+ const accountInfo = await fetchAccountInfo(account.freshAddress);
7
+ const subAccount = findSubAccountById(account, transaction.subAccountId ?? "");
18
8
  const simpleTx = buildTonTransaction(transaction, accountInfo.seqno, account);
19
- const fees = yield getTonEstimatedFees(account, accountInfo.status === "uninit", simpleTx);
9
+ const fees = await getTonEstimatedFees(account, accountInfo.status === "uninit", simpleTx);
20
10
  let amount;
21
11
  if (transaction.useAllAmount) {
22
12
  amount = subAccount ? subAccount.spendableBalance : account.spendableBalance.minus(fees);
@@ -25,6 +15,6 @@ const prepareTransaction = (account, transaction) => __awaiter(void 0, void 0, v
25
15
  amount = transaction.amount;
26
16
  }
27
17
  return updateTransaction(transaction, { fees, amount });
28
- });
18
+ };
29
19
  export default prepareTransaction;
30
20
  //# sourceMappingURL=prepareTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,kBAAkB,GAA8D,CACpF,OAAgB,EAChB,WAAwB,EACF,EAAE;;IACxB,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAA,WAAW,CAAC,YAAY,mCAAI,EAAE,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3F,IAAI,MAAM,CAAC;IACX,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,iBAAiB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAA,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,kBAAkB,GAA8D,KAAK,EACzF,OAAgB,EAChB,WAAwB,EACF,EAAE;IACxB,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3F,IAAI,MAAM,CAAC;IACX,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,iBAAiB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { findSubAccountById, isTokenAccount } from "@ledgerhq/coin-framework/account/index";
11
2
  import { Address, beginCell, external, storeMessage, toNano } from "@ton/core";
12
3
  import { WalletContractV4 } from "@ton/ton";
@@ -16,11 +7,10 @@ import { fetchAccountInfo } from "./bridge/bridgeHelpers/api";
16
7
  import { TOKEN_TRANSFER_MAX_FEE } from "./constants";
17
8
  import { buildTonTransaction, getLedgerTonPath } from "./utils";
18
9
  const packTransaction = (account, needsInit, signature) => {
19
- var _a;
20
10
  const { address } = Address.parseFriendly(account.freshAddress);
21
11
  let init = null;
22
12
  if (needsInit) {
23
- if (((_a = account.xpub) === null || _a === void 0 ? void 0 : _a.length) !== 64)
13
+ if (account.xpub?.length !== 64)
24
14
  throw Error("[ton] xpub can't be found");
25
15
  const wallet = WalletContractV4.create({
26
16
  workchain: 0,
@@ -36,29 +26,27 @@ const packTransaction = (account, needsInit, signature) => {
36
26
  */
37
27
  export const buildSignOperation = (signerContext) => ({ account, transaction, deviceId, }) => new Observable(o => {
38
28
  let cancelled = false;
39
- function main() {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- const address = account.freshAddress;
42
- const accountInfo = yield fetchAccountInfo(address);
43
- const tonTx = buildTonTransaction(transaction, accountInfo.seqno, account);
44
- const ledgerPath = getLedgerTonPath(account.freshAddressPath);
45
- o.next({ type: "device-signature-requested" });
46
- const sig = yield signerContext(deviceId, signer => signer.signTransaction(ledgerPath, tonTx));
47
- if (cancelled)
48
- return;
49
- o.next({ type: "device-signature-granted" });
50
- if (!sig) {
51
- throw new Error("No signature");
52
- }
53
- const signature = packTransaction(account, accountInfo.status === "uninit", sig);
54
- const operation = buildOptimisticOperation(account, transaction);
55
- o.next({
56
- type: "signed",
57
- signedOperation: {
58
- operation,
59
- signature,
60
- },
61
- });
29
+ async function main() {
30
+ const address = account.freshAddress;
31
+ const accountInfo = await fetchAccountInfo(address);
32
+ const tonTx = buildTonTransaction(transaction, accountInfo.seqno, account);
33
+ const ledgerPath = getLedgerTonPath(account.freshAddressPath);
34
+ o.next({ type: "device-signature-requested" });
35
+ const sig = await signerContext(deviceId, signer => signer.signTransaction(ledgerPath, tonTx));
36
+ if (cancelled)
37
+ return;
38
+ o.next({ type: "device-signature-granted" });
39
+ if (!sig) {
40
+ throw new Error("No signature");
41
+ }
42
+ const signature = packTransaction(account, accountInfo.status === "uninit", sig);
43
+ const operation = buildOptimisticOperation(account, transaction);
44
+ o.next({
45
+ type: "signed",
46
+ signedOperation: {
47
+ operation,
48
+ signature,
49
+ },
62
50
  });
63
51
  }
64
52
  main().then(() => o.complete(), e => o.error(e));
@@ -69,7 +57,7 @@ export const buildSignOperation = (signerContext) => ({ account, transaction, de
69
57
  export const buildOptimisticOperation = (account, transaction) => {
70
58
  const { recipient, amount, fees, comment, useAllAmount, subAccountId } = transaction;
71
59
  const { id: accountId } = account;
72
- const subAccount = findSubAccountById(account, subAccountId !== null && subAccountId !== void 0 ? subAccountId : "");
60
+ const subAccount = findSubAccountById(account, subAccountId ?? "");
73
61
  const tokenTransfer = Boolean(subAccount && isTokenAccount(subAccount));
74
62
  const value = tokenTransfer
75
63
  ? BigNumber(toNano(TOKEN_TRANSFER_MAX_FEE).toString())
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"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"}
package/lib-es/specs.js CHANGED
@@ -8,21 +8,17 @@ import { generateDeviceActionFlow } from "./speculos-deviceActions";
8
8
  import { BotScenario } from "./utils";
9
9
  const MIN_SAFE = new BigNumber(1.5e7); // approx two txs' fees (0.015 TON)
10
10
  export const testDestination = ({ destination, destinationBeforeTransaction, sendingOperation, }) => {
11
- var _a;
12
11
  const amount = sendingOperation.value;
13
12
  const inOp = destination.operations.find(op => op.hash === sendingOperation.hash && op.type === "IN");
14
- const inFees = (_a = inOp === null || inOp === void 0 ? void 0 : inOp.fee) !== null && _a !== void 0 ? _a : BigNumber(0);
13
+ const inFees = inOp?.fee ?? BigNumber(0);
15
14
  botTest("account balance increased with transaction amount", () => expect(destination.balance.toString()).toBe(destinationBeforeTransaction.balance.plus(amount).minus(inFees).toString()));
16
- botTest("operation amount is consistent with sendingOperation", () => {
17
- var _a;
18
- return expect({
19
- type: inOp === null || inOp === void 0 ? void 0 : inOp.type,
20
- amount: (_a = inOp === null || inOp === void 0 ? void 0 : inOp.value) === null || _a === void 0 ? void 0 : _a.toString(),
21
- }).toMatchObject({
22
- type: "IN",
23
- amount: amount.toString(),
24
- });
25
- });
15
+ botTest("operation amount is consistent with sendingOperation", () => expect({
16
+ type: inOp?.type,
17
+ amount: inOp?.value?.toString(),
18
+ }).toMatchObject({
19
+ type: "IN",
20
+ amount: amount.toString(),
21
+ }));
26
22
  };
27
23
  const tonSpecs = {
28
24
  name: "TON",
@@ -98,9 +94,8 @@ const tonSpecs = {
98
94
  maxRun: 1,
99
95
  deviceAction: generateDeviceActionFlow(BotScenario.TOKEN_TRANSFER),
100
96
  transaction: ({ account, bridge, maxSpendable, siblings }) => {
101
- var _a;
102
97
  invariant(maxSpendable.gt(0), "Spendable balance is too low");
103
- const subAccount = (_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a.find(a => a.type === "TokenAccount" && a.spendableBalance.gt(0));
98
+ const subAccount = account.subAccounts?.find(a => a.type === "TokenAccount" && a.spendableBalance.gt(0));
104
99
  const recipient = siblings[0].freshAddress;
105
100
  invariant(subAccount && subAccount.type === "TokenAccount", "no subAccount with jUSDT");
106
101
  const amount = subAccount.balance.div(1.9 + 0.2 * Math.random()).integerValue();
@@ -123,11 +118,10 @@ const tonSpecs = {
123
118
  };
124
119
  },
125
120
  test: ({ account, accountBeforeTransaction, operation, transaction, status }) => {
126
- var _a, _b;
127
121
  const subAccountId = transaction.subAccountId;
128
- const subAccount = (_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a.find(sa => sa.id === subAccountId);
129
- const subAccountBeforeTransaction = (_b = accountBeforeTransaction.subAccounts) === null || _b === void 0 ? void 0 : _b.find(sa => sa.id === subAccountId);
130
- botTest("subAccount balance moved with the tx status amount", () => expect(subAccount === null || subAccount === void 0 ? void 0 : subAccount.balance.toString()).toBe(subAccountBeforeTransaction === null || subAccountBeforeTransaction === void 0 ? void 0 : subAccountBeforeTransaction.balance.minus(status.amount).toString()));
122
+ const subAccount = account.subAccounts?.find(sa => sa.id === subAccountId);
123
+ const subAccountBeforeTransaction = accountBeforeTransaction.subAccounts?.find(sa => sa.id === subAccountId);
124
+ botTest("subAccount balance moved with the tx status amount", () => expect(subAccount?.balance.toString()).toBe(subAccountBeforeTransaction?.balance.minus(status.amount).toString()));
131
125
  botTest("operation comment", () => expect(operation.extra).toMatchObject({
132
126
  comment: transaction.comment,
133
127
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"specs.js","sourceRoot":"","sources":["../src/specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specs.js","sourceRoot":"","sources":["../src/specs.ts"],"names":[],"mappings":"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"}