@ledgerhq/live-common 21.34.0 → 21.34.1-cosmos.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 (137) hide show
  1. package/lib/account/support.js +1 -1
  2. package/lib/account/support.js.map +1 -1
  3. package/lib/cross.d.ts.map +1 -1
  4. package/lib/cross.js +2 -1
  5. package/lib/cross.js.map +1 -1
  6. package/lib/env.d.ts +10 -5
  7. package/lib/env.d.ts.map +1 -1
  8. package/lib/env.js +6 -1
  9. package/lib/env.js.map +1 -1
  10. package/lib/env.react.d.ts +1 -1
  11. package/lib/env.react.d.ts.map +1 -1
  12. package/lib/families/bitcoin/bridge/js.d.ts.map +1 -1
  13. package/lib/families/bitcoin/bridge/js.js.map +1 -1
  14. package/lib/families/cosmos/api/Cosmos.d.ts +14 -0
  15. package/lib/families/cosmos/api/Cosmos.d.ts.map +1 -0
  16. package/lib/families/cosmos/api/Cosmos.js +525 -0
  17. package/lib/families/cosmos/api/Cosmos.js.map +1 -0
  18. package/lib/families/cosmos/bridge/js.d.ts +8 -0
  19. package/lib/families/cosmos/bridge/js.d.ts.map +1 -0
  20. package/lib/families/cosmos/bridge/js.js +103 -0
  21. package/lib/families/cosmos/bridge/js.js.map +1 -0
  22. package/lib/families/cosmos/js-buildTransaction.d.ts +6 -0
  23. package/lib/families/cosmos/js-buildTransaction.d.ts.map +1 -0
  24. package/lib/families/cosmos/js-buildTransaction.js +239 -0
  25. package/lib/families/cosmos/js-buildTransaction.js.map +1 -0
  26. package/lib/families/cosmos/js-createTransaction.d.ts +9 -0
  27. package/lib/families/cosmos/js-createTransaction.d.ts.map +1 -0
  28. package/lib/families/cosmos/js-createTransaction.js +23 -0
  29. package/lib/families/cosmos/js-createTransaction.js.map +1 -0
  30. package/lib/families/cosmos/js-estimateMaxSpendable.d.ts +10 -0
  31. package/lib/families/cosmos/js-estimateMaxSpendable.d.ts.map +1 -0
  32. package/lib/families/cosmos/js-estimateMaxSpendable.js +78 -0
  33. package/lib/families/cosmos/js-estimateMaxSpendable.js.map +1 -0
  34. package/lib/families/cosmos/js-getTransactionStatus.d.ts +5 -0
  35. package/lib/families/cosmos/js-getTransactionStatus.d.ts.map +1 -0
  36. package/lib/families/cosmos/js-getTransactionStatus.js +267 -0
  37. package/lib/families/cosmos/js-getTransactionStatus.js.map +1 -0
  38. package/lib/families/cosmos/js-prepareTransaction.d.ts +14 -0
  39. package/lib/families/cosmos/js-prepareTransaction.d.ts.map +1 -0
  40. package/lib/families/cosmos/js-prepareTransaction.js +149 -0
  41. package/lib/families/cosmos/js-prepareTransaction.js.map +1 -0
  42. package/lib/families/cosmos/js-signOperation.d.ts +10 -0
  43. package/lib/families/cosmos/js-signOperation.d.ts.map +1 -0
  44. package/lib/families/cosmos/js-signOperation.js +182 -0
  45. package/lib/families/cosmos/js-signOperation.js.map +1 -0
  46. package/lib/families/cosmos/js-synchronisation.d.ts +5 -0
  47. package/lib/families/cosmos/js-synchronisation.d.ts.map +1 -0
  48. package/lib/families/cosmos/js-synchronisation.js +280 -0
  49. package/lib/families/cosmos/js-synchronisation.js.map +1 -0
  50. package/lib/families/cosmos/js-updateTransaction.d.ts +4 -0
  51. package/lib/families/cosmos/js-updateTransaction.d.ts.map +1 -0
  52. package/lib/families/cosmos/js-updateTransaction.js +26 -0
  53. package/lib/families/cosmos/js-updateTransaction.js.map +1 -0
  54. package/lib/families/cosmos/libcore-buildTransaction.d.ts.map +1 -1
  55. package/lib/families/cosmos/libcore-buildTransaction.js +5 -1
  56. package/lib/families/cosmos/libcore-buildTransaction.js.map +1 -1
  57. package/lib/families/cosmos/specs.d.ts.map +1 -1
  58. package/lib/families/cosmos/specs.js +44 -38
  59. package/lib/families/cosmos/specs.js.map +1 -1
  60. package/lib/families/cosmos/test-dataset.js +2 -2
  61. package/lib/families/cosmos/test-dataset.js.map +1 -1
  62. package/lib/families/cosmos/validators.d.ts.map +1 -1
  63. package/lib/families/cosmos/validators.js +61 -15
  64. package/lib/families/cosmos/validators.js.map +1 -1
  65. package/lib/families/filecoin/specs.d.ts.map +1 -1
  66. package/lib/families/filecoin/specs.js +19 -1
  67. package/lib/families/filecoin/specs.js.map +1 -1
  68. package/lib/families/filecoin/speculos-deviceActions.d.ts.map +1 -1
  69. package/lib/families/filecoin/speculos-deviceActions.js +12 -12
  70. package/lib/families/filecoin/speculos-deviceActions.js.map +1 -1
  71. package/lib/families/tezos/bridge/js.d.ts.map +1 -1
  72. package/lib/families/tezos/bridge/js.js +64 -72
  73. package/lib/families/tezos/bridge/js.js.map +1 -1
  74. package/lib/families/tezos/serialization.js +4 -4
  75. package/lib/families/tezos/serialization.js.map +1 -1
  76. package/lib/families/tezos/synchronisation.d.ts.map +1 -1
  77. package/lib/families/tezos/synchronisation.js +46 -35
  78. package/lib/families/tezos/synchronisation.js.map +1 -1
  79. package/lib/families/tezos/test-dataset.d.ts +1 -1
  80. package/lib/families/tezos/test-dataset.d.ts.map +1 -1
  81. package/lib/families/tezos/test-dataset.js +10 -51
  82. package/lib/families/tezos/test-dataset.js.map +1 -1
  83. package/lib/families/tezos/types.d.ts +0 -2
  84. package/lib/families/tezos/types.d.ts.map +1 -1
  85. package/lib/families/tezos/types.js.map +1 -1
  86. package/lib/generated/bridge/js.d.ts +4 -0
  87. package/lib/generated/bridge/js.d.ts.map +1 -1
  88. package/lib/generated/bridge/js.js +24 -22
  89. package/lib/generated/bridge/js.js.map +1 -1
  90. package/lib/hw/connectManager.d.ts.map +1 -1
  91. package/lib/hw/connectManager.js +1 -2
  92. package/lib/hw/connectManager.js.map +1 -1
  93. package/lib/hw/getDeviceInfo.d.ts.map +1 -1
  94. package/lib/hw/getDeviceInfo.js +5 -1
  95. package/lib/hw/getDeviceInfo.js.map +1 -1
  96. package/lib/types/manager.d.ts +1 -0
  97. package/lib/types/manager.d.ts.map +1 -1
  98. package/lib/types/manager.js.map +1 -1
  99. package/package.json +16 -12
  100. package/src/.DS_Store +0 -0
  101. package/src/__tests__/.DS_Store +0 -0
  102. package/src/__tests__/__snapshots__/all.libcore.ts.snap +875 -0
  103. package/src/account/support.ts +1 -1
  104. package/src/cross.ts +2 -1
  105. package/src/env.ts +6 -1
  106. package/src/families/bitcoin/bridge/js.ts +1 -0
  107. package/src/families/cosmos/api/Cosmos.ts +285 -0
  108. package/src/families/cosmos/bridge/js.ts +68 -0
  109. package/src/families/cosmos/js-buildTransaction.ts +233 -0
  110. package/src/families/cosmos/js-createTransaction.ts +23 -0
  111. package/src/families/cosmos/js-estimateMaxSpendable.ts +33 -0
  112. package/src/families/cosmos/js-getTransactionStatus.ts +292 -0
  113. package/src/families/cosmos/js-prepareTransaction.ts +131 -0
  114. package/src/families/cosmos/js-signOperation.ts +180 -0
  115. package/src/families/cosmos/js-synchronisation.ts +226 -0
  116. package/src/families/cosmos/js-updateTransaction.ts +21 -0
  117. package/src/families/cosmos/libcore-buildTransaction.ts +4 -1
  118. package/src/families/cosmos/specs.ts +54 -46
  119. package/src/families/cosmos/test-dataset.ts +2 -2
  120. package/src/families/cosmos/validators.ts +98 -77
  121. package/src/families/filecoin/specs.ts +18 -1
  122. package/src/families/filecoin/speculos-deviceActions.ts +4 -10
  123. package/src/families/tezos/README.md +28 -0
  124. package/src/families/tezos/bridge/js.ts +43 -39
  125. package/src/families/tezos/serialization.ts +4 -4
  126. package/src/families/tezos/synchronisation.ts +51 -39
  127. package/src/families/tezos/test-dataset.ts +13 -58
  128. package/src/families/tezos/types.ts +0 -2
  129. package/src/generated/bridge/js.ts +3 -0
  130. package/src/hw/connectManager.ts +1 -2
  131. package/src/hw/getDeviceInfo.ts +5 -1
  132. package/src/types/manager.ts +1 -0
  133. package/lib/families/tezos/synchronisation.test.d.ts +0 -3
  134. package/lib/families/tezos/synchronisation.test.d.ts.map +0 -1
  135. package/lib/families/tezos/synchronisation.test.js +0 -126
  136. package/lib/families/tezos/synchronisation.test.js.map +0 -1
  137. package/src/families/tezos/synchronisation.test.ts +0 -94
