@0xsequence/provider 1.0.1 → 1.0.2

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.
@@ -587,33 +587,24 @@ const trimEIP191Prefix = prefixedMessage => {
587
587
  return prefixRevertedMessage;
588
588
  };
589
589
  const isValidSignature = async (address, digest, sig, provider, contexts) => {
590
- const reader = new core.commons.reader.OnChainReader(provider, contexts);
590
+ const deployedContexts = core.allVersions.map(v => v.DeployedWalletContext);
591
+ const reader = new core.commons.reader.OnChainReader(provider, contexts || deployedContexts);
591
592
  return reader.isValidSignature(address, digest, sig);
592
593
  };
593
594
 
594
- // export const isValidMessageSignature = async (
595
- // address: string,
596
- // message: string | Uint8Array,
597
- // signature: string,
598
- // provider: Web3Provider | ethers.providers.Web3Provider,
599
- // chainId?: number,
600
- // walletContext?: WalletContext
601
- // ): Promise<boolean> => {
602
- // const prefixed = prefixEIP191Message(message)
603
- // const digest = encodeMessageDigest(prefixed)
604
- // return isValidSignature(address, digest, signature, provider, chainId, walletContext)
605
- // }
595
+ // Verify message signature
596
+ const isValidMessageSignature = async (address, message, signature, provider, contexts) => {
597
+ const deployedContexts = core.allVersions.map(v => v.DeployedWalletContext);
598
+ const prefixed = prefixEIP191Message(message);
599
+ const digest = utils.encodeMessageDigest(prefixed);
600
+ return isValidSignature(address, digest, signature, provider, contexts || deployedContexts);
601
+ };
606
602
 
607
- // export const isValidTypedDataSignature = (
608
- // address: string,
609
- // typedData: TypedData,
610
- // signature: string,
611
- // provider: Web3Provider | ethers.providers.Web3Provider,
612
- // chainId?: number,
613
- // walletContext?: WalletContext
614
- // ): Promise<boolean> => {
615
- // return isValidSignature(address, encodeTypedDataDigest(typedData), signature, provider, chainId, walletContext)
616
- // }
603
+ // Verify typedData signature
604
+ const isValidTypedDataSignature = (address, typedData, signature, provider, contexts) => {
605
+ const deployedContexts = core.allVersions.map(v => v.DeployedWalletContext);
606
+ return isValidSignature(address, utils.encodeTypedDataDigest(typedData), signature, provider, contexts || deployedContexts);
607
+ };
617
608
 
618
609
  // export const recoverWalletConfig = async (
619
610
  // address: string,
@@ -3924,7 +3915,9 @@ exports.initWallet = initWallet;
3924
3915
  exports.isBrowserExtension = isBrowserExtension;
3925
3916
  exports.isSequenceProvider = isSequenceProvider;
3926
3917
  exports.isUnityPlugin = isUnityPlugin;
3918
+ exports.isValidMessageSignature = isValidMessageSignature;
3927
3919
  exports.isValidSignature = isValidSignature;
3920
+ exports.isValidTypedDataSignature = isValidTypedDataSignature;
3928
3921
  exports.isWalletUpToDate = isWalletUpToDate;
3929
3922
  exports.messageToBytes = messageToBytes;
3930
3923
  exports.nextMessageIdx = nextMessageIdx;
@@ -587,33 +587,24 @@ const trimEIP191Prefix = prefixedMessage => {
587
587
  return prefixRevertedMessage;
588
588
  };
589
589
  const isValidSignature = async (address, digest, sig, provider, contexts) => {
590
- const reader = new core.commons.reader.OnChainReader(provider, contexts);
590
+ const deployedContexts = core.allVersions.map(v => v.DeployedWalletContext);
591
+ const reader = new core.commons.reader.OnChainReader(provider, contexts || deployedContexts);
591
592
  return reader.isValidSignature(address, digest, sig);
592
593
  };
593
594
 
