@hashgraph/hedera-wallet-connect 1.3.7-canary.14806a9.0 → 1.3.7-canary.350bf60.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. package/dist/index.d.ts +1 -3
  2. package/dist/index.js +1 -3
  3. package/dist/{dapp → lib/dapp}/DAppSigner.d.ts +1 -15
  4. package/dist/{dapp → lib/dapp}/DAppSigner.js +28 -105
  5. package/dist/{dapp → lib/dapp}/index.js +1 -1
  6. package/dist/lib/index.d.ts +3 -0
  7. package/dist/lib/index.js +22 -0
  8. package/dist/{shared → lib/shared}/logger.d.ts +0 -1
  9. package/dist/{shared → lib/shared}/logger.js +0 -3
  10. package/package.json +3 -3
  11. /package/dist/{dapp → lib/dapp}/index.d.ts +0 -0
  12. /package/dist/{shared → lib/shared}/chainIds.d.ts +0 -0
  13. /package/dist/{shared → lib/shared}/chainIds.js +0 -0
  14. /package/dist/{shared → lib/shared}/errors.d.ts +0 -0
  15. /package/dist/{shared → lib/shared}/errors.js +0 -0
  16. /package/dist/{shared → lib/shared}/events.d.ts +0 -0
  17. /package/dist/{shared → lib/shared}/events.js +0 -0
  18. /package/dist/{shared → lib/shared}/extensionController.d.ts +0 -0
  19. /package/dist/{shared → lib/shared}/extensionController.js +0 -0
  20. /package/dist/{shared → lib/shared}/index.d.ts +0 -0
  21. /package/dist/{shared → lib/shared}/index.js +0 -0
  22. /package/dist/{shared → lib/shared}/methods.d.ts +0 -0
  23. /package/dist/{shared → lib/shared}/methods.js +0 -0
  24. /package/dist/{shared → lib/shared}/payloads.d.ts +0 -0
  25. /package/dist/{shared → lib/shared}/payloads.js +0 -0
  26. /package/dist/{shared → lib/shared}/utils.d.ts +0 -0
  27. /package/dist/{shared → lib/shared}/utils.js +0 -0
  28. /package/dist/{wallet → lib/wallet}/index.d.ts +0 -0
  29. /package/dist/{wallet → lib/wallet}/index.js +0 -0
  30. /package/dist/{wallet → lib/wallet}/provider.d.ts +0 -0
  31. /package/dist/{wallet → lib/wallet}/provider.js +0 -0
  32. /package/dist/{wallet → lib/wallet}/types.d.ts +0 -0
  33. /package/dist/{wallet → lib/wallet}/types.js +0 -0
package/dist/index.d.ts CHANGED
@@ -1,3 +1 @@
1
- export * from './shared';
2
- export { default as Wallet } from './wallet';
3
- export * from './dapp';
1
+ export * from './lib';
package/dist/index.js CHANGED
@@ -17,6 +17,4 @@
17
17
  * limitations under the License.
18
18
  *
19
19
  */
