Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ object Wallet {
val properties: Map<String, String>? = null,
val scopedProperties: Map<String, String>? = null,
val relayProtocol: String? = null,
val sessionTopic: String = ""
) : Params()

data class ApproveSessionAuthenticate(val id: Long, val auths: List<Model.Cacao>) : Params()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,12 @@ object WalletKit {
}

@Throws(IllegalStateException::class)
fun registerDeviceToken(firebaseAccessToken: String, enableEncrypted: Boolean = false, onSuccess: () -> Unit, onError: (Wallet.Model.Error) -> Unit) {
fun registerDeviceToken(
firebaseAccessToken: String,
enableEncrypted: Boolean = false,
onSuccess: () -> Unit,
onError: (Wallet.Model.Error) -> Unit
) {
coreClient.Echo.register(firebaseAccessToken, enableEncrypted, onSuccess) { error -> onError(Wallet.Model.Error(error)) }
}

Expand Down Expand Up @@ -157,12 +162,25 @@ object WalletKit {
onSuccess: (Wallet.Params.SessionApprove) -> Unit = {},
onError: (Wallet.Model.Error) -> Unit,
) {
val signParams = Sign.Params.Approve(params.proposerPublicKey, params.namespaces.toSign(), params.properties, params.scopedProperties, params.relayProtocol)
SignClient.approveSession(signParams, { onSuccess(params) }, { error -> onError(Wallet.Model.Error(error.throwable)) })
val signParams = Sign.Params.Approve(
params.proposerPublicKey,
params.namespaces.toSign(),
params.properties,
params.scopedProperties,
params.relayProtocol,

)
SignClient.approveSession(
signParams,
{ approve -> onSuccess(params.copy(sessionTopic = approve.sessionTopic)) },
{ error -> onError(Wallet.Model.Error(error.throwable)) })
}

@Throws(Exception::class)
fun generateApprovedNamespaces(sessionProposal: Wallet.Model.SessionProposal, supportedNamespaces: Map<String, Wallet.Model.Namespace.Session>): Map<String, Wallet.Model.Namespace.Session> {
fun generateApprovedNamespaces(
sessionProposal: Wallet.Model.SessionProposal,
supportedNamespaces: Map<String, Wallet.Model.Namespace.Session>
): Map<String, Wallet.Model.Namespace.Session> {
return com.reown.sign.client.utils.generateApprovedNamespaces(sessionProposal.toSign(), supportedNamespaces.toSign()).toWallet()
}

Expand Down Expand Up @@ -197,12 +215,20 @@ object WalletKit {
}

@Throws(Exception::class)
fun generateAuthObject(payloadParams: Wallet.Model.PayloadAuthRequestParams, issuer: String, signature: Wallet.Model.Cacao.Signature): Wallet.Model.Cacao {
fun generateAuthObject(
payloadParams: Wallet.Model.PayloadAuthRequestParams,
issuer: String,
signature: Wallet.Model.Cacao.Signature
): Wallet.Model.Cacao {
return com.reown.sign.client.utils.generateAuthObject(payloadParams.toSign(), issuer, signature.toSign()).toWallet()
}

@Throws(Exception::class)
fun generateAuthPayloadParams(payloadParams: Wallet.Model.PayloadAuthRequestParams, supportedChains: List<String>, supportedMethods: List<String>): Wallet.Model.PayloadAuthRequestParams {
fun generateAuthPayloadParams(
payloadParams: Wallet.Model.PayloadAuthRequestParams,
supportedChains: List<String>,
supportedMethods: List<String>
): Wallet.Model.PayloadAuthRequestParams {
return com.reown.sign.client.utils.generateAuthPayloadParams(payloadParams.toSign(), supportedChains, supportedMethods).toWallet()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ object Sign {
val properties: Map<String, String>? = null,
val scopedProperties: Map<String, String>? = null,
val relayProtocol: String? = null,
val sessionTopic: String = ""
) : Params()

data class Reject(val proposerPublicKey: String, val reason: String) : Params()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ class SignProtocol(private val koinApp: KoinApplication = wcKoinApp) : SignInter
sessionNamespaces = approve.namespaces.toMapOfEngineNamespacesSession(),
sessionProperties = approve.properties,
scopedProperties = approve.scopedProperties,
onSuccess = { onSuccess(approve) },
onSuccess = { topic -> onSuccess(approve.copy(sessionTopic = topic)) },
onFailure = { error -> onError(Sign.Model.Error(error)) }
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ internal class ApproveSessionUseCase(
sessionNamespaces: Map<String, EngineDO.Namespace.Session>,
sessionProperties: Map<String, String>?,
scopedProperties: Map<String, String>?,
onSuccess: () -> Unit,
onSuccess: (String) -> Unit,
onFailure: (Throwable) -> Unit
) = supervisorScope {
val trace: MutableList<String> = mutableListOf()
Expand Down Expand Up @@ -114,7 +114,7 @@ internal class ApproveSessionUseCase(
settleRequest = sessionSettle,
correlationId = proposal.requestId,
onSuccess = {
onSuccess()
onSuccess(sessionTopic.value)
scope.launch {
supervisorScope {
trace.add(Trace.Session.SESSION_APPROVE_SUCCESS)
Expand Down Expand Up @@ -155,7 +155,7 @@ internal interface ApproveSessionUseCaseInterface {
sessionNamespaces: Map<String, EngineDO.Namespace.Session>,
sessionProperties: Map<String, String>? = null,
scopedProperties: Map<String, String>? = null,
onSuccess: () -> Unit = {},
onSuccess: (String) -> Unit = {},
onFailure: (Throwable) -> Unit = {},
)
}
Loading