@0xsequence/provider 2.3.19 → 2.3.20

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.
Files changed (36) hide show
  1. package/dist/0xsequence-provider.cjs.d.ts +2 -2
  2. package/dist/0xsequence-provider.cjs.dev.js +4347 -0
  3. package/dist/0xsequence-provider.cjs.js +6 -15
  4. package/dist/0xsequence-provider.cjs.prod.js +4347 -0
  5. package/dist/0xsequence-provider.esm.js +4290 -0
  6. package/dist/declarations/src/analytics.d.ts +13 -0
  7. package/dist/declarations/src/client.d.ts +92 -0
  8. package/dist/declarations/src/index.d.ts +9 -0
  9. package/dist/declarations/src/init.d.ts +36 -0
  10. package/dist/declarations/src/provider.d.ts +141 -0
  11. package/dist/declarations/src/signer.d.ts +88 -0
  12. package/dist/declarations/src/transactions.d.ts +2 -0
  13. package/dist/declarations/src/transports/base-provider-transport.d.ts +49 -0
  14. package/dist/declarations/src/transports/base-wallet-transport.d.ts +43 -0
  15. package/dist/declarations/src/transports/extension-transport/base-injected-transport.d.ts +17 -0
  16. package/dist/declarations/src/transports/extension-transport/extension-message-handler.d.ts +12 -0
  17. package/dist/declarations/src/transports/extension-transport/extension-message-provider.d.ts +11 -0
  18. package/dist/declarations/src/transports/extension-transport/index.d.ts +3 -0
  19. package/dist/declarations/src/transports/index.d.ts +8 -0
  20. package/dist/declarations/src/transports/mux-transport/index.d.ts +1 -0
  21. package/dist/declarations/src/transports/mux-transport/mux-message-provider.d.ts +47 -0
  22. package/dist/declarations/src/transports/proxy-transport/index.d.ts +3 -0
  23. package/dist/declarations/src/transports/proxy-transport/proxy-message-channel.d.ts +15 -0
  24. package/dist/declarations/src/transports/proxy-transport/proxy-message-handler.d.ts +12 -0
  25. package/dist/declarations/src/transports/proxy-transport/proxy-message-provider.d.ts +12 -0
  26. package/dist/declarations/src/transports/unreal-transport/index.d.ts +2 -0
  27. package/dist/declarations/src/transports/unreal-transport/unreal-message-handler.d.ts +14 -0
  28. package/dist/declarations/src/transports/unreal-transport/unreal-message-provider.d.ts +15 -0
  29. package/dist/declarations/src/transports/wallet-request-handler.d.ts +64 -0
  30. package/dist/declarations/src/transports/window-transport/index.d.ts +2 -0
  31. package/dist/declarations/src/transports/window-transport/window-message-handler.d.ts +15 -0
  32. package/dist/declarations/src/transports/window-transport/window-message-provider.d.ts +13 -0
  33. package/dist/declarations/src/types.d.ts +262 -0
  34. package/dist/declarations/src/utils/index.d.ts +18 -0
  35. package/dist/declarations/src/utils.d.ts +37 -0
  36. package/package.json +10 -10
