@substrate/api-sidecar 9.1.8 → 10.0.0
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/README.md +7 -4
- package/build/package.json +17 -19
- package/build/src/chains-config/index.js +2 -0
- package/build/src/chains-config/index.js.map +1 -1
- package/build/src/chains-config/metadata-consts/index.js +3 -0
- package/build/src/chains-config/metadata-consts/index.js.map +1 -1
- package/build/src/chains-config/metadata-consts/kusamaConsts.js +4 -1
- package/build/src/chains-config/metadata-consts/kusamaConsts.js.map +1 -1
- package/build/src/chains-config/metadata-consts/polkadotConsts.js +4 -1
- package/build/src/chains-config/metadata-consts/polkadotConsts.js.map +1 -1
- package/build/src/chains-config/metadata-consts/shidenConsts.d.ts +2 -0
- package/build/src/chains-config/metadata-consts/shidenConsts.js +20 -0
- package/build/src/chains-config/metadata-consts/shidenConsts.js.map +1 -0
- package/build/src/chains-config/metadata-consts/westendConsts.js +4 -1
- package/build/src/chains-config/metadata-consts/westendConsts.js.map +1 -1
- package/build/src/chains-config/shidenControllers.d.ts +5 -0
- package/build/src/chains-config/shidenControllers.js +36 -0
- package/build/src/chains-config/shidenControllers.js.map +1 -0
- package/build/src/controllers/blocks/BlocksController.js +5 -2
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +2 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/controllers/pallets/PalletsStorageController.js +12 -6
- package/build/src/controllers/pallets/PalletsStorageController.js.map +1 -1
- package/build/src/main.js +0 -0
- package/build/src/services/accounts/AccountsAssetsService.js +1 -1
- package/build/src/services/accounts/AccountsAssetsService.js.map +1 -1
- package/build/src/services/accounts/AccountsAssetsService.spec.js +107 -1
- package/build/src/services/accounts/AccountsAssetsService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsBalanceInfoService.spec.js +80 -45
- package/build/src/services/accounts/AccountsBalanceInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.d.ts +4 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js +23 -7
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsVestingInfoService.spec.js +11 -1
- package/build/src/services/accounts/AccountsVestingInfoService.spec.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +2 -1
- package/build/src/services/blocks/BlocksService.js +31 -26
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +80 -41
- package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
- package/build/src/services/blocks/BlocksTraceService.spec.js +1 -1
- package/build/src/services/blocks/BlocksTraceService.spec.js.map +1 -1
- package/build/src/services/node/NodeNetworkService.spec.js +1 -1
- package/build/src/services/node/NodeNetworkService.spec.js.map +1 -1
- package/build/src/services/node/NodeTransactionPoolService.spec.js +5 -5
- package/build/src/services/node/NodeTransactionPoolService.spec.js.map +1 -1
- package/build/src/services/node/NodeVersionService.spec.js +1 -1
- package/build/src/services/node/NodeVersionService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsAssetsService.spec.js +113 -1
- package/build/src/services/pallets/PalletsAssetsService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsStakingProgressService.spec.js +48 -7
- package/build/src/services/pallets/PalletsStakingProgressService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsStorageService.d.ts +14 -2
- package/build/src/services/pallets/PalletsStorageService.js +56 -11
- package/build/src/services/pallets/PalletsStorageService.js.map +1 -1
- package/build/src/services/pallets/PalletsStorageService.spec.js +29 -7
- package/build/src/services/pallets/PalletsStorageService.spec.js.map +1 -1
- package/build/src/services/paras/ParasService.spec.d.ts +10 -1
- package/build/src/services/paras/ParasService.spec.js +201 -8
- package/build/src/services/paras/ParasService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeCodeService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeCodeService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeSpecService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeSpecService.spec.js.map +1 -1
- package/build/src/services/test-helpers/mock/data/block789629.json +2 -2
- package/build/src/services/test-helpers/mock/data/blocks789629Fork.json +2 -2
- package/build/src/services/test-helpers/mock/mockApi.d.ts +4 -12
- package/build/src/services/test-helpers/mock/mockApi.js +3 -377
- package/build/src/services/test-helpers/mock/mockApi.js.map +1 -1
- package/build/src/services/test-helpers/responses/blocks/block789629Extrinsic.json +3 -0
- package/build/src/services/test-helpers/responses/blocks/blocks789629.json +99 -154
- package/build/src/services/transaction/TransactionFeeEstimateService.spec.js +6 -3
- package/build/src/services/transaction/TransactionFeeEstimateService.spec.js.map +1 -1
- package/build/src/services/transaction/TransactionMaterialService.spec.js +1 -1
- package/build/src/services/transaction/TransactionMaterialService.spec.js.map +1 -1
- package/build/src/services/transaction/TransactionSubmitService.spec.js +8 -7
- package/build/src/services/transaction/TransactionSubmitService.spec.js.map +1 -1
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.d.ts +1 -0
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.js +5 -0
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.js.map +1 -0
- package/build/src/test-helpers/registries/polkadotRegistry.d.ts +4 -0
- package/build/src/test-helpers/registries/polkadotRegistry.js +6 -1
- package/build/src/test-helpers/registries/polkadotRegistry.js.map +1 -1
- package/package.json +17 -19
|
@@ -4,52 +4,107 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
7
|
-
const metadata_1 = require("../../test-helpers/metadata/metadata");
|
|
8
7
|
const registries_1 = require("../../test-helpers/registries");
|
|
9
|
-
const typeFactory_1 = require("../../test-helpers/typeFactory");
|
|
10
8
|
const mock_1 = require("../test-helpers/mock");
|
|
9
|
+
const events789629Hex_1 = require("../test-helpers/mock/data/events789629Hex");
|
|
11
10
|
const balanceInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/balanceInfo789629.json"));
|
|
12
11
|
const AccountsBalanceInfoService_1 = require("./AccountsBalanceInfoService");
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
12
|
+
const eventsAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<EventRecord>', events789629Hex_1.events789629));
|
|
13
|
+
const locksAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'));
|
|
14
|
+
const accountAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('AccountInfo', '0x0600000003dbb656ab7400000000000000000000000000000000000000000000000000000000e8764817000000000000000000000000e87648170000000000000000000000'));
|
|
15
|
+
const freeBalance = async () => registries_1.polkadotRegistry.createType('Balance', 123456789);
|
|
16
|
+
const mockHistoricApi = {
|
|
18
17
|
query: {
|
|
19
18
|
balances: {
|
|
20
|
-
freeBalance
|
|
19
|
+
freeBalance,
|
|
21
20
|
reservedBalance: async () => registries_1.polkadotRegistry.createType('Balance', 1),
|
|
22
|
-
locks: async () => registries_1.polkadotRegistry.createType('Vec<BalanceLock>',
|
|
21
|
+
locks: async () => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'),
|
|
23
22
|
},
|
|
24
23
|
system: {
|
|
25
24
|
accountNonce: async () => registries_1.polkadotRegistry.createType('Index', 1),
|
|
25
|
+
account: accountAt,
|
|
26
26
|
},
|
|
27
27
|
},
|
|
28
28
|
};
|
|
29
|
+
const queryMockApi = {
|
|
30
|
+
query: {
|
|
31
|
+
system: {
|
|
32
|
+
events: eventsAt,
|
|
33
|
+
account: { at: accountAt },
|
|
34
|
+
},
|
|
35
|
+
balances: {
|
|
36
|
+
locks: { at: locksAt },
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const mockApi = {
|
|
41
|
+
...mock_1.defaultMockApi,
|
|
42
|
+
...queryMockApi,
|
|
43
|
+
at: (_hash) => mockHistoricApi,
|
|
44
|
+
};
|
|
45
|
+
const accountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(mockApi);
|
|
29
46
|
describe('AccountsBalanceInfoService', () => {
|
|
30
47
|
describe('fetchAccountBalanceInfo', () => {
|
|
31
48
|
it('works when ApiPromise works (block 789629)', async () => {
|
|
32
|
-
|
|
49
|
+
const tempHistoricApi = { ...mockHistoricApi };
|
|
50
|
+
tempHistoricApi.query.balances.freeBalance = undefined;
|
|
51
|
+
const tempMockApi = {
|
|
52
|
+
...mock_1.defaultMockApi,
|
|
53
|
+
...queryMockApi,
|
|
54
|
+
at: (_hash) => tempHistoricApi,
|
|
55
|
+
};
|
|
56
|
+
const tempAccountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(tempMockApi);
|
|
57
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tempAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT'))).toStrictEqual(balanceInfo789629_json_1.default);
|
|
58
|
+
});
|
|
59
|
+
it('Correctly queries historical blocks', async () => {
|
|
60
|
+
const result = await accountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT');
|
|
61
|
+
const expectedResponse = {
|
|
62
|
+
at: {
|
|
63
|
+
hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
|
|
64
|
+
height: '789629',
|
|
65
|
+
},
|
|
66
|
+
feeFrozen: '100000000000',
|
|
67
|
+
free: '501090793179',
|
|
68
|
+
locks: [
|
|
69
|
+
{
|
|
70
|
+
amount: '100000000000',
|
|
71
|
+
id: '0x7374616b696e6720',
|
|
72
|
+
reasons: 'All',
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
miscFrozen: '100000000000',
|
|
76
|
+
nonce: '6',
|
|
77
|
+
reserved: '0',
|
|
78
|
+
tokenSymbol: 'DOT',
|
|
79
|
+
};
|
|
80
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(result)).toStrictEqual(expectedResponse);
|
|
33
81
|
});
|
|
34
82
|
describe('token recognition', () => {
|
|
83
|
+
const tokenHistoricApi = { ...mockHistoricApi };
|
|
84
|
+
tokenHistoricApi.query.system.account = { at: true };
|
|
85
|
+
tokenHistoricApi.query.balances.freeBalance = undefined;
|
|
86
|
+
const tokenMockApi = {
|
|
87
|
+
...mock_1.defaultMockApi,
|
|
88
|
+
...queryMockApi,
|
|
89
|
+
at: (_hash) => tokenHistoricApi,
|
|
90
|
+
};
|
|
91
|
+
const tokenAccountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(tokenMockApi);
|
|
35
92
|
let tempQueryTokens, tempQueryBalance, mockTokensLocksAt, mockTokenAccountAt, mockBalancesLocksAt;
|
|
36
93
|
beforeAll(() => {
|
|
37
94
|
// Important: these temp values should never be reassinged. They are used so we can assign
|
|
38
95
|
// the mockApi properties back to their original values after this sub-section of tests run.
|
|
39
|
-
tempQueryTokens =
|
|
40
|
-
tempQueryBalance =
|
|
41
|
-
const tokensAccountAt = async (hash, address) => (await
|
|
96
|
+
tempQueryTokens = tokenMockApi.query.tokens;
|
|
97
|
+
tempQueryBalance = tokenMockApi.query.balances;
|
|
98
|
+
const tokensAccountAt = async (hash, address) => (await tokenMockApi.query.system.account.at(hash, address)).data;
|
|
42
99
|
// Wrap our functions in a jest mock so we can collect data on how they are called
|
|
43
|
-
mockTokensLocksAt = jest.fn(
|
|
100
|
+
mockTokensLocksAt = jest.fn(tokenMockApi.query.balances.locks.at);
|
|
44
101
|
mockTokenAccountAt = jest.fn(tokensAccountAt);
|
|
45
|
-
|
|
102
|
+
tokenMockApi.query.tokens = {
|
|
46
103
|
locks: { at: mockTokensLocksAt },
|
|
47
104
|
accounts: { at: mockTokenAccountAt },
|
|
48
105
|
};
|
|
49
|
-
mockBalancesLocksAt = jest.fn(
|
|
50
|
-
|
|
51
|
-
locks: { at: mockBalancesLocksAt },
|
|
52
|
-
};
|
|
106
|
+
mockBalancesLocksAt = jest.fn(tokenMockApi.query.balances.locks.at);
|
|
107
|
+
tokenMockApi.query.balances.locks.at = mockBalancesLocksAt;
|
|
53
108
|
});
|
|
54
109
|
afterEach(() => {
|
|
55
110
|
// Clear data about how the mocks where called after each `it` test.
|
|
@@ -58,45 +113,25 @@ describe('AccountsBalanceInfoService', () => {
|
|
|
58
113
|
mockBalancesLocksAt.mockClear();
|
|
59
114
|
});
|
|
60
115
|
afterAll(() => {
|
|
61
|
-
|
|
62
|
-
|
|
116
|
+
mockApi.query.tokens = tempQueryTokens;
|
|
117
|
+
mockApi.query.balances = tempQueryBalance;
|
|
63
118
|
});
|
|
64
119
|
it('only has `["DOT"]` (all uppercase chars) for the mockApi registry', () => {
|
|
65
|
-
expect(
|
|
66
|
-
expect(
|
|
120
|
+
expect(mockApi.registry.chainTokens).toStrictEqual(['DOT']);
|
|
121
|
+
expect(mockApi.registry.chainDecimals).toStrictEqual([12]);
|
|
67
122
|
});
|
|
68
123
|
it('querrys tokens pallet storage with a non-native token', async () => {
|
|
69
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await
|
|
124
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'fOoToKeN')).tokenSymbol).toEqual('fOoToKeN');
|
|
70
125
|
expect(mockTokensLocksAt).toBeCalled();
|
|
71
126
|
expect(mockTokenAccountAt).toBeCalled();
|
|
72
127
|
expect(mockBalancesLocksAt).not.toBeCalled();
|
|
73
128
|
});
|
|
74
129
|
it('does not query tokens pallet storage with the native token', async () => {
|
|
75
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await
|
|
130
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'doT')).tokenSymbol).toEqual('doT');
|
|
76
131
|
expect(mockTokensLocksAt).not.toBeCalled();
|
|
77
132
|
expect(mockTokenAccountAt).not.toBeCalled();
|
|
78
133
|
expect(mockBalancesLocksAt).toBeCalled();
|
|
79
134
|
});
|
|
80
|
-
it('Correctly queries historical blocks', async () => {
|
|
81
|
-
// Set the at to a historical runtime, before the storage key format changed
|
|
82
|
-
mock_1.mockApi.at = () => Promise.resolve().then(() => historicalMockApi);
|
|
83
|
-
const result = await accountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT');
|
|
84
|
-
const expectedResponse = {
|
|
85
|
-
at: {
|
|
86
|
-
hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
|
|
87
|
-
height: '789629',
|
|
88
|
-
},
|
|
89
|
-
feeFrozen: '0',
|
|
90
|
-
free: '123456789',
|
|
91
|
-
locks: [],
|
|
92
|
-
miscFrozen: '0',
|
|
93
|
-
nonce: '1',
|
|
94
|
-
reserved: '1',
|
|
95
|
-
tokenSymbol: 'DOT',
|
|
96
|
-
};
|
|
97
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(result)).toStrictEqual(expectedResponse);
|
|
98
|
-
mock_1.mockApi.at = async () => (0, typeFactory_1.createApiWithAugmentations)(metadata_1.polkadotMetadata.toHex());
|
|
99
|
-
});
|
|
100
135
|
});
|
|
101
136
|
});
|
|
102
137
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsBalanceInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.spec.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AccountsBalanceInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { Option } from '@polkadot/types';
|
|
2
|
+
import { AccountId, Hash, StakingLedger } from '@polkadot/types/interfaces';
|
|
3
|
+
export declare const bondedAt: (_hash: Hash, _address: string) => Promise<Option<AccountId>>;
|
|
4
|
+
export declare const ledgerAt: (_hash: Hash, _address: string) => Promise<Option<StakingLedger>>;
|
|
@@ -3,29 +3,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
6
|
+
exports.ledgerAt = exports.bondedAt = void 0;
|
|
8
7
|
const http_errors_1 = require("http-errors");
|
|
9
8
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
10
9
|
const registries_1 = require("../../test-helpers/registries");
|
|
11
10
|
const mock_1 = require("../test-helpers/mock");
|
|
12
11
|
const stakingInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/stakingInfo789629.json"));
|
|
13
12
|
const AccountsStakingInfoService_1 = require("./AccountsStakingInfoService");
|
|
14
|
-
const
|
|
13
|
+
const bondedAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<AccountId>', mock_1.testAddressController));
|
|
14
|
+
exports.bondedAt = bondedAt;
|
|
15
|
+
const ledgerAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<StakingLedger>', '0x2c2a55b5e0d28cc772b47bb9b25981cbb69eca73f7c3388fb6464e7d24be470e0700e87648170700e8764817008c000000000100000002000000030000000400000005000000060000000700000008000000090000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000'));
|
|
16
|
+
exports.ledgerAt = ledgerAt;
|
|
17
|
+
const payeeAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('RewardDestination', 'Controller'));
|
|
18
|
+
const slashingSpansAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('SlashingSpans'));
|
|
19
|
+
const mockApi = {
|
|
20
|
+
...mock_1.defaultMockApi,
|
|
21
|
+
query: {
|
|
22
|
+
staking: {
|
|
23
|
+
bonded: { at: exports.bondedAt },
|
|
24
|
+
ledger: { at: exports.ledgerAt },
|
|
25
|
+
payee: { at: payeeAt },
|
|
26
|
+
slashingSpans: { at: slashingSpansAt },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const accountStakingInfoService = new AccountsStakingInfoService_1.AccountsStakingInfoService(mockApi);
|
|
15
31
|
describe('AccountsStakingInfoService', () => {
|
|
16
32
|
describe('fetchAccountStakingInfo', () => {
|
|
17
33
|
it('works with a valid stash address (block 789629)', async () => {
|
|
18
34
|
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await accountStakingInfoService.fetchAccountStakingInfo(mock_1.blockHash789629, mock_1.testAddress))).toStrictEqual(stakingInfo789629_json_1.default);
|
|
19
35
|
});
|
|
20
36
|
it('throws a 400 when the given address is not a stash', async () => {
|
|
21
|
-
|
|
37
|
+
mockApi.query.staking.bonded.at = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<AccountId>', null));
|
|
22
38
|
await expect(accountStakingInfoService.fetchAccountStakingInfo(mock_1.blockHash789629, 'NotStash')).rejects.toStrictEqual(new http_errors_1.BadRequest('The address NotStash is not a stash address.'));
|
|
23
|
-
|
|
39
|
+
mockApi.query.staking.bonded.at = exports.bondedAt;
|
|
24
40
|
});
|
|
25
41
|
it('throws a 404 when the staking ledger cannot be found', async () => {
|
|
26
|
-
|
|
42
|
+
mockApi.query.staking.ledger.at = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<StakingLedger>', null));
|
|
27
43
|
await expect(accountStakingInfoService.fetchAccountStakingInfo(mock_1.blockHash789629, mock_1.testAddress)).rejects.toStrictEqual(new http_errors_1.InternalServerError(`Staking ledger could not be found for controller address "${mock_1.testAddressController.toString()}"`));
|
|
28
|
-
|
|
44
|
+
mockApi.query.staking.ledger.at = exports.ledgerAt;
|
|
29
45
|
});
|
|
30
46
|
});
|
|
31
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsStakingInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingInfoService.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccountsStakingInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingInfoService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
7
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
7
8
|
const mock_1 = require("../test-helpers/mock");
|
|
8
9
|
const vestingInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/vestingInfo789629.json"));
|
|
9
10
|
const AccountsVestingInfoService_1 = require("./AccountsVestingInfoService");
|
|
10
|
-
const
|
|
11
|
+
const vestingAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<VestingInfo>', null));
|
|
12
|
+
const mockApi = {
|
|
13
|
+
...mock_1.defaultMockApi,
|
|
14
|
+
query: {
|
|
15
|
+
vesting: {
|
|
16
|
+
vesting: { at: vestingAt },
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const accountsVestingInfoService = new AccountsVestingInfoService_1.AccountsVestingInfoService(mockApi);
|
|
11
21
|
describe('AccountVestingInfoService', () => {
|
|
12
22
|
describe('fetchAccountVestingInfo', () => {
|
|
13
23
|
it('works when ApiPromise works (block 789629)', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsVestingInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsVestingInfoService.spec.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AccountsVestingInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsVestingInfoService.spec.ts"],"names":[],"mappings":";;;;;AAGA,oEAAiE;AACjE,8DAAiE;AACjE,+CAI8B;AAC9B,uHAAuF;AACvF,6EAA0E;AAE1E,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,QAAgB,EAAE,EAAE,CACnD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3B,6BAAgB,CAAC,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC,CACxD,CAAC;AAEH,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;IACjB,KAAK,EAAE;QACN,OAAO,EAAE;YACR,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SAC1B;KACD;CACwB,CAAC;AAE3B,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAAC,OAAO,CAAC,CAAC;AAE3E,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,CACL,IAAA,iCAAe,EACd,MAAM,0BAA0B,CAAC,uBAAuB,CACvD,sBAAe,EACf,kBAAW,CACX,CACD,CACD,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ApiPromise } from '@polkadot/api';
|
|
2
|
+
import { ApiDecoration } from '@polkadot/api/types';
|
|
2
3
|
import { BlockHash, Header } from '@polkadot/types/interfaces';
|
|
3
4
|
import LRU from 'lru-cache';
|
|
4
5
|
import { BlockWeightStore } from '../../types/chains-config';
|
|
@@ -31,7 +32,7 @@ export declare class BlocksService extends AbstractService {
|
|
|
31
32
|
* @param hash `BlockHash` of the block to fetch.
|
|
32
33
|
* @param FetchBlockOptions options for additonal information.
|
|
33
34
|
*/
|
|
34
|
-
fetchBlock(hash: BlockHash, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag, }: FetchBlockOptions): Promise<IBlock>;
|
|
35
|
+
fetchBlock(hash: BlockHash, historicApi: ApiDecoration<'promise'>, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag, }: FetchBlockOptions): Promise<IBlock>;
|
|
35
36
|
/**
|
|
36
37
|
* Return the header of a block
|
|
37
38
|
*
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BlocksService = void 0;
|
|
4
|
+
const util_1 = require("@polkadot/api-derive/type/util");
|
|
4
5
|
const types_1 = require("@polkadot/types");
|
|
5
|
-
const
|
|
6
|
-
const util_1 = require("@polkadot/util");
|
|
6
|
+
const util_2 = require("@polkadot/util");
|
|
7
7
|
const util_crypto_1 = require("@polkadot/util-crypto");
|
|
8
8
|
const calc_1 = require("@substrate/calc");
|
|
9
9
|
const http_errors_1 = require("http-errors");
|
|
10
10
|
const chains_config_1 = require("../../types/chains-config");
|
|
11
11
|
const responses_1 = require("../../types/responses");
|
|
12
|
-
const
|
|
12
|
+
const util_3 = require("../../types/util");
|
|
13
13
|
const AbstractService_1 = require("../AbstractService");
|
|
14
14
|
/**
|
|
15
15
|
* Event methods that we check for.
|
|
@@ -32,7 +32,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
32
32
|
* @param hash `BlockHash` of the block to fetch.
|
|
33
33
|
* @param FetchBlockOptions options for additonal information.
|
|
34
34
|
*/
|
|
35
|
-
async fetchBlock(hash, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag, }) {
|
|
35
|
+
async fetchBlock(hash, historicApi, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag, }) {
|
|
36
36
|
var _a;
|
|
37
37
|
const { api } = this;
|
|
38
38
|
// Before making any api calls check the cache if the queried block exists
|
|
@@ -40,18 +40,19 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
40
40
|
if (isBlockCached) {
|
|
41
41
|
return isBlockCached;
|
|
42
42
|
}
|
|
43
|
-
const [
|
|
44
|
-
api.
|
|
45
|
-
|
|
43
|
+
const [{ block }, validators, events, finalizedHead] = await Promise.all([
|
|
44
|
+
api.rpc.chain.getBlock(hash),
|
|
45
|
+
historicApi.query.session.validators(),
|
|
46
|
+
this.fetchEvents(historicApi),
|
|
46
47
|
queryFinalizedHead
|
|
47
48
|
? api.rpc.chain.getFinalizedHead()
|
|
48
49
|
: Promise.resolve(hash),
|
|
49
50
|
]);
|
|
50
|
-
if (
|
|
51
|
+
if (block === undefined) {
|
|
51
52
|
throw new http_errors_1.InternalServerError('Error querying for block');
|
|
52
53
|
}
|
|
53
|
-
const { block, author: authorId } = deriveBlock;
|
|
54
54
|
const { parentHash, number, stateRoot, extrinsicsRoot, digest } = block.header;
|
|
55
|
+
const authorId = (0, util_1.extractAuthor)(digest, validators);
|
|
55
56
|
const logs = digest.logs.map(({ type, index, value }) => {
|
|
56
57
|
return { type, index, value };
|
|
57
58
|
});
|
|
@@ -87,7 +88,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
87
88
|
}
|
|
88
89
|
else {
|
|
89
90
|
// This runtime supports fee calc
|
|
90
|
-
const createCalcFee = await this.createCalcFee(api, parentHash, block);
|
|
91
|
+
const createCalcFee = await this.createCalcFee(api, historicApi, parentHash, block);
|
|
91
92
|
calcFee = createCalcFee.calcFee;
|
|
92
93
|
specName = createCalcFee.specName;
|
|
93
94
|
specVersion = createCalcFee.specVersion;
|
|
@@ -234,8 +235,8 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
234
235
|
// since it is a storage query.
|
|
235
236
|
const registry = typeof events === 'string' ? block.registry : events.registry;
|
|
236
237
|
return block.extrinsics.map((extrinsic) => {
|
|
237
|
-
const { method, nonce, signature, signer, isSigned, tip } = extrinsic;
|
|
238
|
-
const hash = (0,
|
|
238
|
+
const { method, nonce, signature, signer, isSigned, tip, era } = extrinsic;
|
|
239
|
+
const hash = (0, util_2.u8aToHex)((0, util_crypto_1.blake2AsU8a)(extrinsic.toU8a(), 256));
|
|
239
240
|
const call = registry.createType('Call', method);
|
|
240
241
|
return {
|
|
241
242
|
method: {
|
|
@@ -248,6 +249,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
248
249
|
tip: isSigned ? tip : null,
|
|
249
250
|
hash,
|
|
250
251
|
info: {},
|
|
252
|
+
era,
|
|
251
253
|
events: [],
|
|
252
254
|
success: defaultSuccess,
|
|
253
255
|
// paysFee overrides to bool if `system.ExtrinsicSuccess|ExtrinsicFailed` event is present
|
|
@@ -294,7 +296,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
294
296
|
event.method === Event.failure) {
|
|
295
297
|
const sanitizedData = event.data.toJSON();
|
|
296
298
|
for (const data of sanitizedData) {
|
|
297
|
-
if (extrinsic.signature && (0,
|
|
299
|
+
if (extrinsic.signature && (0, util_3.isPaysFee)(data)) {
|
|
298
300
|
extrinsic.paysFee =
|
|
299
301
|
data.paysFee === true || data.paysFee === 'Yes';
|
|
300
302
|
break;
|
|
@@ -324,7 +326,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
324
326
|
* @param parentHash Hash of the parent block
|
|
325
327
|
* @param block Block which the extrinsic is from
|
|
326
328
|
*/
|
|
327
|
-
async createCalcFee(api, parentHash, block) {
|
|
329
|
+
async createCalcFee(api, historicApi, parentHash, block) {
|
|
328
330
|
var _a, _b, _c;
|
|
329
331
|
var _d;
|
|
330
332
|
const parentParentHash = await this.getParentParentHash(api, parentHash, block);
|
|
@@ -337,11 +339,15 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
337
339
|
specName,
|
|
338
340
|
};
|
|
339
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* This will remain using the original api.query.*.*.at to retrieve the multiplier
|
|
344
|
+
* of the `parentHash` block.
|
|
345
|
+
*/
|
|
340
346
|
const multiplier = await ((_b = (_a = api.query.transactionPayment) === null || _a === void 0 ? void 0 : _a.nextFeeMultiplier) === null || _b === void 0 ? void 0 : _b.at(parentHash));
|
|
341
|
-
const perByte = (_c =
|
|
342
|
-
const extrinsicBaseWeightExists =
|
|
343
|
-
|
|
344
|
-
const { weightToFee } =
|
|
347
|
+
const perByte = (_c = historicApi.consts.transactionPayment) === null || _c === void 0 ? void 0 : _c.transactionByteFee;
|
|
348
|
+
const extrinsicBaseWeightExists = historicApi.consts.system.extrinsicBaseWeight ||
|
|
349
|
+
historicApi.consts.system.blockWeights.perClass.normal.baseExtrinsic;
|
|
350
|
+
const { weightToFee } = historicApi.consts.transactionPayment;
|
|
345
351
|
if (!perByte || !extrinsicBaseWeightExists || !multiplier || !weightToFee) {
|
|
346
352
|
// This particular runtime version is not supported with fee calcs or
|
|
347
353
|
// does not have the necessay materials to build calcFee
|
|
@@ -362,7 +368,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
362
368
|
});
|
|
363
369
|
// Now that we know the exact runtime supports fee calcs, make sure we have
|
|
364
370
|
// the weights in the store
|
|
365
|
-
(_d = this.blockWeightStore)[specVersion] || (_d[specVersion] =
|
|
371
|
+
(_d = this.blockWeightStore)[specVersion] || (_d[specVersion] = this.getWeight(historicApi));
|
|
366
372
|
const calcFee = calc_1.CalcFee.from_params(coefficients, multiplier.toString(10), perByte.toString(10), specName, specVersion);
|
|
367
373
|
return {
|
|
368
374
|
calcFee,
|
|
@@ -377,10 +383,9 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
377
383
|
* @param blockHash Hash of a block in the runtime to get the extrinsic base weight(s) for
|
|
378
384
|
* @returns formatted block weight store entry
|
|
379
385
|
*/
|
|
380
|
-
|
|
386
|
+
getWeight(historicApi) {
|
|
381
387
|
var _a, _b;
|
|
382
|
-
const
|
|
383
|
-
const { consts: { system }, } = (0, types_1.expandMetadata)(api.registry, metadata);
|
|
388
|
+
const { consts: { system }, } = historicApi;
|
|
384
389
|
let weightValue;
|
|
385
390
|
if ((_a = system.blockWeights) === null || _a === void 0 ? void 0 : _a.perClass) {
|
|
386
391
|
const { normal, operational, mandatory } = (_b = system.blockWeights) === null || _b === void 0 ? void 0 : _b.perClass;
|
|
@@ -433,9 +438,9 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
433
438
|
* @param api ApiPromise to use for query
|
|
434
439
|
* @param hash `BlockHash` to make query at
|
|
435
440
|
*/
|
|
436
|
-
async fetchEvents(
|
|
441
|
+
async fetchEvents(historicApi) {
|
|
437
442
|
try {
|
|
438
|
-
return await
|
|
443
|
+
return await historicApi.query.system.events();
|
|
439
444
|
}
|
|
440
445
|
catch {
|
|
441
446
|
return 'Unable to fetch Events, cannot confirm extrinsic status. Check pruning settings on the node.';
|
|
@@ -449,7 +454,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
449
454
|
*/
|
|
450
455
|
parseArrayGenericCalls(argsArray, registry) {
|
|
451
456
|
return argsArray.map((argument) => {
|
|
452
|
-
if (argument instanceof
|
|
457
|
+
if (argument instanceof types_1.GenericCall) {
|
|
453
458
|
return this.parseGenericCall(argument, registry);
|
|
454
459
|
}
|
|
455
460
|
return argument;
|
|
@@ -475,7 +480,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
475
480
|
if (Array.isArray(argument)) {
|
|
476
481
|
newArgs[paramName] = this.parseArrayGenericCalls(argument, registry);
|
|
477
482
|
}
|
|
478
|
-
else if (argument instanceof
|
|
483
|
+
else if (argument instanceof types_1.GenericCall) {
|
|
479
484
|
newArgs[paramName] = this.parseGenericCall(argument, registry);
|
|
480
485
|
}
|
|
481
486
|
else if (paramName === 'call' && (argument === null || argument === void 0 ? void 0 : argument.toRawType()) === 'Bytes') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksService.js","sourceRoot":"","sources":["../../../../src/services/blocks/BlocksService.ts"],"names":[],"mappings":";;;AACA,2CAAiD;AACjD,2CAAoE;AAapE,yCAA0C;AAC1C,uDAAoD;AACpD,0CAA0C;AAC1C,6CAA8D;AAG9D,6DAMmC;AACnC,qDAQ+B;AAE/B,2CAA6C;AAC7C,wDAAqD;AAkBrD;;GAEG;AACH,IAAK,KAGJ;AAHD,WAAK,KAAK;IACT,qCAA4B,CAAA;IAC5B,oCAA2B,CAAA;AAC5B,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAED,MAAa,aAAc,SAAQ,iCAAe;IACjD,YACC,GAAe,EACP,iBAAkC,EAClC,UAA+B,EAC/B,mBAAqC,EAAE;QAE/C,KAAK,CAAC,GAAG,CAAC,CAAC;QAJH,sBAAiB,GAAjB,iBAAiB,CAAiB;QAClC,eAAU,GAAV,UAAU,CAAqB;QAC/B,qBAAgB,GAAhB,gBAAgB,CAAuB;IAGhD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACf,IAAe,EACf,EACC,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACG;;QAEpB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,0EAA0E;QAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3D,IAAI,aAAa,EAAE;YAClB,OAAO,aAAa,CAAC;SACrB;QAED,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;YAC3B,kBAAkB;gBACjB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAClC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,WAAW,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,iCAAmB,CAAC,0BAA0B,CAAC,CAAC;SAC1D;QACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QAEhD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,GAC9D,KAAK,CAAC,MAAM,CAAC;QAEd,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YACvD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CACpD,KAAK,EACL,MAAM,EACN,aAAa,CACb,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc,CACnE,MAAM,EACN,sBAAsB,EACtB,IAAI,EACJ,SAAS,CACT,CAAC;QAEF,IAAI,SAAS,GAAG,SAAS,CAAC;QAE1B,IAAI,CAAC,gBAAgB,EAAE;YACtB,4CAA4C;YAC5C,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACtC,GAAG,EACH,MAAM,EACN,IAAI,EACJ,aAAa,EACb,cAAc,CACd,CAAC;SACF;QAED,kFAAkF;QAClF,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;YACtC,OAAO;gBACN,MAAM;gBACN,IAAI;gBACJ,UAAU;gBACV,SAAS;gBACT,cAAc;gBACd,QAAQ;gBACR,IAAI;gBACJ,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,SAAS;aACT,CAAC;SACF;QAED,IAAI,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;QACnC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;YACpC,6FAA6F;YAC7F,WAAW,GAAG,CAAC,CAAC,CAAC;YACjB,QAAQ,GAAG,OAAO,CAAC;YACnB,OAAO,GAAG,SAAS,CAAC;SACpB;aAAM;YACN,iCAAiC;YACjC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;YAChC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;YAClC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;SACxC;QAED,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;gBAChE,SAAS;aACT;YAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;gBACpC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;oBACtB,KAAK,EAAE,gDAAgD;iBACvD,CAAC;gBACF,SAAS;aACT;YAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;gBAC9C,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;oBACtB,KAAK,EAAE,qCAAqC,WAAW,IAAI,QAAQ,EAAE;iBACrE,CAAC;gBACF,SAAS;aACT;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CACnC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACd,IAAA,yBAAa,EAAC,MAAM,CAAC;gBACrB,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,CACrE,CAAC;YAEF,IAAI,CAAC,cAAc,EAAE;gBACpB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;oBACtB,KAAK,EAAE,uDAAuD;iBAC9D,CAAC;gBAEF,SAAS;aACT;YAED,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,aAAa,EAAE;gBACnB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;oBACtB,KAAK,EACJ,uEAAuE;iBACxE,CAAC;gBAEF,SAAS;aACT;YAED,qEAAqE;YACrE,2BAA2B;YAC3B,MAAM,UAAU,GAAG,aAAa,CAC/B,aAAa,CAAC,MAAM,GAAG,CAAC,CACR,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACvB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;oBACtB,KAAK,EACJ,gEAAgE;iBACjE,CAAC;gBAEF,SAAS;aACT;YAED,8DAA8D;YAC9D,+BAA+B;YAC/B,IAAI,eAAe,GAAoB,QAAQ,CAAC;YAChD,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE;gBACjC,eAAe,GAAG,WAAW,CAAC;aAC9B;iBAAM,IAAI,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC1C,eAAe,GAAG,aAAa,CAAC;aAChC;YAED;;;;;eAKG;YACH,sDAAsD;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,mBAAmB,CAAC;YACxB,IAAI,IAAA,oCAAoB,EAAC,YAAY,CAAC,EAAE;gBACvC,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,CAAC;aACvD;iBAAM,IAAI,IAAA,+BAAe,EAAC,YAAY,CAAC,EAAE;gBACzC,mBAAmB;oBAClB,MAAA,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,0CAAE,aAAa,CAAC;aACvD;YAED,IAAI,CAAC,mBAAmB,EAAE;gBACzB,MAAM,IAAI,iCAAmB,CAAC,oCAAoC,CAAC,CAAC;aACpE;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YAChD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EACzB,GAAG,EACH,mBAAmB,CACnB,CAAC;YAEF,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,qBAAqB,EAAE;gBAC5D,MAAM;gBACN,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,UAAU,EAAE,UAAU;aACtB,CAAC,CAAC;SACH;QAED,MAAM,QAAQ,GAAG;YAChB,MAAM;YACN,IAAI;YACJ,UAAU;YACV,SAAS;YACT,cAAc;YACd,QAAQ;YACR,IAAI;YACJ,YAAY;YACZ,UAAU;YACV,UAAU;YACV,SAAS;SACT,CAAC;QAEF,+BAA+B;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE/C,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAgB;QACtC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI;YAClB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAEnC,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACpB,KAAa,EACb,cAAsB;QAEtB,IAAI,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,MAAM,IAAI,wBAAU,CAAC,2CAA2C,CAAC,CAAC;SAClE;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE5C,OAAO;YACN,EAAE,EAAE;gBACH,MAAM;gBACN,IAAI;aACJ;YACD,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;SAC5C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACxB,KAAY,EACZ,MAAiC,EACjC,aAAsB;QAEtB,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,kFAAkF;QAClF,yEAAyE;QACzE,2EAA2E;QAC3E,qDAAqD;QACrD,0EAA0E;QAC1E,+BAA+B;QAC/B,MAAM,QAAQ,GACb,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAE/D,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;YACtE,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAA,yBAAW,EAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEjD,OAAO;gBACN,MAAM,EAAE;oBACP,MAAM,EAAE,MAAM,CAAC,OAAO;oBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACrB;gBACD,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;gBAClD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBAC9B,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI;gBAChD,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;gBAC1B,IAAI;gBACJ,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAuB;gBAC/B,OAAO,EAAE,cAAc;gBACvB,0FAA0F;gBAC1F,iEAAiE;gBACjE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAChC,IAAI,EAAE,aAAa;oBAClB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxC,CAAC,CAAC,SAAS;aACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CACrB,MAA8B,EAC9B,UAAwB,EACxB,IAAe,EACf,SAAkB;QAElB,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,EAAuB,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,EAAuB,EAAE,CAAC;QAEvD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;gBAEhC,MAAM,cAAc,GAAG;oBACtB,MAAM,EAAE;wBACP,MAAM,EAAE,KAAK,CAAC,OAAO;wBACrB,MAAM,EAAE,KAAK,CAAC,MAAM;qBACpB;oBACD,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;iBACrE,CAAC;gBAEF,IAAI,KAAK,CAAC,gBAAgB,EAAE;oBAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;oBAE3C,IAAI,CAAC,SAAS,EAAE;wBACf,MAAM,IAAI,KAAK,CACd,qBAAqB,YAAY,aAAa,IAAI,CAAC,QAAQ,EAAE,EAAE,CAC/D,CAAC;qBACF;oBAED,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE;wBACnC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;qBACzB;oBAED,IACC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO;wBAC9B,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAC7B;wBACD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAe,CAAC;wBAEvD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE;4BACjC,IAAI,SAAS,CAAC,SAAS,IAAI,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE;gCAC3C,SAAS,CAAC,OAAO;oCAChB,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;gCAEjD,MAAM;6BACN;yBACD;qBACD;oBAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACtC;qBAAM,IAAI,KAAK,CAAC,cAAc,EAAE;oBAChC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACvC;qBAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE;oBAClC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACzC;aACD;SACD;QAED,OAAO;YACN,UAAU;YACV,YAAY;YACZ,UAAU;SACV,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,aAAa,CAC1B,GAAe,EACf,UAAgB,EAChB,KAAY;;;QAEZ,MAAM,gBAAgB,GAAS,MAAM,IAAI,CAAC,mBAAmB,CAC5D,GAAG,EACH,UAAU,EACV,KAAK,CACL,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAEnD,IAAI,IAAI,CAAC,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACnE,OAAO;gBACN,WAAW;gBACX,QAAQ;aACR,CAAC;SACF;QAED,MAAM,UAAU,GACf,MAAM,CAAA,MAAA,MAAA,GAAG,CAAC,KAAK,CAAC,kBAAkB,0CAAE,iBAAiB,0CAAE,EAAE,CAAC,UAAU,CAAC,CAAA,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,MAAM,CAAC,kBAAkB,0CAAE,kBAAkB,CAAC;QAClE,MAAM,yBAAyB,GAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB;YACrC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAEtD,IAAI,CAAC,OAAO,IAAI,CAAC,yBAAyB,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE;YAC1E,qEAAqE;YACrE,wDAAwD;YACxD,OAAO;gBACN,WAAW;gBACX,QAAQ;aACR,CAAC;SACF;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,OAAO;gBACN,8EAA8E;gBAC9E,uBAAuB;gBACvB,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACjC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACpB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,2BAA2B;QAC3B,MAAA,IAAI,CAAC,gBAAgB,EAAC,WAAW,SAAX,WAAW,IAAM,MAAM,IAAI,CAAC,SAAS,CAC1D,GAAG,EACH,UAAU,CACV,EAAC;QAEF,MAAM,OAAO,GAAG,cAAO,CAAC,WAAW,CAClC,YAAY,EACZ,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EACvB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EACpB,QAAQ,EACR,WAAW,CACX,CAAC;QAEF,OAAO;YACN,OAAO;YACP,QAAQ;YACR,WAAW;SACX,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,SAAS,CACtB,GAAe,EACf,SAAoB;;QAEpB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,EACL,MAAM,EAAE,EAAE,MAAM,EAAE,GAClB,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3C,IAAI,WAAW,CAAC;QAChB,IAAI,MAAC,MAAM,CAAC,YAAwC,0CAAE,QAAQ,EAAE;YAC/D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAC1C,MAAM,CAAC,YACP,0CAAE,QAAQ,CAAC;YAEZ,MAAM,QAAQ,GAAG;gBAChB,MAAM,EAAE;oBACP,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE;iBAC9C;gBACD,WAAW,EAAE;oBACZ,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE;iBACnD;gBACD,SAAS,EAAE;oBACV,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE;iBACjD;aACD,CAAC;YAEF,WAAW,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC3B;aAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE;YACtC,WAAW,GAAG;gBACb,mBAAmB,EAClB,MAAM,CAAC,mBACP,CAAC,QAAQ,EAAE;aACZ,CAAC;SACF;aAAM;YACN,MAAM,IAAI,iCAAmB,CAC5B,oDAAoD,CACpD,CAAC;SACF;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,mBAAmB,CAChC,GAAe,EACf,UAAgB,EAChB,KAAY;QAEZ,IAAI,gBAAsB,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;YACvC,gBAAgB,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;SAC1E;aAAM;YACN,gBAAgB,GAAG,UAAU,CAAC;SAC9B;QAED,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,WAAW,CACxB,GAAe,EACf,IAAe;QAEf,IAAI;YACH,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;SAC9C;QAAC,MAAM;YACP,OAAO,8FAA8F,CAAC;SACtG;IACF,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAC7B,SAAkB,EAClB,QAAkB;QAElB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,IAAI,QAAQ,YAAY,mBAAW,EAAE;gBACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACjD;YAED,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CACvB,WAAwB,EACxB,QAAkB;QAElB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,gDAAgD;QAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAW,CAAC;QAEnD,uDAAuD;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;YACjC,wBAAwB;YACxB,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEzC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC5B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBACrE;qBAAM,IAAI,QAAQ,YAAY,mBAAW,EAAE;oBAC3C,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBAC/D;qBAAM,IAAI,SAAS,KAAK,MAAM,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,EAAE,MAAK,OAAO,EAAE;oBACrE,gEAAgE;oBAChE,qEAAqE;oBACrE,IAAI;wBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC3D,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;qBAC3D;oBAAC,MAAM;wBACP,OAAO,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;qBAC9B;iBACD;qBAAM;oBACN,OAAO,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;iBAC9B;aACD;SACD;QAED,OAAO;YACN,MAAM,EAAE;gBACP,MAAM,EAAE,WAAW,CAAC,OAAO;gBAC3B,MAAM,EAAE,WAAW,CAAC,MAAM;aAC1B;YACD,IAAI,EAAE,OAAO;SACb,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,gBAAgB,CAC7B,GAAe,EACf,WAAiC,EACjC,WAAsB,EACtB,aAAwB,EACxB,cAAuB;QAEvB,IAAI,cAAc,EAAE;YACnB,kCAAkC;YAClC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzD,0DAA0D;gBAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;gBACtC,oEAAoE;gBACpE,mEAAmE;gBACnE,gEAAgE;gBAChE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aAChD,CAAC,CAAC;YAEH,wDAAwD;YACxD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;YAEjC,mEAAmE;YACnE,gEAAgE;YAChE,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACb;YAED,0CAA0C;YAC1C,MAAM,wBAAwB,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,CAAC;YAE5D,8DAA8D;YAC9D,IAAI,CAAC,wBAAwB,EAAE;gBAC9B,OAAO,KAAK,CAAC;aACb;YAED,yEAAyE;YACzE,wCAAwC;YACxC,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;aAAM;YACN,sCAAsC;YAEtC,0DAA0D;YAC1D,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAExE,0CAA0C;YAC1C,MAAM,wBAAwB,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,CAAC;YAE5D,8DAA8D;YAC9D,IAAI,CAAC,wBAAwB,EAAE;gBAC9B,OAAO,KAAK,CAAC;aACb;YAED,yEAAyE;YACzE,wCAAwC;YACxC,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;IACF,CAAC;CACD;AAtsBD,sCAssBC"}
|
|
1
|
+
{"version":3,"file":"BlocksService.js","sourceRoot":"","sources":["../../../../src/services/blocks/BlocksService.ts"],"names":[],"mappings":"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"}
|