Skip to content

Commit 53e2aad

Browse files
committed
Stabilize V2 archive RPC methods
1 parent 9a901f3 commit 53e2aad

File tree

4 files changed

+55
-55
lines changed

4 files changed

+55
-55
lines changed

substrate/client/rpc-spec-v2/src/archive/api.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ pub trait ArchiveApi<Hash> {
3636
/// # Unstable
3737
///
3838
/// This method is unstable and subject to change in the future.
39-
#[method(name = "archive_unstable_body")]
40-
fn archive_unstable_body(&self, hash: Hash) -> RpcResult<Option<Vec<String>>>;
39+
#[method(name = "archive_v1_body")]
40+
fn archive_v1_body(&self, hash: Hash) -> RpcResult<Option<Vec<String>>>;
4141

4242
/// Get the chain's genesis hash.
4343
///
@@ -46,8 +46,8 @@ pub trait ArchiveApi<Hash> {
4646
/// # Unstable
4747
///
4848
/// This method is unstable and subject to change in the future.
49-
#[method(name = "archive_unstable_genesisHash")]
50-
fn archive_unstable_genesis_hash(&self) -> RpcResult<String>;
49+
#[method(name = "archive_v1_genesisHash")]
50+
fn archive_v1_genesis_hash(&self) -> RpcResult<String>;
5151

5252
/// Get the block's header.
5353
///
@@ -57,8 +57,8 @@ pub trait ArchiveApi<Hash> {
5757
/// # Unstable
5858
///
5959
/// This method is unstable and subject to change in the future.
60-
#[method(name = "archive_unstable_header")]
61-
fn archive_unstable_header(&self, hash: Hash) -> RpcResult<Option<String>>;
60+
#[method(name = "archive_v1_header")]
61+
fn archive_v1_header(&self, hash: Hash) -> RpcResult<Option<String>>;
6262

6363
/// Get the height of the current finalized block.
6464
///
@@ -67,8 +67,8 @@ pub trait ArchiveApi<Hash> {
6767
/// # Unstable
6868
///
6969
/// This method is unstable and subject to change in the future.
70-
#[method(name = "archive_unstable_finalizedHeight")]
71-
fn archive_unstable_finalized_height(&self) -> RpcResult<u64>;
70+
#[method(name = "archive_v1_finalizedHeight")]
71+
fn archive_v1_finalized_height(&self) -> RpcResult<u64>;
7272

7373
/// Get the hashes of blocks from the given height.
7474
///
@@ -78,16 +78,16 @@ pub trait ArchiveApi<Hash> {
7878
/// # Unstable
7979
///
8080
/// This method is unstable and subject to change in the future.
81-
#[method(name = "archive_unstable_hashByHeight")]
82-
fn archive_unstable_hash_by_height(&self, height: u64) -> RpcResult<Vec<String>>;
81+
#[method(name = "archive_v1_hashByHeight")]
82+
fn archive_v1_hash_by_height(&self, height: u64) -> RpcResult<Vec<String>>;
8383

8484
/// Call into the Runtime API at a specified block's state.
8585
///
8686
/// # Unstable
8787
///
8888
/// This method is unstable and subject to change in the future.
89-
#[method(name = "archive_unstable_call")]
90-
fn archive_unstable_call(
89+
#[method(name = "archive_v1_call")]
90+
fn archive_v1_call(
9191
&self,
9292
hash: Hash,
9393
function: String,
@@ -100,11 +100,11 @@ pub trait ArchiveApi<Hash> {
100100
///
101101
/// This method is unstable and subject to change in the future.
102102
#[subscription(
103-
name = "archive_unstable_storage" => "archive_unstable_storageEvent",
104-
unsubscribe = "archive_unstable_stopStorage",
103+
name = "archive_v1_storage" => "archive_v1_storageEvent",
104+
unsubscribe = "archive_v1_stopStorage",
105105
item = ArchiveStorageEvent,
106106
)]
107-
fn archive_unstable_storage(
107+
fn archive_v1_storage(
108108
&self,
109109
hash: Hash,
110110
items: Vec<StorageQuery<String>>,
@@ -117,11 +117,11 @@ pub trait ArchiveApi<Hash> {
117117
///
118118
/// This method is unstable and can change in minor or patch releases.
119119
#[subscription(
120-
name = "archive_unstable_storageDiff" => "archive_unstable_storageDiffEvent",
121-
unsubscribe = "archive_unstable_storageDiff_stopStorageDiff",
120+
name = "archive_v1_storageDiff" => "archive_v1_storageDiffEvent",
121+
unsubscribe = "archive_v1_storageDiff_stopStorageDiff",
122122
item = ArchiveStorageDiffEvent,
123123
)]
124-
fn archive_unstable_storage_diff(
124+
fn archive_v1_storage_diff(
125125
&self,
126126
hash: Hash,
127127
items: Vec<ArchiveStorageDiffItem<String>>,

substrate/client/rpc-spec-v2/src/archive/archive.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ where
117117
+ StorageProvider<Block, BE>
118118
+ 'static,
119119
{
120-
fn archive_unstable_body(&self, hash: Block::Hash) -> RpcResult<Option<Vec<String>>> {
120+
fn archive_v1_body(&self, hash: Block::Hash) -> RpcResult<Option<Vec<String>>> {
121121
let Ok(Some(signed_block)) = self.client.block(hash) else { return Ok(None) };
122122

123123
let extrinsics = signed_block
@@ -130,21 +130,21 @@ where
130130
Ok(Some(extrinsics))
131131
}
132132

133-
fn archive_unstable_genesis_hash(&self) -> RpcResult<String> {
133+
fn archive_v1_genesis_hash(&self) -> RpcResult<String> {
134134
Ok(self.genesis_hash.clone())
135135
}
136136

137-
fn archive_unstable_header(&self, hash: Block::Hash) -> RpcResult<Option<String>> {
137+
fn archive_v1_header(&self, hash: Block::Hash) -> RpcResult<Option<String>> {
138138
let Ok(Some(header)) = self.client.header(hash) else { return Ok(None) };
139139

140140
Ok(Some(hex_string(&header.encode())))
141141
}
142142

143-
fn archive_unstable_finalized_height(&self) -> RpcResult<u64> {
143+
fn archive_v1_finalized_height(&self) -> RpcResult<u64> {
144144
Ok(self.client.info().finalized_number.saturated_into())
145145
}
146146

147-
fn archive_unstable_hash_by_height(&self, height: u64) -> RpcResult<Vec<String>> {
147+
fn archive_v1_hash_by_height(&self, height: u64) -> RpcResult<Vec<String>> {
148148
let height: NumberFor<Block> = U256::from(height)
149149
.try_into()
150150
.map_err(|_| ArchiveError::InvalidParam(format!("Invalid block height: {}", height)))?;
@@ -195,7 +195,7 @@ where
195195
Ok(result)
196196
}
197197

198-
fn archive_unstable_call(
198+
fn archive_v1_call(
199199
&self,
200200
hash: Block::Hash,
201201
function: String,
@@ -214,7 +214,7 @@ where
214214
})
215215
}
216216

217-
fn archive_unstable_storage(
217+
fn archive_v1_storage(
218218
&self,
219219
pending: PendingSubscriptionSink,
220220
hash: Block::Hash,
@@ -265,7 +265,7 @@ where
265265
self.executor.spawn("substrate-rpc-subscription", Some("rpc"), fut.boxed());
266266
}
267267

268-
fn archive_unstable_storage_diff(
268+
fn archive_v1_storage_diff(
269269
&self,
270270
pending: PendingSubscriptionSink,
271271
hash: Block::Hash,

substrate/client/rpc-spec-v2/src/archive/tests.rs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ async fn archive_genesis() {
9595
let (_client, api) = setup_api();
9696

9797
let genesis: String =
98-
api.call("archive_unstable_genesisHash", EmptyParams::new()).await.unwrap();
98+
api.call("archive_v1_genesisHash", EmptyParams::new()).await.unwrap();
9999
assert_eq!(genesis, hex_string(&CHAIN_GENESIS));
100100
}
101101

@@ -105,7 +105,7 @@ async fn archive_body() {
105105

106106
// Invalid block hash.
107107
let invalid_hash = hex_string(&INVALID_HASH);
108-
let res: Option<Vec<String>> = api.call("archive_unstable_body", [invalid_hash]).await.unwrap();
108+
let res: Option<Vec<String>> = api.call("archive_v1_body", [invalid_hash]).await.unwrap();
109109
assert!(res.is_none());
110110

111111
// Import a new block with an extrinsic.
@@ -129,7 +129,7 @@ async fn archive_body() {
129129

130130
let expected_tx = hex_string(&block.extrinsics[0].encode());
131131

132-
let body: Vec<String> = api.call("archive_unstable_body", [block_hash]).await.unwrap();
132+
let body: Vec<String> = api.call("archive_v1_body", [block_hash]).await.unwrap();
133133
assert_eq!(vec![expected_tx], body);
134134
}
135135

@@ -139,7 +139,7 @@ async fn archive_header() {
139139

140140
// Invalid block hash.
141141
let invalid_hash = hex_string(&INVALID_HASH);
142-
let res: Option<String> = api.call("archive_unstable_header", [invalid_hash]).await.unwrap();
142+
let res: Option<String> = api.call("archive_v1_header", [invalid_hash]).await.unwrap();
143143
assert!(res.is_none());
144144

145145
// Import a new block with an extrinsic.
@@ -161,7 +161,7 @@ async fn archive_header() {
161161
let block_hash = format!("{:?}", block.header.hash());
162162
client.import(BlockOrigin::Own, block.clone()).await.unwrap();
163163

164-
let header: String = api.call("archive_unstable_header", [block_hash]).await.unwrap();
164+
let header: String = api.call("archive_v1_header", [block_hash]).await.unwrap();
165165
let bytes = array_bytes::hex2bytes(&header).unwrap();
166166
let header: Header = Decode::decode(&mut &bytes[..]).unwrap();
167167
assert_eq!(header, block.header);
@@ -174,7 +174,7 @@ async fn archive_finalized_height() {
174174
let client_height: u32 = client.info().finalized_number.saturated_into();
175175

176176
let height: u32 =
177-
api.call("archive_unstable_finalizedHeight", EmptyParams::new()).await.unwrap();
177+
api.call("archive_v1_finalizedHeight", EmptyParams::new()).await.unwrap();
178178

179179
assert_eq!(client_height, height);
180180
}
@@ -184,7 +184,7 @@ async fn archive_hash_by_height() {
184184
let (client, api) = setup_api();
185185

186186
// Genesis height.
187-
let hashes: Vec<String> = api.call("archive_unstable_hashByHeight", [0]).await.unwrap();
187+
let hashes: Vec<String> = api.call("archive_v1_hashByHeight", [0]).await.unwrap();
188188
assert_eq!(hashes, vec![format!("{:?}", client.genesis_hash())]);
189189

190190
// Block tree:
@@ -260,28 +260,28 @@ async fn archive_hash_by_height() {
260260
client.import(BlockOrigin::Own, block_4.clone()).await.unwrap();
261261

262262
// Check finalized height.
263-
let hashes: Vec<String> = api.call("archive_unstable_hashByHeight", [1]).await.unwrap();
263+
let hashes: Vec<String> = api.call("archive_v1_hashByHeight", [1]).await.unwrap();
264264
assert_eq!(hashes, vec![format!("{:?}", finalized_hash)]);
265265

266266
// Test nonfinalized heights.
267267
// Height N must include block 1.
268268
let mut height = block_1.header.number;
269-
let hashes: Vec<String> = api.call("archive_unstable_hashByHeight", [height]).await.unwrap();
269+
let hashes: Vec<String> = api.call("archive_v1_hashByHeight", [height]).await.unwrap();
270270
assert_eq!(hashes, vec![format!("{:?}", block_1_hash)]);
271271

272272
// Height (N + 1) must include block 2 and 4.
273273
height += 1;
274-
let hashes: Vec<String> = api.call("archive_unstable_hashByHeight", [height]).await.unwrap();
274+
let hashes: Vec<String> = api.call("archive_v1_hashByHeight", [height]).await.unwrap();
275275
assert_eq!(hashes, vec![format!("{:?}", block_4_hash), format!("{:?}", block_2_hash)]);
276276

277277
// Height (N + 2) must include block 3.
278278
height += 1;
279-
let hashes: Vec<String> = api.call("archive_unstable_hashByHeight", [height]).await.unwrap();
279+
let hashes: Vec<String> = api.call("archive_v1_hashByHeight", [height]).await.unwrap();
280280
assert_eq!(hashes, vec![format!("{:?}", block_3_hash)]);
281281

282282
// Height (N + 3) has no blocks.
283283
height += 1;
284-
let hashes: Vec<String> = api.call("archive_unstable_hashByHeight", [height]).await.unwrap();
284+
let hashes: Vec<String> = api.call("archive_v1_hashByHeight", [height]).await.unwrap();
285285
assert!(hashes.is_empty());
286286
}
287287

@@ -293,7 +293,7 @@ async fn archive_call() {
293293
// Invalid parameter (non-hex).
294294
let err = api
295295
.call::<_, serde_json::Value>(
296-
"archive_unstable_call",
296+
"archive_v1_call",
297297
[&invalid_hash, "BabeApi_current_epoch", "0x00X"],
298298
)
299299
.await
@@ -303,7 +303,7 @@ async fn archive_call() {
303303
// Pass an invalid parameters that cannot be decode.
304304
let err = api
305305
.call::<_, serde_json::Value>(
306-
"archive_unstable_call",
306+
"archive_v1_call",
307307
// 0x0 is invalid.
308308
[&invalid_hash, "BabeApi_current_epoch", "0x0"],
309309
)
@@ -313,7 +313,7 @@ async fn archive_call() {
313313

314314
// Invalid hash.
315315
let result: MethodResult = api
316-
.call("archive_unstable_call", [&invalid_hash, "BabeApi_current_epoch", "0x00"])
316+
.call("archive_v1_call", [&invalid_hash, "BabeApi_current_epoch", "0x00"])
317317
.await
318318
.unwrap();
319319
assert_matches!(result, MethodResult::Err(_));
@@ -335,7 +335,7 @@ async fn archive_call() {
335335
let call_parameters = hex_string(&alice_id.encode());
336336
let result: MethodResult = api
337337
.call(
338-
"archive_unstable_call",
338+
"archive_v1_call",
339339
[&format!("{:?}", block_1_hash), "AccountNonceApi_account_nonce", &call_parameters],
340340
)
341341
.await
@@ -368,7 +368,7 @@ async fn archive_storage_hashes_values() {
368368
];
369369

370370
let mut sub = api
371-
.subscribe_unbounded("archive_unstable_storage", rpc_params![&block_hash, items.clone()])
371+
.subscribe_unbounded("archive_v1_storage", rpc_params![&block_hash, items.clone()])
372372
.await
373373
.unwrap();
374374

@@ -393,7 +393,7 @@ async fn archive_storage_hashes_values() {
393393
let expected_value = hex_string(&VALUE);
394394

395395
let mut sub = api
396-
.subscribe_unbounded("archive_unstable_storage", rpc_params![&block_hash, items])
396+
.subscribe_unbounded("archive_v1_storage", rpc_params![&block_hash, items])
397397
.await
398398
.unwrap();
399399

@@ -456,7 +456,7 @@ async fn archive_storage_hashes_values_child_trie() {
456456
];
457457
let mut sub = api
458458
.subscribe_unbounded(
459-
"archive_unstable_storage",
459+
"archive_v1_storage",
460460
rpc_params![&genesis_hash, items, &child_info],
461461
)
462462
.await
@@ -502,7 +502,7 @@ async fn archive_storage_closest_merkle_value() {
502502
) -> HashMap<String, String> {
503503
let mut sub = api
504504
.subscribe_unbounded(
505-
"archive_unstable_storage",
505+
"archive_v1_storage",
506506
rpc_params![
507507
&block_hash,
508508
vec![
@@ -664,7 +664,7 @@ async fn archive_storage_iterations() {
664664
let invalid_hash = hex_string(&INVALID_HASH);
665665
let mut sub = api
666666
.subscribe_unbounded(
667-
"archive_unstable_storage",
667+
"archive_v1_storage",
668668
rpc_params![
669669
&invalid_hash,
670670
vec![StorageQuery {
@@ -684,7 +684,7 @@ async fn archive_storage_iterations() {
684684
// Valid call with storage at the key.
685685
let mut sub = api
686686
.subscribe_unbounded(
687-
"archive_unstable_storage",
687+
"archive_v1_storage",
688688
rpc_params![
689689
&block_hash,
690690
vec![StorageQuery {
@@ -791,7 +791,7 @@ async fn archive_storage_diff_main_trie() {
791791
];
792792
let mut sub = api
793793
.subscribe_unbounded(
794-
"archive_unstable_storageDiff",
794+
"archive_v1_storageDiff",
795795
rpc_params![&block_hash, items.clone(), &prev_hash],
796796
)
797797
.await
@@ -894,7 +894,7 @@ async fn archive_storage_diff_no_changes() {
894894
}];
895895
let mut sub = api
896896
.subscribe_unbounded(
897-
"archive_unstable_storageDiff",
897+
"archive_v1_storageDiff",
898898
rpc_params![&block_hash, items.clone(), &prev_hash],
899899
)
900900
.await
@@ -949,7 +949,7 @@ async fn archive_storage_diff_deleted_changes() {
949949

950950
let mut sub = api
951951
.subscribe_unbounded(
952-
"archive_unstable_storageDiff",
952+
"archive_v1_storageDiff",
953953
rpc_params![&block_hash, items.clone(), &prev_hash],
954954
)
955955
.await
@@ -979,7 +979,7 @@ async fn archive_storage_diff_invalid_params() {
979979
let items: Vec<ArchiveStorageDiffItem<String>> = Vec::new();
980980
let err = api
981981
.subscribe_unbounded(
982-
"archive_unstable_storageDiff",
982+
"archive_v1_storageDiff",
983983
rpc_params!["123", items.clone(), &invalid_hash],
984984
)
985985
.await
@@ -992,7 +992,7 @@ async fn archive_storage_diff_invalid_params() {
992992
let items: Vec<ArchiveStorageDiffItem<String>> = Vec::new();
993993
let mut sub = api
994994
.subscribe_unbounded(
995-
"archive_unstable_storageDiff",
995+
"archive_v1_storageDiff",
996996
rpc_params![&invalid_hash, items.clone(), &invalid_hash],
997997
)
998998
.await

0 commit comments

Comments
 (0)