@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.
- package/lib/account/support.js +1 -1
- package/lib/account/support.js.map +1 -1
- package/lib/cross.d.ts.map +1 -1
- package/lib/cross.js +2 -1
- package/lib/cross.js.map +1 -1
- package/lib/env.d.ts +10 -5
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +6 -1
- package/lib/env.js.map +1 -1
- package/lib/env.react.d.ts +1 -1
- package/lib/env.react.d.ts.map +1 -1
- package/lib/families/bitcoin/bridge/js.d.ts.map +1 -1
- package/lib/families/bitcoin/bridge/js.js.map +1 -1
- package/lib/families/cosmos/api/Cosmos.d.ts +14 -0
- package/lib/families/cosmos/api/Cosmos.d.ts.map +1 -0
- package/lib/families/cosmos/api/Cosmos.js +525 -0
- package/lib/families/cosmos/api/Cosmos.js.map +1 -0
- package/lib/families/cosmos/bridge/js.d.ts +8 -0
- package/lib/families/cosmos/bridge/js.d.ts.map +1 -0
- package/lib/families/cosmos/bridge/js.js +103 -0
- package/lib/families/cosmos/bridge/js.js.map +1 -0
- package/lib/families/cosmos/js-buildTransaction.d.ts +6 -0
- package/lib/families/cosmos/js-buildTransaction.d.ts.map +1 -0
- package/lib/families/cosmos/js-buildTransaction.js +239 -0
- package/lib/families/cosmos/js-buildTransaction.js.map +1 -0
- package/lib/families/cosmos/js-createTransaction.d.ts +9 -0
- package/lib/families/cosmos/js-createTransaction.d.ts.map +1 -0
- package/lib/families/cosmos/js-createTransaction.js +23 -0
- package/lib/families/cosmos/js-createTransaction.js.map +1 -0
- package/lib/families/cosmos/js-estimateMaxSpendable.d.ts +10 -0
- package/lib/families/cosmos/js-estimateMaxSpendable.d.ts.map +1 -0
- package/lib/families/cosmos/js-estimateMaxSpendable.js +78 -0
- package/lib/families/cosmos/js-estimateMaxSpendable.js.map +1 -0
- package/lib/families/cosmos/js-getTransactionStatus.d.ts +5 -0
- package/lib/families/cosmos/js-getTransactionStatus.d.ts.map +1 -0
- package/lib/families/cosmos/js-getTransactionStatus.js +267 -0
- package/lib/families/cosmos/js-getTransactionStatus.js.map +1 -0
- package/lib/families/cosmos/js-prepareTransaction.d.ts +14 -0
- package/lib/families/cosmos/js-prepareTransaction.d.ts.map +1 -0
- package/lib/families/cosmos/js-prepareTransaction.js +149 -0
- package/lib/families/cosmos/js-prepareTransaction.js.map +1 -0
- package/lib/families/cosmos/js-signOperation.d.ts +10 -0
- package/lib/families/cosmos/js-signOperation.d.ts.map +1 -0
- package/lib/families/cosmos/js-signOperation.js +182 -0
- package/lib/families/cosmos/js-signOperation.js.map +1 -0
- package/lib/families/cosmos/js-synchronisation.d.ts +5 -0
- package/lib/families/cosmos/js-synchronisation.d.ts.map +1 -0
- package/lib/families/cosmos/js-synchronisation.js +280 -0
- package/lib/families/cosmos/js-synchronisation.js.map +1 -0
- package/lib/families/cosmos/js-updateTransaction.d.ts +4 -0
- package/lib/families/cosmos/js-updateTransaction.d.ts.map +1 -0
- package/lib/families/cosmos/js-updateTransaction.js +26 -0
- package/lib/families/cosmos/js-updateTransaction.js.map +1 -0
- package/lib/families/cosmos/libcore-buildTransaction.d.ts.map +1 -1
- package/lib/families/cosmos/libcore-buildTransaction.js +5 -1
- package/lib/families/cosmos/libcore-buildTransaction.js.map +1 -1
- package/lib/families/cosmos/specs.d.ts.map +1 -1
- package/lib/families/cosmos/specs.js +44 -38
- package/lib/families/cosmos/specs.js.map +1 -1
- package/lib/families/cosmos/test-dataset.js +2 -2
- package/lib/families/cosmos/test-dataset.js.map +1 -1
- package/lib/families/cosmos/validators.d.ts.map +1 -1
- package/lib/families/cosmos/validators.js +61 -15
- package/lib/families/cosmos/validators.js.map +1 -1
- package/lib/families/filecoin/specs.d.ts.map +1 -1
- package/lib/families/filecoin/specs.js +19 -1
- package/lib/families/filecoin/specs.js.map +1 -1
- package/lib/families/filecoin/speculos-deviceActions.d.ts.map +1 -1
- package/lib/families/filecoin/speculos-deviceActions.js +12 -12
- package/lib/families/filecoin/speculos-deviceActions.js.map +1 -1
- package/lib/families/tezos/bridge/js.d.ts.map +1 -1
- package/lib/families/tezos/bridge/js.js +64 -72
- package/lib/families/tezos/bridge/js.js.map +1 -1
- package/lib/families/tezos/serialization.js +4 -4
- package/lib/families/tezos/serialization.js.map +1 -1
- package/lib/families/tezos/synchronisation.d.ts.map +1 -1
- package/lib/families/tezos/synchronisation.js +46 -35
- package/lib/families/tezos/synchronisation.js.map +1 -1
- package/lib/families/tezos/test-dataset.d.ts +1 -1
- package/lib/families/tezos/test-dataset.d.ts.map +1 -1
- package/lib/families/tezos/test-dataset.js +10 -51
- package/lib/families/tezos/test-dataset.js.map +1 -1
- package/lib/families/tezos/types.d.ts +0 -2
- package/lib/families/tezos/types.d.ts.map +1 -1
- package/lib/families/tezos/types.js.map +1 -1
- package/lib/generated/bridge/js.d.ts +4 -0
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +24 -22
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/hw/connectManager.d.ts.map +1 -1
- package/lib/hw/connectManager.js +1 -2
- package/lib/hw/connectManager.js.map +1 -1
- package/lib/hw/getDeviceInfo.d.ts.map +1 -1
- package/lib/hw/getDeviceInfo.js +5 -1
- package/lib/hw/getDeviceInfo.js.map +1 -1
- package/lib/types/manager.d.ts +1 -0
- package/lib/types/manager.d.ts.map +1 -1
- package/lib/types/manager.js.map +1 -1
- package/package.json +16 -12
- package/src/.DS_Store +0 -0
- package/src/__tests__/.DS_Store +0 -0
- package/src/__tests__/__snapshots__/all.libcore.ts.snap +875 -0
- package/src/account/support.ts +1 -1
- package/src/cross.ts +2 -1
- package/src/env.ts +6 -1
- package/src/families/bitcoin/bridge/js.ts +1 -0
- package/src/families/cosmos/api/Cosmos.ts +285 -0
- package/src/families/cosmos/bridge/js.ts +68 -0
- package/src/families/cosmos/js-buildTransaction.ts +233 -0
- package/src/families/cosmos/js-createTransaction.ts +23 -0
- package/src/families/cosmos/js-estimateMaxSpendable.ts +33 -0
- package/src/families/cosmos/js-getTransactionStatus.ts +292 -0
- package/src/families/cosmos/js-prepareTransaction.ts +131 -0
- package/src/families/cosmos/js-signOperation.ts +180 -0
- package/src/families/cosmos/js-synchronisation.ts +226 -0
- package/src/families/cosmos/js-updateTransaction.ts +21 -0
- package/src/families/cosmos/libcore-buildTransaction.ts +4 -1
- package/src/families/cosmos/specs.ts +54 -46
- package/src/families/cosmos/test-dataset.ts +2 -2
- package/src/families/cosmos/validators.ts +98 -77
- package/src/families/filecoin/specs.ts +18 -1
- package/src/families/filecoin/speculos-deviceActions.ts +4 -10
- package/src/families/tezos/README.md +28 -0
- package/src/families/tezos/bridge/js.ts +43 -39
- package/src/families/tezos/serialization.ts +4 -4
- package/src/families/tezos/synchronisation.ts +51 -39
- package/src/families/tezos/test-dataset.ts +13 -58
- package/src/families/tezos/types.ts +0 -2
- package/src/generated/bridge/js.ts +3 -0
- package/src/hw/connectManager.ts +1 -2
- package/src/hw/getDeviceInfo.ts +5 -1
- package/src/types/manager.ts +1 -0
- package/lib/families/tezos/synchronisation.test.d.ts +0 -3
- package/lib/families/tezos/synchronisation.test.d.ts.map +0 -1
- package/lib/families/tezos/synchronisation.test.js +0 -126
- package/lib/families/tezos/synchronisation.test.js.map +0 -1
- 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"}
|