20
- export * from './shared';
21
- export { default as Wallet } from './wallet';
22
- export * from './dapp';
20
+ export * from './lib';
@@ -6,13 +6,7 @@ export declare class DAppSigner implements Signer {
6
6
  readonly topic: string;
7
7
  private readonly ledgerId;
8
8
  readonly extensionId?: string | undefined;
9
- private logger;
10
- constructor(accountId: AccountId, signClient: ISignClient, topic: string, ledgerId?: LedgerId, extensionId?: string | undefined, logLevel?: 'error' | 'warn' | 'info' | 'debug');
11
- /**
12
- * Sets the logging level for the DAppSigner
13
- * @param level - The logging level to set
14
- */
15
- setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void;
9
+ constructor(accountId: AccountId, signClient: ISignClient, topic: string, ledgerId?: LedgerId, extensionId?: string | undefined);
16
10
  private _getHederaClient;
17
11
  private get _signerAccountId();
18
12
  private _getRandomNodes;
@@ -45,14 +39,6 @@ export declare class DAppSigner implements Signer {
45
39
  signTransaction<T extends Transaction>(transaction: T): Promise<T>;
46
40
  private _tryExecuteTransactionRequest;
47
41
  private _parseQueryResponse;
48
- /**
49
- * Executes a free receipt query without signing a transaction.
50
- * Enables the DApp to fetch the receipt of a transaction without making a new request
51
- * to the wallet.
52
- * @param request - The query to execute
53
- * @returns The result of the query
54
- */
55
- private executeReceiptQueryFromRequest;
56
42
  private _tryExecuteQueryRequest;
57
43
  call<RequestT, ResponseT, OutputT>(request: Executable<RequestT, ResponseT, OutputT>): Promise<OutputT>;
58
44
  }
@@ -20,25 +20,14 @@
20
20
  import { AccountBalance, AccountId, AccountInfo, LedgerId, SignerSignature, Transaction, TransactionRecord, Client, PublicKey, TransactionId, TransactionResponse, Query, AccountRecordsQuery, AccountInfoQuery, AccountBalanceQuery, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, } from '@hashgraph/sdk';
21
21
  import { proto } from '@hashgraph/proto';
22
22
  import { HederaJsonRpcMethod, Uint8ArrayToBase64String, base64StringToSignatureMap, base64StringToUint8Array, ledgerIdToCAIPChainId, queryToBase64String, transactionBodyToBase64String, transactionToBase64String, transactionToTransactionBody, extensionOpen, } from '../shared';
23
- import { DefaultLogger } from '../shared/logger';
24
23
  const clients = {};
25
24
  export class DAppSigner {
26
- constructor(accountId, signClient, topic, ledgerId = LedgerId.MAINNET, extensionId, logLevel = 'debug') {
25
+ constructor(accountId, signClient, topic, ledgerId = LedgerId.MAINNET, extensionId) {
27
26
  this.accountId = accountId;
28
27
  this.signClient = signClient;
29
28
  this.topic = topic;
30
29
  this.ledgerId = ledgerId;
31
30
  this.extensionId = extensionId;
32
- this.logger = new DefaultLogger(logLevel);
33
- }
34
- /**
35
- * Sets the logging level for the DAppSigner
36
- * @param level - The logging level to set
37
- */
38
- setLogLevel(level) {
39
- if (this.logger instanceof DefaultLogger) {
40
- this.logger.setLogLevel(level);
41
- }
42
31
  }
43
32
  _getHederaClient() {
44
33
  const ledgerIdString = this.ledgerId.toString();
@@ -96,29 +85,21 @@ export class DAppSigner {
96
85
  return this.signClient.metadata;
97
86
  }
98
87
  async sign(data, signOptions) {
99
- this.logger.debug('Signing data');
100
- try {
101
- const { signatureMap } = await this.request({
102
- method: HederaJsonRpcMethod.SignMessage,
103
- params: {
104
- signerAccountId: this._signerAccountId,
105
- message: Uint8ArrayToBase64String(data[0]),
106
- },
107
- });
108
- const sigmap = base64StringToSignatureMap(signatureMap);
109
- const signerSignature = new SignerSignature({
110
- accountId: this.getAccountId(),
111
- publicKey: PublicKey.fromBytes(sigmap.sigPair[0].pubKeyPrefix),
112
- signature: sigmap.sigPair[0].ed25519 ||
113
- sigmap.sigPair[0].ECDSASecp256k1,
114
- });
115
- this.logger.debug('Data signed successfully');
116
- return [signerSignature];
117
- }
118
- catch (error) {
119
- this.logger.error('Error signing data:', error);
120
- throw error;
121
- }
88
+ const { signatureMap } = await this.request({
89
+ method: HederaJsonRpcMethod.SignMessage,
90
+ params: {
91
+ signerAccountId: this._signerAccountId,
92
+ message: Uint8ArrayToBase64String(data[0]),
93
+ },
94
+ });
95
+ const sigmap = base64StringToSignatureMap(signatureMap);
96
+ const signerSignature = new SignerSignature({
97
+ accountId: this.getAccountId(),
98
+ publicKey: PublicKey.fromBytes(sigmap.sigPair[0].pubKeyPrefix),
99
+ signature: sigmap.sigPair[0].ed25519 ||
100
+ sigmap.sigPair[0].ECDSASecp256k1,
101
+ });
102
+ return [signerSignature];
122
103
  }
123
104
  async checkTransaction(transaction) {
124
105
  throw new Error('Method not implemented.');
@@ -160,10 +141,7 @@ export class DAppSigner {
160
141
  }
161
142
  async _tryExecuteTransactionRequest(request) {
162
143
  try {
163
- const requestToBytes = request.toBytes();
164
- this.logger.debug('Creating transaction from bytes', requestToBytes, request);
165
- const transaction = Transaction.fromBytes(requestToBytes);
166
- this.logger.debug('Executing transaction request', transaction);
144
+ const transaction = Transaction.fromBytes(request.toBytes());
167
145
  const result = await this.request({
168
146
  method: HederaJsonRpcMethod.SignAndExecuteTransaction,
169
147
  params: {
@@ -171,11 +149,9 @@ export class DAppSigner {
171
149
  transactionList: transactionToBase64String(transaction),
172
150
  },
173
151
  });
174
- this.logger.debug('Transaction request completed successfully');
175
152
  return { result: TransactionResponse.fromJSON(result) };
176
153
  }
177
154
  catch (error) {
178
- this.logger.error('Error executing transaction request:', error);
179
155
  return { error };
180
156
  }
181
157
  }
@@ -202,46 +178,9 @@ export class DAppSigner {
202
178
  throw new Error('Unsupported query type');
203
179
  }
204
180
  }
205
- /**
206
- * Executes a free receipt query without signing a transaction.
207
- * Enables the DApp to fetch the receipt of a transaction without making a new request
208
- * to the wallet.
209
- * @param request - The query to execute
210
- * @returns The result of the query
211
- */
212
- async executeReceiptQueryFromRequest(request) {
213
- try {
214
- const isMainnet = this.ledgerId === LedgerId.MAINNET;
215
- const client = isMainnet ? Client.forMainnet() : Client.forTestnet();
216
- const receipt = TransactionReceiptQuery.fromBytes(request.toBytes());
217
- const result = await receipt.execute(client);
218
- return { result };
219
- }
220
- catch (error) {
221
- return { error };
222
- }
223
- }
224
181
  async _tryExecuteQueryRequest(request) {
225
182
  try {
226
- const isReceiptQuery = request instanceof TransactionReceiptQuery;
227
- if (isReceiptQuery) {
228
- this.logger.debug('Attempting to execute free receipt query', request);
229
- const result = await this.executeReceiptQueryFromRequest(request);
230
- if (!(result === null || result === void 0 ? void 0 : result.error)) {
231
- return { result: result.result };
232
- }
233
- else {
234
- this.logger.error('Error executing free receipt query. Sending to wallet.', result.error);
235
- }
236
- }
237
- /**
238
- * Note, should we be converting these to specific query types?
239
- * Left alone to avoid changing the API for other requests.
240
- */
241
- const query = isReceiptQuery
242
- ? TransactionReceiptQuery.fromBytes(request.toBytes())
243
- : Query.fromBytes(request.toBytes());
244
- this.logger.debug('Executing query request', query, queryToBase64String(query), isReceiptQuery);
183
+ const query = Query.fromBytes(request.toBytes());
245
184
  const result = await this.request({
246
185
  method: HederaJsonRpcMethod.SignAndExecuteQuery,
247
186
  params: {
@@ -249,7 +188,6 @@ export class DAppSigner {
249
188
  query: queryToBase64String(query),
250
189
  },
251
190
  });
252
- this.logger.debug('Query request completed successfully', result);
253
191
  return { result: this._parseQueryResponse(query, result.response) };
254
192
  }
255
193
  catch (error) {
@@ -257,42 +195,27 @@ export class DAppSigner {
257
195
  }
258
196
  }
259
197
  async call(request) {
260
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
261
- const isReceiptQuery = request instanceof TransactionReceiptQuery;
262
- let txResult = undefined;
263
- // a receipt query is a free query and we should not execute a transaction.
264
- if (!isReceiptQuery) {
265
- txResult = await this._tryExecuteTransactionRequest(request);
266
- if (txResult.result) {
267
- return txResult.result;
268
- }
198
+ var _a, _b, _c, _d, _e, _f;
199
+ const txResult = await this._tryExecuteTransactionRequest(request);
200
+ if (txResult.result) {
201
+ return txResult.result;
269
202
  }
270
203
  const queryResult = await this._tryExecuteQueryRequest(request);
271
204
  if (queryResult.result) {
272
205
  return queryResult.result;
273
206
  }
274
207
  // TODO: make this error more usable
275
- if (isReceiptQuery) {
276
- throw new Error('Error executing receipt query: \n' +
277
- JSON.stringify({
278
- queryError: {
279
- name: (_a = queryResult.error) === null || _a === void 0 ? void 0 : _a.name,
280
- message: (_b = queryResult.error) === null || _b === void 0 ? void 0 : _b.message,
281
- stack: (_c = queryResult.error) === null || _c === void 0 ? void 0 : _c.stack,
282
- },
283
- }));
284
- }
285
208
  throw new Error('Error executing transaction or query: \n' +
286
209
  JSON.stringify({
287
210
  txError: {
288
- name: (_d = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _d === void 0 ? void 0 : _d.name,
289
- message: (_e = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _e === void 0 ? void 0 : _e.message,
290
- stack: (_f = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _f === void 0 ? void 0 : _f.stack,
211
+ name: (_a = txResult.error) === null || _a === void 0 ? void 0 : _a.name,
212
+ message: (_b = txResult.error) === null || _b === void 0 ? void 0 : _b.message,
213
+ stack: (_c = txResult.error) === null || _c === void 0 ? void 0 : _c.stack,
291
214
  },
292
215
  queryError: {
293
- name: (_g = queryResult.error) === null || _g === void 0 ? void 0 : _g.name,
294
- message: (_h = queryResult.error) === null || _h === void 0 ? void 0 : _h.message,
295
- stack: (_j = queryResult.error) === null || _j === void 0 ? void 0 : _j.stack,
216
+ name: (_d = queryResult.error) === null || _d === void 0 ? void 0 : _d.name,
217
+ message: (_e = queryResult.error) === null || _e === void 0 ? void 0 : _e.message,
218
+ stack: (_f = queryResult.error) === null || _f === void 0 ? void 0 : _f.stack,
296
219
  },
297
220
  }, null, 2));
298
221
  }
@@ -309,7 +309,7 @@ export class DAppConnector {
309
309
  const allNamespaceAccounts = accountAndLedgerFromSession(session);
310
310
  return allNamespaceAccounts.map(({ account, network }) => {
311
311
  var _a;
312
- return new DAppSigner(account, this.walletConnectClient, session.topic, network, (_a = session.sessionProperties) === null || _a === void 0 ? void 0 : _a.extensionId, this.logger instanceof DefaultLogger ? this.logger.getLogLevel() : 'debug');
312
+ return new DAppSigner(account, this.walletConnectClient, session.topic, network, (_a = session.sessionProperties) === null || _a === void 0 ? void 0 : _a.extensionId);
313
313
  });
314
314
  }
315
315
  async onSessionConnected(session) {
@@ -0,0 +1,3 @@
1
+ export * from './shared';
2
+ export { default as Wallet } from './wallet';
3
+ export * from './dapp';
@@ -0,0 +1,22 @@
1
+ /*
2
+ *
3
+ * Hedera Wallet Connect
4
+ *
5
+ * Copyright (C) 2023 Hedera Hashgraph, LLC
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ */
20
+ export * from './shared';
21
+ export { default as Wallet } from './wallet';
22
+ export * from './dapp';
@@ -8,7 +8,6 @@ export declare class DefaultLogger implements ILogger {
8
8
  private logLevel;
9
9
  constructor(logLevel?: 'error' | 'warn' | 'info' | 'debug');
10
10
  setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void;
11
- getLogLevel(): 'error' | 'warn' | 'info' | 'debug';
12
11
  error(message: string, ...args: any[]): void;
13
12
  warn(message: string, ...args: any[]): void;
14
13
  info(message: string, ...args: any[]): void;
@@ -6,9 +6,6 @@ export class DefaultLogger {
6
6
  setLogLevel(level) {
7
7
  this.logLevel = level;
8
8
  }
9
- getLogLevel() {
10
- return this.logLevel;
11
- }
12
9
  error(message, ...args) {
13
10
  if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {
14
11
  console.error(`[ERROR] ${message}`, ...args);
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@hashgraph/hedera-wallet-connect",
3
- "version": "1.3.7-canary.14806a9.0",
3
+ "version": "1.3.7-canary.350bf60.0",
4
4
  "description": "A library to facilitate integrating Hedera with WalletConnect",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/hashgraph/hedera-wallet-connect.git"
8
8
  },
9
- "main": "./dist/src/index.js",
10
- "types": "./dist/src/index.d.ts",
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
11
  "author": "Hgraph <support@hgraph.io>",
12
12
  "keywords": [
13
13
  "hedera",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes