Skip to content

Commit 903fa59

Browse files
committed
add network options to Connection.setEip1193Provider
1 parent 429db57 commit 903fa59

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/dev-connection/index.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,31 @@ describe('dev-connection', () => {
7373
await waitForUpdated(el.signer)
7474
expect(el.signer.getValue()).to.be.equal(signer)
7575
})
76+
it('when setEip1193Provider is called with BrowserProvider constructor and network options, called BrowserProvider with network options and signer will update', async () => {
77+
const el = connection()
78+
let network: undefined
79+
expect(el.signer.getValue()).to.be.equal(undefined)
80+
expect(network).to.be.equal(undefined)
81+
82+
const mock = {
83+
request: () => Promise.resolve(),
84+
}
85+
const networkOptions = { chainId: 1, name: 'Ethereum' }
86+
const signer = new ethers.VoidSigner(ethers.ZeroAddress)
87+
88+
el.setEip1193Provider(
89+
mock,
90+
function (_transport: any, _network: any) {
91+
network = _network
92+
return { getSigner: async () => signer }
93+
} as any,
94+
networkOptions,
95+
)
96+
97+
await waitForUpdated(el.signer)
98+
expect(el.signer.getValue()).to.be.equal(signer)
99+
expect(network).to.be.equal(networkOptions)
100+
})
76101
describe('EIP-1193 events listener', () => {
77102
const mockFc = (_e: string) => {
78103
let fn: any

src/dev-connection/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
type Eip1193Provider,
1919
type BrowserProvider,
2020
type EventEmitterable,
21+
type Networkish,
2122
} from 'ethers'
2223
import { BehaviorSubject, Subscription } from 'rxjs'
2324
import { UllrElement } from '@aggre/ullr'
@@ -89,6 +90,7 @@ export class Connection extends UllrElement {
8990
async setEip1193Provider(
9091
prov: Eip1193Provider,
9192
providerFactory?: typeof BrowserProvider,
93+
network?: Networkish,
9294
) {
9395
const old = this.eip1193Provider.value
9496
this.eip1193Provider.next(prov)
@@ -103,7 +105,7 @@ export class Connection extends UllrElement {
103105
old.removeListener('disconnect', this._disconnectListener)
104106
}
105107
if (providerFactory) {
106-
const browserProvider = new providerFactory(prov)
108+
const browserProvider = new providerFactory(prov, network)
107109
this.signer.next(await browserProvider.getSigner())
108110
}
109111
}

0 commit comments

Comments
 (0)