11package com.walletconnect.sample.wallet
22
3+ import android.util.Log
34import androidx.lifecycle.LiveData
45import androidx.lifecycle.ViewModel
56import androidx.lifecycle.asLiveData
67import androidx.lifecycle.viewModelScope
78import com.walletconnect.sample.wallet.ui.*
9+ import com.walletconnect.walletconnectv2.client.*
810import kotlinx.coroutines.flow.MutableStateFlow
911import kotlinx.coroutines.launch
10- import com.walletconnect.walletconnectv2.WalletConnectClient
11- import com.walletconnect.walletconnectv2.client.ClientTypes
12- import com.walletconnect.walletconnectv2.client.WalletConnectClientData
13- import com.walletconnect.walletconnectv2.client.WalletConnectClientListener
14- import com.walletconnect.walletconnectv2.client.WalletConnectClientListeners
1512
16- class WalletViewModel : ViewModel (), WalletConnectClientListener {
13+ class WalletViewModel : ViewModel (), WalletConnectClient.WalletDelegate {
1714 private var _eventFlow = MutableStateFlow <WalletUiEvent >(InitSessionsList (WalletConnectClient .getListOfSettledSessions()))
1815 val eventFlow: LiveData <WalletUiEvent > = _eventFlow .asLiveData()
1916
20- private lateinit var proposal: WalletConnectClientData .SessionProposal
17+ private lateinit var proposal: WalletConnect . Model .SessionProposal
2118
2219 init {
23- WalletConnectClient .setWalletConnectListener (this )
20+ WalletConnectClient .setWalletDelegate (this )
2421 }
2522
2623 fun pair (uri : String ) {
27- val pairParams = ClientTypes .PairParams (uri.trim())
28-
29- WalletConnectClient .pair(pairParams, object : WalletConnectClientListeners .Pairing {
30- override fun onSuccess (settledPairing : WalletConnectClientData .SettledPairing ) {
24+ val pair = WalletConnect .Params .Pair (uri.trim())
25+ WalletConnectClient .pair(pair, object : WalletConnect .Listeners .Pairing {
26+ override fun onSuccess (settledPairing : WalletConnect .Model .SettledPairing ) {
3127 // Settled pairing
3228 }
3329
@@ -39,10 +35,10 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
3935
4036 fun approve () {
4137 val accounts = proposal.chains.map { chainId -> " $chainId :0x022c0c42a80bd19EA4cF0F94c4F9F96645759716" }
42- val approveParams : ClientTypes . ApproveParams = ClientTypes . ApproveParams (proposal, accounts)
38+ val approve = WalletConnect . Params . Approve (proposal, accounts)
4339
44- WalletConnectClient .approve(approveParams , object : WalletConnectClientListeners .SessionApprove {
45- override fun onSuccess (settledSession : WalletConnectClientData .SettledSession ) {
40+ WalletConnectClient .approve(approve , object : WalletConnect . Listeners .SessionApprove {
41+ override fun onSuccess (settledSession : WalletConnect . Model .SettledSession ) {
4642 viewModelScope.launch { _eventFlow .emit(UpdateActiveSessions (WalletConnectClient .getListOfSettledSessions())) }
4743 }
4844
@@ -55,10 +51,10 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
5551 fun reject () {
5652 val rejectionReason = " Reject Session"
5753 val proposalTopic: String = proposal.topic
58- val rejectParams : ClientTypes . RejectParams = ClientTypes . RejectParams (rejectionReason, proposalTopic)
54+ val reject = WalletConnect . Params . Reject (rejectionReason, proposalTopic)
5955
60- WalletConnectClient .reject(rejectParams , object : WalletConnectClientListeners .SessionReject {
61- override fun onSuccess (rejectedSession : WalletConnectClientData .RejectedSession ) {
56+ WalletConnectClient .reject(reject , object : WalletConnect . Listeners .SessionReject {
57+ override fun onSuccess (rejectedSession : WalletConnect . Model .RejectedSession ) {
6258 viewModelScope.launch { _eventFlow .emit(RejectSession ) }
6359 }
6460
@@ -69,10 +65,10 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
6965 }
7066
7167 fun disconnect (topic : String , reason : String = "Reason ") {
72- val disconnectParams = ClientTypes . DisconnectParams (topic, reason)
68+ val disconnect = WalletConnect . Params . Disconnect (topic, reason)
7369
74- WalletConnectClient .disconnect(disconnectParams , object : WalletConnectClientListeners .SessionDelete {
75- override fun onSuccess (deletedSession : WalletConnectClientData .DeletedSession ) {
70+ WalletConnectClient .disconnect(disconnect , object : WalletConnect . Listeners .SessionDelete {
71+ override fun onSuccess (deletedSession : WalletConnect . Model .DeletedSession ) {
7672 viewModelScope.launch { _eventFlow .emit(UpdateActiveSessions (WalletConnectClient .getListOfSettledSessions())) }
7773 }
7874
@@ -82,46 +78,46 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
8278 })
8379 }
8480
85- fun respondRequest (sessionRequest : WalletConnectClientData .SessionRequest ) {
86- val result = ClientTypes . ResponseParams (
81+ fun respondRequest (sessionRequest : WalletConnect . Model .SessionRequest ) {
82+ val response = WalletConnect . Params . Response (
8783 sessionTopic = sessionRequest.topic,
88- jsonRpcResponse = WalletConnectClientData .JsonRpcResponse .JsonRpcResult (
84+ jsonRpcResponse = WalletConnect . Model .JsonRpcResponse .JsonRpcResult (
8985 sessionRequest.request.id,
9086 " 0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
9187 )
9288 )
9389
94- WalletConnectClient .respond(result , object : WalletConnectClientListeners .SessionPayload {
90+ WalletConnectClient .respond(response , object : WalletConnect . Listeners .SessionPayload {
9591 override fun onError (error : Throwable ) {
9692 // Error
9793 }
9894 })
9995 }
10096
101- fun rejectRequest (sessionRequest : WalletConnectClientData .SessionRequest ) {
102- val result = ClientTypes . ResponseParams (
97+ fun rejectRequest (sessionRequest : WalletConnect . Model .SessionRequest ) {
98+ val response = WalletConnect . Params . Response (
10399 sessionTopic = sessionRequest.topic,
104- jsonRpcResponse = WalletConnectClientData .JsonRpcResponse .JsonRpcError (
100+ jsonRpcResponse = WalletConnect . Model .JsonRpcResponse .JsonRpcError (
105101 sessionRequest.request.id,
106- WalletConnectClientData .JsonRpcResponse .Error (500 , " Kotlin Wallet Error" )
102+ WalletConnect . Model .JsonRpcResponse .Error (500 , " Kotlin Wallet Error" )
107103 )
108104 )
109105
110- WalletConnectClient .respond(result , object : WalletConnectClientListeners .SessionPayload {
106+ WalletConnectClient .respond(response , object : WalletConnect . Listeners .SessionPayload {
111107 override fun onError (error : Throwable ) {
112108 // Error
113109 }
114110 })
115111 }
116112
117- fun sessionUpdate (session : WalletConnectClientData .SettledSession ) {
118- val updateParams = ClientTypes . UpdateParams (
113+ fun sessionUpdate (session : WalletConnect . Model .SettledSession ) {
114+ val update = WalletConnect . Params . Update (
119115 sessionTopic = session.topic,
120- sessionState = WalletConnectClientData .SessionState (accounts = listOf (" eip155:8001:0xa0A6c118b1B25207A8A764E1CAe1635339bedE62" ))
116+ sessionState = WalletConnect . Model .SessionState (accounts = listOf (" eip155:8001:0xa0A6c118b1B25207A8A764E1CAe1635339bedE62" ))
121117 )
122118
123- WalletConnectClient .update(updateParams , object : WalletConnectClientListeners .SessionUpdate {
124- override fun onSuccess (updatedSession : WalletConnectClientData .UpdatedSession ) {
119+ WalletConnectClient .update(update , object : WalletConnect . Listeners .SessionUpdate {
120+ override fun onSuccess (updatedSession : WalletConnect . Model .UpdatedSession ) {
125121 viewModelScope.launch {
126122 _eventFlow .emit(UpdateActiveSessions (WalletConnectClient .getListOfSettledSessions(), " Successful session update" ))
127123 }
@@ -133,15 +129,16 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
133129 })
134130 }
135131
136- fun sessionUpgrade (session : WalletConnectClientData .SettledSession ) {
132+ fun sessionUpgrade (session : WalletConnect . Model .SettledSession ) {
137133 val permissions =
138- WalletConnectClientData .SessionPermissions (
139- blockchain = WalletConnectClientData .Blockchain (chains = listOf (" eip155:80001" )),
140- jsonRpc = WalletConnectClientData .Jsonrpc (listOf (" eth_sign" ))
134+ WalletConnect . Model .SessionPermissions (
135+ blockchain = WalletConnect . Model .Blockchain (chains = listOf (" eip155:80001" )),
136+ jsonRpc = WalletConnect . Model .Jsonrpc (listOf (" eth_sign" ))
141137 )
142- val upgradeParams = ClientTypes .UpgradeParams (topic = session.topic, permissions = permissions)
143- WalletConnectClient .upgrade(upgradeParams, object : WalletConnectClientListeners .SessionUpgrade {
144- override fun onSuccess (upgradedSession : WalletConnectClientData .UpgradedSession ) {
138+ val upgrade = WalletConnect .Params .Upgrade (topic = session.topic, permissions = permissions)
139+
140+ WalletConnectClient .upgrade(upgrade, object : WalletConnect .Listeners .SessionUpgrade {
141+ override fun onSuccess (upgradedSession : WalletConnect .Model .UpgradedSession ) {
145142 viewModelScope.launch {
146143 _eventFlow .emit(UpdateActiveSessions (WalletConnectClient .getListOfSettledSessions(), " Successful session upgrade" ))
147144 }
@@ -153,10 +150,10 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
153150 })
154151 }
155152
156- fun sessionPing (session : WalletConnectClientData .SettledSession ) {
157- val pingParams = ClientTypes . PingParams (session.topic)
153+ fun sessionPing (session : WalletConnect . Model .SettledSession ) {
154+ val ping = WalletConnect . Params . Ping (session.topic)
158155
159- WalletConnectClient .ping(pingParams , object : WalletConnectClientListeners .SessionPing {
156+ WalletConnectClient .ping(ping , object : WalletConnect . Listeners .SessionPing {
160157 override fun onSuccess (topic : String ) {
161158 viewModelScope.launch {
162159 _eventFlow .emit(PingSuccess )
@@ -169,25 +166,25 @@ class WalletViewModel : ViewModel(), WalletConnectClientListener {
169166 })
170167 }
171168
172- override fun onSessionProposal (sessionProposal : WalletConnectClientData .SessionProposal ) {
169+ override fun onSessionProposal (sessionProposal : WalletConnect . Model .SessionProposal ) {
173170 viewModelScope.launch {
174171 this @WalletViewModel.proposal = sessionProposal
175172 _eventFlow .emit(ShowSessionProposalDialog (this @WalletViewModel.proposal))
176173 }
177174 }
178175
179- override fun onSessionRequest (sessionRequest : WalletConnectClientData .SessionRequest ) {
176+ override fun onSessionRequest (sessionRequest : WalletConnect . Model .SessionRequest ) {
180177 viewModelScope.launch {
181178 val session = WalletConnectClient .getListOfSettledSessions().find { session -> session.topic == sessionRequest.topic }!!
182179 _eventFlow .emit(ShowSessionRequestDialog (sessionRequest, session))
183180 }
184181 }
185182
186- override fun onSessionDelete (deletedSession : WalletConnectClientData .DeletedSession ) {
183+ override fun onSessionDelete (deletedSession : WalletConnect . Model .DeletedSession ) {
187184 viewModelScope.launch { _eventFlow .emit(UpdateActiveSessions (WalletConnectClient .getListOfSettledSessions())) }
188185 }
189186
190- override fun onSessionNotification (sessionNotification : WalletConnectClientData .SessionNotification ) {
187+ override fun onSessionNotification (sessionNotification : WalletConnect . Model .SessionNotification ) {
191188 // TODO handle session notification
192189 }
193190}
0 commit comments