@substrate/api-sidecar 20.13.3 → 20.14.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.
Files changed (101) hide show
  1. package/build/package.json +3 -2
  2. package/build/src/chains-config/assetHubKusamaControllers.js +2 -1
  3. package/build/src/chains-config/assetHubKusamaControllers.js.map +1 -1
  4. package/build/src/chains-config/assetHubNextWestendControllers.js +2 -1
  5. package/build/src/chains-config/assetHubNextWestendControllers.js.map +1 -1
  6. package/build/src/chains-config/assetHubPolkadotControllers.js +2 -1
  7. package/build/src/chains-config/assetHubPolkadotControllers.js.map +1 -1
  8. package/build/src/chains-config/assetHubWestendControllers.js +2 -1
  9. package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
  10. package/build/src/chains-config/defaultControllers.js +2 -1
  11. package/build/src/chains-config/defaultControllers.js.map +1 -1
  12. package/build/src/chains-config/kusamaControllers.js +2 -1
  13. package/build/src/chains-config/kusamaControllers.js.map +1 -1
  14. package/build/src/chains-config/polkadotControllers.js +2 -1
  15. package/build/src/chains-config/polkadotControllers.js.map +1 -1
  16. package/build/src/chains-config/westendControllers.js +2 -1
  17. package/build/src/chains-config/westendControllers.js.map +1 -1
  18. package/build/src/controllers/AbstractController.d.ts +16 -0
  19. package/build/src/controllers/AbstractController.js +33 -0
  20. package/build/src/controllers/AbstractController.js.map +1 -1
  21. package/build/src/controllers/accounts/AccountsAssetsController.js +36 -8
  22. package/build/src/controllers/accounts/AccountsAssetsController.js.map +1 -1
  23. package/build/src/controllers/accounts/AccountsBalanceInfoController.js +18 -4
  24. package/build/src/controllers/accounts/AccountsBalanceInfoController.js.map +1 -1
  25. package/build/src/controllers/accounts/AccountsForeignAssetsController.js +18 -4
  26. package/build/src/controllers/accounts/AccountsForeignAssetsController.js.map +1 -1
  27. package/build/src/controllers/accounts/AccountsPoolAssetsController.js +36 -8
  28. package/build/src/controllers/accounts/AccountsPoolAssetsController.js.map +1 -1
  29. package/build/src/controllers/accounts/AccountsProxyInfoController.js +18 -4
  30. package/build/src/controllers/accounts/AccountsProxyInfoController.js.map +1 -1
  31. package/build/src/controllers/accounts/AccountsStakingInfoController.js +18 -4
  32. package/build/src/controllers/accounts/AccountsStakingInfoController.js.map +1 -1
  33. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js +18 -4
  34. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js.map +1 -1
  35. package/build/src/controllers/accounts/AccountsVestingInfoController.js +18 -4
  36. package/build/src/controllers/accounts/AccountsVestingInfoController.js.map +1 -1
  37. package/build/src/controllers/blocks/BlocksController.js +87 -18
  38. package/build/src/controllers/blocks/BlocksController.js.map +1 -1
  39. package/build/src/controllers/blocks/BlocksExtrinsicsController.js +18 -4
  40. package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
  41. package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js +18 -4
  42. package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js.map +1 -1
  43. package/build/src/controllers/index.d.ts +2 -1
  44. package/build/src/controllers/index.js +2 -1
  45. package/build/src/controllers/index.js.map +1 -1
  46. package/build/src/controllers/pallets/PalletsAssetConversionController.js +36 -8
  47. package/build/src/controllers/pallets/PalletsAssetConversionController.js.map +1 -1
  48. package/build/src/controllers/pallets/PalletsAssetsController.js +18 -4
  49. package/build/src/controllers/pallets/PalletsAssetsController.js.map +1 -1
  50. package/build/src/controllers/pallets/PalletsConstsController.js +36 -8
  51. package/build/src/controllers/pallets/PalletsConstsController.js.map +1 -1
  52. package/build/src/controllers/pallets/PalletsDispatchablesController.js +36 -8
  53. package/build/src/controllers/pallets/PalletsDispatchablesController.js.map +1 -1
  54. package/build/src/controllers/pallets/PalletsErrorsController.js +36 -8
  55. package/build/src/controllers/pallets/PalletsErrorsController.js.map +1 -1
  56. package/build/src/controllers/pallets/PalletsEventsController.js +36 -8
  57. package/build/src/controllers/pallets/PalletsEventsController.js.map +1 -1
  58. package/build/src/controllers/pallets/PalletsForeignAssetsController.js +18 -4
  59. package/build/src/controllers/pallets/PalletsForeignAssetsController.js.map +1 -1
  60. package/build/src/controllers/pallets/PalletsNominationPoolsController.js +36 -8
  61. package/build/src/controllers/pallets/PalletsNominationPoolsController.js.map +1 -1
  62. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js +18 -4
  63. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js.map +1 -1
  64. package/build/src/controllers/pallets/PalletsPoolAssetsController.js +18 -4
  65. package/build/src/controllers/pallets/PalletsPoolAssetsController.js.map +1 -1
  66. package/build/src/controllers/pallets/PalletsStakingProgressController.js +18 -4
  67. package/build/src/controllers/pallets/PalletsStakingProgressController.js.map +1 -1
  68. package/build/src/controllers/pallets/PalletsStakingValidatorsController.js +18 -4
  69. package/build/src/controllers/pallets/PalletsStakingValidatorsController.js.map +1 -1
  70. package/build/src/controllers/pallets/PalletsStorageController.js +36 -8
  71. package/build/src/controllers/pallets/PalletsStorageController.js.map +1 -1
  72. package/build/src/controllers/transaction/TransactionMetadataBlobController.d.ts +55 -0
  73. package/build/src/controllers/transaction/TransactionMetadataBlobController.js +91 -0
  74. package/build/src/controllers/transaction/TransactionMetadataBlobController.js.map +1 -0
  75. package/build/src/controllers/transaction/index.d.ts +1 -0
  76. package/build/src/controllers/transaction/index.js +4 -2
  77. package/build/src/controllers/transaction/index.js.map +1 -1
  78. package/build/src/middleware/validate/validateUseRcBlockMiddleware.d.ts +5 -4
  79. package/build/src/middleware/validate/validateUseRcBlockMiddleware.js +20 -6
  80. package/build/src/middleware/validate/validateUseRcBlockMiddleware.js.map +1 -1
  81. package/build/src/services/transaction/TransactionMetadataBlobService.d.ts +23 -0
  82. package/build/src/services/transaction/TransactionMetadataBlobService.js +144 -0
  83. package/build/src/services/transaction/TransactionMetadataBlobService.js.map +1 -0
  84. package/build/src/services/transaction/TransactionMetadataBlobService.spec.d.ts +1 -0
  85. package/build/src/services/transaction/TransactionMetadataBlobService.spec.js +269 -0
  86. package/build/src/services/transaction/TransactionMetadataBlobService.spec.js.map +1 -0
  87. package/build/src/services/transaction/index.d.ts +1 -0
  88. package/build/src/services/transaction/index.js +2 -1
  89. package/build/src/services/transaction/index.js.map +1 -1
  90. package/build/src/types/requests.d.ts +57 -0
  91. package/build/src/types/requests.js +1 -1
  92. package/build/src/types/responses/RcBlockFormat.d.ts +24 -0
  93. package/build/src/types/responses/RcBlockFormat.js +18 -0
  94. package/build/src/types/responses/RcBlockFormat.js.map +1 -0
  95. package/build/src/types/responses/TransactionMetadataBlob.d.ts +11 -0
  96. package/build/src/types/responses/TransactionMetadataBlob.js +18 -0
  97. package/build/src/types/responses/TransactionMetadataBlob.js.map +1 -0
  98. package/build/src/types/responses/index.d.ts +2 -0
  99. package/build/src/types/responses/index.js +3 -1
  100. package/build/src/types/responses/index.js.map +1 -1
  101. package/package.json +3 -2
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ // Copyright 2017-2026 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
+ const http_errors_1 = require("http-errors");
19
+ const polkadotV1003000Metadata_1 = require("../../test-helpers/metadata/polkadotV1003000Metadata");
20
+ const registries_1 = require("../../test-helpers/registries");
21
+ const mock_1 = require("../test-helpers/mock");
22
+ const TransactionMetadataBlobService_1 = require("./TransactionMetadataBlobService");
23
+ // Mock the merkleize-metadata functions
24
+ const mockDigest = jest
25
+ .fn()
26
+ .mockReturnValue(new Uint8Array([
27
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
28
+ 32,
29
+ ]));
30
+ const mockGetProofForExtrinsic = jest.fn().mockReturnValue(new Uint8Array([0xde, 0xad, 0xbe, 0xef]));
31
+ const mockGetProofForExtrinsicParts = jest.fn().mockReturnValue(new Uint8Array([0xca, 0xfe, 0xba, 0xbe]));
32
+ const mockMerkleized = {
33
+ digest: mockDigest,
34
+ getProofForExtrinsic: mockGetProofForExtrinsic,
35
+ getProofForExtrinsicParts: mockGetProofForExtrinsicParts,
36
+ };
37
+ const mockMerkleizeMetadata = jest.fn().mockReturnValue(mockMerkleized);
38
+ // Mock metadata functions
39
+ const mockMetadataAtVersion = () => Promise.resolve().then(() => {
40
+ return registries_1.polkadotRegistryV1003000.createType('Option<OpaqueMetadata>', polkadotV1003000Metadata_1.polkadotMetadataRpcV1003000);
41
+ });
42
+ const mockMetadataVersions = jest.fn().mockResolvedValue({
43
+ toJSON: jest.fn().mockReturnValue([14, 15]),
44
+ });
45
+ const mockMetadataVersionsNoV15 = jest.fn().mockResolvedValue({
46
+ toJSON: jest.fn().mockReturnValue([14]),
47
+ });
48
+ const mockHeader = {
49
+ number: {
50
+ unwrap: () => ({
51
+ toString: () => '22887036',
52
+ }),
53
+ },
54
+ };
55
+ const runtimeVersion = {
56
+ specName: registries_1.polkadotRegistryV1003000.createType('Text', 'polkadot'),
57
+ specVersion: registries_1.polkadotRegistryV1003000.createType('u32', 1003000),
58
+ transactionVersion: registries_1.polkadotRegistryV1003000.createType('u32', 26),
59
+ };
60
+ const mockProperties = {
61
+ ss58Format: {
62
+ isSome: true,
63
+ value: {
64
+ toNumber: () => 0,
65
+ },
66
+ },
67
+ tokenDecimals: {
68
+ isSome: true,
69
+ value: {
70
+ toJSON: () => 10,
71
+ },
72
+ },
73
+ tokenSymbol: {
74
+ isSome: true,
75
+ value: {
76
+ toJSON: () => 'DOT',
77
+ },
78
+ },
79
+ };
80
+ const mockHistoricApi = {
81
+ call: {
82
+ metadata: {
83
+ metadataVersions: mockMetadataVersions,
84
+ metadataAtVersion: mockMetadataAtVersion,
85
+ },
86
+ },
87
+ registry: registries_1.polkadotRegistryV1003000,
88
+ };
89
+ const mockApi = {
90
+ ...mockHistoricApi,
91
+ rpc: {
92
+ chain: {
93
+ getHeader: () => Promise.resolve(mockHeader),
94
+ },
95
+ state: {
96
+ getRuntimeVersion: () => Promise.resolve(runtimeVersion),
97
+ },
98
+ system: {
99
+ properties: () => Promise.resolve(mockProperties),
100
+ },
101
+ },
102
+ at: (_hash) => Promise.resolve(mockHistoricApi),
103
+ };
104
+ describe('TransactionMetadataBlobService', () => {
105
+ let getMerkleizeMetadataSpy;
106
+ beforeEach(() => {
107
+ jest.clearAllMocks();
108
+ // Mock the getMerkleizeMetadata method on the prototype to return our mock
109
+ getMerkleizeMetadataSpy = jest
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+ .spyOn(TransactionMetadataBlobService_1.TransactionMetadataBlobService.prototype, 'getMerkleizeMetadata')
112
+ .mockResolvedValue(mockMerkleizeMetadata);
113
+ });
114
+ afterEach(() => {
115
+ getMerkleizeMetadataSpy.mockRestore();
116
+ });
117
+ describe('fetchMetadataBlob', () => {
118
+ it('should return metadata blob when given a full extrinsic (tx)', async () => {
119
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
120
+ // timestamp.set()
121
+ const tx = '0x280403000b207eba5c8501';
122
+ const result = await service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, { tx });
123
+ expect(result.at.hash).toEqual(mock_1.blockHash22887036);
124
+ expect(result.at.height).toEqual('22887036');
125
+ expect(result.metadataHash).toMatch(/^0x[a-f0-9]{64}$/);
126
+ expect(result.metadataBlob).toMatch(/^0x[a-f0-9]+$/);
127
+ expect(result.specVersion).toEqual(1003000);
128
+ expect(result.specName).toEqual('polkadot');
129
+ expect(result.base58Prefix).toEqual(0);
130
+ expect(result.decimals).toEqual(10);
131
+ expect(result.tokenSymbol).toEqual('DOT');
132
+ expect(mockGetProofForExtrinsic).toHaveBeenCalledWith(tx, undefined);
133
+ });
134
+ it('should return metadata blob when given extrinsic parts', async () => {
135
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
136
+ const params = {
137
+ callData: '0x0403',
138
+ includedInExtrinsic: '0x00',
139
+ includedInSignedData: '0x00',
140
+ };
141
+ const result = await service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, params);
142
+ expect(result.at.hash).toEqual(mock_1.blockHash22887036);
143
+ expect(result.metadataBlob).toMatch(/^0x[a-f0-9]+$/);
144
+ expect(mockGetProofForExtrinsicParts).toHaveBeenCalledWith(params.callData, params.includedInExtrinsic, params.includedInSignedData);
145
+ });
146
+ it('should use txAdditionalSigned when provided with tx', async () => {
147
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
148
+ // timestamp.set()
149
+ const tx = '0x280403000b207eba5c8501';
150
+ const txAdditionalSigned = '0x1234';
151
+ await service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, { tx, txAdditionalSigned });
152
+ expect(mockGetProofForExtrinsic).toHaveBeenCalledWith(tx, txAdditionalSigned);
153
+ });
154
+ it('should throw BadRequest when neither tx nor callData is provided', async () => {
155
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
156
+ await expect(service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, {})).rejects.toThrow(http_errors_1.BadRequest);
157
+ await expect(service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, {})).rejects.toThrow('Must provide either `tx` (full extrinsic) or `callData` with `includedInExtrinsic` and `includedInSignedData`.');
158
+ });
159
+ it('should throw BadRequest when callData is provided without includedInExtrinsic', async () => {
160
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
161
+ const params = {
162
+ callData: '0x0403',
163
+ includedInSignedData: '0x00',
164
+ };
165
+ await expect(service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, params)).rejects.toThrow(http_errors_1.BadRequest);
166
+ await expect(service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, params)).rejects.toThrow('When using `callData`, must also provide `includedInExtrinsic` and `includedInSignedData`.');
167
+ });
168
+ it('should throw BadRequest when callData is provided without includedInSignedData', async () => {
169
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
170
+ const params = {
171
+ callData: '0x0403',
172
+ includedInExtrinsic: '0x00',
173
+ };
174
+ await expect(service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, params)).rejects.toThrow(http_errors_1.BadRequest);
175
+ await expect(service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, params)).rejects.toThrow('When using `callData`, must also provide `includedInExtrinsic` and `includedInSignedData`.');
176
+ });
177
+ it('should throw BadRequest when V15 metadata is not available', async () => {
178
+ const mockHistoricApiNoV15 = {
179
+ call: {
180
+ metadata: {
181
+ metadataVersions: mockMetadataVersionsNoV15,
182
+ metadataAtVersion: mockMetadataAtVersion,
183
+ },
184
+ },
185
+ registry: registries_1.polkadotRegistryV1003000,
186
+ };
187
+ const mockApiNoV15 = {
188
+ ...mockApi,
189
+ at: (_hash) => Promise.resolve(mockHistoricApiNoV15),
190
+ };
191
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
192
+ const tx = '0x280403000b207eba5c8501';
193
+ await expect(service.fetchMetadataBlob(mockApiNoV15, mock_1.blockHash22887036, { tx })).rejects.toThrow(http_errors_1.BadRequest);
194
+ await expect(service.fetchMetadataBlob(mockApiNoV15, mock_1.blockHash22887036, { tx })).rejects.toThrow('Metadata V15 is not available on this chain. CheckMetadataHash requires V15 metadata.');
195
+ });
196
+ it('should handle array token decimals and symbols', async () => {
197
+ const mockPropertiesArray = {
198
+ ss58Format: {
199
+ isSome: true,
200
+ value: {
201
+ toNumber: () => 2,
202
+ },
203
+ },
204
+ tokenDecimals: {
205
+ isSome: true,
206
+ value: {
207
+ toJSON: () => [12, 10],
208
+ },
209
+ },
210
+ tokenSymbol: {
211
+ isSome: true,
212
+ value: {
213
+ toJSON: () => ['KSM', 'DOT'],
214
+ },
215
+ },
216
+ };
217
+ const mockApiArray = {
218
+ ...mockApi,
219
+ rpc: {
220
+ ...mockApi.rpc,
221
+ system: {
222
+ properties: () => Promise.resolve(mockPropertiesArray),
223
+ },
224
+ },
225
+ };
226
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
227
+ const tx = '0x280403000b207eba5c8501';
228
+ const result = await service.fetchMetadataBlob(mockApiArray, mock_1.blockHash22887036, { tx });
229
+ expect(result.decimals).toEqual(12);
230
+ expect(result.tokenSymbol).toEqual('KSM');
231
+ expect(result.base58Prefix).toEqual(2);
232
+ });
233
+ it('should use default values when properties are not available', async () => {
234
+ const mockPropertiesEmpty = {
235
+ ss58Format: {
236
+ isSome: false,
237
+ },
238
+ tokenDecimals: {
239
+ isSome: false,
240
+ },
241
+ tokenSymbol: {
242
+ isSome: false,
243
+ },
244
+ };
245
+ const mockApiEmpty = {
246
+ ...mockApi,
247
+ rpc: {
248
+ ...mockApi.rpc,
249
+ system: {
250
+ properties: () => Promise.resolve(mockPropertiesEmpty),
251
+ },
252
+ },
253
+ };
254
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
255
+ const tx = '0x280403000b207eba5c8501';
256
+ const result = await service.fetchMetadataBlob(mockApiEmpty, mock_1.blockHash22887036, { tx });
257
+ expect(result.decimals).toEqual(10);
258
+ expect(result.tokenSymbol).toEqual('DOT');
259
+ expect(result.base58Prefix).toEqual(42);
260
+ });
261
+ it('should call merkleizeMetadata with correct parameters', async () => {
262
+ const service = new TransactionMetadataBlobService_1.TransactionMetadataBlobService('mock');
263
+ const tx = '0x280403000b207eba5c8501';
264
+ await service.fetchMetadataBlob(mockApi, mock_1.blockHash22887036, { tx });
265
+ expect(mockMerkleizeMetadata).toHaveBeenCalledWith(expect.any(Uint8Array), { decimals: 10, tokenSymbol: 'DOT' });
266
+ });
267
+ });
268
+ });
269
+ //# sourceMappingURL=TransactionMetadataBlobService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionMetadataBlobService.spec.js","sourceRoot":"","sources":["../../../../src/services/transaction/TransactionMetadataBlobService.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;;AAKxE,6CAAyC;AAEzC,mGAAmG;AACnG,8DAAyE;AACzE,+CAAyD;AACzD,qFAAkF;AAElF,wCAAwC;AACxC,MAAM,UAAU,GAAG,IAAI;KACrB,EAAE,EAAE;KACJ,eAAe,CACf,IAAI,UAAU,CAAC;IACd,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACjH,EAAE;CACF,CAAC,CACF,CAAC;AACH,MAAM,wBAAwB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrG,MAAM,6BAA6B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAE1G,MAAM,cAAc,GAAG;IACtB,MAAM,EAAE,UAAU;IAClB,oBAAoB,EAAE,wBAAwB;IAC9C,yBAAyB,EAAE,6BAA6B;CACxD,CAAC;AAEF,MAAM,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AAExE,0BAA0B;AAC1B,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAClC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3B,OAAO,qCAAwB,CAAC,UAAU,CAAC,wBAAwB,EAAE,sDAA2B,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEJ,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACxD,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAC7D,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG;IAClB,MAAM,EAAE;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACd,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;SAC1B,CAAC;KACF;CACD,CAAC;AAEF,MAAM,cAAc,GAAG;IACtB,QAAQ,EAAE,qCAAwB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;IACjE,WAAW,EAAE,qCAAwB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;IAChE,kBAAkB,EAAE,qCAAwB,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;CAClE,CAAC;AAEF,MAAM,cAAc,GAAG;IACtB,UAAU,EAAE;QACX,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE;YACN,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;SACjB;KACD;IACD,aAAa,EAAE;QACd,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;SAChB;KACD;IACD,WAAW,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;SACnB;KACD;CACD,CAAC;AAEF,MAAM,eAAe,GAAG;IACvB,IAAI,EAAE;QACL,QAAQ,EAAE;YACT,gBAAgB,EAAE,oBAAoB;YACtC,iBAAiB,EAAE,qBAAqB;SACxC;KACD;IACD,QAAQ,EAAE,qCAAwB;CACK,CAAC;AAEzC,MAAM,OAAO,GAAG;IACf,GAAG,eAAe;IAClB,GAAG,EAAE;QACJ,KAAK,EAAE;YACN,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SAC5C;QACD,KAAK,EAAE;YACN,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SACxD;QACD,MAAM,EAAE;YACP,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SACjD;KACD;IACD,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;CAC5B,CAAC;AAE3B,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC/C,IAAI,uBAAyC,CAAC;IAE9C,UAAU,CAAC,GAAG,EAAE;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,2EAA2E;QAC3E,uBAAuB,GAAG,IAAI;YAC7B,8DAA8D;aAC7D,KAAK,CAAC,+DAA8B,CAAC,SAAgB,EAAE,sBAAsB,CAAC;aAC9E,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,uBAAuB,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,kBAAkB;YAClB,MAAM,EAAE,GAAG,0BAA0B,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAEnF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,wBAAiB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG;gBACd,QAAQ,EAAE,QAAQ;gBAClB,mBAAmB,EAAE,MAAM;gBAC3B,oBAAoB,EAAE,MAAM;aAC5B,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,MAAM,CAAC,CAAC;YAEnF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,wBAAiB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACrD,MAAM,CAAC,6BAA6B,CAAC,CAAC,oBAAoB,CACzD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,oBAAoB,CAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,kBAAkB;YAClB,MAAM,EAAE,GAAG,0BAA0B,CAAC;YACtC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;YAEpC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAExF,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAE3D,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;YACpG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtF,gHAAgH,CAChH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;YAC9F,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG;gBACd,QAAQ,EAAE,QAAQ;gBAClB,oBAAoB,EAAE,MAAM;aAC5B,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;YACxG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC1F,4FAA4F,CAC5F,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG;gBACd,QAAQ,EAAE,QAAQ;gBAClB,mBAAmB,EAAE,MAAM;aAC3B,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;YACxG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC1F,4FAA4F,CAC5F,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,oBAAoB,GAAG;gBAC5B,IAAI,EAAE;oBACL,QAAQ,EAAE;wBACT,gBAAgB,EAAE,yBAAyB;wBAC3C,iBAAiB,EAAE,qBAAqB;qBACxC;iBACD;gBACD,QAAQ,EAAE,qCAAwB;aACK,CAAC;YAEzC,MAAM,YAAY,GAAG;gBACpB,GAAG,OAAO;gBACV,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;aACjC,CAAC;YAE3B,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,0BAA0B,CAAC;YAEtC,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAU,CAAC,CAAC;YAC7G,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC/F,uFAAuF,CACvF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,mBAAmB,GAAG;gBAC3B,UAAU,EAAE;oBACX,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE;wBACN,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;qBACjB;iBACD;gBACD,aAAa,EAAE;oBACd,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE;wBACN,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;qBACtB;iBACD;gBACD,WAAW,EAAE;oBACZ,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE;wBACN,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC;qBAC5B;iBACD;aACD,CAAC;YAEF,MAAM,YAAY,GAAG;gBACpB,GAAG,OAAO;gBACV,GAAG,EAAE;oBACJ,GAAG,OAAO,CAAC,GAAG;oBACd,MAAM,EAAE;wBACP,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;qBACtD;iBACD;aACwB,CAAC;YAE3B,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,0BAA0B,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAExF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,mBAAmB,GAAG;gBAC3B,UAAU,EAAE;oBACX,MAAM,EAAE,KAAK;iBACb;gBACD,aAAa,EAAE;oBACd,MAAM,EAAE,KAAK;iBACb;gBACD,WAAW,EAAE;oBACZ,MAAM,EAAE,KAAK;iBACb;aACD,CAAC;YAEF,MAAM,YAAY,GAAG;gBACpB,GAAG,OAAO;gBACV,GAAG,EAAE;oBACJ,GAAG,OAAO,CAAC,GAAG;oBACd,MAAM,EAAE;wBACP,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;qBACtD;iBACD;aACwB,CAAC;YAE3B,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,0BAA0B,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAExF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,OAAO,GAAG,IAAI,+DAA8B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,0BAA0B,CAAC;YAEtC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,wBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAEpE,MAAM,CAAC,qBAAqB,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './TransactionDryRunService';
2
2
  export * from './TransactionFeeEstimateService';