594
- // export const isValidMessageSignature = async (
595
- // address: string,
596
- // message: string | Uint8Array,
597
- // signature: string,
598
- // provider: Web3Provider | ethers.providers.Web3Provider,
599
- // chainId?: number,
600
- // walletContext?: WalletContext
601
- // ): Promise<boolean> => {
602
- // const prefixed = prefixEIP191Message(message)
603
- // const digest = encodeMessageDigest(prefixed)
604
- // return isValidSignature(address, digest, signature, provider, chainId, walletContext)
605
- // }
595
+ // Verify message signature
596
+ const isValidMessageSignature = async (address, message, signature, provider, contexts) => {
597
+ const deployedContexts = core.allVersions.map(v => v.DeployedWalletContext);
598
+ const prefixed = prefixEIP191Message(message);
599
+ const digest = utils.encodeMessageDigest(prefixed);
600
+ return isValidSignature(address, digest, signature, provider, contexts || deployedContexts);
601
+ };
606
602
 
607
- // export const isValidTypedDataSignature = (
608
- // address: string,
609
- // typedData: TypedData,
610
- // signature: string,
611
- // provider: Web3Provider | ethers.providers.Web3Provider,
612
- // chainId?: number,
613
- // walletContext?: WalletContext
614
- // ): Promise<boolean> => {
615
- // return isValidSignature(address, encodeTypedDataDigest(typedData), signature, provider, chainId, walletContext)
616
- // }
603
+ // Verify typedData signature
604
+ const isValidTypedDataSignature = (address, typedData, signature, provider, contexts) => {
605
+ const deployedContexts = core.allVersions.map(v => v.DeployedWalletContext);
606
+ return isValidSignature(address, utils.encodeTypedDataDigest(typedData), signature, provider, contexts || deployedContexts);
607
+ };
617
608
 
618
609
  // export const recoverWalletConfig = async (
619
610
  // address: string,
@@ -3924,7 +3915,9 @@ exports.initWallet = initWallet;
3924
3915
  exports.isBrowserExtension = isBrowserExtension;
3925
3916
  exports.isSequenceProvider = isSequenceProvider;
3926
3917
  exports.isUnityPlugin = isUnityPlugin;
3918
+ exports.isValidMessageSignature = isValidMessageSignature;
3927
3919
  exports.isValidSignature = isValidSignature;
3920
+ exports.isValidTypedDataSignature = isValidTypedDataSignature;
3928
3921
  exports.isWalletUpToDate = isWalletUpToDate;
3929
3922
  exports.messageToBytes = messageToBytes;
3930
3923
  exports.nextMessageIdx = nextMessageIdx;
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter2 } from 'eventemitter2';
2
- import { logger, sanitizeNumberString, sanitizeHost, sanitizeAlphanumeric, base64EncodeObject, base64DecodeObject, shallowCopy, resolveProperties, encodeMessageDigest, encodeTypedDataDigest, getDefaultConnectionInfo } from '@0xsequence/utils';
2
+ import { logger, encodeMessageDigest, encodeTypedDataDigest, sanitizeNumberString, sanitizeHost, sanitizeAlphanumeric, base64EncodeObject, base64DecodeObject, shallowCopy, resolveProperties, getDefaultConnectionInfo } from '@0xsequence/utils';
3
3
  import { ethers, BigNumber, providers } from 'ethers';
4
- import { commons, universal } from '@0xsequence/core';
4
+ import { allVersions, commons, universal } from '@0xsequence/core';
5
5
  import { signAuthorization } from '@0xsequence/auth';
6
6
  import { getChainId, JsonRpcSender, maybeChainId, allowProviderMiddleware, networkProviderMiddleware, findNetworkConfig, CachedProvider, JsonRpcRouter, loggingProviderMiddleware, exceptionProviderMiddleware, findSupportedNetwork, sortNetworks, EagerProvider, SigningProvider, updateNetworkConfig, ensureValidNetworks } from '@0xsequence/network';
