@provablehq/aleo-wallet-adaptor-puzzle 0.1.1-alpha.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/dist/index.mjs ADDED
@@ -0,0 +1,320 @@
1
+ // src/PuzzleWalletAdapter.ts
2
+ import {
3
+ Network as Network2,
4
+ TransactionStatus
5
+ } from "@provablehq/aleo-types";
6
+ import {
7
+ WalletDecryptPermission,
8
+ WalletReadyState
9
+ } from "@provablehq/aleo-wallet-standard";
10
+ import {
11
+ BaseAleoWalletAdapter,
12
+ DecryptPermission,
13
+ MethodNotImplementedError,
14
+ WalletConnectionError,
15
+ WalletDecryptionError,
16
+ WalletDecryptionNotAllowedError,
17
+ WalletDisconnectionError,
18
+ WalletError,
19
+ WalletNotConnectedError,
20
+ WalletSignMessageError,
21
+ WalletTransactionError
22
+ } from "@provablehq/aleo-wallet-adaptor-core";
23
+ import {
24
+ connect,
25
+ disconnect,
26
+ requestCreateEvent,
27
+ requestSignature,
28
+ EventType,
29
+ decrypt as puzzleDecrypt,
30
+ getRecords,
31
+ getEvent
32
+ } from "@puzzlehq/sdk-core";
33
+
34
+ // src/types.ts
35
+ import { Network } from "@provablehq/aleo-types";
36
+ import { Network as PuzzleNetwork } from "@puzzlehq/sdk-core";
37
+ var PUZZLE_NETWORK_MAP = {
38
+ [Network.MAINNET]: PuzzleNetwork.AleoMainnet,
39
+ [Network.TESTNET3]: PuzzleNetwork.AleoTestnet,
40
+ [Network.CANARY]: PuzzleNetwork.AleoTestnet
41
+ };
42
+
43
+ // src/icon.ts
44
+ var PuzzleIcon = "data:image/webp;base64,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";
45
+
46
+ // src/PuzzleWalletAdapter.ts
47
+ var PuzzleWalletAdapter = class extends BaseAleoWalletAdapter {
48
+ /**
49
+ * Create a new Puzzle wallet adapter
50
+ * @param config Adapter configuration
51
+ */
52
+ constructor(config) {
53
+ super();
54
+ /**
55
+ * The wallet name
56
+ */
57
+ this.name = "Puzzle Wallet";
58
+ /**
59
+ * The wallet URL
60
+ */
61
+ this.url = "https://puzzle.online/wallet";
62
+ /**
63
+ * The wallet icon (base64-encoded SVG)
64
+ */
65
+ this.icon = PuzzleIcon;
66
+ /**
67
+ * Current network
68
+ */
69
+ this.network = Network2.TESTNET3;
70
+ /**
71
+ * The wallet's decrypt permission
72
+ */
73
+ this.decryptPermission = WalletDecryptPermission.NoDecrypt;
74
+ this._readyState = typeof window === "undefined" || typeof document === "undefined" ? WalletReadyState.UNSUPPORTED : WalletReadyState.NOT_DETECTED;
75
+ /**
76
+ * Public key
77
+ */
78
+ this._publicKey = "";
79
+ this._appName = config?.appName || "Aleo App";
80
+ this._appIconUrl = config?.appIconUrl;
81
+ this._appDescription = config?.appDescription;
82
+ this._checkAvailability();
83
+ }
84
+ /**
85
+ * Check if Puzzle wallet is available
86
+ */
87
+ _checkAvailability() {
88
+ if (typeof window === "undefined") {
89
+ this.readyState = WalletReadyState.UNSUPPORTED;
90
+ return;
91
+ }
92
+ this._window = window;
93
+ if (this._window.puzzle) {
94
+ this.readyState = WalletReadyState.INSTALLED;
95
+ } else {
96
+ const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
97
+ if (isMobile) {
98
+ this.readyState = WalletReadyState.LOADABLE;
99
+ }
100
+ }
101
+ }
102
+ /**
103
+ * Connect to Puzzle wallet
104
+ * @param network The network to connect to
105
+ * @returns The connected account
106
+ */
107
+ async connect(network, decryptPermission, programs) {
108
+ try {
109
+ if (this.readyState !== WalletReadyState.INSTALLED) {
110
+ throw new WalletConnectionError("Puzzle Wallet is not available");
111
+ }
112
+ const response = await connect({
113
+ dAppInfo: {
114
+ name: this._appName,
115
+ description: this._appDescription,
116
+ iconUrl: this._appIconUrl
117
+ },
118
+ permissions: {
119
+ programIds: {
120
+ [PUZZLE_NETWORK_MAP[network]]: programs
121
+ }
122
+ }
123
+ });
124
+ if (!response || typeof response !== "object" || !("connection" in response)) {
125
+ throw new WalletConnectionError("Invalid response from wallet");
126
+ }
127
+ this.network = network;
128
+ this.decryptPermission = decryptPermission;
129
+ const address = response.connection?.address;
130
+ if (!address) {
131
+ throw new WalletConnectionError("No address returned from wallet");
132
+ }
133
+ this._publicKey = address;
134
+ const account = {
135
+ address: this._publicKey
136
+ };
137
+ this.account = account;
138
+ this.emit("connect", account);
139
+ return account;
140
+ } catch (err) {
141
+ this.emit("error", err instanceof Error ? err : new Error(String(err)));
142
+ throw new WalletConnectionError(err instanceof Error ? err.message : "Connection failed");
143
+ }
144
+ }
145
+ /**
146
+ * Disconnect from Puzzle wallet
147
+ */
148
+ async disconnect() {
149
+ try {
150
+ await disconnect();
151
+ this._publicKey = "";
152
+ this.account = void 0;
153
+ this.emit("disconnect");
154
+ } catch (err) {
155
+ this.emit("error", err instanceof Error ? err : new Error(String(err)));
156
+ throw new WalletDisconnectionError(
157
+ err instanceof Error ? err.message : "Disconnection failed"
158
+ );
159
+ }
160
+ }
161
+ /**
162
+ * Sign a message with Puzzle wallet
163
+ * @param message The message to sign
164
+ * @returns The signed message
165
+ */
166
+ async signMessage(message) {
167
+ if (!this._publicKey || !this.account) {
168
+ throw new WalletNotConnectedError();
169
+ }
170
+ try {
171
+ const signature = await requestSignature({
172
+ message: message.toString(),
173
+ address: this._publicKey
174
+ });
175
+ return new TextEncoder().encode(signature.signature);
176
+ } catch (error) {
177
+ throw new WalletSignMessageError(
178
+ error instanceof Error ? error.message : "Failed to sign message"
179
+ );
180
+ }
181
+ }
182
+ async decrypt(cipherText) {
183
+ if (!this._publicKey || !this.account) {
184
+ throw new WalletNotConnectedError();
185
+ }
186
+ switch (this.decryptPermission) {
187
+ case WalletDecryptPermission.NoDecrypt:
188
+ throw new WalletDecryptionNotAllowedError();
189
+ case WalletDecryptPermission.UponRequest:
190
+ case DecryptPermission.AutoDecrypt:
191
+ case DecryptPermission.OnChainHistory: {
192
+ try {
193
+ const text = await puzzleDecrypt({ ciphertexts: [cipherText] });
194
+ return text.plaintexts[0];
195
+ } catch (error) {
196
+ throw new WalletDecryptionError(
197
+ error instanceof Error ? error.message : "Failed to decrypt"
198
+ );
199
+ }
200
+ }
201
+ default:
202
+ throw new WalletDecryptionError();
203
+ }
204
+ }
205
+ /**
206
+ * Execute a transaction with Puzzle wallet
207
+ * @param options Transaction options
208
+ * @returns The executed temporary transaction ID
209
+ */
210
+ async executeTransaction(options) {
211
+ if (!this._publicKey || !this.account) {
212
+ throw new WalletNotConnectedError();
213
+ }
214
+ if (options.privateFee) {
215
+ throw new WalletTransactionError("Private fee is not supported by Puzzle wallet");
216
+ }
217
+ try {
218
+ const fee = options.fee ? options.fee / 1e6 : 1e-3;
219
+ const requestData = {
220
+ type: EventType.Execute,
221
+ programId: options.program,
222
+ functionId: options.function,
223
+ fee,
224
+ inputs: options.inputs,
225
+ address: this._publicKey,
226
+ network: PUZZLE_NETWORK_MAP[this.network]
227
+ };
228
+ const result = await requestCreateEvent(requestData);
229
+ if (result.error) {
230
+ throw new WalletTransactionError(result.error);
231
+ }
232
+ if (!result.eventId) {
233
+ throw new WalletTransactionError("Could not create transaction");
234
+ }
235
+ return {
236
+ transactionId: result.eventId
237
+ };
238
+ } catch (error) {
239
+ console.error("Puzzle Wallet executeTransaction error", error);
240
+ if (error instanceof WalletError) {
241
+ throw error;
242
+ }
243
+ throw new WalletTransactionError(
244
+ error instanceof Error ? error.message : "Failed to execute transaction"
245
+ );
246
+ }
247
+ }
248
+ /**
249
+ * Get transaction status
250
+ * @param transactionId The transaction ID
251
+ * @returns The transaction status
252
+ */
253
+ async transactionStatus(transactionId) {
254
+ if (!this._publicKey || !this.account) {
255
+ throw new WalletNotConnectedError();
256
+ }
257
+ try {
258
+ const result = await getEvent({
259
+ id: transactionId,
260
+ address: this._publicKey,
261
+ network: PUZZLE_NETWORK_MAP[this.network]
262
+ });
263
+ return {
264
+ status: result.event?.status || TransactionStatus.PENDING,
265
+ transactionId: result.event?.transactionId,
266
+ error: result.event?.error
267
+ };
268
+ } catch (error) {
269
+ throw new WalletTransactionError(
270
+ error instanceof Error ? error.message : "Failed to get transaction status"
271
+ );
272
+ }
273
+ }
274
+ /**
275
+ * Request records from Leo wallet
276
+ * @param program The program to request records from
277
+ * @param includePlaintext Whether to include plaintext on each record
278
+ * @returns The records
279
+ */
280
+ async requestRecords(program) {
281
+ if (!this._publicKey || !this.account) {
282
+ throw new WalletNotConnectedError();
283
+ }
284
+ try {
285
+ const result = await getRecords({
286
+ filter: {
287
+ programIds: [program],
288
+ status: "All"
289
+ },
290
+ address: this._publicKey,
291
+ network: PUZZLE_NETWORK_MAP[this.network]
292
+ });
293
+ return result?.records || [];
294
+ } catch (error) {
295
+ throw new WalletError(error instanceof Error ? error.message : "Failed to request records");
296
+ }
297
+ }
298
+ /**
299
+ * Switch the network
300
+ * @param network The network to switch to
301
+ */
302
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
303
+ async switchNetwork(_network) {
304
+ console.error("Puzzle Wallet does not support switching networks");
305
+ throw new MethodNotImplementedError("switchNetwork");
306
+ }
307
+ /**
308
+ * Execute a deployment
309
+ * @param deployment The deployment to execute
310
+ * @returns The executed transaction ID
311
+ */
312
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
313
+ async executeDeployment(_deployment) {
314
+ throw new MethodNotImplementedError("executeDeployment");
315
+ }
316
+ };
317
+ export {
318
+ PUZZLE_NETWORK_MAP,
319
+ PuzzleWalletAdapter
320
+ };
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@provablehq/aleo-wallet-adaptor-puzzle",
3
+ "version": "0.1.1-alpha.0",
4
+ "description": "Puzzle wallet adapter for Aleo",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.ts",
8
+ "license": "GPL-3.0-or-later",
9
+ "files": [
10
+ "dist",
11
+ "src"
12
+ ],
13
+ "dependencies": {
14
+ "@puzzlehq/sdk-core": "^1.0.3",
15
+ "@provablehq/aleo-wallet-adaptor-core": "0.1.1-alpha.0",
16
+ "@provablehq/aleo-types": "0.1.1-alpha.0",
17
+ "@provablehq/aleo-wallet-standard": "0.1.1-alpha.0"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/ProvableHQ/aleo-dev-toolkit.git",
22
+ "directory": "packages/aleo-wallet-adaptor/wallets/puzzle"
23
+ },
24
+ "homepage": "https://provable.com/",
25
+ "keywords": [
26
+ "aleo",
27
+ "wallet",
28
+ "adapter",
29
+ "puzzle"
30
+ ],
31
+ "author": "Provable Labs",
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "devDependencies": {
36
+ "rimraf": "^5.0.5",
37
+ "tsup": "^7.0.0",
38
+ "typescript": "^5.0.0"
39
+ },
40
+ "scripts": {
41
+ "build": "tsup",
42
+ "clean": "rimraf dist",
43
+ "dev": "tsup --watch"
44
+ }
45
+ }