@dynamic-labs/ethereum 0.19.0-alpha.2 → 0.19.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +279 -0
- package/package.json +11 -10
- package/src/EthWalletConnector.cjs +189 -193
- package/src/EthWalletConnector.d.ts +298 -41
- package/src/EthWalletConnector.js +190 -194
- package/src/constants.d.ts +1 -1
- package/src/ethProviderHelper.cjs +132 -209
- package/src/ethProviderHelper.d.ts +28 -36
- package/src/ethProviderHelper.js +133 -210
- package/src/index.cjs +26 -26
- package/src/index.d.ts +9 -8
- package/src/index.js +21 -20
- package/src/injected/BloctoInjected.cjs +6 -6
- package/src/injected/BloctoInjected.d.ts +4 -4
- package/src/injected/BloctoInjected.js +6 -6
- package/src/injected/BraveEvm.cjs +6 -6
- package/src/injected/BraveEvm.d.ts +4 -4
- package/src/injected/BraveEvm.js +6 -6
- package/src/injected/Dawn.cjs +6 -6
- package/src/injected/Dawn.d.ts +4 -4
- package/src/injected/Dawn.js +6 -6
- package/src/injected/ExodusEvm.cjs +8 -8
- package/src/injected/ExodusEvm.d.ts +5 -5
- package/src/injected/ExodusEvm.js +7 -7
- package/src/injected/Frame.cjs +6 -6
- package/src/injected/Frame.d.ts +4 -4
- package/src/injected/Frame.js +6 -6
- package/src/injected/GameStop.cjs +6 -6
- package/src/injected/GameStop.d.ts +4 -4
- package/src/injected/GameStop.js +6 -6
- package/src/injected/InjectedWalletBase.cjs +79 -65
- package/src/injected/InjectedWalletBase.d.ts +286 -24
- package/src/injected/InjectedWalletBase.js +79 -65
- package/src/injected/LegacyInjectedWalletBase.cjs +83 -0
- package/src/injected/LegacyInjectedWalletBase.d.ts +24 -0
- package/src/injected/LegacyInjectedWalletBase.js +81 -0
- package/src/injected/Opera.cjs +6 -6
- package/src/injected/Opera.d.ts +4 -4
- package/src/injected/Opera.js +6 -6
- package/src/injected/PhantomEvm.cjs +28 -28
- package/src/injected/PhantomEvm.d.ts +5 -5
- package/src/injected/PhantomEvm.js +28 -28
- package/src/injected/Rabby.cjs +8 -8
- package/src/injected/Rabby.d.ts +5 -5
- package/src/injected/Rabby.js +7 -7
- package/src/injected/Superb.cjs +6 -6
- package/src/injected/Superb.d.ts +4 -4
- package/src/injected/Superb.js +6 -6
- package/src/injected/Trust.cjs +8 -8
- package/src/injected/Trust.d.ts +5 -5
- package/src/injected/Trust.js +7 -7
- package/src/injected/Zerion.cjs +8 -8
- package/src/injected/Zerion.d.ts +5 -5
- package/src/injected/Zerion.js +7 -7
- package/src/injected/fetchInjectedWalletConnectors.cjs +33 -0
- package/src/injected/fetchInjectedWalletConnectors.d.ts +6 -0
- package/src/injected/fetchInjectedWalletConnectors.js +29 -0
- package/src/injected/index.d.ts +13 -16
- package/src/injected/legacyInjectedWallets.cjs +48 -0
- package/src/injected/legacyInjectedWallets.d.ts +3 -0
- package/src/injected/legacyInjectedWallets.js +43 -0
- package/src/legacyEthProviderHelper.cjs +187 -0
- package/src/legacyEthProviderHelper.d.ts +34 -0
- package/src/legacyEthProviderHelper.js +183 -0
- package/src/polyfills.cjs +11 -11
- package/src/polyfills.d.ts +1 -1
- package/src/polyfills.js +11 -11
- package/src/types.d.ts +37 -24
- package/src/utils/eventListenerHandlers.cjs +34 -0
- package/src/utils/eventListenerHandlers.d.ts +8 -0
- package/src/utils/eventListenerHandlers.js +30 -0
- package/src/utils/findEvmNetwork.cjs +13 -13
- package/src/utils/findEvmNetwork.d.ts +6 -6
- package/src/utils/findEvmNetwork.js +13 -13
- package/src/utils/isString.d.ts +1 -1
- package/src/utils/isUnsupportedProviderError/index.d.ts +1 -1
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +6 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +6 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +6 -6
- package/src/utils/last.d.ts +1 -1
- package/src/utils/parseIntSafe.cjs +13 -13
- package/src/utils/parseIntSafe.d.ts +1 -1
- package/src/utils/parseIntSafe.js +13 -13
- package/src/walletConnect/client/client.cjs +179 -176
- package/src/walletConnect/client/client.d.ts +17 -17
- package/src/walletConnect/client/client.js +179 -176
- package/src/walletConnect/client/index.d.ts +1 -1
- package/src/walletConnect/client/types.d.ts +4 -4
- package/src/walletConnect/fetchWalletConnectWallets.cjs +37 -52
- package/src/walletConnect/fetchWalletConnectWallets.d.ts +9 -10
- package/src/walletConnect/fetchWalletConnectWallets.js +38 -52
- package/src/walletConnect/index.d.ts +3 -3
- package/src/walletConnect/walletConnect.cjs +131 -130
- package/src/walletConnect/walletConnect.d.ts +52 -50
- package/src/walletConnect/walletConnect.js +131 -130
- package/src/walletConnect/walletConnectV2.cjs +419 -374
- package/src/walletConnect/walletConnectV2.d.ts +326 -61
- package/src/walletConnect/walletConnectV2.js +420 -375
- package/src/injected/MetaMask.cjs +0 -15
- package/src/injected/MetaMask.d.ts +0 -5
- package/src/injected/MetaMask.js +0 -11
- package/src/injected/OKX.cjs +0 -15
- package/src/injected/OKX.d.ts +0 -5
- package/src/injected/OKX.js +0 -11
- package/src/injected/UnknownInjectedWallet.cjs +0 -14
- package/src/injected/UnknownInjectedWallet.d.ts +0 -4
- package/src/injected/UnknownInjectedWallet.js +0 -10
- package/src/injected/index.cjs +0 -53
- package/src/injected/index.js +0 -49
package/src/injected/Trust.cjs
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
class Trust extends
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.name = 'Trust';
|
|
11
|
-
this.walletConnectorFallback = true;
|
|
12
|
-
}
|
|
5
|
+
var LegacyInjectedWalletBase = require('./LegacyInjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class Trust extends LegacyInjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'Trust';
|
|
11
|
+
this.walletConnectorFallback = true;
|
|
12
|
+
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
exports.Trust = Trust;
|
package/src/injected/Trust.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare class Trust extends
|
|
3
|
-
name: string;
|
|
4
|
-
walletConnectorFallback: boolean;
|
|
5
|
-
}
|
|
1
|
+
import LegacyInjectedWalletBase from './LegacyInjectedWalletBase';
|
|
2
|
+
export declare class Trust extends LegacyInjectedWalletBase {
|
|
3
|
+
name: string;
|
|
4
|
+
walletConnectorFallback: boolean;
|
|
5
|
+
}
|
package/src/injected/Trust.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import LegacyInjectedWalletBase from './LegacyInjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class Trust extends
|
|
4
|
-
constructor() {
|
|
5
|
-
super(...arguments);
|
|
6
|
-
this.name = 'Trust';
|
|
7
|
-
this.walletConnectorFallback = true;
|
|
8
|
-
}
|
|
3
|
+
class Trust extends LegacyInjectedWalletBase {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.name = 'Trust';
|
|
7
|
+
this.walletConnectorFallback = true;
|
|
8
|
+
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export { Trust };
|
package/src/injected/Zerion.cjs
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
class Zerion extends
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.name = 'Zerion';
|
|
11
|
-
this.walletConnectorFallback = true;
|
|
12
|
-
}
|
|
5
|
+
var LegacyInjectedWalletBase = require('./LegacyInjectedWalletBase.cjs');
|
|
6
|
+
|
|
7
|
+
class Zerion extends LegacyInjectedWalletBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'Zerion';
|
|
11
|
+
this.walletConnectorFallback = true;
|
|
12
|
+
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
exports.Zerion = Zerion;
|
package/src/injected/Zerion.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare class Zerion extends
|
|
3
|
-
name: string;
|
|
4
|
-
walletConnectorFallback: boolean;
|
|
5
|
-
}
|
|
1
|
+
import LegacyInjectedWalletBase from './LegacyInjectedWalletBase';
|
|
2
|
+
export declare class Zerion extends LegacyInjectedWalletBase {
|
|
3
|
+
name: string;
|
|
4
|
+
walletConnectorFallback: boolean;
|
|
5
|
+
}
|
package/src/injected/Zerion.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import LegacyInjectedWalletBase from './LegacyInjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class Zerion extends
|
|
4
|
-
constructor() {
|
|
5
|
-
super(...arguments);
|
|
6
|
-
this.name = 'Zerion';
|
|
7
|
-
this.walletConnectorFallback = true;
|
|
8
|
-
}
|
|
3
|
+
class Zerion extends LegacyInjectedWalletBase {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.name = 'Zerion';
|
|
7
|
+
this.walletConnectorFallback = true;
|
|
8
|
+
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export { Zerion };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
+
var legacyInjectedWallets = require('./legacyInjectedWallets.cjs');
|
|
7
|
+
|
|
8
|
+
const fetchInjectedWalletConnector = ({ walletBook, }) => {
|
|
9
|
+
var _a;
|
|
10
|
+
return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
|
|
11
|
+
.filter(([key, wallet]) => {
|
|
12
|
+
var _a;
|
|
13
|
+
return ((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'evm')) &&
|
|
14
|
+
!legacyInjectedWallets.filteredLegacyInjectedWalletKeys.includes(key);
|
|
15
|
+
})
|
|
16
|
+
.map(([key, wallet]) => {
|
|
17
|
+
const { shortName } = wallet;
|
|
18
|
+
const name = shortName || wallet.name;
|
|
19
|
+
const walletConnectorFallback = Boolean(wallet.walletConnect);
|
|
20
|
+
return class extends InjectedWalletBase {
|
|
21
|
+
constructor(props) {
|
|
22
|
+
super(Object.assign({}, props));
|
|
23
|
+
this.name = name;
|
|
24
|
+
this.wallet = wallet;
|
|
25
|
+
this.walletConnectorFallback = walletConnectorFallback;
|
|
26
|
+
// this is the key from the wallet book entry so that we don't purely rely on the normalized name
|
|
27
|
+
this.overrideKey = key;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.fetchInjectedWalletConnector = fetchInjectedWalletConnector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WalletConnectorConstructor } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
3
|
+
export declare const fetchInjectedWalletConnector: ({ walletBook, }: {
|
|
4
|
+
isWalletConnectV2Enabled: boolean;
|
|
5
|
+
walletBook: WalletBookSchema;
|
|
6
|
+
}) => WalletConnectorConstructor[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
|
+
import { filteredLegacyInjectedWalletKeys } from './legacyInjectedWallets.js';
|
|
3
|
+
|
|
4
|
+
const fetchInjectedWalletConnector = ({ walletBook, }) => {
|
|
5
|
+
var _a;
|
|
6
|
+
return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
|
|
7
|
+
.filter(([key, wallet]) => {
|
|
8
|
+
var _a;
|
|
9
|
+
return ((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'evm')) &&
|
|
10
|
+
!filteredLegacyInjectedWalletKeys.includes(key);
|
|
11
|
+
})
|
|
12
|
+
.map(([key, wallet]) => {
|
|
13
|
+
const { shortName } = wallet;
|
|
14
|
+
const name = shortName || wallet.name;
|
|
15
|
+
const walletConnectorFallback = Boolean(wallet.walletConnect);
|
|
16
|
+
return class extends InjectedWalletBase {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
super(Object.assign({}, props));
|
|
19
|
+
this.name = name;
|
|
20
|
+
this.wallet = wallet;
|
|
21
|
+
this.walletConnectorFallback = walletConnectorFallback;
|
|
22
|
+
// this is the key from the wallet book entry so that we don't purely rely on the normalized name
|
|
23
|
+
this.overrideKey = key;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { fetchInjectedWalletConnector };
|
package/src/injected/index.d.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
8
|
-
export * from './
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './Rabby';
|
|
15
|
-
export * from './OKX';
|
|
16
|
-
export declare const injectedWallets: WalletConnectorConstructor[];
|
|
1
|
+
export * from './BloctoInjected';
|
|
2
|
+
export * from './BraveEvm';
|
|
3
|
+
export * from './Dawn';
|
|
4
|
+
export * from './ExodusEvm';
|
|
5
|
+
export * from './Frame';
|
|
6
|
+
export * from './GameStop';
|
|
7
|
+
export * from './Opera';
|
|
8
|
+
export * from './PhantomEvm';
|
|
9
|
+
export * from './Trust';
|
|
10
|
+
export * from './Zerion';
|
|
11
|
+
export * from './Rabby';
|
|
12
|
+
export * from './fetchInjectedWalletConnectors';
|
|
13
|
+
export * from './legacyInjectedWallets';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var BloctoInjected = require('./BloctoInjected.cjs');
|
|
6
|
+
var BraveEvm = require('./BraveEvm.cjs');
|
|
7
|
+
var Dawn = require('./Dawn.cjs');
|
|
8
|
+
var ExodusEvm = require('./ExodusEvm.cjs');
|
|
9
|
+
var Frame = require('./Frame.cjs');
|
|
10
|
+
var GameStop = require('./GameStop.cjs');
|
|
11
|
+
var Opera = require('./Opera.cjs');
|
|
12
|
+
var PhantomEvm = require('./PhantomEvm.cjs');
|
|
13
|
+
var Trust = require('./Trust.cjs');
|
|
14
|
+
var Zerion = require('./Zerion.cjs');
|
|
15
|
+
var Superb = require('./Superb.cjs');
|
|
16
|
+
var Rabby = require('./Rabby.cjs');
|
|
17
|
+
|
|
18
|
+
const legacyInjectedWallets = [
|
|
19
|
+
PhantomEvm.PhantomEvm,
|
|
20
|
+
BloctoInjected.BloctoInjected,
|
|
21
|
+
BraveEvm.BraveEvm,
|
|
22
|
+
Dawn.Dawn,
|
|
23
|
+
ExodusEvm.ExodusEvm,
|
|
24
|
+
Frame.Frame,
|
|
25
|
+
GameStop.GameStop,
|
|
26
|
+
Opera.Opera,
|
|
27
|
+
Trust.Trust,
|
|
28
|
+
Zerion.Zerion,
|
|
29
|
+
Superb.Superb,
|
|
30
|
+
Rabby.Rabby,
|
|
31
|
+
];
|
|
32
|
+
const filteredLegacyInjectedWalletKeys = [
|
|
33
|
+
'phantomevm',
|
|
34
|
+
'coinbase',
|
|
35
|
+
'bloctoinjected',
|
|
36
|
+
'dawn',
|
|
37
|
+
'exodusevm',
|
|
38
|
+
'frame',
|
|
39
|
+
'gamestop',
|
|
40
|
+
'opera',
|
|
41
|
+
'trust',
|
|
42
|
+
'zerion',
|
|
43
|
+
'superb',
|
|
44
|
+
'rabby',
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
exports.filteredLegacyInjectedWalletKeys = filteredLegacyInjectedWalletKeys;
|
|
48
|
+
exports.legacyInjectedWallets = legacyInjectedWallets;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BloctoInjected } from './BloctoInjected.js';
|
|
2
|
+
import { BraveEvm } from './BraveEvm.js';
|
|
3
|
+
import { Dawn } from './Dawn.js';
|
|
4
|
+
import { ExodusEvm } from './ExodusEvm.js';
|
|
5
|
+
import { Frame } from './Frame.js';
|
|
6
|
+
import { GameStop } from './GameStop.js';
|
|
7
|
+
import { Opera } from './Opera.js';
|
|
8
|
+
import { PhantomEvm } from './PhantomEvm.js';
|
|
9
|
+
import { Trust } from './Trust.js';
|
|
10
|
+
import { Zerion } from './Zerion.js';
|
|
11
|
+
import { Superb } from './Superb.js';
|
|
12
|
+
import { Rabby } from './Rabby.js';
|
|
13
|
+
|
|
14
|
+
const legacyInjectedWallets = [
|
|
15
|
+
PhantomEvm,
|
|
16
|
+
BloctoInjected,
|
|
17
|
+
BraveEvm,
|
|
18
|
+
Dawn,
|
|
19
|
+
ExodusEvm,
|
|
20
|
+
Frame,
|
|
21
|
+
GameStop,
|
|
22
|
+
Opera,
|
|
23
|
+
Trust,
|
|
24
|
+
Zerion,
|
|
25
|
+
Superb,
|
|
26
|
+
Rabby,
|
|
27
|
+
];
|
|
28
|
+
const filteredLegacyInjectedWalletKeys = [
|
|
29
|
+
'phantomevm',
|
|
30
|
+
'coinbase',
|
|
31
|
+
'bloctoinjected',
|
|
32
|
+
'dawn',
|
|
33
|
+
'exodusevm',
|
|
34
|
+
'frame',
|
|
35
|
+
'gamestop',
|
|
36
|
+
'opera',
|
|
37
|
+
'trust',
|
|
38
|
+
'zerion',
|
|
39
|
+
'superb',
|
|
40
|
+
'rabby',
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
export { filteredLegacyInjectedWalletKeys, legacyInjectedWallets };
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('../_virtual/_tslib.cjs');
|
|
6
|
+
var viem = require('viem');
|
|
7
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
+
var isUnsupportedProviderError = require('./utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs');
|
|
9
|
+
var eventListenerHandlers = require('./utils/eventListenerHandlers.cjs');
|
|
10
|
+
|
|
11
|
+
var _a;
|
|
12
|
+
class LegacyEthProviderHelper {
|
|
13
|
+
static installedProviderLookup(providerFlags) {
|
|
14
|
+
const allInstalledProviders = this.allInstalledProviders();
|
|
15
|
+
return walletConnectorCore.ProviderLookup(allInstalledProviders, providerFlags);
|
|
16
|
+
}
|
|
17
|
+
static allInstalledProviders() {
|
|
18
|
+
var _b;
|
|
19
|
+
const ethereumProviders = [];
|
|
20
|
+
if (window.ethereum) {
|
|
21
|
+
if (!window.ethereum.providers) {
|
|
22
|
+
ethereumProviders.push(window.ethereum);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
window.ethereum.providers.forEach((provider) => {
|
|
26
|
+
ethereumProviders.push(provider);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if ((_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum) {
|
|
31
|
+
ethereumProviders.push(window.phantom.ethereum);
|
|
32
|
+
}
|
|
33
|
+
if (window.zerionWallet) {
|
|
34
|
+
ethereumProviders.push(window.zerionWallet);
|
|
35
|
+
}
|
|
36
|
+
if (window.coinbaseWalletExtension) {
|
|
37
|
+
ethereumProviders.push(window.coinbaseWalletExtension);
|
|
38
|
+
}
|
|
39
|
+
if (window.superb) {
|
|
40
|
+
ethereumProviders.push(window.superb);
|
|
41
|
+
}
|
|
42
|
+
return ethereumProviders;
|
|
43
|
+
}
|
|
44
|
+
static isInstalledHelper(walletName) {
|
|
45
|
+
return this.findProvider(walletName) !== undefined;
|
|
46
|
+
}
|
|
47
|
+
static findProvider(walletName) {
|
|
48
|
+
var _b, _c;
|
|
49
|
+
try {
|
|
50
|
+
return (_c = (_b = this.providers)[walletConnectorCore.normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (isUnsupportedProviderError.isUnsupportedProviderError(err)) {
|
|
54
|
+
walletConnectorCore.logger.error(`ETH Provider is not supported ${err.value}`, err);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
walletConnectorCore.logger.error(`Could not find provider for ${walletName}`, err);
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static findWalletClient(walletName) {
|
|
62
|
+
const provider = this.findProvider(walletName);
|
|
63
|
+
if (!provider) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return viem.createWalletClient({
|
|
67
|
+
transport: viem.custom(provider),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
static fetchPublicAddressWithName(name) {
|
|
71
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const client = this.findWalletClient(name);
|
|
73
|
+
if (!client) {
|
|
74
|
+
return Promise.resolve(undefined);
|
|
75
|
+
}
|
|
76
|
+
return this.fetchPublicAddressWithProvider(client);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
static fetchPublicAddressWithProvider(client) {
|
|
80
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
try {
|
|
82
|
+
const [lowercaseAddress] = yield client.requestAddresses();
|
|
83
|
+
const publicAddress = viem.getAddress(lowercaseAddress);
|
|
84
|
+
return publicAddress;
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
walletConnectorCore.logger.error(err);
|
|
88
|
+
return Promise.reject(err);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
static signMessageWithName(messageToSign, name) {
|
|
93
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
95
|
+
if (!walletAddress) {
|
|
96
|
+
return Promise.resolve(undefined);
|
|
97
|
+
}
|
|
98
|
+
const client = this.findWalletClient(name);
|
|
99
|
+
if (!client) {
|
|
100
|
+
return Promise.resolve(undefined);
|
|
101
|
+
}
|
|
102
|
+
const signedMessage = yield client.signMessage({
|
|
103
|
+
account: walletAddress,
|
|
104
|
+
message: messageToSign,
|
|
105
|
+
});
|
|
106
|
+
return signedMessage;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
static _setupEventListeners(walletName, walletConnector, publicClient) {
|
|
110
|
+
const web3Provider = this.findProvider(walletName);
|
|
111
|
+
if (!web3Provider) {
|
|
112
|
+
return {
|
|
113
|
+
tearDownEventListeners: () => { },
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const { handleAccountChange, handleChainChange, handleDisconnect } = eventListenerHandlers.eventListenerHandlers(walletConnector, publicClient);
|
|
117
|
+
web3Provider.on('accountsChanged', handleAccountChange);
|
|
118
|
+
web3Provider.on('chainChanged', handleChainChange);
|
|
119
|
+
web3Provider.on('disconnect', handleDisconnect);
|
|
120
|
+
const tearDownEventListeners = () => {
|
|
121
|
+
const web3Provider = this.findProvider(walletName);
|
|
122
|
+
if (!web3Provider) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (handleAccountChange) {
|
|
126
|
+
web3Provider.removeListener('accountsChanged', handleAccountChange);
|
|
127
|
+
}
|
|
128
|
+
if (handleChainChange) {
|
|
129
|
+
web3Provider.removeListener('chainChanged', handleChainChange);
|
|
130
|
+
}
|
|
131
|
+
if (handleDisconnect) {
|
|
132
|
+
web3Provider.removeListener('disconnect', handleDisconnect);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
return {
|
|
136
|
+
tearDownEventListeners,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
_a = LegacyEthProviderHelper;
|
|
141
|
+
LegacyEthProviderHelper.BraveProvider = () => _a.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
142
|
+
LegacyEthProviderHelper.DawnProvider = () => _a.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
143
|
+
LegacyEthProviderHelper.FrameProvider = () => _a.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
144
|
+
LegacyEthProviderHelper.CoinbaseProvider = () => _a.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
145
|
+
LegacyEthProviderHelper.OperaProvider = () => _a.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
146
|
+
LegacyEthProviderHelper.GameStopProvider = () => _a.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
147
|
+
LegacyEthProviderHelper.ExodusProvider = () => _a.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
148
|
+
LegacyEthProviderHelper.BloctoProvider = () => _a.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
149
|
+
LegacyEthProviderHelper.TrustWalletProvider = () => _a.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
150
|
+
LegacyEthProviderHelper.PhantomProvider = () => _a.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
151
|
+
LegacyEthProviderHelper.ZerionProvider = () => _a.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
152
|
+
LegacyEthProviderHelper.SuperbProvider = () => _a.installedProviderLookup([{ flag: 'isSuperb', value: true }]);
|
|
153
|
+
LegacyEthProviderHelper.RabbyProvider = () => _a.installedProviderLookup([{ flag: 'isRabby', value: true }]);
|
|
154
|
+
LegacyEthProviderHelper.OKXProvider = () => _a.installedProviderLookup([{ flag: 'isOkxWallet', value: true }]);
|
|
155
|
+
LegacyEthProviderHelper.UnknownInjectedProvider = () => _a.installedProviderLookup([
|
|
156
|
+
{ flag: 'isMetaMask', value: false },
|
|
157
|
+
{ flag: 'isExodus', value: false },
|
|
158
|
+
{ flag: 'isCoinbaseWallet', value: false },
|
|
159
|
+
{ flag: 'isBraveWallet', value: false },
|
|
160
|
+
{ flag: 'isGamestop', value: false },
|
|
161
|
+
{ flag: 'isFrame', value: false },
|
|
162
|
+
{ flag: 'isOpera', value: false },
|
|
163
|
+
{ flag: 'isBlocto', value: false },
|
|
164
|
+
{ flag: 'isTrustWallet', value: false },
|
|
165
|
+
{ flag: 'isPhantom', value: false },
|
|
166
|
+
{ flag: 'isZerion', value: false },
|
|
167
|
+
{ flag: 'isSuperb', value: false },
|
|
168
|
+
{ flag: 'isRabby', value: false },
|
|
169
|
+
]);
|
|
170
|
+
LegacyEthProviderHelper.providers = {
|
|
171
|
+
bloctoinjected: _a.BloctoProvider,
|
|
172
|
+
braveevm: _a.BraveProvider,
|
|
173
|
+
coinbase: _a.CoinbaseProvider,
|
|
174
|
+
dawn: _a.DawnProvider,
|
|
175
|
+
exodusevm: _a.ExodusProvider,
|
|
176
|
+
frame: _a.FrameProvider,
|
|
177
|
+
gamestop: _a.GameStopProvider,
|
|
178
|
+
injectedwallet: _a.UnknownInjectedProvider,
|
|
179
|
+
opera: _a.OperaProvider,
|
|
180
|
+
phantomevm: _a.PhantomProvider,
|
|
181
|
+
rabby: _a.RabbyProvider,
|
|
182
|
+
superb: _a.SuperbProvider,
|
|
183
|
+
trust: _a.TrustWalletProvider,
|
|
184
|
+
zerion: _a.ZerionProvider,
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
exports.LegacyEthProviderHelper = LegacyEthProviderHelper;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Hex, PublicClient, WalletClient } from 'viem';
|
|
2
|
+
import { ProviderCondition, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
+
import { IEthereum, ProviderFlag } from './types';
|
|
4
|
+
export declare class LegacyEthProviderHelper {
|
|
5
|
+
static BraveProvider: () => IEthereum | undefined;
|
|
6
|
+
static DawnProvider: () => IEthereum | undefined;
|
|
7
|
+
static FrameProvider: () => IEthereum | undefined;
|
|
8
|
+
static CoinbaseProvider: () => IEthereum | undefined;
|
|
9
|
+
static OperaProvider: () => IEthereum | undefined;
|
|
10
|
+
static GameStopProvider: () => IEthereum | undefined;
|
|
11
|
+
static ExodusProvider: () => IEthereum | undefined;
|
|
12
|
+
static BloctoProvider: () => IEthereum | undefined;
|
|
13
|
+
static TrustWalletProvider: () => IEthereum | undefined;
|
|
14
|
+
static PhantomProvider: () => IEthereum | undefined;
|
|
15
|
+
static ZerionProvider: () => IEthereum | undefined;
|
|
16
|
+
static SuperbProvider: () => IEthereum | undefined;
|
|
17
|
+
static RabbyProvider: () => IEthereum | undefined;
|
|
18
|
+
static OKXProvider: () => IEthereum | undefined;
|
|
19
|
+
static UnknownInjectedProvider: () => IEthereum | undefined;
|
|
20
|
+
static providers: {
|
|
21
|
+
[wallet: string]: () => IEthereum | undefined;
|
|
22
|
+
};
|
|
23
|
+
static installedProviderLookup(providerFlags: Array<ProviderCondition<ProviderFlag>>): IEthereum | undefined;
|
|
24
|
+
static allInstalledProviders(): IEthereum[];
|
|
25
|
+
static isInstalledHelper(walletName: string): boolean;
|
|
26
|
+
static findProvider(walletName: string): IEthereum | undefined;
|
|
27
|
+
static findWalletClient(walletName: string): WalletClient | undefined;
|
|
28
|
+
static fetchPublicAddressWithName(name: string): Promise<Hex | undefined>;
|
|
29
|
+
static fetchPublicAddressWithProvider(client: WalletClient): Promise<Hex | undefined>;
|
|
30
|
+
static signMessageWithName(messageToSign: string, name: string): Promise<Hex | undefined>;
|
|
31
|
+
static _setupEventListeners(walletName: string, walletConnector: WalletConnector, publicClient: PublicClient): {
|
|
32
|
+
tearDownEventListeners: () => void;
|
|
33
|
+
};
|
|
34
|
+
}
|