7
7
  import { Signer, resolveArrayProperties } from '@0xsequence/wallet';
@@ -583,33 +583,24 @@ const trimEIP191Prefix = prefixedMessage => {
583
583
  return prefixRevertedMessage;
584
584
  };
585
585
  const isValidSignature = async (address, digest, sig, provider, contexts) => {
586
- const reader = new commons.reader.OnChainReader(provider, contexts);
586
+ const deployedContexts = allVersions.map(v => v.DeployedWalletContext);
587
+ const reader = new commons.reader.OnChainReader(provider, contexts || deployedContexts);
587
588
  return reader.isValidSignature(address, digest, sig);
588
589
  };
589
590
 
590
- // export const isValidMessageSignature = async (
591
- // address: string,
592
- // message: string | Uint8Array,
593
- // signature: string,
594
- // provider: Web3Provider | ethers.providers.Web3Provider,
595
- // chainId?: number,
596
- // walletContext?: WalletContext
597
- // ): Promise<boolean> => {
598
- // const prefixed = prefixEIP191Message(message)
599
- // const digest = encodeMessageDigest(prefixed)
600
- // return isValidSignature(address, digest, signature, provider, chainId, walletContext)
601
- // }
591
+ // Verify message signature
592
+ const isValidMessageSignature = async (address, message, signature, provider, contexts) => {
593
+ const deployedContexts = allVersions.map(v => v.DeployedWalletContext);
594
+ const prefixed = prefixEIP191Message(message);
595
+ const digest = encodeMessageDigest(prefixed);
596
+ return isValidSignature(address, digest, signature, provider, contexts || deployedContexts);
597
+ };
602
598
 
603
- // export const isValidTypedDataSignature = (
604
- // address: string,
605
- // typedData: TypedData,
606
- // signature: string,
607
- // provider: Web3Provider | ethers.providers.Web3Provider,
608
- // chainId?: number,
609
- // walletContext?: WalletContext
610
- // ): Promise<boolean> => {
611
- // return isValidSignature(address, encodeTypedDataDigest(typedData), signature, provider, chainId, walletContext)
612
- // }
599
+ // Verify typedData signature
600
+ const isValidTypedDataSignature = (address, typedData, signature, provider, contexts) => {
601
+ const deployedContexts = allVersions.map(v => v.DeployedWalletContext);
602
+ return isValidSignature(address, encodeTypedDataDigest(typedData), signature, provider, contexts || deployedContexts);
603
+ };
613
604
 
614
605
  // export const recoverWalletConfig = async (
615
606
  // address: string,
@@ -3884,4 +3875,4 @@ const getWallet = () => {
3884
3875
  return walletInstance;
3885
3876
  };
3886
3877
 
3887
- export { BaseInjectedTransport, BaseProviderTransport, BaseWalletTransport, CHANNEL_ID, DefaultProviderConfig, ErrSignedInRequired, EventType, ExtensionMessageHandler, ExtensionMessageProvider, InitState, LocalStorage, LocalStore, LocalWeb3Provider, MuxMessageProvider, OpenState, PROVIDER_OPEN_TIMEOUT, ProviderError, ProxyMessageChannel, ProxyMessageChannelPort, ProxyMessageHandler, ProxyMessageProvider, SESSION_LOCALSTORE_KEY, UnrealMessageHandler, UnrealMessageProvider, Wallet, WalletRequestHandler, Web3Provider, Web3Signer, WindowMessageHandler, WindowMessageProvider, WindowSessionParams, getWallet, initWallet, isBrowserExtension, isSequenceProvider, isUnityPlugin, isValidSignature, isWalletUpToDate, messageToBytes, nextMessageIdx, prefixEIP191Message, trimEIP191Prefix, unregisterWallet };
3878
+ export { BaseInjectedTransport, BaseProviderTransport, BaseWalletTransport, CHANNEL_ID, DefaultProviderConfig, ErrSignedInRequired, EventType, ExtensionMessageHandler, ExtensionMessageProvider, InitState, LocalStorage, LocalStore, LocalWeb3Provider, MuxMessageProvider, OpenState, PROVIDER_OPEN_TIMEOUT, ProviderError, ProxyMessageChannel, ProxyMessageChannelPort, ProxyMessageHandler, ProxyMessageProvider, SESSION_LOCALSTORE_KEY, UnrealMessageHandler, UnrealMessageProvider, Wallet, WalletRequestHandler, Web3Provider, Web3Signer, WindowMessageHandler, WindowMessageProvider, WindowSessionParams, getWallet, initWallet, isBrowserExtension, isSequenceProvider, isUnityPlugin, isValidMessageSignature, isValidSignature, isValidTypedDataSignature, isWalletUpToDate, messageToBytes, nextMessageIdx, prefixEIP191Message, trimEIP191Prefix, unregisterWallet };
@@ -3,12 +3,19 @@ import { ethers, BytesLike } from 'ethers';
3
3
  import { Web3Provider } from './provider';
