@@ -20,60 +20,147 @@ export class AnalyticsService {
2020 account : SolanaKeyringAccount ,
2121 base64EncodedTransaction : string ,
2222 scope : Network ,
23+ origin ?: string ,
2324 ) : Promise < void > {
2425 this . #logger. log ( `[📣 AnalyticsService] Tracking event transaction added` ) ;
2526
2627 assert ( base64EncodedTransaction , Base64Struct ) ;
27- // TODO: Implement
28+
29+ await snap . request ( {
30+ method : 'snap_trackEvent' ,
31+ params : {
32+ event : {
33+ event : 'Transaction Added' ,
34+ properties : {
35+ message : 'Snap transaction added' ,
36+ origin : origin || null ,
37+ account_id : account . id ,
38+ account_address : account . address ,
39+ account_type : account . type ,
40+ chain_id : scope ,
41+ } ,
42+ } ,
43+ } ,
44+ } ) ;
2845 }
2946
3047 async trackEventTransactionApproved (
3148 account : SolanaKeyringAccount ,
3249 base64EncodedTransaction : string ,
3350 scope : Network ,
51+ origin ?: string ,
3452 ) : Promise < void > {
3553 this . #logger. log (
3654 `[📣 AnalyticsService] Tracking event transaction approved` ,
3755 ) ;
3856
3957 assert ( base64EncodedTransaction , Base64Struct ) ;
40- // TODO: Implement
58+
59+ await snap . request ( {
60+ method : 'snap_trackEvent' ,
61+ params : {
62+ event : {
63+ event : 'Transaction Approved' ,
64+ properties : {
65+ message : 'Snap transaction approved' ,
66+ origin : origin || null ,
67+ account_id : account . id ,
68+ account_address : account . address ,
69+ account_type : account . type ,
70+ chain_id : scope ,
71+ } ,
72+ } ,
73+ } ,
74+ } ) ;
4175 }
4276
4377 async trackEventTransactionSubmitted (
4478 account : SolanaKeyringAccount ,
4579 transactionMessageBase64Encoded : string ,
4680 signature : string ,
4781 scope : Network ,
82+ origin ?: string ,
4883 ) : Promise < void > {
4984 this . #logger. log (
5085 `[📣 AnalyticsService] Tracking event transaction submitted` ,
5186 ) ;
5287
5388 assert ( transactionMessageBase64Encoded , Base64Struct ) ;
54- // TODO: Implement
89+
90+ await snap . request ( {
91+ method : 'snap_trackEvent' ,
92+ params : {
93+ event : {
94+ event : 'Transaction Submitted' ,
95+ properties : {
96+ message : 'Snap transaction submitted' ,
97+ origin : origin || null ,
98+ account_id : account . id ,
99+ account_address : account . address ,
100+ account_type : account . type ,
101+ chain_id : scope ,
102+ } ,
103+ } ,
104+ } ,
105+ } ) ;
55106 }
56107
57108 async trackEventTransactionFinalized (
58109 account : SolanaKeyringAccount ,
59110 transaction : Transaction ,
111+ origin ?: string ,
60112 ) : Promise < void > {
61113 this . #logger. log (
62114 `[📣 AnalyticsService] Tracking event transaction finalized` ,
63115 ) ;
64- // TODO: Implement
116+
117+ await snap . request ( {
118+ method : 'snap_trackEvent' ,
119+ params : {
120+ event : {
121+ event : 'Transaction Finalized' ,
122+ properties : {
123+ message : 'Snap transaction finalized' ,
124+ origin : origin || null ,
125+ account_id : account . id ,
126+ account_address : account . address ,
127+ account_type : account . type ,
128+ chain_id : transaction . chain ,
129+ transaction_status : transaction . status ,
130+ transaction_type : transaction . type ,
131+ } ,
132+ } ,
133+ } ,
134+ } ) ;
65135 }
66136
67137 async trackEventTransactionRejected (
68138 account : SolanaKeyringAccount ,
69139 base64EncodedTransaction : string ,
70140 scope : Network ,
141+ origin ?: string ,
71142 ) : Promise < void > {
72143 this . #logger. log (
73144 `[📣 AnalyticsService] Tracking event transaction rejected` ,
74145 ) ;
75146
76147 assert ( base64EncodedTransaction , Base64Struct ) ;
77- // TODO: Implement
148+
149+ await snap . request ( {
150+ method : 'snap_trackEvent' ,
151+ params : {
152+ event : {
153+ event : 'Transaction Rejected' ,
154+ properties : {
155+ message : 'Snap transaction rejected' ,
156+ origin : origin || null ,
157+ account_id : account . id ,
158+ account_address : account . address ,
159+ account_type : account . type ,
160+ chain_id : scope ,
161+ } ,
162+ } ,
163+ } ,
164+ } ) ;
78165 }
79166}
0 commit comments