@ledgerhq/live-common 22.3.0-universal.0 → 23.0.0-next.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 (269) hide show
  1. package/lib/__tests__/test-helpers/setup.js +2 -0
  2. package/lib/__tests__/test-helpers/setup.js.map +1 -1
  3. package/lib/account/pending.d.ts +2 -1
  4. package/lib/account/pending.d.ts.map +1 -1
  5. package/lib/account/serialization.d.ts +3 -1
  6. package/lib/account/serialization.d.ts.map +1 -1
  7. package/lib/account/serialization.js +12 -3
  8. package/lib/account/serialization.js.map +1 -1
  9. package/lib/cross.d.ts.map +1 -1
  10. package/lib/cross.js +2 -1
  11. package/lib/cross.js.map +1 -1
  12. package/lib/derivation.d.ts +10 -1
  13. package/lib/derivation.d.ts.map +1 -1
  14. package/lib/derivation.js +28 -5
  15. package/lib/derivation.js.map +1 -1
  16. package/lib/env.d.ts +20 -5
  17. package/lib/env.d.ts.map +1 -1
  18. package/lib/env.js +16 -1
  19. package/lib/env.js.map +1 -1
  20. package/lib/env.react.d.ts +1 -1
  21. package/lib/env.react.d.ts.map +1 -1
  22. package/lib/errors.d.ts +1 -0
  23. package/lib/errors.d.ts.map +1 -1
  24. package/lib/errors.js +1 -0
  25. package/lib/errors.js.map +1 -1
  26. package/lib/families/algorand/js-synchronization.d.ts +2 -2
  27. package/lib/families/bitcoin/exchange.d.ts +1 -1
  28. package/lib/families/bitcoin/js-synchronisation.d.ts +2 -2
  29. package/lib/families/cardano/api/api-types.d.ts +38 -0
  30. package/lib/families/cardano/api/api-types.d.ts.map +1 -0
  31. package/lib/families/cardano/api/api-types.js +3 -0
  32. package/lib/families/cardano/api/api-types.js.map +1 -0
  33. package/lib/families/cardano/api/getNetworkInfo.d.ts +4 -0
  34. package/lib/families/cardano/api/getNetworkInfo.d.ts.map +1 -0
  35. package/lib/families/cardano/api/getNetworkInfo.js +83 -0
  36. package/lib/families/cardano/api/getNetworkInfo.js.map +1 -0
  37. package/lib/families/cardano/api/getTransactions.d.ts +10 -0
  38. package/lib/families/cardano/api/getTransactions.d.ts.map +1 -0
  39. package/lib/families/cardano/api/getTransactions.js +257 -0
  40. package/lib/families/cardano/api/getTransactions.js.map +1 -0
  41. package/lib/families/cardano/api/submitTransaction.d.ts +7 -0
  42. package/lib/families/cardano/api/submitTransaction.d.ts.map +1 -0
  43. package/lib/families/cardano/api/submitTransaction.js +69 -0
  44. package/lib/families/cardano/api/submitTransaction.js.map +1 -0
  45. package/lib/families/cardano/bridge/js.d.ts +8 -0
  46. package/lib/families/cardano/bridge/js.d.ts.map +1 -0
  47. package/lib/families/cardano/bridge/js.js +69 -0
  48. package/lib/families/cardano/bridge/js.js.map +1 -0
  49. package/lib/families/cardano/bridge.test.d.ts +2 -0
  50. package/lib/families/cardano/bridge.test.d.ts.map +1 -0
  51. package/lib/families/cardano/bridge.test.js +11 -0
  52. package/lib/families/cardano/bridge.test.js.map +1 -0
  53. package/lib/families/cardano/buildSubAccounts.d.ts +25 -0
  54. package/lib/families/cardano/buildSubAccounts.d.ts.map +1 -0
  55. package/lib/families/cardano/buildSubAccounts.js +176 -0
  56. package/lib/families/cardano/buildSubAccounts.js.map +1 -0
  57. package/lib/families/cardano/cli-transaction.d.ts +19 -0
  58. package/lib/families/cardano/cli-transaction.d.ts.map +1 -0
  59. package/lib/families/cardano/cli-transaction.js +70 -0
  60. package/lib/families/cardano/cli-transaction.js.map +1 -0
  61. package/lib/families/cardano/constants.d.ts +8 -0
  62. package/lib/families/cardano/constants.d.ts.map +1 -0
  63. package/lib/families/cardano/constants.js +12 -0
  64. package/lib/families/cardano/constants.js.map +1 -0
  65. package/lib/families/cardano/datasets/rawAccount.1.d.ts +3 -0
  66. package/lib/families/cardano/datasets/rawAccount.1.d.ts.map +1 -0
  67. package/lib/families/cardano/datasets/rawAccount.1.js +27 -0
  68. package/lib/families/cardano/datasets/rawAccount.1.js.map +1 -0
  69. package/lib/families/cardano/datasets/scanAccounts.d.ts +5 -0
  70. package/lib/families/cardano/datasets/scanAccounts.d.ts.map +1 -0
  71. package/lib/families/cardano/datasets/scanAccounts.js +10 -0
  72. package/lib/families/cardano/datasets/scanAccounts.js.map +1 -0
  73. package/lib/families/cardano/errors.d.ts +7 -0
  74. package/lib/families/cardano/errors.d.ts.map +1 -0
  75. package/lib/families/cardano/errors.js +9 -0
  76. package/lib/families/cardano/errors.js.map +1 -0
  77. package/lib/families/cardano/hw-getAddress.d.ts +4 -0
  78. package/lib/families/cardano/hw-getAddress.d.ts.map +1 -0
  79. package/lib/families/cardano/hw-getAddress.js +126 -0
  80. package/lib/families/cardano/hw-getAddress.js.map +1 -0
  81. package/lib/families/cardano/js-broadcast.d.ts +8 -0
  82. package/lib/families/cardano/js-broadcast.d.ts.map +1 -0
  83. package/lib/families/cardano/js-broadcast.js +65 -0
  84. package/lib/families/cardano/js-broadcast.js.map +1 -0
  85. package/lib/families/cardano/js-buildTransaction.d.ts +12 -0
  86. package/lib/families/cardano/js-buildTransaction.d.ts.map +1 -0
  87. package/lib/families/cardano/js-buildTransaction.js +253 -0
  88. package/lib/families/cardano/js-buildTransaction.js.map +1 -0
  89. package/lib/families/cardano/js-estimateMaxSpendable.d.ts +15 -0
  90. package/lib/families/cardano/js-estimateMaxSpendable.d.ts.map +1 -0
  91. package/lib/families/cardano/js-estimateMaxSpendable.js +99 -0
  92. package/lib/families/cardano/js-estimateMaxSpendable.js.map +1 -0
  93. package/lib/families/cardano/js-getFeesForTransaction.d.ts +15 -0
  94. package/lib/families/cardano/js-getFeesForTransaction.d.ts.map +1 -0
  95. package/lib/families/cardano/js-getFeesForTransaction.js +61 -0
  96. package/lib/families/cardano/js-getFeesForTransaction.js.map +1 -0
  97. package/lib/families/cardano/js-getTransactionStatus.d.ts +5 -0
  98. package/lib/families/cardano/js-getTransactionStatus.d.ts.map +1 -0
  99. package/lib/families/cardano/js-getTransactionStatus.js +156 -0
  100. package/lib/families/cardano/js-getTransactionStatus.js.map +1 -0
  101. package/lib/families/cardano/js-signOperation.d.ts +13 -0
  102. package/lib/families/cardano/js-signOperation.d.ts.map +1 -0
  103. package/lib/families/cardano/js-signOperation.js +274 -0
  104. package/lib/families/cardano/js-signOperation.js.map +1 -0
  105. package/lib/families/cardano/js-synchronisation.d.ts +11 -0
  106. package/lib/families/cardano/js-synchronisation.d.ts.map +1 -0
  107. package/lib/families/cardano/js-synchronisation.js +247 -0
  108. package/lib/families/cardano/js-synchronisation.js.map +1 -0
  109. package/lib/families/cardano/js-transaction.d.ts +23 -0
  110. package/lib/families/cardano/js-transaction.d.ts.map +1 -0
  111. package/lib/families/cardano/js-transaction.js +112 -0
  112. package/lib/families/cardano/js-transaction.js.map +1 -0
  113. package/lib/families/cardano/logic.d.ts +92 -0
  114. package/lib/families/cardano/logic.d.ts.map +1 -0
  115. package/lib/families/cardano/logic.js +378 -0
  116. package/lib/families/cardano/logic.js.map +1 -0
  117. package/lib/families/cardano/networks.d.ts +3 -0
  118. package/lib/families/cardano/networks.d.ts.map +1 -0
  119. package/lib/families/cardano/networks.js +34 -0
  120. package/lib/families/cardano/networks.js.map +1 -0
  121. package/lib/families/cardano/postSyncPatch.d.ts +7 -0
  122. package/lib/families/cardano/postSyncPatch.d.ts.map +1 -0
  123. package/lib/families/cardano/postSyncPatch.js +37 -0
  124. package/lib/families/cardano/postSyncPatch.js.map +1 -0
  125. package/lib/families/cardano/serialization.d.ts +4 -0
  126. package/lib/families/cardano/serialization.d.ts.map +1 -0
  127. package/lib/families/cardano/serialization.js +121 -0
  128. package/lib/families/cardano/serialization.js.map +1 -0
  129. package/lib/families/cardano/specs.d.ts +7 -0
  130. package/lib/families/cardano/specs.d.ts.map +1 -0
  131. package/lib/families/cardano/specs.js +83 -0
  132. package/lib/families/cardano/specs.js.map +1 -0
  133. package/lib/families/cardano/speculos-deviceActions.d.ts +7 -0
  134. package/lib/families/cardano/speculos-deviceActions.d.ts.map +1 -0
  135. package/lib/families/cardano/speculos-deviceActions.js +69 -0
  136. package/lib/families/cardano/speculos-deviceActions.js.map +1 -0
  137. package/lib/families/cardano/test-dataset.d.ts +5 -0
  138. package/lib/families/cardano/test-dataset.d.ts.map +1 -0
  139. package/lib/families/cardano/test-dataset.js +42 -0
  140. package/lib/families/cardano/test-dataset.js.map +1 -0
  141. package/lib/families/cardano/transaction.d.ts +12 -0
  142. package/lib/families/cardano/transaction.d.ts.map +1 -0
  143. package/lib/families/cardano/transaction.js +47 -0
  144. package/lib/families/cardano/transaction.js.map +1 -0
  145. package/lib/families/cardano/types.d.ts +152 -0
  146. package/lib/families/cardano/types.d.ts.map +1 -0
  147. package/lib/families/cardano/types.js +18 -0
  148. package/lib/families/cardano/types.js.map +1 -0
  149. package/lib/families/celo/js-synchronisation.d.ts +2 -2
  150. package/lib/families/cosmos/js-synchronisation.d.ts +2 -2
  151. package/lib/families/crypto_org/js-synchronisation.d.ts +2 -2
  152. package/lib/families/elrond/js-synchronisation.d.ts +2 -2
  153. package/lib/families/ethereum/hw-signMessage.d.ts.map +1 -1
  154. package/lib/families/ethereum/hw-signMessage.js +10 -4
  155. package/lib/families/ethereum/hw-signMessage.js.map +1 -1
  156. package/lib/families/filecoin/bridge/account.js +18 -14
  157. package/lib/families/filecoin/bridge/account.js.map +1 -1
  158. package/lib/families/filecoin/bridge/utils/types.d.ts +1 -1
  159. package/lib/families/filecoin/bridge/utils/types.d.ts.map +1 -1
  160. package/lib/families/filecoin/bridge/utils/utils.d.ts +1 -1
  161. package/lib/families/filecoin/bridge/utils/utils.d.ts.map +1 -1
  162. package/lib/families/filecoin/bridge/utils/utils.js +9 -8
  163. package/lib/families/filecoin/bridge/utils/utils.js.map +1 -1
  164. package/lib/families/filecoin/bridge.test.d.ts +2 -0
  165. package/lib/families/filecoin/bridge.test.d.ts.map +1 -0
  166. package/lib/families/filecoin/bridge.test.js +92 -0
  167. package/lib/families/filecoin/bridge.test.js.map +1 -0
  168. package/lib/families/filecoin/specs.d.ts.map +1 -1
  169. package/lib/families/filecoin/specs.js +1 -2
  170. package/lib/families/filecoin/specs.js.map +1 -1
  171. package/lib/families/filecoin/test-dataset.d.ts.map +1 -1
  172. package/lib/families/filecoin/test-dataset.js +8 -9
  173. package/lib/families/filecoin/test-dataset.js.map +1 -1
  174. package/lib/families/hedera/js-synchronisation.d.ts +2 -2
  175. package/lib/families/polkadot/js-synchronisation.d.ts +2 -2
  176. package/lib/families/ripple/js-synchronization.d.ts +2 -2
  177. package/lib/families/stellar/js-synchronization.d.ts +2 -2
  178. package/lib/generated/bridge/js.d.ts +4 -0
  179. package/lib/generated/bridge/js.d.ts.map +1 -1
  180. package/lib/generated/bridge/js.js +30 -28
  181. package/lib/generated/bridge/js.js.map +1 -1
  182. package/lib/generated/cli-transaction.d.ts +15 -0
  183. package/lib/generated/cli-transaction.d.ts.map +1 -1
  184. package/lib/generated/cli-transaction.js +28 -26
  185. package/lib/generated/cli-transaction.js.map +1 -1
  186. package/lib/generated/exchange.d.ts +1 -1
  187. package/lib/generated/hw-getAddress.d.ts +1 -0
  188. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  189. package/lib/generated/hw-getAddress.js +30 -28
  190. package/lib/generated/hw-getAddress.js.map +1 -1
  191. package/lib/generated/specs.d.ts +3 -0
  192. package/lib/generated/specs.d.ts.map +1 -1
  193. package/lib/generated/specs.js +28 -26
  194. package/lib/generated/specs.js.map +1 -1
  195. package/lib/generated/speculos-deviceActions.d.ts +3 -0
  196. package/lib/generated/speculos-deviceActions.d.ts.map +1 -1
  197. package/lib/generated/speculos-deviceActions.js +28 -26
  198. package/lib/generated/speculos-deviceActions.js.map +1 -1
  199. package/lib/generated/test-dataset.d.ts +1 -0
  200. package/lib/generated/test-dataset.d.ts.map +1 -1
  201. package/lib/generated/test-dataset.js +26 -24
  202. package/lib/generated/test-dataset.js.map +1 -1
  203. package/lib/generated/transaction.d.ts +5 -0
  204. package/lib/generated/transaction.d.ts.map +1 -1
  205. package/lib/generated/transaction.js +30 -28
  206. package/lib/generated/transaction.js.map +1 -1
  207. package/lib/generated/types.d.ts +4 -2
  208. package/lib/generated/types.d.ts.map +1 -1
  209. package/lib/reconciliation.d.ts.map +1 -1
  210. package/lib/reconciliation.js +6 -0
  211. package/lib/reconciliation.js.map +1 -1
  212. package/lib/types/account.d.ts +3 -0
  213. package/lib/types/account.d.ts.map +1 -1
  214. package/package.json +5 -3
  215. package/src/__tests__/test-helpers/setup.ts +2 -0
  216. package/src/account/serialization.ts +15 -0
  217. package/src/cross.ts +2 -1
  218. package/src/derivation.ts +19 -2
  219. package/src/env.ts +16 -1
  220. package/src/errors.ts +1 -0
  221. package/src/families/cardano/__snapshots__/bridge.test.ts.snap +1667 -0
  222. package/src/families/cardano/api/api-types.ts +33 -0
  223. package/src/families/cardano/api/getNetworkInfo.ts +38 -0
  224. package/src/families/cardano/api/getTransactions.ts +240 -0
  225. package/src/families/cardano/api/submitTransaction.ts +27 -0
  226. package/src/families/cardano/bridge/js.ts +35 -0
  227. package/src/families/cardano/bridge.test.ts +6 -0
  228. package/src/families/cardano/buildSubAccounts.ts +182 -0
  229. package/src/families/cardano/cli-transaction.ts +78 -0
  230. package/src/families/cardano/constants.ts +12 -0
  231. package/src/families/cardano/datasets/rawAccount.1.ts +28 -0
  232. package/src/families/cardano/datasets/scanAccounts.ts +23 -0
  233. package/src/families/cardano/errors.ts +8 -0
  234. package/src/families/cardano/hw-getAddress.ts +61 -0
  235. package/src/families/cardano/js-broadcast.ts +25 -0
  236. package/src/families/cardano/js-buildTransaction.ts +293 -0
  237. package/src/families/cardano/js-estimateMaxSpendable.ts +60 -0
  238. package/src/families/cardano/js-getFeesForTransaction.ts +25 -0
  239. package/src/families/cardano/js-getTransactionStatus.ts +123 -0
  240. package/src/families/cardano/js-signOperation.ts +265 -0
  241. package/src/families/cardano/js-synchronisation.ts +255 -0
  242. package/src/families/cardano/js-transaction.ts +69 -0
  243. package/src/families/cardano/logic.ts +454 -0
  244. package/src/families/cardano/networks.ts +33 -0
  245. package/src/families/cardano/postSyncPatch.ts +45 -0
  246. package/src/families/cardano/serialization.ts +179 -0
  247. package/src/families/cardano/specs.ts +96 -0
  248. package/src/families/cardano/speculos-deviceActions.ts +66 -0
  249. package/src/families/cardano/test-dataset.ts +41 -0
  250. package/src/families/cardano/transaction.ts +55 -0
  251. package/src/families/cardano/types.ts +178 -0
  252. package/src/families/ethereum/hw-signMessage.ts +9 -5
  253. package/src/families/filecoin/__snapshots__/bridge.test.ts.snap +87 -0
  254. package/src/families/filecoin/bridge/account.ts +20 -20
  255. package/src/families/filecoin/bridge/utils/types.ts +1 -1
  256. package/src/families/filecoin/bridge/utils/utils.ts +8 -7
  257. package/src/families/filecoin/bridge.test.ts +39 -0
  258. package/src/families/filecoin/specs.ts +1 -2
  259. package/src/families/filecoin/test-dataset.ts +19 -15
  260. package/src/generated/bridge/js.ts +3 -0
  261. package/src/generated/cli-transaction.ts +3 -0
  262. package/src/generated/hw-getAddress.ts +3 -0
  263. package/src/generated/specs.ts +3 -0
  264. package/src/generated/speculos-deviceActions.ts +3 -0
  265. package/src/generated/test-dataset.ts +3 -0
  266. package/src/generated/transaction.ts +3 -0
  267. package/src/generated/types.ts +4 -0
  268. package/src/reconciliation.ts +10 -0
  269. package/src/types/account.ts +6 -0