3
3
  export * from './TransactionMaterialService';
4
+ export * from './TransactionMetadataBlobService';
4
5
  export * from './TransactionSubmitService';
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright 2017-2025 Parity Technologies (UK) Ltd.
2
+ // Copyright 2017-2026 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
@@ -32,5 +32,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
32
32
  __exportStar(require("./TransactionDryRunService"), exports);
33
33
  __exportStar(require("./TransactionFeeEstimateService"), exports);
34
34
  __exportStar(require("./TransactionMaterialService"), exports);
35
+ __exportStar(require("./TransactionMetadataBlobService"), exports);
35
36
  __exportStar(require("./TransactionSubmitService"), exports);
36
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/transaction/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,6DAA2C;AAC3C,kEAAgD;AAChD,+DAA6C;AAC7C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/transaction/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,6DAA2C;AAC3C,kEAAgD;AAChD,+DAA6C;AAC7C,mEAAiD;AACjD,6DAA2C"}
@@ -10,6 +10,62 @@ export interface ITx {
10
10
  xcmVersion?: number;
11
11
  at: string;
12
12
  }
13
+ /**
14
+ * Body for the metadata blob request. Contains transaction data for generating
15
+ * the minimal metadata proof needed by offline signers.
16
+ */
17
+ export interface IMetadataBlobBody {
18
+ /**
19
+ * Full encoded extrinsic as a hex string. Use this OR the individual components below.
20
+ */
21
+ tx?: string;
22
+ /**
23
+ * Optional additional signed data for the extrinsic.
24
+ * Used together with `tx`.
25
+ */
26
+ txAdditionalSigned?: string;
27
+ /**
28
+ * Call data as hex string. Use this alongside includedInExtrinsic and includedInSignedData.
29
+ */
30
+ callData?: string;
31
+ /**
32
+ * Signed Extension data included in the extrinsic.
33
+ */
34
+ includedInExtrinsic?: string;
35
+ /**
36
+ * Signed Extension data included in the signature.
37
+ */
38
+ includedInSignedData?: string;
39
+ /**
40
+ * Block hash or number to query at. Defaults to finalized head.
41
+ */
42
+ at?: string;
43
+ }
44
+ /**
45
+ * Parameters for generating metadata blob proof.
46
+ */
47
+ export interface MetadataBlobParams {
48
+ /**
49
+ * Full encoded extrinsic. Use this OR the individual parts.
50
+ */
51
+ tx?: string;
52
+ /**
53
+ * Optional tx additional signed data.
54
+ */
55
+ txAdditionalSigned?: string;
56
+ /**
57
+ * Call data. Use with includedInExtrinsic and includedInSignedData.
58
+ */
59
+ callData?: string;
60
+ /**
61
+ * Signed Extension data included in the extrinsic.
62
+ */
63
+ includedInExtrinsic?: string;
64
+ /**
65
+ * Signed Extension data included in the signature.
66
+ */
67
+ includedInSignedData?: string;
68
+ }
13
69
  /**
14
70
  * Body for the RequestHandlerContract. In other words, the body of the POST route that a message to a contract.
15
71
  */
