@0xsequence/provider 0.43.5 → 0.43.7
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.
|
@@ -3408,7 +3408,7 @@ class Wallet {
|
|
|
3408
3408
|
}, true);
|
|
3409
3409
|
});
|
|
3410
3410
|
};
|
|
3411
|
-
this.loadSession = async function () {
|
|
3411
|
+
this.loadSession = async function (preferredNetwork) {
|
|
3412
3412
|
const data = await LocalStorage.getInstance().getItem('@sequence.session');
|
|
3413
3413
|
if (!data || data === '') {
|
|
3414
3414
|
return undefined;
|
|
@@ -3416,7 +3416,22 @@ class Wallet {
|
|
|
3416
3416
|
try {
|
|
3417
3417
|
const session = JSON.parse(data);
|
|
3418
3418
|
if (session) {
|
|
3419
|
-
|
|
3419
|
+
// Setting preferredNetwork as default network if it's in session.networks
|
|
3420
|
+
if (preferredNetwork !== undefined) {
|
|
3421
|
+
var _session$networks;
|
|
3422
|
+
const preferredNetworkIdNum = typeof preferredNetwork === 'string' ? parseInt(preferredNetwork) : preferredNetwork;
|
|
3423
|
+
const isPreferredNetwork = n => n.name === preferredNetwork || n.chainId === preferredNetworkIdNum;
|
|
3424
|
+
const preferredNetworkInConfig = (_session$networks = session.networks) == null ? void 0 : _session$networks.find(isPreferredNetwork);
|
|
3425
|
+
const isAlreadyDefaultChain = preferredNetworkInConfig == null ? void 0 : preferredNetworkInConfig.isDefaultChain;
|
|
3426
|
+
if (session.networks && preferredNetworkInConfig && !isAlreadyDefaultChain) {
|
|
3427
|
+
const updatedNetworks = session.networks.map(n => _extends({}, n, {
|
|
3428
|
+
isDefaultChain: isPreferredNetwork(n)
|
|
3429
|
+
}));
|
|
3430
|
+
session.networks = network.sortNetworks(updatedNetworks);
|
|
3431
|
+
session.providerCache = undefined;
|
|
3432
|
+
}
|
|
3433
|
+
}
|
|
3434
|
+
_this.useSession(session, true);
|
|
3420
3435
|
}
|
|
3421
3436
|
return session;
|
|
3422
3437
|
} catch (err) {
|
|
@@ -3561,6 +3576,8 @@ class Wallet {
|
|
|
3561
3576
|
// setup provider cache
|
|
3562
3577
|
if (session.providerCache) {
|
|
3563
3578
|
_this.transport.cachedProvider.setCache(session.providerCache);
|
|
3579
|
+
} else {
|
|
3580
|
+
_this.transport.cachedProvider.clearCache();
|
|
3564
3581
|
}
|
|
3565
3582
|
|
|
3566
3583
|
// persist
|
|
@@ -3787,7 +3804,7 @@ const initWallet = async (network, config) => {
|
|
|
3787
3804
|
walletInstance.closeWallet();
|
|
3788
3805
|
}
|
|
3789
3806
|
walletInstance = new Wallet(network, config);
|
|
3790
|
-
await walletInstance.loadSession();
|
|
3807
|
+
await walletInstance.loadSession(network);
|
|
3791
3808
|
return walletInstance;
|
|
3792
3809
|
};
|
|
3793
3810
|
const getWallet = () => {
|
|
@@ -3408,7 +3408,7 @@ class Wallet {
|
|
|
3408
3408
|
}, true);
|
|
3409
3409
|
});
|
|
3410
3410
|
};
|
|
3411
|
-
this.loadSession = async function () {
|
|
3411
|
+
this.loadSession = async function (preferredNetwork) {
|
|
3412
3412
|
const data = await LocalStorage.getInstance().getItem('@sequence.session');
|
|
3413
3413
|
if (!data || data === '') {
|
|
3414
3414
|
return undefined;
|
|
@@ -3416,7 +3416,22 @@ class Wallet {
|
|
|
3416
3416
|
try {
|
|
3417
3417
|
const session = JSON.parse(data);
|
|
3418
3418
|
if (session) {
|
|
3419
|
-
|
|
3419
|
+
// Setting preferredNetwork as default network if it's in session.networks
|
|
3420
|
+
if (preferredNetwork !== undefined) {
|
|
3421
|
+
var _session$networks;
|
|
3422
|
+
const preferredNetworkIdNum = typeof preferredNetwork === 'string' ? parseInt(preferredNetwork) : preferredNetwork;
|
|
3423
|
+
const isPreferredNetwork = n => n.name === preferredNetwork || n.chainId === preferredNetworkIdNum;
|
|
3424
|
+
const preferredNetworkInConfig = (_session$networks = session.networks) == null ? void 0 : _session$networks.find(isPreferredNetwork);
|
|
3425
|
+
const isAlreadyDefaultChain = preferredNetworkInConfig == null ? void 0 : preferredNetworkInConfig.isDefaultChain;
|
|
3426
|
+
if (session.networks && preferredNetworkInConfig && !isAlreadyDefaultChain) {
|
|
3427
|
+
const updatedNetworks = session.networks.map(n => _extends({}, n, {
|
|
3428
|
+
isDefaultChain: isPreferredNetwork(n)
|
|
3429
|
+
}));
|
|
3430
|
+
session.networks = network.sortNetworks(updatedNetworks);
|
|
3431
|
+
session.providerCache = undefined;
|
|
3432
|
+
}
|
|
3433
|
+
}
|
|
3434
|
+
_this.useSession(session, true);
|
|
3420
3435
|
}
|
|
3421
3436
|
return session;
|
|
3422
3437
|
} catch (err) {
|
|
@@ -3561,6 +3576,8 @@ class Wallet {
|
|
|
3561
3576
|
// setup provider cache
|
|
3562
3577
|
if (session.providerCache) {
|
|
3563
3578
|
_this.transport.cachedProvider.setCache(session.providerCache);
|
|
3579
|
+
} else {
|
|
3580
|
+
_this.transport.cachedProvider.clearCache();
|
|
3564
3581
|
}
|
|
3565
3582
|
|
|
3566
3583
|
// persist
|
|
@@ -3787,7 +3804,7 @@ const initWallet = async (network, config) => {
|
|
|
3787
3804
|
walletInstance.closeWallet();
|
|
3788
3805
|
}
|
|
3789
3806
|
walletInstance = new Wallet(network, config);
|
|
3790
|
-
await walletInstance.loadSession();
|
|
3807
|
+
await walletInstance.loadSession(network);
|
|
3791
3808
|
return walletInstance;
|
|
3792
3809
|
};
|
|
3793
3810
|
const getWallet = () => {
|
|
@@ -2,7 +2,7 @@ import { EventEmitter2 } from 'eventemitter2';
|
|
|
2
2
|
import { logger, shallowCopy, resolveProperties, encodeMessageDigest, encodeTypedDataDigest, packMessageData, sanitizeNumberString, sanitizeHost, sanitizeAlphanumeric, base64EncodeObject, base64DecodeObject } from '@0xsequence/utils';
|
|
3
3
|
import { ethers, BigNumber, providers } from 'ethers';
|
|
4
4
|
import { addressOf, isConfigEqual } from '@0xsequence/config';
|
|
5
|
-
import { JsonRpcSender, maybeChainId, allowProviderMiddleware, networkProviderMiddleware, CachedProvider, JsonRpcRouter, loggingProviderMiddleware, exceptionProviderMiddleware, findNetworkConfig, EagerProvider, SigningProvider, updateNetworkConfig, ensureValidNetworks } from '@0xsequence/network';
|
|
5
|
+
import { JsonRpcSender, maybeChainId, allowProviderMiddleware, networkProviderMiddleware, CachedProvider, JsonRpcRouter, loggingProviderMiddleware, exceptionProviderMiddleware, sortNetworks, findNetworkConfig, EagerProvider, SigningProvider, updateNetworkConfig, ensureValidNetworks } from '@0xsequence/network';
|
|
6
6
|
import { Signer, resolveArrayProperties, isValidSignature as isValidSignature$1, recoverConfig } from '@0xsequence/wallet';
|
|
7
7
|
import { isSignedTransactions } from '@0xsequence/transactions';
|
|
8
8
|
import { signAuthorization } from '@0xsequence/auth';
|
|
@@ -3404,7 +3404,7 @@ class Wallet {
|
|
|
3404
3404
|
}, true);
|
|
3405
3405
|
});
|
|
3406
3406
|
};
|
|
3407
|
-
this.loadSession = async function () {
|
|
3407
|
+
this.loadSession = async function (preferredNetwork) {
|
|
3408
3408
|
const data = await LocalStorage.getInstance().getItem('@sequence.session');
|
|
3409
3409
|
if (!data || data === '') {
|
|
3410
3410
|
return undefined;
|
|
@@ -3412,7 +3412,22 @@ class Wallet {
|
|
|
3412
3412
|
try {
|
|
3413
3413
|
const session = JSON.parse(data);
|
|
3414
3414
|
if (session) {
|
|
3415
|
-
|
|
3415
|
+
// Setting preferredNetwork as default network if it's in session.networks
|
|
3416
|
+
if (preferredNetwork !== undefined) {
|
|
3417
|
+
var _session$networks;
|
|
3418
|
+
const preferredNetworkIdNum = typeof preferredNetwork === 'string' ? parseInt(preferredNetwork) : preferredNetwork;
|
|
3419
|
+
const isPreferredNetwork = n => n.name === preferredNetwork || n.chainId === preferredNetworkIdNum;
|
|
3420
|
+
const preferredNetworkInConfig = (_session$networks = session.networks) == null ? void 0 : _session$networks.find(isPreferredNetwork);
|
|
3421
|
+
const isAlreadyDefaultChain = preferredNetworkInConfig == null ? void 0 : preferredNetworkInConfig.isDefaultChain;
|
|
3422
|
+
if (session.networks && preferredNetworkInConfig && !isAlreadyDefaultChain) {
|
|
3423
|
+
const updatedNetworks = session.networks.map(n => _extends({}, n, {
|
|
3424
|
+
isDefaultChain: isPreferredNetwork(n)
|
|
3425
|
+
}));
|
|
3426
|
+
session.networks = sortNetworks(updatedNetworks);
|
|
3427
|
+
session.providerCache = undefined;
|
|
3428
|
+
}
|
|
3429
|
+
}
|
|
3430
|
+
_this.useSession(session, true);
|
|
3416
3431
|
}
|
|
3417
3432
|
return session;
|
|
3418
3433
|
} catch (err) {
|
|
@@ -3557,6 +3572,8 @@ class Wallet {
|
|
|
3557
3572
|
// setup provider cache
|
|
3558
3573
|
if (session.providerCache) {
|
|
3559
3574
|
_this.transport.cachedProvider.setCache(session.providerCache);
|
|
3575
|
+
} else {
|
|
3576
|
+
_this.transport.cachedProvider.clearCache();
|
|
3560
3577
|
}
|
|
3561
3578
|
|
|
3562
3579
|
// persist
|
|
@@ -3783,7 +3800,7 @@ const initWallet = async (network, config) => {
|
|
|
3783
3800
|
walletInstance.closeWallet();
|
|
3784
3801
|
}
|
|
3785
3802
|
walletInstance = new Wallet(network, config);
|
|
3786
|
-
await walletInstance.loadSession();
|
|
3803
|
+
await walletInstance.loadSession(network);
|
|
3787
3804
|
return walletInstance;
|
|
3788
3805
|
};
|
|
3789
3806
|
const getWallet = () => {
|
|
@@ -39,7 +39,7 @@ export declare class Wallet implements WalletProvider {
|
|
|
39
39
|
private providers;
|
|
40
40
|
constructor(network?: string | number, config?: Partial<ProviderConfig>);
|
|
41
41
|
private init;
|
|
42
|
-
loadSession: () => Promise<WalletSession | undefined>;
|
|
42
|
+
loadSession: (preferredNetwork?: string | number) => Promise<WalletSession | undefined>;
|
|
43
43
|
connect: (options?: ConnectOptions) => Promise<ConnectDetails>;
|
|
44
44
|
addConnectedSite(origin: string | undefined): Promise<void>;
|
|
45
45
|
removeConnectedSite(origin: string): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsequence/provider",
|
|
3
|
-
"version": "0.43.
|
|
3
|
+
"version": "0.43.7",
|
|
4
4
|
"description": "provider sub-package for Sequence",
|
|
5
5
|
"repository": "https://github.com/0xsequence/sequence.js/tree/master/packages/provider",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"typecheck": "tsc --noEmit"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@0xsequence/abi": "^0.43.
|
|
18
|
-
"@0xsequence/auth": "^0.43.
|
|
19
|
-
"@0xsequence/config": "^0.43.
|
|
20
|
-
"@0xsequence/network": "^0.43.
|
|
21
|
-
"@0xsequence/transactions": "^0.43.
|
|
22
|
-
"@0xsequence/utils": "^0.43.
|
|
23
|
-
"@0xsequence/wallet": "^0.43.
|
|
17
|
+
"@0xsequence/abi": "^0.43.7",
|
|
18
|
+
"@0xsequence/auth": "^0.43.7",
|
|
19
|
+
"@0xsequence/config": "^0.43.7",
|
|
20
|
+
"@0xsequence/network": "^0.43.7",
|
|
21
|
+
"@0xsequence/transactions": "^0.43.7",
|
|
22
|
+
"@0xsequence/utils": "^0.43.7",
|
|
23
|
+
"@0xsequence/wallet": "^0.43.7",
|
|
24
24
|
"eventemitter2": "^6.4.5",
|
|
25
25
|
"webextension-polyfill-ts": "^0.26.0"
|
|
26
26
|
},
|
package/src/wallet.ts
CHANGED
|
@@ -15,7 +15,8 @@ import {
|
|
|
15
15
|
JsonRpcRequest,
|
|
16
16
|
findNetworkConfig,
|
|
17
17
|
updateNetworkConfig,
|
|
18
|
-
ensureValidNetworks
|
|
18
|
+
ensureValidNetworks,
|
|
19
|
+
sortNetworks
|
|
19
20
|
} from '@0xsequence/network'
|
|
20
21
|
import { WalletConfig, WalletState } from '@0xsequence/config'
|
|
21
22
|
import { logger } from '@0xsequence/utils'
|
|
@@ -248,15 +249,30 @@ export class Wallet implements WalletProvider {
|
|
|
248
249
|
})
|
|
249
250
|
}
|
|
250
251
|
|
|
251
|
-
loadSession = async (): Promise<WalletSession | undefined> => {
|
|
252
|
+
loadSession = async (preferredNetwork?: string | number): Promise<WalletSession | undefined> => {
|
|
252
253
|
const data = await LocalStorage.getInstance().getItem('@sequence.session')
|
|
253
254
|
if (!data || data === '') {
|
|
254
255
|
return undefined
|
|
255
256
|
}
|
|
257
|
+
|
|
256
258
|
try {
|
|
257
259
|
const session = JSON.parse(data) as WalletSession
|
|
258
260
|
if (session) {
|
|
259
|
-
|
|
261
|
+
// Setting preferredNetwork as default network if it's in session.networks
|
|
262
|
+
if (preferredNetwork !== undefined) {
|
|
263
|
+
const preferredNetworkIdNum = typeof preferredNetwork === 'string' ? parseInt(preferredNetwork) : preferredNetwork
|
|
264
|
+
const isPreferredNetwork = (n: NetworkConfig) => n.name === preferredNetwork || n.chainId === preferredNetworkIdNum
|
|
265
|
+
const preferredNetworkInConfig = session.networks?.find(isPreferredNetwork)
|
|
266
|
+
const isAlreadyDefaultChain = preferredNetworkInConfig?.isDefaultChain
|
|
267
|
+
|
|
268
|
+
if (session.networks && preferredNetworkInConfig && !isAlreadyDefaultChain) {
|
|
269
|
+
const updatedNetworks = session.networks.map(n => ({ ...n, isDefaultChain: isPreferredNetwork(n) }))
|
|
270
|
+
session.networks = sortNetworks(updatedNetworks)
|
|
271
|
+
session.providerCache = undefined
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
this.useSession(session, true)
|
|
260
276
|
}
|
|
261
277
|
return session
|
|
262
278
|
} catch (err) {
|
|
@@ -601,6 +617,8 @@ export class Wallet implements WalletProvider {
|
|
|
601
617
|
// setup provider cache
|
|
602
618
|
if (session.providerCache) {
|
|
603
619
|
this.transport.cachedProvider!.setCache(session.providerCache)
|
|
620
|
+
} else {
|
|
621
|
+
this.transport.cachedProvider!.clearCache()
|
|
604
622
|
}
|
|
605
623
|
|
|
606
624
|
// persist
|
|
@@ -739,7 +757,7 @@ export const initWallet = async (network?: string | number, config?: Partial<Pro
|
|
|
739
757
|
walletInstance.closeWallet()
|
|
740
758
|
}
|
|
741
759
|
walletInstance = new Wallet(network, config)
|
|
742
|
-
await walletInstance.loadSession()
|
|
760
|
+
await walletInstance.loadSession(network)
|
|
743
761
|
return walletInstance
|
|
744
762
|
}
|
|
745
763
|
|