@@ -9,18 +9,39 @@ export type TestnetOptions = {
99 seed : string ;
1010 keplr : Keplr ;
1111 paymentMode ?: PaymentMode ;
12+ config ?: TestnetConfig ;
13+ } ;
14+
15+ export type TestnetConfig = {
16+ bootnodeUrl : string ;
17+ chainUrl : string ;
18+ chainId : string ;
19+ } ;
20+
21+ const TestnetDefaultConfig : TestnetConfig = {
22+ bootnodeUrl :
23+ "https://node-1.nilvm-testnet-1.nillion-network.testnet.nillion.network:14311" ,
24+ chainUrl : "http://rpc.testnet.nilchain-rpc-proxy.nilogy.xyz" ,
25+ chainId : "nillion-chain-testnet-1" ,
1226} ;
1327
1428export type DevnetOptions = {
1529 network : "devnet" ;
1630 seed ?: string ;
1731 signer ?: Keplr | OfflineSigner ;
1832 paymentMode ?: PaymentMode ;
33+ config ?: DevnetConfig ;
1934} ;
2035
21- type Options = DevnetOptions | TestnetOptions ;
36+ export type DevnetConfig = {
37+ bootnodeUrl : string ;
38+ chainUrl : string ;
39+ chainId : string ;
40+ seed : string ;
41+ nilchainPrivateKey0 : string ;
42+ } ;
2243
23- const DevnetConfig = {
44+ const DevnetDefaultConfig : DevnetConfig = {
2445 bootnodeUrl : "http://127.0.0.1:43207" ,
2546 chainUrl : "http://127.0.0.1:48102" ,
2647 chainId : "nillion-chain-devnet" ,
@@ -29,48 +50,53 @@ const DevnetConfig = {
2950 "9a975f567428d054f2bf3092812e6c42f901ce07d9711bc77ee2cd81101f42c5" ,
3051} ;
3152
32- const TestnetConfig = {
33- bootnodeUrl : "https://node-1.photon2.nillion-network.nilogy.xyz:14311/" ,
34- chainUrl : "http://rpc.testnet.nilchain-rpc-proxy.nilogy.xyz" ,
35- chainId : "nillion-chain-testnet-1" ,
36- } ;
53+ type Options = DevnetOptions | TestnetOptions ;
3754
3855export async function createClient ( options : Options ) {
3956 const builder = new VmClientBuilder ( options . paymentMode ) ;
4057 switch ( options . network . toLowerCase ( ) ) {
4158 case "devnet" : {
42- const config = options as DevnetOptions ;
59+ const network = options as DevnetOptions ;
60+ let config = DevnetDefaultConfig ;
61+ if ( network . config !== undefined ) {
62+ config = network . config ;
63+ }
4364
4465 let signer : OfflineSigner ;
4566
46- if ( config . signer ) {
47- if ( "getOfflineSigner" in config . signer ) {
48- signer = config . signer . getOfflineSigner ( DevnetConfig . chainId ) ;
67+ if ( network . signer ) {
68+ if ( "getOfflineSigner" in network . signer ) {
69+ signer = network . signer . getOfflineSigner ( config . chainId ) ;
4970 } else {
50- signer = config . signer ;
71+ signer = network . signer ;
5172 }
5273 } else {
53- signer = await createSignerFromKey ( DevnetConfig . nilchainPrivateKey0 ) ;
74+ signer = await createSignerFromKey ( config . nilchainPrivateKey0 ) ;
5475 }
5576
56- const seed = config . seed ? config . seed : DevnetConfig . seed ;
77+ const seed = network . seed ? network . seed : config . seed ;
5778
5879 builder
5980 . seed ( seed )
60- . bootnodeUrl ( DevnetConfig . bootnodeUrl )
61- . chainUrl ( DevnetConfig . chainUrl )
81+ . bootnodeUrl ( config . bootnodeUrl )
82+ . chainUrl ( config . chainUrl )
6283 . signer ( signer ) ;
6384
6485 break ;
6586 }
6687 case "testnet" : {
67- const config = options as TestnetOptions ;
68- const signer = config . keplr . getOfflineSigner ( TestnetConfig . chainId ) ;
88+ const network = options as TestnetOptions ;
89+ let config = TestnetDefaultConfig ;
90+ if ( network . config !== undefined ) {
91+ config = network . config ;
92+ }
93+
94+ const signer = network . keplr . getOfflineSigner ( config . chainId ) ;
6995
7096 builder
71- . seed ( config . seed )
72- . bootnodeUrl ( TestnetConfig . bootnodeUrl )
73- . chainUrl ( TestnetConfig . chainUrl )
97+ . seed ( network . seed )
98+ . bootnodeUrl ( config . bootnodeUrl )
99+ . chainUrl ( config . chainUrl )
74100 . signer ( signer ) ;
75101
76102 break ;
0 commit comments