diff --git a/src/background/controller/provider/controller.ts b/src/background/controller/provider/controller.ts index 9031b711b61..db5a1537351 100644 --- a/src/background/controller/provider/controller.ts +++ b/src/background/controller/provider/controller.ts @@ -457,6 +457,9 @@ class ProviderController extends BaseController { createBy: options?.data?.$ctx?.ga ? 'rabby' : 'dapp', source: options?.data?.$ctx?.ga?.source || '', trigger: options?.data?.$ctx?.ga?.trigger || '', + networkType: chainItem?.isTestnet + ? 'Custom Network' + : 'Integrated Network', reported: false, }; @@ -574,6 +577,9 @@ class ProviderController extends BaseController { createBy: options?.data?.$ctx?.ga ? 'rabby' : 'dapp', source: options?.data?.$ctx?.ga?.source || '', trigger: options?.data?.$ctx?.ga?.trigger || '', + networkType: chainItem?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); if (!isSpeedUp && !isCancel) { transactionHistoryService.addSubmitFailedTransaction({ diff --git a/src/background/controller/provider/rpcFlow.ts b/src/background/controller/provider/rpcFlow.ts index 41cdacf0808..75c2106e9de 100644 --- a/src/background/controller/provider/rpcFlow.ts +++ b/src/background/controller/provider/rpcFlow.ts @@ -304,6 +304,7 @@ function reportStatsData() { createBy: statsData?.createBy, source: statsData?.source, trigger: statsData?.trigger, + networkType: statsData?.networkType, }; if (statsData.signMethod) { sData.signMethod = statsData.signMethod; @@ -320,6 +321,7 @@ function reportStatsData() { createBy: statsData?.createBy, source: statsData?.source, trigger: statsData?.trigger, + networkType: statsData?.networkType || '', }); } diff --git a/src/background/service/notification.ts b/src/background/service/notification.ts index c373b0845ca..ee1724a673c 100644 --- a/src/background/service/notification.ts +++ b/src/background/service/notification.ts @@ -67,6 +67,7 @@ export type StatsData = { trigger: any; reported: boolean; signMethod?: string; + networkType?: string; }; // something need user approval in window @@ -258,15 +259,24 @@ class NotificationService extends Events { : null; const explain = signingTx?.explain; - if (explain && currentAccount) { + const chain = findChain({ + id: signingTx?.rawTx.chainId, + }); + + if ((explain || chain?.isTestnet) && currentAccount) { stats.report('preExecTransaction', { type: currentAccount.brandName, category: KEYRING_CATEGORY_MAP[currentAccount.type], - chainId: explain.native_token.chain, - success: explain.calcSuccess && explain.pre_exec.success, + chainId: chain?.serverId || '', + success: explain + ? explain.calcSuccess && explain.pre_exec.success + : true, createBy: data?.params.$ctx?.ga ? 'rabby' : 'dapp', source: data?.params.$ctx?.ga?.source || '', trigger: data?.params.$ctx?.ga.trigger || '', + networkType: chain?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } }; diff --git a/src/background/service/transactionHistory.ts b/src/background/service/transactionHistory.ts index 288a0800b98..998464ecbba 100644 --- a/src/background/service/transactionHistory.ts +++ b/src/background/service/transactionHistory.ts @@ -728,12 +728,13 @@ class TxHistory { stats.report('completeTransaction', { chainId: chain.serverId, success, - preExecSuccess: Boolean( - target.explain?.pre_exec.success && target.explain?.calcSuccess - ), + preExecSuccess: target?.explain + ? target.explain?.pre_exec.success && target.explain?.calcSuccess + : true, createBy: target?.$ctx?.ga ? 'rabby' : 'dapp', source: target?.$ctx?.ga?.source || '', trigger: target?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); } this.clearBefore({ address, chainId, nonce }); diff --git a/src/ui/views/Approval/components/CoinbaseWaiting/index.tsx b/src/ui/views/Approval/components/CoinbaseWaiting/index.tsx index dd331e344ae..86b811dc307 100644 --- a/src/ui/views/Approval/components/CoinbaseWaiting/index.tsx +++ b/src/ui/views/Approval/components/CoinbaseWaiting/index.tsx @@ -136,11 +136,12 @@ const CoinbaseWaiting = ({ params }: { params: ApprovalParams }) => { if (!isText && !isSignTriggered) { const explain = explainRef.current; + const chainInfo = findChainByEnum(chain); - if (explain) { + if (explain || chainInfo?.isTestnet) { wallet.reportStats('signTransaction', { type: account.brandName, - chainId: findChainByEnum(chain)?.serverId || '', + chainId: chainInfo?.serverId || '', category: KEYRING_CATEGORY_MAP[account.type], preExecSuccess: explain ? explain?.calcSuccess && explain?.pre_exec.success @@ -148,12 +149,15 @@ const CoinbaseWaiting = ({ params }: { params: ApprovalParams }) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chainInfo?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: account.brandName, + label: chainInfo?.isTestnet ? 'Custom Network' : 'Integrated Network', }); isSignTriggered = true; } diff --git a/src/ui/views/Approval/components/CommonWaiting.tsx b/src/ui/views/Approval/components/CommonWaiting.tsx index 2ec5e3b884e..35f2f7664e4 100644 --- a/src/ui/views/Approval/components/CommonWaiting.tsx +++ b/src/ui/views/Approval/components/CommonWaiting.tsx @@ -122,6 +122,9 @@ export const CommonWaiting = ({ params }: { params: ApprovalParams }) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } } else { @@ -165,7 +168,7 @@ export const CommonWaiting = ({ params }: { params: ApprovalParams }) => { matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: brandName, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); setSignFinishedData({ data: sig, diff --git a/src/ui/views/Approval/components/ImKeyHardwareWaiting.tsx b/src/ui/views/Approval/components/ImKeyHardwareWaiting.tsx index 67b801aeee4..baf98a1975c 100644 --- a/src/ui/views/Approval/components/ImKeyHardwareWaiting.tsx +++ b/src/ui/views/Approval/components/ImKeyHardwareWaiting.tsx @@ -136,6 +136,9 @@ export const ImKeyHardwareWaiting = ({ createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } } else { @@ -181,7 +184,7 @@ export const ImKeyHardwareWaiting = ({ matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: KEYRING_CLASS.HARDWARE.IMKEY, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); setSignFinishedData({ diff --git a/src/ui/views/Approval/components/LedgerHardwareWaiting.tsx b/src/ui/views/Approval/components/LedgerHardwareWaiting.tsx index 74bbab1db2e..d13998ca2a4 100644 --- a/src/ui/views/Approval/components/LedgerHardwareWaiting.tsx +++ b/src/ui/views/Approval/components/LedgerHardwareWaiting.tsx @@ -132,6 +132,9 @@ const LedgerHardwareWaiting = ({ params }: { params: ApprovalParams }) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } } else { @@ -179,7 +182,7 @@ const LedgerHardwareWaiting = ({ params }: { params: ApprovalParams }) => { matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: KEYRING_CLASS.HARDWARE.LEDGER, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); setSignFinishedData({ diff --git a/src/ui/views/Approval/components/PrivatekeyWaiting.tsx b/src/ui/views/Approval/components/PrivatekeyWaiting.tsx index a665a9be52a..4e8fa1cf885 100644 --- a/src/ui/views/Approval/components/PrivatekeyWaiting.tsx +++ b/src/ui/views/Approval/components/PrivatekeyWaiting.tsx @@ -129,6 +129,9 @@ export const PrivatekeyWaiting = ({ params }: { params: ApprovalParams }) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } } else { @@ -166,7 +169,7 @@ export const PrivatekeyWaiting = ({ params }: { params: ApprovalParams }) => { matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: type, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); setSignFinishedData({ data: sig, diff --git a/src/ui/views/Approval/components/QRHardWareWaiting/QRHardWareWaiting.tsx b/src/ui/views/Approval/components/QRHardWareWaiting/QRHardWareWaiting.tsx index 2887ccfb7c9..78b5abaf880 100644 --- a/src/ui/views/Approval/components/QRHardWareWaiting/QRHardWareWaiting.tsx +++ b/src/ui/views/Approval/components/QRHardWareWaiting/QRHardWareWaiting.tsx @@ -207,7 +207,7 @@ const QRHardWareWaiting = ({ params }) => { stats.report('signTransaction', { type: account.brandName, - chainId: findChainByEnum(chain)?.serverId || '', + chainId: chainInfo?.serverId || '', category: KEYRING_CATEGORY_MAP[account.type], preExecSuccess: explain ? explain?.calcSuccess && explain?.pre_exec.success @@ -216,6 +216,9 @@ const QRHardWareWaiting = ({ params }) => { source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', signMethod, + networkType: chainInfo?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } } else { diff --git a/src/ui/views/Approval/components/SignTestnetTx/index.tsx b/src/ui/views/Approval/components/SignTestnetTx/index.tsx index 26d68d7d6b5..3f909bba9ef 100644 --- a/src/ui/views/Approval/components/SignTestnetTx/index.tsx +++ b/src/ui/views/Approval/components/SignTestnetTx/index.tsx @@ -240,12 +240,13 @@ export const SignTestnetTx = ({ params, origin }: SignTxProps) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); matomoRequestEvent({ category: 'Transaction', action: 'init', - label: currentAccount.brandName, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); if (currentAccount.type === KEYRING_TYPE.GnosisKeyring) { setIsGnosisAccount(true); @@ -464,12 +465,13 @@ export const SignTestnetTx = ({ params, origin }: SignTxProps) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: currentAccount.brandName, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); resolveApproval({ ...transaction, diff --git a/src/ui/views/Approval/components/SignTx.tsx b/src/ui/views/Approval/components/SignTx.tsx index 68801d2e707..2e43fa2ac3a 100644 --- a/src/ui/views/Approval/components/SignTx.tsx +++ b/src/ui/views/Approval/components/SignTx.tsx @@ -1152,6 +1152,7 @@ const SignTx = ({ params, origin }: SignTxProps) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); if (!isViewGnosisSafe) { const params: any = { @@ -1194,6 +1195,7 @@ const SignTx = ({ params, origin }: SignTxProps) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); let newTx; @@ -1363,12 +1365,13 @@ const SignTx = ({ params, origin }: SignTxProps) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: currentAccount.brandName, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); resolveApproval({ ...transaction, @@ -1655,12 +1658,13 @@ const SignTx = ({ params, origin }: SignTxProps) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); matomoRequestEvent({ category: 'Transaction', action: 'init', - label: currentAccount.brandName, + label: chain?.isTestnet ? 'Custom Network' : 'Integrated Network', }); if (currentAccount.type === KEYRING_TYPE.GnosisKeyring) { diff --git a/src/ui/views/Approval/components/WatchAddressWaiting/index.tsx b/src/ui/views/Approval/components/WatchAddressWaiting/index.tsx index f43030a39a7..1de9eb35a8c 100644 --- a/src/ui/views/Approval/components/WatchAddressWaiting/index.tsx +++ b/src/ui/views/Approval/components/WatchAddressWaiting/index.tsx @@ -208,9 +208,10 @@ const WatchAddressWaiting = ({ params }: { params: ApprovalParams }) => { ) { if (!isText && !isSignTriggered) { const explain = explainRef.current; + const chainInfo = findChainByEnum(chain); // const tx = approval.data?.params; - if (explain) { + if (explain || chainInfo?.isTestnet) { // const { nonce, from, chainId } = tx; // const explain = await wallet.getExplainCache({ // nonce: Number(nonce), @@ -220,7 +221,7 @@ const WatchAddressWaiting = ({ params }: { params: ApprovalParams }) => { wallet.reportStats('signTransaction', { type: account.brandName, - chainId: findChainByEnum(chain)?.serverId || '', + chainId: chainInfo?.serverId || '', category: KEYRING_CATEGORY_MAP[account.type], preExecSuccess: explain ? explain?.calcSuccess && explain?.pre_exec.success @@ -228,12 +229,17 @@ const WatchAddressWaiting = ({ params }: { params: ApprovalParams }) => { createBy: params?.$ctx?.ga ? 'rabby' : 'dapp', source: params?.$ctx?.ga?.source || '', trigger: params?.$ctx?.ga?.trigger || '', + networkType: chainInfo?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); } matomoRequestEvent({ category: 'Transaction', action: 'Submit', - label: account.brandName, + label: chainInfo?.isTestnet + ? 'Custom Network' + : 'Integrated Network', }); isSignTriggered = true; }