@aptos-labs/wallet-adapter-core 3.9.0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @aptos-labs/wallet-adapter-core
2
2
 
3
+ ## 3.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 41f9485: Implement GA4
8
+
3
9
  ## 3.9.0
4
10
 
5
11
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -187,6 +187,7 @@ declare class WalletCore extends EventEmitter<WalletCoreEvents> {
187
187
  private readonly walletStandardCore;
188
188
  private _connecting;
189
189
  private _connected;
190
+ private readonly ga4;
190
191
  /**
191
192
  * Core functionality constructor.
192
193
  * For legacy wallet adapter v1 support we expect the dapp to pass in wallet plugins,
@@ -206,6 +207,7 @@ declare class WalletCore extends EventEmitter<WalletCoreEvents> {
206
207
  * @param standardWallet An AIP-62 standard compatible wallet
207
208
  */
208
209
  private standardizeStandardWalletToPluginWalletType;
210
+ private recordEvent;
209
211
  /**
210
212
  * Helper function to ensure wallet exists
211
213
  *
package/dist/index.js CHANGED
@@ -514,6 +514,41 @@ var WalletStandardCore = class {
514
514
  }
515
515
  };
516
516
 
517
+ // src/ga/index.ts
518
+ var GA4 = class {
519
+ constructor() {
520
+ this.aptosGAID = "G-GNVVWBL3J9";
521
+ this.injectGA(this.aptosGAID);
522
+ }
523
+ gtag(a, b, c) {
524
+ let dataLayer = window.dataLayer || [];
525
+ dataLayer.push(arguments);
526
+ }
527
+ injectGA(gaID) {
528
+ if (typeof window === "undefined")
529
+ return;
530
+ if (!gaID)
531
+ return;
532
+ const head = document.getElementsByTagName("head")[0];
533
+ var myScript = document.createElement("script");
534
+ myScript.setAttribute(
535
+ "src",
536
+ `https://www.googletagmanager.com/gtag/js?id=${gaID}`
537
+ );
538
+ const that = this;
539
+ myScript.onload = function() {
540
+ that.gtag("js", new Date());
541
+ that.gtag("config", `${gaID}`, {
542
+ send_page_view: false
543
+ });
544
+ };
545
+ head.insertBefore(myScript, head.children[1]);
546
+ }
547
+ };
548
+
549
+ // src/version.ts
550
+ var WALLET_ADAPTER_CORE_VERSION = "3.10.0";
551
+
517
552
  // src/WalletCore.ts
518
553
  var WalletCore = class extends import_eventemitter32.default {
519
554
  constructor(plugins) {
@@ -528,6 +563,7 @@ var WalletCore = class extends import_eventemitter32.default {
528
563
  this.walletStandardCore = new WalletStandardCore();
529
564
  this._connecting = false;
530
565
  this._connected = false;
566
+ this.ga4 = new GA4();
531
567
  this.standardizeStandardWalletToPluginWalletType = (standardWallet) => {
532
568
  var _a, _b;
533
569
  let standardWalletConvertedToWallet = {
@@ -604,6 +640,16 @@ var WalletCore = class extends import_eventemitter32.default {
604
640
  });
605
641
  this._standard_wallets = aptosStandardWallets;
606
642
  }
643
+ recordEvent(eventName, additionalInfo) {
644
+ var _a, _b;
645
+ this.ga4.gtag("event", `wallet_adapter_${eventName}`, {
646
+ wallet: (_a = this._wallet) == null ? void 0 : _a.name,
647
+ network: (_b = this._network) == null ? void 0 : _b.name,
648
+ adapter_core_version: WALLET_ADAPTER_CORE_VERSION,
649
+ send_to: "G-GNVVWBL3J9",
650
+ ...additionalInfo
651
+ });
652
+ }
607
653
  ensureWalletExists(wallet) {
608
654
  if (!wallet) {
609
655
  throw new WalletNotConnectedError().name;
@@ -683,13 +729,17 @@ var WalletCore = class extends import_eventemitter32.default {
683
729
  return;
684
730
  }
685
731
  setNetwork(network) {
686
- var _a;
732
+ var _a, _b, _c;
687
733
  if (network === null) {
688
734
  this._network = null;
689
735
  return;
690
736
  }
691
737
  if ((_a = this._wallet) == null ? void 0 : _a.isAIP62Standard) {
692
738
  const standardizeNetwork = network;
739
+ this.recordEvent("network_change", {
740
+ from: (_b = this._network) == null ? void 0 : _b.name,
741
+ to: standardizeNetwork.name
742
+ });
693
743
  this._network = {
694
744
  name: standardizeNetwork.name.toLowerCase(),
695
745
  chainId: standardizeNetwork.chainId.toString(),
@@ -697,7 +747,14 @@ var WalletCore = class extends import_eventemitter32.default {
697
747
  };
698
748
  return;
699
749
  }
700
- this._network = { ...network, name: network.name.toLowerCase() };
750
+ this.recordEvent("network_change", {
751
+ from: (_c = this._network) == null ? void 0 : _c.name,
752
+ to: network.name
753
+ });
754
+ this._network = {
755
+ ...network,
756
+ name: network.name.toLowerCase()
757
+ };
701
758
  }
702
759
  isConnected() {
703
760
  return this._connected;
@@ -784,6 +841,7 @@ var WalletCore = class extends import_eventemitter32.default {
784
841
  await this.setAnsName();
785
842
  setLocalStorage(selectedWallet.name);
786
843
  this._connected = true;
844
+ this.recordEvent("wallet_connect");
787
845
  this.emit("connect", account);
788
846
  } catch (error) {
789
847
  this.clearData();
@@ -798,6 +856,7 @@ var WalletCore = class extends import_eventemitter32.default {
798
856
  this.ensureWalletExists(this._wallet);
799
857
  await this._wallet.disconnect();
800
858
  this.clearData();
859
+ this.recordEvent("wallet_disconnect");
801
860
  this.emit("disconnect");
802
861
  } catch (error) {
803
862
  const errMsg = generalizedErrorMessage(error);
@@ -808,6 +867,7 @@ var WalletCore = class extends import_eventemitter32.default {
808
867
  try {
809
868
  this.ensureWalletExists(this._wallet);
810
869
  this.ensureAccountExists(this._account);
870
+ this.recordEvent("sign_and_submit_transaction");
811
871
  const payloadData = transactionInput.data;
812
872
  const aptosConfig = new import_ts_sdk5.AptosConfig({
813
873
  network: convertNetwork(this._network)
@@ -852,7 +912,7 @@ var WalletCore = class extends import_eventemitter32.default {
852
912
  var _a, _b;
853
913
  try {
854
914
  this.ensureWalletExists(this._wallet);
855
- console.log("this._account", this._account);
915
+ this.recordEvent("sign_transaction");
856
916
  if (this._wallet.signTransaction) {
857
917
  if (this._wallet.isAIP62Standard) {
858
918
  if ("rawTransaction" in transactionOrPayload) {
@@ -909,6 +969,7 @@ var WalletCore = class extends import_eventemitter32.default {
909
969
  async signMessage(message) {
910
970
  try {
911
971
  this.ensureWalletExists(this._wallet);
972
+ this.recordEvent("sign_message");
912
973
  if (this._wallet.isAIP62Standard) {
913
974
  return await this.walletStandardCore.signMessage(message, this._wallet);
914
975
  }
@@ -923,11 +984,15 @@ var WalletCore = class extends import_eventemitter32.default {
923
984
  async submitTransaction(transaction) {
924
985
  try {
925
986
  this.ensureWalletExists(this._wallet);
987
+ const { additionalSignersAuthenticators } = transaction;
988
+ const transactionType = additionalSignersAuthenticators !== void 0 ? "multi-agent" : "simple";
989
+ this.recordEvent("submit_transaction", {
990
+ transaction_type: transactionType
991
+ });
926
992
  if (this._wallet.submitTransaction) {
927
993
  const pendingTransaction = await this._wallet.submitTransaction(transaction);
928
994
  return pendingTransaction;
929
995
  }
930
- const { additionalSignersAuthenticators } = transaction;
931
996
  const aptosConfig = new import_ts_sdk5.AptosConfig({
932
997
  network: convertNetwork(this.network)
933
998
  });
@@ -953,6 +1018,7 @@ var WalletCore = class extends import_eventemitter32.default {
953
1018
  async (data) => {
954
1019
  this.setAccount(data);
955
1020
  await this.setAnsName();
1021
+ this.recordEvent("account_change");
956
1022
  this.emit("accountChange", this._account);
957
1023
  }
958
1024
  );
@@ -980,6 +1046,7 @@ var WalletCore = class extends import_eventemitter32.default {
980
1046
  try {
981
1047
  this.ensureWalletExists(this._wallet);
982
1048
  this.ensureAccountExists(this._account);
1049
+ this.recordEvent("sign_message_and_verify");
983
1050
  if (this._wallet.isAIP62Standard) {
984
1051
  return this.walletStandardCore.signMessageAndVerify(
985
1052
  message,
package/dist/index.mjs CHANGED
@@ -489,6 +489,41 @@ var WalletStandardCore = class {
489
489
  }
490
490
  };
491
491
 
492
+ // src/ga/index.ts
493
+ var GA4 = class {
494
+ constructor() {
495
+ this.aptosGAID = "G-GNVVWBL3J9";
496
+ this.injectGA(this.aptosGAID);
497
+ }
498
+ gtag(a, b, c) {
499
+ let dataLayer = window.dataLayer || [];
500
+ dataLayer.push(arguments);
501
+ }
502
+ injectGA(gaID) {
503
+ if (typeof window === "undefined")
504
+ return;
505
+ if (!gaID)
506
+ return;
507
+ const head = document.getElementsByTagName("head")[0];
508
+ var myScript = document.createElement("script");
509
+ myScript.setAttribute(
510
+ "src",
511
+ `https://www.googletagmanager.com/gtag/js?id=${gaID}`
512
+ );
513
+ const that = this;
514
+ myScript.onload = function() {
515
+ that.gtag("js", new Date());
516
+ that.gtag("config", `${gaID}`, {
517
+ send_page_view: false
518
+ });
519
+ };
520
+ head.insertBefore(myScript, head.children[1]);
521
+ }
522
+ };
523
+
524
+ // src/version.ts
525
+ var WALLET_ADAPTER_CORE_VERSION = "3.10.0";
526
+
492
527
  // src/WalletCore.ts
493
528
  var WalletCore = class extends EventEmitter2 {
494
529
  constructor(plugins) {
@@ -503,6 +538,7 @@ var WalletCore = class extends EventEmitter2 {
503
538
  this.walletStandardCore = new WalletStandardCore();
504
539
  this._connecting = false;
505
540
  this._connected = false;
541
+ this.ga4 = new GA4();
506
542
  this.standardizeStandardWalletToPluginWalletType = (standardWallet) => {
507
543
  var _a, _b;
508
544
  let standardWalletConvertedToWallet = {
@@ -579,6 +615,16 @@ var WalletCore = class extends EventEmitter2 {
579
615
  });
580
616
  this._standard_wallets = aptosStandardWallets;
581
617
  }
618
+ recordEvent(eventName, additionalInfo) {
619
+ var _a, _b;
620
+ this.ga4.gtag("event", `wallet_adapter_${eventName}`, {
621
+ wallet: (_a = this._wallet) == null ? void 0 : _a.name,
622
+ network: (_b = this._network) == null ? void 0 : _b.name,
623
+ adapter_core_version: WALLET_ADAPTER_CORE_VERSION,
624
+ send_to: "G-GNVVWBL3J9",
625
+ ...additionalInfo
626
+ });
627
+ }
582
628
  ensureWalletExists(wallet) {
583
629
  if (!wallet) {
584
630
  throw new WalletNotConnectedError().name;
@@ -658,13 +704,17 @@ var WalletCore = class extends EventEmitter2 {
658
704
  return;
659
705
  }
660
706
  setNetwork(network) {
661
- var _a;
707
+ var _a, _b, _c;
662
708
  if (network === null) {
663
709
  this._network = null;
664
710
  return;
665
711
  }
666
712
  if ((_a = this._wallet) == null ? void 0 : _a.isAIP62Standard) {
667
713
  const standardizeNetwork = network;
714
+ this.recordEvent("network_change", {
715
+ from: (_b = this._network) == null ? void 0 : _b.name,
716
+ to: standardizeNetwork.name
717
+ });
668
718
  this._network = {
669
719
  name: standardizeNetwork.name.toLowerCase(),
670
720
  chainId: standardizeNetwork.chainId.toString(),
@@ -672,7 +722,14 @@ var WalletCore = class extends EventEmitter2 {
672
722
  };
673
723
  return;
674
724
  }
675
- this._network = { ...network, name: network.name.toLowerCase() };
725
+ this.recordEvent("network_change", {
726
+ from: (_c = this._network) == null ? void 0 : _c.name,
727
+ to: network.name
728
+ });
729
+ this._network = {
730
+ ...network,
731
+ name: network.name.toLowerCase()
732
+ };
676
733
  }
677
734
  isConnected() {
678
735
  return this._connected;
@@ -759,6 +816,7 @@ var WalletCore = class extends EventEmitter2 {
759
816
  await this.setAnsName();
760
817
  setLocalStorage(selectedWallet.name);
761
818
  this._connected = true;
819
+ this.recordEvent("wallet_connect");
762
820
  this.emit("connect", account);
763
821
  } catch (error) {
764
822
  this.clearData();
@@ -773,6 +831,7 @@ var WalletCore = class extends EventEmitter2 {
773
831
  this.ensureWalletExists(this._wallet);
774
832
  await this._wallet.disconnect();
775
833
  this.clearData();
834
+ this.recordEvent("wallet_disconnect");
776
835
  this.emit("disconnect");
777
836
  } catch (error) {
778
837
  const errMsg = generalizedErrorMessage(error);
@@ -783,6 +842,7 @@ var WalletCore = class extends EventEmitter2 {
783
842
  try {
784
843
  this.ensureWalletExists(this._wallet);
785
844
  this.ensureAccountExists(this._account);
845
+ this.recordEvent("sign_and_submit_transaction");
786
846
  const payloadData = transactionInput.data;
787
847
  const aptosConfig = new AptosConfig2({
788
848
  network: convertNetwork(this._network)
@@ -827,7 +887,7 @@ var WalletCore = class extends EventEmitter2 {
827
887
  var _a, _b;
828
888
  try {
829
889
  this.ensureWalletExists(this._wallet);
830
- console.log("this._account", this._account);
890
+ this.recordEvent("sign_transaction");
831
891
  if (this._wallet.signTransaction) {
832
892
  if (this._wallet.isAIP62Standard) {
833
893
  if ("rawTransaction" in transactionOrPayload) {
@@ -884,6 +944,7 @@ var WalletCore = class extends EventEmitter2 {
884
944
  async signMessage(message) {
885
945
  try {
886
946
  this.ensureWalletExists(this._wallet);
947
+ this.recordEvent("sign_message");
887
948
  if (this._wallet.isAIP62Standard) {
888
949
  return await this.walletStandardCore.signMessage(message, this._wallet);
889
950
  }
@@ -898,11 +959,15 @@ var WalletCore = class extends EventEmitter2 {
898
959
  async submitTransaction(transaction) {
899
960
  try {
900
961
  this.ensureWalletExists(this._wallet);
962
+ const { additionalSignersAuthenticators } = transaction;
963
+ const transactionType = additionalSignersAuthenticators !== void 0 ? "multi-agent" : "simple";
964
+ this.recordEvent("submit_transaction", {
965
+ transaction_type: transactionType
966
+ });
901
967
  if (this._wallet.submitTransaction) {
902
968
  const pendingTransaction = await this._wallet.submitTransaction(transaction);
903
969
  return pendingTransaction;
904
970
  }
905
- const { additionalSignersAuthenticators } = transaction;
906
971
  const aptosConfig = new AptosConfig2({
907
972
  network: convertNetwork(this.network)
908
973
  });
@@ -928,6 +993,7 @@ var WalletCore = class extends EventEmitter2 {
928
993
  async (data) => {
929
994
  this.setAccount(data);
930
995
  await this.setAnsName();
996
+ this.recordEvent("account_change");
931
997
  this.emit("accountChange", this._account);
932
998
  }
933
999
  );
@@ -955,6 +1021,7 @@ var WalletCore = class extends EventEmitter2 {
955
1021
  try {
956
1022
  this.ensureWalletExists(this._wallet);
957
1023
  this.ensureAccountExists(this._account);
1024
+ this.recordEvent("sign_message_and_verify");
958
1025
  if (this._wallet.isAIP62Standard) {
959
1026
  return this.walletStandardCore.signMessageAndVerify(
960
1027
  message,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aptos-labs/wallet-adapter-core",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "description": "Aptos Wallet Adapter Core",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -29,6 +29,7 @@
29
29
  ],
30
30
  "devDependencies": {
31
31
  "@types/jest": "^29.2.4",
32
+ "@types/node": "^20.10.4",
32
33
  "eslint": "^8.15.0",
33
34
  "jest": "^29.3.1",
34
35
  "ts-jest": "^29.0.3",
@@ -48,8 +49,10 @@
48
49
  "aptos": "^1.21.0"
49
50
  },
50
51
  "scripts": {
51
- "build": "tsup src/index.ts --format esm,cjs --dts",
52
- "dev": "tsup src/index.ts --format esm,cjs --watch --dts",
52
+ "update-version": "node -p \"'export const WALLET_ADAPTER_CORE_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
53
+ "build-package": "export $(cat .env | xargs) && tsup src/index.ts --format esm,cjs --dts --env.GAID $GAID",
54
+ "build": "pnpm run update-version && pnpm run build-package",
55
+ "dev": "export $(cat .env | xargs) && tsup src/index.ts --format esm,cjs --watch --dts --env.GAID $GAID",
53
56
  "test": "jest",
54
57
  "lint": "TIMING=1 eslint \"src/**/*.ts*\"",
55
58
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
package/src/WalletCore.ts CHANGED
@@ -63,6 +63,8 @@ import {
63
63
  AptosStandardWallet,
64
64
  WalletStandardCore,
65
65
  } from "./AIP62StandardWallets/WalletStandard";
66
+ import { GA4 } from "./ga";
67
+ import { WALLET_ADAPTER_CORE_VERSION } from "./version";
66
68
 
67
69
  export type IAptosWallet = AptosStandardWallet & Wallet;
68
70
 
@@ -99,6 +101,9 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
99
101
  // Indicates whether the dapp is connected with a wallet
100
102
  private _connected: boolean = false;
101
103
 
104
+ // Google Analytics 4 module
105
+ private readonly ga4: GA4 = new GA4();
106
+
102
107
  /**
103
108
  * Core functionality constructor.
104
109
  * For legacy wallet adapter v1 support we expect the dapp to pass in wallet plugins,
@@ -216,6 +221,16 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
216
221
  this.emit("standardWalletsAdded", standardWalletConvertedToWallet);
217
222
  };
218
223
 
224
+ private recordEvent(eventName: string, additionalInfo?: object) {
225
+ this.ga4.gtag("event", `wallet_adapter_${eventName}`, {
226
+ wallet: this._wallet?.name,
227
+ network: this._network?.name,
228
+ adapter_core_version: WALLET_ADAPTER_CORE_VERSION,
229
+ send_to: process.env.GAID,
230
+ ...additionalInfo,
231
+ });
232
+ }
233
+
219
234
  /**
220
235
  * Helper function to ensure wallet exists
221
236
  *
@@ -383,14 +398,27 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
383
398
  }
384
399
  if (this._wallet?.isAIP62Standard) {
385
400
  const standardizeNetwork = network as StandardNetworkInfo;
401
+ this.recordEvent("network_change", {
402
+ from: this._network?.name,
403
+ to: standardizeNetwork.name,
404
+ });
386
405
  this._network = {
387
406
  name: standardizeNetwork.name.toLowerCase() as Network,
388
407
  chainId: standardizeNetwork.chainId.toString(),
389
408
  url: standardizeNetwork.url,
390
409
  };
410
+
391
411
  return;
392
412
  }
393
- this._network = { ...(network as NetworkInfo), name: network.name.toLowerCase() as Network };
413
+
414
+ this.recordEvent("network_change", {
415
+ from: this._network?.name,
416
+ to: network.name,
417
+ });
418
+ this._network = {
419
+ ...(network as NetworkInfo),
420
+ name: network.name.toLowerCase() as Network,
421
+ };
394
422
  }
395
423
 
396
424
  /**
@@ -543,6 +571,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
543
571
  await this.setAnsName();
544
572
  setLocalStorage(selectedWallet.name);
545
573
  this._connected = true;
574
+ this.recordEvent("wallet_connect");
546
575
  this.emit("connect", account);
547
576
  } catch (error: any) {
548
577
  this.clearData();
@@ -565,6 +594,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
565
594
  this.ensureWalletExists(this._wallet);
566
595
  await this._wallet.disconnect();
567
596
  this.clearData();
597
+ this.recordEvent("wallet_disconnect");
568
598
  this.emit("disconnect");
569
599
  } catch (error: any) {
570
600
  const errMsg = generalizedErrorMessage(error);
@@ -587,7 +617,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
587
617
  try {
588
618
  this.ensureWalletExists(this._wallet);
589
619
  this.ensureAccountExists(this._account);
590
-
620
+ this.recordEvent("sign_and_submit_transaction");
591
621
  // get the payload piece from the input
592
622
  const payloadData = transactionInput.data;
593
623
  const aptosConfig = new AptosConfig({
@@ -659,7 +689,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
659
689
  ): Promise<AccountAuthenticator> {
660
690
  try {
661
691
  this.ensureWalletExists(this._wallet);
662
- console.log("this._account", this._account);
692
+ this.recordEvent("sign_transaction");
663
693
  // Make sure wallet supports signTransaction
664
694
  if (this._wallet.signTransaction) {
665
695
  // If current connected wallet is AIP-62 standard compatible
@@ -750,7 +780,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
750
780
  async signMessage(message: SignMessagePayload): Promise<SignMessageResponse> {
751
781
  try {
752
782
  this.ensureWalletExists(this._wallet);
753
-
783
+ this.recordEvent("sign_message");
754
784
  if (this._wallet.isAIP62Standard) {
755
785
  return await this.walletStandardCore.signMessage(message, this._wallet);
756
786
  }
@@ -775,6 +805,14 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
775
805
  try {
776
806
  this.ensureWalletExists(this._wallet);
777
807
 
808
+ const { additionalSignersAuthenticators } = transaction;
809
+ const transactionType =
810
+ additionalSignersAuthenticators !== undefined
811
+ ? "multi-agent"
812
+ : "simple";
813
+ this.recordEvent("submit_transaction", {
814
+ transaction_type: transactionType,
815
+ });
778
816
  // If wallet supports submitTransaction transaction function
779
817
  if (this._wallet.submitTransaction) {
780
818
  const pendingTransaction =
@@ -783,7 +821,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
783
821
  }
784
822
 
785
823
  // Else have the adpater submits the transaction
786
- const { additionalSignersAuthenticators } = transaction;
824
+
787
825
  const aptosConfig = new AptosConfig({
788
826
  network: convertNetwork(this.network),
789
827
  });
@@ -815,6 +853,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
815
853
  async (data: AccountInfo | StandardAccountInfo) => {
816
854
  this.setAccount(data);
817
855
  await this.setAnsName();
856
+ this.recordEvent("account_change");
818
857
  this.emit("accountChange", this._account);
819
858
  }
820
859
  );
@@ -854,7 +893,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
854
893
  try {
855
894
  this.ensureWalletExists(this._wallet);
856
895
  this.ensureAccountExists(this._account);
857
-
896
+ this.recordEvent("sign_message_and_verify");
858
897
  // If current connected wallet is AIP-62 standard compatible
859
898
  if (this._wallet.isAIP62Standard) {
860
899
  return this.walletStandardCore.signMessageAndVerify(
@@ -0,0 +1,37 @@
1
+ export class GA4 {
2
+ readonly aptosGAID: string | undefined = process.env.GAID;
3
+
4
+ constructor() {
5
+ // Inject Aptos Google Analytics 4 script
6
+ this.injectGA(this.aptosGAID);
7
+ }
8
+
9
+ gtag(a: string, b: string | object, c?: object) {
10
+ let dataLayer = (window as any).dataLayer || [];
11
+ dataLayer.push(arguments);
12
+ }
13
+
14
+ private injectGA(gaID?: string) {
15
+ if (typeof window === "undefined") return;
16
+ if (!gaID) return;
17
+
18
+ const head = document.getElementsByTagName("head")[0];
19
+
20
+ var myScript = document.createElement("script");
21
+
22
+ myScript.setAttribute(
23
+ "src",
24
+ `https://www.googletagmanager.com/gtag/js?id=${gaID}`
25
+ );
26
+
27
+ const that = this;
28
+ myScript.onload = function () {
29
+ that.gtag("js", new Date());
30
+ that.gtag("config", `${gaID}`, {
31
+ send_page_view: false,
32
+ });
33
+ };
34
+
35
+ head.insertBefore(myScript, head.children[1]);
36
+ }
37
+ }
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const WALLET_ADAPTER_CORE_VERSION = "3.10.0";