@aptos-labs/wallet-adapter-core 4.25.0 → 5.0.1

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 (70) hide show
  1. package/README.md +10 -0
  2. package/dist/WalletCore.d.ts +71 -112
  3. package/dist/WalletCore.d.ts.map +1 -1
  4. package/dist/constants.d.ts +4 -14
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/error/index.d.ts +3 -0
  7. package/dist/error/index.d.ts.map +1 -1
  8. package/dist/index.d.ts +3 -3
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +379 -859
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +408 -894
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/{AIP62StandardWallets/registry.d.ts → registry.d.ts} +1 -1
  15. package/dist/registry.d.ts.map +1 -0
  16. package/dist/sdkWallets.d.ts +3 -0
  17. package/dist/sdkWallets.d.ts.map +1 -0
  18. package/dist/utils/helpers.d.ts +7 -7
  19. package/dist/utils/helpers.d.ts.map +1 -1
  20. package/dist/utils/index.d.ts +1 -1
  21. package/dist/utils/index.d.ts.map +1 -1
  22. package/dist/utils/localStorage.d.ts +1 -2
  23. package/dist/utils/localStorage.d.ts.map +1 -1
  24. package/dist/utils/types.d.ts +26 -0
  25. package/dist/utils/types.d.ts.map +1 -0
  26. package/dist/utils/walletSelector.d.ts +18 -19
  27. package/dist/utils/walletSelector.d.ts.map +1 -1
  28. package/dist/version.d.ts +1 -1
  29. package/dist/version.d.ts.map +1 -1
  30. package/package.json +4 -5
  31. package/src/WalletCore.ts +474 -686
  32. package/src/constants.ts +3 -13
  33. package/src/error/index.ts +4 -0
  34. package/src/index.ts +3 -3
  35. package/src/{AIP62StandardWallets/registry.ts → registry.ts} +19 -6
  36. package/src/{AIP62StandardWallets/sdkWallets.ts → sdkWallets.ts} +6 -6
  37. package/src/utils/helpers.ts +46 -32
  38. package/src/utils/index.ts +1 -1
  39. package/src/utils/localStorage.ts +1 -3
  40. package/src/{AIP62StandardWallets → utils}/types.ts +22 -3
  41. package/src/utils/walletSelector.ts +32 -26
  42. package/src/version.ts +1 -1
  43. package/dist/AIP62StandardWallets/WalletStandard.d.ts +0 -44
  44. package/dist/AIP62StandardWallets/WalletStandard.d.ts.map +0 -1
  45. package/dist/AIP62StandardWallets/index.d.ts +0 -3
  46. package/dist/AIP62StandardWallets/index.d.ts.map +0 -1
  47. package/dist/AIP62StandardWallets/registry.d.ts.map +0 -1
  48. package/dist/AIP62StandardWallets/sdkWallets.d.ts +0 -4
  49. package/dist/AIP62StandardWallets/sdkWallets.d.ts.map +0 -1
  50. package/dist/AIP62StandardWallets/types.d.ts +0 -12
  51. package/dist/AIP62StandardWallets/types.d.ts.map +0 -1
  52. package/dist/LegacyWalletPlugins/WalletCoreV1.d.ts +0 -50
  53. package/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map +0 -1
  54. package/dist/LegacyWalletPlugins/conversion.d.ts +0 -21
  55. package/dist/LegacyWalletPlugins/conversion.d.ts.map +0 -1
  56. package/dist/LegacyWalletPlugins/index.d.ts +0 -4
  57. package/dist/LegacyWalletPlugins/index.d.ts.map +0 -1
  58. package/dist/LegacyWalletPlugins/types.d.ts +0 -116
  59. package/dist/LegacyWalletPlugins/types.d.ts.map +0 -1
  60. package/dist/__tests__/WalletCore.test.d.ts +0 -2
  61. package/dist/__tests__/WalletCore.test.d.ts.map +0 -1
  62. package/dist/utils/scopePollingDetectionStrategy.d.ts +0 -2
  63. package/dist/utils/scopePollingDetectionStrategy.d.ts.map +0 -1
  64. package/src/AIP62StandardWallets/WalletStandard.ts +0 -242
  65. package/src/AIP62StandardWallets/index.ts +0 -2
  66. package/src/LegacyWalletPlugins/WalletCoreV1.ts +0 -258
  67. package/src/LegacyWalletPlugins/conversion.ts +0 -124
  68. package/src/LegacyWalletPlugins/index.ts +0 -3
  69. package/src/LegacyWalletPlugins/types.ts +0 -188
  70. package/src/utils/scopePollingDetectionStrategy.ts +0 -46
package/dist/index.mjs CHANGED
@@ -1,87 +1,55 @@
1
1
  // src/version.ts
2
- var WALLET_ADAPTER_CORE_VERSION = "4.25.0";
2
+ var WALLET_ADAPTER_CORE_VERSION = "5.0.1";
3
3
 
4
4
  // src/WalletCore.ts
5
- import { TxnBuilderTypes as TxnBuilderTypes4, BCS as BCS2 } from "aptos";
5
+ import EventEmitter from "eventemitter3";
6
6
  import {
7
- Network as Network4,
8
7
  AccountAddress,
9
- AccountAuthenticatorEd25519,
10
- Ed25519PublicKey,
11
- Ed25519Signature,
12
- Aptos as Aptos3,
13
- generateRawTransaction,
14
- SimpleTransaction,
8
+ AnyPublicKey,
9
+ AnyPublicKeyVariant,
10
+ Aptos as Aptos2,
11
+ MultiEd25519PublicKey,
12
+ MultiEd25519Signature,
13
+ Network as Network3,
15
14
  NetworkToChainId
16
15
  } from "@aptos-labs/ts-sdk";
17
- import EventEmitter2 from "eventemitter3";
18
16
  import {
19
17
  getAptosWallets,
20
- UserResponseStatus as UserResponseStatus2,
21
- isWalletWithRequiredFeatureSet
18
+ isWalletWithRequiredFeatureSet,
19
+ UserResponseStatus
22
20
  } from "@aptos-labs/wallet-standard";
23
21
 
24
- // src/AIP62StandardWallets/sdkWallets.ts
25
- import {
26
- AptosConnectAppleWallet,
27
- AptosConnectGoogleWallet
28
- } from "@aptos-connect/wallet-adapter-plugin";
29
- import { Network } from "@aptos-labs/ts-sdk";
30
- import { DevTWallet, TWallet } from "@atomrigslab/aptos-wallet-adapter";
31
- import { MizuWallet } from "@mizuwallet-sdk/aptos-wallet-adapter";
32
- function getSDKWallets(dappConfig) {
33
- const sdkWallets = [];
34
- if (typeof window !== "undefined") {
35
- sdkWallets.push(
36
- new AptosConnectGoogleWallet({
37
- network: dappConfig == null ? void 0 : dappConfig.network,
38
- dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
39
- ...dappConfig == null ? void 0 : dappConfig.aptosConnect
40
- }),
41
- new AptosConnectAppleWallet({
42
- network: dappConfig == null ? void 0 : dappConfig.network,
43
- dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
44
- ...dappConfig == null ? void 0 : dappConfig.aptosConnect
45
- })
46
- );
47
- if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)) {
48
- sdkWallets.push(
49
- new MizuWallet({
50
- network: dappConfig.network,
51
- manifestURL: dappConfig.mizuwallet.manifestURL,
52
- appId: dappConfig.mizuwallet.appId
53
- })
54
- );
55
- }
22
+ // src/ga/index.ts
23
+ var GA4 = class {
24
+ constructor() {
25
+ this.aptosGAID = "G-GNVVWBL3J9";
26
+ this.injectGA(this.aptosGAID);
56
27
  }
57
- if ((dappConfig == null ? void 0 : dappConfig.network) === Network.MAINNET) {
58
- sdkWallets.push(new TWallet());
59
- } else {
60
- sdkWallets.push(new DevTWallet());
28
+ gtag(a, b, c) {
29
+ let dataLayer = window.dataLayer || [];
30
+ dataLayer.push(arguments);
31
+ }
32
+ injectGA(gaID) {
33
+ if (typeof window === "undefined")
34
+ return;
35
+ if (!gaID)
36
+ return;
37
+ const head = document.getElementsByTagName("head")[0];
38
+ var myScript = document.createElement("script");
39
+ myScript.setAttribute(
40
+ "src",
41
+ `https://www.googletagmanager.com/gtag/js?id=${gaID}`
42
+ );
43
+ const that = this;
44
+ myScript.onload = function() {
45
+ that.gtag("js", new Date());
46
+ that.gtag("config", `${gaID}`, {
47
+ send_page_view: false
48
+ });
49
+ };
50
+ head.insertBefore(myScript, head.children[1]);
61
51
  }
62
- return sdkWallets;
63
- }
64
-
65
- // src/constants.ts
66
- var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => {
67
- WalletReadyState2["Installed"] = "Installed";
68
- WalletReadyState2["NotDetected"] = "NotDetected";
69
- WalletReadyState2["Loadable"] = "Loadable";
70
- WalletReadyState2["Unsupported"] = "Unsupported";
71
- return WalletReadyState2;
72
- })(WalletReadyState || {});
73
- var NetworkName = /* @__PURE__ */ ((NetworkName2) => {
74
- NetworkName2["Mainnet"] = "mainnet";
75
- NetworkName2["Testnet"] = "testnet";
76
- NetworkName2["Devnet"] = "devnet";
77
- return NetworkName2;
78
- })(NetworkName || {});
79
- var ChainIdToAnsSupportedNetworkMap = {
80
- "1": "mainnet",
81
- "2": "testnet"
82
52
  };
83
- var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app";
84
- var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account";
85
53
 
86
54
  // src/error/index.ts
87
55
  var WalletError = class extends Error {
@@ -168,118 +136,45 @@ var WalletSignTransactionError = class extends WalletError {
168
136
  this.name = "WalletSignTransactionError";
169
137
  }
170
138
  };
