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