@aptos-labs/wallet-adapter-core 3.8.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,17 @@
1
1
  # @aptos-labs/wallet-adapter-core
2
2
 
3
+ ## 3.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 41f9485: Implement GA4
8
+
9
+ ## 3.9.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 6be2a06: Convert uppercase network name to lowercase in NetworkInfo
14
+
3
15
  ## 3.8.0
4
16
 
5
17
  ### 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,21 +729,32 @@ 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
- name: standardizeNetwork.name,
744
+ name: standardizeNetwork.name.toLowerCase(),
695
745
  chainId: standardizeNetwork.chainId.toString(),
696
746
  url: standardizeNetwork.url
697
747
  };
698
748
  return;
699
749
  }
700
- this._network = { ...network };
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,21 +704,32 @@ 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
- name: standardizeNetwork.name,
719
+ name: standardizeNetwork.name.toLowerCase(),
670
720
  chainId: standardizeNetwork.chainId.toString(),
671
721
  url: standardizeNetwork.url
672
722
  };
673
723
  return;
674
724
  }
675
- this._network = { ...network };
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.8.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
@@ -1,5 +1,6 @@
1
1
  import { TxnBuilderTypes, Types, BCS } from "aptos";
2
2
  import {
3
+ Network,
3
4
  AnyRawTransaction,
4
5
  AccountAuthenticator,
5
6
  AccountAuthenticatorEd25519,
@@ -62,6 +63,8 @@ import {
62
63
  AptosStandardWallet,
63
64
  WalletStandardCore,
64
65
  } from "./AIP62StandardWallets/WalletStandard";
66
+ import { GA4 } from "./ga";
67
+ import { WALLET_ADAPTER_CORE_VERSION } from "./version";
65
68
 
66
69
  export type IAptosWallet = AptosStandardWallet & Wallet;
67
70
 
@@ -98,6 +101,9 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
98
101
  // Indicates whether the dapp is connected with a wallet
99
102
  private _connected: boolean = false;
100
103
 
104
+ // Google Analytics 4 module
105
+ private readonly ga4: GA4 = new GA4();
106
+
101
107
  /**
102
108
  * Core functionality constructor.
103
109
  * For legacy wallet adapter v1 support we expect the dapp to pass in wallet plugins,
@@ -215,6 +221,16 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
215
221
  this.emit("standardWalletsAdded", standardWalletConvertedToWallet);
216
222
  };
217
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
+
218
234
  /**
219
235
  * Helper function to ensure wallet exists
220
236
  *
@@ -382,14 +398,27 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
382
398
  }
383
399
  if (this._wallet?.isAIP62Standard) {
384
400
  const standardizeNetwork = network as StandardNetworkInfo;
401
+ this.recordEvent("network_change", {
402
+ from: this._network?.name,
403
+ to: standardizeNetwork.name,
404
+ });
385
405
  this._network = {
386
- name: standardizeNetwork.name,
406
+ name: standardizeNetwork.name.toLowerCase() as Network,
387
407
  chainId: standardizeNetwork.chainId.toString(),
388
408
  url: standardizeNetwork.url,
389
409
  };
410
+
390
411
  return;
391
412
  }
392
- this._network = { ...(network as NetworkInfo) };
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
+ };
393
422
  }
394
423
 
395
424
  /**
@@ -542,6 +571,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
542
571
  await this.setAnsName();
543
572
  setLocalStorage(selectedWallet.name);
544
573
  this._connected = true;
574
+ this.recordEvent("wallet_connect");
545
575
  this.emit("connect", account);
546
576
  } catch (error: any) {
547
577
  this.clearData();
@@ -564,6 +594,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
564
594
  this.ensureWalletExists(this._wallet);
565
595
  await this._wallet.disconnect();
566
596
  this.clearData();
597
+ this.recordEvent("wallet_disconnect");
567
598
  this.emit("disconnect");
568
599
  } catch (error: any) {
569
600
  const errMsg = generalizedErrorMessage(error);
@@ -586,7 +617,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
586
617
  try {
587
618
  this.ensureWalletExists(this._wallet);
588
619
  this.ensureAccountExists(this._account);
589
-
620
+ this.recordEvent("sign_and_submit_transaction");
590
621
  // get the payload piece from the input
591
622
  const payloadData = transactionInput.data;
592
623
  const aptosConfig = new AptosConfig({
@@ -658,7 +689,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
658
689
  ): Promise<AccountAuthenticator> {
659
690
  try {
660
691
  this.ensureWalletExists(this._wallet);
661
- console.log("this._account", this._account);
692
+ this.recordEvent("sign_transaction");
662
693
  // Make sure wallet supports signTransaction
663
694
  if (this._wallet.signTransaction) {
664
695
  // If current connected wallet is AIP-62 standard compatible
@@ -749,7 +780,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
749
780
  async signMessage(message: SignMessagePayload): Promise<SignMessageResponse> {
750
781
  try {
751
782
  this.ensureWalletExists(this._wallet);
752
-
783
+ this.recordEvent("sign_message");
753
784
  if (this._wallet.isAIP62Standard) {
754
785
  return await this.walletStandardCore.signMessage(message, this._wallet);
755
786
  }
@@ -774,6 +805,14 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
774
805
  try {
775
806
  this.ensureWalletExists(this._wallet);
776
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
+ });
777
816
  // If wallet supports submitTransaction transaction function
778
817
  if (this._wallet.submitTransaction) {
779
818
  const pendingTransaction =
@@ -782,7 +821,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
782
821
  }
783
822
 
784
823
  // Else have the adpater submits the transaction
785
- const { additionalSignersAuthenticators } = transaction;
824
+
786
825
  const aptosConfig = new AptosConfig({
787
826
  network: convertNetwork(this.network),
788
827
  });
@@ -814,6 +853,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
814
853
  async (data: AccountInfo | StandardAccountInfo) => {
815
854
  this.setAccount(data);
816
855
  await this.setAnsName();
856
+ this.recordEvent("account_change");
817
857
  this.emit("accountChange", this._account);
818
858
  }
819
859
  );
@@ -853,7 +893,7 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
853
893
  try {
854
894
  this.ensureWalletExists(this._wallet);
855
895
  this.ensureAccountExists(this._account);
856
-
896
+ this.recordEvent("sign_message_and_verify");
857
897
  // If current connected wallet is AIP-62 standard compatible
858
898
  if (this._wallet.isAIP62Standard) {
859
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";