Skip to content

Commit aa8087d

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

148 files changed

Lines changed: 3293 additions & 32531 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

client/src/main/kotlin/io/github/hosseinkarami_dev/near/rpc/client/NearClient.kt

Lines changed: 408 additions & 1897 deletions
Large diffs are not rendered by default.

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

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -951,22 +951,6 @@ class ModelSerializationTests {
951951
}
952952
}
953953

954-
@Test
955-
fun testDynamicReshardingConfigViewEncodeDecode() {
956-
val data = loadMockJson("DynamicReshardingConfigView.json")
957-
assertNotNull(data, "Mock file DynamicReshardingConfigView.json does not exist!")
958-
959-
try {
960-
val decoded = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.DynamicReshardingConfigView.serializer(), data)
961-
val encoded = json.encodeToString(io.github.hosseinkarami_dev.near.rpc.models.DynamicReshardingConfigView.serializer(), decoded)
962-
val decoded2 = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.DynamicReshardingConfigView.serializer(), encoded)
963-
assertEquals(decoded, decoded2)
964-
} catch (e: Exception) {
965-
e.printStackTrace()
966-
fail("Serialization test failed for DynamicReshardingConfigView: ${e.message}")
967-
}
968-
}
969-
970954
@Test
971955
fun testEpochIdEncodeDecode() {
972956
val data = loadMockJson("EpochId.json")
@@ -1639,6 +1623,22 @@ class ModelSerializationTests {
16391623
}
16401624
}
16411625

1626+
@Test
1627+
fun testGasKeyInfoEncodeDecode() {
1628+
val data = loadMockJson("GasKeyInfo.json")
1629+
assertNotNull(data, "Mock file GasKeyInfo.json does not exist!")
1630+
1631+
try {
1632+
val decoded = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.GasKeyInfo.serializer(), data)
1633+
val encoded = json.encodeToString(io.github.hosseinkarami_dev.near.rpc.models.GasKeyInfo.serializer(), decoded)
1634+
val decoded2 = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.GasKeyInfo.serializer(), encoded)
1635+
assertEquals(decoded, decoded2)
1636+
} catch (e: Exception) {
1637+
e.printStackTrace()
1638+
fail("Serialization test failed for GasKeyInfo: ${e.message}")
1639+
}
1640+
}
1641+
16421642
@Test
16431643
fun testGenesisConfigEncodeDecode() {
16441644
val data = loadMockJson("GenesisConfig.json")
@@ -4983,6 +4983,22 @@ class ModelSerializationTests {
49834983
}
49844984
}
49854985

4986+
@Test
4987+
fun testTransferToGasKeyActionEncodeDecode() {
4988+
val data = loadMockJson("TransferToGasKeyAction.json")
4989+
assertNotNull(data, "Mock file TransferToGasKeyAction.json does not exist!")
4990+
4991+
try {
4992+
val decoded = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.TransferToGasKeyAction.serializer(), data)
4993+
val encoded = json.encodeToString(io.github.hosseinkarami_dev.near.rpc.models.TransferToGasKeyAction.serializer(), decoded)
4994+
val decoded2 = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.TransferToGasKeyAction.serializer(), encoded)
4995+
assertEquals(decoded, decoded2)
4996+
} catch (e: Exception) {
4997+
e.printStackTrace()
4998+
fail("Serialization test failed for TransferToGasKeyAction: ${e.message}")
4999+
}
5000+
}
5001+
49865002
@Test
49875003
fun testTxExecutionErrorEncodeDecode() {
49885004
val data = loadMockJson("TxExecutionError.json")
@@ -5191,6 +5207,22 @@ class ModelSerializationTests {
51915207
}
51925208
}
51935209

