Skip to content

Commit f5f42ae

Browse files
hosseinkarami-devGitHub Actions Bot
andauthored
chore: regenerate client from OpenAPI (#108)
Co-authored-by: GitHub Actions Bot <automation@github.com>
1 parent aec9262 commit f5f42ae

File tree

5 files changed

+80
-0
lines changed

5 files changed

+80
-0
lines changed

client/src/test/kotlin/io/github/hosseinkarami_dev/near/rpc/client/ModelSerializationTests.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3111,6 +3111,22 @@ class ModelSerializationTests {
31113111
}
31123112
}
31133113

3114+
@Test
3115+
fun testNonceModeEncodeDecode() {
3116+
val data = loadMockJson("NonceMode.json")
3117+
assertNotNull(data, "Mock file NonceMode.json does not exist!")
3118+
3119+
try {
3120+
val decoded = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.NonceMode.serializer(), data)
3121+
val encoded = json.encodeToString(io.github.hosseinkarami_dev.near.rpc.models.NonceMode.serializer(), decoded)
3122+
val decoded2 = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.NonceMode.serializer(), encoded)
3123+
assertEquals(decoded, decoded2)
3124+
} catch (e: Exception) {
3125+
e.printStackTrace()
3126+
fail("Serialization test failed for NonceMode: ${e.message}")
3127+
}
3128+
}
3129+
31143130
@Test
31153131
fun testPeerIdEncodeDecode() {
31163132
val data = loadMockJson("PeerId.json")
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package io.github.hosseinkarami_dev.near.rpc.models
2+
3+
import io.github.hosseinkarami_dev.near.rpc.serializers.NonceModeSerializer
4+
import kotlinx.serialization.SerialName
5+
import kotlinx.serialization.Serializable
6+
7+
/**
8+
* * Controls how the transaction nonce is validated against the access key nonce.
9+
*/
10+
@Serializable(with = NonceModeSerializer::class)
11+
public sealed class NonceMode {
12+
/**
13+
* * Any nonce strictly greater than the current access key nonce (default behavior).
14+
* * Possible values: monotonic
15+
*/
16+
@Serializable
17+
@SerialName("monotonic")
18+
public data object Monotonic : NonceMode()
19+
20+
/**
21+
* * Nonce must be exactly `ak_nonce + 1` (sequential ordering).
22+
* * Possible values: strict
23+
*/
24+
@Serializable
25+
@SerialName("strict")
26+
public data object Strict : NonceMode()
27+
}

models/src/main/kotlin/io/github/hosseinkarami_dev/near/rpc/models/RpcClientConfigResponse.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,15 @@ public data class RpcClientConfigResponse(
422422
*/
423423
@SerialName("transaction_pool_size_limit")
424424
public val transactionPoolSizeLimit: ULong? = null,
425+
/**
426+
* * TTL in blocks for gapped strict-nonce transactions in the pool. Transactions with a
427+
* nonce gap whose block_hash is older than this many blocks are evicted during
428+
* prepare_transactions.
429+
* * Minimum: 0.0
430+
* * Format: uint64
431+
*/
432+
@SerialName("transaction_pool_strict_nonce_ttl_blocks")
433+
public val transactionPoolStrictNonceTtlBlocks: ULong? = null,
425434
/**
426435
* * Minimum: 0.0
427436
* * Format: uint

models/src/main/kotlin/io/github/hosseinkarami_dev/near/rpc/models/SignedTransactionView.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public data class SignedTransactionView(
2626
*/
2727
@SerialName("nonce_index")
2828
public val nonceIndex: UShort? = null,
29+
@SerialName("nonce_mode")
30+
public val nonceMode: NonceMode? = null,
2931
/**
3032
* * Deprecated, retained for backward compatibility.
3133
* * Minimum: 0.0
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package io.github.hosseinkarami_dev.near.rpc.serializers
2+
3+
import io.github.hosseinkarami_dev.near.rpc.serializers.BlindUnionSerializer
4+
import io.github.hosseinkarami_dev.near.rpc.serializers.Variant
5+
import io.github.hosseinkarami_dev.near.rpc.serializers.VariantKind
6+
import kotlinx.serialization.KSerializer
7+
import kotlinx.serialization.builtins.ListSerializer
8+
import kotlinx.serialization.builtins.MapSerializer
9+
import kotlinx.serialization.encoding.Decoder
10+
import kotlinx.serialization.encoding.Encoder
11+
import kotlinx.serialization.serializer
12+
import io.github.hosseinkarami_dev.near.rpc.models.NonceMode
13+
14+
object NonceModeSerializer : KSerializer<NonceMode> {
15+
private val union: BlindUnionSerializer<NonceMode> = BlindUnionSerializer(
16+
serialName = "io.github.hosseinkarami_dev.near.rpc.models.NonceMode",
17+
variants = listOf(
18+
Variant(serialName = "monotonic", kind = VariantKind.OBJECT, isInstance = { it is io.github.hosseinkarami_dev.near.rpc.models.NonceMode.Monotonic }, fullSerializer = serializer<io.github.hosseinkarami_dev.near.rpc.models.NonceMode.Monotonic>() as KSerializer<Any?>, objectInstance = io.github.hosseinkarami_dev.near.rpc.models.NonceMode.Monotonic),
19+
Variant(serialName = "strict", kind = VariantKind.OBJECT, isInstance = { it is io.github.hosseinkarami_dev.near.rpc.models.NonceMode.Strict }, fullSerializer = serializer<io.github.hosseinkarami_dev.near.rpc.models.NonceMode.Strict>() as KSerializer<Any?>, objectInstance = io.github.hosseinkarami_dev.near.rpc.models.NonceMode.Strict)
20+
)
21+
)
22+
23+
override val descriptor = union.descriptor
24+
override fun serialize(encoder: Encoder, value: NonceMode) = union.serialize(encoder, value)
25+
override fun deserialize(decoder: Decoder): NonceMode = union.deserialize(decoder)
26+
}

0 commit comments

Comments
 (0)