@@ -51,7 +51,6 @@ export class Wallet implements WalletProvider {
5151 router ?: JsonRpcRouter
5252 allowProvider ?: JsonRpcMiddleware
5353 cachedProvider ?: CachedProvider
54- publicProvider ?: PublicProvider
5554
5655 windowMessageProvider ?: WindowMessageProvider
5756 proxyMessageProvider ?: ProxyMessageProvider // TODO ..
@@ -114,11 +113,6 @@ export class Wallet implements WalletProvider {
114113 // Provider proxy to support middleware stack of logging, caching and read-only rpc calls
115114 this . transport . cachedProvider = new CachedProvider ( )
116115
117- // ..
118- // TODO: might not need this since getProvider() could do this for us..?
119- // but need to check chainId, etc. etc.. check later
120- // this.publicProvider = new PublicProvider()
121-
122116 // ..
123117 this . transport . windowMessageProvider = new WindowMessageProvider ( this . config . walletAppURL )
124118 this . transport . windowMessageProvider . register ( )
@@ -129,7 +123,6 @@ export class Wallet implements WalletProvider {
129123 this . transport . allowProvider ,
130124 exceptionProviderMiddleware ,
131125 this . transport . cachedProvider ,
132- // this.publicProvider
133126 ] , this . transport . windowMessageProvider )
134127
135128 this . transport . provider = new Web3Provider ( this . transport . router )
@@ -250,12 +243,6 @@ export class Wallet implements WalletProvider {
250243 }
251244
252245 getNetworks = async ( chainId ?: ChainId ) : Promise < NetworkConfig [ ] > => {
253- // TODO: we should store the networks list in the session, but allow it to be refreshed here
254- // as well, consider an interface where we update the session whenever we call up the wallet window (for any reason)
255- // after some time (ie 1 hour)
256-
257- // return this.getSigner().getNetworks()
258-
259246 if ( ! this . isLoggedIn ( ) ) {
260247 throw new Error ( 'login first' )
261248 }
@@ -292,8 +279,8 @@ export class Wallet implements WalletProvider {
292279
293280 await this . transport . windowMessageProvider . waitUntilConnected ( )
294281
295- // setDefaultNetworkId
296- // it's important to send this right away upon connection
282+ // setDefaultChain - it's important to send this right away upon connection. This will also
283+ // update the network list in the session each time the wallet is opened & connected.
297284 const networks = await this . transport . provider . send ( 'sequence_setDefaultChain' , [ this . config . defaultNetworkId ] )
298285 this . useNetworks ( networks )
299286
@@ -310,28 +297,21 @@ export class Wallet implements WalletProvider {
310297
311298 getProvider ( chainId ?: ChainId ) : Web3Provider | undefined {
312299 // return the top-level provider message transport when chainId is unspecified
300+ // and user has not logged in
301+ if ( chainId && ! this . isLoggedIn ( ) ) {
302+ throw new Error ( `session is empty. login and try again.` )
303+ }
313304 if ( ! chainId ) {
314-
315-
316- // TODO: for the "defaultNetwork", we'll also have an entry here..
317- // maybe we should even return that instead of this.provider, as it will have built-in
318- // public-provider and other stuff..?
319- // if (this.networks && this.networks.length > 0 && this.providers[this.networks[0].chainId]) {
320- // return this.providers[this.networks[0].chainId]
321- // }
322- // or... we set chainId = this.networks[0].chainId ..
323-
324305 return this . transport . provider
325306 }
326-
327- if ( ! this . isLoggedIn ( ) ) {
328- throw new Error ( `session is empty. login and try again.` )
329- }
330307 if ( this . session . networks . length === 0 ) {
331308 throw new Error ( 'networks list is empty. upon logging in, networks should be populated' )
332309 }
333310
334- const network = findNetworkConfig ( this . session . networks , chainId )
311+ let network = this . session . networks [ 0 ]
312+ if ( chainId ) {
313+ network = findNetworkConfig ( this . session . networks , chainId )
314+ }
335315
336316 // return memoized network provider
337317 if ( this . providers [ network . chainId ] ) {
0 commit comments