@solana-mobile/mobile-wallet-adapter-walletlib 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/LICENSE +12 -12
  2. package/README.md +202 -196
  3. package/android/build.gradle +151 -151
  4. package/android/gradle/wrapper/gradle-wrapper.properties +5 -5
  5. package/android/gradle.properties +5 -5
  6. package/android/gradlew +185 -185
  7. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/Extensions.kt +98 -98
  8. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/JsonSerializationUtils.kt +156 -156
  9. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/MobileWalletAdapterWalletLibReactNativePackage.kt +18 -18
  10. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/SolanaMobileWalletAdapterWalletLibModule.kt +691 -691
  11. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/model/MobileWalletAdapterConfig.kt +59 -59
  12. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/model/MobileWalletAdapterRequest.kt +97 -97
  13. package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/model/MobileWalletAdapterResponse.kt +68 -68
  14. package/lib/esm/index.js +119 -194
  15. package/lib/esm/index.js.map +1 -0
  16. package/lib/esm/index.native.js +119 -194
  17. package/lib/esm/index.native.js.map +1 -0
  18. package/lib/esm/package.json +1 -3
  19. package/lib/types/index.d.ts +124 -112
  20. package/lib/types/index.d.ts.map +1 -1
  21. package/package.json +49 -46
  22. package/lib/types/index.native.d.ts +0 -226
  23. package/lib/types/index.native.d.ts.map +0 -1
