@@ -14,6 +14,35 @@ use init4_bin_base::{
14
14
use std:: time:: { Duration , Instant } ;
15
15
use tokio:: time:: timeout;
16
16
17
+ #[ derive( Debug , Clone , FromEnv ) ]
18
+ struct Config {
19
+ #[ from_env( var = "RPC_URL" , desc = "Ethereum RPC URL" ) ]
20
+ rpc_url : String ,
21
+ #[ from_env( var = "CHAIN_ID" , desc = "Ethereum chain ID" ) ]
22
+ chain_id : u64 ,
23
+ #[ from_env( var = "AWS_KMS_KEY_ID" , desc = "AWS KMS key ID" ) ]
24
+ kms_key_id : String ,
25
+ #[ from_env( var = "RECIPIENT_ADDRESS" , desc = "Recipient address" ) ]
26
+ recipient_address : Address ,
27
+ #[ from_env( var = "SLEEP_TIME" , desc = "Time to sleep between transactions" ) ]
28
+ sleep_time : u64 ,
29
+ }
30
+
31
+ impl Config {
32
+ async fn provider ( & self ) -> HostProvider {
33
+ let config = aws_config:: load_defaults ( aws_config:: BehaviorVersion :: latest ( ) ) . await ;
34
+ let client = aws_sdk_kms:: Client :: new ( & config) ;
35
+ let signer =
36
+ AwsSigner :: new ( client, self . kms_key_id . clone ( ) , Some ( self . chain_id ) ) . await . unwrap ( ) ;
37
+
38
+ ProviderBuilder :: new ( )
39
+ . wallet ( EthereumWallet :: from ( signer) )
40
+ . connect ( & self . rpc_url )
41
+ . await
42
+ . unwrap ( )
43
+ }
44
+ }
45
+
17
46
#[ tokio:: main]
18
47
async fn main ( ) {
19
48
init4 ( ) ;
@@ -70,32 +99,3 @@ async fn send_transaction(provider: &HostProvider, recipient_address: Address) {
70
99
tracing:: debug!( success = receipt. status( ) , mine_time, hash, "transaction mined" ) ;
71
100
histogram ! ( "txn_submitter.tx_mine_time" ) . record ( mine_time as f64 ) ;
72
101
}
73
-
74
- #[ derive( Debug , Clone , FromEnv ) ]
75
- struct Config {
76
- #[ from_env( var = "RPC_URL" , desc = "Ethereum RPC URL" ) ]
77
- rpc_url : String ,
78
- #[ from_env( var = "CHAIN_ID" , desc = "Ethereum chain ID" ) ]
79
- chain_id : u64 ,
80
- #[ from_env( var = "AWS_KMS_KEY_ID" , desc = "AWS KMS key ID" ) ]
81
- kms_key_id : String ,
82
- #[ from_env( var = "RECIPIENT_ADDRESS" , desc = "Recipient address" ) ]
83
- recipient_address : Address ,
84
- #[ from_env( var = "SLEEP_TIME" , desc = "Time to sleep between transactions" ) ]
85
- sleep_time : u64 ,
86
- }
87
-
88
- impl Config {
89
- async fn provider ( & self ) -> HostProvider {
90
- let config = aws_config:: load_defaults ( aws_config:: BehaviorVersion :: latest ( ) ) . await ;
91
- let client = aws_sdk_kms:: Client :: new ( & config) ;
92
- let signer =
93
- AwsSigner :: new ( client, self . kms_key_id . clone ( ) , Some ( self . chain_id ) ) . await . unwrap ( ) ;
94
-
95
- ProviderBuilder :: new ( )
96
- . wallet ( EthereumWallet :: from ( signer) )
97
- . connect ( & self . rpc_url )
98
- . await
99
- . unwrap ( )
100
- }
101
- }
0 commit comments