@polymeshassociation/polymesh-sdk 31.1.0-beta.4 → 31.1.0-beta.6
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/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +15 -2
- package/api/client/Assets.d.ts.map +1 -1
- package/api/client/Assets.js +4 -5
- package/api/client/Assets.js.map +1 -1
- package/api/client/Network.d.ts +20 -0
- package/api/client/Network.d.ts.map +1 -1
- package/api/client/Network.js +14 -0
- package/api/client/Network.js.map +1 -1
- package/api/client/Polymesh.js +1 -1
- package/api/client/Polymesh.js.map +1 -1
- package/api/client/Staking.d.ts +176 -4
- package/api/client/Staking.d.ts.map +1 -1
- package/api/client/Staking.js +324 -1
- package/api/client/Staking.js.map +1 -1
- package/api/client/types.d.ts +228 -5
- package/api/client/types.d.ts.map +1 -1
- package/api/client/types.js +23 -1
- package/api/client/types.js.map +1 -1
- package/api/entities/Account/Staking/index.d.ts +13 -2
- package/api/entities/Account/Staking/index.d.ts.map +1 -1
- package/api/entities/Account/Staking/index.js +14 -3
- package/api/entities/Account/Staking/index.js.map +1 -1
- package/api/entities/Account/index.d.ts +6 -1
- package/api/entities/Account/index.d.ts.map +1 -1
- package/api/entities/Account/index.js +5 -1
- package/api/entities/Account/index.js.map +1 -1
- package/api/entities/Account/types.d.ts +1 -1
- package/api/entities/Asset/Base/BaseAsset.js +1 -1
- package/api/entities/Asset/Base/BaseAsset.js.map +1 -1
- package/api/entities/Asset/NonFungible/Nft.js +1 -1
- package/api/entities/Asset/NonFungible/Nft.js.map +1 -1
- package/api/entities/AuthorizationRequest.js +1 -1
- package/api/entities/AuthorizationRequest.js.map +1 -1
- package/api/entities/Checkpoint.js +1 -1
- package/api/entities/Checkpoint.js.map +1 -1
- package/api/entities/CheckpointSchedule/index.js +1 -1
- package/api/entities/CheckpointSchedule/index.js.map +1 -1
- package/api/entities/CorporateActionBase/index.js +1 -1
- package/api/entities/CorporateActionBase/index.js.map +1 -1
- package/api/entities/CustomPermissionGroup.js +1 -1
- package/api/entities/CustomPermissionGroup.js.map +1 -1
- package/api/entities/Identity/IdentityAuthorizations.d.ts +5 -0
- package/api/entities/Identity/IdentityAuthorizations.d.ts.map +1 -1
- package/api/entities/Identity/IdentityAuthorizations.js +5 -0
- package/api/entities/Identity/IdentityAuthorizations.js.map +1 -1
- package/api/entities/Identity/Portfolios.js +1 -1
- package/api/entities/Identity/Portfolios.js.map +1 -1
- package/api/entities/Instruction/index.js +1 -1
- package/api/entities/Instruction/index.js.map +1 -1
- package/api/entities/MetadataEntry/index.js +1 -1
- package/api/entities/MetadataEntry/index.js.map +1 -1
- package/api/entities/NumberedPortfolio.d.ts +4 -0
- package/api/entities/NumberedPortfolio.d.ts.map +1 -1
- package/api/entities/NumberedPortfolio.js +1 -1
- package/api/entities/NumberedPortfolio.js.map +1 -1
- package/api/entities/Offering/index.js +1 -1
- package/api/entities/Offering/index.js.map +1 -1
- package/api/entities/Portfolio/index.d.ts +22 -0
- package/api/entities/Portfolio/index.d.ts.map +1 -1
- package/api/entities/Portfolio/index.js +99 -21
- package/api/entities/Portfolio/index.js.map +1 -1
- package/api/entities/Venue/index.js +1 -1
- package/api/entities/Venue/index.js.map +1 -1
- package/api/entities/common/namespaces/Authorizations.d.ts +11 -1
- package/api/entities/common/namespaces/Authorizations.d.ts.map +1 -1
- package/api/entities/common/namespaces/Authorizations.js +11 -2
- package/api/entities/common/namespaces/Authorizations.js.map +1 -1
- package/api/procedures/acceptPrimaryKeyRotation.js +1 -1
- package/api/procedures/acceptPrimaryKeyRotation.js.map +1 -1
- package/api/procedures/bondPolyx.d.ts +9 -1
- package/api/procedures/bondPolyx.d.ts.map +1 -1
- package/api/procedures/bondPolyx.js +10 -6
- package/api/procedures/bondPolyx.js.map +1 -1
- package/api/procedures/chillStaking.d.ts +36 -0
- package/api/procedures/chillStaking.d.ts.map +1 -0
- package/api/procedures/chillStaking.js +72 -0
- package/api/procedures/chillStaking.js.map +1 -0
- package/api/procedures/configureDividendDistribution.js +2 -2
- package/api/procedures/configureDividendDistribution.js.map +1 -1
- package/api/procedures/modifyAsset.js +1 -1
- package/api/procedures/modifyAsset.js.map +1 -1
- package/api/procedures/moveFunds.js +2 -2
- package/api/procedures/moveFunds.js.map +1 -1
- package/api/procedures/nominateValidators.d.ts +6 -1
- package/api/procedures/nominateValidators.d.ts.map +1 -1
- package/api/procedures/nominateValidators.js +7 -2
- package/api/procedures/nominateValidators.js.map +1 -1
- package/api/procedures/redeemNft.js +1 -1
- package/api/procedures/redeemNft.js.map +1 -1
- package/api/procedures/redeemTokens.js +1 -1
- package/api/procedures/redeemTokens.js.map +1 -1
- package/api/procedures/removeAssetRequirement.js +1 -1
- package/api/procedures/removeAssetRequirement.js.map +1 -1
- package/api/procedures/removeCheckpointSchedule.js +1 -1
- package/api/procedures/removeCheckpointSchedule.js.map +1 -1
- package/api/procedures/removeCorporateAction.js +3 -3
- package/api/procedures/removeCorporateAction.js.map +1 -1
- package/api/procedures/setCustodian.d.ts +5 -1
- package/api/procedures/setCustodian.d.ts.map +1 -1
- package/api/procedures/setCustodian.js +2 -6
- package/api/procedures/setCustodian.js.map +1 -1
- package/api/procedures/setStakingController.d.ts +9 -1
- package/api/procedures/setStakingController.d.ts.map +1 -1
- package/api/procedures/setStakingController.js +10 -6
- package/api/procedures/setStakingController.js.map +1 -1
- package/api/procedures/setStakingPayee.d.ts +9 -1
- package/api/procedures/setStakingPayee.d.ts.map +1 -1
- package/api/procedures/setStakingPayee.js +10 -6
- package/api/procedures/setStakingPayee.js.map +1 -1
- package/api/procedures/types.d.ts +1 -1
- package/api/procedures/updateBondedPolyx.d.ts +13 -2
- package/api/procedures/updateBondedPolyx.d.ts.map +1 -1
- package/api/procedures/updateBondedPolyx.js +39 -10
- package/api/procedures/updateBondedPolyx.js.map +1 -1
- package/api/procedures/withdrawUnbondedPolyx.d.ts +9 -1
- package/api/procedures/withdrawUnbondedPolyx.d.ts.map +1 -1
- package/api/procedures/withdrawUnbondedPolyx.js +10 -6
- package/api/procedures/withdrawUnbondedPolyx.js.map +1 -1
- package/base/Context.d.ts +2 -1
- package/base/Context.d.ts.map +1 -1
- package/base/Context.js +2 -2
- package/base/Context.js.map +1 -1
- package/internal.d.ts +1 -0
- package/internal.d.ts.map +1 -1
- package/internal.js +3 -1
- package/internal.js.map +1 -1
- package/middleware/queries/polyxTransactions.d.ts +2 -1
- package/middleware/queries/polyxTransactions.d.ts.map +1 -1
- package/middleware/queries/polyxTransactions.js +9 -2
- package/middleware/queries/polyxTransactions.js.map +1 -1
- package/npm-package/{polymeshassociation-polymesh-sdk-31.1.0-beta.4.tgz → polymeshassociation-polymesh-sdk-31.1.0-beta.6.tgz} +0 -0
- package/package.json +1 -1
- package/utils/constants.d.ts +8 -0
- package/utils/constants.d.ts.map +1 -1
- package/utils/constants.js +9 -1
- package/utils/constants.js.map +1 -1
- package/utils/internal.d.ts +1 -1
- package/utils/internal.d.ts.map +1 -1
- package/utils/internal.js +3 -3
- package/utils/internal.js.map +1 -1
package/api/client/Staking.js
CHANGED
|
@@ -15,8 +15,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.Staking = void 0;
|
|
16
16
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
17
17
|
const internal_1 = require("../../internal");
|
|
18
|
+
const types_1 = require("../../types");
|
|
19
|
+
const constants_1 = require("../../utils/constants");
|
|
18
20
|
const conversion_1 = require("../../utils/conversion");
|
|
19
21
|
const internal_2 = require("../../utils/internal");
|
|
22
|
+
/**
|
|
23
|
+
* @hidden
|
|
24
|
+
*
|
|
25
|
+
* Assemble the exact slot-counted progress through a period, plus the time projection a countdown
|
|
26
|
+
* needs. Both are clamped: a period that has run long has not ended, and a progress above 1 or a
|
|
27
|
+
* negative countdown reads as broken
|
|
28
|
+
*/
|
|
29
|
+
function toPeriodProgress(elapsed, total, expectedBlockTime) {
|
|
30
|
+
const capped = bignumber_js_1.default.min(elapsed, total);
|
|
31
|
+
const remaining = total.minus(capped).multipliedBy(expectedBlockTime);
|
|
32
|
+
return {
|
|
33
|
+
elapsed,
|
|
34
|
+
total,
|
|
35
|
+
progress: capped.dividedBy(total),
|
|
36
|
+
remaining,
|
|
37
|
+
end: new Date(new bignumber_js_1.default(Date.now()).plus(remaining).toNumber()),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
20
40
|
/**
|
|
21
41
|
* Handles Staking related functionality
|
|
22
42
|
*/
|
|
@@ -35,6 +55,13 @@ class Staking {
|
|
|
35
55
|
this.bondExtra = (0, internal_2.createProcedureMethod)({
|
|
36
56
|
getProcedureAndArgs: args => [internal_1.updateBondedPolyx, Object.assign(Object.assign({}, args), { type: 'bondExtra' })],
|
|
37
57
|
}, context);
|
|
58
|
+
this.rebond = (0, internal_2.createProcedureMethod)({
|
|
59
|
+
getProcedureAndArgs: args => [internal_1.updateBondedPolyx, Object.assign(Object.assign({}, args), { type: 'rebond' })],
|
|
60
|
+
}, context);
|
|
61
|
+
this.chill = (0, internal_2.createProcedureMethod)({
|
|
62
|
+
getProcedureAndArgs: () => [internal_1.chillStaking, undefined],
|
|
63
|
+
voidArgs: true,
|
|
64
|
+
}, context);
|
|
38
65
|
this.withdraw = (0, internal_2.createProcedureMethod)({
|
|
39
66
|
getProcedureAndArgs: () => [internal_1.withdrawUnbondedPolyx, undefined],
|
|
40
67
|
voidArgs: true,
|
|
@@ -77,6 +104,38 @@ class Staking {
|
|
|
77
104
|
};
|
|
78
105
|
});
|
|
79
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Retrieve the validators whose set is actually in force for the active era
|
|
109
|
+
*
|
|
110
|
+
* @returns the elected validators, in the chain's own order
|
|
111
|
+
*
|
|
112
|
+
* @note this is a different question from
|
|
113
|
+
* {@link api/client/Staking!Staking.getValidators | getValidators}, which lists every Account
|
|
114
|
+
* *declaring intent* to validate. Those declaring intent but not elected are the waiting set —
|
|
115
|
+
* subtract this result from `getValidators` to get it
|
|
116
|
+
* @note bounded by {@link api/client/Staking!Staking.getValidatorCount | getValidatorCount}, so
|
|
117
|
+
* unlike the intent list this needs no pagination
|
|
118
|
+
*/
|
|
119
|
+
getActiveValidators() {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
122
|
+
const rawValidators = yield query.session.validators();
|
|
123
|
+
return rawValidators.map(rawAddress => new internal_1.Account({ address: (0, conversion_1.accountIdToString)(rawAddress) }, context));
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Retrieve how many validators the chain aims to elect each era
|
|
128
|
+
*
|
|
129
|
+
* @note this is the target the election is run against, not how many are currently in force —
|
|
130
|
+
* read {@link api/client/Staking!Staking.getActiveValidators | getActiveValidators} for that.
|
|
131
|
+
* The two differ when fewer Accounts declare intent than there are slots
|
|
132
|
+
*/
|
|
133
|
+
getValidatorCount() {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
const { context: { polymeshApi: { query }, }, } = this;
|
|
136
|
+
return (0, conversion_1.u32ToBigNumber)(yield query.staking.validatorCount());
|
|
137
|
+
});
|
|
138
|
+
}
|
|
80
139
|
// eslint-disable-next-line require-jsdoc
|
|
81
140
|
eraInfo(callback) {
|
|
82
141
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -97,7 +156,8 @@ class Staking {
|
|
|
97
156
|
currentEra = (0, conversion_1.u32ToBigNumber)(rawCurrentEra.unwrap());
|
|
98
157
|
}
|
|
99
158
|
const plannedSession = (0, conversion_1.u32ToBigNumber)(rawPlannedSession);
|
|
100
|
-
|
|
159
|
+
// `erasTotalStake` is a `Balance`, so it needs the POLYX shift rather than a plain u128 read
|
|
160
|
+
const totalStaked = (0, conversion_1.balanceToBigNumber)(rawTotalStaked);
|
|
101
161
|
return {
|
|
102
162
|
activeEra: activeEra.index,
|
|
103
163
|
activeEraStart: activeEra.start,
|
|
@@ -155,6 +215,269 @@ class Staking {
|
|
|
155
215
|
return assembleResult(rawActiveEra, rawCurrentEra, rawPlannedSession, rawTotalStaked);
|
|
156
216
|
});
|
|
157
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Retrieve the chain constants that govern staking
|
|
220
|
+
*
|
|
221
|
+
* @note these come from the chain's metadata, so this makes no query
|
|
222
|
+
*/
|
|
223
|
+
getConstants() {
|
|
224
|
+
const { context: { polymeshApi: { consts }, }, } = this;
|
|
225
|
+
const sessionsPerEra = (0, conversion_1.u32ToBigNumber)(consts.staking.sessionsPerEra);
|
|
226
|
+
const slotsPerSession = (0, conversion_1.u64ToBigNumber)(consts.babe.epochDuration);
|
|
227
|
+
const expectedBlockTime = (0, conversion_1.u64ToBigNumber)(consts.babe.expectedBlockTime);
|
|
228
|
+
const eraDuration = expectedBlockTime
|
|
229
|
+
.multipliedBy(slotsPerSession)
|
|
230
|
+
.multipliedBy(sessionsPerEra);
|
|
231
|
+
return {
|
|
232
|
+
sessionsPerEra,
|
|
233
|
+
slotsPerSession,
|
|
234
|
+
expectedBlockTime,
|
|
235
|
+
eraDuration,
|
|
236
|
+
erasPerYear: constants_1.MILLISECONDS_PER_YEAR.dividedBy(eraDuration),
|
|
237
|
+
bondingDuration: (0, conversion_1.u32ToBigNumber)(consts.staking.bondingDuration),
|
|
238
|
+
historyDepth: (0, conversion_1.u32ToBigNumber)(consts.staking.historyDepth),
|
|
239
|
+
fixedYearlyReward: (0, conversion_1.balanceToBigNumber)(consts.validators.fixedYearlyReward),
|
|
240
|
+
maxVariableInflationTotalIssuance: (0, conversion_1.balanceToBigNumber)(consts.validators.maxVariableInflationTotalIssuance),
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
// eslint-disable-next-line require-jsdoc
|
|
244
|
+
eraProgress(callback) {
|
|
245
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
246
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
247
|
+
const { slotsPerSession, sessionsPerEra, expectedBlockTime } = this.getConstants();
|
|
248
|
+
/* `babe.currentSlot` alone changes every block; the rest ride along on the same notification */
|
|
249
|
+
const queries = [
|
|
250
|
+
[query.staking.activeEra, undefined],
|
|
251
|
+
[query.staking.currentEra, undefined],
|
|
252
|
+
[query.session.currentIndex, undefined],
|
|
253
|
+
[query.babe.epochIndex, undefined],
|
|
254
|
+
[query.babe.currentSlot, undefined],
|
|
255
|
+
[query.babe.genesisSlot, undefined],
|
|
256
|
+
];
|
|
257
|
+
/*
|
|
258
|
+
* `erasStartSessionIndex` is keyed by the active era, so it cannot join the multi query that
|
|
259
|
+
* reads the era itself. It changes once per era rather than once per block, so it is re-read
|
|
260
|
+
* only when the era does
|
|
261
|
+
*/
|
|
262
|
+
let cachedFor = null;
|
|
263
|
+
let startSession = new bignumber_js_1.default(0);
|
|
264
|
+
const readStartSession = (era) => __awaiter(this, void 0, void 0, function* () {
|
|
265
|
+
if (cachedFor !== era.toString()) {
|
|
266
|
+
const rawStartSession = yield query.staking.erasStartSessionIndex((0, conversion_1.bigNumberToU32)(era, context));
|
|
267
|
+
/* an era whose start the chain has pruned cannot anchor a count, so treat it as session 0 */
|
|
268
|
+
startSession = rawStartSession.isSome
|
|
269
|
+
? (0, conversion_1.u32ToBigNumber)(rawStartSession.unwrap())
|
|
270
|
+
: new bignumber_js_1.default(0);
|
|
271
|
+
cachedFor = era.toString();
|
|
272
|
+
}
|
|
273
|
+
return startSession;
|
|
274
|
+
});
|
|
275
|
+
const assembleResult = ([rawActiveEra, rawCurrentEra, rawSession, rawEpoch, rawSlot, rawGenesisSlot], eraStartSession) => {
|
|
276
|
+
const { index: rawEraIndex, start: rawStart } = rawActiveEra.unwrap();
|
|
277
|
+
const era = (0, conversion_1.u32ToBigNumber)(rawEraIndex);
|
|
278
|
+
const session = (0, conversion_1.u32ToBigNumber)(rawSession);
|
|
279
|
+
/*
|
|
280
|
+
* the chain does not store where a session began, so it is derived the way the runtime lays
|
|
281
|
+
* epochs out: the Nth epoch starts `N * slotsPerSession` slots after genesis
|
|
282
|
+
*/
|
|
283
|
+
const sessionStartSlot = (0, conversion_1.u64ToBigNumber)(rawEpoch)
|
|
284
|
+
.multipliedBy(slotsPerSession)
|
|
285
|
+
.plus((0, conversion_1.u64ToBigNumber)(rawGenesisSlot));
|
|
286
|
+
const sessionElapsed = bignumber_js_1.default.max((0, conversion_1.u64ToBigNumber)(rawSlot).minus(sessionStartSlot), 0);
|
|
287
|
+
/* sessions of this era that are already behind the chain */
|
|
288
|
+
const sessionsDone = bignumber_js_1.default.max(session.minus(eraStartSession), 0);
|
|
289
|
+
const eraElapsed = sessionsDone.multipliedBy(slotsPerSession).plus(sessionElapsed);
|
|
290
|
+
return {
|
|
291
|
+
era: {
|
|
292
|
+
index: era,
|
|
293
|
+
planned: rawCurrentEra.isSome ? (0, conversion_1.u32ToBigNumber)(rawCurrentEra.unwrap()) : era,
|
|
294
|
+
start: rawStart.isSome ? new Date((0, conversion_1.u64ToBigNumber)(rawStart.unwrap()).toNumber()) : null,
|
|
295
|
+
progress: toPeriodProgress(eraElapsed, slotsPerSession.multipliedBy(sessionsPerEra), expectedBlockTime),
|
|
296
|
+
},
|
|
297
|
+
session: {
|
|
298
|
+
index: session,
|
|
299
|
+
inEra: bignumber_js_1.default.min(sessionsDone.plus(1), sessionsPerEra),
|
|
300
|
+
perEra: sessionsPerEra,
|
|
301
|
+
progress: toPeriodProgress(sessionElapsed, slotsPerSession, expectedBlockTime),
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
};
|
|
305
|
+
const assertActiveEra = (raw) => {
|
|
306
|
+
if (raw[0].isNone) {
|
|
307
|
+
throw new internal_1.PolymeshError({
|
|
308
|
+
code: types_1.ErrorCode.DataUnavailable,
|
|
309
|
+
message: 'There is no active staking era',
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
if (callback) {
|
|
314
|
+
context.assertSupportsSubscription();
|
|
315
|
+
return (0, internal_2.requestMulti)(context, queries, (raw) => __awaiter(this, void 0, void 0, function* () {
|
|
316
|
+
assertActiveEra(raw);
|
|
317
|
+
const eraStartSession = yield readStartSession((0, conversion_1.u32ToBigNumber)(raw[0].unwrap().index));
|
|
318
|
+
yield callback(assembleResult(raw, eraStartSession));
|
|
319
|
+
}));
|
|
320
|
+
}
|
|
321
|
+
const raw = yield (0, internal_2.requestMulti)(context, queries);
|
|
322
|
+
assertActiveEra(raw);
|
|
323
|
+
return assembleResult(raw, yield readStartSession((0, conversion_1.u32ToBigNumber)(raw[0].unwrap().index)));
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
// eslint-disable-next-line require-jsdoc
|
|
327
|
+
getEraRewardPoints(eraOrCallback, maybeCallback) {
|
|
328
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
329
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
330
|
+
const era = bignumber_js_1.default.isBigNumber(eraOrCallback) ? eraOrCallback : undefined;
|
|
331
|
+
const callback = bignumber_js_1.default.isBigNumber(eraOrCallback) ? maybeCallback : eraOrCallback;
|
|
332
|
+
const rawEra = yield this.asRawEra(era);
|
|
333
|
+
const assembleResult = (rawPoints) => {
|
|
334
|
+
const { total, individual } = rawPoints;
|
|
335
|
+
return {
|
|
336
|
+
total: (0, conversion_1.u32ToBigNumber)(total),
|
|
337
|
+
individual: [...individual.entries()].map(([rawAccountId, rawIndividualPoints]) => ({
|
|
338
|
+
account: new internal_1.Account({ address: (0, conversion_1.accountIdToString)(rawAccountId) }, context),
|
|
339
|
+
points: (0, conversion_1.u32ToBigNumber)(rawIndividualPoints),
|
|
340
|
+
})),
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
if (callback) {
|
|
344
|
+
context.assertSupportsSubscription();
|
|
345
|
+
return query.staking.erasRewardPoints(rawEra, rawPoints => {
|
|
346
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises -- callback errors should be handled by the caller
|
|
347
|
+
callback(assembleResult(rawPoints));
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
return assembleResult(yield query.staking.erasRewardPoints(rawEra));
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Retrieve the total POLYX paid out to validators and their nominators for an era
|
|
355
|
+
*
|
|
356
|
+
* @param era - defaults to the active era
|
|
357
|
+
*
|
|
358
|
+
* @returns `null` for an era the chain has not paid out, i.e. one still running or older than the
|
|
359
|
+
* history depth
|
|
360
|
+
*/
|
|
361
|
+
getEraValidatorReward(era) {
|
|
362
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
363
|
+
const { context: { polymeshApi: { query }, }, } = this;
|
|
364
|
+
const rawEra = yield this.asRawEra(era);
|
|
365
|
+
const rawReward = yield query.staking.erasValidatorReward(rawEra);
|
|
366
|
+
return rawReward.isNone ? null : (0, conversion_1.balanceToBigNumber)(rawReward.unwrap());
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Retrieve the session an era started at
|
|
371
|
+
*
|
|
372
|
+
* @param era - defaults to the active era
|
|
373
|
+
*
|
|
374
|
+
* @returns `null` for an era outside the chain's history depth
|
|
375
|
+
*/
|
|
376
|
+
getEraStartSession(era) {
|
|
377
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
378
|
+
const { context: { polymeshApi: { query }, }, } = this;
|
|
379
|
+
const rawEra = yield this.asRawEra(era);
|
|
380
|
+
const rawIndex = yield query.staking.erasStartSessionIndex(rawEra);
|
|
381
|
+
return rawIndex.isNone ? null : (0, conversion_1.u32ToBigNumber)(rawIndex.unwrap());
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Retrieve how much POLYX was backing a validator in an era, and how it was split
|
|
386
|
+
*
|
|
387
|
+
* @param args.validator - the validator's Account or address
|
|
388
|
+
* @param args.era - defaults to the active era
|
|
389
|
+
*
|
|
390
|
+
* @returns `null` if the Account was not in the era's validator set
|
|
391
|
+
*/
|
|
392
|
+
getEraExposure(args) {
|
|
393
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
394
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
395
|
+
const { validator, era } = args;
|
|
396
|
+
const rawEra = yield this.asRawEra(era);
|
|
397
|
+
const rawAddress = (0, conversion_1.stringToAccountId)((0, internal_2.asAccount)(validator, context).address, context);
|
|
398
|
+
const rawOverview = yield query.staking.erasStakersOverview(rawEra, rawAddress);
|
|
399
|
+
if (rawOverview.isNone) {
|
|
400
|
+
return null;
|
|
401
|
+
}
|
|
402
|
+
const { total, own, nominatorCount, pageCount } = rawOverview.unwrap();
|
|
403
|
+
return {
|
|
404
|
+
total: (0, conversion_1.balanceToBigNumber)(total.unwrap()),
|
|
405
|
+
own: (0, conversion_1.balanceToBigNumber)(own.unwrap()),
|
|
406
|
+
nominatorCount: (0, conversion_1.u32ToBigNumber)(nominatorCount),
|
|
407
|
+
pageCount: (0, conversion_1.u32ToBigNumber)(pageCount),
|
|
408
|
+
};
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Retrieve one page of the nominators backing a validator in an era
|
|
413
|
+
*
|
|
414
|
+
* @param args.validator - the validator's Account or address
|
|
415
|
+
* @param args.page - defaults to the first page. Read `pageCount` from
|
|
416
|
+
* {@link api/client/Staking!Staking.getEraExposure | getEraExposure} for how many there are
|
|
417
|
+
* @param args.era - defaults to the active era
|
|
418
|
+
*
|
|
419
|
+
* @returns `null` if the page does not exist
|
|
420
|
+
*
|
|
421
|
+
* @note nominators are paged by the chain so that a payout fits in a block, which is why this is
|
|
422
|
+
* not returned as part of the exposure
|
|
423
|
+
*/
|
|
424
|
+
getEraNominators(args) {
|
|
425
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
426
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
427
|
+
const { validator, page = new bignumber_js_1.default(0), era } = args;
|
|
428
|
+
const rawEra = yield this.asRawEra(era);
|
|
429
|
+
const rawAddress = (0, conversion_1.stringToAccountId)((0, internal_2.asAccount)(validator, context).address, context);
|
|
430
|
+
const rawPage = (0, conversion_1.bigNumberToU32)(page, context);
|
|
431
|
+
const rawExposure = yield query.staking.erasStakersPaged(rawEra, rawAddress, rawPage);
|
|
432
|
+
if (rawExposure.isNone) {
|
|
433
|
+
return null;
|
|
434
|
+
}
|
|
435
|
+
const { pageTotal, others } = rawExposure.unwrap();
|
|
436
|
+
return {
|
|
437
|
+
pageTotal: (0, conversion_1.balanceToBigNumber)(pageTotal.unwrap()),
|
|
438
|
+
nominators: others.map(({ who, value }) => ({
|
|
439
|
+
account: new internal_1.Account({ address: (0, conversion_1.accountIdToString)(who) }, context),
|
|
440
|
+
value: (0, conversion_1.balanceToBigNumber)(value.unwrap()),
|
|
441
|
+
})),
|
|
442
|
+
};
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
// eslint-disable-next-line require-jsdoc
|
|
446
|
+
getElectionPhase(callback) {
|
|
447
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
448
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
449
|
+
if (callback) {
|
|
450
|
+
context.assertSupportsSubscription();
|
|
451
|
+
return query.electionProviderMultiPhase.currentPhase(rawPhase => {
|
|
452
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises -- callback errors should be handled by the caller
|
|
453
|
+
callback(types_1.ElectionPhase[rawPhase.type]);
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
const rawPhase = yield query.electionProviderMultiPhase.currentPhase();
|
|
457
|
+
return types_1.ElectionPhase[rawPhase.type];
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* @hidden
|
|
462
|
+
*
|
|
463
|
+
* Resolve an optional era argument to the era to query, defaulting to the active one
|
|
464
|
+
*/
|
|
465
|
+
asRawEra(era) {
|
|
466
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
467
|
+
const { context, context: { polymeshApi: { query }, }, } = this;
|
|
468
|
+
if (era) {
|
|
469
|
+
return (0, conversion_1.bigNumberToU32)(era, context);
|
|
470
|
+
}
|
|
471
|
+
const rawActiveEra = yield query.staking.activeEra();
|
|
472
|
+
if (rawActiveEra.isNone) {
|
|
473
|
+
throw new internal_1.PolymeshError({
|
|
474
|
+
code: types_1.ErrorCode.DataUnavailable,
|
|
475
|
+
message: 'There is no active staking era',
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
return rawActiveEra.unwrap().index;
|
|
479
|
+
});
|
|
480
|
+
}
|
|
158
481
|
}
|
|
159
482
|
exports.Staking = Staking;
|
|
160
483
|
//# sourceMappingURL=Staking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Staking.js","sourceRoot":"","sources":["../../../src/api/client/Staking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Staking.js","sourceRoot":"","sources":["../../../src/api/client/Staking.ts"],"names":[],"mappings":"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"}
|
package/api/client/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiOptions } from '@polkadot/api/types';
|
|
2
2
|
import { ISubmittableResult } from '@polkadot/types/types';
|
|
3
3
|
import BigNumber from 'bignumber.js';
|
|
4
|
-
import { Asset, Identity, InstructionStatusEnum, TxTag } from '../../types';
|
|
4
|
+
import { Account, Asset, Identity, InstructionStatusEnum, TxTag } from '../../types';
|
|
5
5
|
export { InstructionStatusEnum };
|
|
6
6
|
export interface ExtrinsicData {
|
|
7
7
|
blockHash: string;
|
|
@@ -136,7 +136,11 @@ export declare enum ErrorCode {
|
|
|
136
136
|
}
|
|
137
137
|
export interface MiddlewareConfig {
|
|
138
138
|
link: string;
|
|
139
|
-
|
|
139
|
+
/**
|
|
140
|
+
* API key for the middleware, sent as the `x-api-key` header. Optional: an indexer that
|
|
141
|
+
* requires no authentication needs none, and the header is omitted rather than sent empty
|
|
142
|
+
*/
|
|
143
|
+
key?: string;
|
|
140
144
|
}
|
|
141
145
|
export interface PolkadotConfig {
|
|
142
146
|
/**
|
|
@@ -265,15 +269,28 @@ export interface HistoricalInstructionFilters {
|
|
|
265
269
|
*/
|
|
266
270
|
export interface StakingEraInfo {
|
|
267
271
|
/**
|
|
268
|
-
* The
|
|
272
|
+
* The era whose validator set is in force, and whose rewards and slashes are being processed
|
|
273
|
+
*
|
|
274
|
+
* @note this is the era to use for anything describing what the chain is doing *now*. It lags
|
|
275
|
+
* {@link StakingEraInfo.currentEra | currentEra} between an election and the session rotation
|
|
276
|
+
* that brings the newly elected set into force
|
|
269
277
|
*/
|
|
270
278
|
activeEra: BigNumber;
|
|
271
279
|
/**
|
|
272
|
-
* The
|
|
280
|
+
* The moment the active era began, as milliseconds since the Unix epoch
|
|
281
|
+
*
|
|
282
|
+
* @note this is `0` where the chain holds no start for the active era. The chain creates the
|
|
283
|
+
* active era at session rotation and records its start on the following block, so the gap is
|
|
284
|
+
* brief — but it recurs at every era change, not only before the first era
|
|
273
285
|
*/
|
|
274
286
|
activeEraStart: BigNumber;
|
|
275
287
|
/**
|
|
276
|
-
* The
|
|
288
|
+
* The latest era the chain has *planned*
|
|
289
|
+
*
|
|
290
|
+
* @note a validator set has been elected for this era, but the Session pallet may not have
|
|
291
|
+
* brought it into force yet, so this runs ahead of
|
|
292
|
+
* {@link StakingEraInfo.activeEra | activeEra} between the election and the rotation. The two
|
|
293
|
+
* are equal the rest of the time, and `currentEra` is never behind
|
|
277
294
|
*/
|
|
278
295
|
currentEra: BigNumber;
|
|
279
296
|
/**
|
|
@@ -285,4 +302,210 @@ export interface StakingEraInfo {
|
|
|
285
302
|
*/
|
|
286
303
|
totalStaked: BigNumber;
|
|
287
304
|
}
|
|
305
|
+
export interface StakingConstants {
|
|
306
|
+
/**
|
|
307
|
+
* The number of sessions in an era
|
|
308
|
+
*/
|
|
309
|
+
sessionsPerEra: BigNumber;
|
|
310
|
+
/**
|
|
311
|
+
* The number of slots in a session
|
|
312
|
+
*/
|
|
313
|
+
slotsPerSession: BigNumber;
|
|
314
|
+
/**
|
|
315
|
+
* The average time the chain is expected to take to produce a block, in milliseconds
|
|
316
|
+
*/
|
|
317
|
+
expectedBlockTime: BigNumber;
|
|
318
|
+
/**
|
|
319
|
+
* How long an era is expected to last, in milliseconds
|
|
320
|
+
*
|
|
321
|
+
* @note this is `expectedBlockTime * slotsPerSession * sessionsPerEra`. It is what an era is
|
|
322
|
+
* expected to take, not what any particular era took — the chain pays rewards against the
|
|
323
|
+
* duration an era actually ran for
|
|
324
|
+
*/
|
|
325
|
+
eraDuration: BigNumber;
|
|
326
|
+
/**
|
|
327
|
+
* How many eras are expected in a year
|
|
328
|
+
*
|
|
329
|
+
* @note the year here is the Julian year of 365.25 days, which is what the chain's reward
|
|
330
|
+
* calculation uses
|
|
331
|
+
*/
|
|
332
|
+
erasPerYear: BigNumber;
|
|
333
|
+
/**
|
|
334
|
+
* The number of eras that must pass before unbonded POLYX can be withdrawn
|
|
335
|
+
*/
|
|
336
|
+
bondingDuration: BigNumber;
|
|
337
|
+
/**
|
|
338
|
+
* How many past eras the chain keeps data for
|
|
339
|
+
*
|
|
340
|
+
* @note the per-era reads return `null` for anything older than this many eras before the active
|
|
341
|
+
* one, because the chain has pruned it
|
|
342
|
+
*/
|
|
343
|
+
historyDepth: BigNumber;
|
|
344
|
+
/**
|
|
345
|
+
* The amount of POLYX issued per year once total issuance reaches
|
|
346
|
+
* {@link StakingConstants.maxVariableInflationTotalIssuance}
|
|
347
|
+
*/
|
|
348
|
+
fixedYearlyReward: BigNumber;
|
|
349
|
+
/**
|
|
350
|
+
* The total issuance at which rewards stop following the inflation curve and become
|
|
351
|
+
* {@link StakingConstants.fixedYearlyReward}
|
|
352
|
+
*/
|
|
353
|
+
maxVariableInflationTotalIssuance: BigNumber;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* The phase of the validator election
|
|
357
|
+
*/
|
|
358
|
+
export declare enum ElectionPhase {
|
|
359
|
+
/**
|
|
360
|
+
* No election is in progress
|
|
361
|
+
*/
|
|
362
|
+
Off = "Off",
|
|
363
|
+
/**
|
|
364
|
+
* Signed solutions are being accepted
|
|
365
|
+
*/
|
|
366
|
+
Signed = "Signed",
|
|
367
|
+
/**
|
|
368
|
+
* Unsigned solutions are being accepted
|
|
369
|
+
*/
|
|
370
|
+
Unsigned = "Unsigned",
|
|
371
|
+
/**
|
|
372
|
+
* The election failed and is being resolved by governance
|
|
373
|
+
*/
|
|
374
|
+
Emergency = "Emergency"
|
|
375
|
+
}
|
|
376
|
+
export interface EraRewardPoints {
|
|
377
|
+
/**
|
|
378
|
+
* The total points awarded across all validators in the era
|
|
379
|
+
*/
|
|
380
|
+
total: BigNumber;
|
|
381
|
+
/**
|
|
382
|
+
* The points awarded to each validator that authored at least one block in the era
|
|
383
|
+
*/
|
|
384
|
+
individual: {
|
|
385
|
+
account: Account;
|
|
386
|
+
points: BigNumber;
|
|
387
|
+
}[];
|
|
388
|
+
}
|
|
389
|
+
export interface EraExposure {
|
|
390
|
+
/**
|
|
391
|
+
* The total POLYX backing the validator, its own stake included
|
|
392
|
+
*/
|
|
393
|
+
total: BigNumber;
|
|
394
|
+
/**
|
|
395
|
+
* The POLYX the validator bonded itself
|
|
396
|
+
*/
|
|
397
|
+
own: BigNumber;
|
|
398
|
+
/**
|
|
399
|
+
* How many Accounts nominated the validator in this era
|
|
400
|
+
*/
|
|
401
|
+
nominatorCount: BigNumber;
|
|
402
|
+
/**
|
|
403
|
+
* How many pages the nominators are split across
|
|
404
|
+
*
|
|
405
|
+
* @note nominators are paged so a payout fits in a block. Use
|
|
406
|
+
* {@link api/client/Staking!Staking.getEraNominators | getEraNominators} to read one page
|
|
407
|
+
*/
|
|
408
|
+
pageCount: BigNumber;
|
|
409
|
+
}
|
|
410
|
+
export interface EraNominators {
|
|
411
|
+
/**
|
|
412
|
+
* The total POLYX nominated on this page
|
|
413
|
+
*/
|
|
414
|
+
pageTotal: BigNumber;
|
|
415
|
+
/**
|
|
416
|
+
* The nominators on this page and what each of them staked
|
|
417
|
+
*/
|
|
418
|
+
nominators: {
|
|
419
|
+
account: Account;
|
|
420
|
+
value: BigNumber;
|
|
421
|
+
}[];
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* How far through a period the chain is
|
|
425
|
+
*
|
|
426
|
+
* @note `elapsed`, `total` and `progress` are **exact** — they are counted in slots, which is how
|
|
427
|
+
* the chain itself measures a period. `remaining` and `end` are **projections** from
|
|
428
|
+
* {@link StakingConstants.expectedBlockTime}, so they move as block production drifts. Render a
|
|
429
|
+
* bar from `progress` and a countdown from `remaining`
|
|
430
|
+
*/
|
|
431
|
+
export interface PeriodProgress {
|
|
432
|
+
/**
|
|
433
|
+
* Slots elapsed so far
|
|
434
|
+
*/
|
|
435
|
+
elapsed: BigNumber;
|
|
436
|
+
/**
|
|
437
|
+
* Slots in the whole period
|
|
438
|
+
*/
|
|
439
|
+
total: BigNumber;
|
|
440
|
+
/**
|
|
441
|
+
* How far through the period the chain is, from 0 to 1
|
|
442
|
+
*
|
|
443
|
+
* @note clamped to 1. A period that has run past its expected length has not ended — the chain
|
|
444
|
+
* rolls it over when it rolls over
|
|
445
|
+
*/
|
|
446
|
+
progress: BigNumber;
|
|
447
|
+
/**
|
|
448
|
+
* Projected milliseconds until the period ends
|
|
449
|
+
*
|
|
450
|
+
* @note `0` once the period has run past its expected length
|
|
451
|
+
*/
|
|
452
|
+
remaining: BigNumber;
|
|
453
|
+
/**
|
|
454
|
+
* Projected moment the period ends
|
|
455
|
+
*/
|
|
456
|
+
end: Date;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* A live view of where the chain is in the staking cycle
|
|
460
|
+
*
|
|
461
|
+
* @note an era is divided into sessions (BABE calls them epochs), and both advance every block.
|
|
462
|
+
* Subscribe with {@link api/client/Staking!Staking.eraProgress | eraProgress} to drive a progress
|
|
463
|
+
* bar without polling
|
|
464
|
+
*/
|
|
465
|
+
export interface EraProgress {
|
|
466
|
+
era: {
|
|
467
|
+
/**
|
|
468
|
+
* The active era — the one whose validator set is in force and whose rewards are being
|
|
469
|
+
* processed
|
|
470
|
+
*/
|
|
471
|
+
index: BigNumber;
|
|
472
|
+
/**
|
|
473
|
+
* The latest era the chain has *planned*
|
|
474
|
+
*
|
|
475
|
+
* @note runs ahead of `index` between an election and the session rotation that brings the
|
|
476
|
+
* newly elected set into force, and equals it the rest of the time
|
|
477
|
+
*/
|
|
478
|
+
planned: BigNumber;
|
|
479
|
+
/**
|
|
480
|
+
* When the active era began
|
|
481
|
+
*
|
|
482
|
+
* @note `null` in the brief window between the chain creating the era at session rotation and
|
|
483
|
+
* recording its start on the following block. Progress is unaffected — it is counted in
|
|
484
|
+
* slots, which are always available
|
|
485
|
+
*/
|
|
486
|
+
start: Date | null;
|
|
487
|
+
/**
|
|
488
|
+
* How far through the active era the chain is
|
|
489
|
+
*/
|
|
490
|
+
progress: PeriodProgress;
|
|
491
|
+
};
|
|
492
|
+
session: {
|
|
493
|
+
/**
|
|
494
|
+
* The absolute session index, counting from genesis
|
|
495
|
+
*/
|
|
496
|
+
index: BigNumber;
|
|
497
|
+
/**
|
|
498
|
+
* Which session of the active era this is, counting from 1
|
|
499
|
+
*/
|
|
500
|
+
inEra: BigNumber;
|
|
501
|
+
/**
|
|
502
|
+
* How many sessions there are in an era
|
|
503
|
+
*/
|
|
504
|
+
perEra: BigNumber;
|
|
505
|
+
/**
|
|
506
|
+
* How far through the current session the chain is
|
|
507
|
+
*/
|
|
508
|
+
progress: PeriodProgress;
|
|
509
|
+
};
|
|
510
|
+
}
|
|
288
511
|
//# sourceMappingURL=types.d.ts.map
|