@substrate/api-sidecar 17.4.0 → 17.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +2 -2
- package/build/src/chains-config/assetHubKusamaControllers.js +2 -1
- package/build/src/chains-config/assetHubKusamaControllers.js.map +1 -1
- package/build/src/chains-config/assetHubPolkadotControllers.js +1 -0
- package/build/src/chains-config/assetHubPolkadotControllers.js.map +1 -1
- package/build/src/chains-config/assetHubWestendControllers.js +1 -0
- package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
- package/build/src/chains-config/defaultControllers.js +1 -0
- package/build/src/chains-config/defaultControllers.js.map +1 -1
- package/build/src/chains-config/kusamaControllers.js +1 -0
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +1 -0
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/chains-config/westendControllers.js +1 -0
- package/build/src/chains-config/westendControllers.js.map +1 -1
- package/build/src/controllers/accounts/AccountsProxyInfoController.d.ts +14 -0
- package/build/src/controllers/accounts/AccountsProxyInfoController.js +45 -0
- package/build/src/controllers/accounts/AccountsProxyInfoController.js.map +1 -0
- package/build/src/controllers/accounts/AccountsStakingPayoutsController.d.ts +1 -1
- package/build/src/controllers/accounts/AccountsStakingPayoutsController.js +9 -9
- package/build/src/controllers/accounts/AccountsStakingPayoutsController.js.map +1 -1
- package/build/src/controllers/accounts/index.d.ts +1 -0
- package/build/src/controllers/accounts/index.js +3 -1
- package/build/src/controllers/accounts/index.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.js +5 -3
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/index.d.ts +2 -1
- package/build/src/controllers/index.js +1 -0
- package/build/src/controllers/index.js.map +1 -1
- package/build/src/services/accounts/AccountsProxyInfoService.d.ts +6 -0
- package/build/src/services/accounts/AccountsProxyInfoService.js +40 -0
- package/build/src/services/accounts/AccountsProxyInfoService.js.map +1 -0
- package/build/src/services/accounts/AccountsProxyInfoService.spec.d.ts +1 -0
- package/build/src/services/accounts/AccountsProxyInfoService.spec.js +77 -0
- package/build/src/services/accounts/AccountsProxyInfoService.spec.js.map +1 -0
- package/build/src/services/accounts/AccountsStakingPayoutsService.d.ts +16 -4
- package/build/src/services/accounts/AccountsStakingPayoutsService.js +55 -8
- package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingPayoutsService.spec.js +116 -115
- package/build/src/services/accounts/AccountsStakingPayoutsService.spec.js.map +1 -1
- package/build/src/services/accounts/index.d.ts +1 -0
- package/build/src/services/accounts/index.js +1 -0
- package/build/src/services/accounts/index.js.map +1 -1
- package/build/src/types/responses/AccountProxyInfo.d.ts +8 -0
- package/build/src/types/responses/AccountProxyInfo.js +18 -0
- package/build/src/types/responses/AccountProxyInfo.js.map +1 -0
- package/build/src/types/responses/index.d.ts +1 -0
- package/build/src/types/responses/index.js +1 -0
- package/build/src/types/responses/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -28,10 +28,11 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
|
|
|
28
28
|
* @param depth number of eras to query at and below the specified era
|
|
29
29
|
* @param era the most recent era to query
|
|
30
30
|
* @param unclaimedOnly whether or not to only show unclaimed payouts
|
|
31
|
+
* @param currentEra The current era
|
|
32
|
+
* @param historicApi Historic api for querying past blocks
|
|
31
33
|
*/
|
|
32
|
-
async fetchAccountStakingPayout(hash, address, depth, era, unclaimedOnly, currentEra) {
|
|
34
|
+
async fetchAccountStakingPayout(hash, address, depth, era, unclaimedOnly, currentEra, historicApi) {
|
|
33
35
|
const { api } = this;
|
|
34
|
-
const historicApi = await api.at(hash);
|
|
35
36
|
const { number } = await api.rpc.chain.getHeader(hash);
|
|
36
37
|
/**
|
|
37
38
|
* Given https://github.com/polkadot-js/api/issues/5232,
|
|
@@ -63,7 +64,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
|
|
|
63
64
|
// User friendly - we don't error if the user specified era & depth combo <= 0, instead just start at 0
|
|
64
65
|
const startEra = Math.max(0, era - (depth - 1));
|
|
65
66
|
// Fetch general data about the era
|
|
66
|
-
const allErasGeneral = await this.fetchAllErasGeneral(
|
|
67
|
+
const allErasGeneral = await this.fetchAllErasGeneral(historicApi, startEra, era);
|
|
67
68
|
// With the general data, we can now fetch the commission of each validator `address` nominates
|
|
68
69
|
const allErasCommissions = await this.fetchAllErasCommissions(historicApi, address, startEra,
|
|
69
70
|
// Create an array of `DeriveEraExposure`
|
|
@@ -103,12 +104,12 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
|
|
|
103
104
|
* @param startEra first era to get data for
|
|
104
105
|
* @param era the last era to get data for
|
|
105
106
|
*/
|
|
106
|
-
async fetchAllErasGeneral(
|
|
107
|
+
async fetchAllErasGeneral(historicApi, startEra, era) {
|
|
107
108
|
const allDeriveQuerys = [];
|
|
108
109
|
for (let e = startEra; e <= era; e += 1) {
|
|
109
110
|
const eraIndex = historicApi.registry.createType('EraIndex', e);
|
|
110
111
|
const eraGeneralTuple = Promise.all([
|
|
111
|
-
|
|
112
|
+
this.deriveEraExposure(historicApi, eraIndex),
|
|
112
113
|
historicApi.query.staking.erasRewardPoints(eraIndex),
|
|
113
114
|
historicApi.query.staking.erasValidatorReward(eraIndex),
|
|
114
115
|
]);
|
|
@@ -176,14 +177,32 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
|
|
|
176
177
|
if (!validatorLedger) {
|
|
177
178
|
continue;
|
|
178
179
|
}
|
|
179
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Check if the reward has already been claimed.
|
|
182
|
+
*
|
|
183
|
+
* It is important to note that the following examines types that are both current and historic.
|
|
184
|
+
* When going back far enough in certain chains types such as `StakingLedgerTo240` are necessary for grabbing
|
|
185
|
+
* any reward data.
|
|
186
|
+
*/
|
|
180
187
|
let indexOfEra;
|
|
181
188
|
if (validatorLedger.legacyClaimedRewards) {
|
|
182
189
|
indexOfEra = validatorLedger.legacyClaimedRewards.indexOf(eraIndex);
|
|
183
190
|
}
|
|
184
|
-
else {
|
|
191
|
+
else if (validatorLedger.claimedRewards) {
|
|
185
192
|
indexOfEra = validatorLedger.claimedRewards.indexOf(eraIndex);
|
|
186
193
|
}
|
|
194
|
+
else if (validatorLedger.lastReward) {
|
|
195
|
+
const lastReward = validatorLedger.lastReward;
|
|
196
|
+
if (lastReward.isSome) {
|
|
197
|
+
indexOfEra = validatorLedger.lastReward.unwrap().toNumber();
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
187
206
|
const claimed = Number.isInteger(indexOfEra) && indexOfEra !== -1;
|
|
188
207
|
if (unclaimedOnly && claimed) {
|
|
189
208
|
continue;
|
|
@@ -245,6 +264,34 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
|
|
|
245
264
|
}
|
|
246
265
|
return { commission, validatorLedger };
|
|
247
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Copyright 2024 via polkadot-js/api
|
|
269
|
+
* The following code was adopted by https://github.com/polkadot-js/api/blob/3bdf49b0428a62f16b3222b9a31bfefa43c1ca55/packages/api-derive/src/staking/erasExposure.ts.
|
|
270
|
+
*
|
|
271
|
+
* The original version uses the base ApiDerive implementation which does not include the ApiDecoration implementation.
|
|
272
|
+
* It is required in this version to query older blocks for their historic data.
|
|
273
|
+
*
|
|
274
|
+
* @param historicApi
|
|
275
|
+
* @param eraIndex
|
|
276
|
+
*/
|
|
277
|
+
async deriveEraExposure(historicApi, eraIndex) {
|
|
278
|
+
function mapStakers(era, stakers) {
|
|
279
|
+
const nominators = {};
|
|
280
|
+
const validators = {};
|
|
281
|
+
stakers.forEach(([key, exposure]) => {
|
|
282
|
+
const validatorId = key.args[1].toString();
|
|
283
|
+
validators[validatorId] = exposure;
|
|
284
|
+
exposure.others.forEach(({ who }, validatorIndex) => {
|
|
285
|
+
const nominatorId = who.toString();
|
|
286
|
+
nominators[nominatorId] = nominators[nominatorId] || [];
|
|
287
|
+
nominators[nominatorId].push({ validatorId, validatorIndex });
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
return { era, nominators, validators };
|
|
291
|
+
}
|
|
292
|
+
const eraExposure = await historicApi.query.staking.erasStakersClipped.entries(eraIndex);
|
|
293
|
+
return mapStakers(eraIndex, eraExposure);
|
|
294
|
+
}
|
|
248
295
|
/**
|
|
249
296
|
* Extract the reward points of `validatorId` from `EraRewardPoints`.
|
|
250
297
|
*
|
|
@@ -287,7 +334,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
|
|
|
287
334
|
* themself.
|
|
288
335
|
*
|
|
289
336
|
* @param address address of the _Stash_ account to get the payouts of
|
|
290
|
-
* @param deriveEraExposure result of
|
|
337
|
+
* @param deriveEraExposure result of deriveEraExposure
|
|
291
338
|
*/
|
|
292
339
|
deriveNominatedExposures(address, deriveEraExposure) {
|
|
293
340
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsStakingPayoutsService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;
|
|
1
|
+
{"version":3,"file":"AccountsStakingPayoutsService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -14,57 +14,19 @@
|
|
|
14
14
|
//
|
|
15
15
|
// You should have received a copy of the GNU General Public License
|
|
16
16
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
-
};
|
|
20
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
const
|
|
22
|
-
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
18
|
+
const sanitize_1 = require("../../sanitize");
|
|
23
19
|
const registries_1 = require("../../test-helpers/registries");
|
|
24
20
|
const mock_1 = require("../test-helpers/mock");
|
|
25
21
|
const accounts_1 = require("../test-helpers/mock/accounts");
|
|
26
|
-
const stakingPayout_json_1 = __importDefault(require("../test-helpers/responses/accounts/stakingPayout.json"));
|
|
27
22
|
const AccountsStakingPayoutsService_1 = require("./AccountsStakingPayoutsService");
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* This test suite also uses polkadotRegistryV9122
|
|
34
|
-
*/
|
|
35
|
-
/**
|
|
36
|
-
* Acts as a placeholder variable for some tests where the era isn't an instrumental
|
|
37
|
-
* factor to the test logic.
|
|
38
|
-
*/
|
|
39
|
-
const era = registries_1.polkadotRegistryV9122.createType('EraIndex', 532);
|
|
40
|
-
const historyDepthAt = registries_1.polkadotRegistryV9122.createType('u32', 84);
|
|
41
|
-
const erasRewardPointsAt = (_eraIndex) => Promise.resolve().then(() => {
|
|
42
|
-
return registries_1.polkadotRegistryV9122.createType('PalletStakingEraRewardPoints', accounts_1.mockEraRewardPoints);
|
|
43
|
-
});
|
|
44
|
-
const erasValidatorRewardAt = (_eraIndex) => Promise.resolve().then(() => {
|
|
45
|
-
return registries_1.polkadotRegistryV9122.createType('Option<BalanceOf>', 2426740332127971);
|
|
46
|
-
});
|
|
47
|
-
const erasValidatorPrefsAt = (_era, _validatorId) => Promise.resolve().then(() => {
|
|
48
|
-
return registries_1.polkadotRegistryV9122.createType('PalletStakingValidatorPrefs', {
|
|
49
|
-
commission: 10000000,
|
|
50
|
-
blocked: false,
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
const bondedAt = (_validatorId) => Promise.resolve().then(() => {
|
|
54
|
-
return registries_1.polkadotRegistryV9122.createType('Option<AccountId32>', '1ZMbuCR3QiatxRsQdNnJYgydn3CWV4PELcTzpH4TNoNjxno');
|
|
55
|
-
});
|
|
56
|
-
const ledgerAt = (_validatorId) => Promise.resolve().then(() => {
|
|
57
|
-
return registries_1.polkadotRegistryV9122.createType('Option<PalletStakingStakingLedger>', accounts_1.mockLedger);
|
|
58
|
-
});
|
|
59
|
-
const deriveEraExposure = (_eraIndex) => Promise.resolve().then(() => {
|
|
60
|
-
return {
|
|
61
|
-
era,
|
|
62
|
-
nominators: accounts_1.mockDeriveNominatedExposure,
|
|
63
|
-
validators: accounts_1.mockDeriveValidatorExposure,
|
|
64
|
-
};
|
|
65
|
-
});
|
|
23
|
+
const eraIndex = registries_1.polkadotRegistryV1000001.createType('EraIndex', accounts_1.ERA);
|
|
24
|
+
const historyDepthAt = registries_1.polkadotRegistryV1000001.createType('u32', 84);
|
|
25
|
+
const blockHash = registries_1.polkadotRegistryV1000001.createType('BlockHash', '0xfb8e0fd1366f4b9b3a79864299d7f70a83f44d48cbf9ac135f2d92d9680806a8');
|
|
26
|
+
const validator = '16Divajwsc8nq8NLQUfVyDjbG18xp6GrAS4GSDVBTwm6eY27';
|
|
27
|
+
const nominator = '15j4dg5GzsL1bw2U2AWgeyAk6QTxq43V7ZPbXdAmbVLjvDCK';
|
|
66
28
|
const mockHistoricApi = {
|
|
67
|
-
registry: registries_1.
|
|
29
|
+
registry: registries_1.polkadotRegistryV1000001,
|
|
68
30
|
consts: {
|
|
69
31
|
staking: {
|
|
70
32
|
historyDepth: historyDepthAt,
|
|
@@ -72,97 +34,136 @@ const mockHistoricApi = {
|
|
|
72
34
|
},
|
|
73
35
|
query: {
|
|
74
36
|
staking: {
|
|
75
|
-
ledger: ledgerAt,
|
|
76
|
-
erasRewardPoints: erasRewardPointsAt,
|
|
77
|
-
erasValidatorReward: erasValidatorRewardAt,
|
|
78
|
-
erasValidatorPrefs: erasValidatorPrefsAt,
|
|
79
|
-
bonded: bondedAt,
|
|
37
|
+
ledger: accounts_1.ledgerAt,
|
|
38
|
+
erasRewardPoints: accounts_1.erasRewardPointsAt,
|
|
39
|
+
erasValidatorReward: accounts_1.erasValidatorRewardAt,
|
|
40
|
+
erasValidatorPrefs: accounts_1.erasValidatorPrefsAt,
|
|
41
|
+
bonded: accounts_1.bondedAt,
|
|
42
|
+
erasStakersClipped: {
|
|
43
|
+
entries: accounts_1.erasStakersClippedAt,
|
|
44
|
+
},
|
|
80
45
|
},
|
|
81
46
|
},
|
|
82
47
|
};
|
|
83
48
|
const mockApi = {
|
|
84
49
|
...mock_1.defaultMockApi,
|
|
85
|
-
derive: {
|
|
86
|
-
staking: {
|
|
87
|
-
eraExposure: deriveEraExposure,
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
50
|
at: (_hash) => mockHistoricApi,
|
|
91
51
|
};
|
|
92
52
|
const stakingPayoutsService = new AccountsStakingPayoutsService_1.AccountsStakingPayoutsService(mockApi);
|
|
93
53
|
describe('AccountsStakingPayoutsService', () => {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual({
|
|
121
|
-
nominatorExposure: '33223051661066606',
|
|
122
|
-
totalExposure: '33223251661066606',
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
it('`extractExposure` should return the correct value when the address is a validator', () => {
|
|
126
|
-
const res = stakingPayoutsService['extractExposure'](validator, validator, derivedExposure);
|
|
127
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual({
|
|
128
|
-
nominatorExposure: '200000000000',
|
|
129
|
-
totalExposure: '33223251661066606',
|
|
54
|
+
describe('fetchAccountStakingPayout', () => {
|
|
55
|
+
it('Should work with a validator address', async () => {
|
|
56
|
+
const res = await stakingPayoutsService.fetchAccountStakingPayout(blockHash, validator, 1, accounts_1.ERA, false, accounts_1.ERA + 1, mockHistoricApi);
|
|
57
|
+
expect((0, sanitize_1.sanitizeNumbers)(res)).toStrictEqual({
|
|
58
|
+
at: {
|
|
59
|
+
height: '789629',
|
|
60
|
+
hash: '0xfb8e0fd1366f4b9b3a79864299d7f70a83f44d48cbf9ac135f2d92d9680806a8',
|
|
61
|
+
},
|
|
62
|
+
erasPayouts: [
|
|
63
|
+
{
|
|
64
|
+
era: '1039',
|
|
65
|
+
payouts: [
|
|
66
|
+
{
|
|
67
|
+
claimed: true,
|
|
68
|
+
nominatorExposure: '0',
|
|
69
|
+
nominatorStakingPayout: '1043968334900993560134832959396203124',
|
|
70
|
+
totalValidatorExposure: '17302617747768368',
|
|
71
|
+
totalValidatorRewardPoints: '78920',
|
|
72
|
+
validatorCommission: '1000000000',
|
|
73
|
+
validatorId: '16Divajwsc8nq8NLQUfVyDjbG18xp6GrAS4GSDVBTwm6eY27',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
totalEraPayout: '308747987428782798114933729373649371136',
|
|
77
|
+
totalEraRewardPoints: '23340160',
|
|
78
|
+
},
|
|
79
|
+
],
|
|
130
80
|
});
|
|
131
81
|
});
|
|
132
|
-
it('
|
|
133
|
-
const res = stakingPayoutsService
|
|
134
|
-
|
|
135
|
-
{
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
validatorId: '12JZr1HgK8w6zsbBj6oAEVRkvisn8j3MrkXugqtvc4E8uwLo',
|
|
141
|
-
validatorIndex: '9999',
|
|
82
|
+
it('Should work with a nominator address', async () => {
|
|
83
|
+
const res = await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 1, accounts_1.ERA, false, accounts_1.ERA + 1, mockHistoricApi);
|
|
84
|
+
expect((0, sanitize_1.sanitizeNumbers)(res)).toStrictEqual({
|
|
85
|
+
at: {
|
|
86
|
+
height: '789629',
|
|
87
|
+
hash: '0xfb8e0fd1366f4b9b3a79864299d7f70a83f44d48cbf9ac135f2d92d9680806a8',
|
|
142
88
|
},
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
89
|
+
erasPayouts: [
|
|
90
|
+
{
|
|
91
|
+
era: '1039',
|
|
92
|
+
payouts: [
|
|
93
|
+
{
|
|
94
|
+
claimed: true,
|
|
95
|
+
nominatorExposure: '21133134966048676',
|
|
96
|
+
nominatorStakingPayout: '0',
|
|
97
|
+
totalValidatorExposure: '21133134966048676',
|
|
98
|
+
totalValidatorRewardPoints: '97620',
|
|
99
|
+
validatorCommission: '1000000000',
|
|
100
|
+
validatorId: '16hzCDgyqnm1tskDccVWqxDVXYDLgdrrpC4Guxu3gPgLe5ib',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
totalEraPayout: '308747987428782798114933729373649371136',
|
|
104
|
+
totalEraRewardPoints: '23340160',
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
});
|
|
149
108
|
});
|
|
150
|
-
});
|
|
151
|
-
describe('Correct errors', () => {
|
|
152
109
|
it('Should throw an error when the depth is greater than the historyDepth', () => {
|
|
153
110
|
const serviceCall = async () => {
|
|
154
|
-
await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 85,
|
|
111
|
+
await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 85, accounts_1.ERA, true, accounts_1.ERA + 1, mockHistoricApi);
|
|
155
112
|
};
|
|
156
113
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
157
|
-
expect(serviceCall()).rejects.toThrow(
|
|
114
|
+
expect(serviceCall()).rejects.toThrow('Must specify a depth less than history_depth');
|
|
158
115
|
});
|
|
159
116
|
it('Should throw an error inputted era and historydepth is invalid', () => {
|
|
160
117
|
const serviceCall = async () => {
|
|
161
|
-
await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 1,
|
|
118
|
+
await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 1, accounts_1.ERA, true, accounts_1.ERA + 134, mockHistoricApi);
|
|
162
119
|
};
|
|
163
120
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
164
|
-
expect(serviceCall()).rejects.toThrow(
|
|
165
|
-
'than or equal to current_era - history_depth.')
|
|
121
|
+
expect(serviceCall()).rejects.toThrow('Must specify era and depth such that era - (depth - 1) is less ' +
|
|
122
|
+
'than or equal to current_era - history_depth.');
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
describe('extractExposure', () => {
|
|
126
|
+
it('Should work when the address is a nominator', () => {
|
|
127
|
+
const nom = '15j4dg5GzsL1bw2U2AWgeyAk6QTxq43V7ZPbXdAmbVLjvDCK';
|
|
128
|
+
const val = '16hzCDgyqnm1tskDccVWqxDVXYDLgdrrpC4Guxu3gPgLe5ib';
|
|
129
|
+
const res = stakingPayoutsService['extractExposure'](nom, val, accounts_1.deriveEraExposureParam);
|
|
130
|
+
expect((0, sanitize_1.sanitizeNumbers)(res)).toStrictEqual({
|
|
131
|
+
nominatorExposure: '21133134966048676',
|
|
132
|
+
totalExposure: '21133134966048676',
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
it('Should work when the address is a validator', () => {
|
|
136
|
+
const val = '16hzCDgyqnm1tskDccVWqxDVXYDLgdrrpC4Guxu3gPgLe5ib';
|
|
137
|
+
const res = stakingPayoutsService['extractExposure'](val, val, accounts_1.deriveEraExposureParam);
|
|
138
|
+
expect((0, sanitize_1.sanitizeNumbers)(res)).toStrictEqual({
|
|
139
|
+
nominatorExposure: '0',
|
|
140
|
+
totalExposure: '21133134966048676',
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
describe('extractTotalValidatorRewardPoints', () => {
|
|
145
|
+
it('Should return the correct rewards', async () => {
|
|
146
|
+
const rewards = await (0, accounts_1.erasRewardPointsAt)(eraIndex);
|
|
147
|
+
const res = stakingPayoutsService['extractTotalValidatorRewardPoints'](rewards, validator);
|
|
148
|
+
expect((0, sanitize_1.sanitizeNumbers)(res)).toBe('78920');
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
describe('deriveNominatedExposures', () => {
|
|
152
|
+
const res = stakingPayoutsService['deriveNominatedExposures'](nominator, accounts_1.deriveEraExposureParam);
|
|
153
|
+
expect((0, sanitize_1.sanitizeNumbers)(res)).toStrictEqual([
|
|
154
|
+
{
|
|
155
|
+
validatorId: '16hzCDgyqnm1tskDccVWqxDVXYDLgdrrpC4Guxu3gPgLe5ib',
|
|
156
|
+
validatorIndex: '0',
|
|
157
|
+
},
|
|
158
|
+
]);
|
|
159
|
+
});
|
|
160
|
+
describe('deriveEraExposure', () => {
|
|
161
|
+
it('Should return the correct derived value', async () => {
|
|
162
|
+
const res = await stakingPayoutsService[`deriveEraExposure`](mockHistoricApi, eraIndex);
|
|
163
|
+
// We check the length of the values since the data is so large.
|
|
164
|
+
expect(res.era.toString()).toEqual('1039');
|
|
165
|
+
expect(Object.keys(res.nominators).length).toEqual(201);
|
|
166
|
+
expect(Object.keys(res.validators).length).toEqual(3);
|
|
166
167
|
});
|
|
167
168
|
});
|
|
168
169
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsStakingPayoutsService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.spec.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE
|
|
1
|
+
{"version":3,"file":"AccountsStakingPayoutsService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ export * from './AccountsAssetsService';
|
|
|
2
2
|
export * from './AccountsBalanceInfoService';
|
|
3
3
|
export * from './AccountsConvertService';
|
|
4
4
|
export * from './AccountsPoolAssetsService';
|
|
5
|
+
export * from './AccountsProxyInfoService';
|
|
5
6
|
export * from './AccountsStakingInfoService';
|
|
6
7
|
export * from './AccountsStakingPayoutsService';
|
|
7
8
|
export * from './AccountsValidateService';
|
|
@@ -33,6 +33,7 @@ __exportStar(require("./AccountsAssetsService"), exports);
|
|
|
33
33
|
__exportStar(require("./AccountsBalanceInfoService"), exports);
|
|
34
34
|
__exportStar(require("./AccountsConvertService"), exports);
|
|
35
35
|
__exportStar(require("./AccountsPoolAssetsService"), exports);
|
|
36
|
+
__exportStar(require("./AccountsProxyInfoService"), exports);
|
|
36
37
|
__exportStar(require("./AccountsStakingInfoService"), exports);
|
|
37
38
|
__exportStar(require("./AccountsStakingPayoutsService"), exports);
|
|
38
39
|
__exportStar(require("./AccountsValidateService"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/accounts/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;;;;;;;;;;;AAExE,0DAAwC;AACxC,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,+DAA6C;AAC7C,kEAAgD;AAChD,4DAA0C;AAC1C,+DAA6C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/accounts/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;;;;;;;;;;;AAExE,0DAAwC;AACxC,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,kEAAgD;AAChD,4DAA0C;AAC1C,+DAA6C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { u128, Vec } from '@polkadot/types';
|
|
2
|
+
import type { PalletProxyProxyDefinition } from '@polkadot/types/lookup';
|
|
3
|
+
import type { IAt } from './';
|
|
4
|
+
export interface AccountsProxyInfo {
|
|
5
|
+
at: IAt;
|
|
6
|
+
delegatedAccounts: Vec<PalletProxyProxyDefinition>;
|
|
7
|
+
depositHeld: u128;
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
|
+
// This file is part of Substrate API Sidecar.
|
|
4
|
+
//
|
|
5
|
+
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
6
|
+
// it under the terms of the GNU General Public License as published by
|
|
7
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
// (at your option) any later version.
|
|
9
|
+
//
|
|
10
|
+
// This program is distributed in the hope that it will be useful,
|
|
11
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
// GNU General Public License for more details.
|
|
14
|
+
//
|
|
15
|
+
// You should have received a copy of the GNU General Public License
|
|
16
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=AccountProxyInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountProxyInfo.js","sourceRoot":"","sources":["../../../../src/types/responses/AccountProxyInfo.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE"}
|
|
@@ -2,6 +2,7 @@ export * from './AccountAssets';
|
|
|
2
2
|
export * from './AccountBalanceInfo';
|
|
3
3
|
export * from './AccountConvert';
|
|
4
4
|
export * from './AccountPoolAssets';
|
|
5
|
+
export * from './AccountProxyInfo';
|
|
5
6
|
export * from './AccountStakingInfo';
|
|
6
7
|
export * from './AccountStakingPayouts';
|
|
7
8
|
export * from './AccountVestingInfo';
|
|
@@ -33,6 +33,7 @@ __exportStar(require("./AccountAssets"), exports);
|
|
|
33
33
|
__exportStar(require("./AccountBalanceInfo"), exports);
|
|
34
34
|
__exportStar(require("./AccountConvert"), exports);
|
|
35
35
|
__exportStar(require("./AccountPoolAssets"), exports);
|
|
36
|
+
__exportStar(require("./AccountProxyInfo"), exports);
|
|
36
37
|
__exportStar(require("./AccountStakingInfo"), exports);
|
|
37
38
|
__exportStar(require("./AccountStakingPayouts"), exports);
|
|
38
39
|
__exportStar(require("./AccountVestingInfo"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/responses/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;;;;;;;;;;;AAExE,kDAAgC;AAChC,uDAAqC;AACrC,mDAAiC;AACjC,sDAAoC;AACpC,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,6CAA2B;AAC3B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,2CAAyB;AACzB,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC;AACtC,wDAAsC;AACtC,4DAA0C;AAC1C,iDAA+B;AAC/B,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,0DAAwC;AACxC,0DAAwC;AACxC,4DAA0C;AAC1C,kDAAgC;AAChC,sDAAoC;AACpC,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,mDAAiC;AACjC,+DAA6C;AAC7C,iEAA+C;AAC/C,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/responses/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;;;;;;;;;;;AAExE,kDAAgC;AAChC,uDAAqC;AACrC,mDAAiC;AACjC,sDAAoC;AACpC,qDAAmC;AACnC,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,6CAA2B;AAC3B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,2CAAyB;AACzB,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC;AACtC,wDAAsC;AACtC,4DAA0C;AAC1C,iDAA+B;AAC/B,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,0DAAwC;AACxC,0DAAwC;AACxC,4DAA0C;AAC1C,kDAAgC;AAChC,sDAAoC;AACpC,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,mDAAiC;AACjC,+DAA6C;AAC7C,iEAA+C;AAC/C,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "17.
|
|
2
|
+
"version": "17.5.1",
|
|
3
3
|
"name": "@substrate/api-sidecar",
|
|
4
4
|
"description": "REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.",
|
|
5
5
|
"homepage": "https://github.com/paritytech/substrate-api-sidecar#readme",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"polkadot",
|
|
83
83
|
"kusama"
|
|
84
84
|
],
|
|
85
|
-
"packageManager": "yarn@4.0
|
|
85
|
+
"packageManager": "yarn@4.1.0"
|
|
86
86
|
}
|