@@ -0,0 +1,267 @@
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 __read = (this && this.__read) || function (o, n) {
39
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
40
+ if (!m) return o;
41
+ var i = m.call(o), r, ar = [], e;
42
+ try {
43
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
+ }
45
+ catch (error) { e = { error: error }; }
46
+ finally {
47
+ try {
48
+ if (r && !r.done && (m = i["return"])) m.call(i);
49
+ }
50
+ finally { if (e) throw e.error; }
51
+ }
52
+ return ar;
53
+ };
54
+ var __importDefault = (this && this.__importDefault) || function (mod) {
55
+ return (mod && mod.__esModule) ? mod : { "default": mod };
56
+ };
57
+ exports.__esModule = true;
58
+ exports.getTransactionStatus = void 0;
59
+ var errors_1 = require("@ledgerhq/errors");
60
+ var errors_2 = require("../../errors");
61
+ var bignumber_js_1 = require("bignumber.js");
62
+ var logic_1 = require("./logic");
63
+ var invariant_1 = __importDefault(require("invariant"));
64
+ var Cosmos_1 = require("./api/Cosmos");
65
+ var getTransactionStatus = function (a, t) { return __awaiter(void 0, void 0, void 0, function () {
66
+ var errors, warnings, redelegationError, _a, first, unbondingError, validatorAmount, estimatedFees, totalSpent, cosmosResources, claimReward;
67
+ return __generator(this, function (_b) {
68
+ switch (_b.label) {
69
+ case 0:
70
+ if (!(t.mode === "send")) return [3 /*break*/, 2];
71
+ return [4 /*yield*/, getSendTransactionStatus(a, t)];
72
+ case 1:
73
+ // We isolate the send transaction that it's a little bit different from the rest
74
+ return [2 /*return*/, _b.sent()];
75
+ case 2:
76
+ if (!(t.mode === "delegate")) return [3 /*break*/, 4];
77
+ return [4 /*yield*/, getDelegateTransactionStatus(a, t)];
78
+ case 3: return [2 /*return*/, _b.sent()];
79
+ case 4:
80
+ errors = {};
81
+ warnings = {};
82
+ // here we only treat about all other mode than delegate and send
83
+ if (t.validators.some(function (v) { return !v.address || !v.address.includes("cosmosvaloper"); }) ||
84
+ t.validators.length === 0)
85
+ errors.recipient = new errors_1.InvalidAddress(undefined, {
86
+ currencyName: a.currency.name
87
+ });
88
+ if (t.mode === "redelegate") {
89
+ redelegationError = redelegationStatusError(a, t);
90
+ if (redelegationError) {
91
+ // Note : note sure if I have to put this error on this field
92
+ errors.redelegation = redelegationError;
93
+ }
94
+ }
95
+ else if (t.mode === "undelegate") {
96
+ (0, invariant_1["default"])(a.cosmosResources &&
97
+ a.cosmosResources.unbondings.length < logic_1.COSMOS_MAX_UNBONDINGS, "unbondings should not have more than 6 entries");
98
+ if (t.validators.length === 0)
99
+ errors.recipient = new errors_1.InvalidAddress(undefined, {
100
+ currencyName: a.currency.name
101
+ });
102
+ _a = __read(t.validators, 1), first = _a[0];
103
+ unbondingError = first && isDelegable(a, first.address, first.amount);
104
+ if (unbondingError) {
105
+ errors.unbonding = unbondingError;
106
+ }
107
+ }
108
+ validatorAmount = t.validators.reduce(function (old, current) { return old.plus(current.amount); }, new bignumber_js_1.BigNumber(0));
109
+ if (t.mode !== "claimReward" && validatorAmount.lte(0)) {
110
+ errors.amount = new errors_1.AmountRequired();
111
+ }
112
+ estimatedFees = t.fees || new bignumber_js_1.BigNumber(0);
113
+ if (!t.fees) {
114
+ errors.fees = new errors_1.FeeNotLoaded();
115
+ }
116
+ totalSpent = estimatedFees;
117
+ if (["claimReward", "claimRewardCompound"].includes(t.mode)) {
118
+ cosmosResources = a.cosmosResources;
119
+ (0, invariant_1["default"])(cosmosResources, "cosmosResources should exist");
120
+ claimReward = t.validators.length && cosmosResources
121
+ ? cosmosResources.delegations.find(function (delegation) {
122
+ return delegation.validatorAddress === t.validators[0].address;
123
+ })
124
+ : null;
125
+ if (claimReward && estimatedFees.gt(claimReward.pendingRewards)) {
126
+ warnings.claimReward = new errors_2.ClaimRewardsFeesWarning();
127
+ }
128
+ }
129
+ if (!errors.recipient &&
130
+ !errors.amount &&
131
+ (validatorAmount.lt(0) || totalSpent.gt(a.spendableBalance))) {
132
+ errors.amount = new errors_1.NotEnoughBalance();
133
+ totalSpent = new bignumber_js_1.BigNumber(0);
134
+ }
135
+ return [2 /*return*/, Promise.resolve({
136
+ errors: errors,
137
+ warnings: warnings,
138
+ estimatedFees: estimatedFees,
139
+ amount: new bignumber_js_1.BigNumber(0),
140
+ totalSpent: totalSpent
141
+ })];
142
+ }
143
+ });
144
+ }); };
145
+ exports.getTransactionStatus = getTransactionStatus;
146
+ var getDelegateTransactionStatus = function (a, t) { return __awaiter(void 0, void 0, void 0, function () {
147
+ var errors, warnings, amount, estimatedFees, totalSpent;
148
+ return __generator(this, function (_a) {
149
+ errors = {};
150
+ warnings = {};
151
+ if (t.validators.some(function (v) { return !v.address || !v.address.includes("cosmosvaloper"); }) ||
152
+ t.validators.length === 0)
153
+ errors.recipient = new errors_1.InvalidAddress(undefined, {
154
+ currencyName: a.currency.name
155
+ });
156
+ if (t.validators.length > logic_1.COSMOS_MAX_DELEGATIONS) {
157
+ errors.validators = new errors_2.CosmosTooManyValidators();
158
+ }
159
+ amount = t.validators.reduce(function (old, current) { return old.plus(current.amount); }, new bignumber_js_1.BigNumber(0));
160
+ if (amount.eq(0)) {
161
+ errors.amount = new errors_1.AmountRequired();
162
+ }
163
+ estimatedFees = t.fees || new bignumber_js_1.BigNumber(0);
164
+ if (!t.fees) {
165
+ errors.fees = new errors_1.FeeNotLoaded();
166
+ }
167
+ totalSpent = amount.plus(estimatedFees);
168
+ if (totalSpent.eq(a.spendableBalance)) {
169
+ warnings.delegate = new errors_2.CosmosDelegateAllFundsWarning();
170
+ }
171
+ if (!errors.recipient &&
172
+ !errors.amount &&
173
+ (amount.lt(0) || totalSpent.gt(a.spendableBalance))) {
174
+ errors.amount = new errors_1.NotEnoughBalance();
175
+ amount = new bignumber_js_1.BigNumber(0);
176
+ totalSpent = new bignumber_js_1.BigNumber(0);
177
+ }
178
+ return [2 /*return*/, Promise.resolve({
179
+ errors: errors,
180
+ warnings: warnings,
181
+ estimatedFees: estimatedFees,
182
+ amount: amount,
183
+ totalSpent: totalSpent
184
+ })];
185
+ });
186
+ }); };
187
+ var getSendTransactionStatus = function (a, t) { return __awaiter(void 0, void 0, void 0, function () {
188
+ var errors, warnings, amount, estimatedFees, totalSpent;
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0:
192
+ errors = {};
193
+ warnings = {};
194
+ if (!!t.recipient) return [3 /*break*/, 1];
195
+ errors.recipient = new errors_1.RecipientRequired("");
196
+ return [3 /*break*/, 4];
197
+ case 1:
198
+ if (!(a.freshAddress === t.recipient)) return [3 /*break*/, 2];
199
+ errors.recipient = new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
200
+ return [3 /*break*/, 4];
201
+ case 2: return [4 /*yield*/, (0, Cosmos_1.isValidRecipent)(t.recipient)];
202
+ case 3:
203
+ if (!(_a.sent())) {
204
+ errors.recipient = new errors_1.InvalidAddress(undefined, {
205
+ currencyName: a.currency.name
206
+ });
207
+ }
208
+ _a.label = 4;
209
+ case 4:
210
+ amount = t.amount;
211
+ if (amount.lte(0) && !t.useAllAmount) {
212
+ errors.amount = new errors_1.AmountRequired();
213
+ }
214
+ estimatedFees = t.fees || new bignumber_js_1.BigNumber(0);
215
+ if (!t.fees || !t.fees.gt(0)) {
216
+ errors.fees = new errors_1.FeeNotLoaded();
217
+ }
218
+ amount = t.useAllAmount ? (0, logic_1.getMaxEstimatedBalance)(a, estimatedFees) : amount;
219
+ totalSpent = amount.plus(estimatedFees);
220
+ if ((amount.lte(0) && t.useAllAmount) || // if use all Amount sets an amount at 0
221
+ (!errors.recipient && !errors.amount && totalSpent.gt(a.spendableBalance)) // if spendable balance lower than total
222
+ ) {
223
+ errors.amount = new errors_1.NotEnoughBalance();
224
+ }
225
+ if (a.cosmosResources &&
226
+ a.cosmosResources.delegations.length > 0 &&
227
+ t.useAllAmount) {
228
+ warnings.amount = new errors_1.RecommendUndelegation();
229
+ }
230
+ return [2 /*return*/, Promise.resolve({
231
+ errors: errors,
232
+ warnings: warnings,
233
+ estimatedFees: estimatedFees,
234
+ amount: amount,
235
+ totalSpent: totalSpent
236
+ })];
237
+ }
238
+ });
239
+ }); };
240
+ var redelegationStatusError = function (a, t) {
241
+ if (a.cosmosResources) {
242
+ var redelegations = a.cosmosResources.redelegations;
243
+ (0, invariant_1["default"])(redelegations.length < logic_1.COSMOS_MAX_REDELEGATIONS, "redelegation should not have more than 6 entries");
244
+ if (redelegations.some(function (redelegation) {
245
+ var dstValidator = redelegation.validatorDstAddress;
246
+ return (dstValidator === t.cosmosSourceValidator &&
247
+ redelegation.completionDate > new Date());
248
+ }))
249
+ return new errors_2.CosmosRedelegationInProgress();
250
+ if (t.cosmosSourceValidator === t.validators[0].address)
251
+ return new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
252
+ }
253
+ return isDelegable(a, t.cosmosSourceValidator, t.validators[0].amount);
254
+ };
255
+ var isDelegable = function (a, address, amount) {
256
+ var cosmosResources = a.cosmosResources;
257
+ (0, invariant_1["default"])(cosmosResources, "cosmosResources should exist");
258
+ if (cosmosResources &&
259
+ cosmosResources.delegations.some(function (delegation) {
260
+ return delegation.validatorAddress === address && delegation.amount.lt(amount);
261
+ })) {
262
+ return new errors_2.NotEnoughDelegationBalance();
263
+ }
264
+ return null;
265
+ };
266
+ exports["default"] = exports.getTransactionStatus;
267
+ //# sourceMappingURL=js-getTransactionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-getTransactionStatus.js","sourceRoot":"","sources":["../../../src/families/cosmos/js-getTransactionStatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Account } from "../../types";
2
+ import { Transaction } from "./types";
3
+ import BigNumber from "bignumber.js";
4
+ import { CacheRes } from "../../cache";
5
+ export declare const calculateFees: CacheRes<Array<{
6
+ account: Account;
7
+ transaction: Transaction;
8
+ }>, {
9
+ estimatedFees: BigNumber;
10
+ estimatedGas: BigNumber;
11
+ }>;
12
+ export declare const prepareTransaction: (account: Account, transaction: Transaction) => Promise<Transaction>;
13
+ export default prepareTransaction;
14
+ //# sourceMappingURL=js-prepareTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/cosmos/js-prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,SAAS,MAAM,cAAc,CAAC;AAMrC,OAAO,EAAE,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,aAAa,EAAE,QAAQ,CAClC,KAAK,CAAC;IACJ,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC,EACF;IACE,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;CACzB,CAqBF,CAAC;AA+CF,eAAO,MAAM,kBAAkB,YACpB,OAAO,eACH,WAAW,KACvB,QAAQ,WAAW,CAuCrB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,149 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ exports.__esModule = true;
53
+ exports.prepareTransaction = exports.calculateFees = void 0;
54
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
55
+ var Cosmos_1 = require("./api/Cosmos");
56
+ var proto_signing_1 = require("@cosmjs/proto-signing");
57
+ var env_1 = require("../../env");
58
+ var js_buildTransaction_1 = require("./js-buildTransaction");
59
+ var logic_1 = require("./logic");
60
+ var cache_1 = require("../../cache");
61
+ exports.calculateFees = (0, cache_1.makeLRUCache)(function (_a) {
62
+ var account = _a.account, transaction = _a.transaction;
63
+ return __awaiter(void 0, void 0, void 0, function () {
64
+ return __generator(this, function (_b) {
65
+ switch (_b.label) {
66
+ case 0: return [4 /*yield*/, getEstimatedFees(account, transaction)];
67
+ case 1: return [2 /*return*/, _b.sent()];
68
+ }
69
+ });
70
+ });
71
+ }, function (_a) {
72
+ var account = _a.account, transaction = _a.transaction;
73
+ return "".concat(account.id, "_").concat(account.currency.id, "_").concat(transaction.amount.toString(), "_").concat(transaction.recipient, "_").concat(String(transaction.useAllAmount), "_").concat(transaction.mode, "_").concat(transaction.validators
74
+ ? transaction.validators.map(function (v) { return v.address; }).join("-")
75
+ : "", "_").concat(transaction.memo ? transaction.memo.toString() : "", "_").concat(transaction.cosmosSourceValidator ? transaction.cosmosSourceValidator : "");
76
+ });
77
+ var getEstimatedFees = function (account, transaction) { return __awaiter(void 0, void 0, void 0, function () {
78
+ var gasQty, gasPrice, unsignedPayload, pubkey, tx_bytes, gasUsed, estimatedGas, estimatedFees;
79
+ return __generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0:
82
+ gasQty = new bignumber_js_1["default"](250000);
83
+ gasPrice = new bignumber_js_1["default"]((0, env_1.getEnv)("COSMOS_GAS_PRICE"));
84
+ return [4 /*yield*/, (0, js_buildTransaction_1.buildTransaction)(account, transaction)];
85
+ case 1:
86
+ unsignedPayload = _a.sent();
87
+ if (!unsignedPayload) return [3 /*break*/, 4];
88
+ pubkey = (0, proto_signing_1.encodePubkey)({
89
+ type: "tendermint/PubKeySecp256k1",
90
+ value: Buffer.from(account.seedIdentifier, "hex").toString("base64")
91
+ });
92
+ return [4 /*yield*/, (0, js_buildTransaction_1.postBuildTransaction)(account, transaction, pubkey, unsignedPayload, new Uint8Array(Buffer.from(account.seedIdentifier, "hex")))];
93
+ case 2:
94
+ tx_bytes = _a.sent();
95
+ return [4 /*yield*/, (0, Cosmos_1.simulate)(tx_bytes)];
96
+ case 3:
97
+ gasUsed = _a.sent();
98
+ if (gasUsed.gt(0)) {
99
+ gasQty = gasUsed
100
+ // Don't known what is going on,
101
+ // Ledger Live Desktop return half of what it should,
102
+ // Ledger Live Common CLI do the math correctly.
103
+ // Use coeff 2 as trick..
104
+ // .multipliedBy(new BigNumber(getEnv("COSMOS_GAS_AMPLIFIER")))
105
+ .multipliedBy(new bignumber_js_1["default"]((0, env_1.getEnv)("COSMOS_GAS_AMPLIFIER") * 2))
106
+ .integerValue();
107
+ }
108
+ _a.label = 4;
109
+ case 4:
110
+ estimatedGas = gasQty;
111
+ estimatedFees = gasPrice.multipliedBy(gasQty).integerValue();
112
+ return [2 /*return*/, { estimatedFees: estimatedFees, estimatedGas: estimatedGas }];
113
+ }
114
+ });
115
+ }); };
116
+ var prepareTransaction = function (account, transaction) { return __awaiter(void 0, void 0, void 0, function () {
117
+ var memo, amount, _a, estimatedFees, estimatedGas;
118
+ return __generator(this, function (_b) {
119
+ switch (_b.label) {
120
+ case 0:
121
+ memo = transaction.memo;
122
+ amount = transaction.amount;
123
+ if (transaction.mode !== "send" && !transaction.memo) {
124
+ memo = "Ledger Live";
125
+ }
126
+ return [4 /*yield*/, (0, exports.calculateFees)({
127
+ account: account,
128
+ transaction: __assign(__assign({}, transaction), { amount: transaction.useAllAmount
129
+ ? account.spendableBalance.minus(new bignumber_js_1["default"](2500))
130
+ : amount, memo: memo })
131
+ })];
132
+ case 1:
133
+ _a = _b.sent(), estimatedFees = _a.estimatedFees, estimatedGas = _a.estimatedGas;
134
+ if (transaction.useAllAmount) {
135
+ amount = (0, logic_1.getMaxEstimatedBalance)(account, estimatedFees);
136
+ }
137
+ if (transaction.memo !== memo ||
138
+ !estimatedFees.eq(transaction.fees || new bignumber_js_1["default"](0)) ||
139
+ !estimatedGas.eq(transaction.gas || new bignumber_js_1["default"](0)) ||
140
+ !amount.eq(transaction.amount)) {
141
+ return [2 /*return*/, __assign(__assign({}, transaction), { memo: memo, fees: estimatedFees, gas: estimatedGas, amount: amount })];
142
+ }
143
+ return [2 /*return*/, transaction];
144
+ }
145
+ });
146
+ }); };
147
+ exports.prepareTransaction = prepareTransaction;
148
+ exports["default"] = exports.prepareTransaction;
149
+ //# sourceMappingURL=js-prepareTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-prepareTransaction.js","sourceRoot":"","sources":["../../../src/families/cosmos/js-prepareTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Account, SignOperationEvent } from "../../types";
2
+ import type { Transaction } from "./types";
3
+ import { Observable } from "rxjs";
4
+ declare const signOperation: ({ account, deviceId, transaction, }: {
5
+ account: Account;
6
+ deviceId: any;
7
+ transaction: Transaction;
8
+ }) => Observable<SignOperationEvent>;
9
+ export default signOperation;
10
+ //# sourceMappingURL=js-signOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-signOperation.d.ts","sourceRoot":"","sources":["../../../src/families/cosmos/js-signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAYlC,QAAA,MAAM,aAAa;aAKR,OAAO;cACN,GAAG;iBACA,WAAW;MACtB,WAAW,kBAAkB,CAqJ9B,CAAC;AAEJ,eAAe,aAAa,CAAC"}