@@ -85,6 +141,7 @@ export interface IBlockQueryParams extends Query {
85
141
  decodedXcmMsgs?: string;
86
142
  paraId?: string;
87
143
  useRcBlock?: string;
144
+ useRcBlockFormat?: string;
88
145
  }
89
146
  export interface IRequestHandlerWithMetrics<T = unknown, P = unknown> extends RequestHandler<T, unknown, unknown, P, IMetrics> {
90
147
  }
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright 2017-2025 Parity Technologies (UK) Ltd.
2
+ // Copyright 2017-2026 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
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Minimal relay chain block header information.
3
+ * Used when `useRcBlockFormat=object` to provide RC block context.
4
+ */
5
+ export interface IRcBlockInfo {
6
+ /** The relay chain block hash */
7
+ hash: string;
8
+ /** The parent block hash */
9
+ parentHash: string;
10
+ /** The relay chain block number */
11
+ number: string;
12
+ }
13
+ /**
14
+ * Object format response wrapper for `useRcBlockFormat=object`.
15
+ * Provides relay chain block info alongside parachain data.
16
+ *
17
+ * @typeParam T - The type of data in the parachainDataPerBlock array
18
+ */
19
+ export interface IRcBlockObjectResponse<T> {
20
+ /** Minimal relay chain block header info */
21
+ rcBlock: IRcBlockInfo;
22
+ /** Array of parachain block data (empty if no AH blocks for this RC block) */
23
+ parachainDataPerBlock: T[];
24
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // Copyright 2017-2025 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=RcBlockFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RcBlockFormat.js","sourceRoot":"","sources":["../../../../src/types/responses/RcBlockFormat.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"}
@@ -0,0 +1,11 @@
1
+ import { IAt } from '.';
2
+ export interface ITransactionMetadataBlob {
3
+ at: IAt;
4
+ metadataHash: string;
5
+ metadataBlob: string;
6
+ specVersion: number;
7
+ specName: string;
8
+ base58Prefix: number;
9
+ decimals: number;
10
+ tokenSymbol: string;
11
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // Copyright 2017-2026 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=TransactionMetadataBlob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionMetadataBlob.js","sourceRoot":"","sources":["../../../../src/types/responses/TransactionMetadataBlob.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"}
@@ -41,6 +41,7 @@ export * from './ParachainInclusion';
41
41
  export * from './Paras';
42
42
  export * from './Payout';
43
43
  export * from './PoolAssets';
44
+ export * from './RcBlockFormat';
44
45
  export * from './RuntimeSpec';
45
46
  export * from './SanitizedArgs';
46
47
  export * from './SanitizedCall';
@@ -50,4 +51,5 @@ export * from './SanitizedEventItemMetadata';
50
51
  export * from './SanitizedStorageItemMetadata';
51
52
  export * from './TransactionDryRun';
52
53
  export * from './TransactionMaterial';
54
+ export * from './TransactionMetadataBlob';
53
55
  export * from './ValidateAddress';
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright 2017-2025 Parity Technologies (UK) Ltd.
2
+ // Copyright 2017-2026 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
@@ -72,6 +72,7 @@ __exportStar(require("./ParachainInclusion"), exports);
72
72
  __exportStar(require("./Paras"), exports);
73
73
  __exportStar(require("./Payout"), exports);
74
74
  __exportStar(require("./PoolAssets"), exports);
75
+ __exportStar(require("./RcBlockFormat"), exports);
75
76
  __exportStar(require("./RuntimeSpec"), exports);
76
77
  __exportStar(require("./SanitizedArgs"), exports);
77
78
  __exportStar(require("./SanitizedCall"), exports);
@@ -81,5 +82,6 @@ __exportStar(require("./SanitizedEventItemMetadata"), exports);
81
82
  __exportStar(require("./SanitizedStorageItemMetadata"), exports);
82
83
  __exportStar(require("./TransactionDryRun"), exports);
83
84
  __exportStar(require("./TransactionMaterial"), exports);
85
+ __exportStar(require("./TransactionMetadataBlob"), exports);
84
86
  __exportStar(require("./ValidateAddress"), exports);
85
87
  //# sourceMappingURL=index.js.map
@@ -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,qDAAmC;AACnC,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,wDAAsC;AACtC,6CAA2B;AAC3B,qDAAmC;AACnC,6CAA2B;AAC3B,+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,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAC1C,kDAAgC;AAChC,sDAAoC;AACpC,uDAAqC;AACrC,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,wDAAsC;AACtC,6CAA2B;AAC3B,qDAAmC;AACnC,6CAA2B;AAC3B,+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,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAC1C,kDAAgC;AAChC,sDAAoC;AACpC,uDAAqC;AACrC,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,mDAAiC;AACjC,+DAA6C;AAC7C,iEAA+C;AAC/C,sDAAoC;AACpC,wDAAsC;AACtC,4DAA0C;AAC1C,oDAAkC"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "20.13.3",
2
+ "version": "20.14.0",
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",
@@ -51,6 +51,7 @@
51
51
  "test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
52
52
  },
53
53
  "dependencies": {
54
+ "@polkadot-api/merkleize-metadata": "^1.1.29",
54
55
  "@polkadot/api": "16.5.2",
55
56
  "@polkadot/api-augment": "16.5.2",
56
57
  "@polkadot/api-contract": "16.5.2",
@@ -64,7 +65,7 @@
64
65
  "express": "^5.2.0",
65
66
  "express-winston": "^4.2.0",
66
67
  "http-errors": "^2.0.1",
67
- "lru-cache": "^11.2.4",
68
+ "lru-cache": "^11.2.5",
68
69
  "prom-client": "^15.1.3",
69
70
  "rxjs": "^7.8.2",
70
71
  "winston": "^3.19.0",