@@ -1,60 +1,60 @@
1
- package com.solanamobile.mobilewalletadapterwalletlib.reactnative.model
2
-
3
- import com.solana.mobilewalletadapter.walletlib.protocol.MobileWalletAdapterConfig
4
- import kotlinx.serialization.DeserializationStrategy
5
- import kotlinx.serialization.KSerializer
6
- import kotlinx.serialization.Serializable
7
- import kotlinx.serialization.builtins.ListSerializer
8
- import kotlinx.serialization.builtins.serializer
9
- import kotlinx.serialization.descriptors.PrimitiveKind
10
- import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
11
- import kotlinx.serialization.descriptors.SerialDescriptor
12
- import kotlinx.serialization.encoding.Decoder
13
- import kotlinx.serialization.encoding.Encoder
14
- import kotlinx.serialization.json.JsonContentPolymorphicSerializer
15
- import kotlinx.serialization.json.JsonElement
16
- import kotlinx.serialization.json.JsonPrimitive
17
-
18
- @Serializable
19
- private data class MobileWalletAdapterConfigSurrogate(
20
- val maxTransactionsPerSigningRequest: Int,
21
- val maxMessagesPerSigningRequest: Int,
22
- val supportedTransactionVersions: List<@Serializable(with = TransactionVersionSerializer::class) Any>,
23
- val noConnectionWarningTimeoutMs: Long,
24
- val optionalFeatures: List<String>
25
- )
26
-
27
- object TransactionVersionSerializer : JsonContentPolymorphicSerializer<Any>(Any::class) {
28
- override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out Any> =
29
- if ((element as? JsonPrimitive)?.content?.toIntOrNull() != null) Int.serializer()
30
- else if ((element as? JsonPrimitive)?.content == "legacy") String.serializer()
31
- else throw IllegalArgumentException("supportedTransactionVersions must be either the string \"legacy\" or a non-negative integer")
32
- }
33
-
34
- object MobileWalletAdapterConfigSerializer : KSerializer<MobileWalletAdapterConfig> {
35
- private val delegateSerializer = MobileWalletAdapterConfigSurrogate.serializer()
36
- override val descriptor: SerialDescriptor = delegateSerializer.descriptor
37
-
38
- override fun deserialize(decoder: Decoder): MobileWalletAdapterConfig {
39
- val surrogate = decoder.decodeSerializableValue(delegateSerializer)
40
- return MobileWalletAdapterConfig(
41
- surrogate.maxTransactionsPerSigningRequest,
42
- surrogate.maxMessagesPerSigningRequest,
43
- surrogate.supportedTransactionVersions.toTypedArray(),
44
- surrogate.noConnectionWarningTimeoutMs,
45
- surrogate.optionalFeatures.toTypedArray()
46
- )
47
- }
48
-
49
- override fun serialize(encoder: Encoder, value: MobileWalletAdapterConfig) {
50
- encoder.encodeSerializableValue(delegateSerializer,
51
- MobileWalletAdapterConfigSurrogate(
52
- value.maxTransactionsPerSigningRequest,
53
- value.maxMessagesPerSigningRequest,
54
- value.supportedTransactionVersions.toList(),
55
- value.noConnectionWarningTimeoutMs,
56
- value.optionalFeatures.toList()
57
- )
58
- )
59
- }
1
+ package com.solanamobile.mobilewalletadapterwalletlib.reactnative.model
2
+
3
+ import com.solana.mobilewalletadapter.walletlib.protocol.MobileWalletAdapterConfig
4
+ import kotlinx.serialization.DeserializationStrategy
5
+ import kotlinx.serialization.KSerializer
6
+ import kotlinx.serialization.Serializable
7
+ import kotlinx.serialization.builtins.ListSerializer
8
+ import kotlinx.serialization.builtins.serializer
9
+ import kotlinx.serialization.descriptors.PrimitiveKind
10
+ import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
11
+ import kotlinx.serialization.descriptors.SerialDescriptor
12
+ import kotlinx.serialization.encoding.Decoder
13
+ import kotlinx.serialization.encoding.Encoder
14
+ import kotlinx.serialization.json.JsonContentPolymorphicSerializer
15
+ import kotlinx.serialization.json.JsonElement
16
+ import kotlinx.serialization.json.JsonPrimitive
17
+
18
+ @Serializable
19
+ private data class MobileWalletAdapterConfigSurrogate(
20
+ val maxTransactionsPerSigningRequest: Int,
21
+ val maxMessagesPerSigningRequest: Int,
22
+ val supportedTransactionVersions: List<@Serializable(with = TransactionVersionSerializer::class) Any>,
23
+ val noConnectionWarningTimeoutMs: Long,
24
+ val optionalFeatures: List<String>
25
+ )
26
+
27
+ object TransactionVersionSerializer : JsonContentPolymorphicSerializer<Any>(Any::class) {
28
+ override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out Any> =
29
+ if ((element as? JsonPrimitive)?.content?.toIntOrNull() != null) Int.serializer()
30
+ else if ((element as? JsonPrimitive)?.content == "legacy") String.serializer()
31
+ else throw IllegalArgumentException("supportedTransactionVersions must be either the string \"legacy\" or a non-negative integer")
32
+ }
33
+
34
+ object MobileWalletAdapterConfigSerializer : KSerializer<MobileWalletAdapterConfig> {
35
+ private val delegateSerializer = MobileWalletAdapterConfigSurrogate.serializer()
36
+ override val descriptor: SerialDescriptor = delegateSerializer.descriptor
37
+
38
+ override fun deserialize(decoder: Decoder): MobileWalletAdapterConfig {
39
+ val surrogate = decoder.decodeSerializableValue(delegateSerializer)
40
+ return MobileWalletAdapterConfig(
41
+ surrogate.maxTransactionsPerSigningRequest,
42
+ surrogate.maxMessagesPerSigningRequest,
43
+ surrogate.supportedTransactionVersions.toTypedArray(),
44
+ surrogate.noConnectionWarningTimeoutMs,
45
+ surrogate.optionalFeatures.toTypedArray()
46
+ )
47
+ }
48
+
49
+ override fun serialize(encoder: Encoder, value: MobileWalletAdapterConfig) {
50
+ encoder.encodeSerializableValue(delegateSerializer,
51
+ MobileWalletAdapterConfigSurrogate(
52
+ value.maxTransactionsPerSigningRequest,
53
+ value.maxMessagesPerSigningRequest,
54
+ value.supportedTransactionVersions.toList(),
55
+ value.noConnectionWarningTimeoutMs,
56
+ value.optionalFeatures.toList()
57
+ )
58
+ )
59
+ }
60
60
  }
@@ -1,98 +1,98 @@
1
- package com.solanamobile.mobilewalletadapterwalletlib.reactnative.model
2
-
3
- import com.solana.mobilewalletadapter.common.signin.SignInWithSolana
4
- import com.solanamobile.mobilewalletadapterwalletlib.reactnative.SignInPayloadSerializer
5
- import kotlinx.serialization.SerialName
6
- import kotlinx.serialization.Serializable
7
- import java.util.*
8
-
9
- @Serializable
10
- sealed class MobileWalletAdapterRequest {
11
- open val requestId: String = UUID.randomUUID().toString()
12
- abstract val sessionId: String
13
- abstract val chain: String
14
- abstract val identityName: String?
15
- abstract val identityUri: String?
16
- abstract val iconRelativeUri: String?
17
- }
18
-
19
- @Serializable
20
- @SerialName("AUTHORIZE_DAPP")
21
- data class AuthorizeDapp(
22
- override val sessionId: String,
23
- override val chain: String,
24
- override val identityName: String?,
25
- override val identityUri: String?,
26
- override val iconRelativeUri: String?,
27
- val features: List<String>? = null,
28
- val addresses: List<String>? = null,
29
- @Serializable(with = SignInPayloadSerializer::class) val signInPayload: SignInWithSolana.Payload? = null
30
- ) : MobileWalletAdapterRequest()
31
-
32
- @Serializable
33
- sealed class VerifiableIdentityRequestSurrogate : MobileWalletAdapterRequest() {
34
- abstract val authorizationScope: ByteArray
35
- }
36
-
37
- @Serializable
38
- @SerialName("REAUTHORIZE_DAPP")
39
- data class ReauthorizeDapp(
40
- override val sessionId: String,
41
- override val chain: String,
42
- override val identityName: String?,
43
- override val identityUri: String?,
44
- override val iconRelativeUri: String?,
45
- override val authorizationScope: ByteArray
46
- ) : VerifiableIdentityRequestSurrogate()
47
-
48
- @Serializable
49
- @SerialName("DEAUTHORIZE_DAPP")
50
- data class DeauthorizeDapp(
51
- override val sessionId: String,
52
- override val chain: String,
53
- override val identityName: String?,
54
- override val identityUri: String?,
55
- override val iconRelativeUri: String?,
56
- override val authorizationScope: ByteArray
57
- ) : VerifiableIdentityRequestSurrogate()
58
-
59
- @Serializable
60
- sealed class SignPayloads : VerifiableIdentityRequestSurrogate() {
61
- abstract val payloads: List<ByteArray>
62
- }
63
-
64
- @Serializable
65
- @SerialName("SIGN_MESSAGES")
66
- data class SignMessages(
67
- override val sessionId: String,
68
- override val chain: String,
69
- override val identityName: String?,
70
- override val identityUri: String?,
71
- override val iconRelativeUri: String?,
72
- override val authorizationScope: ByteArray,
73
- override val payloads: List<ByteArray>
74
- ) : SignPayloads()
75
-
76
- @Serializable
77
- @SerialName("SIGN_TRANSACTIONS")
78
- data class SignTransactions(
79
- override val sessionId: String,
80
- override val chain: String,
81
- override val identityName: String?,
82
- override val identityUri: String?,
83
- override val iconRelativeUri: String?,
84
- override val authorizationScope: ByteArray,
85
- override val payloads: List<ByteArray>
86
- ) : SignPayloads()
87
-
88
- @Serializable
89
- @SerialName("SIGN_AND_SEND_TRANSACTIONS")
90
- data class SignAndSendTransactions(
91
- override val sessionId: String,
92
- override val chain: String,
93
- override val identityName: String?,
94
- override val identityUri: String?,
95
- override val iconRelativeUri: String?,
96
- override val authorizationScope: ByteArray,
97
- override val payloads: List<ByteArray>
1
+ package com.solanamobile.mobilewalletadapterwalletlib.reactnative.model
2
+
3
+ import com.solana.mobilewalletadapter.common.signin.SignInWithSolana
4
+ import com.solanamobile.mobilewalletadapterwalletlib.reactnative.SignInPayloadSerializer
5
+ import kotlinx.serialization.SerialName
6
+ import kotlinx.serialization.Serializable
7
+ import java.util.*
8
+
9
+ @Serializable
10
+ sealed class MobileWalletAdapterRequest {
11
+ open val requestId: String = UUID.randomUUID().toString()
12
+ abstract val sessionId: String
13
+ abstract val chain: String
14
+ abstract val identityName: String?
15
+ abstract val identityUri: String?
16
+ abstract val iconRelativeUri: String?
17
+ }
18
+
19
+ @Serializable
20
+ @SerialName("AUTHORIZE_DAPP")
21
+ data class AuthorizeDapp(
22
+ override val sessionId: String,
23
+ override val chain: String,
24
+ override val identityName: String?,
25
+ override val identityUri: String?,
26
+ override val iconRelativeUri: String?,
27
+ val features: List<String>? = null,
28
+ val addresses: List<String>? = null,
29
+ @Serializable(with = SignInPayloadSerializer::class) val signInPayload: SignInWithSolana.Payload? = null
30
+ ) : MobileWalletAdapterRequest()
31
+
32
+ @Serializable
33
+ sealed class VerifiableIdentityRequestSurrogate : MobileWalletAdapterRequest() {
34
+ abstract val authorizationScope: ByteArray
35
+ }
36
+
37
+ @Serializable
38
+ @SerialName("REAUTHORIZE_DAPP")
39
+ data class ReauthorizeDapp(
40
+ override val sessionId: String,
41
+ override val chain: String,
42
+ override val identityName: String?,
43
+ override val identityUri: String?,
44
+ override val iconRelativeUri: String?,
45
+ override val authorizationScope: ByteArray
46
+ ) : VerifiableIdentityRequestSurrogate()
47
+
48
+ @Serializable
49
+ @SerialName("DEAUTHORIZE_DAPP")
50
+ data class DeauthorizeDapp(
51
+ override val sessionId: String,
52
+ override val chain: String,
53
+ override val identityName: String?,
54
+ override val identityUri: String?,
55
+ override val iconRelativeUri: String?,
56
+ override val authorizationScope: ByteArray
57
+ ) : VerifiableIdentityRequestSurrogate()
58
+
59
+ @Serializable
60
+ sealed class SignPayloads : VerifiableIdentityRequestSurrogate() {
61
+ abstract val payloads: List<ByteArray>
62
+ }
63
+
64
+ @Serializable
65
+ @SerialName("SIGN_MESSAGES")
66
+ data class SignMessages(
67
+ override val sessionId: String,
68
+ override val chain: String,
69
+ override val identityName: String?,
70
+ override val identityUri: String?,
71
+ override val iconRelativeUri: String?,
72
+ override val authorizationScope: ByteArray,
73
+ override val payloads: List<ByteArray>
74
+ ) : SignPayloads()
75
+
76
+ @Serializable
77
+ @SerialName("SIGN_TRANSACTIONS")
78
+ data class SignTransactions(
79
+ override val sessionId: String,
80
+ override val chain: String,
81
+ override val identityName: String?,
82
+ override val identityUri: String?,
83
+ override val iconRelativeUri: String?,
84
+ override val authorizationScope: ByteArray,
85
+ override val payloads: List<ByteArray>
86
+ ) : SignPayloads()
87
+
88
+ @Serializable
89
+ @SerialName("SIGN_AND_SEND_TRANSACTIONS")
90
+ data class SignAndSendTransactions(
91
+ override val sessionId: String,
92
+ override val chain: String,
93
+ override val identityName: String?,
94
+ override val identityUri: String?,
95
+ override val iconRelativeUri: String?,
96
+ override val authorizationScope: ByteArray,
97
+ override val payloads: List<ByteArray>
98
98
  ) : SignPayloads()
@@ -1,68 +1,68 @@
1
- package com.solanamobile.mobilewalletadapterwalletlib.reactnative.model
2
-
3
- import com.solana.mobilewalletadapter.walletlib.scenario.SignInResult
4
- import com.solanamobile.mobilewalletadapterwalletlib.reactnative.ByteArrayAsMapSerializer
5
- import com.solanamobile.mobilewalletadapterwalletlib.reactnative.ByteArrayCollectionAsMapCollectionSerializer
6
- import com.solanamobile.mobilewalletadapterwalletlib.reactnative.SignInResultSerializer
7
- import kotlinx.serialization.SerialName
8
- import kotlinx.serialization.Serializable
9
-
10
- @Serializable
11
- sealed class MobileWalletAdapterResponse
12
-
13
- @Serializable
14
- sealed class MobileWalletAdapterFailureResponse : MobileWalletAdapterResponse()
15
-
16
- @Serializable
17
- @SerialName("USER_DECLINED")
18
- object UserDeclinedResponse : MobileWalletAdapterFailureResponse()
19
-
20
- @Serializable
21
- @SerialName("TOO_MANY_PAYLOADS")
22
- object TooManyPayloadsResponse : MobileWalletAdapterFailureResponse()
23
-
24
- @Serializable
25
- @SerialName("AUTHORIZATION_NOT_VALID")
26
- object AuthorizationNotValidResponse : MobileWalletAdapterFailureResponse()
27
-
28
- @Serializable
29
- @SerialName("INVALID_SIGNATURES")
30
- data class InvalidSignaturesResponse(val valid: BooleanArray) : MobileWalletAdapterFailureResponse()
31
-
32
- @Serializable
33
- data class AuthorizedAccount(
34
- @Serializable(with = ByteArrayAsMapSerializer::class) val publicKey: ByteArray,
35
- val accountLabel: String? = String(publicKey),
36
- val icon: String? = null,
37
- val chains: List<String>? = null,
38
- val features: List<String>? = null
39
- )
40
-
41
- @Serializable
42
- data class AuthorizeDappResponse(
43
- val accounts: List<AuthorizedAccount>,
44
- val walletUriBase: String? = null,
45
- @Serializable(with = ByteArrayAsMapSerializer::class) val authorizationScope: ByteArray,
46
- @Serializable(with = SignInResultSerializer::class) val signInResult: SignInResult? = null
47
- ) : MobileWalletAdapterResponse()
48
-
49
- @Serializable
50
- data class ReauthorizeDappResponse(
51
- @Serializable(with = ByteArrayAsMapSerializer::class) val publicKey: ByteArray? = null,
52
- val accountLabel: String? = publicKey?.let { String(publicKey) },
53
- val walletUriBase: String? = null,
54
- @Serializable(with = ByteArrayAsMapSerializer::class) val authorizationScope: ByteArray
55
- ) : MobileWalletAdapterResponse()
56
-
57
- @Serializable
58
- object DeauthorizeDappResponse : MobileWalletAdapterResponse()
59
-
60
- @Serializable
61
- data class SignedPayloads(
62
- @Serializable(with = ByteArrayCollectionAsMapCollectionSerializer::class) val signedPayloads: List<ByteArray>
63
- ) : MobileWalletAdapterResponse()
64
-
65
- @Serializable
66
- data class SignedAndSentTransactions(
67
- @Serializable(with = ByteArrayCollectionAsMapCollectionSerializer::class) val signedTransactions: List<ByteArray>
68
- ) : MobileWalletAdapterResponse()
1
+ package com.solanamobile.mobilewalletadapterwalletlib.reactnative.model
2
+
3
+ import com.solana.mobilewalletadapter.walletlib.scenario.SignInResult
4
+ import com.solanamobile.mobilewalletadapterwalletlib.reactnative.ByteArrayAsMapSerializer
5
+ import com.solanamobile.mobilewalletadapterwalletlib.reactnative.ByteArrayCollectionAsMapCollectionSerializer
6
+ import com.solanamobile.mobilewalletadapterwalletlib.reactnative.SignInResultSerializer
7
+ import kotlinx.serialization.SerialName
8
+ import kotlinx.serialization.Serializable
9
+
10
+ @Serializable
11
+ sealed class MobileWalletAdapterResponse
12
+
13
+ @Serializable
14
+ sealed class MobileWalletAdapterFailureResponse : MobileWalletAdapterResponse()
15
+
16
+ @Serializable
17
+ @SerialName("USER_DECLINED")
18
+ object UserDeclinedResponse : MobileWalletAdapterFailureResponse()
19
+
20
+ @Serializable
21
+ @SerialName("TOO_MANY_PAYLOADS")
22
+ object TooManyPayloadsResponse : MobileWalletAdapterFailureResponse()
23
+
24
+ @Serializable
25
+ @SerialName("AUTHORIZATION_NOT_VALID")
26
+ object AuthorizationNotValidResponse : MobileWalletAdapterFailureResponse()
27
+
28
+ @Serializable
29
+ @SerialName("INVALID_SIGNATURES")
30
+ data class InvalidSignaturesResponse(val valid: BooleanArray) : MobileWalletAdapterFailureResponse()
31
+
32
+ @Serializable
33
+ data class AuthorizedAccount(
34
+ @Serializable(with = ByteArrayAsMapSerializer::class) val publicKey: ByteArray,
35
+ val accountLabel: String? = String(publicKey),
36
+ val icon: String? = null,
37
+ val chains: List<String>? = null,
38
+ val features: List<String>? = null
39
+ )
40
+
41
+ @Serializable
42
+ data class AuthorizeDappResponse(
43
+ val accounts: List<AuthorizedAccount>,
44
+ val walletUriBase: String? = null,
45
+ @Serializable(with = ByteArrayAsMapSerializer::class) val authorizationScope: ByteArray,
46
+ @Serializable(with = SignInResultSerializer::class) val signInResult: SignInResult? = null
47
+ ) : MobileWalletAdapterResponse()
48
+
49
+ @Serializable
50
+ data class ReauthorizeDappResponse(
51
+ @Serializable(with = ByteArrayAsMapSerializer::class) val publicKey: ByteArray? = null,
52
+ val accountLabel: String? = publicKey?.let { String(publicKey) },
53
+ val walletUriBase: String? = null,
54
+ @Serializable(with = ByteArrayAsMapSerializer::class) val authorizationScope: ByteArray
55
+ ) : MobileWalletAdapterResponse()
56
+
57
+ @Serializable
58
+ object DeauthorizeDappResponse : MobileWalletAdapterResponse()
59
+
60
+ @Serializable
61
+ data class SignedPayloads(
62
+ @Serializable(with = ByteArrayCollectionAsMapCollectionSerializer::class) val signedPayloads: List<ByteArray>
63
+ ) : MobileWalletAdapterResponse()
64
+
65
+ @Serializable
66
+ data class SignedAndSentTransactions(
67
+ @Serializable(with = ByteArrayCollectionAsMapCollectionSerializer::class) val signedTransactions: List<ByteArray>
68
+ ) : MobileWalletAdapterResponse()