@@ -0,0 +1,14 @@
1
+ import { ProviderMessage } from "../../types.js";
2
+ import { WalletRequestHandler } from "../wallet-request-handler.js";
3
+ import { BaseWalletTransport } from "../base-wallet-transport.js";
4
+ /**
5
+ * Initialized on Wallet side
6
+ */
7
+ export declare class UnrealMessageHandler extends BaseWalletTransport {
8
+ constructor(walletRequestHandler: WalletRequestHandler);
9
+ register(windowHref?: string | URL): Promise<void>;
10
+ unregister(): void;
11
+ private onMessageFromUnreal;
12
+ sendMessage(message: ProviderMessage<any>): void;
13
+ private getUnrealTransportSession;
14
+ }
@@ -0,0 +1,15 @@
1
+ import { OpenWalletIntent, ProviderMessage } from "../../types.js";
2
+ import { BaseProviderTransport } from "../base-provider-transport.js";
3
+ /**
4
+ * Initialized on dApp side
5
+ */
6
+ export declare class UnrealMessageProvider extends BaseProviderTransport {
7
+ private walletURL;
8
+ constructor(walletAppURL: string);
9
+ register: () => void;
10
+ unregister: () => void;
11
+ openWallet: (path?: string, intent?: OpenWalletIntent, networkId?: string | number) => void;
12
+ closeWallet(): void;
13
+ private onUnrealCallback;
14
+ sendMessage(message: ProviderMessage<unknown>): void;
15
+ }
@@ -0,0 +1,64 @@
1
+ import { Account } from '@0xsequence/account';
2
+ import { commons } from '@0xsequence/core';
3
+ import { ChainIdLike, NetworkConfig, EIP1193Provider } from '@0xsequence/network';
4
+ import { ConnectDetails, ConnectOptions, MessageToSign, NetworkedConnectOptions, OpenWalletIntent, PromptConnectDetails, ProviderEventTypes, ProviderMessageRequest, ProviderMessageRequestHandler, ProviderMessageResponse, ProviderRpcError, WalletSession } from "../types.js";
5
+ export interface WalletSignInOptions {
6
+ connect?: boolean;
7
+ defaultNetworkId?: number;
8
+ }
9
+ export declare class WalletRequestHandler implements EIP1193Provider, ProviderMessageRequestHandler {
10
+ private account;
11
+ private signerReadyCallbacks;
12
+ private prompter;
13
+ private networks;
14
+ private _openIntent?;
15
+ private _connectOptions?;
16
+ private events;
17
+ onConnectOptionsChange: ((connectOptions: ConnectOptions | undefined) => void) | undefined;
18
+ constructor(account: Account | null | undefined, prompter: WalletUserPrompter | null, networks: NetworkConfig[]);
19
+ defaultChainId(): number;
20
+ signIn(account: Account | null, options?: WalletSignInOptions): Promise<void>;
21
+ signOut(): void;
22
+ signerReset(): void;
23
+ signerReady(timeout?: number): Promise<void>;
24
+ connect(options?: NetworkedConnectOptions): Promise<ConnectDetails>;
25
+ promptConnect: (options?: NetworkedConnectOptions) => Promise<ConnectDetails>;
26
+ sendMessageRequest(message: ProviderMessageRequest): Promise<ProviderMessageResponse>;
27
+ request(request: {
28
+ method: string;
29
+ params?: any[];
30
+ chainId?: number;
31
+ origin?: string;
32
+ projectAccessKey?: string;
33
+ }): Promise<any>;
34
+ on<K extends keyof ProviderEventTypes>(event: K, fn: ProviderEventTypes[K]): void;
35
+ once<K extends keyof ProviderEventTypes>(event: K, fn: ProviderEventTypes[K]): void;
36
+ getAddress(): Promise<string>;
37
+ get openIntent(): OpenWalletIntent | undefined;
38
+ setOpenIntent(intent: OpenWalletIntent | undefined): void;
39
+ get connectOptions(): ConnectOptions | undefined;
40
+ setConnectOptions(options: ConnectOptions | undefined): void;
41
+ setDefaultChainId(chainId: number): Promise<number>;
42
+ getNetworks(jsonRpcResponse?: boolean): Promise<NetworkConfig[]>;
43
+ walletSession(networkId?: ChainIdLike): WalletSession | undefined;
44
+ notifyConnect(connectDetails: ConnectDetails, origin?: string): void;
45
+ notifyDisconnect(origin?: string): void;
46
+ notifyChainChanged(chainId: number, origin?: string): void;
47
+ notifyNetworks(networks?: NetworkConfig[]): Promise<void>;
48
+ notifyWalletContext(): Promise<void>;
49
+ notifyClose(error?: ProviderRpcError): void;
50
+ isSignedIn: () => Promise<boolean>;
51
+ getAccount: () => Promise<Account | null>;
52
+ setAccount(account: Account | null | undefined): void;
53
+ private handleConfirmWalletDeployPrompt;
54
+ }
55
+ export interface WalletUserPrompter {
56
+ getDefaultChainId(): number;
57
+ promptConnect(connectOptions?: ConnectOptions): Promise<PromptConnectDetails>;
58
+ promptSignInConnect(connectOptions?: ConnectOptions): Promise<PromptConnectDetails>;
59
+ promptSignMessage(message: MessageToSign, origin?: string, projectAccessKey?: string): Promise<string>;
60
+ promptSignTransaction(txn: commons.transaction.Transactionish, chainId?: number, origin?: string, projectAccessKey?: string): Promise<string>;
61
+ promptSendTransaction(txn: commons.transaction.Transactionish, chainId?: number, origin?: string, projectAccessKey?: string): Promise<string>;
62
+ promptConfirmWalletDeploy(chainId: number, origin?: string): Promise<boolean>;
63
+ promptChangeNetwork(chainId: number): Promise<boolean>;
64
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./window-message-provider.js";
2
+ export * from "./window-message-handler.js";
@@ -0,0 +1,15 @@
1
+ import { ProviderMessage } from "../../types.js";
2
+ import { WalletRequestHandler } from "../wallet-request-handler.js";
3
+ import { BaseWalletTransport } from "../base-wallet-transport.js";
4
+ export declare class WindowMessageHandler extends BaseWalletTransport {
5
+ protected parentWindow: Window;
6
+ private _isPopup;
7
+ constructor(walletRequestHandler: WalletRequestHandler);
8
+ register(windowHref?: any): Promise<void>;
9
+ unregister(): void;
10
+ private onWindowEvent;
11
+ sendMessage(message: ProviderMessage<any>): void;
12
+ get isPopup(): boolean;
13
+ private postMessage;
14
+ private getWindowTransportSession;
15
+ }
@@ -0,0 +1,13 @@
1
+ import { OpenWalletIntent, ProviderMessage } from "../../types.js";
2
+ import { BaseProviderTransport } from "../base-provider-transport.js";
3
+ export declare class WindowMessageProvider extends BaseProviderTransport {
4
+ private walletURL;
5
+ private walletWindow;
6
+ constructor(walletAppURL: string, projectAccessKey?: string);
7
+ register: () => void;
8
+ unregister: () => void;
9
+ openWallet: (path?: string, intent?: OpenWalletIntent, networkId?: string | number) => void;
10
+ closeWallet(): void;
11
+ private onWindowEvent;
12
+ sendMessage(message: ProviderMessage<any>): void;
13
+ }
@@ -0,0 +1,262 @@
1
+ import { ETHAuthProof as AuthETHAuthProof } from '@0xsequence/auth';
2
+ import { commons } from '@0xsequence/core';
3
+ import { ChainIdLike, EIP1193Provider, JsonRpcRequest, JsonRpcResponse, NetworkConfig, JsonRpcErrorPayload } from '@0xsequence/network';
4
+ import { TypedData } from '@0xsequence/utils';
5
+ export interface ProviderTransport extends EIP1193Provider, ProviderMessageTransport, ProviderMessageRequestHandler {
6
+ register(): void;
7
+ unregister(): void;
8
+ openWallet(path?: string, intent?: OpenWalletIntent, networkId?: string | number): void;
9
+ closeWallet(): void;
10
+ isOpened(): boolean;
11
+ isConnected(): boolean;
12
+ on<K extends keyof ProviderEventTypes>(event: K, fn: ProviderEventTypes[K]): void;
13
+ once<K extends keyof ProviderEventTypes>(event: K, fn: ProviderEventTypes[K]): void;
14
+ emit<K extends keyof ProviderEventTypes>(event: K, ...args: Parameters<ProviderEventTypes[K]>): boolean;
15
+ waitUntilOpened(): Promise<WalletSession | undefined>;
16
+ waitUntilConnected(): Promise<ConnectDetails>;
17
+ }
18
+ export declare function isProviderTransport(transport: any): transport is ProviderTransport;
19
+ export interface WalletTransport extends EIP1193Provider, ProviderMessageTransport, ProviderMessageRequestHandler {
20
+ register(): void;
21
+ unregister(): void;
22
+ notifyOpen(openInfo: {
23
+ chainId?: string;
24
+ sessionId?: string;
25
+ session?: WalletSession;
26
+ error?: string;
27
+ }): void;
28
+ notifyClose(error?: ProviderRpcError): void;
29
+ notifyConnect(connectDetails: ConnectDetails): void;
30
+ notifyAccountsChanged(accounts: string[]): void;
31
+ notifyChainChanged(chainIdHex: string): void;
32
+ notifyNetworks(networks: NetworkConfig[]): void;
33
+ }
34
+ export interface ProviderMessage<T> {
35
+ idx: number;
36
+ type: string;
37
+ data: T;
38
+ chainId?: number;
39
+ origin?: string;
40
+ clientVersion: string;
41
+ projectAccessKey?: string;
42
+ }
43
+ export type ProviderMessageRequest = ProviderMessage<JsonRpcRequest>;
44
+ export type ProviderMessageResponse = ProviderMessage<JsonRpcResponse | any>;
45
+ export type ProviderMessageResponseCallback = (error?: ProviderRpcError, response?: ProviderMessageResponse) => void;
46
+ export type ProviderRpcError = JsonRpcErrorPayload;
47
+ export interface ProviderMessageRequestHandler {
48
+ sendMessageRequest(message: ProviderMessageRequest): Promise<ProviderMessageResponse>;
49
+ }
50
+ export interface ProviderMessageTransport {
51
+ handleMessage(message: ProviderMessage<any>): void;
52
+ sendMessage(message: ProviderMessage<any>): void;
53
+ }
54
+ export type WindowSessionParam = 'sid' | 'net' | 'intent';
55
+ export interface WindowSessionParams extends URLSearchParams {
56
+ get(name: WindowSessionParam): string | null;
57
+ set(name: WindowSessionParam, value: string): void;
58
+ }
59
+ export declare class WindowSessionParams extends URLSearchParams {
60
+ static new(init?: Record<WindowSessionParam, string> | string): WindowSessionParams;
61
+ }
62
+ export interface TransportSession {
63
+ sessionId?: string | null;
64
+ networkId?: string | number | null;
65
+ intent?: OpenWalletIntent;
66
+ }
67
+ export declare enum EventType {
68
+ OPEN = "open",
69
+ CLOSE = "close",
70
+ MESSAGE = "message",
71
+ CONNECT = "connect",
72
+ DISCONNECT = "disconnect",
73
+ ACCOUNTS_CHANGED = "accountsChanged",
74
+ CHAIN_CHANGED = "chainChanged",
75
+ NETWORKS = "networks",
76
+ WALLET_CONTEXT = "walletContext",
77
+ INIT = "init",
78
+ DEBUG = "_debug"
79
+ }
80
+ export interface WalletEventTypes {
81
+ open: (openInfo: {
82
+ chainId?: string;
83
+ sessionId?: string;
84
+ session?: WalletSession;
85
+ error?: string;
86
+ }) => void;
87
+ close: (error?: ProviderRpcError) => void;
88
+ connect: (connectDetails: ConnectDetails) => void;
89
+ disconnect: (error?: ProviderRpcError, origin?: string) => void;
90
+ accountsChanged: (accounts: string[], origin?: string) => void;
91
+ chainChanged: (chainIdHex: string, origin?: string) => void;
92
+ networks: (networks: NetworkConfig[]) => void;
93
+ walletContext: (walletContext: commons.context.VersionedContext) => void;
94
+ }
95
+ export interface ProviderEventTypes extends WalletEventTypes {
96
+ message: (message: ProviderMessageResponse) => void;
97
+ }
98
+ export declare enum OpenState {
99
+ CLOSED = 0,
100
+ OPENING = 1,
101
+ OPENED = 2
102
+ }
103
+ export declare enum InitState {
104
+ NIL = 0,
105
+ SENT_NONCE = 1,
106
+ OK = 2
107
+ }
108
+ export interface ConnectOptions {
109
+ /** app name of the dapp which will be announced to user on connect screen */
110
+ app: string;
111
+ /** custom protocol for auth redirect (unity/unreal) */
112
+ appProtocol?: string;
113
+ /** origin hint of the dapp's host opening the wallet. This value will automatically
114
+ * be determined and verified for integrity, and can be omitted. */
115
+ origin?: string;
116
+ /** access key for the project that can be obtained from Sequence Builder on sequence.build.
117
+ * This value will be automatically populated using the key passed in initWallet. */
118
+ projectAccessKey?: string;
119
+ /** expiry number (in seconds) that is used for ETHAuth proof. Default is 1 week in seconds. */
120
+ expiry?: number;
121
+ /** authorize will perform an ETHAuth eip712 signing and return the proof to the dapp. */
122
+ authorize?: boolean;
123
+ /** authorizeNonce is an optional number to be passed as ETHAuth's nonce claim for replay protection. **/
124
+ authorizeNonce?: number;
125
+ /** authorizeVersion is the version of the SDK that will validate the ETHAuth proof. */
126
+ authorizeVersion?: number;
127
+ /** askForEmail will prompt to give permission to the dapp to access email address */
128
+ askForEmail?: boolean;
129
+ /** refresh flag will force a full re-connect (ie. disconnect then connect again) */
130
+ refresh?: boolean;
131
+ /** keepWalletOpened will keep the wallet window opened after connecting. The default
132
+ * is to automatically close the wallet after connecting. */
133
+ keepWalletOpened?: boolean;
134
+ /** clientVersion is the sequence.js version of the dapp client. */
135
+ clientVersion?: string;
136
+ /** Options to further customize the wallet experience. */
137
+ settings?: Settings;
138
+ }
139
+ export interface NetworkedConnectOptions extends ConnectOptions {
140
+ /** chainId is the chainId to connect to. If not specified, the default chainId
141
+ * will be used. This does not define a default chain id, it is only used for the connect
142
+ * authorization signature. */
143
+ networkId?: string | number;
144
+ }
145
+ /** Options to further customize the wallet experience. */
146
+ export interface Settings {
147
+ /** Specify a wallet theme. `light` and `dark` are the main themes, to use other available
148
+ * themes, you can use the camel case version of the theme names in the wallet settings.
149
+ * For example: "Blue Dark" on wallet UI can be passed as "blueDark".
150
+ * Note that this setting will not be persisted, use wallet.open with 'openWithOptions' intent
151
+ * to set when you open the wallet for user. */
152
+ theme?: ThemeOption;
153
+ /** Specify a banner image. This image, if provided, will be displayed on the wallet during
154
+ * the connect/authorize process */
155
+ bannerUrl?: string;
156
+ bannerSize?: BannerSize;
157
+ /** Specify payment providers to use. If not specified,
158
+ * all available payment providers will be enabled.
159
+ * Note that this setting will not be persisted, use wallet.open with 'openWithOptions' intent
160
+ * to set when you open the wallet for user. */
161
+ includedPaymentProviders?: PaymentProviderOption[];
162
+ /** Specify a default currency to use with payment providers.
163
+ * If not specified, the default is USDC.
164
+ * Note that this setting will not be persisted, use wallet.open with 'openWithOptions' intent
165
+ * to set when you open the wallet for user. */
166
+ defaultFundingCurrency?: CurrencyOption;
167
+ /** Specify default purchase amount as an integer, for prefilling the funding amount.
168
+ * If not specified, the default is 100.
169
+ * Note that this setting will not be persisted, use wallet.open with 'openWithOptions' intent
170
+ * to set when you open the wallet for user. */
171
+ defaultPurchaseAmount?: number;
172
+ /** If true, lockFundingCurrencyToDefault disables picking any currency provided by payment
173
+ * providers other than the defaultFundingCurrency.
174
+ * If false, it allows picking any currency provided by payment providers.
175
+ * The default is true.
176
+ * Note that this setting will not be persisted, use wallet.open with 'openWithOptions' intent
177
+ * to set when you open the wallet for user. */
178
+ lockFundingCurrencyToDefault?: boolean;
179
+ /** Specify an auth provider to allow dapp to specify ahead of time which auth method to redirect to.
180
+ * Will be ignored if user is already signed in.
181
+ */
182
+ signInWith?: SignInOption;
183
+ /** Specify an email address to allow user automatically sign in with the email option.
184
+ * Will be ignored if user is already signed in.
185
+ */
186
+ signInWithEmail?: string;
187
+ /** Specify which sign in options are allowed.
188
+ * Will be ignored if user is already signed in.
189
+ */
190
+ signInOptions?: SignInOption[];
191
+ /** Specify auxiliary data
192
+ */
193
+ aux?: any;
194
+ }
195
+ /** light and dark are the main themes, to use other themes in wallet settings,
196
+ * you can use the camel case version of the name in the wallet settings.
197
+ * For example: "Blue Dark" on wallet UI can be passed as "blueDark" */
198
+ export type ThemeOption = 'light' | 'dark' | string;
199
+ export type PaymentProviderOption = 'ramp' | 'moonpay' | 'transak' | 'onmeta' | 'paytrie' | 'sardine';
200
+ export type CurrencyOption = 'usdc' | 'eth' | 'matic';
201
+ export type SignInOption = 'email' | 'google' | 'apple' | 'facebook' | 'discord' | 'twitch';
202
+ export type BannerSize = 'small' | 'medium';
203
+ export interface ConnectDetails {
204
+ chainId?: string;
205
+ error?: string;
206
+ connected: boolean;
207
+ session?: WalletSession;
208
+ proof?: ETHAuthProof;
209
+ email?: string;
210
+ }
211
+ export type PromptConnectDetails = Pick<ConnectDetails, 'chainId' | 'error' | 'connected' | 'proof' | 'email'>;
212
+ export type OpenWalletIntent = {
213
+ type: 'connect';
214
+ options?: NetworkedConnectOptions;
215
+ } | {
216
+ type: 'openWithOptions';
217
+ options?: ConnectOptions;
218
+ } | {
219
+ type: 'jsonRpcRequest';
220
+ method: string;
221
+ };
222
+ export interface MessageToSign {
223
+ message?: Uint8Array;
224
+ typedData?: TypedData;
225
+ chainId?: number;
226
+ eip6492?: boolean;
227
+ }
228
+ export type ETHAuthProof = AuthETHAuthProof;
229
+ export interface WalletSession {
230
+ walletContext?: commons.context.VersionedContext;
231
+ accountAddress?: string;
232
+ networks?: NetworkConfig[];
233
+ }
234
+ export declare class ProviderError extends Error {
235
+ constructor(message?: string);
236
+ }
237
+ export declare const ErrSignedInRequired: ProviderError;
238
+ export interface TypedEventEmitter<Events> {
239
+ addListener<E extends keyof Events>(event: E, listener: Events[E]): this;
240
+ on<E extends keyof Events>(event: E, listener: Events[E]): this;
241
+ once<E extends keyof Events>(event: E, listener: Events[E]): this;
242
+ prependListener<E extends keyof Events>(event: E, listener: Events[E]): this;
243
+ prependOnceListener<E extends keyof Events>(event: E, listener: Events[E]): this;
244
+ off<E extends keyof Events>(event: E, listener: Events[E]): this;
245
+ removeAllListeners<E extends keyof Events>(event?: E): this;
246
+ removeListener<E extends keyof Events>(event: E, listener: Events[E]): this;
247
+ emit<E extends keyof Events>(event: E, ...args: Arguments<Events[E]>): boolean;
248
+ eventNames(): (keyof Events | string | symbol)[];
249
+ listeners<E extends keyof Events>(event: E): Function[];
250
+ listenerCount<E extends keyof Events>(event: E): number;
251
+ }
252
+ type Arguments<T> = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T];
253
+ export type OptionalChainIdLike = {
254
+ chainId?: ChainIdLike;
255
+ } | undefined;
256
+ export type OptionalChainId = {
257
+ chainId?: number;
258
+ } | undefined;
259
+ export type OptionalEIP6492 = {
260
+ eip6492?: boolean;
261
+ } | undefined;
262
+ export {};
@@ -0,0 +1,18 @@
1
+ import { ethers } from 'ethers';
2
+ import { ChainIdLike } from '@0xsequence/network';
3
+ import { TypedData } from '@0xsequence/utils';
4
+ import { SequenceSigner } from "../signer.js";
5
+ /**
6
+ * This class is redundant with the SequenceSigner class, but it is here for now to
7
+ * maintain compatibility with the old wallet API. Eventually we should move these
8
+ * methods to the SequenceSigner class and deprecate this class.
9
+ */
10
+ export declare class WalletUtils {
11
+ signer: SequenceSigner;
12
+ constructor(signer: SequenceSigner);
13
+ signMessage(message: ethers.BytesLike, chainId?: ChainIdLike, eip6492?: boolean): Promise<string>;
14
+ signTypedData(domain: ethers.TypedDataDomain, types: Record<string, Array<ethers.TypedDataField>>, message: Record<string, any>, chainId?: ChainIdLike, eip6492?: boolean): Promise<string>;
15
+ isValidSignature(address: string, digest: Uint8Array, signature: string, chainId: number): Promise<boolean>;
16
+ isValidMessageSignature(address: string, message: string | Uint8Array, signature: string, chainId: number): Promise<boolean>;
17
+ isValidTypedDataSignature(address: string, typedData: TypedData, signature: string, chainId: number): Promise<boolean>;
18
+ }
@@ -0,0 +1,37 @@
1
+ import { ethers } from 'ethers';
2
+ import { AccountStatus } from '@0xsequence/account';
3
+ import { TypedData } from '@0xsequence/utils';
4
+ export declare const messageToBytes: (message: ethers.BytesLike) => Uint8Array;
5
+ export declare const prefixEIP191Message: (message: ethers.BytesLike) => Uint8Array;
6
+ export declare const trimEIP191Prefix: (prefixedMessage: Uint8Array) => Uint8Array;
7
+ export declare const isValidSignature: (address: string, digest: Uint8Array, sig: string, provider: ethers.Provider) => Promise<boolean>;
8
+ export declare const isValidMessageSignature: (address: string, message: string | Uint8Array, signature: string, provider: ethers.Provider) => Promise<boolean>;
9
+ export declare const isValidTypedDataSignature: (address: string, typedData: TypedData, signature: string, provider: ethers.Provider) => Promise<boolean>;
10
+ export declare const isBrowserExtension: () => boolean;
11
+ export declare const isUnityPlugin: () => boolean;
12
+ export declare const isWalletUpToDate: (status: AccountStatus) => boolean;
13
+ export interface ItemStore {
14
+ getItem(key: string): string | null;
15
+ setItem(key: string, value: string): void;
16
+ removeItem(key: string): void;
17
+ onItemChange(key: string, cb: (value: string | null) => void): () => void;
18
+ }
19
+ export declare class MemoryItemStore implements ItemStore {
20
+ private callbacks;
21
+ private store;
22
+ getItem(key: string): string | null;
23
+ setItem(key: string, value: string): void;
24
+ removeItem(key: string): void;
25
+ onItemChange(key: string, cb: (value: string | null) => void): () => void;
26
+ }
27
+ export declare class LocalStorage implements ItemStore {
28
+ private callbacks;
29
+ static isAvailable(): boolean;
30
+ constructor();
31
+ getItem(key: string): string | null;
32
+ setItem(key: string, value: string): void;
33
+ removeItem(key: string): void;
34
+ onItemChange(key: string, cb: (value: string | null) => void): () => void;
35
+ }
36
+ export declare function useBestStore(): ItemStore;
37
+ export declare function resolveArrayProperties<T>(object: Readonly<T> | Readonly<T>[]): Promise<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsequence/provider",
3
- "version": "2.3.19",
3
+ "version": "2.3.20",
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",
@@ -15,15 +15,15 @@
15
15
  "@databeat/tracker": "^0.9.3",
16
16
  "eventemitter2": "^6.4.5",
17
17
  "webextension-polyfill": "^0.10.0",
18
- "@0xsequence/abi": "2.3.19",
19
- "@0xsequence/account": "2.3.19",
20
- "@0xsequence/auth": "2.3.19",
21
- "@0xsequence/migration": "2.3.19",
22
- "@0xsequence/relayer": "2.3.19",
23
- "@0xsequence/core": "2.3.19",
24
- "@0xsequence/utils": "2.3.19",
25
- "@0xsequence/wallet": "2.3.19",
26
- "@0xsequence/network": "2.3.19"
18
+ "@0xsequence/account": "2.3.20",
19
+ "@0xsequence/auth": "2.3.20",
20
+ "@0xsequence/core": "2.3.20",
21
+ "@0xsequence/network": "2.3.20",
22
+ "@0xsequence/utils": "2.3.20",
23
+ "@0xsequence/wallet": "2.3.20",
24
+ "@0xsequence/migration": "2.3.20",
25
+ "@0xsequence/abi": "2.3.20",
26
+ "@0xsequence/relayer": "2.3.20"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/webextension-polyfill": "^0.10.0",