@ledgerhq/coin-polkadot 0.0.2
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/.eslintrc.js +57 -0
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +12 -0
- package/jest.config.js +10 -0
- package/lib/account.d.ts +15 -0
- package/lib/account.d.ts.map +1 -0
- package/lib/account.js +133 -0
- package/lib/account.js.map +1 -0
- package/lib/address.d.ts +7 -0
- package/lib/address.d.ts.map +1 -0
- package/lib/address.js +28 -0
- package/lib/address.js.map +1 -0
- package/lib/api/bisontrails.d.ts +11 -0
- package/lib/api/bisontrails.d.ts.map +1 -0
- package/lib/api/bisontrails.js +351 -0
- package/lib/api/bisontrails.js.map +1 -0
- package/lib/api/common.d.ts +12 -0
- package/lib/api/common.d.ts.map +1 -0
- package/lib/api/common.js +41 -0
- package/lib/api/common.js.map +1 -0
- package/lib/api/index.d.ts +3 -0
- package/lib/api/index.d.ts.map +1 -0
- package/lib/api/index.js +53 -0
- package/lib/api/index.js.map +1 -0
- package/lib/api/sidecar.d.ts +193 -0
- package/lib/api/sidecar.d.ts.map +1 -0
- package/lib/api/sidecar.js +844 -0
- package/lib/api/sidecar.js.map +1 -0
- package/lib/api/sidecar.types.d.ts +163 -0
- package/lib/api/sidecar.types.d.ts.map +1 -0
- package/lib/api/sidecar.types.js +3 -0
- package/lib/api/sidecar.types.js.map +1 -0
- package/lib/api/subscan.d.ts +6 -0
- package/lib/api/subscan.d.ts.map +1 -0
- package/lib/api/subscan.js +375 -0
- package/lib/api/subscan.js.map +1 -0
- package/lib/api/websocket.d.ts +92 -0
- package/lib/api/websocket.d.ts.map +1 -0
- package/lib/api/websocket.js +759 -0
- package/lib/api/websocket.js.map +1 -0
- package/lib/bridge/js.d.ts +6 -0
- package/lib/bridge/js.d.ts.map +1 -0
- package/lib/bridge/js.js +120 -0
- package/lib/bridge/js.js.map +1 -0
- package/lib/bridge.integration.test.d.ts +4 -0
- package/lib/bridge.integration.test.d.ts.map +1 -0
- package/lib/bridge.integration.test.js +795 -0
- package/lib/bridge.integration.test.js.map +1 -0
- package/lib/cache.d.ts +65 -0
- package/lib/cache.d.ts.map +1 -0
- package/lib/cache.js +182 -0
- package/lib/cache.js.map +1 -0
- package/lib/cli-transaction.d.ts +44 -0
- package/lib/cli-transaction.d.ts.map +1 -0
- package/lib/cli-transaction.js +148 -0
- package/lib/cli-transaction.js.map +1 -0
- package/lib/deviceTransactionConfig.d.ts +16 -0
- package/lib/deviceTransactionConfig.d.ts.map +1 -0
- package/lib/deviceTransactionConfig.js +171 -0
- package/lib/deviceTransactionConfig.js.map +1 -0
- package/lib/errors.d.ts +37 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +17 -0
- package/lib/errors.js.map +1 -0
- package/lib/hw-getAddress.d.ts +4 -0
- package/lib/hw-getAddress.d.ts.map +1 -0
- package/lib/hw-getAddress.js +64 -0
- package/lib/hw-getAddress.js.map +1 -0
- package/lib/js-buildTransaction.d.ts +25 -0
- package/lib/js-buildTransaction.d.ts.map +1 -0
- package/lib/js-buildTransaction.js +265 -0
- package/lib/js-buildTransaction.js.map +1 -0
- package/lib/js-createTransaction.d.ts +9 -0
- package/lib/js-createTransaction.d.ts.map +1 -0
- package/lib/js-createTransaction.js +22 -0
- package/lib/js-createTransaction.js.map +1 -0
- package/lib/js-estimateMaxSpendable.d.ts +15 -0
- package/lib/js-estimateMaxSpendable.d.ts.map +1 -0
- package/lib/js-estimateMaxSpendable.js +89 -0
- package/lib/js-estimateMaxSpendable.js.map +1 -0
- package/lib/js-getFeesForTransaction.d.ts +14 -0
- package/lib/js-getFeesForTransaction.d.ts.map +1 -0
- package/lib/js-getFeesForTransaction.js +94 -0
- package/lib/js-getFeesForTransaction.js.map +1 -0
- package/lib/js-getTransactionStatus.d.ts +18 -0
- package/lib/js-getTransactionStatus.d.ts.map +1 -0
- package/lib/js-getTransactionStatus.js +316 -0
- package/lib/js-getTransactionStatus.js.map +1 -0
- package/lib/js-prepareTransaction.d.ts +9 -0
- package/lib/js-prepareTransaction.d.ts.map +1 -0
- package/lib/js-prepareTransaction.js +83 -0
- package/lib/js-prepareTransaction.js.map +1 -0
- package/lib/js-signOperation.d.ts +27 -0
- package/lib/js-signOperation.d.ts.map +1 -0
- package/lib/js-signOperation.js +235 -0
- package/lib/js-signOperation.js.map +1 -0
- package/lib/js-synchronisation.d.ts +3 -0
- package/lib/js-synchronisation.d.ts.map +1 -0
- package/lib/js-synchronisation.js +104 -0
- package/lib/js-synchronisation.js.map +1 -0
- package/lib/logic.d.ts +107 -0
- package/lib/logic.d.ts.map +1 -0
- package/lib/logic.js +242 -0
- package/lib/logic.js.map +1 -0
- package/lib/platformAdapter.d.ts +11 -0
- package/lib/platformAdapter.d.ts.map +1 -0
- package/lib/platformAdapter.js +25 -0
- package/lib/platformAdapter.js.map +1 -0
- package/lib/platformAdapter.test.d.ts +2 -0
- package/lib/platformAdapter.test.d.ts.map +1 -0
- package/lib/platformAdapter.test.js +51 -0
- package/lib/platformAdapter.test.js.map +1 -0
- package/lib/polkadot-crypto.d.ts +2 -0
- package/lib/polkadot-crypto.d.ts.map +1 -0
- package/lib/polkadot-crypto.js +14 -0
- package/lib/polkadot-crypto.js.map +1 -0
- package/lib/preload.d.ts +14 -0
- package/lib/preload.d.ts.map +1 -0
- package/lib/preload.js +173 -0
- package/lib/preload.js.map +1 -0
- package/lib/serialization.d.ts +4 -0
- package/lib/serialization.d.ts.map +1 -0
- package/lib/serialization.js +51 -0
- package/lib/serialization.js.map +1 -0
- package/lib/specs.d.ts +7 -0
- package/lib/specs.d.ts.map +1 -0
- package/lib/specs.js +274 -0
- package/lib/specs.js.map +1 -0
- package/lib/speculos-deviceActions.d.ts +4 -0
- package/lib/speculos-deviceActions.d.ts.map +1 -0
- package/lib/speculos-deviceActions.js +85 -0
- package/lib/speculos-deviceActions.js.map +1 -0
- package/lib/transaction.d.ts +15 -0
- package/lib/transaction.d.ts.map +1 -0
- package/lib/transaction.js +51 -0
- package/lib/transaction.js.map +1 -0
- package/lib/types.d.ts +96 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/validators.d.ts +3 -0
- package/lib/validators.d.ts.map +1 -0
- package/lib/validators.js +7 -0
- package/lib/validators.js.map +1 -0
- package/package.json +95 -0
- package/src/account.ts +170 -0
- package/src/address.ts +28 -0
- package/src/api/bisontrails.ts +343 -0
- package/src/api/common.ts +52 -0
- package/src/api/index.ts +38 -0
- package/src/api/sidecar.ts +735 -0
- package/src/api/sidecar.types.ts +162 -0
- package/src/api/subscan.ts +362 -0
- package/src/api/websocket.ts +535 -0
- package/src/bridge/js.ts +81 -0
- package/src/bridge.integration.test.ts +764 -0
- package/src/cache.ts +202 -0
- package/src/cli-transaction.ts +184 -0
- package/src/deviceTransactionConfig.ts +209 -0
- package/src/errors.ts +39 -0
- package/src/hw-getAddress.ts +14 -0
- package/src/js-buildTransaction.ts +206 -0
- package/src/js-createTransaction.ts +22 -0
- package/src/js-estimateMaxSpendable.ts +37 -0
- package/src/js-getFeesForTransaction.ts +41 -0
- package/src/js-getTransactionStatus.ts +350 -0
- package/src/js-prepareTransaction.ts +27 -0
- package/src/js-signOperation.ts +232 -0
- package/src/js-synchronisation.ts +57 -0
- package/src/logic.ts +266 -0
- package/src/platformAdapter.test.ts +61 -0
- package/src/platformAdapter.ts +29 -0
- package/src/polkadot-crypto.ts +10 -0
- package/src/preload.ts +148 -0
- package/src/serialization.ts +48 -0
- package/src/specs.ts +305 -0
- package/src/speculos-deviceActions.ts +84 -0
- package/src/transaction.ts +64 -0
- package/src/types.ts +118 -0
- package/src/validators.ts +2 -0
- package/tsconfig.json +21 -0
package/lib/logic.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getMinimumBalance = exports.calculateAmount = exports.getNonce = exports.isFirstBond = exports.canNominate = exports.canUnbond = exports.hasLockedBalance = exports.hasMaxUnlockings = exports.hasPendingOperationType = exports.hasMinimumBondBalance = exports.getMinimumAmountToBond = exports.canBond = exports.hasExternalStash = exports.hasExternalController = exports.isController = exports.isStash = exports.FEES_SAFETY_BUFFER = exports.MAX_AMOUNT_INPUT = exports.PRELOAD_MAX_AGE = exports.MAX_UNLOCKINGS = exports.MAX_NOMINATIONS = exports.EXISTENTIAL_DEPOSIT_RECOMMENDED_MARGIN = exports.EXISTENTIAL_DEPOSIT = void 0;
|
|
4
|
+
var bignumber_js_1 = require("bignumber.js");
|
|
5
|
+
var preload_1 = require("./preload");
|
|
6
|
+
exports.EXISTENTIAL_DEPOSIT = new bignumber_js_1.BigNumber(10000000000);
|
|
7
|
+
exports.EXISTENTIAL_DEPOSIT_RECOMMENDED_MARGIN = new bignumber_js_1.BigNumber(1000000000); // Polkadot recommended Existential Deposit error margin
|
|
8
|
+
exports.MAX_NOMINATIONS = 16;
|
|
9
|
+
exports.MAX_UNLOCKINGS = 32;
|
|
10
|
+
exports.PRELOAD_MAX_AGE = 60 * 1000;
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-loss-of-precision
|
|
12
|
+
exports.MAX_AMOUNT_INPUT = 0xffffffffffffffff;
|
|
13
|
+
exports.FEES_SAFETY_BUFFER = new bignumber_js_1.BigNumber(1000000000); // Arbitrary buffer for paying fees of next transactions
|
|
14
|
+
/**
|
|
15
|
+
* Returns true if account is a stash.
|
|
16
|
+
* When the account is a stash, we have the information of which account is the controller
|
|
17
|
+
*
|
|
18
|
+
* @param {PolkadotAccount} a
|
|
19
|
+
*/
|
|
20
|
+
var isStash = function (a) {
|
|
21
|
+
var _a;
|
|
22
|
+
return !!((_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.controller);
|
|
23
|
+
};
|
|
24
|
+
exports.isStash = isStash;
|
|
25
|
+
/**
|
|
26
|
+
* Returns true if account is a controller.
|
|
27
|
+
* when account is a controller, we have the information of which stash it controls
|
|
28
|
+
*
|
|
29
|
+
* @param {PolkadotAccount} a
|
|
30
|
+
*/
|
|
31
|
+
var isController = function (a) {
|
|
32
|
+
var _a;
|
|
33
|
+
return !!((_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.stash);
|
|
34
|
+
};
|
|
35
|
+
exports.isController = isController;
|
|
36
|
+
/**
|
|
37
|
+
* Returns true if account is controlled by an external account (not self)
|
|
38
|
+
*
|
|
39
|
+
* @param {PolkadotAccount} a
|
|
40
|
+
*/
|
|
41
|
+
var hasExternalController = function (a) {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
return ((_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.controller)
|
|
44
|
+
? ((_b = a.polkadotResources) === null || _b === void 0 ? void 0 : _b.controller) !== a.freshAddress
|
|
45
|
+
: false;
|
|
46
|
+
};
|
|
47
|
+
exports.hasExternalController = hasExternalController;
|
|
48
|
+
/**
|
|
49
|
+
* Returns true if account controls an external stash (not self)
|
|
50
|
+
*
|
|
51
|
+
* @param {PolkadotAccount} a
|
|
52
|
+
*/
|
|
53
|
+
var hasExternalStash = function (a) {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
return ((_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.stash)
|
|
56
|
+
? ((_b = a.polkadotResources) === null || _b === void 0 ? void 0 : _b.stash) !== a.freshAddress
|
|
57
|
+
: false;
|
|
58
|
+
};
|
|
59
|
+
exports.hasExternalStash = hasExternalStash;
|
|
60
|
+
/**
|
|
61
|
+
* Must have the minimum balance to bond
|
|
62
|
+
*
|
|
63
|
+
* @param {PolkadotAccount} a
|
|
64
|
+
*/
|
|
65
|
+
var canBond = function (a) {
|
|
66
|
+
var balance = a.balance;
|
|
67
|
+
return exports.EXISTENTIAL_DEPOSIT.lte(balance);
|
|
68
|
+
};
|
|
69
|
+
exports.canBond = canBond;
|
|
70
|
+
/**
|
|
71
|
+
* Get the minimum bond amount required to bond/rebond
|
|
72
|
+
*
|
|
73
|
+
* @param {PolkadotAccount} a
|
|
74
|
+
*/
|
|
75
|
+
var getMinimumAmountToBond = function (a, minimumBondBalance) {
|
|
76
|
+
var currentlyBondedBalance = calculateMaxUnbond(a);
|
|
77
|
+
if (minimumBondBalance && currentlyBondedBalance.lt(minimumBondBalance)) {
|
|
78
|
+
return minimumBondBalance.minus(currentlyBondedBalance);
|
|
79
|
+
}
|
|
80
|
+
return new bignumber_js_1.BigNumber(0);
|
|
81
|
+
};
|
|
82
|
+
exports.getMinimumAmountToBond = getMinimumAmountToBond;
|
|
83
|
+
/**
|
|
84
|
+
* Return true if the account has at least the current minimum bonded balance required by the network
|
|
85
|
+
*
|
|
86
|
+
* @param {PolkadotAccount} a
|
|
87
|
+
*/
|
|
88
|
+
var hasMinimumBondBalance = function (a) {
|
|
89
|
+
var minimumBondBalance = (0, preload_1.getCurrentPolkadotPreloadData)().minimumBondBalance;
|
|
90
|
+
return (!a.polkadotResources ||
|
|
91
|
+
a.polkadotResources.lockedBalance.gte(new bignumber_js_1.BigNumber(minimumBondBalance)));
|
|
92
|
+
};
|
|
93
|
+
exports.hasMinimumBondBalance = hasMinimumBondBalance;
|
|
94
|
+
/**
|
|
95
|
+
* Return true if some operation with type is pending and not yet synchronized
|
|
96
|
+
*
|
|
97
|
+
* @param {PolkadotAccount} a
|
|
98
|
+
*/
|
|
99
|
+
var hasPendingOperationType = function (a, type) {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
return (_b = (_a = a.pendingOperations) === null || _a === void 0 ? void 0 : _a.some(function (op) { return op.type === type; })) !== null && _b !== void 0 ? _b : false;
|
|
102
|
+
};
|
|
103
|
+
exports.hasPendingOperationType = hasPendingOperationType;
|
|
104
|
+
/**
|
|
105
|
+
* Retyrns true if has reached the maximum of unlocking slots
|
|
106
|
+
*
|
|
107
|
+
* @param {PolkadotAccount} a
|
|
108
|
+
*/
|
|
109
|
+
var hasMaxUnlockings = function (a) {
|
|
110
|
+
var _a = (a.polkadotResources || {}).unlockings, unlockings = _a === void 0 ? [] : _a;
|
|
111
|
+
return ((unlockings === null || unlockings === void 0 ? void 0 : unlockings.length) || 0) >= exports.MAX_UNLOCKINGS;
|
|
112
|
+
};
|
|
113
|
+
exports.hasMaxUnlockings = hasMaxUnlockings;
|
|
114
|
+
/**
|
|
115
|
+
* Return true if account has enough Locked Balance to rebond
|
|
116
|
+
*
|
|
117
|
+
* @param {PolkadotAccount} a
|
|
118
|
+
*/
|
|
119
|
+
var hasLockedBalance = function (a) {
|
|
120
|
+
var _a = a.polkadotResources || {}, _b = _a.lockedBalance, lockedBalance = _b === void 0 ? new bignumber_js_1.BigNumber(0) : _b, _c = _a.unlockingBalance, unlockingBalance = _c === void 0 ? new bignumber_js_1.BigNumber(0) : _c;
|
|
121
|
+
return lockedBalance.minus(unlockingBalance).gt(0);
|
|
122
|
+
};
|
|
123
|
+
exports.hasLockedBalance = hasLockedBalance;
|
|
124
|
+
/**
|
|
125
|
+
* Must have locked Balance
|
|
126
|
+
*
|
|
127
|
+
* @param {PolkadotAccount} a
|
|
128
|
+
*/
|
|
129
|
+
var canUnbond = function (a) {
|
|
130
|
+
return (0, exports.hasLockedBalance)(a) && !(0, exports.hasMaxUnlockings)(a);
|
|
131
|
+
};
|
|
132
|
+
exports.canUnbond = canUnbond;
|
|
133
|
+
/**
|
|
134
|
+
* Returns true if an account can nominate
|
|
135
|
+
*
|
|
136
|
+
* @param {PolkadotAccount} a
|
|
137
|
+
*/
|
|
138
|
+
var canNominate = function (a) { return (0, exports.isController)(a); };
|
|
139
|
+
exports.canNominate = canNominate;
|
|
140
|
+
/**
|
|
141
|
+
* Returns true if account must do a first bond - false for a bond extra
|
|
142
|
+
*
|
|
143
|
+
* @param {Account} a
|
|
144
|
+
*/
|
|
145
|
+
var isFirstBond = function (a) { return !(0, exports.isStash)(a); };
|
|
146
|
+
exports.isFirstBond = isFirstBond;
|
|
147
|
+
/**
|
|
148
|
+
* Returns nonce for an account
|
|
149
|
+
*
|
|
150
|
+
* @param {Account} a
|
|
151
|
+
*/
|
|
152
|
+
var getNonce = function (a) {
|
|
153
|
+
var _a;
|
|
154
|
+
var lastPendingOp = a.pendingOperations[0];
|
|
155
|
+
var nonce = Math.max(((_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.nonce) || 0, lastPendingOp && typeof lastPendingOp.transactionSequenceNumber === "number"
|
|
156
|
+
? lastPendingOp.transactionSequenceNumber + 1
|
|
157
|
+
: 0);
|
|
158
|
+
return nonce;
|
|
159
|
+
};
|
|
160
|
+
exports.getNonce = getNonce;
|
|
161
|
+
/**
|
|
162
|
+
* Calculate max bond which is the actual spendable minus a safety buffer,
|
|
163
|
+
* so the user still has funds to pay the fees for next transactions
|
|
164
|
+
*
|
|
165
|
+
* @param {*} a
|
|
166
|
+
* @param {*} t
|
|
167
|
+
*/
|
|
168
|
+
var calculateMaxBond = function (a, t) {
|
|
169
|
+
var amount = a.spendableBalance
|
|
170
|
+
.minus(t.fees || 0)
|
|
171
|
+
.minus(exports.FEES_SAFETY_BUFFER);
|
|
172
|
+
return amount.lt(0) ? new bignumber_js_1.BigNumber(0) : amount;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Calculates max unbond amount which is the remaining active locked balance (not unlocking)
|
|
176
|
+
*
|
|
177
|
+
* @param {*} account
|
|
178
|
+
*/
|
|
179
|
+
var calculateMaxUnbond = function (a) {
|
|
180
|
+
var _a, _b;
|
|
181
|
+
return ((_b = (_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.lockedBalance.minus(a.polkadotResources.unlockingBalance)) !== null && _b !== void 0 ? _b : new bignumber_js_1.BigNumber(0));
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Calculates max rebond amount which is the current unlocking balance (including unlocked)
|
|
185
|
+
*
|
|
186
|
+
* @param {*} account
|
|
187
|
+
*/
|
|
188
|
+
var calculateMaxRebond = function (a) {
|
|
189
|
+
var _a, _b;
|
|
190
|
+
return (_b = (_a = a.polkadotResources) === null || _a === void 0 ? void 0 : _a.unlockingBalance) !== null && _b !== void 0 ? _b : new bignumber_js_1.BigNumber(0);
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Calculate the real spendable
|
|
194
|
+
*
|
|
195
|
+
* @param {*} a
|
|
196
|
+
* @param {*} t
|
|
197
|
+
*/
|
|
198
|
+
var calculateMaxSend = function (a, t) {
|
|
199
|
+
var amount = a.spendableBalance.minus(t.fees || 0);
|
|
200
|
+
return amount.lt(0) ? new bignumber_js_1.BigNumber(0) : amount;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Calculates correct amount if useAllAmount
|
|
204
|
+
*
|
|
205
|
+
* @param {*} param
|
|
206
|
+
*/
|
|
207
|
+
var calculateAmount = function (_a) {
|
|
208
|
+
var a = _a.a, t = _a.t;
|
|
209
|
+
var amount = t.amount;
|
|
210
|
+
if (t.useAllAmount) {
|
|
211
|
+
switch (t.mode) {
|
|
212
|
+
case "send":
|
|
213
|
+
amount = calculateMaxSend(a, t);
|
|
214
|
+
break;
|
|
215
|
+
case "bond":
|
|
216
|
+
amount = calculateMaxBond(a, t);
|
|
217
|
+
break;
|
|
218
|
+
case "unbond":
|
|
219
|
+
amount = calculateMaxUnbond(a);
|
|
220
|
+
break;
|
|
221
|
+
case "rebond":
|
|
222
|
+
amount = calculateMaxRebond(a);
|
|
223
|
+
break;
|
|
224
|
+
default:
|
|
225
|
+
amount = a.spendableBalance.minus(t.fees || 0);
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
else if (t.amount.gt(exports.MAX_AMOUNT_INPUT)) {
|
|
230
|
+
return new bignumber_js_1.BigNumber(exports.MAX_AMOUNT_INPUT);
|
|
231
|
+
}
|
|
232
|
+
return amount.lt(0) ? new bignumber_js_1.BigNumber(0) : amount;
|
|
233
|
+
};
|
|
234
|
+
exports.calculateAmount = calculateAmount;
|
|
235
|
+
var getMinimumBalance = function (a) {
|
|
236
|
+
var lockedBalance = a.balance.minus(a.spendableBalance);
|
|
237
|
+
return lockedBalance.lte(exports.EXISTENTIAL_DEPOSIT)
|
|
238
|
+
? exports.EXISTENTIAL_DEPOSIT.minus(lockedBalance)
|
|
239
|
+
: new bignumber_js_1.BigNumber(0);
|
|
240
|
+
};
|
|
241
|
+
exports.getMinimumBalance = getMinimumBalance;
|
|
242
|
+
//# sourceMappingURL=logic.js.map
|
package/lib/logic.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PolkadotTransaction as PlatformTransaction } from "@ledgerhq/live-app-sdk";
|
|
2
|
+
import { Transaction } from "./types";
|
|
3
|
+
declare const _default: {
|
|
4
|
+
getPlatformTransactionSignFlowInfos: (tx: PlatformTransaction) => {
|
|
5
|
+
canEditFees: boolean;
|
|
6
|
+
hasFeesProvided: boolean;
|
|
7
|
+
liveTx: Partial<Transaction>;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=platformAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAdapter.d.ts","sourceRoot":"","sources":["../src/platformAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;;;;;;;;AAyBtC,wBAAuD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// TODO: to remove once live-app-sdk is depreciated and removed from LL
|
|
3
|
+
var __assign = (this && this.__assign) || function () {
|
|
4
|
+
__assign = Object.assign || function(t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
+
t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
return __assign.apply(this, arguments);
|
|
13
|
+
};
|
|
14
|
+
exports.__esModule = true;
|
|
15
|
+
var CAN_EDIT_FEES = false;
|
|
16
|
+
var convertToLiveTransaction = function (tx) { return (__assign(__assign({}, tx), { era: tx.era ? "".concat(tx.era) : undefined })); };
|
|
17
|
+
var getPlatformTransactionSignFlowInfos = function (tx) {
|
|
18
|
+
return {
|
|
19
|
+
canEditFees: CAN_EDIT_FEES,
|
|
20
|
+
liveTx: convertToLiveTransaction(tx),
|
|
21
|
+
hasFeesProvided: false
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports["default"] = { getPlatformTransactionSignFlowInfos: getPlatformTransactionSignFlowInfos };
|
|
25
|
+
//# sourceMappingURL=platformAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAdapter.js","sourceRoot":"","sources":["../src/platformAdapter.ts"],"names":[],"mappings":";AAAA,uEAAuE;;;;;;;;;;;;;AAKvE,IAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,IAAM,wBAAwB,GAAG,UAC/B,EAAuB,IACE,OAAA,uBACtB,EAAE,KACL,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,UAAG,EAAE,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,SAAS,IACrC,EAHyB,CAGzB,CAAC;AAEH,IAAM,mCAAmC,GAAG,UAC1C,EAAuB;IAMvB,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACpC,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,qBAAe,EAAE,mCAAmC,qCAAA,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAdapter.test.d.ts","sourceRoot":"","sources":["../src/platformAdapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
var platformAdapter_1 = __importDefault(require("./platformAdapter"));
|
|
7
|
+
var live_app_sdk_1 = require("@ledgerhq/live-app-sdk");
|
|
8
|
+
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
+
describe("getPlatformTransactionSignFlowInfos", function () {
|
|
10
|
+
describe("should properly get infos for DOT platform tx", function () {
|
|
11
|
+
it("with most basic tx", function () {
|
|
12
|
+
var dotPlatformTx = {
|
|
13
|
+
family: live_app_sdk_1.FAMILIES.POLKADOT,
|
|
14
|
+
amount: new bignumber_js_1["default"](100000),
|
|
15
|
+
recipient: "0xABCDEF",
|
|
16
|
+
mode: "send"
|
|
17
|
+
};
|
|
18
|
+
var expectedLiveTx = {
|
|
19
|
+
family: dotPlatformTx.family,
|
|
20
|
+
amount: dotPlatformTx.amount,
|
|
21
|
+
recipient: dotPlatformTx.recipient,
|
|
22
|
+
mode: dotPlatformTx.mode
|
|
23
|
+
};
|
|
24
|
+
var _a = platformAdapter_1["default"].getPlatformTransactionSignFlowInfos(dotPlatformTx), canEditFees = _a.canEditFees, hasFeesProvided = _a.hasFeesProvided, liveTx = _a.liveTx;
|
|
25
|
+
expect(canEditFees).toBe(false);
|
|
26
|
+
expect(hasFeesProvided).toBe(false);
|
|
27
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
28
|
+
});
|
|
29
|
+
it("with era provided", function () {
|
|
30
|
+
var dotPlatformTx = {
|
|
31
|
+
family: live_app_sdk_1.FAMILIES.POLKADOT,
|
|
32
|
+
amount: new bignumber_js_1["default"](100000),
|
|
33
|
+
recipient: "0xABCDEF",
|
|
34
|
+
mode: "send",
|
|
35
|
+
era: 1
|
|
36
|
+
};
|
|
37
|
+
var expectedLiveTx = {
|
|
38
|
+
family: dotPlatformTx.family,
|
|
39
|
+
amount: dotPlatformTx.amount,
|
|
40
|
+
recipient: dotPlatformTx.recipient,
|
|
41
|
+
mode: dotPlatformTx.mode,
|
|
42
|
+
era: "".concat(dotPlatformTx.era)
|
|
43
|
+
};
|
|
44
|
+
var _a = platformAdapter_1["default"].getPlatformTransactionSignFlowInfos(dotPlatformTx), canEditFees = _a.canEditFees, hasFeesProvided = _a.hasFeesProvided, liveTx = _a.liveTx;
|
|
45
|
+
expect(canEditFees).toBe(false);
|
|
46
|
+
expect(hasFeesProvided).toBe(false);
|
|
47
|
+
expect(liveTx).toEqual(expectedLiveTx);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=platformAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformAdapter.test.js","sourceRoot":"","sources":["../src/platformAdapter.test.ts"],"names":[],"mappings":";;;;;AAAA,sEAAoC;AAEpC,uDAAkD;AAClD,8DAAqC;AAGrC,QAAQ,CAAC,qCAAqC,EAAE;IAC9C,QAAQ,CAAC,+CAA+C,EAAE;QACxD,EAAE,CAAC,oBAAoB,EAAE;YACvB,IAAM,aAAa,GAAwB;gBACzC,MAAM,EAAE,uBAAQ,CAAC,QAAQ;gBACzB,MAAM,EAAE,IAAI,yBAAS,CAAC,MAAM,CAAC;gBAC7B,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM;aACb,CAAC;YAEF,IAAM,cAAc,GAAyB;gBAC3C,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,IAAI,EAAE,aAAa,CAAC,IAAI;aACzB,CAAC;YAEI,IAAA,KACJ,4BAAG,CAAC,mCAAmC,CAAC,aAAa,CAAC,EADhD,WAAW,iBAAA,EAAE,eAAe,qBAAA,EAAE,MAAM,YACY,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE;YACtB,IAAM,aAAa,GAAwB;gBACzC,MAAM,EAAE,uBAAQ,CAAC,QAAQ;gBACzB,MAAM,EAAE,IAAI,yBAAS,CAAC,MAAM,CAAC;gBAC7B,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,CAAC;aACP,CAAC;YAEF,IAAM,cAAc,GAAyB;gBAC3C,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,GAAG,EAAE,UAAG,aAAa,CAAC,GAAG,CAAE;aAC5B,CAAC;YAEI,IAAA,KACJ,4BAAG,CAAC,mCAAmC,CAAC,aAAa,CAAC,EADhD,WAAW,iBAAA,EAAE,eAAe,qBAAA,EAAE,MAAM,YACY,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polkadot-crypto.d.ts","sourceRoot":"","sources":["../src/polkadot-crypto.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAKrD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.loadPolkadotCrypto = void 0;
|
|
4
|
+
var util_crypto_1 = require("@polkadot/util-crypto");
|
|
5
|
+
var loadingPromise;
|
|
6
|
+
function loadPolkadotCrypto() {
|
|
7
|
+
if (loadingPromise)
|
|
8
|
+
return loadingPromise;
|
|
9
|
+
var p = (0, util_crypto_1.cryptoWaitReady)();
|
|
10
|
+
loadingPromise = p;
|
|
11
|
+
return p;
|
|
12
|
+
}
|
|
13
|
+
exports.loadPolkadotCrypto = loadPolkadotCrypto;
|
|
14
|
+
//# sourceMappingURL=polkadot-crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polkadot-crypto.js","sourceRoot":"","sources":["../src/polkadot-crypto.ts"],"names":[],"mappings":";;;AAAA,qDAAwD;AAExD,IAAI,cAAuC,CAAC;AAE5C,SAAgB,kBAAkB;IAChC,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,IAAM,CAAC,GAAG,IAAA,6BAAe,GAAE,CAAC;IAC5B,cAAc,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC;AALD,gDAKC"}
|
package/lib/preload.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import type { PolkadotPreloadData } from "./types";
|
|
3
|
+
export declare function getCurrentPolkadotPreloadData(): PolkadotPreloadData;
|
|
4
|
+
export declare function setPolkadotPreloadData(data: PolkadotPreloadData): void;
|
|
5
|
+
export declare function getPolkadotPreloadDataUpdates(): Observable<PolkadotPreloadData>;
|
|
6
|
+
/**
|
|
7
|
+
* load max cache time for the validators
|
|
8
|
+
*/
|
|
9
|
+
export declare const getPreloadStrategy: () => {
|
|
10
|
+
preloadMaxAge: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const preload: () => Promise<PolkadotPreloadData>;
|
|
13
|
+
export declare const hydrate: (data: unknown) => void;
|
|
14
|
+
//# sourceMappingURL=preload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAI3C,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,SAAS,CAAC;AA8EtE,wBAAgB,6BAA6B,IAAI,mBAAmB,CAEnE;AACD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,QAI/D;AACD,wBAAgB,6BAA6B,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAE/E;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;CAE7B,CAAC;AAMH,eAAO,MAAM,OAAO,QAAa,QAAQ,mBAAmB,CAgC3D,CAAC;AACF,eAAO,MAAM,OAAO,SAAU,OAAO,SAOpC,CAAC"}
|
package/lib/preload.js
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
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 (g && (g = 0, op[0] && (_ = 0)), _) 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
|
+
exports.hydrate = exports.preload = exports.getPreloadStrategy = exports.getPolkadotPreloadDataUpdates = exports.setPolkadotPreloadData = exports.getCurrentPolkadotPreloadData = void 0;
|
|
40
|
+
/* eslint-disable no-prototype-builtins */
|
|
41
|
+
var bignumber_js_1 = require("bignumber.js");
|
|
42
|
+
var rxjs_1 = require("rxjs");
|
|
43
|
+
var logs_1 = require("@ledgerhq/logs");
|
|
44
|
+
var logic_1 = require("./logic");
|
|
45
|
+
var cache_1 = require("./cache");
|
|
46
|
+
var validators_1 = require("./validators");
|
|
47
|
+
var polkadot_crypto_1 = require("./polkadot-crypto");
|
|
48
|
+
var currentPolkadotPreloadedData = {
|
|
49
|
+
validators: [],
|
|
50
|
+
staking: undefined,
|
|
51
|
+
minimumBondBalance: "0"
|
|
52
|
+
};
|
|
53
|
+
function fromHydrateValidator(validatorRaw) {
|
|
54
|
+
return {
|
|
55
|
+
address: validatorRaw.address,
|
|
56
|
+
identity: validatorRaw.identity,
|
|
57
|
+
nominatorsCount: Number(validatorRaw.nominatorsCount),
|
|
58
|
+
rewardPoints: validatorRaw.rewardPoints === null
|
|
59
|
+
? null
|
|
60
|
+
: new bignumber_js_1.BigNumber(validatorRaw.rewardPoints),
|
|
61
|
+
commission: new bignumber_js_1.BigNumber(validatorRaw.commission),
|
|
62
|
+
totalBonded: new bignumber_js_1.BigNumber(validatorRaw.totalBonded),
|
|
63
|
+
selfBonded: new bignumber_js_1.BigNumber(validatorRaw.selfBonded),
|
|
64
|
+
isElected: !!validatorRaw.isElected,
|
|
65
|
+
isOversubscribed: !!validatorRaw.isOversubscribed
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function fromHydratePreloadData(data) {
|
|
69
|
+
var validators = [];
|
|
70
|
+
var staking = undefined;
|
|
71
|
+
var minimumBondBalance = "0";
|
|
72
|
+
if (typeof data === "object" && data) {
|
|
73
|
+
if (Array.isArray(data.validators)) {
|
|
74
|
+
validators = data.validators.map(fromHydrateValidator);
|
|
75
|
+
}
|
|
76
|
+
if (data.staking !== null && typeof data.staking === "object") {
|
|
77
|
+
var _a = data.staking, electionClosed = _a.electionClosed, activeEra = _a.activeEra, maxNominatorRewardedPerValidator = _a.maxNominatorRewardedPerValidator, bondingDuration = _a.bondingDuration;
|
|
78
|
+
staking = {
|
|
79
|
+
electionClosed: !!electionClosed,
|
|
80
|
+
activeEra: Number(activeEra),
|
|
81
|
+
maxNominatorRewardedPerValidator: Number(maxNominatorRewardedPerValidator) || 128,
|
|
82
|
+
bondingDuration: Number(bondingDuration) || 28
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (data.minimumBondBalance !== null &&
|
|
86
|
+
typeof data.minimumBondBalance === "string") {
|
|
87
|
+
minimumBondBalance = data.minimumBondBalance || "0";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
validators: validators,
|
|
92
|
+
staking: staking,
|
|
93
|
+
minimumBondBalance: minimumBondBalance
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
var updates = new rxjs_1.Subject();
|
|
97
|
+
function getCurrentPolkadotPreloadData() {
|
|
98
|
+
return currentPolkadotPreloadedData;
|
|
99
|
+
}
|
|
100
|
+
exports.getCurrentPolkadotPreloadData = getCurrentPolkadotPreloadData;
|
|
101
|
+
function setPolkadotPreloadData(data) {
|
|
102
|
+
if (data === currentPolkadotPreloadedData)
|
|
103
|
+
return;
|
|
104
|
+
currentPolkadotPreloadedData = data;
|
|
105
|
+
updates.next(data);
|
|
106
|
+
}
|
|
107
|
+
exports.setPolkadotPreloadData = setPolkadotPreloadData;
|
|
108
|
+
function getPolkadotPreloadDataUpdates() {
|
|
109
|
+
return updates.asObservable();
|
|
110
|
+
}
|
|
111
|
+
exports.getPolkadotPreloadDataUpdates = getPolkadotPreloadDataUpdates;
|
|
112
|
+
/**
|
|
113
|
+
* load max cache time for the validators
|
|
114
|
+
*/
|
|
115
|
+
var getPreloadStrategy = function () { return ({
|
|
116
|
+
preloadMaxAge: logic_1.PRELOAD_MAX_AGE
|
|
117
|
+
}); };
|
|
118
|
+
exports.getPreloadStrategy = getPreloadStrategy;
|
|
119
|
+
var shouldRefreshValidators = function (previousState, currentState) {
|
|
120
|
+
return !previousState || currentState.activeEra !== previousState.activeEra;
|
|
121
|
+
};
|
|
122
|
+
var preload = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
123
|
+
var minimumBondBalance, minimumBondBalanceStr, currentStakingProgress, previousValidators, previousStakingProgress, validators, error_1;
|
|
124
|
+
return __generator(this, function (_a) {
|
|
125
|
+
switch (_a.label) {
|
|
126
|
+
case 0: return [4 /*yield*/, (0, polkadot_crypto_1.loadPolkadotCrypto)()];
|
|
127
|
+
case 1:
|
|
128
|
+
_a.sent();
|
|
129
|
+
return [4 /*yield*/, (0, cache_1.getRegistry)()];
|
|
130
|
+
case 2:
|
|
131
|
+
_a.sent(); // ensure registry is already in cache.
|
|
132
|
+
return [4 /*yield*/, (0, cache_1.getMinimumBondBalance)()];
|
|
133
|
+
case 3:
|
|
134
|
+
minimumBondBalance = _a.sent();
|
|
135
|
+
minimumBondBalanceStr = minimumBondBalance.toString();
|
|
136
|
+
return [4 /*yield*/, (0, validators_1.getStakingProgress)()];
|
|
137
|
+
case 4:
|
|
138
|
+
currentStakingProgress = _a.sent();
|
|
139
|
+
previousValidators = currentPolkadotPreloadedData.validators, previousStakingProgress = currentPolkadotPreloadedData.staking;
|
|
140
|
+
validators = previousValidators;
|
|
141
|
+
if (!(!validators ||
|
|
142
|
+
!validators.length ||
|
|
143
|
+
shouldRefreshValidators(previousStakingProgress, currentStakingProgress))) return [3 /*break*/, 8];
|
|
144
|
+
(0, logs_1.log)("polkadot/preload", "refreshing polkadot validators...");
|
|
145
|
+
_a.label = 5;
|
|
146
|
+
case 5:
|
|
147
|
+
_a.trys.push([5, 7, , 8]);
|
|
148
|
+
return [4 /*yield*/, (0, validators_1.getValidators)("all")];
|
|
149
|
+
case 6:
|
|
150
|
+
validators = _a.sent();
|
|
151
|
+
return [3 /*break*/, 8];
|
|
152
|
+
case 7:
|
|
153
|
+
error_1 = _a.sent();
|
|
154
|
+
(0, logs_1.log)("polkadot/preload", "failed to fetch validators", {
|
|
155
|
+
error: error_1
|
|
156
|
+
});
|
|
157
|
+
return [3 /*break*/, 8];
|
|
158
|
+
case 8: return [2 /*return*/, {
|
|
159
|
+
validators: validators,
|
|
160
|
+
staking: currentStakingProgress,
|
|
161
|
+
minimumBondBalance: minimumBondBalanceStr
|
|
162
|
+
}];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}); };
|
|
166
|
+
exports.preload = preload;
|
|
167
|
+
var hydrate = function (data) {
|
|
168
|
+
var hydrated = fromHydratePreloadData(data);
|
|
169
|
+
(0, logs_1.log)("polkadot/preload", "hydrate " + hydrated.validators.length + " polkadot validators");
|
|
170
|
+
setPolkadotPreloadData(hydrated);
|
|
171
|
+
};
|
|
172
|
+
exports.hydrate = hydrate;
|
|
173
|
+
//# sourceMappingURL=preload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,6CAAyC;AACzC,6BAA2C;AAC3C,uCAAqC;AACrC,iCAA0C;AAC1C,iCAA6D;AAE7D,2CAAiE;AACjE,qDAAuD;AAEvD,IAAI,4BAA4B,GAAwB;IACtD,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,GAAG;CACxB,CAAC;AAEF,SAAS,oBAAoB,CAC3B,YAAiC;IAEjC,OAAO;QACL,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC;QACrD,YAAY,EACV,YAAY,CAAC,YAAY,KAAK,IAAI;YAChC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,wBAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QAC9C,UAAU,EAAE,IAAI,wBAAS,CAAC,YAAY,CAAC,UAAU,CAAC;QAClD,WAAW,EAAE,IAAI,wBAAS,CAAC,YAAY,CAAC,WAAW,CAAC;QACpD,UAAU,EAAE,IAAI,wBAAS,CAAC,YAAY,CAAC,UAAU,CAAC;QAClD,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS;QACnC,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,gBAAgB;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAS;IACvC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,OAAO,GAOK,SAAS,CAAC;IAC1B,IAAI,kBAAkB,GAAG,GAAG,CAAC;IAE7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAClC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;SACxD;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;YACvD,IAAA,KAKF,IAAI,CAAC,OAAO,EAJd,cAAc,oBAAA,EACd,SAAS,eAAA,EACT,gCAAgC,sCAAA,EAChC,eAAe,qBACD,CAAC;YACjB,OAAO,GAAG;gBACR,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC5B,gCAAgC,EAC9B,MAAM,CAAC,gCAAgC,CAAC,IAAI,GAAG;gBACjD,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;aAC/C,CAAC;SACH;QAED,IACE,IAAI,CAAC,kBAAkB,KAAK,IAAI;YAChC,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAC3C;YACA,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;SACrD;KACF;IAED,OAAO;QACL,UAAU,YAAA;QACV,OAAO,SAAA;QACP,kBAAkB,oBAAA;KACnB,CAAC;AACJ,CAAC;AAED,IAAM,OAAO,GAAG,IAAI,cAAO,EAAuB,CAAC;AACnD,SAAgB,6BAA6B;IAC3C,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAFD,sEAEC;AACD,SAAgB,sBAAsB,CAAC,IAAyB;IAC9D,IAAI,IAAI,KAAK,4BAA4B;QAAE,OAAO;IAClD,4BAA4B,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAJD,wDAIC;AACD,SAAgB,6BAA6B;IAC3C,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;AAChC,CAAC;AAFD,sEAEC;AAED;;GAEG;AACI,IAAM,kBAAkB,GAAG,cAAM,OAAA,CAAC;IACvC,aAAa,EAAE,uBAAe;CAC/B,CAAC,EAFsC,CAEtC,CAAC;AAFU,QAAA,kBAAkB,sBAE5B;AAEH,IAAM,uBAAuB,GAAG,UAAC,aAAa,EAAE,YAAY;IAC1D,OAAO,CAAC,aAAa,IAAI,YAAY,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC;AAC9E,CAAC,CAAC;AAEK,IAAM,OAAO,GAAG;;;;oBACrB,qBAAM,IAAA,oCAAkB,GAAE,EAAA;;gBAA1B,SAA0B,CAAC;gBAC3B,qBAAM,IAAA,mBAAW,GAAE,EAAA;;gBAAnB,SAAmB,CAAC,CAAC,uCAAuC;gBACjC,qBAAM,IAAA,6BAAqB,GAAE,EAAA;;gBAAlD,kBAAkB,GAAG,SAA6B;gBAClD,qBAAqB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAE7B,qBAAM,IAAA,+BAAkB,GAAE,EAAA;;gBAAnD,sBAAsB,GAAG,SAA0B;gBACrC,kBAAkB,GACpC,4BAA4B,WADQ,EAAW,uBAAuB,GACtE,4BAA4B,QAD0C,CACzC;gBAC3B,UAAU,GAAG,kBAAkB,CAAC;qBAGlC,CAAA,CAAC,UAAU;oBACX,CAAC,UAAU,CAAC,MAAM;oBAClB,uBAAuB,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAA,EAFxE,wBAEwE;gBAExE,IAAA,UAAG,EAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAC;;;;gBAG9C,qBAAM,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAA;;gBAAvC,UAAU,GAAG,SAA0B,CAAC;;;;gBAExC,IAAA,UAAG,EAAC,kBAAkB,EAAE,4BAA4B,EAAE;oBACpD,KAAK,SAAA;iBACN,CAAC,CAAC;;oBAIP,sBAAO;oBACL,UAAU,YAAA;oBACV,OAAO,EAAE,sBAAsB;oBAC/B,kBAAkB,EAAE,qBAAqB;iBAC1C,EAAC;;;KACH,CAAC;AAhCW,QAAA,OAAO,WAgClB;AACK,IAAM,OAAO,GAAG,UAAC,IAAa;IACnC,IAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAA,UAAG,EACD,kBAAkB,EAClB,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,sBAAsB,CACjE,CAAC;IACF,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PolkadotResourcesRaw, PolkadotResources } from "./types";
|
|
2
|
+
export declare function toPolkadotResourcesRaw(r: PolkadotResources): PolkadotResourcesRaw;
|
|
3
|
+
export declare function fromPolkadotResourcesRaw(r: PolkadotResourcesRaw): PolkadotResources;
|
|
4
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACvE,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,iBAAiB,GACnB,oBAAoB,CAoBtB;AACD,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,oBAAoB,GACtB,iBAAiB,CAoBnB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.fromPolkadotResourcesRaw = exports.toPolkadotResourcesRaw = void 0;
|
|
4
|
+
var bignumber_js_1 = require("bignumber.js");
|
|
5
|
+
function toPolkadotResourcesRaw(r) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
var nonce = r.nonce, controller = r.controller, stash = r.stash;
|
|
8
|
+
return {
|
|
9
|
+
controller: controller,
|
|
10
|
+
stash: stash,
|
|
11
|
+
nonce: nonce,
|
|
12
|
+
lockedBalance: r.lockedBalance.toString(),
|
|
13
|
+
unlockedBalance: r.unlockedBalance.toString(),
|
|
14
|
+
unlockingBalance: r.unlockingBalance.toString(),
|
|
15
|
+
unlockings: (_a = r.unlockings) === null || _a === void 0 ? void 0 : _a.map(function (u) { return ({
|
|
16
|
+
amount: u.amount.toString(),
|
|
17
|
+
completionDate: u.completionDate.toISOString()
|
|
18
|
+
}); }),
|
|
19
|
+
nominations: (_b = r.nominations) === null || _b === void 0 ? void 0 : _b.map(function (n) { return ({
|
|
20
|
+
address: n.address,
|
|
21
|
+
value: n.value.toString(),
|
|
22
|
+
status: n.status
|
|
23
|
+
}); }),
|
|
24
|
+
numSlashingSpans: r.numSlashingSpans
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.toPolkadotResourcesRaw = toPolkadotResourcesRaw;
|
|
28
|
+
function fromPolkadotResourcesRaw(r) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
var nonce = r.nonce, controller = r.controller, stash = r.stash;
|
|
31
|
+
return {
|
|
32
|
+
controller: controller,
|
|
33
|
+
stash: stash,
|
|
34
|
+
nonce: nonce,
|
|
35
|
+
lockedBalance: new bignumber_js_1.BigNumber(r.lockedBalance),
|
|
36
|
+
unlockedBalance: new bignumber_js_1.BigNumber(r.unlockedBalance),
|
|
37
|
+
unlockingBalance: new bignumber_js_1.BigNumber(r.unlockingBalance),
|
|
38
|
+
unlockings: (_a = r.unlockings) === null || _a === void 0 ? void 0 : _a.map(function (u) { return ({
|
|
39
|
+
amount: new bignumber_js_1.BigNumber(u.amount),
|
|
40
|
+
completionDate: new Date(u.completionDate)
|
|
41
|
+
}); }),
|
|
42
|
+
nominations: (_b = r.nominations) === null || _b === void 0 ? void 0 : _b.map(function (n) { return ({
|
|
43
|
+
address: n.address,
|
|
44
|
+
value: new bignumber_js_1.BigNumber(n.value),
|
|
45
|
+
status: n.status
|
|
46
|
+
}); }),
|
|
47
|
+
numSlashingSpans: Number(r.numSlashingSpans) || 0
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.fromPolkadotResourcesRaw = fromPolkadotResourcesRaw;
|
|
51
|
+
//# sourceMappingURL=serialization.js.map
|