1- from pydantic import model_validator
1+ from pydantic import model_validator , HttpUrl , BaseModel
22from pydantic_settings import BaseSettings , SettingsConfigDict
3- from stellar_sdk import Keypair
3+ from stellar_sdk import Keypair , Network
44
55__all__ = ["Identity" ]
66
@@ -12,8 +12,8 @@ class Identity(BaseSettings):
1212
1313 model_config = SettingsConfigDict (env_file = "identity.toml" )
1414
15- @model_validator (mode = ' after' )
16- def load_keys (self ) -> 'UserModel' :
15+ @model_validator (mode = " after" )
16+ def load_keys (self ) -> "Identity" :
1717 if self .keypair is None and self .secret_key is None :
1818 raise ValueError ("Either provide a secret key or a Keypair object." )
1919 if self .keypair is not None :
@@ -22,3 +22,15 @@ def load_keys(self) -> 'UserModel':
2222 self .keypair = Keypair .from_secret (self .secret_key )
2323 self .public_key = self .keypair .public_key
2424 return self
25+
26+
27+ class NetworkConfig (BaseSettings ):
28+ soroban_rpc_url : HttpUrl = HttpUrl ("https://soroban-testnet.stellar.org:443" )
29+ passphrase : str = Network .TESTNET_NETWORK_PASSPHRASE
30+
31+ model_config = SettingsConfigDict (env_file = "network.toml" )
32+
33+
34+ class SorobanConfig (BaseModel ):
35+ network : NetworkConfig = NetworkConfig ()
36+ keys : list [Identity ] = [Identity ()]
0 commit comments