Skip to content

Commit e744806

Browse files
authored
Merge pull request #88 from MetaMask/update-analytics
Update analytics
2 parents ec7db63 + 94d397a commit e744806

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

Sources/metamask-ios-sdk/Classes/Analytics/Event.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
public enum Event: String {
66
case connectionRequest = "sdk_connect_request_started"
7+
case reconnectionRequest = "sdk_reconnect_request_started"
78
case connected = "sdk_connection_established"
89
case connectionAuthorised = "sdk_connection_authorized"
910
case connectionRejected = "sdk_connection_rejected"

Sources/metamask-ios-sdk/Classes/Communication/SocketClient.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class SocketClient: CommunicationClient {
7171
}
7272

7373
var isConnected: Bool = false
74+
private var isReconnection = false
7475
var tearDownConnection: (() -> Void)?
7576
var onClientsTerminated: (() -> Void)?
7677

@@ -111,7 +112,11 @@ class SocketClient: CommunicationClient {
111112
guard !channel.isConnected else { return }
112113

113114
setupClient()
114-
trackEvent(.connectionRequest)
115+
if isReconnection {
116+
trackEvent(.reconnectionRequest)
117+
} else {
118+
trackEvent(.connectionRequest)
119+
}
115120
channel.connect()
116121
}
117122

@@ -129,6 +134,7 @@ class SocketClient: CommunicationClient {
129134
private func configureSession() {
130135
if let config = fetchSessionConfig(), config.isValid {
131136
channelId = config.sessionId
137+
isReconnection = true
132138
} else {
133139
// purge any existing session info
134140
store.deleteData(for: SESSION_KEY)
@@ -185,12 +191,9 @@ private extension SocketClient {
185191

186192
// MARK: Clients connected event
187193

188-
channel.on(ClientEvent.clientsConnected(on: channelId)) { [weak self] data in
189-
guard let self = self else { return }
194+
channel.on(ClientEvent.clientsConnected(on: channelId)) { data in
190195
Logging.log("Clients connected: \(data)")
191196

192-
self.trackEvent(.connected)
193-
194197
// for debug purposes only
195198
NotificationCenter.default.post(
196199
name: NSNotification.Name("connection"),
@@ -303,7 +306,10 @@ private extension SocketClient {
303306
guard
304307
let keyExchangeMessage = Message<KeyExchangeMessage>.message(from: message),
305308
let nextKeyExchangeMessage = keyExchange.nextMessage(keyExchangeMessage.message)
306-
else { return }
309+
else {
310+
trackEvent(.connected)
311+
return
312+
}
307313

308314
sendMessage(nextKeyExchangeMessage, encrypt: false)
309315

@@ -470,6 +476,7 @@ extension SocketClient {
470476
switch event {
471477
case .connected,
472478
.disconnected,
479+
.reconnectionRequest,
473480
.connectionAuthorised,
474481
.connectionRejected:
475482
break

Sources/metamask-ios-sdk/Classes/Ethereum/Ethereum.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@ public extension Ethereum {
8787
}
8888

8989
func terminateConnection() {
90-
delegate?.trackEvent(.connectionRejected)
90+
if connected {
91+
delegate?.trackEvent(.connectionRejected)
92+
}
93+
9194
let error = RequestError(from: ["message": "The connection request has been rejected"])
9295
submittedRequests.forEach { key, value in
9396
submittedRequests[key]?.error(error)

0 commit comments

Comments
 (0)