@@ -0,0 +1,12 @@
1
+ import { Transaction } from "./types";
2
+ import type { Account } from "../../types";
3
+ import { Transaction as TyphonTransaction } from "@stricahq/typhonjs";
4
+ /**
5
+ *
6
+ * @param {Account} a
7
+ * @param {Transaction} t
8
+ *
9
+ * @returns {TyphonTransaction}
10
+ */
11
+ export declare const buildTransaction: (a: Account, t: Transaction) => Promise<TyphonTransaction>;
12
+ //# sourceMappingURL=js-buildTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-buildTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/cardano/js-buildTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,WAAW,IAAI,iBAAiB,EAGjC,MAAM,oBAAoB,CAAC;AAyM5B;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,MACxB,OAAO,KACP,WAAW,KACb,QAAQ,iBAAiB,CAqE3B,CAAC"}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ exports.__esModule = true;
42
+ exports.buildTransaction = void 0;
43
+ var typhonjs_1 = require("@stricahq/typhonjs");
44
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
45
+ var logic_1 = require("./logic");
46
+ var networks_1 = require("./networks");
47
+ var buildSubAccounts_1 = require("./buildSubAccounts");
48
+ function getTyphonInputFromUtxo(utxo) {
49
+ var address = typhonjs_1.utils.getAddressFromHex(utxo.address);
50
+ if (address.paymentCredential.type === typhonjs_1.types.HashType.ADDRESS) {
51
+ address.paymentCredential.bipPath = utxo.paymentCredential.path;
52
+ }
53
+ return {
54
+ txId: utxo.hash,
55
+ index: utxo.index,
56
+ amount: new bignumber_js_1["default"](utxo.amount),
57
+ tokens: utxo.tokens,
58
+ address: address
59
+ };
60
+ }
61
+ var buildSendTokenTransaction = function (_a) {
62
+ var a = _a.a, t = _a.t, tokenAccount = _a.tokenAccount, typhonTx = _a.typhonTx, receiverAddress = _a.receiverAddress, changeAddress = _a.changeAddress;
63
+ return __awaiter(void 0, void 0, void 0, function () {
64
+ var cardanoResources, assetId, _b, policyId, assetName, transactionAmount, tokensToSend, tokenUtxos, otherUtxos, sortedTokenUtxo, sortedOtherUtxos, totalAddedTokenAmount, requiredMinAdaForTokens, i, u, sendingToken, i, u;
65
+ return __generator(this, function (_c) {
66
+ cardanoResources = a.cardanoResources;
67
+ assetId = (0, buildSubAccounts_1.decodeTokenCurrencyId)(tokenAccount.token.id).assetId;
68
+ _b = (0, buildSubAccounts_1.decodeTokenAssetId)(assetId), policyId = _b.policyId, assetName = _b.assetName;
69
+ transactionAmount = t.useAllAmount ? tokenAccount.balance : t.amount;
70
+ tokensToSend = [
71
+ {
72
+ policyId: policyId,
73
+ assetName: assetName,
74
+ amount: transactionAmount
75
+ },
76
+ ];
77
+ tokenUtxos = [];
78
+ otherUtxos = [];
79
+ cardanoResources.utxos.forEach(function (u) {
80
+ if (u.tokens.some(function (t) { return (0, buildSubAccounts_1.getTokenAssetId)(t) === assetId; })) {
81
+ tokenUtxos.push(u);
82
+ }
83
+ else {
84
+ otherUtxos.push(u);
85
+ }
86
+ });
87
+ sortedTokenUtxo = tokenUtxos.sort(function (a, b) {
88
+ var sendingTokenA = a.tokens.find(function (t) { return (0, buildSubAccounts_1.getTokenAssetId)(t) === assetId; });
89
+ var sendingTokenB = b.tokens.find(function (t) { return (0, buildSubAccounts_1.getTokenAssetId)(t) === assetId; });
90
+ var diff = sendingTokenB.amount.minus(sendingTokenA.amount);
91
+ return diff.eq(0) ? 0 : diff.lt(0) ? -1 : 1;
92
+ });
93
+ sortedOtherUtxos = otherUtxos.sort(function (a, b) {
94
+ var diff = b.amount.minus(a.amount);
95
+ return diff.eq(0) ? 0 : diff.lt(0) ? -1 : 1;
96
+ });
97
+ totalAddedTokenAmount = new bignumber_js_1["default"](0);
98
+ requiredMinAdaForTokens = typhonjs_1.utils.calculateMinUtxoAmount(tokensToSend, new bignumber_js_1["default"](cardanoResources.protocolParams.lovelacePerUtxoWord));
99
+ // Add enough utxo to cover token amount
100
+ for (i = 0; i < sortedTokenUtxo.length; i++) {
101
+ u = sortedTokenUtxo[i];
102
+ sendingToken = u.tokens.find(function (t) { return (0, buildSubAccounts_1.getTokenAssetId)(t) === assetId; });
103
+ typhonTx.addInput(getTyphonInputFromUtxo(u));
104
+ totalAddedTokenAmount.plus(sendingToken.amount);
105
+ if (totalAddedTokenAmount.gte(transactionAmount))
106
+ break;
107
+ }
108
+ // Add enough utxos to cover the transaction fees
109
+ for (i = 0; i < sortedOtherUtxos.length; i++) {
110
+ u = sortedOtherUtxos[i];
111
+ if (typhonTx.getInputAmount().ada.gte(requiredMinAdaForTokens.plus(5e6))) {
112
+ break;
113
+ }
114
+ typhonTx.addInput(getTyphonInputFromUtxo(u));
115
+ }
116
+ typhonTx.addOutput({
117
+ address: receiverAddress,
118
+ amount: requiredMinAdaForTokens,
119
+ tokens: tokensToSend
120
+ });
121
+ return [2 /*return*/, typhonTx.prepareTransaction({
122
+ inputs: [],
123
+ changeAddress: changeAddress
124
+ })];
125
+ });
126
+ });
127
+ };
128
+ var buildSendAdaTransaction = function (_a) {
129
+ var a = _a.a, t = _a.t, typhonTx = _a.typhonTx, receiverAddress = _a.receiverAddress, changeAddress = _a.changeAddress;
130
+ return __awaiter(void 0, void 0, void 0, function () {
131
+ var cardanoResources, protocolParams, tokenBalance, minAmountToSpendTokens, sortedUtxos, transactionInputs, usedUtxoAdaAmount, requiredInputAmount, i, utxo, transactionInput;
132
+ return __generator(this, function (_b) {
133
+ cardanoResources = a.cardanoResources;
134
+ protocolParams = cardanoResources.protocolParams;
135
+ if (t.useAllAmount) {
136
+ // add all utxo as input
137
+ cardanoResources.utxos.forEach(function (u) {
138
+ return typhonTx.addInput(getTyphonInputFromUtxo(u));
139
+ });
140
+ tokenBalance = (0, logic_1.mergeTokens)(cardanoResources.utxos.map(function (u) { return u.tokens; }).flat());
141
+ // if account holds any tokens then add it to changeAddress,
142
+ // with minimum required ADA to spend those tokens
143
+ if (tokenBalance.length) {
144
+ minAmountToSpendTokens = typhonjs_1.utils.calculateMinUtxoAmount(tokenBalance, new bignumber_js_1["default"](protocolParams.lovelacePerUtxoWord), false);
145
+ typhonTx.addOutput({
146
+ address: changeAddress,
147
+ amount: minAmountToSpendTokens,
148
+ tokens: tokenBalance
149
+ });
150
+ }
151
+ return [2 /*return*/, typhonTx.prepareTransaction({
152
+ inputs: [],
153
+ changeAddress: receiverAddress
154
+ })];
155
+ }
156
+ sortedUtxos = cardanoResources.utxos.sort(function (a, b) {
157
+ var diff = b.amount.minus(a.amount);
158
+ return diff.eq(0) ? 0 : diff.lt(0) ? -1 : 1;
159
+ });
160
+ transactionInputs = [];
161
+ usedUtxoAdaAmount = new bignumber_js_1["default"](0);
162
+ requiredInputAmount = t.amount.plus(5e6);
163
+ for (i = 0; i < sortedUtxos.length && usedUtxoAdaAmount.lte(requiredInputAmount); i++) {
164
+ utxo = sortedUtxos[i];
165
+ transactionInput = getTyphonInputFromUtxo(utxo);
166
+ transactionInputs.push(transactionInput);
167
+ usedUtxoAdaAmount.plus(transactionInput.amount);
168
+ }
169
+ typhonTx.addOutput({
170
+ address: receiverAddress,
171
+ amount: t.amount,
172
+ tokens: []
173
+ });
174
+ return [2 /*return*/, typhonTx.prepareTransaction({
175
+ inputs: transactionInputs,
176
+ changeAddress: changeAddress
177
+ })];
178
+ });
179
+ });
180
+ };
181
+ /**
182
+ *
183
+ * @param {Account} a
184
+ * @param {Transaction} t
185
+ *
186
+ * @returns {TyphonTransaction}
187
+ */
188
+ var buildTransaction = function (a, t) { return __awaiter(void 0, void 0, void 0, function () {
189
+ var cardanoResources, protocolParams, typhonTx, ttl, metadata, networkParams, receiverAddress, unusedInternalCred, changeAddress, tokenAccount;
190
+ return __generator(this, function (_a) {
191
+ cardanoResources = a.cardanoResources;
192
+ protocolParams = cardanoResources.protocolParams;
193
+ typhonTx = new typhonjs_1.Transaction({
194
+ protocolParams: {
195
+ minFeeA: new bignumber_js_1["default"](protocolParams.minFeeA),
196
+ minFeeB: new bignumber_js_1["default"](protocolParams.minFeeB),
197
+ stakeKeyDeposit: new bignumber_js_1["default"](protocolParams.stakeKeyDeposit),
198
+ lovelacePerUtxoWord: new bignumber_js_1["default"](protocolParams.lovelacePerUtxoWord),
199
+ collateralPercent: new bignumber_js_1["default"](protocolParams.collateralPercent),
200
+ priceSteps: new bignumber_js_1["default"](protocolParams.priceSteps),
201
+ priceMem: new bignumber_js_1["default"](protocolParams.priceMem),
202
+ languageView: protocolParams.languageView
203
+ }
204
+ });
205
+ ttl = (0, logic_1.getTTL)(a.currency.id);
206
+ typhonTx.setTTL(ttl);
207
+ metadata = [];
208
+ if (t.memo) {
209
+ metadata.push({
210
+ label: 674,
211
+ data: new Map([["msg", [t.memo]]])
212
+ });
213
+ }
214
+ if (metadata.length) {
215
+ typhonTx.setAuxiliaryData({ metadata: metadata });
216
+ }
217
+ networkParams = (0, networks_1.getNetworkParameters)(a.currency.id);
218
+ receiverAddress = typhonjs_1.utils.getAddressFromBech32(t.recipient);
219
+ unusedInternalCred = cardanoResources.internalCredentials.find(function (cred) { return !cred.isUsed; });
220
+ changeAddress = (0, logic_1.getBaseAddress)({
221
+ networkId: networkParams.networkId,
222
+ paymentCred: unusedInternalCred,
223
+ stakeCred: (0, logic_1.getAccountStakeCredential)(a.xpub, a.index)
224
+ });
225
+ if (t.subAccountId) {
226
+ tokenAccount = a.subAccounts
227
+ ? a.subAccounts.find(function (a) {
228
+ return a.id === t.subAccountId;
229
+ })
230
+ : undefined;
231
+ if (!tokenAccount || tokenAccount.type !== "TokenAccount") {
232
+ throw new Error("TokenAccount not found");
233
+ }
234
+ return [2 /*return*/, buildSendTokenTransaction({
235
+ a: a,
236
+ t: t,
237
+ tokenAccount: tokenAccount,
238
+ typhonTx: typhonTx,
239
+ receiverAddress: receiverAddress,
240
+ changeAddress: changeAddress
241
+ })];
242
+ }
243
+ return [2 /*return*/, buildSendAdaTransaction({
244
+ a: a,
245
+ t: t,
246
+ typhonTx: typhonTx,
247
+ receiverAddress: receiverAddress,
248
+ changeAddress: changeAddress
249
+ })];
250
+ });
251
+ }); };
252
+ exports.buildTransaction = buildTransaction;
253
+ //# sourceMappingURL=js-buildTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-buildTransaction.js","sourceRoot":"","sources":["../../../src/families/cardano/js-buildTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import type { AccountLike, Account } from "../../types";
3
+ import type { Transaction } from "./types";
4
+ /**
5
+ * Returns the maximum possible amount for transaction
6
+ *
7
+ * @param {Object} param - the account, parentAccount and transaction
8
+ */
9
+ declare const estimateMaxSpendable: ({ account, parentAccount, transaction, }: {
10
+ account: AccountLike;
11
+ parentAccount?: Account | undefined;
12
+ transaction?: Transaction | undefined;
13
+ }) => Promise<BigNumber>;
14
+ export default estimateMaxSpendable;
15
+ //# sourceMappingURL=js-estimateMaxSpendable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-estimateMaxSpendable.d.ts","sourceRoot":"","sources":["../../../src/families/cardano/js-estimateMaxSpendable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS3C;;;;GAIG;AACH,QAAA,MAAM,oBAAoB;aAKf,WAAW;;;MAGlB,QAAQ,SAAS,CA8BpB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ exports.__esModule = true;
50
+ var bignumber_js_1 = require("bignumber.js");
51
+ var account_1 = require("../../account");
52
+ var js_transaction_1 = require("./js-transaction");
53
+ var typhonjs_1 = require("@stricahq/typhonjs");
54
+ var js_buildTransaction_1 = require("./js-buildTransaction");
55
+ /**
56
+ * Returns the maximum possible amount for transaction
57
+ *
58
+ * @param {Object} param - the account, parentAccount and transaction
59
+ */
60
+ var estimateMaxSpendable = function (_a) {
61
+ var account = _a.account, parentAccount = _a.parentAccount, transaction = _a.transaction;
62
+ return __awaiter(void 0, void 0, void 0, function () {
63
+ var a, t, typhonTransaction, error_1, transactionAmount;
64
+ return __generator(this, function (_b) {
65
+ switch (_b.label) {
66
+ case 0:
67
+ if (account.type === "TokenAccount") {
68
+ return [2 /*return*/, account.balance];
69
+ }
70
+ a = (0, account_1.getMainAccount)(account, parentAccount);
71
+ t = __assign(__assign(__assign({}, (0, js_transaction_1.createTransaction)()), transaction), {
72
+ // amount field will not be used to build a transaction when useAllAmount is true
73
+ amount: new bignumber_js_1.BigNumber(0), useAllAmount: true });
74
+ _b.label = 1;
75
+ case 1:
76
+ _b.trys.push([1, 3, , 4]);
77
+ return [4 /*yield*/, (0, js_buildTransaction_1.buildTransaction)(a, t)];
78
+ case 2:
79
+ typhonTransaction = _b.sent();
80
+ return [3 /*break*/, 4];
81
+ case 3:
82
+ error_1 = _b.sent();
83
+ return [2 /*return*/, new bignumber_js_1.BigNumber(0)];
84
+ case 4:
85
+ transactionAmount = typhonTransaction
86
+ .getOutputs()
87
+ .filter(function (o) {
88
+ return !(o.address instanceof typhonjs_1.address.BaseAddress) ||
89
+ !(o.address.paymentCredential.type === typhonjs_1.types.HashType.ADDRESS) ||
90
+ o.address.paymentCredential.bipPath === undefined;
91
+ })
92
+ .reduce(function (total, o) { return total.plus(o.amount); }, new bignumber_js_1.BigNumber(0));
93
+ return [2 /*return*/, transactionAmount];
94
+ }
95
+ });
96
+ });
97
+ };
98
+ exports["default"] = estimateMaxSpendable;
99
+ //# sourceMappingURL=js-estimateMaxSpendable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/families/cardano/js-estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyC;AAGzC,yCAA+C;AAI/C,mDAAqD;AACrD,+CAG4B;AAC5B,6DAAyD;AAEzD;;;;GAIG;AACH,IAAM,oBAAoB,GAAG,UAAO,EAQnC;QAPC,OAAO,aAAA,EACP,aAAa,mBAAA,EACb,WAAW,iBAAA;;;;;;oBAMX,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;wBACnC,sBAAO,OAAO,CAAC,OAAO,EAAC;qBACxB;oBAEK,CAAC,GAAG,IAAA,wBAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBAC3C,CAAC,kCACF,IAAA,kCAAiB,GAAE,GACnB,WAAW;wBACd,iFAAiF;wBACjF,MAAM,EAAE,IAAI,wBAAS,CAAC,CAAC,CAAC,EACxB,YAAY,EAAE,IAAI,GACnB,CAAC;;;;oBAGoB,qBAAM,IAAA,sCAAgB,EAAC,CAAC,EAAE,CAAC,CAAC,EAAA;;oBAAhD,iBAAiB,GAAG,SAA4B,CAAC;;;;oBAEjD,sBAAO,IAAI,wBAAS,CAAC,CAAC,CAAC,EAAC;;oBAEpB,iBAAiB,GAAG,iBAAiB;yBACxC,UAAU,EAAE;yBACZ,MAAM,CACL,UAAC,CAAC;wBACA,OAAA,CAAC,CAAC,CAAC,CAAC,OAAO,YAAY,kBAAa,CAAC,WAAW,CAAC;4BACjD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,gBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;4BACpE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,KAAK,SAAS;oBAFjD,CAEiD,CACpD;yBACA,MAAM,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAApB,CAAoB,EAAE,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEhE,sBAAO,iBAAiB,EAAC;;;;CAC1B,CAAC;AAEF,qBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import type { Account } from "../../types";
3
+ import type { Transaction } from "./types";
4
+ /**
5
+ * Fetch the transaction fees for a transaction
6
+ *
7
+ * @param {Account} a
8
+ * @param {Transaction} t
9
+ */
10
+ declare const getEstimatedFees: ({ a, t, }: {
11
+ a: Account;
12
+ t: Transaction;
13
+ }) => Promise<BigNumber>;
14
+ export default getEstimatedFees;
15
+ //# sourceMappingURL=js-getFeesForTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-getFeesForTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/cardano/js-getFeesForTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB;OAIjB,OAAO;OACP,WAAW;MACZ,QAAQ,SAAS,CAGpB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
39
+ var js_buildTransaction_1 = require("./js-buildTransaction");
40
+ /**
41
+ * Fetch the transaction fees for a transaction
42
+ *
43
+ * @param {Account} a
44
+ * @param {Transaction} t
45
+ */
46
+ var getEstimatedFees = function (_a) {
47
+ var a = _a.a, t = _a.t;
48
+ return __awaiter(void 0, void 0, void 0, function () {
49
+ var unsigned;
50
+ return __generator(this, function (_b) {
51
+ switch (_b.label) {
52
+ case 0: return [4 /*yield*/, (0, js_buildTransaction_1.buildTransaction)(a, t)];
53
+ case 1:
54
+ unsigned = _b.sent();
55
+ return [2 /*return*/, unsigned.getFee()];
56
+ }
57
+ });
58
+ });
59
+ };
60
+ exports["default"] = getEstimatedFees;
61
+ //# sourceMappingURL=js-getFeesForTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-getFeesForTransaction.js","sourceRoot":"","sources":["../../../src/families/cardano/js-getFeesForTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,6DAAyD;AAEzD;;;;;GAKG;AACH,IAAM,gBAAgB,GAAG,UAAO,EAM/B;QALC,CAAC,OAAA,EACD,CAAC,OAAA;;;;;wBAKgB,qBAAM,IAAA,sCAAgB,EAAC,CAAC,EAAE,CAAC,CAAC,EAAA;;oBAAvC,QAAQ,GAAG,SAA4B;oBAC7C,sBAAO,QAAQ,CAAC,MAAM,EAAE,EAAC;;;;CAC1B,CAAC;AAEF,qBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Account, TransactionStatus } from "../../types";
2
+ import type { Transaction } from "./types";
3
+ declare const getTransactionStatus: (a: Account, t: Transaction) => Promise<TransactionStatus>;
4
+ export default getTransactionStatus;
5
+ //# sourceMappingURL=js-getTransactionStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-getTransactionStatus.d.ts","sourceRoot":"","sources":["../../../src/families/cardano/js-getTransactionStatus.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAA2B,WAAW,EAAE,MAAM,SAAS,CAAC;AAUpE,QAAA,MAAM,oBAAoB,MACrB,OAAO,KACP,WAAW,KACb,QAAQ,iBAAiB,CAkG3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}