@zero-tech/z-wallet-sdk 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/README.md +170 -0
- package/dist/client/types/callContract.d.ts +13 -0
- package/dist/client/types/callContract.js +1 -0
- package/dist/client/types/connectRequest.d.ts +6 -0
- package/dist/client/types/connectRequest.js +1 -0
- package/dist/client/types/sendRawTransaction.d.ts +12 -0
- package/dist/client/types/sendRawTransaction.js +1 -0
- package/dist/client/types/signMessage.d.ts +7 -0
- package/dist/client/types/signMessage.js +1 -0
- package/dist/client/types.d.ts +22 -0
- package/dist/client/types.js +1 -0
- package/dist/client/zWalletClient.d.ts +33 -0
- package/dist/client/zWalletClient.js +76 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +1 -0
- package/dist/errors.d.ts +16 -0
- package/dist/errors.js +31 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +7 -0
- package/dist/messaging/messagingService.d.ts +20 -0
- package/dist/messaging/messagingService.js +90 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +29 -0
package/README.md
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# z-wallet-sdk
|
|
2
|
+
|
|
3
|
+
A TypeScript SDK for interacting with zWallet.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
You can install the SDK using npm:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm i z-wallet-sdk
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
### Initialization
|
|
16
|
+
|
|
17
|
+
Import the `zWalletClient` singleton instance to get started.
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import { zWalletClient } from "z-wallet-sdk";
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The client manages connection state internally. You can access it via these properties:
|
|
24
|
+
|
|
25
|
+
- `zWalletClient.isConnected: boolean`
|
|
26
|
+
- `zWalletClient.walletInfo: WalletInfo | null`
|
|
27
|
+
- `zWalletClient.error: string | null`
|
|
28
|
+
|
|
29
|
+
### Connecting to the Wallet
|
|
30
|
+
|
|
31
|
+
To begin interacting with the user's wallet, you need to connect to it. This will open a popup window for the user to approve the connection.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import { zWalletClient } from "z-wallet-sdk";
|
|
35
|
+
|
|
36
|
+
async function connectWallet(event: MouseEvent) {
|
|
37
|
+
try {
|
|
38
|
+
// Optional: Position the popup relative to the user's click
|
|
39
|
+
const popupLeft = window.screenX + event.clientX;
|
|
40
|
+
const popupTop = window.screenY + event.clientY;
|
|
41
|
+
|
|
42
|
+
await zWalletClient.connect({
|
|
43
|
+
left: popupLeft,
|
|
44
|
+
top: popupTop,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
if (zWalletClient.isConnected) {
|
|
48
|
+
console.log("Successfully connected to zWallet!");
|
|
49
|
+
console.log("Wallet Info:", zWalletClient.walletInfo);
|
|
50
|
+
} else {
|
|
51
|
+
console.error("Connection failed:", zWalletClient.error);
|
|
52
|
+
}
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error("An error occurred during connection:", error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Sending a Raw Transaction
|
|
60
|
+
|
|
61
|
+
Send a pre-encoded raw transaction payload to the network.
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
import { zWalletClient } from "z-wallet-sdk";
|
|
65
|
+
import type { SendRawTransactionPayload } from "z-wallet-sdk";
|
|
66
|
+
|
|
67
|
+
async function sendRawTx() {
|
|
68
|
+
if (!zWalletClient.isConnected) {
|
|
69
|
+
alert("Please connect your wallet first.");
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
const tx: SendRawTransactionPayload = {
|
|
75
|
+
chainId: 9369, // testnet: 1417429182, mainnet: 9369
|
|
76
|
+
to: "0x...contract_address",
|
|
77
|
+
transactionData: "0x...raw_calldata,
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const response = await zWalletClient.sendRawTransaction(tx);
|
|
81
|
+
|
|
82
|
+
if (response.data) {
|
|
83
|
+
console.log("Raw transaction sent successfully!");
|
|
84
|
+
console.log("Transaction Hash:", response.data.transactionHash);
|
|
85
|
+
} else {
|
|
86
|
+
console.error("Failed to send raw transaction:", response.error);
|
|
87
|
+
}
|
|
88
|
+
} catch (error) {
|
|
89
|
+
console.error("An error occurred while sending the raw transaction:", error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Signing a Message
|
|
95
|
+
|
|
96
|
+
Once connected, you can request message signatures from the user.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
import { zWalletClient } from "z-wallet-sdk";
|
|
100
|
+
|
|
101
|
+
async function sign() {
|
|
102
|
+
if (!zWalletClient.isConnected) {
|
|
103
|
+
alert("Please connect your wallet first.");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
const message = "Login request for xyz.zyx";
|
|
109
|
+
const chainId = 9369; // testnet: 1417429182, mainnet: 9369
|
|
110
|
+
|
|
111
|
+
const response = await zWalletClient.signMessage(message, chainId);
|
|
112
|
+
|
|
113
|
+
if (response.data) {
|
|
114
|
+
console.log("Message signed successfully!");
|
|
115
|
+
console.log("Signature:", response.data.signature);
|
|
116
|
+
// Signatures should be verified with thirdweb as wallets are AA contract wallets
|
|
117
|
+
const verifyResponse = await verifyContractWalletSignature({
|
|
118
|
+
chain: chain,
|
|
119
|
+
client: thirdwebClient,
|
|
120
|
+
address: zWalletClient.walletInfo.zeroWallet,
|
|
121
|
+
message,
|
|
122
|
+
signature: response.data.signature,
|
|
123
|
+
});
|
|
124
|
+
} else {
|
|
125
|
+
console.error("Failed to sign message:", response.error);
|
|
126
|
+
}
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.error("An error occurred while signing the message:", error);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Calling a Contract
|
|
134
|
+
|
|
135
|
+
You can also send transactions to smart contracts.
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { zWalletClient } from "z-wallet-sdk";
|
|
139
|
+
import type { CallContractTransaction } from "z-wallet-sdk";
|
|
140
|
+
|
|
141
|
+
async function transferTokens() {
|
|
142
|
+
if (!zWalletClient.isConnected) {
|
|
143
|
+
alert("Please connect your wallet first.");
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
try {
|
|
148
|
+
const transaction: CallContractTransaction = {
|
|
149
|
+
chainId: 1, // Example Chain ID
|
|
150
|
+
contractAddress: "0x...your_token_contract_address",
|
|
151
|
+
method: "transfer(address to, uint256 value)", // Function signature
|
|
152
|
+
params: [
|
|
153
|
+
"0x...recipient_address", // Recipient address
|
|
154
|
+
"1000000000000000000", // Amount (e.g., 1 token with 18 decimals)
|
|
155
|
+
],
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
const response = await zWalletClient.callContract(transaction);
|
|
159
|
+
|
|
160
|
+
if (response.data) {
|
|
161
|
+
console.log("Contract call successful!");
|
|
162
|
+
console.log("Transaction Hash:", response.data.transactionHash);
|
|
163
|
+
} else {
|
|
164
|
+
console.error("Contract call failed:", response.error);
|
|
165
|
+
}
|
|
166
|
+
} catch (error) {
|
|
167
|
+
console.error("An error occurred during the contract call:", error);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CallContractResponse {
|
|
2
|
+
error: string | null;
|
|
3
|
+
data: {
|
|
4
|
+
transactionHash: `0x${string}`;
|
|
5
|
+
} | null;
|
|
6
|
+
}
|
|
7
|
+
export interface CallContractTransaction {
|
|
8
|
+
chainId: number;
|
|
9
|
+
contractAddress: string;
|
|
10
|
+
method: string;
|
|
11
|
+
params: unknown[];
|
|
12
|
+
}
|
|
13
|
+
export type CallContract = (tx: CallContractTransaction) => Promise<CallContractResponse>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SendRawTransactionResponse {
|
|
2
|
+
error: string | null;
|
|
3
|
+
data: {
|
|
4
|
+
transactionHash: `0x${string}`;
|
|
5
|
+
} | null;
|
|
6
|
+
}
|
|
7
|
+
export interface SendRawTransactionPayload {
|
|
8
|
+
chainId: number;
|
|
9
|
+
to: string;
|
|
10
|
+
transactionData: string;
|
|
11
|
+
}
|
|
12
|
+
export type SendRawTransaction = (tx: SendRawTransactionPayload) => Promise<SendRawTransactionResponse>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CallContract } from './types/callContract';
|
|
2
|
+
import type { ConnectRequest } from './types/connectRequest';
|
|
3
|
+
import type { SendRawTransaction } from './types/sendRawTransaction';
|
|
4
|
+
import type { SignMessage } from './types/signMessage';
|
|
5
|
+
export interface WalletInfo {
|
|
6
|
+
id: string;
|
|
7
|
+
primaryZID: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
profileImage: string;
|
|
10
|
+
zeroWallet: string;
|
|
11
|
+
wallets: string[];
|
|
12
|
+
}
|
|
13
|
+
export type Logout = (domain: string) => Promise<{
|
|
14
|
+
success: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
export interface WalletApi {
|
|
17
|
+
connect: ConnectRequest;
|
|
18
|
+
signMessage: SignMessage;
|
|
19
|
+
callContract: CallContract;
|
|
20
|
+
sendRawTransaction: SendRawTransaction;
|
|
21
|
+
logout: Logout;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { WalletInfo } from './types';
|
|
2
|
+
import type { CallContract, CallContractTransaction } from './types/callContract';
|
|
3
|
+
import type { SendRawTransaction, SendRawTransactionPayload } from './types/sendRawTransaction';
|
|
4
|
+
import type { SignMessage } from './types/signMessage';
|
|
5
|
+
export interface IZWalletClient {
|
|
6
|
+
signMessage: SignMessage;
|
|
7
|
+
callContract: CallContract;
|
|
8
|
+
sendRawTransaction: SendRawTransaction;
|
|
9
|
+
logout: () => Promise<{
|
|
10
|
+
success: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
export interface ConnectOptions {
|
|
14
|
+
left?: number;
|
|
15
|
+
top?: number;
|
|
16
|
+
remainOpen?: boolean;
|
|
17
|
+
url?: string;
|
|
18
|
+
}
|
|
19
|
+
declare class ZWalletClient implements IZWalletClient {
|
|
20
|
+
isConnected: boolean;
|
|
21
|
+
error: string | null;
|
|
22
|
+
walletInfo: WalletInfo | null;
|
|
23
|
+
clientUrl: string;
|
|
24
|
+
connect({ left, top, remainOpen }?: ConnectOptions): Promise<void>;
|
|
25
|
+
signMessage(message: string, chainId: number): Promise<import("..").SignMessageResponse>;
|
|
26
|
+
callContract(tx: CallContractTransaction): Promise<import("..").CallContractResponse>;
|
|
27
|
+
sendRawTransaction(tx: SendRawTransactionPayload): Promise<import("..").SendRawTransactionResponse>;
|
|
28
|
+
logout(): Promise<{
|
|
29
|
+
success: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
export declare const zWalletClient: ZWalletClient;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Z_WALLET_CLIENT_URL } from '../constants';
|
|
2
|
+
import { FailedToConnectError, ZWalletError } from '../errors';
|
|
3
|
+
import { messagingService } from '../messaging/messagingService';
|
|
4
|
+
class ZWalletClient {
|
|
5
|
+
isConnected = false;
|
|
6
|
+
error = null;
|
|
7
|
+
walletInfo = null;
|
|
8
|
+
clientUrl = Z_WALLET_CLIENT_URL;
|
|
9
|
+
async connect({ left, top, remainOpen } = {}) {
|
|
10
|
+
this.error = null;
|
|
11
|
+
let features = 'width=400,height=600';
|
|
12
|
+
if (left !== undefined && top !== undefined) {
|
|
13
|
+
features = `left=${left},top=${top},${features}`;
|
|
14
|
+
}
|
|
15
|
+
const walletWindow = window.open(this.clientUrl, 'walletPopup', features);
|
|
16
|
+
try {
|
|
17
|
+
const walletInfo = await messagingService.initMessaging(walletWindow, {
|
|
18
|
+
remainOpen,
|
|
19
|
+
url: this.clientUrl,
|
|
20
|
+
});
|
|
21
|
+
this.walletInfo = walletInfo;
|
|
22
|
+
this.isConnected = true;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
const err = error instanceof ZWalletError ? error : new FailedToConnectError();
|
|
26
|
+
this.error = err.message;
|
|
27
|
+
throw err;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async signMessage(message, chainId) {
|
|
31
|
+
if (!messagingService.wallet) {
|
|
32
|
+
await this.connect({ remainOpen: true });
|
|
33
|
+
}
|
|
34
|
+
if (!messagingService.wallet) {
|
|
35
|
+
throw new FailedToConnectError();
|
|
36
|
+
}
|
|
37
|
+
return messagingService.wallet.signMessage(message, chainId);
|
|
38
|
+
}
|
|
39
|
+
async callContract(tx) {
|
|
40
|
+
if (!messagingService.wallet) {
|
|
41
|
+
await this.connect({
|
|
42
|
+
remainOpen: true,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (!messagingService.wallet) {
|
|
46
|
+
throw new FailedToConnectError();
|
|
47
|
+
}
|
|
48
|
+
return messagingService.wallet.callContract(tx);
|
|
49
|
+
}
|
|
50
|
+
async sendRawTransaction(tx) {
|
|
51
|
+
if (!messagingService.wallet) {
|
|
52
|
+
await this.connect({ remainOpen: true });
|
|
53
|
+
}
|
|
54
|
+
if (!messagingService.wallet) {
|
|
55
|
+
throw new FailedToConnectError();
|
|
56
|
+
}
|
|
57
|
+
return messagingService.wallet.sendRawTransaction(tx);
|
|
58
|
+
}
|
|
59
|
+
async logout() {
|
|
60
|
+
// Call z-wallet logout if connected, passing the current domain
|
|
61
|
+
if (messagingService.wallet) {
|
|
62
|
+
try {
|
|
63
|
+
await messagingService.wallet.logout(window.location.origin);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Continue with local cleanup even if remote logout fails
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Clear local state
|
|
70
|
+
this.isConnected = false;
|
|
71
|
+
this.walletInfo = null;
|
|
72
|
+
this.error = null;
|
|
73
|
+
return { success: true };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export const zWalletClient = new ZWalletClient();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Z_WALLET_CLIENT_URL = "https://z-wallet.zero.tech";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const Z_WALLET_CLIENT_URL = 'https://z-wallet.zero.tech';
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class ZWalletError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
constructor(code: string, message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class FailedToOpenPopupError extends ZWalletError {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
export declare class RequestCancelledError extends ZWalletError {
|
|
9
|
+
constructor();
|
|
10
|
+
}
|
|
11
|
+
export declare class FailedToConnectError extends ZWalletError {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
export declare class WalletConnectionError extends ZWalletError {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class ZWalletError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
constructor(code, message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.code = code;
|
|
6
|
+
this.name = new.target.name;
|
|
7
|
+
if (typeof Object.setPrototypeOf === 'function') {
|
|
8
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class FailedToOpenPopupError extends ZWalletError {
|
|
13
|
+
constructor() {
|
|
14
|
+
super('FAILED_TO_OPEN_POPUP', 'Failed to open the wallet popup.');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class RequestCancelledError extends ZWalletError {
|
|
18
|
+
constructor() {
|
|
19
|
+
super('REQUEST_CANCELLED', 'The request was cancelled by the user.');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class FailedToConnectError extends ZWalletError {
|
|
23
|
+
constructor() {
|
|
24
|
+
super('FAILED_TO_CONNECT', 'Failed to connect to the wallet.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class WalletConnectionError extends ZWalletError {
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super('WALLET_CONNECTION_FAILED', message);
|
|
30
|
+
}
|
|
31
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './client/types';
|
|
2
|
+
export * from './client/types/callContract';
|
|
3
|
+
export * from './client/types/connectRequest';
|
|
4
|
+
export * from './client/types/sendRawTransaction';
|
|
5
|
+
export * from './client/types/signMessage';
|
|
6
|
+
export type { ConnectOptions, IZWalletClient } from './client/zWalletClient';
|
|
7
|
+
export { zWalletClient } from './client/zWalletClient';
|
|
8
|
+
export * from './errors';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './client/types';
|
|
2
|
+
export * from './client/types/callContract';
|
|
3
|
+
export * from './client/types/connectRequest';
|
|
4
|
+
export * from './client/types/sendRawTransaction';
|
|
5
|
+
export * from './client/types/signMessage';
|
|
6
|
+
export { zWalletClient } from './client/zWalletClient';
|
|
7
|
+
export * from './errors';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { WalletApi, WalletInfo } from '../client/types';
|
|
2
|
+
interface InitMessagingOptions {
|
|
3
|
+
remainOpen?: boolean;
|
|
4
|
+
url?: string;
|
|
5
|
+
}
|
|
6
|
+
declare class MessagingService {
|
|
7
|
+
private walletWindow;
|
|
8
|
+
private port;
|
|
9
|
+
private popupCheckInterval;
|
|
10
|
+
private popupLoadInterval;
|
|
11
|
+
private connectionResolve;
|
|
12
|
+
private connectionReject;
|
|
13
|
+
wallet: WalletApi | null;
|
|
14
|
+
remainOpen: boolean;
|
|
15
|
+
url: string;
|
|
16
|
+
initMessaging(walletWindow: Window | null, { remainOpen, url }?: InitMessagingOptions): Promise<WalletInfo>;
|
|
17
|
+
private readonly handleOnLoadMessage;
|
|
18
|
+
}
|
|
19
|
+
export declare const messagingService: MessagingService;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// biome-ignore lint/performance/noNamespaceImport: Comlink needs to be imported as a namespace
|
|
2
|
+
import * as Comlink from 'comlink';
|
|
3
|
+
import { Z_WALLET_CLIENT_URL } from '../constants';
|
|
4
|
+
import { FailedToOpenPopupError, RequestCancelledError, WalletConnectionError, ZWalletError, } from '../errors';
|
|
5
|
+
const POLLING_INTERVAL = 500;
|
|
6
|
+
class MessagingService {
|
|
7
|
+
walletWindow = null;
|
|
8
|
+
port = null;
|
|
9
|
+
popupCheckInterval = null;
|
|
10
|
+
popupLoadInterval = null;
|
|
11
|
+
// biome-ignore lint/style/useReadonlyClassProperties: not readonly
|
|
12
|
+
connectionResolve;
|
|
13
|
+
// biome-ignore lint/style/useReadonlyClassProperties: not readonly
|
|
14
|
+
connectionReject;
|
|
15
|
+
wallet = null;
|
|
16
|
+
remainOpen = false;
|
|
17
|
+
url = Z_WALLET_CLIENT_URL;
|
|
18
|
+
initMessaging(walletWindow, { remainOpen, url } = {}) {
|
|
19
|
+
this.walletWindow = walletWindow;
|
|
20
|
+
this.remainOpen = remainOpen ?? false;
|
|
21
|
+
this.url = url ?? Z_WALLET_CLIENT_URL;
|
|
22
|
+
const connectionPromise = new Promise((resolve, reject) => {
|
|
23
|
+
this.connectionResolve = resolve;
|
|
24
|
+
this.connectionReject = reject;
|
|
25
|
+
});
|
|
26
|
+
if (!this.walletWindow) {
|
|
27
|
+
this.connectionReject(new FailedToOpenPopupError());
|
|
28
|
+
return connectionPromise;
|
|
29
|
+
}
|
|
30
|
+
this.popupCheckInterval = setInterval(() => {
|
|
31
|
+
if (this.walletWindow?.closed) {
|
|
32
|
+
if (this.popupCheckInterval) {
|
|
33
|
+
clearInterval(this.popupCheckInterval);
|
|
34
|
+
}
|
|
35
|
+
if (this.popupLoadInterval) {
|
|
36
|
+
clearInterval(this.popupLoadInterval);
|
|
37
|
+
}
|
|
38
|
+
this.walletWindow = null;
|
|
39
|
+
if (this.port) {
|
|
40
|
+
this.port.close();
|
|
41
|
+
this.port = null;
|
|
42
|
+
}
|
|
43
|
+
this.wallet = null;
|
|
44
|
+
this.connectionReject(new RequestCancelledError());
|
|
45
|
+
}
|
|
46
|
+
}, POLLING_INTERVAL);
|
|
47
|
+
this.popupLoadInterval = setInterval(() => {
|
|
48
|
+
if (this.walletWindow) {
|
|
49
|
+
this.walletWindow.postMessage({ type: 'ping' }, '*');
|
|
50
|
+
}
|
|
51
|
+
else if (this.popupLoadInterval) {
|
|
52
|
+
clearInterval(this.popupLoadInterval);
|
|
53
|
+
}
|
|
54
|
+
}, POLLING_INTERVAL);
|
|
55
|
+
window.addEventListener('message', this.handleOnLoadMessage);
|
|
56
|
+
return connectionPromise;
|
|
57
|
+
}
|
|
58
|
+
handleOnLoadMessage = async (event) => {
|
|
59
|
+
if (event.origin !== this.url)
|
|
60
|
+
return;
|
|
61
|
+
if (event.data.type === 'onLoad') {
|
|
62
|
+
if (this.popupLoadInterval) {
|
|
63
|
+
clearInterval(this.popupLoadInterval);
|
|
64
|
+
}
|
|
65
|
+
const channel = new MessageChannel();
|
|
66
|
+
this.port = channel.port1;
|
|
67
|
+
this.wallet = Comlink.wrap(this.port);
|
|
68
|
+
if (this.walletWindow) {
|
|
69
|
+
this.walletWindow.postMessage({ type: 'initChannel' }, this.url, [
|
|
70
|
+
channel.port2,
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const info = await this.wallet.connect(window.location.origin, {
|
|
75
|
+
remainOpen: this.remainOpen,
|
|
76
|
+
});
|
|
77
|
+
window.removeEventListener('message', this.handleOnLoadMessage);
|
|
78
|
+
this.connectionResolve(info);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
window.removeEventListener('message', this.handleOnLoadMessage);
|
|
82
|
+
const err = error instanceof ZWalletError
|
|
83
|
+
? error
|
|
84
|
+
: new WalletConnectionError(error instanceof Error ? error.message : String(error));
|
|
85
|
+
this.connectionReject(err);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export const messagingService = new MessagingService();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.error.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/constants.ts","../src/errors.ts","../src/client/types/callContract.ts","../src/client/types/connectRequest.ts","../src/client/types/sendRawTransaction.ts","../src/client/types/signMessage.ts","../src/client/types.ts","../node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/umd/protocol.d.ts","../node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/umd/comlink.d.ts","../src/messaging/messagingService.ts","../src/client/zWalletClient.ts","../src/index.ts"],"fileIdsList":[[90],[85,86,87,88],[89],[83,84,85,87,88,89,92],[84,85,86,87,88,89,93],[83,84,89,91]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"15012b7a13c3ac9696fd7b1c071e757b8afe42a18a563f07e42ad3b5e6290a9e","signature":"6661bc1ed40ef52303e23d666739c21a39bb8d907632ea64851df1d3b8d6edbf"},{"version":"637d11c31d29bf392552ad1f057b69e59021cf6fad5b7e2ea6a89bec6985442a","signature":"73c94cdd951928fff78e0d756d87a0168da4876b6a731e653c7ecb059d53c4bf"},{"version":"29583fc3cbb9c7109369247df0ec2f59df0dea03e1ba4300134e3703e5968d48","signature":"6778e4df3673af6585f9c21be2ef43d96717d79b72ea3e8a2aabbdc61d45c952"},{"version":"2c4401aa19ac4c195d08b70911a809fff8b2e29ee433f5553b35daacc9d7da47","signature":"f8cacfbf32282f3aa3fed81825082d4df07e1a5a51b27d9c7afdb80f948b4a20"},{"version":"9a160b488d2cad70b02b7ad80e445a8261ee43acfa0c6d76601734941c55c013","signature":"db5cf5ec854e2c67e889abdc5500239a6bfbfca54ed04106389eff4676fefa24"},{"version":"0d0a34b2f2af7941dba14ab05a0f9230045194f5de612a215f24a63ca8343505","signature":"9166177198fb914d5ad2c630451d839699a8ac564e5e9715f59446883d19f2b8"},{"version":"41ded2621a68bb49e35de00648163fc7aefe14b9b906586126bf00da955744bb","signature":"47a2cdc86b0ab1cdae0db6ad0961915f32208328574003def61f19ad8544c3b4"},{"version":"c0a456eb21680eca96d5e836e2a5cc74730a2c0e03f18eb17a7f652b30c993e4","impliedFormat":1},{"version":"9426d1cc15328fcbb59adb88880ccfd79f2bc959334d485273da743aac083eaa","impliedFormat":1},{"version":"6de5741dde2dc925b705e5409081ef8c4e41d8503d56d09829c6f6eb23d44eea","signature":"7605c8aa07ceedc6cbdbf2f4119020ea231ba1b01be12ef6935338ae086831a6"},{"version":"75510701a770eac49dd53dc17f3194e9c83af555e128821db50d000a962df64d","signature":"412671977313671c6d705d8f03f03b9cb70edf93cbf3597d4419395858d27d06"},"79e8047b4e4fd315c7b112377d8bd1d77947a188b13898a7e6e22a3f01b8195b"],"root":[[83,89],[92,94]],"options":{"allowJs":true,"declaration":true,"esModuleInterop":true,"jsx":1,"module":99,"outDir":"./","skipLibCheck":true,"strict":true,"strictNullChecks":true,"target":99},"referencedMap":[[91,1],[89,2],[86,3],[93,4],[94,5],[92,6]],"version":"5.9.2"}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zero-tech/z-wallet-sdk",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"keywords": [],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"comlink": "^4.4.2",
|
|
18
|
+
"zustand": "^5.0.7"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@biomejs/biome": "2.2.0",
|
|
22
|
+
"typescript": "^5.9.2",
|
|
23
|
+
"ultracite": "5.1.5"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
28
|
+
}
|
|
29
|
+
}
|