171
- var WalletNotSupportedMethod = class extends WalletError {
139
+ var WalletChangeNetworkError = class extends WalletError {
172
140
  constructor() {
173
141
  super(...arguments);
174
- this.name = "WalletNotSupportedMethod";
142
+ this.name = "WalletChangeNetworkError";
175
143
  }
176
144
  };
177
- var WalletChangeNetworkError = class extends WalletError {
145
+ var WalletSubmitTransactionError = class extends WalletError {
178
146
  constructor() {
179
147
  super(...arguments);
180
- this.name = "WalletChangeNetworkError";
148
+ this.name = "WalletSubmitTransactionError";
181
149
  }
182
150
  };
183
151
 
184
- // src/LegacyWalletPlugins/WalletCoreV1.ts
185
- import { HexString } from "aptos";
186
- import EventEmitter from "eventemitter3";
187
- import { Buffer } from "buffer";
188
- import {
189
- generateTransactionPayload as generateTransactionPayload2
190
- } from "@aptos-labs/ts-sdk";
191
- import nacl from "tweetnacl";
192
-
193
- // src/LegacyWalletPlugins/conversion.ts
194
- import {
195
- Network as Network2,
196
- TypeTag,
197
- generateTransactionPayload
198
- } from "@aptos-labs/ts-sdk";
199
- import { BCS, TxnBuilderTypes } from "aptos";
200
- function convertNetwork(networkInfo) {
201
- switch (networkInfo == null ? void 0 : networkInfo.name) {
202
- case "mainnet":
203
- return Network2.MAINNET;
204
- case "testnet":
205
- return Network2.TESTNET;
206
- case "devnet":
207
- return Network2.DEVNET;
208
- case "local":
209
- return Network2.LOCAL;
210
- default:
211
- throw new Error("Invalid Aptos network name");
212
- }
213
- }
214
- function convertV2TransactionPayloadToV1BCSPayload(payload) {
215
- const deserializer = new BCS.Deserializer(payload.bcsToBytes());
216
- return TxnBuilderTypes.TransactionPayload.deserialize(deserializer);
217
- }
218
- function convertV2PayloadToV1JSONPayload(payload) {
219
- var _a, _b;
220
- if ("bytecode" in payload) {
221
- throw new Error("script payload not supported");
222
- } else if ("multisigAddress" in payload) {
223
- const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map(
224
- (typeTag) => {
225
- if (typeTag instanceof TypeTag) {
226
- return typeTag.toString();
227
- }
228
- return typeTag;
229
- }
230
- );
231
- const newPayload = {
232
- type: "multisig_payload",
233
- multisig_address: payload.multisigAddress.toString(),
234
- function: payload.function,
235
- type_arguments: stringTypeTags || [],
236
- arguments: payload.functionArguments
237
- };
238
- return newPayload;
239
- } else {
240
- const stringTypeTags = (_b = payload.typeArguments) == null ? void 0 : _b.map(
241
- (typeTag) => {
242
- if (typeTag instanceof TypeTag) {
243
- return typeTag.toString();
244
- }
245
- return typeTag;
246
- }
247
- );
248
- const newPayload = {
249
- type: "entry_function_payload",
250
- function: payload.function,
251
- type_arguments: stringTypeTags || [],
252
- arguments: payload.functionArguments
253
- };
254
- return newPayload;
255
- }
256
- }
257
- function convertPayloadInputV1ToV2(inputV1) {
258
- if ("function" in inputV1) {
259
- const inputV2 = {
260
- function: inputV1.function,
261
- functionArguments: inputV1.arguments,
262
- typeArguments: inputV1.type_arguments
263
- };
264
- return inputV2;
265
- }
266
- throw new Error("Payload type not supported");
267
- }
268
- async function generateTransactionPayloadFromV1Input(aptosConfig, inputV1) {
269
- if ("function" in inputV1) {
270
- const inputV2 = convertPayloadInputV1ToV2(inputV1);
271
- return generateTransactionPayload({ ...inputV2, aptosConfig });
272
- }
273
- throw new Error("Payload type not supported");
274
- }
152
+ // src/constants.ts
153
+ var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => {
154
+ WalletReadyState2["Installed"] = "Installed";
155
+ WalletReadyState2["NotDetected"] = "NotDetected";
156
+ return WalletReadyState2;
157
+ })(WalletReadyState || {});
158
+ var NetworkName = /* @__PURE__ */ ((NetworkName2) => {
159
+ NetworkName2["Mainnet"] = "mainnet";
160
+ NetworkName2["Testnet"] = "testnet";
161
+ NetworkName2["Devnet"] = "devnet";
162
+ return NetworkName2;
163
+ })(NetworkName || {});
164
+ var ChainIdToAnsSupportedNetworkMap = {
165
+ "1": "mainnet",
166
+ "2": "testnet"
167
+ };
168
+ var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app";
169
+ var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account";
275
170
 
276
171
  // src/utils/helpers.ts
277
172
  import {
278
173
  Aptos,
279
- AptosConfig as AptosConfig2,
174
+ AptosConfig,
280
175
  Hex,
281
- NetworkToNodeAPI,
282
- Serializable
176
+ Network,
177
+ NetworkToNodeAPI
283
178
  } from "@aptos-labs/ts-sdk";
284
179
  function isMobile() {
285
180
  return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(
@@ -303,13 +198,6 @@ function isRedirectable() {
303
198
  function generalizedErrorMessage(error) {
304
199
  return typeof error === "object" && "message" in error ? error.message : error;
305
200
  }
306
- var areBCSArguments = (args) => {
307
- if (args.length === 0)
308
- return false;
309
- return args.every(
310
- (arg) => arg instanceof Serializable
311
- );
312
- };
313
201
  var getAptosConfig = (networkInfo, dappConfig) => {
314
202
  if (!networkInfo) {
315
203
  throw new Error("Undefined network");
@@ -318,17 +206,31 @@ var getAptosConfig = (networkInfo, dappConfig) => {
318
206
  const currentNetwork = convertNetwork(networkInfo);
319
207
  if (isAptosLiveNetwork(currentNetwork)) {
320
208
  const apiKey = dappConfig == null ? void 0 : dappConfig.aptosApiKeys;
321
- return new AptosConfig2({
209
+ return new AptosConfig({
322
210
  network: currentNetwork,
323
211
  clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 }
324
212
  });
325
213
  }
326
- return new AptosConfig2({
214
+ return new AptosConfig({
327
215
  network: currentNetwork
328
216
  });
329
217
  }
218
+ const knownNetworks = {
219
+ okx: "https://wallet.okx.com/fullnode/aptos/discover/rpc"
220
+ };
221
+ if (networkInfo.url) {
222
+ const isKnownNetwork = Object.values(knownNetworks).includes(
223
+ networkInfo.url
224
+ );
225
+ if (isKnownNetwork) {
226
+ return new AptosConfig({
227
+ network: Network.CUSTOM,
228
+ fullnode: networkInfo.url
229
+ });
230
+ }
231
+ }
330
232
  throw new Error(
331
- "Invalid network, custom network not supported with Aptos wallet adapter to prevent user from using an unexpected network."
233
+ `Invalid network, network ${networkInfo.name} not supported with Aptos wallet adapter to prevent user from using an unexpected network.`
332
234
  );
333
235
  };
334
236
  var isAptosNetwork = (networkInfo) => {
@@ -364,6 +266,20 @@ var handlePublishPackageTransaction = (transactionInput) => {
364
266
  }
365
267
  return { metadataBytes, byteCode };
366
268
  };
269
+ function convertNetwork(networkInfo) {
270
+ switch (networkInfo == null ? void 0 : networkInfo.name) {
271
+ case "mainnet":
272
+ return Network.MAINNET;
273
+ case "testnet":
274
+ return Network.TESTNET;
275
+ case "devnet":
276
+ return Network.DEVNET;
277
+ case "local":
278
+ return Network.LOCAL;
279
+ default:
280
+ throw new Error("Invalid Aptos network name");
281
+ }
282
+ }
367
283
 
368
284
  // src/utils/localStorage.ts
369
285
  var LOCAL_STORAGE_ITEM_KEY = "AptosWalletName";
@@ -377,36 +293,6 @@ function getLocalStorage() {
377
293
  localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);
378
294
  }
379
295
 
380
- // src/utils/scopePollingDetectionStrategy.ts
381
- function scopePollingDetectionStrategy(detect) {
382
- if (typeof window === "undefined" || typeof document === "undefined")
383
- return;
384
- const disposers = [];
385
- function detectAndDispose() {
386
- const detected = detect();
387
- if (detected) {
388
- for (const dispose of disposers) {
389
- dispose();
390
- }
391
- }
392
- }
393
- const interval = setInterval(detectAndDispose, 1e3);
394
- disposers.push(() => clearInterval(interval));
395
- if (document.readyState === "loading") {
396
- document.addEventListener("DOMContentLoaded", detectAndDispose, {
397
- once: true
398
- });
399
- disposers.push(
400
- () => document.removeEventListener("DOMContentLoaded", detectAndDispose)
401
- );
402
- }
403
- if (document.readyState !== "complete") {
404
- window.addEventListener("load", detectAndDispose, { once: true });
405
- disposers.push(() => window.removeEventListener("load", detectAndDispose));
406
- }
407
- detectAndDispose();
408
- }
409
-
410
296
  // src/utils/walletSelector.ts
411
297
  function partitionWallets(wallets, partitionFunction = isInstalledOrLoadable) {
412
298
  const defaultWallets = [];
@@ -420,7 +306,7 @@ function partitionWallets(wallets, partitionFunction = isInstalledOrLoadable) {
420
306
  return { defaultWallets, moreWallets };
421
307
  }
422
308
  function isInstalledOrLoadable(wallet) {
423
- return wallet.readyState === "Installed" /* Installed */ || wallet.readyState === "Loadable" /* Loadable */;
309
+ return wallet.readyState === "Installed" /* Installed */;
424
310
  }
425
311
  function isInstallRequired(wallet) {
426
312
  const isWalletReady = isInstalledOrLoadable(wallet);
@@ -432,328 +318,38 @@ function truncateAddress(address) {
432
318
  return;
433
319
  return `${address.slice(0, 6)}...${address.slice(-5)}`;
434
320
  }
435
- function isAptosConnectWallet(wallet) {
436
- if (!wallet.url)
437
- return false;
438
- return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);
439
- }
440
- function getAptosConnectWallets(wallets) {
441
- const { defaultWallets, moreWallets } = partitionWallets(
442
- wallets,
443
- isAptosConnectWallet
444
- );
445
- return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };
446
- }
447
- function groupAndSortWallets(wallets, options) {
448
- const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);
449
- const { defaultWallets, moreWallets } = partitionWallets(otherWallets);
450
- if (options == null ? void 0 : options.sortAptosConnectWallets) {
451
- aptosConnectWallets.sort(options.sortAptosConnectWallets);
452
- }
453
- if (options == null ? void 0 : options.sortAvailableWallets) {
454
- defaultWallets.sort(options.sortAvailableWallets);
455
- }
456
- if (options == null ? void 0 : options.sortInstallableWallets) {
457
- moreWallets.sort(options.sortInstallableWallets);
458
- }
459
- return {
460
- aptosConnectWallets,
461
- availableWallets: defaultWallets,
462
- installableWallets: moreWallets
463
- };
464
- }
465
-
466
- // src/LegacyWalletPlugins/WalletCoreV1.ts
467
- var WalletCoreV1 = class extends EventEmitter {
468
- async connect(wallet) {
469
- const account = await wallet.connect();
470
- return account;
471
- }
472
- async resolveSignAndSubmitTransaction(payloadData, network, wallet, transactionInput, dappConfig) {
473
- var _a, _b, _c, _d, _e, _f, _g, _h;
474
- if (areBCSArguments(payloadData.functionArguments)) {
475
- const aptosConfig = getAptosConfig(network, dappConfig);
476
- const newPayload = await generateTransactionPayload2({
477
- ...payloadData,
478
- aptosConfig
479
- });
480
- const oldTransactionPayload2 = convertV2TransactionPayloadToV1BCSPayload(newPayload);
481
- return await this.signAndSubmitBCSTransaction(
482
- oldTransactionPayload2,
483
- wallet,
484
- {
485
- max_gas_amount: ((_a = transactionInput.options) == null ? void 0 : _a.maxGasAmount) ? BigInt((_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount) : void 0,
486
- gas_unit_price: ((_c = transactionInput.options) == null ? void 0 : _c.gasUnitPrice) ? BigInt((_d = transactionInput.options) == null ? void 0 : _d.gasUnitPrice) : void 0
487
- }
488
- );
489
- }
490
- const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData);
491
- return await this.signAndSubmitTransaction(oldTransactionPayload, wallet, {
492
- max_gas_amount: ((_e = transactionInput.options) == null ? void 0 : _e.maxGasAmount) ? BigInt((_f = transactionInput.options) == null ? void 0 : _f.maxGasAmount) : void 0,
493
- gas_unit_price: ((_g = transactionInput.options) == null ? void 0 : _g.gasUnitPrice) ? BigInt((_h = transactionInput.options) == null ? void 0 : _h.gasUnitPrice) : void 0
494
- });
495
- }
496
- async signAndSubmitTransaction(transaction, wallet, options) {
497
- try {
498
- const response = await wallet.signAndSubmitTransaction(
499
- transaction,
500
- options
501
- );
502
- return response;
503
- } catch (error) {
504
- const errMsg = typeof error == "object" && "message" in error ? error.message : error;
505
- throw new WalletSignAndSubmitMessageError(errMsg).message;
506
- }
507
- }
508
- async signAndSubmitBCSTransaction(transaction, wallet, options) {
509
- if (!("signAndSubmitBCSTransaction" in wallet)) {
510
- throw new WalletNotSupportedMethod(
511
- `Submit a BCS Transaction is not supported by ${wallet.name}`
512
- ).message;
513
- }
514
- try {
515
- const response = await wallet.signAndSubmitBCSTransaction(
516
- transaction,
517
- options
518
- );
519
- return response;
520
- } catch (error) {
521
- const errMsg = typeof error == "object" && "message" in error ? error.message : error;
522
- throw new WalletSignAndSubmitMessageError(errMsg).message;
523
- }
524
- }
525
- async signTransaction(transaction, wallet, options) {
526
- try {
527
- const response = await wallet.signTransaction(
528
- transaction,
529
- options
530
- );
531
- return response;
532
- } catch (error) {
533
- const errMsg = typeof error == "object" && "message" in error ? error.message : error;
534
- throw new WalletSignTransactionError(errMsg).message;
535
- }
536
- }
537
- async signMessageAndVerify(message, wallet, account) {
538
- try {
539
- const response = await wallet.signMessage(message);
540
- if (!response)
541
- throw new WalletSignMessageAndVerifyError("Failed to sign a message").message;
542
- console.log("signMessageAndVerify signMessage response", response);
543
- let verified = false;
544
- if (Array.isArray(response.signature)) {
545
- const { fullMessage, signature, bitmap } = response;
546
- if (bitmap) {
547
- const minKeysRequired = account.minKeysRequired;
548
- if (signature.length < minKeysRequired) {
549
- verified = false;
550
- } else {
551
- const bits = Array.from(bitmap).flatMap(
552
- (n) => Array.from({ length: 8 }).map((_, i) => n >> i & 1)
553
- );
554
- const index = bits.map((_, i) => i).filter((i) => bits[i]);
555
- const publicKeys = account.publicKey;
556
- const matchedPublicKeys = publicKeys.filter(
557
- (_, i) => index.includes(i)
558
- );
559
- verified = true;
560
- for (let i = 0; i < signature.length; i++) {
561
- const isSigVerified = nacl.sign.detached.verify(
562
- Buffer.from(fullMessage),
563
- Buffer.from(signature[i], "hex"),
564
- Buffer.from(matchedPublicKeys[i], "hex")
565
- );
566
- if (!isSigVerified) {
567
- verified = false;
568
- break;
569
- }
570
- }
571
- }
572
- } else {
573
- throw new WalletSignMessageAndVerifyError("Failed to get a bitmap").message;
574
- }
575
- } else {
576
- const currentAccountPublicKey = new HexString(
577
- account.publicKey
578
- );
579
- const signature = new HexString(
580
- response.signature
581
- );
582
- verified = nacl.sign.detached.verify(
583
- Buffer.from(response.fullMessage),
584
- Buffer.from(signature.noPrefix(), "hex"),
585
- Buffer.from(currentAccountPublicKey.noPrefix(), "hex")
586
- );
587
- }
588
- return verified;
589
- } catch (error) {
590
- const errMsg = generalizedErrorMessage(error);
591
- throw new WalletSignMessageAndVerifyError(errMsg).message;
592
- }
593
- }
594
- };
595
-
596
- // src/LegacyWalletPlugins/types.ts
597
- import { TxnBuilderTypes as TxnBuilderTypes3, Types as Types3 } from "aptos";
598
-
599
- // src/AIP62StandardWallets/WalletStandard.ts
600
- import {
601
- UserResponseStatus
602
- } from "@aptos-labs/wallet-standard";
603
- import {
604
- AnyPublicKey,
605
- AnyPublicKeyVariant,
606
- MultiEd25519Signature,
607
- MultiEd25519PublicKey
608
- } from "@aptos-labs/ts-sdk";
609
- var WalletStandardCore = class {
610
- async connect(wallet) {
611
- const response = await wallet.connect();
612
- if (response.status === UserResponseStatus.REJECTED) {
613
- throw new WalletConnectionError("User has rejected the request").message;
614
- }
615
- return response.args;
616
- }
617
- async signAndSubmitTransaction(transactionInput, aptos, account, wallet, standardWallets) {
618
- var _a, _b, _c;
619
- try {
620
- const standardWallet = standardWallets.find(
621
- (standardWallet2) => wallet.name === standardWallet2.name
622
- );
623
- if (((_a = standardWallet == null ? void 0 : standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") {
624
- const transaction2 = await aptos.transaction.build.simple({
625
- sender: account.address.toString(),
626
- data: transactionInput.data,
627
- options: transactionInput.options
628
- });
629
- const response2 = await wallet.signAndSubmitTransaction(
630
- transaction2
631
- );
632
- if (response2.status === UserResponseStatus.REJECTED) {
633
- throw new WalletConnectionError("User has rejected the request").message;
634
- }
635
- return response2.args;
636
- }
637
- const transaction = {
638
- gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice,
639
- maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount,
640
- payload: transactionInput.data
641
- };
642
- const response = await wallet.signAndSubmitTransaction(
643
- transaction
644
- );
645
- if (response.status === UserResponseStatus.REJECTED) {
646
- throw new WalletConnectionError("User has rejected the request").message;
647
- }
648
- return response.args;
649
- } catch (error) {
650
- const errMsg = generalizedErrorMessage(error);
651
- throw new WalletSignAndSubmitMessageError(errMsg).message;
652
- }
653
- }
654
- async signTransaction(transactionOrInput, wallet, asFeePayer) {
655
- const response = await wallet.signTransaction(
656
- transactionOrInput,
657
- asFeePayer
658
- );
659
- if (response.status === UserResponseStatus.REJECTED) {
660
- throw new WalletConnectionError("User has rejected the request").message;
661
- }
662
- return response.args;
663
- }
664
- async signMessage(message, wallet) {
665
- try {
666
- const response = await wallet.signMessage(
667
- message
668
- );
669
- if (response.status === UserResponseStatus.REJECTED) {
670
- throw new WalletConnectionError("User has rejected the request").message;
671
- }
672
- return response.args;
673
- } catch (error) {
674
- const errMsg = generalizedErrorMessage(error);
675
- throw new WalletSignMessageError(errMsg).message;
676
- }
677
- }
678
- async signMessageAndVerify(message, wallet) {
679
- try {
680
- const response = await wallet.signMessage(
681
- message
682
- );
683
- const account = await wallet.account();
684
- if (response.status === UserResponseStatus.REJECTED) {
685
- throw new WalletConnectionError("Failed to sign a message").message;
686
- }
687
- if (account.publicKey instanceof AnyPublicKey && account.publicKey.variant === AnyPublicKeyVariant.Keyless) {
688
- return true;
689
- }
690
- let verified = false;
691
- if (response.args.signature instanceof MultiEd25519Signature) {
692
- if (!(account.publicKey instanceof MultiEd25519PublicKey)) {
693
- throw new WalletSignMessageAndVerifyError(
694
- "Public key and Signature type mismatch"
695
- ).message;
696
- }
697
- const { fullMessage, signature } = response.args;
698
- const bitmap = signature.bitmap;
699
- if (bitmap) {
700
- const minKeysRequired = account.publicKey.threshold;
701
- if (signature.signatures.length < minKeysRequired) {
702
- verified = false;
703
- } else {
704
- verified = account.publicKey.verifySignature({
705
- message: new TextEncoder().encode(fullMessage),
706
- signature
707
- });
708
- }
709
- }
710
- } else {
711
- verified = account.publicKey.verifySignature({
712
- message: new TextEncoder().encode(response.args.fullMessage),
713
- signature: response.args.signature
714
- });
715
- }
716
- return verified;
717
- } catch (error) {
718
- const errMsg = generalizedErrorMessage(error);
719
- throw new WalletSignMessageAndVerifyError(errMsg).message;
720
- }
721
- }
722
- };
723
-
724
- // src/ga/index.ts
725
- var GA4 = class {
726
- constructor() {
727
- this.aptosGAID = "G-GNVVWBL3J9";
728
- this.injectGA(this.aptosGAID);
321
+ function isAptosConnectWallet(wallet) {
322
+ if (!wallet.url)
323
+ return false;
324
+ return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);
325
+ }
326
+ function getAptosConnectWallets(wallets) {
327
+ const { defaultWallets, moreWallets } = partitionWallets(
328
+ wallets,
329
+ isAptosConnectWallet
330
+ );
331
+ return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };
332
+ }
333
+ function groupAndSortWallets(wallets, options) {
334
+ const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);
335
+ const { defaultWallets, moreWallets } = partitionWallets(otherWallets);
336
+ if (options == null ? void 0 : options.sortAptosConnectWallets) {
337
+ aptosConnectWallets.sort(options.sortAptosConnectWallets);
729
338
  }
730
- gtag(a, b, c) {
731
- let dataLayer = window.dataLayer || [];
732
- dataLayer.push(arguments);
339
+ if (options == null ? void 0 : options.sortAvailableWallets) {
340
+ defaultWallets.sort(options.sortAvailableWallets);
733
341
  }
734
- injectGA(gaID) {
735
- if (typeof window === "undefined")
736
- return;
737
- if (!gaID)
738
- return;
739
- const head = document.getElementsByTagName("head")[0];
740
- var myScript = document.createElement("script");
741
- myScript.setAttribute(
742
- "src",
743
- `https://www.googletagmanager.com/gtag/js?id=${gaID}`
744
- );
745
- const that = this;
746
- myScript.onload = function() {
747
- that.gtag("js", new Date());
748
- that.gtag("config", `${gaID}`, {
749
- send_page_view: false
750
- });
751
- };
752
- head.insertBefore(myScript, head.children[1]);
342
+ if (options == null ? void 0 : options.sortInstallableWallets) {
343
+ moreWallets.sort(options.sortInstallableWallets);
753
344
  }
754
- };
345
+ return {
346
+ aptosConnectWallets,
347
+ availableWallets: defaultWallets,
348
+ installableWallets: moreWallets
349
+ };
350
+ }
755
351
 
756
- // src/AIP62StandardWallets/registry.ts
352
+ // src/registry.ts
757
353
  var aptosStandardSupportedWalletList = [
758
354
  {
759
355
  name: "Nightly",
@@ -777,99 +373,90 @@ var aptosStandardSupportedWalletList = [
777
373
  icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K",
778
374
  readyState: "NotDetected" /* NotDetected */,
779
375
  isAIP62Standard: true
376
+ },
377
+ {
378
+ name: "Rimosafe",
379
+ url: "https://chromewebstore.google.com/detail/rimo-safe-wallet/kiicddjcakdmobjkcpppkgcjbpakcagp",
380
+ icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiLz4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCAzKSBzY2FsZSgwLjgpIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjkuNTMxMSA5Ljg0MzY5VjBIMTkuNjg3NEwxOS42ODc3IDAuMDAwMzQwNTU1TDAgMC4wMDAzNDE0MTVMNC4zMjEzNGUtMDcgOS44NDQwM0g5Ljg0MzY5QzQuNDA3MTcgOS44NDQwMyAwIDE0LjI1MTIgMCAxOS42ODc3VjMwLjAwMDFIOS44NDM2OVYxOS42ODc5TDE5LjY4NzEgMzAuMDAwMUwxOS42ODcxIDE5LjY4NzdMMjkuNTMwOCA5Ljg0NDAzTDI5LjUzMTEgOS44NDQwM1Y5Ljg0MzY1TDI5LjUzMTEgOS44NDM2OVpNMTkuNjg3MSAxOS42ODc2TDE5LjY4NzEgOS44NDQwM0g5Ljg0MzY5VjE5LjY4NzZIMTkuNjg3MVpNMjkuNTMxMSA5Ljg0MzY1TDE5LjY4NzcgMC4wMDAzNDA1NTVMMjkuNTMxMSAwLjAwMDM0MDEyNVY5Ljg0MzY1Wk0xOS42ODc0IDE5LjY4NzZIMjkuNTMxMVYzMC4wMDAxSDE5LjY4NzRWMTkuNjg3NloiIGZpbGw9IiNGRjVDMjgiLz4KICA8L2c+Cjwvc3ZnPgo=",
381
+ readyState: "NotDetected" /* NotDetected */,
382
+ isAIP62Standard: true
383
+ },
384
+ {
385
+ name: "OKX Wallet",
386
+ url: "https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",
387
+ icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHgB7Zq9jtpAEMfHlhEgQLiioXEkoAGECwoKxMcTRHmC5E3IoyRPkPAEkI7unJYmTgEFTYwA8a3NTKScLnCHN6c9r1e3P2llWQy7M/s1Gv1twCP0ej37dDq9x+Zut1t3t9vZjDEHIiSRSPg4ZpDL5fxkMvn1cDh8m0wmfugfO53OoFQq/crn8wxfY9EymQyrVCqMfHvScZx1p9ls3pFxXBy/bKlUipGPrVbLuQqAfsCliq3zl0H84zwtjQrOw4Mt1W63P5LvBm2d+Xz+YzqdgkqUy+WgWCy+Mc/nc282m4FqLBYL+3g8fjDxenq72WxANZbLJeA13zDX67UDioL5ybXwafMYu64Ltn3bdDweQ5R97fd7GyhBQMipx4POeEDHIu2LfDdBIGGz+hJ9CQ1ABjoA2egAZPM6AgiCAEQhsi/C4jHyPA/6/f5NG3Ks2+3CYDC4aTccDrn6ojG54MnEvG00GoVmWLIRNZ7wTCwDHYBsdACy0QHIhiuRETxlICWpMMhGZHmqS8qH6JLyGegAZKMDkI0uKf8X4SWlaZo+Pp1bRrwlJU8ZKLIvUjKh0WiQ3sRUbNVq9c5Ebew7KEo2m/1p4jJ4qAmDaqDQBzj5XyiAT4VCQezJigAU+IDU+z8vJFnGWeC+bKQV/5VZ71FV6L7PA3gg3tXrdQ+DgLhC+75Wq3no69P3MC0NFQpx2lL04Ql9gHK1bRDjsSBIvScBnDTk1WrlGIZBorIDEYJj+rhdgnQ67VmWRe0zlplXl81vcyEt0rSoYDUAAAAASUVORK5CYII=",
388
+ readyState: "NotDetected" /* NotDetected */,
389
+ isAIP62Standard: true
780
390
  }
781
391
  ];
782
392
 
393
+ // src/sdkWallets.ts
394
+ import {
395
+ AptosConnectAppleWallet,
396
+ AptosConnectGoogleWallet
397
+ } from "@aptos-connect/wallet-adapter-plugin";
398
+ import { Network as Network2 } from "@aptos-labs/ts-sdk";
399
+ import { DevTWallet, TWallet } from "@atomrigslab/aptos-wallet-adapter";
400
+ import { MizuWallet } from "@mizuwallet-sdk/aptos-wallet-adapter";
401
+ function getSDKWallets(dappConfig) {
402
+ const sdkWallets = [];
403
+ if (typeof window !== "undefined") {
404
+ sdkWallets.push(
405
+ new AptosConnectGoogleWallet({
406
+ network: dappConfig == null ? void 0 : dappConfig.network,
407
+ dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
408
+ ...dappConfig == null ? void 0 : dappConfig.aptosConnect
409
+ }),
410
+ new AptosConnectAppleWallet({
411
+ network: dappConfig == null ? void 0 : dappConfig.network,
412
+ dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
413
+ ...dappConfig == null ? void 0 : dappConfig.aptosConnect
414
+ })
415
+ );
416
+ if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [Network2.MAINNET, Network2.TESTNET].includes(dappConfig.network)) {
417
+ sdkWallets.push(
418
+ new MizuWallet({
419
+ network: dappConfig.network,
420
+ manifestURL: dappConfig.mizuwallet.manifestURL,
421
+ appId: dappConfig.mizuwallet.appId
422
+ })
423
+ );
424
+ }
425
+ }
426
+ if ((dappConfig == null ? void 0 : dappConfig.network) === Network2.MAINNET) {
427
+ sdkWallets.push(new TWallet());
428
+ } else {
429
+ sdkWallets.push(new DevTWallet());
430
+ }
431
+ return sdkWallets;
432
+ }
433
+
783
434
  // src/WalletCore.ts
784
- var WalletCore = class extends EventEmitter2 {
785
- constructor(plugins, optInWallets, dappConfig, disableTelemetry) {
435
+ var WalletCore = class extends EventEmitter {
436
+ constructor(optInWallets, dappConfig, disableTelemetry) {
786
437
  super();
787
- this._wallets = [];
788
- this._optInWallets = [];
789
- this._standard_wallets = [];
790
- this._all_wallets = [];
791
438
  this._wallet = null;
792
- this._account = null;
439
+ this._sdkWallets = [];
440
+ this._standard_wallets = [];
441
+ this._standard_not_detected_wallets = [];
793
442
  this._network = null;
794
- this.walletCoreV1 = new WalletCoreV1();
795
- this.walletStandardCore = new WalletStandardCore();
796
- this._connecting = false;
797
443
  this._connected = false;
798
- this.ga4 = null;
444
+ this._connecting = false;
445
+ this._account = null;
446
+ this._optInWallets = [];
799
447
  this._disableTelemetry = false;
800
- this.standardizeStandardWalletToPluginWalletType = (standardWallet) => {
801
- var _a, _b, _c, _d;
802
- let standardWalletConvertedToWallet = {
803
- name: standardWallet.name,
804
- url: standardWallet.url,
805
- icon: standardWallet.icon,
806
- provider: standardWallet,
807
- connect: standardWallet.features["aptos:connect"].connect,
808
- disconnect: standardWallet.features["aptos:disconnect"].disconnect,
809
- network: standardWallet.features["aptos:network"].network,
810
- account: standardWallet.features["aptos:account"].account,
811
- signAndSubmitTransaction: (_a = standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.signAndSubmitTransaction,
812
- signMessage: standardWallet.features["aptos:signMessage"].signMessage,
813
- onAccountChange: standardWallet.features["aptos:onAccountChange"].onAccountChange,
814
- onNetworkChange: standardWallet.features["aptos:onNetworkChange"].onNetworkChange,
815
- signTransaction: standardWallet.features["aptos:signTransaction"].signTransaction,
816
- openInMobileApp: (_b = standardWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp,
817
- changeNetwork: (_c = standardWallet.features["aptos:changeNetwork"]) == null ? void 0 : _c.changeNetwork,
818
- readyState: "Installed" /* Installed */,
819
- isAIP62Standard: true,
820
- isSignTransactionV1_1: ((_d = standardWallet.features["aptos:signTransaction"]) == null ? void 0 : _d.version) === "1.1"
821
- };
822
- this._all_wallets = this._all_wallets.filter(
823
- (item) => item.name !== standardWalletConvertedToWallet.name
824
- );
825
- this._all_wallets.push(standardWalletConvertedToWallet);
826
- this.emit("standardWalletsAdded", standardWalletConvertedToWallet);
827
- };
828
- this._wallets = plugins;
829
- this._optInWallets = optInWallets;
448
+ this.ga4 = null;
449
+ this._optInWallets = optInWallets || [];
830
450
  this._dappConfig = dappConfig;
831
- this._disableTelemetry = disableTelemetry;
451
+ this._disableTelemetry = disableTelemetry != null ? disableTelemetry : false;
832
452
  this._sdkWallets = getSDKWallets(this._dappConfig);
833
453
  if (!this._disableTelemetry) {
834
454
  this.ga4 = new GA4();
835
455
  }
836
456
  this.fetchExtensionAIP62AptosWallets();
837
457
  this.fetchSDKAIP62AptosWallets();
838
- this.scopePollingDetectionStrategy();
839
458
  this.appendNotDetectedStandardSupportedWallets();
840
459
  }
841
- scopePollingDetectionStrategy() {
842
- var _a;
843
- (_a = this._wallets) == null ? void 0 : _a.forEach((wallet) => {
844
- const existingStandardPontemWallet = this._standard_wallets.find(
845
- (wallet2) => wallet2.name == "Pontem Wallet"
846
- );
847
- if (wallet.name === "Pontem" && existingStandardPontemWallet) {
848
- return;
849
- }
850
- const existingWalletIndex = this._standard_wallets.findIndex(
851
- (standardWallet) => standardWallet.name == wallet.name
852
- );
853
- if (existingWalletIndex !== -1)
854
- return;
855
- this._all_wallets.push(wallet);
856
- if (!wallet.readyState) {
857
- wallet.readyState = typeof window === "undefined" || typeof document === "undefined" ? "Unsupported" /* Unsupported */ : "NotDetected" /* NotDetected */;
858
- }
859
- if (typeof window !== "undefined") {
860
- scopePollingDetectionStrategy(() => {
861
- const providerName = wallet.providerName || wallet.name.toLowerCase();
862
- if (Object.keys(window).includes(providerName)) {
863
- wallet.readyState = "Installed" /* Installed */;
864
- wallet.provider = window[providerName];
865
- this.emit("readyStateChange", wallet);
866
- return true;
867
- }
868
- return false;
869
- });
870
- }
871
- });
872
- }
873
460
  fetchExtensionAIP62AptosWallets() {
874
461
  let { aptosWallets, on } = getAptosWallets();
875
462
  this.setExtensionAIP62Wallets(aptosWallets);
@@ -885,62 +472,63 @@ var WalletCore = class extends EventEmitter2 {
885
472
  that.setExtensionAIP62Wallets(aptosWallets2);
886
473
  });
887
474
  }
888
- appendNotDetectedStandardSupportedWallets() {
889
- aptosStandardSupportedWalletList.map((supportedWallet) => {
890
- const existingPluginWalletIndex = this.wallets.findIndex(
891
- (wallet) => wallet.name === supportedWallet.name
892
- );
893
- if (existingPluginWalletIndex !== -1)
475
+ setExtensionAIP62Wallets(extensionwWallets) {
476
+ extensionwWallets.map((wallet) => {
477
+ if (this.excludeWallet(wallet)) {
894
478
  return;
895
- const existingStandardPontemWallet = this.wallets.find(
896
- (wallet) => wallet.name == "Pontem"
479
+ }
480
+ this._standard_wallets = this._standard_wallets.filter(
481
+ (item) => item.name !== wallet.name
897
482
  );
898
- if (supportedWallet.name === "Pontem Wallet" && existingStandardPontemWallet) {
483
+ const isValid = isWalletWithRequiredFeatureSet(wallet);
484
+ if (isValid) {
485
+ const index = this._standard_not_detected_wallets.findIndex(
486
+ (notDetctedWallet) => notDetctedWallet.name == wallet.name
487
+ );
488
+ if (index !== -1) {
489
+ this._standard_not_detected_wallets.splice(index, 1);
490
+ }
491
+ wallet.readyState = "Installed" /* Installed */;
492
+ this._standard_wallets.push(wallet);
493
+ this.emit("standardWalletsAdded", wallet);
494
+ }
495
+ });
496
+ }
497
+ fetchSDKAIP62AptosWallets() {
498
+ this._sdkWallets.map((wallet) => {
499
+ if (this.excludeWallet(wallet)) {
899
500
  return;
900
501
  }
502
+ const isValid = isWalletWithRequiredFeatureSet(wallet);
503
+ if (isValid) {
504
+ wallet.readyState = "Installed" /* Installed */;
505
+ this._standard_wallets.push(wallet);
506
+ }
507
+ });
508
+ }
509
+ appendNotDetectedStandardSupportedWallets() {
510
+ aptosStandardSupportedWalletList.map((supportedWallet) => {
901
511
  const existingStandardWallet = this._standard_wallets.find(
902
512
  (wallet) => wallet.name == supportedWallet.name
903
513
  );
904
- if (existingStandardWallet && this.excludeWallet(existingStandardWallet)) {
514
+ if (existingStandardWallet) {
515
+ return;
516
+ }
517
+ if (this.excludeWallet(supportedWallet)) {
905
518
  return;
906
519
  }
907
520
  if (!existingStandardWallet) {
908
- this._all_wallets.push(supportedWallet);
909
- this.emit("standardWalletsAdded", supportedWallet);
521
+ this._standard_not_detected_wallets.push(supportedWallet);
522
+ this.emit("standardNotDetectedWalletAdded", supportedWallet);
910
523
  }
911
524
  });
912
525
  }
913
- fetchSDKAIP62AptosWallets() {
914
- this._sdkWallets.map((wallet) => {
915
- this.standardizeAIP62WalletType(wallet);
916
- });
917
- }
918
- setExtensionAIP62Wallets(extensionwWallets) {
919
- const wallets = extensionwWallets.filter(
920
- (wallet) => wallet.name !== "Dev T wallet" && wallet.name !== "T wallet"
921
- );
922
- wallets.map((wallet) => {
923
- this.standardizeAIP62WalletType(wallet);
924
- this._standard_wallets.push(wallet);
925
- });
926
- }
927
526
  excludeWallet(wallet) {
928
527
  if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) {
929
528
  return true;
930
529
  }
931
530
  return false;
932
531
  }
933
- standardizeAIP62WalletType(wallet) {
934
- if (this.excludeWallet(wallet)) {
935
- return;
936
- }
937
- const isValid = isWalletWithRequiredFeatureSet(wallet);
938
- if (isValid) {
939
- wallet.readyState = "Installed" /* Installed */;
940
- this.standardizeStandardWalletToPluginWalletType(wallet);
941
- this._standard_wallets.push(wallet);
942
- }
943
- }
944
532
  recordEvent(eventName, additionalInfo) {
945
533
  var _a, _b, _c, _d;
946
534
  (_d = this.ga4) == null ? void 0 : _d.gtag("event", `wallet_adapter_${eventName}`, {
@@ -956,7 +544,7 @@ var WalletCore = class extends EventEmitter2 {
956
544
  if (!wallet) {
957
545
  throw new WalletNotConnectedError().name;
958
546
  }
959
- if (!(wallet.readyState === "Loadable" /* Loadable */ || wallet.readyState === "Installed" /* Installed */))
547
+ if (!(wallet.readyState === "Installed" /* Installed */))
960
548
  throw new WalletNotReadyError("Wallet is not set").name;
961
549
  }
962
550
  ensureAccountExists(account) {
@@ -964,119 +552,53 @@ var WalletCore = class extends EventEmitter2 {
964
552
  throw new WalletAccountError("Account is not set").name;
965
553
  }
966
554
  }
967
- doesWalletExist() {
968
- if (!this._connected || this._connecting || !this._wallet)
969
- throw new WalletNotConnectedError().name;
970
- if (!(this._wallet.readyState === "Loadable" /* Loadable */ || this._wallet.readyState === "Installed" /* Installed */))
971
- throw new WalletNotReadyError().name;
972
- return true;
973
- }
974
- clearData() {
975
- this._connected = false;
976
- this.setWallet(null);
977
- this.setAccount(null);
978
- this.setNetwork(null);
979
- removeLocalStorage();
980
- }
981
555
  async setAnsName() {
982
556
  var _a;
983
557
  if (((_a = this._network) == null ? void 0 : _a.chainId) && this._account) {
558
+ if (this._account.ansName)
559
+ return;
984
560
  if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) {
985
561
  this._account.ansName = void 0;
986
562
  return;
987
563
  }
988
564
  const aptosConfig = getAptosConfig(this._network, this._dappConfig);
989
- const aptos = new Aptos3(aptosConfig);
565
+ const aptos = new Aptos2(aptosConfig);
990
566
  const name = await aptos.ans.getPrimaryName({
991
567
  address: this._account.address.toString()
992
568
  });
993
569
  this._account.ansName = name;
994
570
  }
995
571
  }
572
+ clearData() {
573
+ this._connected = false;
574
+ this.setWallet(null);
575
+ this.setAccount(null);
576
+ this.setNetwork(null);
577
+ removeLocalStorage();
578
+ }
996
579
  setWallet(wallet) {
997
580
  this._wallet = wallet;
998
581
  }
999
582
  setAccount(account) {
1000
- var _a;
1001
- if (account === null) {
1002
- this._account = null;
1003
- return;
1004
- }
1005
- if ((_a = this._wallet) == null ? void 0 : _a.isAIP62Standard) {
1006
- if ("status" in account) {
1007
- const connectStandardAccount = account;
1008
- if (connectStandardAccount.status === UserResponseStatus2.REJECTED) {
1009
- this._connecting = false;
1010
- throw new WalletConnectionError("User has rejected the request").message;
1011
- }
1012
- this._account = {
1013
- address: connectStandardAccount.args.address.toString(),
1014
- publicKey: connectStandardAccount.args.publicKey.toString(),
1015
- ansName: connectStandardAccount.args.ansName
1016
- };
1017
- return;
1018
- } else {
1019
- const standardAccount = account;
1020
- this._account = {
1021
- address: standardAccount.address.toString(),
1022
- publicKey: standardAccount.publicKey.toString(),
1023
- ansName: standardAccount.ansName
1024
- };
1025
- return;
1026
- }
1027
- }
1028
- this._account = { ...account };
1029
- return;
583
+ this._account = account;
1030
584
  }
1031
585
  setNetwork(network) {
1032
- var _a, _b, _c;
1033
- if (network === null) {
1034
- this._network = null;
1035
- return;
1036
- }
1037
- if ((_a = this._wallet) == null ? void 0 : _a.isAIP62Standard) {
1038
- const standardizeNetwork = network;
1039
- this.recordEvent("network_change", {
1040
- from: (_b = this._network) == null ? void 0 : _b.name,
1041
- to: standardizeNetwork.name
1042
- });
1043
- this._network = {
1044
- name: standardizeNetwork.name.toLowerCase(),
1045
- chainId: standardizeNetwork.chainId.toString(),
1046
- url: standardizeNetwork.url
1047
- };
1048
- return;
1049
- }
1050
- this.recordEvent("network_change", {
1051
- from: (_c = this._network) == null ? void 0 : _c.name,
1052
- to: network.name
1053
- });
1054
- this._network = {
1055
- ...network,
1056
- name: network.name.toLowerCase()
1057
- };
586
+ this._network = network;
1058
587
  }
1059
588
  isConnected() {
1060
589
  return this._connected;
1061
590
  }
1062
591
  get wallets() {
1063
- return this._all_wallets;
1064
- }
1065
- get pluginWallets() {
1066
- return this._wallets;
1067
- }
1068
- get standardWallets() {
1069
592
  return this._standard_wallets;
1070
593
  }
594
+ get notDetectedWallets() {
595
+ return this._standard_not_detected_wallets;
596
+ }
1071
597
  get wallet() {
1072
598
  try {
1073
599
  if (!this._wallet)
1074
600
  return null;
1075
- return {
1076
- name: this._wallet.name,
1077
- icon: this._wallet.icon,
1078
- url: this._wallet.url
1079
- };
601
+ return this._wallet;
1080
602
  } catch (error) {
1081
603
  throw new WalletNotSelectedError(error).message;
1082
604
  }
@@ -1096,8 +618,8 @@ var WalletCore = class extends EventEmitter2 {
1096
618
  }
1097
619
  }
1098
620
  async connect(walletName) {
1099
- var _a;
1100
- const allDetectedWallets = this._all_wallets;
621
+ var _a, _b, _c;
622
+ const allDetectedWallets = this._standard_wallets;
1101
623
  const selectedWallet = allDetectedWallets.find(
1102
624
  (wallet) => wallet.name === walletName
1103
625
  );
@@ -1109,12 +631,14 @@ var WalletCore = class extends EventEmitter2 {
1109
631
  `${walletName} wallet is already connected`
1110
632
  ).message;
1111
633
  }
1112
- if (isRedirectable() && selectedWallet.readyState !== "Installed" /* Installed */) {
1113
- if (selectedWallet.isAIP62Standard) {
1114
- if (selectedWallet.openInMobileApp) {
1115
- selectedWallet.openInMobileApp();
634
+ if (isRedirectable()) {
635
+ if (selectedWallet.readyState === "Installed" /* Installed */) {
636
+ if ((_b = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp) {
637
+ (_c = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _c.openInMobileApp();
1116
638
  return;
1117
639
  }
640
+ }
641
+ if (selectedWallet.readyState === "NotDetected" /* NotDetected */) {
1118
642
  const uninstalledWallet = selectedWallet;
1119
643
  if (uninstalledWallet.deeplinkProvider) {
1120
644
  const url = encodeURIComponent(window.location.href);
@@ -1123,15 +647,6 @@ var WalletCore = class extends EventEmitter2 {
1123
647
  return;
1124
648
  }
1125
649
  }
1126
- if (selectedWallet.deeplinkProvider) {
1127
- const url = encodeURIComponent(window.location.href);
1128
- const location = selectedWallet.deeplinkProvider({ url });
1129
- window.location.href = location;
1130
- }
1131
- return;
1132
- }
1133
- if (selectedWallet.readyState !== "Installed" /* Installed */ && selectedWallet.readyState !== "Loadable" /* Loadable */) {
1134
- return;
1135
650
  }
1136
651
  await this.connectWallet(selectedWallet);
1137
652
  }
@@ -1139,14 +654,13 @@ var WalletCore = class extends EventEmitter2 {
1139
654
  try {
1140
655
  this._connecting = true;
1141
656
  this.setWallet(selectedWallet);
1142
- let account;
1143
- if (selectedWallet.isAIP62Standard) {
1144
- account = await this.walletStandardCore.connect(selectedWallet);
1145
- } else {
1146
- account = await this.walletCoreV1.connect(selectedWallet);
657
+ const response = await selectedWallet.features["aptos:connect"].connect();
658
+ if (response.status === UserResponseStatus.REJECTED) {
659
+ throw new WalletConnectionError("User has rejected the request").message;
1147
660
  }
661
+ const account = response.args;
1148
662
  this.setAccount(account);
1149
- const network = await selectedWallet.network();
663
+ const network = await selectedWallet.features["aptos:network"].network();
1150
664
  this.setNetwork(network);
1151
665
  await this.setAnsName();
1152
666
  setLocalStorage(selectedWallet.name);
@@ -1164,7 +678,7 @@ var WalletCore = class extends EventEmitter2 {
1164
678
  async disconnect() {
1165
679
  try {
1166
680
  this.ensureWalletExists(this._wallet);
1167
- await this._wallet.disconnect();
681
+ await this._wallet.features["aptos:disconnect"].disconnect();
1168
682
  this.clearData();
1169
683
  this.recordEvent("wallet_disconnect");
1170
684
  this.emit("disconnect");
@@ -1174,6 +688,7 @@ var WalletCore = class extends EventEmitter2 {
1174
688
  }
1175
689
  }
1176
690
  async signAndSubmitTransaction(transactionInput) {
691
+ var _a, _b;
1177
692
  try {
1178
693
  if ("function" in transactionInput.data) {
1179
694
  if (transactionInput.data.function === "0x1::account::rotate_authentication_key_call") {
@@ -1189,150 +704,129 @@ var WalletCore = class extends EventEmitter2 {
1189
704
  this.ensureWalletExists(this._wallet);
1190
705
  this.ensureAccountExists(this._account);
1191
706
  this.recordEvent("sign_and_submit_transaction");
1192
- const payloadData = transactionInput.data;
1193
- const aptosConfig = getAptosConfig(this._network, this._dappConfig);
1194
- const aptos = new Aptos3(aptosConfig);
1195
- if (this._wallet.signAndSubmitTransaction) {
1196
- if (this._wallet.isAIP62Standard) {
1197
- const { hash, ...output } = await this.walletStandardCore.signAndSubmitTransaction(
1198
- transactionInput,
1199
- aptos,
1200
- this._account,
1201
- this._wallet,
1202
- this._standard_wallets
1203
- );
1204
- return { hash, output };
1205
- } else {
1206
- const { hash, ...output } = await this.walletCoreV1.resolveSignAndSubmitTransaction(
1207
- payloadData,
1208
- this._network,
1209
- this._wallet,
1210
- transactionInput,
1211
- this._dappConfig
707
+ if (this._wallet.features["aptos:signAndSubmitTransaction"]) {
708
+ if (this._wallet.features["aptos:signAndSubmitTransaction"].version !== "1.1.0") {
709
+ const aptosConfig2 = getAptosConfig(this._network, this._dappConfig);
710
+ const aptos2 = new Aptos2(aptosConfig2);
711
+ const transaction2 = await aptos2.transaction.build.simple({
712
+ sender: this._account.address.toString(),
713
+ data: transactionInput.data,
714
+ options: transactionInput.options
715
+ });
716
+ const signAndSubmitTransactionMethod = this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction;
717
+ const response3 = await signAndSubmitTransactionMethod(
718
+ transaction2
1212
719
  );
1213
- return { hash, output };
720
+ if (response3.status === UserResponseStatus.REJECTED) {
721
+ throw new WalletConnectionError("User has rejected the request").message;
722
+ }
723
+ return response3.args;
1214
724
  }
725
+ const response2 = await this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction({
726
+ payload: transactionInput.data,
727
+ gasUnitPrice: (_a = transactionInput.options) == null ? void 0 : _a.gasUnitPrice,
728
+ maxGasAmount: (_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount
729
+ });
730
+ if (response2.status === UserResponseStatus.REJECTED) {
731
+ throw new WalletConnectionError("User has rejected the request").message;
732
+ }
733
+ return response2.args;
1215
734
  }
735
+ const aptosConfig = getAptosConfig(this._network, this._dappConfig);
736
+ const aptos = new Aptos2(aptosConfig);
1216
737
  const transaction = await aptos.transaction.build.simple({
1217
738
  sender: this._account.address,
1218
739
  data: transactionInput.data,
1219
740
  options: transactionInput.options
1220
741
  });
1221
- const senderAuthenticator = await this.signTransaction(transaction);
742
+ const signTransactionResponse = await this.signTransaction({
743
+ transactionOrPayload: transaction
744
+ });
1222
745
  const response = await this.submitTransaction({
1223
746
  transaction,
1224
- senderAuthenticator
747
+ senderAuthenticator: signTransactionResponse.authenticator
1225
748
  });
1226
- return response;
749
+ return { hash: response.hash };
1227
750
  } catch (error) {
1228
751
  const errMsg = generalizedErrorMessage(error);
1229
752
  throw new WalletSignAndSubmitMessageError(errMsg).message;
1230
753
  }
1231
754
  }
1232
- async signTransaction(transactionOrPayload, asFeePayer, options) {
1233
- var _a, _b, _c, _d, _e, _f, _g;
755
+ async signTransaction(args) {
756
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
757
+ const { transactionOrPayload, asFeePayer } = args;
1234
758
  try {
1235
759
  this.ensureWalletExists(this._wallet);
760
+ this.ensureAccountExists(this._account);
1236
761
  this.recordEvent("sign_transaction");
1237
- if (this._wallet.signTransaction) {
1238
- if (this._wallet.isAIP62Standard) {
1239
- if ("rawTransaction" in transactionOrPayload) {
1240
- return await this.walletStandardCore.signTransaction(
1241
- transactionOrPayload,
1242
- this._wallet,
1243
- asFeePayer
1244
- );
1245
- } else if (this._wallet.isSignTransactionV1_1) {
1246
- const payload = convertPayloadInputV1ToV2(transactionOrPayload);
1247
- const optionsV1 = options;
1248
- const { authenticator } = await this.walletStandardCore.signTransaction(
1249
- {
1250
- payload,
1251
- expirationTimestamp: (_a = optionsV1 == null ? void 0 : optionsV1.expireTimestamp) != null ? _a : optionsV1 == null ? void 0 : optionsV1.expirationTimestamp,
1252
- expirationSecondsFromNow: optionsV1 == null ? void 0 : optionsV1.expirationSecondsFromNow,
1253
- gasUnitPrice: (_b = optionsV1 == null ? void 0 : optionsV1.gasUnitPrice) != null ? _b : optionsV1 == null ? void 0 : optionsV1.gas_unit_price,
1254
- maxGasAmount: (_c = optionsV1 == null ? void 0 : optionsV1.maxGasAmount) != null ? _c : optionsV1 == null ? void 0 : optionsV1.max_gas_amount,
1255
- sequenceNumber: optionsV1 == null ? void 0 : optionsV1.sequenceNumber,
1256
- sender: (optionsV1 == null ? void 0 : optionsV1.sender) ? { address: AccountAddress.from(optionsV1.sender) } : void 0
1257
- },
1258
- this._wallet
1259
- );
1260
- return authenticator;
1261
- } else {
1262
- const aptosConfig = getAptosConfig(this._network, this._dappConfig);
1263
- this.ensureAccountExists(this._account);
1264
- const sender = this._account.address;
1265
- const payload = await generateTransactionPayloadFromV1Input(
1266
- aptosConfig,
1267
- transactionOrPayload
1268
- );
1269
- const optionsV1 = options;
1270
- const optionsV2 = {
1271
- accountSequenceNumber: optionsV1 == null ? void 0 : optionsV1.sequenceNumber,
1272
- expireTimestamp: (_d = optionsV1 == null ? void 0 : optionsV1.expireTimestamp) != null ? _d : optionsV1 == null ? void 0 : optionsV1.expirationTimestamp,
1273
- gasUnitPrice: (_e = optionsV1 == null ? void 0 : optionsV1.gasUnitPrice) != null ? _e : optionsV1 == null ? void 0 : optionsV1.gas_unit_price,
1274
- maxGasAmount: (_f = optionsV1 == null ? void 0 : optionsV1.maxGasAmount) != null ? _f : optionsV1 == null ? void 0 : optionsV1.max_gas_amount
1275
- };
1276
- const rawTransaction = await generateRawTransaction({
1277
- aptosConfig,
1278
- payload,
1279
- sender,
1280
- options: optionsV2
1281
- });
1282
- return await this.walletStandardCore.signTransaction(
1283
- new SimpleTransaction(rawTransaction),
1284
- this._wallet,
1285
- false
1286
- );
1287
- }
762
+ if ("rawTransaction" in transactionOrPayload) {
763
+ const response = await ((_a = this._wallet) == null ? void 0 : _a.features["aptos:signTransaction"].signTransaction(
764
+ transactionOrPayload,
765
+ asFeePayer
766
+ ));
767
+ if (response.status === UserResponseStatus.REJECTED) {
768
+ throw new WalletConnectionError("User has rejected the request").message;
1288
769
  }
1289
- if ("rawTransaction" in transactionOrPayload) {
1290
- const accountAuthenticator = await this._wallet.signTransaction(
1291
- transactionOrPayload,
1292
- asFeePayer
1293
- );
1294
- return accountAuthenticator;
1295
- } else {
1296
- const response = await this.walletCoreV1.signTransaction(
1297
- transactionOrPayload,
1298
- this._wallet,
1299
- {
1300
- max_gas_amount: (options == null ? void 0 : options.maxGasAmount) ? BigInt(options == null ? void 0 : options.maxGasAmount) : void 0,
1301
- gas_unit_price: (options == null ? void 0 : options.gasUnitPrice) ? BigInt(options == null ? void 0 : options.gasUnitPrice) : void 0
1302
- }
1303
- );
1304
- if (!response) {
1305
- throw new Error("error");
1306
- }
1307
- const deserializer1 = new BCS2.Deserializer(response);
1308
- const deserializedSignature = TxnBuilderTypes4.SignedTransaction.deserialize(deserializer1);
1309
- const transactionAuthenticator = deserializedSignature.authenticator;
1310
- const publicKey = transactionAuthenticator.public_key.value;
1311
- const signature = transactionAuthenticator.signature.value;
1312
- const accountAuthenticator = new AccountAuthenticatorEd25519(
1313
- new Ed25519PublicKey(publicKey),
1314
- new Ed25519Signature(signature)
1315
- );
1316
- return accountAuthenticator;
770
+ return {
771
+ authenticator: response.args,
772
+ rawTransaction: transactionOrPayload.rawTransaction.bcsToBytes()
773
+ };
774
+ } else if (((_b = this._wallet.features["aptos:signTransaction"]) == null ? void 0 : _b.version) === "1.1") {
775
+ const signTransactionV1_1StandardInput = {
776
+ payload: transactionOrPayload.data,
777
+ expirationTimestamp: (_c = transactionOrPayload.options) == null ? void 0 : _c.expirationTimestamp,
778
+ expirationSecondsFromNow: (_d = transactionOrPayload.options) == null ? void 0 : _d.expirationSecondsFromNow,
779
+ gasUnitPrice: (_e = transactionOrPayload.options) == null ? void 0 : _e.gasUnitPrice,
780
+ maxGasAmount: (_f = transactionOrPayload.options) == null ? void 0 : _f.maxGasAmount,
781
+ sequenceNumber: (_g = transactionOrPayload.options) == null ? void 0 : _g.accountSequenceNumber,
782
+ sender: transactionOrPayload.sender ? { address: AccountAddress.from(transactionOrPayload.sender) } : void 0
783
+ };
784
+ const walletSignTransactionMethod = (_h = this._wallet) == null ? void 0 : _h.features["aptos:signTransaction"].signTransaction;
785
+ const response = await walletSignTransactionMethod(
786
+ signTransactionV1_1StandardInput
787
+ );
788
+ if (response.status === UserResponseStatus.REJECTED) {
789
+ throw new WalletConnectionError("User has rejected the request").message;
790
+ }
791
+ return {
792
+ authenticator: response.args.authenticator,
793
+ rawTransaction: response.args.rawTransaction.bcsToBytes()
794
+ };
795
+ } else {
796
+ const aptosConfig = getAptosConfig(this._network, this._dappConfig);
797
+ const aptos = new Aptos2(aptosConfig);
798
+ const transaction = await aptos.transaction.build.simple({
799
+ sender: this._account.address,
800
+ data: transactionOrPayload.data,
801
+ options: transactionOrPayload.options
802
+ });
803
+ const response = await ((_i = this._wallet) == null ? void 0 : _i.features["aptos:signTransaction"].signTransaction(
804
+ transaction,
805
+ asFeePayer
806
+ ));
807
+ if (response.status === UserResponseStatus.REJECTED) {
808
+ throw new WalletConnectionError("User has rejected the request").message;
1317
809
  }
810
+ return {
811
+ authenticator: response.args,
812
+ rawTransaction: transaction.bcsToBytes()
813
+ };
1318
814
  }
1319
- throw new WalletNotSupportedMethod(
1320
- `Sign Transaction is not supported by ${(_g = this.wallet) == null ? void 0 : _g.name}`
1321
- ).message;
1322
815
  } catch (error) {
1323
816
  const errMsg = generalizedErrorMessage(error);
1324
817
  throw new WalletSignTransactionError(errMsg).message;
1325
818
  }
1326
819
  }
1327
820
  async signMessage(message) {
821
+ var _a, _b;
1328
822
  try {
1329
823
  this.ensureWalletExists(this._wallet);
1330
824
  this.recordEvent("sign_message");
1331
- if (this._wallet.isAIP62Standard) {
1332
- return await this.walletStandardCore.signMessage(message, this._wallet);
825
+ const response = await ((_b = (_a = this._wallet) == null ? void 0 : _a.features["aptos:signMessage"]) == null ? void 0 : _b.signMessage(message));
826
+ if (response.status === UserResponseStatus.REJECTED) {
827
+ throw new WalletConnectionError("User has rejected the request").message;
1333
828
  }
1334
- const response = await this._wallet.signMessage(message);
1335
- return response;
829
+ return response.args;
1336
830
  } catch (error) {
1337
831
  const errMsg = generalizedErrorMessage(error);
1338
832
  throw new WalletSignMessageError(errMsg).message;
@@ -1346,12 +840,8 @@ var WalletCore = class extends EventEmitter2 {
1346
840
  this.recordEvent("submit_transaction", {
1347
841
  transaction_type: transactionType
1348
842
  });
1349
- if (this._wallet.submitTransaction) {
1350
- const pendingTransaction = await this._wallet.submitTransaction(transaction);
1351
- return pendingTransaction;
1352
- }
1353
843
  const aptosConfig = getAptosConfig(this._network, this._dappConfig);
1354
- const aptos = new Aptos3(aptosConfig);
844
+ const aptos = new Aptos2(aptosConfig);
1355
845
  if (additionalSignersAuthenticators !== void 0) {
1356
846
  const multiAgentTxn = {
1357
847
  ...transaction,
@@ -1363,35 +853,37 @@ var WalletCore = class extends EventEmitter2 {
1363
853
  }
1364
854
  } catch (error) {
1365
855
  const errMsg = generalizedErrorMessage(error);
1366
- throw new WalletSignTransactionError(errMsg).message;
856
+ throw new WalletSubmitTransactionError(errMsg).message;
1367
857
  }
1368
858
  }
1369
859
  async onAccountChange() {
860
+ var _a;
1370
861
  try {
1371
862
  this.ensureWalletExists(this._wallet);
1372
- await this._wallet.onAccountChange(
863
+ await ((_a = this._wallet.features["aptos:onAccountChange"]) == null ? void 0 : _a.onAccountChange(
1373
864
  async (data) => {
1374
865
  this.setAccount(data);
1375
866
  await this.setAnsName();
1376
867
  this.recordEvent("account_change");
1377
868
  this.emit("accountChange", this._account);
1378
869
  }
1379
- );
870
+ ));
1380
871
  } catch (error) {
1381
872
  const errMsg = generalizedErrorMessage(error);
1382
873
  throw new WalletAccountChangeError(errMsg).message;
1383
874
  }
1384
875
  }
1385
876
  async onNetworkChange() {
877
+ var _a;
1386
878
  try {
1387
879
  this.ensureWalletExists(this._wallet);
1388
- await this._wallet.onNetworkChange(
880
+ await ((_a = this._wallet.features["aptos:onNetworkChange"]) == null ? void 0 : _a.onNetworkChange(
1389
881
  async (data) => {
1390
882
  this.setNetwork(data);
1391
883
  await this.setAnsName();
1392
884
  this.emit("networkChange", this._network);
1393
885
  }
1394
- );
886
+ ));
1395
887
  } catch (error) {
1396
888
  const errMsg = generalizedErrorMessage(error);
1397
889
  throw new WalletNetworkChangeError(errMsg).message;
@@ -1405,14 +897,16 @@ var WalletCore = class extends EventEmitter2 {
1405
897
  from: (_a = this._network) == null ? void 0 : _a.name,
1406
898
  to: network
1407
899
  });
1408
- const chainId = network === Network4.DEVNET ? await fetchDevnetChainId() : NetworkToChainId[network];
1409
- if (this._wallet.changeNetwork) {
1410
- const networkInfo = {
1411
- name: network,
1412
- chainId
1413
- };
1414
- const response = await this._wallet.changeNetwork(networkInfo);
1415
- if (response.status === UserResponseStatus2.REJECTED) {
900
+ const chainId = network === Network3.DEVNET ? await fetchDevnetChainId() : NetworkToChainId[network];
901
+ const networkInfo = {
902
+ name: network,
903
+ chainId
904
+ };
905
+ if (this._wallet.features["aptos:changeNetwork"]) {
906
+ const response = await this._wallet.features["aptos:changeNetwork"].changeNetwork(
907
+ networkInfo
908
+ );
909
+ if (response.status === UserResponseStatus.REJECTED) {
1416
910
  throw new WalletConnectionError("User has rejected the request").message;
1417
911
  }
1418
912
  return response.args;
@@ -1430,17 +924,45 @@ var WalletCore = class extends EventEmitter2 {
1430
924
  this.ensureWalletExists(this._wallet);
1431
925
  this.ensureAccountExists(this._account);
1432
926
  this.recordEvent("sign_message_and_verify");
1433
- if (this._wallet.isAIP62Standard) {
1434
- return this.walletStandardCore.signMessageAndVerify(
1435
- message,
1436
- this._wallet
1437
- );
927
+ try {
928
+ const response = await this._wallet.features["aptos:signMessage"].signMessage(message);
929
+ if (response.status === UserResponseStatus.REJECTED) {
930
+ throw new WalletConnectionError("Failed to sign a message").message;
931
+ }
932
+ if (this._account.publicKey instanceof AnyPublicKey && this._account.publicKey.variant === AnyPublicKeyVariant.Keyless) {
933
+ return true;
934
+ }
935
+ let verified = false;
936
+ if (response.args.signature instanceof MultiEd25519Signature) {
937
+ if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) {
938
+ throw new WalletSignMessageAndVerifyError(
939
+ "Public key and Signature type mismatch"
940
+ ).message;
941
+ }
942
+ const { fullMessage, signature } = response.args;
943
+ const bitmap = signature.bitmap;
944
+ if (bitmap) {
945
+ const minKeysRequired = this._account.publicKey.threshold;
946
+ if (signature.signatures.length < minKeysRequired) {
947
+ verified = false;
948
+ } else {
949
+ verified = this._account.publicKey.verifySignature({
950
+ message: new TextEncoder().encode(fullMessage),
951
+ signature
952
+ });
953
+ }
954
+ }
955
+ } else {
956
+ verified = this._account.publicKey.verifySignature({
957
+ message: new TextEncoder().encode(response.args.fullMessage),
958
+ signature: response.args.signature
959
+ });
960
+ }
961
+ return verified;
962
+ } catch (error) {
963
+ const errMsg = generalizedErrorMessage(error);
964
+ throw new WalletSignMessageAndVerifyError(errMsg).message;
1438
965
  }
1439
- return await this.walletCoreV1.signMessageAndVerify(
1440
- message,
1441
- this._wallet,
1442
- this._account
1443
- );
1444
966
  } catch (error) {
1445
967
  const errMsg = generalizedErrorMessage(error);
1446
968
  throw new WalletSignMessageAndVerifyError(errMsg).message;
@@ -1457,23 +979,16 @@ export {
1457
979
  APTOS_CONNECT_BASE_URL,
1458
980
  ChainIdToAnsSupportedNetworkMap,
1459
981
  NetworkName,
1460
- TxnBuilderTypes3 as TxnBuilderTypes,
1461
- Types3 as Types,
1462
982
  WalletCore,
1463
- WalletCoreV1,
1464
983
  WalletReadyState,
1465
- WalletStandardCore,
1466
- areBCSArguments,
984
+ aptosStandardSupportedWalletList,
1467
985
  convertNetwork,
1468
- convertPayloadInputV1ToV2,
1469
- convertV2PayloadToV1JSONPayload,
1470
- convertV2TransactionPayloadToV1BCSPayload,
1471
986
  fetchDevnetChainId,
1472
987
  generalizedErrorMessage,
1473
- generateTransactionPayloadFromV1Input,
1474
988
  getAptosConfig,
1475
989
  getAptosConnectWallets,
1476
990
  getLocalStorage,
991
+ getSDKWallets,
1477
992
  groupAndSortWallets,
1478
993
  handlePublishPackageTransaction,
1479
994
  isAptosConnectWallet,
@@ -1486,7 +1001,6 @@ export {
1486
1001
  isRedirectable,
1487
1002
  partitionWallets,
1488
1003
  removeLocalStorage,
1489
- scopePollingDetectionStrategy,
1490
1004
  setLocalStorage,
1491
1005
  truncateAddress
1492
1006
  };