@wagmi/core 0.4.0-test.2 → 0.4.0
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/chains/dist/wagmi-core-chains.cjs.dev.js +1 -1
- package/chains/dist/wagmi-core-chains.cjs.prod.js +1 -1
- package/chains/dist/wagmi-core-chains.esm.js +1 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +5 -5
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +5 -5
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +5 -5
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +6 -4
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +6 -4
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +6 -4
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +11 -7
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +11 -7
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +6 -6
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +19 -18
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +19 -18
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +19 -18
- package/dist/base-33eceda3.esm.js +302 -0
- package/dist/base-457b5f55.cjs.prod.js +328 -0
- package/dist/base-6f16410c.cjs.dev.js +328 -0
- package/dist/{chains-d045862c.cjs.prod.js → chains-1390c48d.cjs.prod.js} +56 -4
- package/dist/{chains-7e369752.cjs.dev.js → chains-2ca34f98.cjs.dev.js} +56 -4
- package/dist/{chains-fa406563.esm.js → chains-e98fda1e.esm.js} +56 -4
- package/dist/{client-60ee0298.esm.js → client-71653c40.esm.js} +21 -44
- package/dist/{client-42cf11b7.cjs.dev.js → client-7864fb0c.cjs.prod.js} +21 -44
- package/dist/{client-ed3aaa6a.cjs.prod.js → client-b3902dbf.cjs.dev.js} +21 -44
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +31 -2
- package/dist/declarations/src/actions/accounts/getNetwork.d.ts +1 -2
- package/dist/declarations/src/actions/accounts/signTypedData.d.ts +11 -13
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +9 -1
- package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +8 -1
- package/dist/declarations/src/actions/contracts/index.d.ts +5 -3
- package/dist/declarations/src/actions/contracts/multicall.d.ts +21 -0
- package/dist/declarations/src/actions/contracts/readContract.d.ts +7 -4
- package/dist/declarations/src/actions/contracts/readContracts.d.ts +19 -0
- package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -3
- package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +2 -3
- package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +6 -0
- package/dist/declarations/src/actions/contracts/writeContract.d.ts +10 -4
- package/dist/declarations/src/actions/index.d.ts +1 -1
- package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +6 -1
- package/dist/declarations/src/client.d.ts +6 -11
- package/dist/declarations/src/connectors/base.d.ts +4 -3
- package/dist/declarations/src/connectors/mock/connector.d.ts +2 -9
- package/dist/declarations/src/connectors/mock/provider.d.ts +2 -1
- package/dist/declarations/src/connectors/walletConnect.d.ts +5 -4
- package/dist/declarations/src/constants/index.d.ts +1 -0
- package/dist/declarations/src/constants/multicall.d.ts +25 -0
- package/dist/declarations/src/errors.d.ts +27 -5
- package/dist/declarations/src/index.d.ts +4 -4
- package/dist/declarations/src/providers/alchemy.d.ts +2 -2
- package/dist/declarations/src/providers/infura.d.ts +2 -2
- package/dist/declarations/src/providers/jsonRpc.d.ts +2 -2
- package/dist/declarations/src/providers/public.d.ts +2 -2
- package/dist/declarations/src/types/index.d.ts +17 -5
- package/dist/declarations/src/utils/configureChains.d.ts +10 -4
- package/dist/wagmi-core.cjs.dev.js +578 -231
- package/dist/wagmi-core.cjs.prod.js +578 -231
- package/dist/wagmi-core.esm.js +576 -239
- package/package.json +15 -3
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +3 -1
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +3 -1
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +3 -1
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.d.ts +0 -1
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.dev.js +0 -200
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.js +0 -7
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.prod.js +0 -200
- package/connectors/injected/dist/wagmi-core-connectors-injected.esm.js +0 -196
- package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.d.ts +0 -11
- package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.js +0 -16
- package/dist/base-7f682723.cjs.prod.js +0 -623
- package/dist/base-ae774f26.cjs.dev.js +0 -623
- package/dist/base-c546f171.esm.js +0 -603
- package/dist/declarations/src/utils/eventemitter.d.ts +0 -135
|
@@ -2,23 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var client = require('./client-
|
|
6
|
-
var base = require('./base-
|
|
5
|
+
var client = require('./client-b3902dbf.cjs.dev.js');
|
|
6
|
+
var base = require('./base-6f16410c.cjs.dev.js');
|
|
7
7
|
var ethers$1 = require('ethers/lib/ethers');
|
|
8
8
|
var utils = require('ethers/lib/utils');
|
|
9
|
-
var chains = require('./chains-7e369752.cjs.dev.js');
|
|
10
9
|
var ethers = require('ethers');
|
|
10
|
+
var shallow = require('zustand/shallow');
|
|
11
11
|
var rpcs = require('./rpcs-9c4eb960.cjs.dev.js');
|
|
12
|
+
var chains = require('./chains-2ca34f98.cjs.dev.js');
|
|
12
13
|
require('zustand/vanilla');
|
|
13
14
|
require('zustand/middleware');
|
|
15
|
+
require('eventemitter3');
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
const erc20ABI = ['event Approval(address indexed _owner, address indexed _spender, uint256 _value)', 'event Transfer(address indexed _from, address indexed _to, uint256 _value)', 'function allowance(address _owner, address _spender) public view returns (uint256 remaining)', 'function approve(address _spender, uint256 _value) public returns (bool success)', 'function balanceOf(address _owner) public view returns (uint256 balance)', 'function decimals() public view returns (uint8)', 'function name() public view returns (string)', 'function symbol() public view returns (string)', 'function totalSupply() public view returns (uint256)', 'function transfer(address _to, uint256 _value) public returns (bool success)', 'function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)']; // https://ethereum.org/en/developers/docs/standards/tokens/erc-721
|
|
17
|
-
|
|
18
|
-
const erc721ABI = ['event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId)', 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)', 'event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId)', 'function approve(address _approved, uint256 _tokenId) external payable', 'function balanceOf(address _owner) external view returns (uint256)', 'function getApproved(uint256 _tokenId) external view returns (address)', 'function isApprovedForAll(address _owner, address _operator) external view returns (bool)', 'function name() view returns (string memory)', 'function ownerOf(uint256 _tokenId) external view returns (address)', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable', 'function setApprovalForAll(address _operator, bool _approved) external', 'function symbol() view returns (string memory)', 'function tokenByIndex(uint256 _index) view returns (uint256)', 'function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns (uint256 tokenId)', 'function tokenURI(uint256 _tokenId) view returns (string memory)', 'function totalSupply() view returns (uint256)', 'function transferFrom(address _from, address _to, uint256 _tokenId) external payable'];
|
|
17
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
|
|
19
|
+
var shallow__default = /*#__PURE__*/_interopDefault(shallow);
|
|
22
20
|
|
|
23
21
|
function configureChains(defaultChains, providers) {
|
|
24
22
|
let {
|
|
@@ -76,9 +74,13 @@ function configureChains(defaultChains, providers) {
|
|
|
76
74
|
const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$ = defaultChains[0]) === null || _defaultChains$ === void 0 ? void 0 : _defaultChains$.id;
|
|
77
75
|
const chainProviders = providers_[activeChainId];
|
|
78
76
|
if (!chainProviders) throw new Error("No providers configured for chain \"".concat(activeChainId, "\""));
|
|
79
|
-
if (chainProviders.length === 1) return (_chainProviders$ = chainProviders[0]) === null || _chainProviders$ === void 0 ? void 0 : _chainProviders$.call(chainProviders)
|
|
80
|
-
|
|
77
|
+
if (chainProviders.length === 1) return Object.assign(((_chainProviders$ = chainProviders[0]) === null || _chainProviders$ === void 0 ? void 0 : _chainProviders$.call(chainProviders)) || {}, {
|
|
78
|
+
chains
|
|
79
|
+
});
|
|
80
|
+
return Object.assign(fallbackProvider(targetQuorum, minQuorum, chainProviders, {
|
|
81
81
|
stallTimeout
|
|
82
|
+
}), {
|
|
83
|
+
chains
|
|
82
84
|
});
|
|
83
85
|
},
|
|
84
86
|
webSocketProvider: _ref3 => {
|
|
@@ -90,10 +92,14 @@ function configureChains(defaultChains, providers) {
|
|
|
90
92
|
const activeChainId = chainId && chains.some(x => x.id === chainId) ? chainId : (_defaultChains$2 = defaultChains[0]) === null || _defaultChains$2 === void 0 ? void 0 : _defaultChains$2.id;
|
|
91
93
|
const chainWebSocketProviders = webSocketProviders_[activeChainId];
|
|
92
94
|
if (!chainWebSocketProviders) return undefined;
|
|
93
|
-
if (chainWebSocketProviders.length === 1) return (_chainWebSocketProvid = chainWebSocketProviders[0]) === null || _chainWebSocketProvid === void 0 ? void 0 : _chainWebSocketProvid.call(chainWebSocketProviders)
|
|
95
|
+
if (chainWebSocketProviders.length === 1) return Object.assign(((_chainWebSocketProvid = chainWebSocketProviders[0]) === null || _chainWebSocketProvid === void 0 ? void 0 : _chainWebSocketProvid.call(chainWebSocketProviders)) || {}, {
|
|
96
|
+
chains
|
|
97
|
+
}); // WebSockets do not work with `fallbackProvider`
|
|
94
98
|
// Default to first available
|
|
95
99
|
|
|
96
|
-
return (_chainWebSocketProvid2 = chainWebSocketProviders[0]) === null || _chainWebSocketProvid2 === void 0 ? void 0 : _chainWebSocketProvid2.call(chainWebSocketProviders)
|
|
100
|
+
return Object.assign(((_chainWebSocketProvid2 = chainWebSocketProviders[0]) === null || _chainWebSocketProvid2 === void 0 ? void 0 : _chainWebSocketProvid2.call(chainWebSocketProviders)) || {}, {
|
|
101
|
+
chains
|
|
102
|
+
});
|
|
97
103
|
}
|
|
98
104
|
};
|
|
99
105
|
}
|
|
@@ -129,6 +135,52 @@ function fallbackProvider(targetQuorum, minQuorum, providers_, _ref4) {
|
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
137
|
|
|
138
|
+
// https://ethereum.org/en/developers/docs/standards/tokens/erc-20
|
|
139
|
+
const erc20ABI = ['event Approval(address indexed _owner, address indexed _spender, uint256 _value)', 'event Transfer(address indexed _from, address indexed _to, uint256 _value)', 'function allowance(address _owner, address _spender) public view returns (uint256 remaining)', 'function approve(address _spender, uint256 _value) public returns (bool success)', 'function balanceOf(address _owner) public view returns (uint256 balance)', 'function decimals() public view returns (uint8)', 'function name() public view returns (string)', 'function symbol() public view returns (string)', 'function totalSupply() public view returns (uint256)', 'function transfer(address _to, uint256 _value) public returns (bool success)', 'function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)']; // https://ethereum.org/en/developers/docs/standards/tokens/erc-721
|
|
140
|
+
|
|
141
|
+
const erc721ABI = ['event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId)', 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)', 'event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId)', 'function approve(address _approved, uint256 _tokenId) external payable', 'function balanceOf(address _owner) external view returns (uint256)', 'function getApproved(uint256 _tokenId) external view returns (address)', 'function isApprovedForAll(address _owner, address _operator) external view returns (bool)', 'function name() view returns (string memory)', 'function ownerOf(uint256 _tokenId) external view returns (address)', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable', 'function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable', 'function setApprovalForAll(address _operator, bool _approved) external', 'function symbol() view returns (string memory)', 'function tokenByIndex(uint256 _index) view returns (uint256)', 'function tokenOfOwnerByIndex(address _owner, uint256 _index) view returns (uint256 tokenId)', 'function tokenURI(uint256 _tokenId) view returns (string memory)', 'function totalSupply() view returns (uint256)', 'function transferFrom(address _from, address _to, uint256 _tokenId) external payable'];
|
|
142
|
+
|
|
143
|
+
const multicallInterface = [{
|
|
144
|
+
inputs: [{
|
|
145
|
+
components: [{
|
|
146
|
+
internalType: 'address',
|
|
147
|
+
name: 'target',
|
|
148
|
+
type: 'address'
|
|
149
|
+
}, {
|
|
150
|
+
internalType: 'bool',
|
|
151
|
+
name: 'allowFailure',
|
|
152
|
+
type: 'bool'
|
|
153
|
+
}, {
|
|
154
|
+
internalType: 'bytes',
|
|
155
|
+
name: 'callData',
|
|
156
|
+
type: 'bytes'
|
|
157
|
+
}],
|
|
158
|
+
internalType: 'struct Multicall3.Call3[]',
|
|
159
|
+
name: 'calls',
|
|
160
|
+
type: 'tuple[]'
|
|
161
|
+
}],
|
|
162
|
+
name: 'aggregate3',
|
|
163
|
+
outputs: [{
|
|
164
|
+
components: [{
|
|
165
|
+
internalType: 'bool',
|
|
166
|
+
name: 'success',
|
|
167
|
+
type: 'bool'
|
|
168
|
+
}, {
|
|
169
|
+
internalType: 'bytes',
|
|
170
|
+
name: 'returnData',
|
|
171
|
+
type: 'bytes'
|
|
172
|
+
}],
|
|
173
|
+
internalType: 'struct Multicall3.Result[]',
|
|
174
|
+
name: 'returnData',
|
|
175
|
+
type: 'tuple[]'
|
|
176
|
+
}],
|
|
177
|
+
stateMutability: 'view',
|
|
178
|
+
type: 'function'
|
|
179
|
+
}];
|
|
180
|
+
|
|
181
|
+
// https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
|
|
182
|
+
const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
|
|
183
|
+
|
|
132
184
|
async function connect(_ref) {
|
|
133
185
|
let {
|
|
134
186
|
chainId,
|
|
@@ -136,19 +188,31 @@ async function connect(_ref) {
|
|
|
136
188
|
} = _ref;
|
|
137
189
|
const activeConnector = client.client.connector;
|
|
138
190
|
if (connector.id === (activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id)) throw new base.ConnectorAlreadyConnectedError();
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
connector
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
191
|
+
|
|
192
|
+
try {
|
|
193
|
+
client.client.setState(x => ({ ...x,
|
|
194
|
+
status: 'connecting'
|
|
195
|
+
}));
|
|
196
|
+
const data = await connector.connect({
|
|
197
|
+
chainId
|
|
198
|
+
});
|
|
199
|
+
client.client.setLastUsedConnector(connector.id);
|
|
200
|
+
client.client.setState(x => ({ ...x,
|
|
201
|
+
connector,
|
|
202
|
+
chains: connector === null || connector === void 0 ? void 0 : connector.chains,
|
|
203
|
+
data,
|
|
204
|
+
status: 'connected'
|
|
205
|
+
}));
|
|
206
|
+
client.client.storage.setItem('connected', true);
|
|
207
|
+
return { ...data,
|
|
208
|
+
connector
|
|
209
|
+
};
|
|
210
|
+
} catch (err) {
|
|
211
|
+
client.client.setState(x => ({ ...x,
|
|
212
|
+
status: 'disconnected'
|
|
213
|
+
}));
|
|
214
|
+
throw err;
|
|
215
|
+
}
|
|
152
216
|
}
|
|
153
217
|
|
|
154
218
|
async function disconnect() {
|
|
@@ -158,6 +222,15 @@ async function disconnect() {
|
|
|
158
222
|
client$1.storage.removeItem('connected');
|
|
159
223
|
}
|
|
160
224
|
|
|
225
|
+
function getContract(_ref) {
|
|
226
|
+
let {
|
|
227
|
+
addressOrName,
|
|
228
|
+
contractInterface,
|
|
229
|
+
signerOrProvider
|
|
230
|
+
} = _ref;
|
|
231
|
+
return new ethers.Contract(addressOrName, contractInterface, signerOrProvider);
|
|
232
|
+
}
|
|
233
|
+
|
|
161
234
|
function getProvider() {
|
|
162
235
|
let {
|
|
163
236
|
chainId
|
|
@@ -208,213 +281,152 @@ function watchWebSocketProvider(args, callback) {
|
|
|
208
281
|
return unsubscribe;
|
|
209
282
|
}
|
|
210
283
|
|
|
211
|
-
async function
|
|
212
|
-
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
213
|
-
|
|
284
|
+
async function readContract(_ref) {
|
|
214
285
|
let {
|
|
215
286
|
addressOrName,
|
|
287
|
+
args,
|
|
216
288
|
chainId,
|
|
217
|
-
|
|
218
|
-
|
|
289
|
+
contractInterface,
|
|
290
|
+
functionName,
|
|
291
|
+
overrides
|
|
219
292
|
} = _ref;
|
|
220
|
-
const client$1 = client.getClient();
|
|
221
293
|
const provider = getProvider({
|
|
222
294
|
chainId
|
|
223
295
|
});
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
const chains$1 = [...((_client$connector$cha = (_client$connector = client$1.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...chains.allChains];
|
|
238
|
-
const value = await provider.getBalance(addressOrName);
|
|
239
|
-
const chain = chains$1.find(x => x.id === provider.network.chainId);
|
|
240
|
-
return {
|
|
241
|
-
decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
|
|
242
|
-
formatted: utils.formatUnits(value, unit),
|
|
243
|
-
symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
|
|
244
|
-
unit,
|
|
245
|
-
value
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
async function fetchSigner() {
|
|
250
|
-
var _client$connector, _client$connector$get;
|
|
251
|
-
|
|
252
|
-
const client$1 = client.getClient();
|
|
253
|
-
const signer = (await ((_client$connector = client$1.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector))) || null;
|
|
254
|
-
return signer;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function getAccount() {
|
|
258
|
-
const {
|
|
259
|
-
data,
|
|
260
|
-
connector
|
|
261
|
-
} = client.getClient();
|
|
262
|
-
return {
|
|
263
|
-
address: data === null || data === void 0 ? void 0 : data.account,
|
|
264
|
-
connector
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
function getNetwork() {
|
|
269
|
-
var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
|
|
270
|
-
|
|
271
|
-
const client$1 = client.getClient();
|
|
272
|
-
const chainId = (_client$data = client$1.data) === null || _client$data === void 0 ? void 0 : (_client$data$chain = _client$data.chain) === null || _client$data$chain === void 0 ? void 0 : _client$data$chain.id;
|
|
273
|
-
const activeChains = (_client$chains = client$1.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
|
|
274
|
-
const activeChain = (_find = [...activeChains, ...chains.allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
275
|
-
id: chainId,
|
|
276
|
-
name: "Chain ".concat(chainId),
|
|
277
|
-
network: "".concat(chainId),
|
|
278
|
-
rpcUrls: {
|
|
279
|
-
default: ''
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
return {
|
|
283
|
-
chain: chainId ? { ...activeChain,
|
|
284
|
-
...((_client$data2 = client$1.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
|
|
285
|
-
id: chainId
|
|
286
|
-
} : undefined,
|
|
287
|
-
chains: activeChains
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
async function signMessage(args) {
|
|
292
|
-
try {
|
|
293
|
-
const signer = await fetchSigner();
|
|
294
|
-
if (!signer) throw new base.ConnectorNotFoundError();
|
|
295
|
-
return await signer.signMessage(args.message);
|
|
296
|
-
} catch (error) {
|
|
297
|
-
if (error.code === 4001) throw new base.UserRejectedRequestError(error);
|
|
298
|
-
throw error;
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
async function signTypedData(args) {
|
|
303
|
-
try {
|
|
304
|
-
const signer = await fetchSigner();
|
|
305
|
-
if (!signer) throw new base.ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
|
|
306
|
-
|
|
307
|
-
return await signer._signTypedData(args.domain, args.types, args.value);
|
|
308
|
-
} catch (error) {
|
|
309
|
-
if (error.code === 4001) throw new base.UserRejectedRequestError(error);
|
|
310
|
-
throw error;
|
|
311
|
-
}
|
|
296
|
+
const contract = getContract({
|
|
297
|
+
addressOrName,
|
|
298
|
+
contractInterface,
|
|
299
|
+
signerOrProvider: provider
|
|
300
|
+
});
|
|
301
|
+
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
302
|
+
const contractFunction = contract[functionName];
|
|
303
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" is not in the interface for contract \"").concat(addressOrName, "\""));
|
|
304
|
+
const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
|
|
305
|
+
return response;
|
|
312
306
|
}
|
|
313
307
|
|
|
314
|
-
async function
|
|
315
|
-
var _client$connector;
|
|
316
|
-
|
|
308
|
+
async function multicall(_ref) {
|
|
317
309
|
let {
|
|
318
|
-
|
|
310
|
+
allowFailure = true,
|
|
311
|
+
chainId,
|
|
312
|
+
contracts,
|
|
313
|
+
overrides
|
|
319
314
|
} = _ref;
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
315
|
+
const provider = getProvider({
|
|
316
|
+
chainId
|
|
317
|
+
});
|
|
318
|
+
if (!provider.chains) throw new base.ProviderChainsNotFound();
|
|
319
|
+
const chain = provider.chains.find(chain => chain.id === chainId) || provider.chains[0];
|
|
320
|
+
if (!chain) throw new base.ProviderChainsNotFound();
|
|
321
|
+
if (!(chain !== null && chain !== void 0 && chain.multicall)) throw new base.ChainDoesNotSupportMulticallError({
|
|
322
|
+
chain
|
|
323
|
+
});
|
|
324
|
+
if (typeof (overrides === null || overrides === void 0 ? void 0 : overrides.blockTag) === 'number' && (overrides === null || overrides === void 0 ? void 0 : overrides.blockTag) < chain.multicall.blockCreated) throw new base.ChainDoesNotSupportMulticallError({
|
|
325
|
+
blockNumber: overrides === null || overrides === void 0 ? void 0 : overrides.blockTag,
|
|
326
|
+
chain
|
|
327
|
+
});
|
|
328
|
+
const multicallContract = getContract({
|
|
329
|
+
addressOrName: chain.multicall.address,
|
|
330
|
+
contractInterface: multicallInterface,
|
|
331
|
+
signerOrProvider: provider
|
|
332
|
+
});
|
|
333
|
+
const calls = contracts.map(_ref2 => {
|
|
332
334
|
let {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
335
|
+
addressOrName,
|
|
336
|
+
contractInterface,
|
|
337
|
+
functionName,
|
|
338
|
+
...config
|
|
339
|
+
} = _ref2;
|
|
340
|
+
const {
|
|
341
|
+
args
|
|
342
|
+
} = config || {};
|
|
343
|
+
const contract = getContract({
|
|
344
|
+
addressOrName,
|
|
345
|
+
contractInterface
|
|
346
|
+
});
|
|
347
|
+
const params = Array.isArray(args) ? args : args ? [args] : [];
|
|
348
|
+
const callData = contract.interface.encodeFunctionData(functionName, params);
|
|
349
|
+
if (!contract[functionName]) console.warn("\"".concat(functionName, "\" is not in the interface for contract \"").concat(addressOrName, "\""));
|
|
336
350
|
return {
|
|
337
|
-
|
|
338
|
-
|
|
351
|
+
target: addressOrName,
|
|
352
|
+
allowFailure: allowFailure,
|
|
353
|
+
callData
|
|
339
354
|
};
|
|
340
|
-
}, handleChange, {
|
|
341
|
-
equalityFn: (selected, previous) => selected.account === previous.account && selected.connector === previous.connector
|
|
342
355
|
});
|
|
343
|
-
|
|
356
|
+
const params = [...[calls], ...(overrides ? [overrides] : [])];
|
|
357
|
+
const results = await multicallContract.aggregate3(...params);
|
|
358
|
+
return results.map((_ref3, i) => {
|
|
359
|
+
let {
|
|
360
|
+
returnData,
|
|
361
|
+
success
|
|
362
|
+
} = _ref3;
|
|
363
|
+
if (!success) return undefined;
|
|
364
|
+
const {
|
|
365
|
+
addressOrName,
|
|
366
|
+
contractInterface,
|
|
367
|
+
functionName
|
|
368
|
+
} = contracts[i];
|
|
369
|
+
const contract = getContract({
|
|
370
|
+
addressOrName,
|
|
371
|
+
contractInterface
|
|
372
|
+
});
|
|
373
|
+
const result = contract.interface.decodeFunctionResult(functionName, returnData);
|
|
374
|
+
return Array.isArray(result) && result.length === 1 ? result[0] : result;
|
|
375
|
+
});
|
|
344
376
|
}
|
|
345
377
|
|
|
346
|
-
function
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
378
|
+
async function readContracts(_ref) {
|
|
379
|
+
let {
|
|
380
|
+
allowFailure = true,
|
|
381
|
+
contracts,
|
|
382
|
+
overrides
|
|
383
|
+
} = _ref;
|
|
350
384
|
|
|
351
|
-
|
|
352
|
-
|
|
385
|
+
try {
|
|
386
|
+
const provider = getProvider();
|
|
387
|
+
const contractsByChainId = contracts.reduce((contracts, contract) => {
|
|
388
|
+
var _contract$chainId;
|
|
353
389
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
}
|
|
390
|
+
const chainId = (_contract$chainId = contract.chainId) !== null && _contract$chainId !== void 0 ? _contract$chainId : provider.network.chainId;
|
|
391
|
+
return { ...contracts,
|
|
392
|
+
[chainId]: [...(contracts[chainId] || []), contract]
|
|
393
|
+
};
|
|
394
|
+
}, {});
|
|
395
|
+
const promises = Object.entries(contractsByChainId).map(_ref2 => {
|
|
396
|
+
let [chainId, contracts] = _ref2;
|
|
397
|
+
return multicall({
|
|
398
|
+
allowFailure,
|
|
399
|
+
chainId: parseInt(chainId),
|
|
400
|
+
contracts,
|
|
401
|
+
overrides
|
|
402
|
+
});
|
|
403
|
+
});
|
|
367
404
|
|
|
368
|
-
|
|
369
|
-
|
|
405
|
+
if (allowFailure) {
|
|
406
|
+
return (await Promise.allSettled(promises)).map(result => {
|
|
407
|
+
if (result.status === 'fulfilled') return result.value;
|
|
370
408
|
|
|
371
|
-
|
|
409
|
+
if (result.reason instanceof base.ChainDoesNotSupportMulticallError) {
|
|
410
|
+
console.warn(result.reason.message);
|
|
411
|
+
throw result.reason;
|
|
412
|
+
}
|
|
372
413
|
|
|
373
|
-
|
|
374
|
-
|
|
414
|
+
return null;
|
|
415
|
+
}).flat();
|
|
416
|
+
}
|
|
375
417
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
account: data === null || data === void 0 ? void 0 : data.account,
|
|
382
|
-
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
383
|
-
connector
|
|
384
|
-
};
|
|
385
|
-
}, handleChange, {
|
|
386
|
-
equalityFn: (selected, previous) => selected.account === previous.account && selected.chainId === previous.chainId && selected.connector === previous.connector
|
|
387
|
-
});
|
|
388
|
-
return unsubscribe;
|
|
389
|
-
}
|
|
418
|
+
return (await Promise.all(promises)).flat();
|
|
419
|
+
} catch (err) {
|
|
420
|
+
const promises = contracts.map(contract => readContract({ ...contract,
|
|
421
|
+
overrides
|
|
422
|
+
}));
|
|
390
423
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
contractInterface,
|
|
395
|
-
signerOrProvider
|
|
396
|
-
} = _ref;
|
|
397
|
-
return new ethers.Contract(addressOrName, contractInterface, signerOrProvider);
|
|
398
|
-
}
|
|
424
|
+
if (allowFailure) {
|
|
425
|
+
return (await Promise.allSettled(promises)).map(result => result.status === 'fulfilled' ? result.value : null);
|
|
426
|
+
}
|
|
399
427
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
args,
|
|
403
|
-
chainId,
|
|
404
|
-
overrides
|
|
405
|
-
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
406
|
-
const provider = getProvider({
|
|
407
|
-
chainId
|
|
408
|
-
});
|
|
409
|
-
const contract = getContract({
|
|
410
|
-
signerOrProvider: provider,
|
|
411
|
-
...contractConfig
|
|
412
|
-
});
|
|
413
|
-
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
414
|
-
const contractFunction = contract[functionName];
|
|
415
|
-
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not exist in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
416
|
-
const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
|
|
417
|
-
return response;
|
|
428
|
+
return Promise.all(promises);
|
|
429
|
+
}
|
|
418
430
|
}
|
|
419
431
|
|
|
420
432
|
function watchContractEvent(
|
|
@@ -458,7 +470,7 @@ eventName, callback) {
|
|
|
458
470
|
webSocketProvider
|
|
459
471
|
};
|
|
460
472
|
}, watchEvent, {
|
|
461
|
-
equalityFn:
|
|
473
|
+
equalityFn: shallow__default["default"]
|
|
462
474
|
});
|
|
463
475
|
return () => {
|
|
464
476
|
var _contract2;
|
|
@@ -520,7 +532,7 @@ function watchBlockNumber(args, callback) {
|
|
|
520
532
|
|
|
521
533
|
callback(await fetchBlockNumber());
|
|
522
534
|
}, {
|
|
523
|
-
equalityFn:
|
|
535
|
+
equalityFn: shallow__default["default"]
|
|
524
536
|
});
|
|
525
537
|
return () => {
|
|
526
538
|
unsubscribe();
|
|
@@ -528,12 +540,30 @@ function watchBlockNumber(args, callback) {
|
|
|
528
540
|
};
|
|
529
541
|
}
|
|
530
542
|
|
|
531
|
-
function watchReadContract(
|
|
532
|
-
|
|
533
|
-
|
|
543
|
+
function watchReadContract(config, callback) {
|
|
544
|
+
const client$1 = client.getClient();
|
|
545
|
+
|
|
546
|
+
const handleChange = async () => callback(await readContract(config));
|
|
547
|
+
|
|
548
|
+
const unwatch = config.listenToBlock ? watchBlockNumber({
|
|
549
|
+
listen: true
|
|
550
|
+
}, handleChange) : undefined;
|
|
551
|
+
const unsubscribe = client$1.subscribe(_ref => {
|
|
552
|
+
let {
|
|
553
|
+
provider
|
|
554
|
+
} = _ref;
|
|
555
|
+
return provider;
|
|
556
|
+
}, handleChange);
|
|
557
|
+
return () => {
|
|
558
|
+
unsubscribe();
|
|
559
|
+
unwatch === null || unwatch === void 0 ? void 0 : unwatch();
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
function watchReadContracts(config, callback) {
|
|
534
564
|
const client$1 = client.getClient();
|
|
535
565
|
|
|
536
|
-
const handleChange = async () => callback(await
|
|
566
|
+
const handleChange = async () => callback(await readContracts(config));
|
|
537
567
|
|
|
538
568
|
const unwatch = config.listenToBlock ? watchBlockNumber({
|
|
539
569
|
listen: true
|
|
@@ -550,29 +580,315 @@ function watchReadContract(contractConfig, functionName) {
|
|
|
550
580
|
};
|
|
551
581
|
}
|
|
552
582
|
|
|
553
|
-
async function writeContract(
|
|
583
|
+
async function writeContract(_ref) {
|
|
554
584
|
let {
|
|
585
|
+
addressOrName,
|
|
555
586
|
args,
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
587
|
+
chainId,
|
|
588
|
+
contractInterface,
|
|
589
|
+
functionName,
|
|
590
|
+
overrides,
|
|
591
|
+
signerOrProvider
|
|
592
|
+
} = _ref;
|
|
593
|
+
const {
|
|
594
|
+
connector
|
|
595
|
+
} = client.getClient();
|
|
596
|
+
if (!connector) throw new base.ConnectorNotFoundError();
|
|
560
597
|
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
561
598
|
|
|
562
599
|
try {
|
|
563
|
-
|
|
564
|
-
|
|
600
|
+
var _chain;
|
|
601
|
+
|
|
602
|
+
let chain;
|
|
603
|
+
|
|
604
|
+
if (chainId) {
|
|
605
|
+
const activeChainId = await connector.getChainId(); // Try to switch chain to provided `chainId`
|
|
606
|
+
|
|
607
|
+
if (chainId !== activeChainId) {
|
|
608
|
+
var _connector$chains$fin, _connector$chains$fin2, _connector$chains$fin3, _connector$chains$fin4;
|
|
609
|
+
|
|
610
|
+
if (connector.switchChain) chain = await connector.switchChain(chainId);else throw new base.ChainMismatchError({
|
|
611
|
+
activeChain: (_connector$chains$fin = (_connector$chains$fin2 = connector.chains.find(x => x.id === activeChainId)) === null || _connector$chains$fin2 === void 0 ? void 0 : _connector$chains$fin2.name) !== null && _connector$chains$fin !== void 0 ? _connector$chains$fin : "Chain ".concat(activeChainId),
|
|
612
|
+
targetChain: (_connector$chains$fin3 = (_connector$chains$fin4 = connector.chains.find(x => x.id === chainId)) === null || _connector$chains$fin4 === void 0 ? void 0 : _connector$chains$fin4.name) !== null && _connector$chains$fin3 !== void 0 ? _connector$chains$fin3 : "Chain ".concat(chainId)
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
const signer = await connector.getSigner({
|
|
618
|
+
chainId: (_chain = chain) === null || _chain === void 0 ? void 0 : _chain.id
|
|
619
|
+
});
|
|
620
|
+
const contract = getContract({
|
|
621
|
+
addressOrName,
|
|
622
|
+
contractInterface,
|
|
623
|
+
signerOrProvider
|
|
624
|
+
});
|
|
565
625
|
const contractWithSigner = contract.connect(signer);
|
|
566
626
|
const contractFunction = contractWithSigner[functionName];
|
|
567
|
-
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not exist in interface for contract \"").concat(
|
|
568
|
-
|
|
569
|
-
return response;
|
|
627
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not exist in interface for contract \"").concat(addressOrName, "\""));
|
|
628
|
+
return await contractFunction(...params);
|
|
570
629
|
} catch (error) {
|
|
571
630
|
if (error.code === 4001) throw new base.UserRejectedRequestError(error);
|
|
572
631
|
throw error;
|
|
573
632
|
}
|
|
574
633
|
}
|
|
575
634
|
|
|
635
|
+
async function fetchBalance(_ref) {
|
|
636
|
+
var _client$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
637
|
+
|
|
638
|
+
let {
|
|
639
|
+
addressOrName,
|
|
640
|
+
chainId,
|
|
641
|
+
formatUnits: unit = 'ether',
|
|
642
|
+
token
|
|
643
|
+
} = _ref;
|
|
644
|
+
const client$1 = client.getClient();
|
|
645
|
+
const provider = getProvider({
|
|
646
|
+
chainId
|
|
647
|
+
});
|
|
648
|
+
|
|
649
|
+
if (token) {
|
|
650
|
+
const erc20Config = {
|
|
651
|
+
addressOrName: token,
|
|
652
|
+
contractInterface: erc20ABI,
|
|
653
|
+
chainId
|
|
654
|
+
}; // Convert ENS name to address if required
|
|
655
|
+
|
|
656
|
+
let resolvedAddress;
|
|
657
|
+
if (utils.isAddress(addressOrName)) resolvedAddress = addressOrName;else {
|
|
658
|
+
const address = await provider.resolveName(addressOrName); // Same error `provider.getBalance` throws for invalid ENS name
|
|
659
|
+
|
|
660
|
+
if (!address) ethers$1.logger.throwError('ENS name not configured', utils.Logger.errors.UNSUPPORTED_OPERATION, {
|
|
661
|
+
operation: "resolveName(".concat(JSON.stringify(addressOrName), ")")
|
|
662
|
+
});
|
|
663
|
+
resolvedAddress = address;
|
|
664
|
+
}
|
|
665
|
+
const [value, decimals, symbol] = await readContracts({
|
|
666
|
+
allowFailure: false,
|
|
667
|
+
contracts: [{ ...erc20Config,
|
|
668
|
+
functionName: 'balanceOf',
|
|
669
|
+
args: resolvedAddress
|
|
670
|
+
}, { ...erc20Config,
|
|
671
|
+
functionName: 'decimals'
|
|
672
|
+
}, { ...erc20Config,
|
|
673
|
+
functionName: 'symbol'
|
|
674
|
+
}]
|
|
675
|
+
});
|
|
676
|
+
return {
|
|
677
|
+
decimals,
|
|
678
|
+
formatted: utils.formatUnits(value !== null && value !== void 0 ? value : '0', unit),
|
|
679
|
+
symbol,
|
|
680
|
+
unit,
|
|
681
|
+
value
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
const chains = [...(client$1.provider.chains || []), ...((_client$chains = client$1.chains) !== null && _client$chains !== void 0 ? _client$chains : [])];
|
|
686
|
+
const value = await provider.getBalance(addressOrName);
|
|
687
|
+
const chain = chains.find(x => x.id === provider.network.chainId);
|
|
688
|
+
return {
|
|
689
|
+
decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
|
|
690
|
+
formatted: utils.formatUnits(value !== null && value !== void 0 ? value : '0', unit),
|
|
691
|
+
symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH',
|
|
692
|
+
unit,
|
|
693
|
+
value
|
|
694
|
+
};
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
async function fetchSigner() {
|
|
698
|
+
var _client$connector, _client$connector$get;
|
|
699
|
+
|
|
700
|
+
const client$1 = client.getClient();
|
|
701
|
+
const signer = (await ((_client$connector = client$1.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector))) || null;
|
|
702
|
+
return signer;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
function getAccount() {
|
|
706
|
+
const {
|
|
707
|
+
data,
|
|
708
|
+
connector,
|
|
709
|
+
status
|
|
710
|
+
} = client.getClient();
|
|
711
|
+
|
|
712
|
+
switch (status) {
|
|
713
|
+
case 'connected':
|
|
714
|
+
return {
|
|
715
|
+
address: data === null || data === void 0 ? void 0 : data.account,
|
|
716
|
+
connector: connector,
|
|
717
|
+
isConnected: true,
|
|
718
|
+
isConnecting: false,
|
|
719
|
+
isDisconnected: false,
|
|
720
|
+
isReconnecting: false,
|
|
721
|
+
status
|
|
722
|
+
};
|
|
723
|
+
|
|
724
|
+
case 'reconnecting':
|
|
725
|
+
return {
|
|
726
|
+
address: data === null || data === void 0 ? void 0 : data.account,
|
|
727
|
+
connector,
|
|
728
|
+
isConnected: !!(data !== null && data !== void 0 && data.account),
|
|
729
|
+
isConnecting: false,
|
|
730
|
+
isDisconnected: false,
|
|
731
|
+
isReconnecting: true,
|
|
732
|
+
status
|
|
733
|
+
};
|
|
734
|
+
|
|
735
|
+
case 'connecting':
|
|
736
|
+
return {
|
|
737
|
+
address: undefined,
|
|
738
|
+
connector: undefined,
|
|
739
|
+
isConnected: false,
|
|
740
|
+
isConnecting: true,
|
|
741
|
+
isDisconnected: false,
|
|
742
|
+
isReconnecting: false,
|
|
743
|
+
status
|
|
744
|
+
};
|
|
745
|
+
|
|
746
|
+
case 'disconnected':
|
|
747
|
+
return {
|
|
748
|
+
address: undefined,
|
|
749
|
+
connector: undefined,
|
|
750
|
+
isConnected: false,
|
|
751
|
+
isConnecting: false,
|
|
752
|
+
isDisconnected: true,
|
|
753
|
+
isReconnecting: false,
|
|
754
|
+
status
|
|
755
|
+
};
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
function getNetwork() {
|
|
760
|
+
var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
|
|
761
|
+
|
|
762
|
+
const client$1 = client.getClient();
|
|
763
|
+
const chainId = (_client$data = client$1.data) === null || _client$data === void 0 ? void 0 : (_client$data$chain = _client$data.chain) === null || _client$data$chain === void 0 ? void 0 : _client$data$chain.id;
|
|
764
|
+
const activeChains = (_client$chains = client$1.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
|
|
765
|
+
const activeChain = (_find = [...(client$1.provider.chains || []), ...activeChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
766
|
+
id: chainId,
|
|
767
|
+
name: "Chain ".concat(chainId),
|
|
768
|
+
network: "".concat(chainId),
|
|
769
|
+
rpcUrls: {
|
|
770
|
+
default: ''
|
|
771
|
+
}
|
|
772
|
+
};
|
|
773
|
+
return {
|
|
774
|
+
chain: chainId ? { ...activeChain,
|
|
775
|
+
...((_client$data2 = client$1.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
|
|
776
|
+
id: chainId
|
|
777
|
+
} : undefined,
|
|
778
|
+
chains: activeChains
|
|
779
|
+
};
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
async function signMessage(args) {
|
|
783
|
+
try {
|
|
784
|
+
const signer = await fetchSigner();
|
|
785
|
+
if (!signer) throw new base.ConnectorNotFoundError();
|
|
786
|
+
return await signer.signMessage(args.message);
|
|
787
|
+
} catch (error) {
|
|
788
|
+
if (error.code === 4001) throw new base.UserRejectedRequestError(error);
|
|
789
|
+
throw error;
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
async function signTypedData(args) {
|
|
794
|
+
try {
|
|
795
|
+
const signer = await fetchSigner();
|
|
796
|
+
if (!signer) throw new base.ConnectorNotFoundError(); // Method name may be changed in the future, see https://docs.ethers.io/v5/api/signer/#Signer-signTypedData
|
|
797
|
+
|
|
798
|
+
return await signer._signTypedData(args.domain, args.types, args.value);
|
|
799
|
+
} catch (error) {
|
|
800
|
+
if (error.code === 4001) throw new base.UserRejectedRequestError(error);
|
|
801
|
+
throw error;
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
async function switchNetwork(_ref) {
|
|
806
|
+
let {
|
|
807
|
+
chainId
|
|
808
|
+
} = _ref;
|
|
809
|
+
const {
|
|
810
|
+
connector
|
|
811
|
+
} = client.getClient();
|
|
812
|
+
if (!connector) throw new base.ConnectorNotFoundError();
|
|
813
|
+
if (!connector.switchChain) throw new base.SwitchChainNotSupportedError({
|
|
814
|
+
connector
|
|
815
|
+
});
|
|
816
|
+
return await connector.switchChain(chainId);
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
function watchAccount(callback) {
|
|
820
|
+
let {
|
|
821
|
+
selector = x => x
|
|
822
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
823
|
+
const client$1 = client.getClient();
|
|
824
|
+
|
|
825
|
+
const handleChange = () => callback(getAccount());
|
|
826
|
+
|
|
827
|
+
const unsubscribe = client$1.subscribe(_ref => {
|
|
828
|
+
let {
|
|
829
|
+
data,
|
|
830
|
+
connector,
|
|
831
|
+
status
|
|
832
|
+
} = _ref;
|
|
833
|
+
return selector({
|
|
834
|
+
address: data === null || data === void 0 ? void 0 : data.account,
|
|
835
|
+
connector,
|
|
836
|
+
status
|
|
837
|
+
});
|
|
838
|
+
}, handleChange, {
|
|
839
|
+
equalityFn: shallow__default["default"]
|
|
840
|
+
});
|
|
841
|
+
return unsubscribe;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
function watchNetwork(callback) {
|
|
845
|
+
let {
|
|
846
|
+
selector = x => x
|
|
847
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
848
|
+
const client$1 = client.getClient();
|
|
849
|
+
|
|
850
|
+
const handleChange = () => callback(getNetwork());
|
|
851
|
+
|
|
852
|
+
const unsubscribe = client$1.subscribe(_ref => {
|
|
853
|
+
var _data$chain;
|
|
854
|
+
|
|
855
|
+
let {
|
|
856
|
+
data,
|
|
857
|
+
chains
|
|
858
|
+
} = _ref;
|
|
859
|
+
return selector({
|
|
860
|
+
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
861
|
+
chains
|
|
862
|
+
});
|
|
863
|
+
}, handleChange, {
|
|
864
|
+
equalityFn: shallow__default["default"]
|
|
865
|
+
});
|
|
866
|
+
return unsubscribe;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
function watchSigner(callback) {
|
|
870
|
+
const client$1 = client.getClient();
|
|
871
|
+
|
|
872
|
+
const handleChange = async () => callback(await fetchSigner());
|
|
873
|
+
|
|
874
|
+
const unsubscribe = client$1.subscribe(_ref => {
|
|
875
|
+
var _data$chain;
|
|
876
|
+
|
|
877
|
+
let {
|
|
878
|
+
data,
|
|
879
|
+
connector
|
|
880
|
+
} = _ref;
|
|
881
|
+
return {
|
|
882
|
+
account: data === null || data === void 0 ? void 0 : data.account,
|
|
883
|
+
chainId: data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id,
|
|
884
|
+
connector
|
|
885
|
+
};
|
|
886
|
+
}, handleChange, {
|
|
887
|
+
equalityFn: shallow__default["default"]
|
|
888
|
+
});
|
|
889
|
+
return unsubscribe;
|
|
890
|
+
}
|
|
891
|
+
|
|
576
892
|
async function fetchEnsAddress(_ref) {
|
|
577
893
|
let {
|
|
578
894
|
chainId,
|
|
@@ -669,12 +985,38 @@ async function fetchToken(_ref) {
|
|
|
669
985
|
return token;
|
|
670
986
|
}
|
|
671
987
|
|
|
672
|
-
async function sendTransaction(
|
|
988
|
+
async function sendTransaction(_ref) {
|
|
989
|
+
let {
|
|
990
|
+
chainId,
|
|
991
|
+
request
|
|
992
|
+
} = _ref;
|
|
993
|
+
const {
|
|
994
|
+
connector
|
|
995
|
+
} = client.getClient();
|
|
996
|
+
if (!connector) throw new base.ConnectorNotFoundError();
|
|
997
|
+
|
|
673
998
|
try {
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
999
|
+
var _chain;
|
|
1000
|
+
|
|
1001
|
+
let chain;
|
|
1002
|
+
|
|
1003
|
+
if (chainId) {
|
|
1004
|
+
const activeChainId = await connector.getChainId(); // Try to switch chain to provided `chainId`
|
|
1005
|
+
|
|
1006
|
+
if (chainId !== activeChainId) {
|
|
1007
|
+
var _connector$chains$fin, _connector$chains$fin2, _connector$chains$fin3, _connector$chains$fin4;
|
|
1008
|
+
|
|
1009
|
+
if (connector.switchChain) chain = await connector.switchChain(chainId);else throw new base.ChainMismatchError({
|
|
1010
|
+
activeChain: (_connector$chains$fin = (_connector$chains$fin2 = connector.chains.find(x => x.id === activeChainId)) === null || _connector$chains$fin2 === void 0 ? void 0 : _connector$chains$fin2.name) !== null && _connector$chains$fin !== void 0 ? _connector$chains$fin : "Chain ".concat(activeChainId),
|
|
1011
|
+
targetChain: (_connector$chains$fin3 = (_connector$chains$fin4 = connector.chains.find(x => x.id === chainId)) === null || _connector$chains$fin4 === void 0 ? void 0 : _connector$chains$fin4.name) !== null && _connector$chains$fin3 !== void 0 ? _connector$chains$fin3 : "Chain ".concat(chainId)
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
const signer = await connector.getSigner({
|
|
1017
|
+
chainId: (_chain = chain) === null || _chain === void 0 ? void 0 : _chain.id
|
|
1018
|
+
});
|
|
1019
|
+
return await signer.sendTransaction(request);
|
|
678
1020
|
} catch (error) {
|
|
679
1021
|
if (error.code === 4001) throw new base.UserRejectedRequestError(error);
|
|
680
1022
|
throw error;
|
|
@@ -707,10 +1049,13 @@ exports.createClient = client.createClient;
|
|
|
707
1049
|
exports.createStorage = client.createStorage;
|
|
708
1050
|
exports.noopStorage = client.noopStorage;
|
|
709
1051
|
exports.AddChainError = base.AddChainError;
|
|
1052
|
+
exports.ChainDoesNotSupportMulticallError = base.ChainDoesNotSupportMulticallError;
|
|
1053
|
+
exports.ChainMismatchError = base.ChainMismatchError;
|
|
710
1054
|
exports.ChainNotConfiguredError = base.ChainNotConfiguredError;
|
|
711
1055
|
exports.Connector = base.Connector;
|
|
712
1056
|
exports.ConnectorAlreadyConnectedError = base.ConnectorAlreadyConnectedError;
|
|
713
1057
|
exports.ConnectorNotFoundError = base.ConnectorNotFoundError;
|
|
1058
|
+
exports.ProviderChainsNotFound = base.ProviderChainsNotFound;
|
|
714
1059
|
exports.ProviderRpcError = base.ProviderRpcError;
|
|
715
1060
|
exports.ResourceUnavailableError = base.ResourceUnavailableError;
|
|
716
1061
|
exports.RpcError = base.RpcError;
|
|
@@ -718,14 +1063,14 @@ exports.SwitchChainError = base.SwitchChainError;
|
|
|
718
1063
|
exports.SwitchChainNotSupportedError = base.SwitchChainNotSupportedError;
|
|
719
1064
|
exports.UserRejectedRequestError = base.UserRejectedRequestError;
|
|
720
1065
|
exports.normalizeChainId = base.normalizeChainId;
|
|
1066
|
+
exports.alchemyRpcUrls = rpcs.alchemyRpcUrls;
|
|
1067
|
+
exports.infuraRpcUrls = rpcs.infuraRpcUrls;
|
|
721
1068
|
exports.allChains = chains.allChains;
|
|
722
1069
|
exports.chain = chains.chain;
|
|
723
1070
|
exports.chainId = chains.chainId;
|
|
724
1071
|
exports.defaultChains = chains.defaultChains;
|
|
725
1072
|
exports.defaultL2Chains = chains.defaultL2Chains;
|
|
726
1073
|
exports.etherscanBlockExplorers = chains.etherscanBlockExplorers;
|
|
727
|
-
exports.alchemyRpcUrls = rpcs.alchemyRpcUrls;
|
|
728
|
-
exports.infuraRpcUrls = rpcs.infuraRpcUrls;
|
|
729
1074
|
exports.configureChains = configureChains;
|
|
730
1075
|
exports.connect = connect;
|
|
731
1076
|
exports.disconnect = disconnect;
|
|
@@ -746,6 +1091,7 @@ exports.getNetwork = getNetwork;
|
|
|
746
1091
|
exports.getProvider = getProvider;
|
|
747
1092
|
exports.getWebSocketProvider = getWebSocketProvider;
|
|
748
1093
|
exports.readContract = readContract;
|
|
1094
|
+
exports.readContracts = readContracts;
|
|
749
1095
|
exports.sendTransaction = sendTransaction;
|
|
750
1096
|
exports.signMessage = signMessage;
|
|
751
1097
|
exports.signTypedData = signTypedData;
|
|
@@ -758,6 +1104,7 @@ exports.watchContractEvent = watchContractEvent;
|
|
|
758
1104
|
exports.watchNetwork = watchNetwork;
|
|
759
1105
|
exports.watchProvider = watchProvider;
|
|
760
1106
|
exports.watchReadContract = watchReadContract;
|
|
1107
|
+
exports.watchReadContracts = watchReadContracts;
|
|
761
1108
|
exports.watchSigner = watchSigner;
|
|
762
1109
|
exports.watchWebSocketProvider = watchWebSocketProvider;
|
|
763
1110
|
exports.writeContract = writeContract;
|