diff --git a/gradle.properties b/gradle.properties index a4bb856..1659395 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,3 +11,4 @@ org.gradle.jvmargs=-Xmx3g kotlin.mpp.enableCInteropCommonization=true kotlin.mpp.enableHierarchicalCommonization=true kotlin.mpp.androidSourceSetLayoutVersion=2 +kotlin.native.ignoreDisabledTargets=true diff --git a/libs.versions.toml b/libs.versions.toml index 66d6ec2..308a1d3 100644 --- a/libs.versions.toml +++ b/libs.versions.toml @@ -33,10 +33,12 @@ coroutinesJdk8 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8", ver kermit = { module = "co.touchlab:kermit", version.ref = "kermit" } kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" } ktorClientContentNegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } +ktorClientCio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } ktorClientCore = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktorClientDarwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" } ktorClientLogging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } ktorClientOkHttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } +ktorClientWinHttp = { module = "io.ktor:ktor-client-winhttp", version.ref = "ktor" } ktorSerializationKotlinxJson = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } ktorUtils = { module = "io.ktor:ktor-utils", version.ref = "ktor" } okio = { module = "com.squareup.okio:okio", version.ref = "okio" } diff --git a/solana-kotlin/build.gradle.kts b/solana-kotlin/build.gradle.kts index 4474ab3..be68396 100644 --- a/solana-kotlin/build.gradle.kts +++ b/solana-kotlin/build.gradle.kts @@ -39,6 +39,7 @@ kotlin { } mingwX64() + linuxX64() sourceSets { val jvmMain by getting { @@ -80,6 +81,18 @@ kotlin { val nativeMain by getting { } + + val linuxMain by getting { + dependencies { + implementation(libs.ktorClientCio) + } + } + + val mingwMain by getting { + dependencies { + implementation(libs.ktorClientWinHttp) + } + } } } diff --git a/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/domain/program/ProgramDerivedAddress.kt b/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/domain/program/ProgramDerivedAddress.kt index 403d85d..a3fe4d2 100644 --- a/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/domain/program/ProgramDerivedAddress.kt +++ b/solana-kotlin/src/commonMain/kotlin/net/avianlabs/solana/domain/program/ProgramDerivedAddress.kt @@ -1,7 +1,8 @@ package net.avianlabs.solana.domain.program -import kotlinx.serialization.Serializable import net.avianlabs.solana.tweetnacl.ed25519.PublicKey -@Serializable -public data class ProgramDerivedAddress(val address: PublicKey, val nonce: UByte) +public data class ProgramDerivedAddress( + val address: PublicKey, + val nonce: UByte, +) diff --git a/tweetnacl-multiplatform/build.gradle.kts b/tweetnacl-multiplatform/build.gradle.kts index 34f4c7e..fc49cbd 100644 --- a/tweetnacl-multiplatform/build.gradle.kts +++ b/tweetnacl-multiplatform/build.gradle.kts @@ -1,11 +1,9 @@ import co.touchlab.cklib.gradle.CompileToBitcode.Language -import co.touchlab.skie.configuration.ClassInterop import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.cklib) - alias(libs.plugins.kotlinSerialization) alias(libs.plugins.mavenPublish) alias(libs.plugins.dokka) signing @@ -40,6 +38,7 @@ kotlin { } mingwX64() + linuxX64() sourceSets { val jvmMain by getting { @@ -52,7 +51,6 @@ kotlin { val commonMain by getting { dependencies { - implementation(libs.serializationCore) } } val commonTest by getting { diff --git a/tweetnacl-multiplatform/src/commonMain/kotlin/net/avianlabs/solana/tweetnacl/ed25519/PublicKey.kt b/tweetnacl-multiplatform/src/commonMain/kotlin/net/avianlabs/solana/tweetnacl/ed25519/PublicKey.kt index 3ee690a..05f40f6 100644 --- a/tweetnacl-multiplatform/src/commonMain/kotlin/net/avianlabs/solana/tweetnacl/ed25519/PublicKey.kt +++ b/tweetnacl-multiplatform/src/commonMain/kotlin/net/avianlabs/solana/tweetnacl/ed25519/PublicKey.kt @@ -1,19 +1,10 @@ package net.avianlabs.solana.tweetnacl.ed25519 -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable -import kotlinx.serialization.builtins.serializer -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder import net.avianlabs.solana.tweetnacl.TweetNaCl import net.avianlabs.solana.tweetnacl.TweetNaCl.Signature.Companion.PUBLIC_KEY_BYTES import net.avianlabs.solana.tweetnacl.vendor.decodeBase58 import net.avianlabs.solana.tweetnacl.vendor.encodeToBase58String -@Serializable(with = PublicKeySerializer::class) public data class PublicKey(public val bytes: ByteArray) { init { @@ -43,19 +34,3 @@ public data class PublicKey(public val bytes: ByteArray) { public fun fromBase58(base58: String): PublicKey = PublicKey(base58.decodeBase58()) } } - -private class PublicKeySerializer : KSerializer { - - private val delegateSerializer = String.serializer() - - override val descriptor: SerialDescriptor = - PrimitiveSerialDescriptor("PublicKey", PrimitiveKind.STRING) - - override fun serialize(encoder: Encoder, value: PublicKey) = with(encoder) { - encodeSerializableValue(delegateSerializer, value.toBase58()) - } - - override fun deserialize(decoder: Decoder): PublicKey = PublicKey.fromBase58( - decoder.decodeSerializableValue(delegateSerializer), - ) -}