Skip to content

Commit a6af7f3

Browse files
authored
fix: invalid "Install" screen being displayed when clicking on "Ethereum Wallets" (#139)
1 parent 15721c4 commit a6af7f3

File tree

10 files changed

+43
-20
lines changed

10 files changed

+43
-20
lines changed

.changeset/late-masks-grab.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@fuel-connectors/evm-connector": minor
3+
"@fuel-connectors/fuel-wallet": minor
4+
---
5+
6+
Import `FuelConnectorEventType` constant from `fuels` instead of relying on the hard-coded value.

.changeset/pink-kings-rescue.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@fuel-connectors/bako-safe": minor
3+
---
4+
5+
Fix `disconnect` test to use a mocked API instead of the actual connector

.changeset/tall-cherries-arrive.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@fuel-connectors/walletconnect-connector": minor
3+
---
4+
5+
`ping` method should never take more than 1 second.
6+
Specially when it's the `WalletConnect`, since it doesn't relate to the Fuel network directly.

packages/bako-safe/src/BakoSafeConnector.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ export class BakoSafeConnector extends FuelConnector {
276276
}
277277

278278
async disconnect() {
279-
//nao necessário esperar mensagens
280279
await this.api.delete(`/connections/${this.sessionId}`);
281280
this.emit(this.events.connection, false);
282281
this.emit(this.events.accounts, []);

packages/bako-safe/tests/BakoSafeConnector.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,13 @@ describe('isConnected()', () => {
9999

100100
describe('disconnect()', () => {
101101
test('returns a false', async () => {
102-
const connector = new BakoSafeConnector();
102+
const storage: StorageAbstract = new BakoStorage();
103+
await storage.setItem('sessionId', 'fake_session_id');
104+
105+
const connector = new BakoSafeConnector({
106+
api: new MockedRequestAPI(),
107+
storage,
108+
});
103109
const disconnect = await connector.disconnect();
104110

105111
expect(disconnect).toEqual(false);

packages/evm-connector/src/EvmWalletConnector.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
type Asset,
88
type ConnectorMetadata,
99
FuelConnector,
10+
FuelConnectorEventType,
1011
FuelConnectorEventTypes,
1112
type JsonAbi,
1213
type Network,
@@ -161,7 +162,7 @@ export class EVMWalletConnector extends FuelConnector {
161162
if (WINDOW?.ethereum) {
162163
clearInterval(this._ethereumEvents);
163164
WINDOW.dispatchEvent(
164-
new CustomEvent('FuelConnector', { detail: this }),
165+
new CustomEvent(FuelConnectorEventType, { detail: this }),
165166
);
166167
}
167168
}, 500),

packages/fuel-wallet/src/FuelWalletConnector.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
type ConnectorMetadata,
55
type FuelABI,
66
FuelConnector,
7+
FuelConnectorEventType,
78
FuelConnectorEventTypes,
89
type Network,
910
Provider,
@@ -65,7 +66,7 @@ export class FuelWalletConnector extends FuelConnector {
6566
this.ping()
6667
.then(() => {
6768
window.dispatchEvent(
68-
new CustomEvent('FuelConnector', { detail: this }),
69+
new CustomEvent(FuelConnectorEventType, { detail: this }),
6970
);
7071
})
7172
.catch(() => {});

packages/walletconnect-connector/src/WalletConnectConnector.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class WalletConnectConnector extends FuelConnector {
3737
name = 'Ethereum Wallets';
3838

3939
connected = false;
40-
installed = false;
40+
installed = true;
4141

4242
predicateAddress: string | null = null;
4343
customPredicate: PredicateConfig | null;
@@ -72,11 +72,11 @@ export class WalletConnectConnector extends FuelConnector {
7272

7373
this.customPredicate = config.predicateConfig || null;
7474

75-
this.configProviders(config);
75+
this.configProvider(config);
7676
this.setupWatchers();
7777
}
7878

79-
async configProviders(config: WalletConnectConfig = {}) {
79+
configProvider(config: WalletConnectConfig) {
8080
this.config = Object.assign(config, {
8181
fuelProvider: config.fuelProvider || FuelProvider.create(TESTNET_URL),
8282
});
@@ -110,7 +110,7 @@ export class WalletConnectConnector extends FuelConnector {
110110
continue;
111111
}
112112

113-
const { fuelProvider } = await this.getProviders();
113+
const { fuelProvider } = await this.getProvider();
114114
const predicate = predicateInstance.createPredicate(
115115
address,
116116
fuelProvider,
@@ -199,13 +199,13 @@ export class WalletConnectConnector extends FuelConnector {
199199
this._unsubs.forEach((unsub) => unsub());
200200
}
201201

202-
async getProviders() {
203-
if (!this.fuelProvider) {
204-
this.fuelProvider = (await this.config.fuelProvider) ?? null;
202+
async getProvider() {
203+
if (!this.config.fuelProvider) {
204+
throw new Error('Fuel provider not found');
205+
}
205206

206-
if (!this.fuelProvider) {
207-
throw new Error('Fuel provider not found');
208-
}
207+
if (!this.fuelProvider) {
208+
this.fuelProvider = await this.config.fuelProvider;
209209
}
210210

211211
return {
@@ -219,7 +219,6 @@ export class WalletConnectConnector extends FuelConnector {
219219
* ============================================================
220220
*/
221221
async ping(): Promise<boolean> {
222-
await this.getProviders();
223222
return true;
224223
}
225224

@@ -295,7 +294,7 @@ export class WalletConnectConnector extends FuelConnector {
295294
throw Error('No predicate account found');
296295
}
297296

298-
const { fuelProvider } = await this.getProviders();
297+
const { fuelProvider } = await this.getProvider();
299298
const chainId = fuelProvider.getChainId();
300299
const evmAccount = this.predicateAccount.getEVMAddress(
301300
address,
@@ -428,7 +427,7 @@ export class WalletConnectConnector extends FuelConnector {
428427
}
429428

430429
async currentNetwork(): Promise<Network> {
431-
const { fuelProvider } = await this.getProviders();
430+
const { fuelProvider } = await this.getProvider();
432431
const chainId = fuelProvider.getChainId();
433432

434433
return { url: fuelProvider.url, chainId: chainId };

packages/walletconnect-connector/src/test/walletConnector.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ describe('WalletConnect Connector', () => {
5656
expect(walletWalletConnector).to.be.an.instanceOf(WalletConnectConnector);
5757
expect(walletWalletConnector.name).to.equal('Ethereum Wallets');
5858
expect(walletWalletConnector.connected).to.be.false;
59-
expect(walletWalletConnector.installed).to.be.false;
59+
expect(walletWalletConnector.installed).to.be.true;
6060
expect(await walletWalletConnector.currentNetwork()).to.be.deep.equal({
6161
chainId: 0,
6262
url: TESTNET_URL,
@@ -74,7 +74,7 @@ describe('WalletConnect Connector', () => {
7474
expect(walletWalletConnector).to.be.an.instanceOf(WalletConnectConnector);
7575
expect(walletWalletConnector.name).to.equal('Ethereum Wallets');
7676
expect(walletWalletConnector.connected).to.be.false;
77-
expect(walletWalletConnector.installed).to.be.false;
77+
expect(walletWalletConnector.installed).to.be.true;
7878
expect(await walletWalletConnector.currentNetwork()).to.be.deep.equal({
7979
chainId: 0,
8080
url: fuelProvider.url,
@@ -92,7 +92,7 @@ describe('WalletConnect Connector', () => {
9292
expect(walletWalletConnector).to.be.an.instanceOf(WalletConnectConnector);
9393
expect(walletWalletConnector.name).to.equal('Ethereum Wallets');
9494
expect(walletWalletConnector.connected).to.be.false;
95-
expect(walletWalletConnector.installed).to.be.false;
95+
expect(walletWalletConnector.installed).to.be.true;
9696
expect(await walletWalletConnector.currentNetwork()).to.be.deep.equal({
9797
chainId: 0,
9898
url: fuelProvider.url,

0 commit comments

Comments
 (0)