4
4
  import { AccountStatus } from '@0xsequence/account';
5
5
  import { commons } from '@0xsequence/core';
6
+ import { TypedData } from '@0xsequence/utils';
6
7
  export declare const messageToBytes: (message: BytesLike) => Uint8Array;
7
8
  export declare const prefixEIP191Message: (message: BytesLike) => Uint8Array;
8
9
  export declare const trimEIP191Prefix: (prefixedMessage: Uint8Array) => Uint8Array;
9
- export declare const isValidSignature: (address: string, digest: Uint8Array, sig: string, provider: Web3Provider | ethers.providers.Web3Provider, contexts: {
10
+ export declare const isValidSignature: (address: string, digest: Uint8Array, sig: string, provider: Web3Provider | ethers.providers.Web3Provider, contexts?: {
10
11
  [key: number]: commons.context.WalletContext;
11
- }) => Promise<boolean>;
12
+ } | undefined) => Promise<boolean>;
13
+ export declare const isValidMessageSignature: (address: string, message: string | Uint8Array, signature: string, provider: Web3Provider | ethers.providers.Web3Provider, contexts?: {
14
+ [key: number]: commons.context.WalletContext;
15
+ } | undefined) => Promise<boolean>;
16
+ export declare const isValidTypedDataSignature: (address: string, typedData: TypedData, signature: string, provider: Web3Provider | ethers.providers.Web3Provider, contexts?: {
17
+ [key: number]: commons.context.WalletContext;
18
+ } | undefined) => Promise<boolean>;
12
19
  export declare const isBrowserExtension: () => boolean;
13
20
  export declare const isUnityPlugin: () => boolean;