5210+
@Test
5211+
fun testWithdrawFromGasKeyActionEncodeDecode() {
5212+
val data = loadMockJson("WithdrawFromGasKeyAction.json")
5213+
assertNotNull(data, "Mock file WithdrawFromGasKeyAction.json does not exist!")
5214+
5215+
try {
5216+
val decoded = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.WithdrawFromGasKeyAction.serializer(), data)
5217+
val encoded = json.encodeToString(io.github.hosseinkarami_dev.near.rpc.models.WithdrawFromGasKeyAction.serializer(), decoded)
5218+
val decoded2 = json.decodeFromString(io.github.hosseinkarami_dev.near.rpc.models.WithdrawFromGasKeyAction.serializer(), encoded)
5219+
assertEquals(decoded, decoded2)
5220+
} catch (e: Exception) {
5221+
e.printStackTrace()
5222+
fail("Serialization test failed for WithdrawFromGasKeyAction: ${e.message}")
5223+
}
5224+
}
5225+
51945226
@Test
51955227
fun testWitnessConfigViewEncodeDecode() {
51965228
val data = loadMockJson("WitnessConfigView.json")

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

Lines changed: 37 additions & 37 deletions
Large diffs are not rendered by default.

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

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
package io.github.hosseinkarami_dev.near.rpc.models
22

33
import io.github.hosseinkarami_dev.near.rpc.serializers.AccessKeyPermissionSerializer
4+
import kotlin.OptIn
5+
import kotlinx.serialization.InternalSerializationApi
6+
import kotlinx.serialization.KSerializer
47
import kotlinx.serialization.SerialName
58
import kotlinx.serialization.Serializable
9+
import kotlinx.serialization.SerializationException
10+
import kotlinx.serialization.descriptors.SerialDescriptor
11+
import kotlinx.serialization.descriptors.StructureKind
12+
import kotlinx.serialization.descriptors.buildSerialDescriptor
13+
import kotlinx.serialization.encoding.Decoder
14+
import kotlinx.serialization.encoding.Encoder
15+
import kotlinx.serialization.json.JsonArray
16+
import kotlinx.serialization.json.JsonDecoder
17+
import kotlinx.serialization.json.JsonElement
18+
import kotlinx.serialization.json.JsonEncoder
19+
import kotlinx.serialization.serializer
620

721
/**
822
* * Defines permissions for AccessKey
@@ -23,4 +37,64 @@ public sealed class AccessKeyPermission {
2337
@Serializable
2438
@SerialName("FullAccess")
2539
public data object FullAccess : AccessKeyPermission()
40+
41+
/**
42+
* * Gas key with limited permission to make transactions with FunctionCallActions
43+
* Gas keys are a kind of access keys with a prepaid balance to pay for gas.
44+
*/
45+
@Serializable
46+
public data class GasKeyFunctionCall(
47+
/**
48+
* * Min Items: 2
49+
* * Max Items: 2
50+
*/
51+
@SerialName("GasKeyFunctionCall")
52+
public val gasKeyFunctionCall: GasKeyFunctionCallTuple,
53+
) : AccessKeyPermission() {
54+
/**
55+
* * Min Items: 2
56+
* * Max Items: 2
57+
*/
58+
@Serializable(with = GasKeyFunctionCallTuple.TupleSerializer::class)
59+
public data class GasKeyFunctionCallTuple(
60+
public val item0: GasKeyInfo,
61+
public val item1: FunctionCallPermission,
62+
) {
63+
@OptIn(InternalSerializationApi::class)
64+
public object TupleSerializer : KSerializer<GasKeyFunctionCallTuple> {
65+
override val descriptor: SerialDescriptor =
66+
buildSerialDescriptor("GasKeyFunctionCallTuple", StructureKind.LIST)
67+
68+
override fun serialize(encoder: Encoder, `value`: GasKeyFunctionCallTuple) {
69+
if (encoder !is JsonEncoder) throw SerializationException("Cannot serialize GasKeyFunctionCallTuple with non-JSON encoder")
70+
val json = encoder.json
71+
val list = buildList<JsonElement> {
72+
add(json.encodeToJsonElement(serializer<GasKeyInfo>(), value.item0))
73+
add(json.encodeToJsonElement(serializer<FunctionCallPermission>(), value.item1))
74+
}
75+
encoder.encodeJsonElement(JsonArray(list))
76+
}
77+
78+
override fun deserialize(decoder: Decoder): GasKeyFunctionCallTuple {
79+
if (decoder !is JsonDecoder) throw SerializationException("Cannot deserialize GasKeyFunctionCallTuple with non-JSON decoder")
80+
val element = decoder.decodeJsonElement()
81+
val arr = element as? JsonArray ?: throw SerializationException("Expected JSON array for GasKeyFunctionCallTuple")
82+
if (arr.size != 2) throw SerializationException("Expected 2 items for GasKeyFunctionCallTuple")
83+
val item0 = decoder.json.decodeFromJsonElement(serializer<GasKeyInfo>(), arr[0])
84+
val item1 = decoder.json.decodeFromJsonElement(serializer<FunctionCallPermission>(), arr[1])
85+
return GasKeyFunctionCallTuple(item0, item1)
86+
}
87+
}
88+
}
89+
}
90+
91+
/**
92+
* * Gas key with full access to the account.
93+
* Gas keys are a kind of access keys with a prepaid balance to pay for gas.
94+
*/
95+
@Serializable
96+
public data class GasKeyFullAccess(
97+
@SerialName("GasKeyFullAccess")
98+
public val gasKeyFullAccess: GasKeyInfo,
99+
) : AccessKeyPermission()
26100
}

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

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.github.hosseinkarami_dev.near.rpc.models
22

