From 0c0e3955d7399d4137674b3178f1494cd8cafcf9 Mon Sep 17 00:00:00 2001 From: Guillermo Orellana Date: Mon, 18 Mar 2024 21:04:57 +0100 Subject: [PATCH] ios friendly ctor --- .../kotlin/net/avianlabs/solana/SolanaClient.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/SolanaClient.kt b/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/SolanaClient.kt index 5005834..15bf043 100644 --- a/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/SolanaClient.kt +++ b/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/SolanaClient.kt @@ -7,22 +7,32 @@ import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonArray import net.avianlabs.solana.client.RpcInvocation import net.avianlabs.solana.client.RpcKtorClient +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine public class SolanaClient( private val client: RpcKtorClient, private val headerProviders: Map String?> = mapOf(), ) { + + // iOS friendly constructor public constructor( url: String, - authorizationHeaderProvider: suspend () -> String?, + authorizationHeaderProvider: (completion: (String?) -> Unit) -> Unit, ) : this( client = RpcKtorClient( url = url, httpClient = HttpClient(), ), headerProviders = mapOf( - HttpHeaders.Authorization to authorizationHeaderProvider, - ) + HttpHeaders.Authorization to { + suspendCoroutine { continuation -> + authorizationHeaderProvider { header -> + continuation.resume(header) + } + } + }, + ), ) @OptIn(ExperimentalSerializationApi::class)