@@ -23,108 +23,90 @@ use polkadot_service::westend_runtime as westend_rt;
23
23
use polkadot_service:: Block ;
24
24
use sc_chain_spec:: ChainSpec ;
25
25
use substrate_archive:: { Archive , ArchiveBuilder } ;
26
- use substrate_archive_common:: database :: ReadOnlyDB ;
26
+ use substrate_archive_common:: ReadOnlyDB ;
27
27
28
28
pub fn run_archive < D : ReadOnlyDB + ' static > ( config : Config ) -> Result < Box < dyn Archive < Block , D > > > {
29
- let mut db_path = if let Some ( p) = config. polkadot_path ( ) {
30
- p
31
- } else {
32
- let path = std:: env:: var ( "CHAIN_DATA_DB" ) . expect ( "CHAIN_DATA_DB must be set." ) ;
33
- std:: path:: PathBuf :: from ( path)
34
- } ;
29
+ let mut db_path = if let Some ( p) = config. polkadot_path ( ) {
30
+ p
31
+ } else {
32
+ let path = std:: env:: var ( "CHAIN_DATA_DB" ) . expect ( "CHAIN_DATA_DB must be set." ) ;
33
+ std:: path:: PathBuf :: from ( path)
34
+ } ;
35
35
36
- let spec = get_spec ( config. cli ( ) . chain . as_str ( ) ) ?;
36
+ let spec = get_spec ( config. cli ( ) . chain . as_str ( ) ) ?;
37
37
38
- let last_path_part = db_path
39
- . file_name ( )
40
- . context ( "Polkadot path not valid" ) ?
41
- . to_str ( )
42
- . context ( "could not convert path to string" ) ?;
38
+ let last_path_part =
39
+ db_path. file_name ( ) . context ( "Polkadot path not valid" ) ?. to_str ( ) . context ( "could not convert path to string" ) ?;
43
40
44
- match last_path_part {
45
- "polkadot" => db_path. push ( format ! ( "chains/{}/db" , spec. id( ) ) ) ,
46
- "chains" => db_path. push ( format ! ( "{}/db" , spec. id( ) ) ) ,
47
- _ => return Err ( anyhow ! ( "invalid path {}" , db_path. as_path( ) . display( ) ) ) ,
48
- }
41
+ match last_path_part {
42
+ "polkadot" => db_path. push ( format ! ( "chains/{}/db" , spec. id( ) ) ) ,
43
+ "chains" => db_path. push ( format ! ( "{}/db" , spec. id( ) ) ) ,
44
+ _ => return Err ( anyhow ! ( "invalid path {}" , db_path. as_path( ) . display( ) ) ) ,
45
+ }
49
46
50
- let db_path = db_path
51
- . as_path ( )
52
- . to_str ( )
53
- . context ( "could not convert rocksdb path to str" ) ?
54
- . to_string ( ) ;
47
+ let db_path = db_path. as_path ( ) . to_str ( ) . context ( "could not convert rocksdb path to str" ) ?. to_string ( ) ;
55
48
56
- match config. cli ( ) . chain . to_ascii_lowercase ( ) . as_str ( ) {
57
- "kusama" | "ksm" => {
58
- let archive =
59
- ArchiveBuilder :: < Block , ksm_rt:: RuntimeApi , polkadot_service:: KusamaExecutor , D > {
60
- pg_url : config. psql_conf ( ) . map ( |u| u. url ( ) ) ,
61
- cache_size : config. cache_size ( ) ,
62
- block_workers : config. block_workers ( ) ,
63
- wasm_pages : config. wasm_pages ( ) ,
64
- max_block_load : config. max_block_load ( ) ,
65
- ..ArchiveBuilder :: default ( )
66
- }
67
- . chain_data_db ( db_path)
68
- . chain_spec ( spec)
69
- . build ( ) ?;
70
- Ok ( Box :: new ( archive) )
71
- }
72
- "westend" => {
73
- let archive = ArchiveBuilder :: <
74
- Block ,
75
- westend_rt:: RuntimeApi ,
76
- polkadot_service:: WestendExecutor ,
77
- D ,
78
- > {
79
- pg_url : config. psql_conf ( ) . map ( |u| u. url ( ) ) ,
80
- cache_size : config. cache_size ( ) ,
81
- block_workers : config. block_workers ( ) ,
82
- wasm_pages : config. wasm_pages ( ) ,
83
- max_block_load : config. max_block_load ( ) ,
84
- ..ArchiveBuilder :: default ( )
85
- }
86
- . chain_data_db ( db_path)
87
- . chain_spec ( spec)
88
- . build ( ) ?;
89
- Ok ( Box :: new ( archive) )
90
- }
91
- "polkadot" | "dot" => {
92
- let archive = ArchiveBuilder :: <
93
- Block ,
94
- dot_rt:: RuntimeApi ,
95
- polkadot_service:: PolkadotExecutor ,
96
- D ,
97
- > {
98
- pg_url : config. psql_conf ( ) . map ( |u| u. url ( ) ) ,
99
- cache_size : config. cache_size ( ) ,
100
- block_workers : config. block_workers ( ) ,
101
- wasm_pages : config. wasm_pages ( ) ,
102
- max_block_load : config. max_block_load ( ) ,
103
- ..ArchiveBuilder :: default ( )
104
- }
105
- . chain_data_db ( db_path)
106
- . chain_spec ( spec)
107
- . build ( ) ?;
108
- Ok ( Box :: new ( archive) )
109
- }
110
- c => Err ( anyhow ! ( "unknown chain {}" , c) ) ,
111
- }
49
+ match config. cli ( ) . chain . to_ascii_lowercase ( ) . as_str ( ) {
50
+ "kusama" | "ksm" => {
51
+ let archive = ArchiveBuilder :: < Block , ksm_rt:: RuntimeApi , polkadot_service:: KusamaExecutor , D > {
52
+ pg_url : config. psql_conf ( ) . map ( |u| u. url ( ) ) ,
53
+ cache_size : config. cache_size ( ) ,
54
+ block_workers : config. block_workers ( ) ,
55
+ wasm_pages : config. wasm_pages ( ) ,
56
+ max_block_load : config. max_block_load ( ) ,
57
+ ..ArchiveBuilder :: default ( )
58
+ }
59
+ . chain_data_db ( db_path)
60
+ . chain_spec ( spec)
61
+ . build ( ) ?;
62
+ Ok ( Box :: new ( archive) )
63
+ }
64
+ "westend" => {
65
+ let archive = ArchiveBuilder :: < Block , westend_rt:: RuntimeApi , polkadot_service:: WestendExecutor , D > {
66
+ pg_url : config. psql_conf ( ) . map ( |u| u. url ( ) ) ,
67
+ cache_size : config. cache_size ( ) ,
68
+ block_workers : config. block_workers ( ) ,
69
+ wasm_pages : config. wasm_pages ( ) ,
70
+ max_block_load : config. max_block_load ( ) ,
71
+ ..ArchiveBuilder :: default ( )
72
+ }
73
+ . chain_data_db ( db_path)
74
+ . chain_spec ( spec)
75
+ . build ( ) ?;
76
+ Ok ( Box :: new ( archive) )
77
+ }
78
+ "polkadot" | "dot" => {
79
+ let archive = ArchiveBuilder :: < Block , dot_rt:: RuntimeApi , polkadot_service:: PolkadotExecutor , D > {
80
+ pg_url : config. psql_conf ( ) . map ( |u| u. url ( ) ) ,
81
+ cache_size : config. cache_size ( ) ,
82
+ block_workers : config. block_workers ( ) ,
83
+ wasm_pages : config. wasm_pages ( ) ,
84
+ max_block_load : config. max_block_load ( ) ,
85
+ ..ArchiveBuilder :: default ( )
86
+ }
87
+ . chain_data_db ( db_path)
88
+ . chain_spec ( spec)
89
+ . build ( ) ?;
90
+ Ok ( Box :: new ( archive) )
91
+ }
92
+ c => Err ( anyhow ! ( "unknown chain {}" , c) ) ,
93
+ }
112
94
}
113
95
114
96
fn get_spec ( chain : & str ) -> Result < Box < dyn ChainSpec > > {
115
- match chain. to_ascii_lowercase ( ) . as_str ( ) {
116
- "kusama" | "ksm" => {
117
- let spec = polkadot_service:: chain_spec:: kusama_config ( ) . unwrap ( ) ;
118
- Ok ( Box :: new ( spec) as Box < dyn ChainSpec > )
119
- }
120
- "westend" => {
121
- let spec = polkadot_service:: chain_spec:: westend_config ( ) . unwrap ( ) ;
122
- Ok ( Box :: new ( spec) as Box < dyn ChainSpec > )
123
- }
124
- "polkadot" | "dot" => {
125
- let spec = polkadot_service:: chain_spec:: polkadot_config ( ) . unwrap ( ) ;
126
- Ok ( Box :: new ( spec) as Box < dyn ChainSpec > )
127
- }
128
- c => Err ( anyhow ! ( "unknown chain {}" , c) ) ,
129
- }
97
+ match chain. to_ascii_lowercase ( ) . as_str ( ) {
98
+ "kusama" | "ksm" => {
99
+ let spec = polkadot_service:: chain_spec:: kusama_config ( ) . unwrap ( ) ;
100
+ Ok ( Box :: new ( spec) as Box < dyn ChainSpec > )
101
+ }
102
+ "westend" => {
103
+ let spec = polkadot_service:: chain_spec:: westend_config ( ) . unwrap ( ) ;
104
+ Ok ( Box :: new ( spec) as Box < dyn ChainSpec > )
105
+ }
106
+ "polkadot" | "dot" => {
107
+ let spec = polkadot_service:: chain_spec:: polkadot_config ( ) . unwrap ( ) ;
108
+ Ok ( Box :: new ( spec) as Box < dyn ChainSpec > )
109
+ }
110
+ c => Err ( anyhow ! ( "unknown chain {}" , c) ) ,
111
+ }
130
112
}
0 commit comments