33
import io.github.hosseinkarami_dev.near.rpc.serializers.AccessKeyPermissionViewSerializer
44
import kotlin.String
5+
import kotlin.UShort
56
import kotlin.collections.List
67
import kotlinx.serialization.SerialName
78
import kotlinx.serialization.Serializable
@@ -33,4 +34,48 @@ public sealed class AccessKeyPermissionView {
3334
public val receiverId: String,
3435
)
3536
}
37+
38+
@Serializable
39+
public data class GasKeyFunctionCall(
40+
@SerialName("GasKeyFunctionCall")
41+
public val gasKeyFunctionCall: GasKeyFunctionCallPayload,
42+
) : AccessKeyPermissionView() {
43+
@Serializable
44+
public data class GasKeyFunctionCallPayload(
45+
@SerialName("allowance")
46+
public val allowance: NearToken? = null,
47+
@SerialName("balance")
48+
public val balance: NearToken,
49+
@SerialName("method_names")
50+
public val methodNames: List<String>,
51+
/**
52+
* * Minimum: 0.0
53+
* * Maximum: 65535.0
54+
* * Format: uint16
55+
*/
56+
@SerialName("num_nonces")
57+
public val numNonces: UShort,
58+
@SerialName("receiver_id")
59+
public val receiverId: String,
60+
)
61+
}
62+
63+
@Serializable
64+
public data class GasKeyFullAccess(
65+
@SerialName("GasKeyFullAccess")
66+
public val gasKeyFullAccess: GasKeyFullAccessPayload,
67+
) : AccessKeyPermissionView() {
68+
@Serializable
69+
public data class GasKeyFullAccessPayload(
70+
@SerialName("balance")
71+
public val balance: NearToken,
72+
/**
73+
* * Minimum: 0.0
74+
* * Maximum: 65535.0
75+
* * Format: uint16
76+
*/
77+
@SerialName("num_nonces")
78+
public val numNonces: UShort,
79+
)
80+
}
3681
}

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,4 +373,42 @@ public sealed class ActionErrorKind {
373373
public val identifier: GlobalContractIdentifier,
374374
)
375375
}
376+
377+
/**
378+
* * Gas key does not exist for the specified public key
379+
*/
380+
@Serializable
381+
public data class GasKeyDoesNotExist(
382+
@SerialName("GasKeyDoesNotExist")
383+
public val gasKeyDoesNotExist: GasKeyDoesNotExistPayload,
384+
) : ActionErrorKind() {
385+
@Serializable
386+
public data class GasKeyDoesNotExistPayload(
387+
@SerialName("account_id")
388+
public val accountId: AccountId,
389+
@SerialName("public_key")
390+
public val publicKey: PublicKey,
391+
)
392+
}
393+
394+
/**
395+
* * Gas key does not have sufficient balance for the requested withdrawal
396+
*/
397+
@Serializable
398+
public data class InsufficientGasKeyBalance(
399+
@SerialName("InsufficientGasKeyBalance")
400+
public val insufficientGasKeyBalance: InsufficientGasKeyBalancePayload,
401+
) : ActionErrorKind() {
402+
@Serializable
403+
public data class InsufficientGasKeyBalancePayload(
404+
@SerialName("account_id")
405+
public val accountId: AccountId,
406+
@SerialName("balance")
407+
public val balance: NearToken,
408+
@SerialName("public_key")
409+
public val publicKey: PublicKey,
410+
@SerialName("required")
411+
public val required: NearToken,
412+
)
413+
}
376414
}

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,32 @@ public sealed class ActionView {
195195
public val deposit: NearToken,
196196
)
197197
}
198+
199+
@Serializable
200+
public data class TransferToGasKey(
201+
@SerialName("TransferToGasKey")
202+
public val transferToGasKey: TransferToGasKeyPayload,
203+
) : ActionView() {
204+
@Serializable
205+
public data class TransferToGasKeyPayload(
206+
@SerialName("deposit")
207+
public val deposit: NearToken,
208+
@SerialName("public_key")
209+
public val publicKey: PublicKey,
210+
)
211+
}
212+
213+
@Serializable
214+
public data class WithdrawFromGasKey(
215+
@SerialName("WithdrawFromGasKey")
216+
public val withdrawFromGasKey: WithdrawFromGasKeyPayload,
217+
) : ActionView() {
218+
@Serializable
219+
public data class WithdrawFromGasKeyPayload(
220+
@SerialName("amount")
221+
public val amount: NearToken,
222+
@SerialName("public_key")
223+
public val publicKey: PublicKey,
224+
)
225+
}
198226
}

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

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import io.github.hosseinkarami_dev.near.rpc.serializers.ActionsValidationErrorSe
44
import kotlin.String
55
import kotlin.UInt
66
import kotlin.ULong
7+
import kotlin.UShort
78
import kotlinx.serialization.SerialName
89
import kotlinx.serialization.Serializable
910