14
21
  export declare const isWalletUpToDate: (status: AccountStatus) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsequence/provider",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
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",
@@ -11,15 +11,15 @@
11
11
  "dependencies": {
12
12
  "eventemitter2": "^6.4.5",
13
13
  "webextension-polyfill": "^0.10.0",
14
- "@0xsequence/abi": "1.0.1",
15
- "@0xsequence/account": "1.0.1",
16
- "@0xsequence/auth": "1.0.1",
17
- "@0xsequence/core": "1.0.1",
18
- "@0xsequence/migration": "1.0.1",
19
- "@0xsequence/network": "1.0.1",
20
- "@0xsequence/relayer": "1.0.1",
21
- "@0xsequence/utils": "1.0.1",
22
- "@0xsequence/wallet": "1.0.1"
14
+ "@0xsequence/abi": "1.0.2",
15
+ "@0xsequence/account": "1.0.2",
16
+ "@0xsequence/auth": "1.0.2",
17
+ "@0xsequence/core": "1.0.2",
18
+ "@0xsequence/migration": "1.0.2",
19
+ "@0xsequence/network": "1.0.2",
20
+ "@0xsequence/relayer": "1.0.2",
21
+ "@0xsequence/wallet": "1.0.2",
22
+ "@0xsequence/utils": "1.0.2"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "ethers": ">=5.5 < 6"
package/src/utils.ts CHANGED
@@ -2,7 +2,8 @@ import { ethers, BytesLike } from 'ethers'
2
2
  import { Web3Provider } from './provider'
3
3
  import { messageIsExemptFromEIP191Prefix } from './eip191exceptions'
4
4
  import { AccountStatus } from '@0xsequence/account'
5
- import { commons } from '@0xsequence/core'
5
+ import { commons, allVersions } from '@0xsequence/core'
6
+ import { encodeMessageDigest, TypedData, encodeTypedDataDigest } from '@0xsequence/utils'
6
7
 
7
8
  const eip191prefix = ethers.utils.toUtf8Bytes('\x19Ethereum Signed Message:\n')
8
9
 
@@ -68,35 +69,38 @@ export const isValidSignature = async (
68
69
  digest: Uint8Array,
69
70
  sig: string,
70
71
  provider: Web3Provider | ethers.providers.Web3Provider,
71
- contexts: { [key: number]: commons.context.WalletContext }
72
+ contexts?: { [key: number]: commons.context.WalletContext }
72
73
  ): Promise<boolean> => {
73
- const reader = new commons.reader.OnChainReader(provider, contexts)
74
+ const deployedContexts = allVersions.map(v => v.DeployedWalletContext)
75
+ const reader = new commons.reader.OnChainReader(provider, contexts || deployedContexts)
74
76
  return reader.isValidSignature(address, digest, sig)
75
77
  }
76
78
 
77
- // export const isValidMessageSignature = async (
78
- // address: string,
79
- // message: string | Uint8Array,
80
- // signature: string,
81
- // provider: Web3Provider | ethers.providers.Web3Provider,
82
- // chainId?: number,
83
- // walletContext?: WalletContext
84
- // ): Promise<boolean> => {
85
- // const prefixed = prefixEIP191Message(message)
86
- // const digest = encodeMessageDigest(prefixed)
87
- // return isValidSignature(address, digest, signature, provider, chainId, walletContext)
88
- // }
79
+ // Verify message signature
80
+ export const isValidMessageSignature = async (
81
+ address: string,
82
+ message: string | Uint8Array,
83
+ signature: string,
84
+ provider: Web3Provider | ethers.providers.Web3Provider,
85
+ contexts?: { [key: number]: commons.context.WalletContext }
86
+ ): Promise<boolean> => {
87
+ const deployedContexts = allVersions.map(v => v.DeployedWalletContext)
88
+ const prefixed = prefixEIP191Message(message)
89
+ const digest = encodeMessageDigest(prefixed)
90
+ return isValidSignature(address, digest, signature, provider, contexts || deployedContexts)
91
+ }
89
92
 
90
- // export const isValidTypedDataSignature = (
91
- // address: string,
92
- // typedData: TypedData,
93
- // signature: string,
94
- // provider: Web3Provider | ethers.providers.Web3Provider,
95
- // chainId?: number,
96
- // walletContext?: WalletContext
97
- // ): Promise<boolean> => {
98
- // return isValidSignature(address, encodeTypedDataDigest(typedData), signature, provider, chainId, walletContext)
99
- // }
93
+ // Verify typedData signature
94
+ export const isValidTypedDataSignature = (
95
+ address: string,
96
+ typedData: TypedData,
97
+ signature: string,
98
+ provider: Web3Provider | ethers.providers.Web3Provider,
99
+ contexts?: { [key: number]: commons.context.WalletContext }
100
+ ): Promise<boolean> => {
101
+ const deployedContexts = allVersions.map(v => v.DeployedWalletContext)
102
+ return isValidSignature(address, encodeTypedDataDigest(typedData), signature, provider, contexts || deployedContexts)
103
+ }
100
104
 
101
105
  // export const recoverWalletConfig = async (
102
106
  // address: string,