@@ -9,18 +9,39 @@ export type TestnetOptions = {
9
9
seed : string ;
10
10
keplr : Keplr ;
11
11
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" ,
12
26
} ;
13
27
14
28
export type DevnetOptions = {
15
29
network : "devnet" ;
16
30
seed ?: string ;
17
31
signer ?: Keplr | OfflineSigner ;
18
32
paymentMode ?: PaymentMode ;
33
+ config ?: DevnetConfig ;
19
34
} ;
20
35
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
+ } ;
22
43
23
- const DevnetConfig = {
44
+ const DevnetDefaultConfig : DevnetConfig = {
24
45
bootnodeUrl : "http://127.0.0.1:43207" ,
25
46
chainUrl : "http://127.0.0.1:48102" ,
26
47
chainId : "nillion-chain-devnet" ,
@@ -29,48 +50,53 @@ const DevnetConfig = {
29
50
"9a975f567428d054f2bf3092812e6c42f901ce07d9711bc77ee2cd81101f42c5" ,
30
51
} ;
31
52
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 ;
37
54
38
55
export async function createClient ( options : Options ) {
39
56
const builder = new VmClientBuilder ( options . paymentMode ) ;
40
57
switch ( options . network . toLowerCase ( ) ) {
41
58
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
+ }
43
64
44
65
let signer : OfflineSigner ;
45
66
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 ) ;
49
70
} else {
50
- signer = config . signer ;
71
+ signer = network . signer ;
51
72
}
52
73
} else {
53
- signer = await createSignerFromKey ( DevnetConfig . nilchainPrivateKey0 ) ;
74
+ signer = await createSignerFromKey ( config . nilchainPrivateKey0 ) ;
54
75
}
55
76
56
- const seed = config . seed ? config . seed : DevnetConfig . seed ;
77
+ const seed = network . seed ? network . seed : config . seed ;
57
78
58
79
builder
59
80
. seed ( seed )
60
- . bootnodeUrl ( DevnetConfig . bootnodeUrl )
61
- . chainUrl ( DevnetConfig . chainUrl )
81
+ . bootnodeUrl ( config . bootnodeUrl )
82
+ . chainUrl ( config . chainUrl )
62
83
. signer ( signer ) ;
63
84
64
85
break ;
65
86
}
66
87
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 ) ;
69
95
70
96
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 )
74
100
. signer ( signer ) ;
75
101
76
102
break ;
0 commit comments