@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 +1 -14
- package/coinbaseWallet/package.json +1 -1
- package/dist/{chunk-LNIFBRWC.js → chunk-6IU3YKWQ.js} +1 -1
- package/dist/injected.js +2 -2
- package/dist/metaMask.js +2 -2
- package/dist/safe.d.ts +53 -0
- package/dist/safe.js +119 -0
- package/injected/package.json +1 -1
- package/ledger/package.json +1 -1
- package/metaMask/package.json +1 -1
- package/mock/package.json +1 -1
- package/package.json +5 -33
- package/safe/package.json +4 -0
- package/walletConnect/package.json +1 -1
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
|
|
@@ -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",
|
|
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
|
|
3
|
+
var _chunk6IU3YKWQjs = require('./chunk-6IU3YKWQ.js');
|
|
4
4
|
require('./chunk-5NCTPR6C.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
exports.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
|
|
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
|
|
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;
|
package/injected/package.json
CHANGED
package/ledger/package.json
CHANGED
package/metaMask/package.json
CHANGED
package/mock/package.json
CHANGED
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.
|
|
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
|
],
|