@@ -327,4 +328,48 @@ public sealed class ActionsValidationError {
327328
public val limit: ULong,
328329
)
329330
}
331+
332+
@Serializable
333+
public data class GasKeyInvalidNumNonces(
334+
@SerialName("GasKeyInvalidNumNonces")
335+
public val gasKeyInvalidNumNonces: GasKeyInvalidNumNoncesPayload,
336+
) : ActionsValidationError() {
337+
@Serializable
338+
public data class GasKeyInvalidNumNoncesPayload(
339+
/**
340+
* * Minimum: 0.0
341+
* * Maximum: 65535.0
342+
* * Format: uint16
343+
*/
344+
@SerialName("limit")
345+
public val limit: UShort,
346+
/**
347+
* * Minimum: 0.0
348+
* * Maximum: 65535.0
349+
* * Format: uint16
350+
*/
351+
@SerialName("requested_nonces")
352+
public val requestedNonces: UShort,
353+
)
354+
}
355+
356+
@Serializable
357+
public data class AddGasKeyWithNonZeroBalance(
358+
@SerialName("AddGasKeyWithNonZeroBalance")
359+
public val addGasKeyWithNonZeroBalance: AddGasKeyWithNonZeroBalancePayload,
360+
) : ActionsValidationError() {
361+
@Serializable
362+
public data class AddGasKeyWithNonZeroBalancePayload(
363+
@SerialName("balance")
364+
public val balance: NearToken,
365+
)
366+
}
367+
368+
/**
369+
* * Gas keys with FunctionCall permission cannot have an allowance set.
370+
* * Possible values: GasKeyFunctionCallAllowanceNotAllowed
371+
*/
372+
@Serializable
373+
@SerialName("GasKeyFunctionCallAllowanceNotAllowed")
374+
public data object GasKeyFunctionCallAllowanceNotAllowed : ActionsValidationError()
330375
}

0 commit comments

Comments
 (0)