@@ -9,7 +9,11 @@ use polymarket_client_sdk::{POLYGON, clob};
99
1010use crate :: config;
1111
12- pub const RPC_URL : & str = "https://polygon.drpc.org" ;
12+ const DEFAULT_RPC_URL : & str = "https://polygon.drpc.org" ;
13+
14+ fn rpc_url ( ) -> String {
15+ std:: env:: var ( "POLYMARKET_RPC_URL" ) . unwrap_or_else ( |_| DEFAULT_RPC_URL . to_string ( ) )
16+ }
1317
1418fn parse_signature_type ( s : & str ) -> SignatureType {
1519 match s {
@@ -22,7 +26,7 @@ fn parse_signature_type(s: &str) -> SignatureType {
2226pub fn resolve_signer (
2327 private_key : Option < & str > ,
2428) -> Result < impl polymarket_client_sdk:: auth:: Signer > {
25- let ( key, _) = config:: resolve_key ( private_key) ;
29+ let ( key, _) = config:: resolve_key ( private_key) ? ;
2630 let key = key. ok_or_else ( || anyhow:: anyhow!( "{}" , config:: NO_WALLET_MSG ) ) ?;
2731 LocalSigner :: from_str ( & key)
2832 . context ( "Invalid private key" )
@@ -41,7 +45,7 @@ pub async fn authenticate_with_signer(
4145 signer : & ( impl polymarket_client_sdk:: auth:: Signer + Sync ) ,
4246 signature_type_flag : Option < & str > ,
4347) -> Result < clob:: Client < Authenticated < Normal > > > {
44- let sig_type = parse_signature_type ( & config:: resolve_signature_type ( signature_type_flag) ) ;
48+ let sig_type = parse_signature_type ( & config:: resolve_signature_type ( signature_type_flag) ? ) ;
4549
4650 clob:: Client :: default ( )
4751 . authentication_builder ( signer)
@@ -53,22 +57,22 @@ pub async fn authenticate_with_signer(
5357
5458pub async fn create_readonly_provider ( ) -> Result < impl alloy:: providers:: Provider + Clone > {
5559 ProviderBuilder :: new ( )
56- . connect ( RPC_URL )
60+ . connect ( & rpc_url ( ) )
5761 . await
5862 . context ( "Failed to connect to Polygon RPC" )
5963}
6064
6165pub async fn create_provider (
6266 private_key : Option < & str > ,
6367) -> Result < impl alloy:: providers:: Provider + Clone > {
64- let ( key, _) = config:: resolve_key ( private_key) ;
68+ let ( key, _) = config:: resolve_key ( private_key) ? ;
6569 let key = key. ok_or_else ( || anyhow:: anyhow!( "{}" , config:: NO_WALLET_MSG ) ) ?;
6670 let signer = LocalSigner :: from_str ( & key)
6771 . context ( "Invalid private key" ) ?
6872 . with_chain_id ( Some ( POLYGON ) ) ;
6973 ProviderBuilder :: new ( )
7074 . wallet ( signer)
71- . connect ( RPC_URL )
75+ . connect ( & rpc_url ( ) )
7276 . await
7377 . context ( "Failed to connect to Polygon RPC with wallet" )
7478}
0 commit comments