@wagmi/connectors 0.2.3-cjs → 0.2.4-cjs

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/README.md CHANGED
@@ -18,25 +18,11 @@ Configure your wagmi client with connectors!
18
18
  import { configureChains, createClient } from 'wagmi'
19
19
 
20
20
  import { InjectedConnector } from '@wagmi/connectors/injected'
21
- import { CoinbaseWalletConnector } from '@wagmi/connectors/coinbaseWallet'
22
- import { WalletConnectConnector } from '@wagmi/connectors/walletConnect'
23
21
 
24
22
  const { chains, provider } = configureChains(...)
25
23
 
26
24
  const client = createClient({
27
25
  connectors: [
28
- new CoinbaseWalletConnector({
29
- chains,
30
- options: {
31
- appName: 'wagmi',
32
- },
33
- }),
34
- new WalletConnectConnector({
35
- chains,
36
- options: {
37
- qrcode: true,
38
- },
39
- }),
40
26
  new InjectedConnector({ chains }),
41
27
  ],
42
28
  provider,
@@ -52,6 +38,7 @@ const client = createClient({
52
38
  - [`LedgerConnector`](/packages/connectors/src/ledger.ts)
53
39
  - [`MetaMaskConnector`](/packages/connectors/src/metaMask.ts)
54
40
  - [`MockConnector`](/packages/connectors/src/mock.ts)
41
+ - [`SafeConnector`](/packages/connectors/src/safe.ts)
55
42
  - [`WalletConnectConnector`](/packages/connectors/src/walletConnect.ts)
56
43
 
57
44
  ## Contributing
@@ -1,4 +1,4 @@
1
1
  {
2
- "type": "module",
2
+ "module": "../dist/coinbaseWallet.mjs",
3
3
  "main": "../dist/coinbaseWallet.js"
4
4
  }
@@ -98,7 +98,7 @@ var InjectedConnector = class extends _chunk5NCTPR6Cjs.Connector {
98
98
  _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "ready");
99
99
  _chunk5NCTPR6Cjs.__privateAdd.call(void 0, this, _provider, void 0);
100
100
  _chunk5NCTPR6Cjs.__privateAdd.call(void 0, this, _switchingChains, void 0);
101
- _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "shimDisconnectKey", "injected.shimDisconnect");
101
+ _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "shimDisconnectKey", `${this.id}.shimDisconnect`);
102
102
  _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "onAccountsChanged", (accounts) => {
103
103
  if (accounts.length === 0)
104
104
  this.emit("disconnect");
package/dist/injected.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkLNIFBRWCjs = require('./chunk-LNIFBRWC.js');
3
+ var _chunk6IU3YKWQjs = require('./chunk-6IU3YKWQ.js');
4
4
  require('./chunk-5NCTPR6C.js');
5
5
 
6
6
 
7
- exports.InjectedConnector = _chunkLNIFBRWCjs.InjectedConnector;
7
+ exports.InjectedConnector = _chunk6IU3YKWQjs.InjectedConnector;
package/dist/metaMask.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkLNIFBRWCjs = require('./chunk-LNIFBRWC.js');
3
+ var _chunk6IU3YKWQjs = require('./chunk-6IU3YKWQ.js');
4
4
 
5
5
 
6
6
 
@@ -17,7 +17,7 @@ var _chunk5NCTPR6Cjs = require('./chunk-5NCTPR6C.js');
17
17
  var _core = require('@wagmi/core');
18
18
  var _utilsjs = require('ethers/lib/utils.js');
19
19
  var _UNSTABLE_shimOnConnectSelectAccount;
20
- var MetaMaskConnector = class extends _chunkLNIFBRWCjs.InjectedConnector {
20
+ var MetaMaskConnector = class extends _chunk6IU3YKWQjs.InjectedConnector {
21
21
  constructor({
22
22
  chains,
23
23
  options: options_
package/dist/safe.d.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { SafeAppProvider } from '@safe-global/safe-apps-provider';
2
+ import { Opts } from '@safe-global/safe-apps-sdk';
3
+ import { Chain } from '@wagmi/core';
4
+ import { providers } from 'ethers';
5
+ import { C as Connector } from './base-84a689bb.js';
6
+ import '@wagmi/core/chains';
7
+ import 'eventemitter3';
8
+
9
+ type SafeConnectorProvider = SafeAppProvider;
10
+ type SafeConnectorOptions = Opts & {
11
+ /**
12
+ * Connector automatically connects when used as Safe App.
13
+ *
14
+ * This flag simulates the disconnect behavior by keeping track of connection status in storage
15
+ * and only autoconnecting when previously connected by user action (e.g. explicitly choosing to connect).
16
+ *
17
+ * @default false
18
+ */
19
+ shimDisconnect?: boolean;
20
+ };
21
+ /**
22
+ * Connector for [Safe Wallet](https://safe.global)
23
+ */
24
+ declare class SafeConnector extends Connector<SafeConnectorProvider, SafeConnectorOptions> {
25
+ #private;
26
+ readonly id = "safe";
27
+ readonly name = "Safe";
28
+ ready: boolean;
29
+ protected shimDisconnectKey: string;
30
+ constructor({ chains, options: options_, }: {
31
+ chains?: Chain[];
32
+ options?: SafeConnectorOptions;
33
+ });
34
+ connect(): Promise<{
35
+ account: `0x${string}`;
36
+ provider: SafeAppProvider;
37
+ chain: {
38
+ id: number;
39
+ unsupported: boolean;
40
+ };
41
+ }>;
42
+ disconnect(): Promise<void>;
43
+ getAccount(): Promise<`0x${string}`>;
44
+ getChainId(): Promise<number>;
45
+ getProvider(): Promise<SafeAppProvider>;
46
+ getSigner(): Promise<providers.JsonRpcSigner>;
47
+ isAuthorized(): Promise<boolean>;
48
+ protected onAccountsChanged(_accounts: string[]): void;
49
+ protected onChainChanged(_chainId: string | number): void;
50
+ protected onDisconnect(): void;
51
+ }
52
+
53
+ export { SafeConnector, SafeConnectorOptions, SafeConnectorProvider };
package/dist/safe.js ADDED
@@ -0,0 +1,119 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+
6
+
7
+ var _chunk5NCTPR6Cjs = require('./chunk-5NCTPR6C.js');
8
+
9
+ // src/safe.ts
10
+ var _safeappsprovider = require('@safe-global/safe-apps-provider');
11
+ var _safeappssdk = require('@safe-global/safe-apps-sdk'); var _safeappssdk2 = _interopRequireDefault(_safeappssdk);
12
+
13
+
14
+
15
+
16
+ var _core = require('@wagmi/core');
17
+ var _ethers = require('ethers');
18
+ var _utilsjs = require('ethers/lib/utils.js');
19
+ var _provider, _sdk;
20
+ var SafeConnector = class extends _chunk5NCTPR6Cjs.Connector {
21
+ constructor({
22
+ chains,
23
+ options: options_
24
+ }) {
25
+ const options = {
26
+ shimDisconnect: false,
27
+ ...options_
28
+ };
29
+ super({ chains, options });
30
+ _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "id", "safe");
31
+ _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "name", "Safe");
32
+ _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "ready", !(typeof window === "undefined") && _optionalChain([window, 'optionalAccess', _ => _.parent]) !== window);
33
+ _chunk5NCTPR6Cjs.__privateAdd.call(void 0, this, _provider, void 0);
34
+ _chunk5NCTPR6Cjs.__privateAdd.call(void 0, this, _sdk, void 0);
35
+ _chunk5NCTPR6Cjs.__publicField.call(void 0, this, "shimDisconnectKey", `${this.id}.shimDisconnect`);
36
+ _chunk5NCTPR6Cjs.__privateSet.call(void 0, this, _sdk, new (0, _safeappssdk2.default)(options));
37
+ }
38
+ async connect() {
39
+ const provider = await this.getProvider();
40
+ if (!provider)
41
+ throw new (0, _core.ConnectorNotFoundError)();
42
+ if (provider.on) {
43
+ provider.on("accountsChanged", this.onAccountsChanged);
44
+ provider.on("chainChanged", this.onChainChanged);
45
+ provider.on("disconnect", this.onDisconnect);
46
+ }
47
+ this.emit("message", { type: "connecting" });
48
+ const account = await this.getAccount();
49
+ const id = await this.getChainId();
50
+ if (this.options.shimDisconnect)
51
+ _optionalChain([_core.getClient.call(void 0, ), 'access', _2 => _2.storage, 'optionalAccess', _3 => _3.setItem, 'call', _4 => _4(this.shimDisconnectKey, true)]);
52
+ return {
53
+ account,
54
+ provider,
55
+ chain: { id, unsupported: this.isChainUnsupported(id) }
56
+ };
57
+ }
58
+ async disconnect() {
59
+ const provider = await this.getProvider();
60
+ if (!_optionalChain([provider, 'optionalAccess', _5 => _5.removeListener]))
61
+ return;
62
+ provider.removeListener("accountsChanged", this.onAccountsChanged);
63
+ provider.removeListener("chainChanged", this.onChainChanged);
64
+ provider.removeListener("disconnect", this.onDisconnect);
65
+ if (this.options.shimDisconnect)
66
+ _optionalChain([_core.getClient.call(void 0, ), 'access', _6 => _6.storage, 'optionalAccess', _7 => _7.removeItem, 'call', _8 => _8(this.shimDisconnectKey)]);
67
+ }
68
+ async getAccount() {
69
+ const provider = await this.getProvider();
70
+ if (!provider)
71
+ throw new (0, _core.ConnectorNotFoundError)();
72
+ const accounts = await provider.request({
73
+ method: "eth_accounts"
74
+ });
75
+ return _utilsjs.getAddress.call(void 0, accounts[0]);
76
+ }
77
+ async getChainId() {
78
+ const provider = await this.getProvider();
79
+ if (!provider)
80
+ throw new (0, _core.ConnectorNotFoundError)();
81
+ return _core.normalizeChainId.call(void 0, provider.chainId);
82
+ }
83
+ async getProvider() {
84
+ if (!_chunk5NCTPR6Cjs.__privateGet.call(void 0, this, _provider)) {
85
+ const safe = await _chunk5NCTPR6Cjs.__privateGet.call(void 0, this, _sdk).safe.getInfo();
86
+ if (!safe)
87
+ throw new Error("Could not load Safe information");
88
+ _chunk5NCTPR6Cjs.__privateSet.call(void 0, this, _provider, new (0, _safeappsprovider.SafeAppProvider)(safe, _chunk5NCTPR6Cjs.__privateGet.call(void 0, this, _sdk)));
89
+ }
90
+ return _chunk5NCTPR6Cjs.__privateGet.call(void 0, this, _provider);
91
+ }
92
+ async getSigner() {
93
+ const provider = await this.getProvider();
94
+ const account = await this.getAccount();
95
+ return new _ethers.providers.Web3Provider(provider).getSigner(account);
96
+ }
97
+ async isAuthorized() {
98
+ try {
99
+ if (this.options.shimDisconnect && !_optionalChain([_core.getClient.call(void 0, ), 'access', _9 => _9.storage, 'optionalAccess', _10 => _10.getItem, 'call', _11 => _11(this.shimDisconnectKey)]))
100
+ return false;
101
+ const account = await this.getAccount();
102
+ return !!account;
103
+ } catch (e) {
104
+ return false;
105
+ }
106
+ }
107
+ onAccountsChanged(_accounts) {
108
+ }
109
+ onChainChanged(_chainId) {
110
+ }
111
+ onDisconnect() {
112
+ this.emit("disconnect");
113
+ }
114
+ };
115
+ _provider = new WeakMap();
116
+ _sdk = new WeakMap();
117
+
118
+
119
+ exports.SafeConnector = SafeConnector;
@@ -1,4 +1,4 @@
1
1
  {
2
- "type": "module",
2
+ "module": "../dist/injected.mjs",
3
3
  "main": "../dist/injected.js"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "type": "module",
2
+ "module": "../dist/ledger.mjs",
3
3
  "main": "../dist/ledger.js"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "type": "module",
2
+ "module": "../dist/metaMask.mjs",
3
3
  "main": "../dist/metaMask.js"
4
4
  }
package/mock/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "type": "module",
2
+ "module": "../dist/mock/index.mjs",
3
3
  "main": "../dist/mock/index.js"
4
4
  }
package/package.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "name": "@wagmi/connectors",
3
3
  "description": "A collection of connectors for wagmi",
4
4
  "license": "MIT",
5
- "version": "0.2.3-cjs",
5
+ "version": "0.2.4-cjs",
6
6
  "peerDependencies": {
7
7
  "@wagmi/core": ">=0.9.x",
8
- "ethers": ">=5.5.1",
8
+ "ethers": ">=5.5.1 <6",
9
9
  "typescript": ">=4.9.4"
10
10
  },
11
11
  "peerDependenciesMeta": {
@@ -21,6 +21,8 @@
21
21
  "@ledgerhq/connect-kit-loader": "^1.0.1",
22
22
  "@walletconnect/ethereum-provider": "^1.8.0",
23
23
  "@walletconnect/universal-provider": "^2.3.3",
24
+ "@safe-global/safe-apps-provider": "^0.15.2",
25
+ "@safe-global/safe-apps-sdk": "^7.9.0",
24
26
  "@web3modal/standalone": "^2.0.0",
25
27
  "abitype": "^0.3.0",
26
28
  "eventemitter3": "^4.0.7"
@@ -31,43 +33,13 @@
31
33
  },
32
34
  "main": "dist/index.js",
33
35
  "types": "dist/index.d.ts",
34
- "exports": {
35
- ".": {
36
- "types": "./dist/index.d.ts",
37
- "default": "./dist/index.js"
38
- },
39
- "./coinbaseWallet": {
40
- "types": "./dist/coinbaseWallet.d.ts",
41
- "default": "./dist/coinbaseWallet.js"
42
- },
43
- "./injected": {
44
- "types": "./dist/injected.d.ts",
45
- "default": "./dist/injected.js"
46
- },
47
- "./ledger": {
48
- "types": "./dist/ledger.d.ts",
49
- "default": "./dist/ledger.js"
50
- },
51
- "./metaMask": {
52
- "types": "./dist/metaMask.d.ts",
53
- "default": "./dist/metaMask.js"
54
- },
55
- "./mock": {
56
- "types": "./dist/mock/index.d.ts",
57
- "default": "./dist/mock/index.js"
58
- },
59
- "./walletConnect": {
60
- "types": "./dist/walletConnect.d.ts",
61
- "default": "./dist/walletConnect.js"
62
- },
63
- "./package.json": "./package.json"
64
- },
65
36
  "files": [
66
37
  "/coinbaseWallet",
67
38
  "/injected",
68
39
  "/ledger",
69
40
  "/metaMask",
70
41
  "/mock",
42
+ "/safe",
71
43
  "/walletConnect",
72
44
  "/dist"
73
45
  ],
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../dist/safe.mjs",
3
+ "main": "../dist/safe.js"
4
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
- "type": "module",
2
+ "module": "../dist/walletConnect.mjs",
3
3
  "main": "../dist/walletConnect.js"
4
4
  }