@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 +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +71 -4
- package/dist/index.mjs +71 -4
- package/package.json +6 -3
- package/src/WalletCore.ts +45 -6
- package/src/ga/index.ts +37 -0
- package/src/version.ts +1 -0
package/CHANGELOG.md
CHANGED
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
"
|
|
52
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
package/src/ga/index.ts
ADDED
|
@@ -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";
|