Skip to content

Commit 0424073

Browse files
committed
prefetch when dapp insteracts with provider
1 parent 8155744 commit 0424073

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/core/providers/RainbowProvider.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,18 @@ export class RainbowProvider extends EventEmitter {
5555
rainbowIsDefaultProvider = false;
5656

5757
[key: string]: unknown;
58+
backgroundMessenger: Messenger | undefined = undefined;
5859

59-
constructor({ messenger }: { messenger?: Messenger } = {}) {
60+
constructor({
61+
messenger,
62+
backgroundMessenger,
63+
}: { messenger?: Messenger; backgroundMessenger?: Messenger } = {}) {
6064
super();
6165

6266
// RainbowProvider is also used in popup via RainbowConnector
6367
// here we don't need to listen to anything so we don't need these listeners
6468
if (isValidUrl(window.location.href)) {
69+
this.backgroundMessenger = backgroundMessenger;
6570
const host = getDappHost(window.location.href);
6671
messenger?.reply(`accountsChanged:${host}`, async (address) => {
6772
this.emit('accountsChanged', [address]);
@@ -112,6 +117,10 @@ export class RainbowProvider extends EventEmitter {
112117
method,
113118
params,
114119
}: RequestArguments): Promise<RequestResponse | undefined> {
120+
this.backgroundMessenger?.send(
121+
'rainbow_prefetchDappMetadata',
122+
window.location.href,
123+
);
115124
if (!this.rainbowIsDefaultProvider) {
116125
const provider = getMetaMaskProvider();
117126
if (provider) {

src/entries/inpage/index.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ declare global {
3232
const messenger = initializeMessenger({ connect: 'popup' });
3333
const backgroundMessenger = initializeMessenger({ connect: 'background' });
3434

35-
const rainbowProvider = new RainbowProvider({ messenger });
35+
const rainbowProvider = new RainbowProvider({ messenger, backgroundMessenger });
3636

3737
if (shouldInjectProvider()) {
3838
announceProvider({
@@ -68,11 +68,6 @@ if (shouldInjectProvider()) {
6868
window.location.reload();
6969
});
7070

71-
backgroundMessenger.send(
72-
'rainbow_prefetchDappMetadata',
73-
window.location.href,
74-
);
75-
7671
Object.defineProperties(window, {
7772
rainbow: { value: rainbowProvider, configurable: false, writable: false },
7873
ethereum: {

0 commit comments

Comments
 (0)