diff --git a/library/src/androidTest/java/org/xmtp/android/library/GroupPermissionsTest.kt b/library/src/androidTest/java/org/xmtp/android/library/GroupPermissionsTest.kt new file mode 100644 index 000000000..c7db0ac71 --- /dev/null +++ b/library/src/androidTest/java/org/xmtp/android/library/GroupPermissionsTest.kt @@ -0,0 +1,260 @@ +package org.xmtp.android.library + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import kotlinx.coroutines.runBlocking +import org.junit.Assert.assertEquals +import org.junit.Assert.assertThrows +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.xmtp.android.library.libxmtp.PermissionLevel +import org.xmtp.android.library.messages.PrivateKey +import org.xmtp.android.library.messages.PrivateKeyBuilder +import org.xmtp.android.library.messages.walletAddress +import uniffi.xmtpv3.GroupPermissions + +@RunWith(AndroidJUnit4::class) +class GroupPermissionsTest { + private lateinit var alixWallet: PrivateKeyBuilder + private lateinit var boWallet: PrivateKeyBuilder + private lateinit var alix: PrivateKey + private lateinit var alixClient: Client + private lateinit var bo: PrivateKey + private lateinit var boClient: Client + private lateinit var caroWallet: PrivateKeyBuilder + private lateinit var caro: PrivateKey + private lateinit var caroClient: Client + private lateinit var fixtures: Fixtures + + @Before + fun setUp() { + val context = InstrumentationRegistry.getInstrumentation().targetContext + fixtures = + fixtures( + clientOptions = ClientOptions( + ClientOptions.Api(XMTPEnvironment.LOCAL, false), + enableAlphaMls = true, + appContext = context + ) + ) + alixWallet = fixtures.aliceAccount + alix = fixtures.alice + boWallet = fixtures.bobAccount + bo = fixtures.bob + caroWallet = fixtures.caroAccount + caro = fixtures.caro + + alixClient = fixtures.aliceClient + boClient = fixtures.bobClient + caroClient = fixtures.caroClient + } + + @Test + fun testGroupCreatedWithCorrectAdminList() { + val boGroup = runBlocking { boClient.conversations.newGroup(listOf(alix.walletAddress)) } + runBlocking { alixClient.conversations.syncGroups() } + val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } + + assert(boGroup.isAdmin(boClient.inboxId)) + assert(boGroup.isSuperAdmin(boClient.inboxId)) + assert(!alixGroup.isCreator()) + assert(!alixGroup.isAdmin(alixClient.inboxId)) + assert(!alixGroup.isSuperAdmin(alixClient.inboxId)) + + val adminList = runBlocking { + boGroup.listAdmins() + } + val superAdminList = runBlocking { + boGroup.listSuperAdmins() + } + assert(adminList.size == 1) + assert(adminList.contains(boClient.inboxId)) + assert(superAdminList.size == 1) + assert(superAdminList.contains(boClient.inboxId)) + } + + @Test + fun testGroupCanUpdateAdminList() { + val boGroup = runBlocking { boClient.conversations.newGroup(listOf(alix.walletAddress, caro.walletAddress), GroupPermissions.ADMIN_ONLY) } + runBlocking { alixClient.conversations.syncGroups() } + val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } + + assert(boGroup.isAdmin(boClient.inboxId)) + assert(boGroup.isSuperAdmin(boClient.inboxId)) + assert(!alixGroup.isCreator()) + assert(!alixGroup.isAdmin(alixClient.inboxId)) + assert(!alixGroup.isSuperAdmin(alixClient.inboxId)) + + var adminList = runBlocking { + boGroup.listAdmins() + } + var superAdminList = runBlocking { + boGroup.listSuperAdmins() + } + assert(adminList.size == 1) + assert(adminList.contains(boClient.inboxId)) + assert(superAdminList.size == 1) + assert(superAdminList.contains(boClient.inboxId)) + + // Verify that alix can NOT update group name + assert(boGroup.name == "New Group") + val exception = assertThrows(uniffi.xmtpv3.GenericException.GroupException::class.java) { + runBlocking { + alixGroup.updateGroupName("Alix group name") + } + } + assertEquals(exception.message, "Group error: generic: failed to wait for intent") + runBlocking { + alixGroup.sync() + boGroup.sync() + } + assert(boGroup.name == "New Group") + assert(alixGroup.name == "New Group") + + runBlocking { + boGroup.addAdmin(alixClient.inboxId) + boGroup.sync() + alixGroup.sync() + } + + adminList = runBlocking { + boGroup.listAdmins() + } + superAdminList = runBlocking { + boGroup.listSuperAdmins() + } + + assert(alixGroup.isAdmin(alixClient.inboxId)) + assert(adminList.size == 2) + assert(adminList.contains(alixClient.inboxId)) + assert(superAdminList.size == 1) + + // Verify that alix can now update group name + runBlocking { + boGroup.sync() + alixGroup.sync() + alixGroup.updateGroupName("Alix group name") + alixGroup.sync() + boGroup.sync() + } + assert(boGroup.name == "Alix group name") + assert(alixGroup.name == "Alix group name") + + runBlocking { + boGroup.removeAdmin(alixClient.inboxId) + boGroup.sync() + alixGroup.sync() + } + + adminList = runBlocking { + boGroup.listAdmins() + } + superAdminList = runBlocking { + boGroup.listSuperAdmins() + } + + assert(!alixGroup.isAdmin(alixClient.inboxId)) + assert(adminList.size == 1) + assert(!adminList.contains(alixClient.inboxId)) + assert(superAdminList.size == 1) + + // Verify that alix can NOT update group name + val exception2 = assertThrows(uniffi.xmtpv3.GenericException.GroupException::class.java) { + runBlocking { + alixGroup.updateGroupName("Alix group name 2") + } + } + assertEquals(exception.message, "Group error: generic: failed to wait for intent") + } + + @Test + fun testGroupCanUpdateSuperAdminList() { + val boGroup = runBlocking { boClient.conversations.newGroup(listOf(alix.walletAddress, caro.walletAddress), GroupPermissions.ADMIN_ONLY) } + runBlocking { alixClient.conversations.syncGroups() } + val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } + + assert(boGroup.isSuperAdmin(boClient.inboxId)) + assert(!alixGroup.isSuperAdmin(alixClient.inboxId)) + + // Attempt to remove bo as a super admin by alix should fail since she is not a super admin + val exception = assertThrows(XMTPException::class.java) { + runBlocking { + alixGroup.removeSuperAdmin(boClient.inboxId) + } + } + assertEquals(exception.message, "Permission denied: Unable to remove super admin") + + // Make alix a super admin + runBlocking { + boGroup.addSuperAdmin(alixClient.inboxId) + boGroup.sync() + alixGroup.sync() + } + + assert(alixGroup.isSuperAdmin(alixClient.inboxId)) + + // Now alix should be able to remove bo as a super admin + runBlocking { + alixGroup.removeSuperAdmin(boClient.inboxId) + alixGroup.sync() + boGroup.sync() + } + + val superAdminList = runBlocking { + boGroup.listSuperAdmins() + } + + assert(!superAdminList.contains(boClient.inboxId)) + assert(superAdminList.contains(alixClient.inboxId)) + } + + @Test + fun testGroupMembersAndPermissionLevel() { + val group = runBlocking { boClient.conversations.newGroup(listOf(alix.walletAddress, caro.walletAddress), GroupPermissions.ADMIN_ONLY) } + runBlocking { alixClient.conversations.syncGroups() } + val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } + + // Initial checks for group members and their permissions + var members = runBlocking { group.members() } + var admins = members.filter { it.permissionLevel == PermissionLevel.ADMIN } + var superAdmins = members.filter { it.permissionLevel == PermissionLevel.SUPER_ADMIN } + var regularMembers = members.filter { it.permissionLevel == PermissionLevel.MEMBER } + + assert(admins.size == 0) + assert(superAdmins.size == 1) + assert(regularMembers.size == 2) + + // Add alix as an admin + runBlocking { + group.addAdmin(alixClient.inboxId) + group.sync() + alixGroup.sync() + } + + members = runBlocking { group.members() } + admins = members.filter { it.permissionLevel == PermissionLevel.ADMIN } + superAdmins = members.filter { it.permissionLevel == PermissionLevel.SUPER_ADMIN } + regularMembers = members.filter { it.permissionLevel == PermissionLevel.MEMBER } + + assert(admins.size == 1) + assert(superAdmins.size == 1) + assert(regularMembers.size == 1) + + // Add caro as a super admin + runBlocking { + group.addSuperAdmin(caroClient.inboxId) + group.sync() + alixGroup.sync() + } + + members = runBlocking { group.members() } + admins = members.filter { it.permissionLevel == PermissionLevel.ADMIN } + superAdmins = members.filter { it.permissionLevel == PermissionLevel.SUPER_ADMIN } + regularMembers = members.filter { it.permissionLevel == PermissionLevel.MEMBER } + + assert(admins.size == 1) + assert(superAdmins.size == 2) + assert(regularMembers.isEmpty()) + } +} diff --git a/library/src/androidTest/java/org/xmtp/android/library/GroupTest.kt b/library/src/androidTest/java/org/xmtp/android/library/GroupTest.kt index 88d0b19e6..cbb023e14 100644 --- a/library/src/androidTest/java/org/xmtp/android/library/GroupTest.kt +++ b/library/src/androidTest/java/org/xmtp/android/library/GroupTest.kt @@ -28,6 +28,7 @@ import org.xmtp.android.library.messages.PrivateKey import org.xmtp.android.library.messages.PrivateKeyBuilder import org.xmtp.android.library.messages.walletAddress import org.xmtp.proto.mls.message.contents.TranscriptMessages +import uniffi.xmtpv3.GroupPermissions @RunWith(AndroidJUnit4::class) class GroupTest { @@ -65,93 +66,119 @@ class GroupTest { caroClient = fixtures.caroClient } -// @Test -// fun testCanCreateAGroupWithDefaultPermissions() { -// val boGroup = runBlocking { boClient.conversations.newGroup(listOf(alix.walletAddress)) } -// runBlocking { alixClient.conversations.syncGroups() } -// val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } -// assert(boGroup.id.isNotEmpty()) -// assert(alixGroup.id.isNotEmpty()) -// -// runBlocking { -// alixGroup.addMembers(listOf(caro.walletAddress)) -// boGroup.sync() -// } -// assertEquals(alixGroup.members().size, 3) -// assertEquals(boGroup.members().size, 3) -// -// runBlocking { -// alixGroup.removeMembers(listOf(caro.walletAddress)) -// boGroup.sync() -// } -// assertEquals(alixGroup.members().size, 2) -// assertEquals(boGroup.members().size, 2) -// -// runBlocking { -// boGroup.addMembers(listOf(caro.walletAddress)) -// alixGroup.sync() -// } -// assertEquals(alixGroup.members().size, 3) -// assertEquals(boGroup.members().size, 3) -// -// assertEquals(boGroup.permissionLevel(), GroupPermissions.EVERYONE_IS_ADMIN) -// assertEquals(alixGroup.permissionLevel(), GroupPermissions.EVERYONE_IS_ADMIN) -// assertEquals(boGroup.adminInboxId().lowercase(), boClient.address.lowercase()) -// assertEquals(alixGroup.adminInboxId().lowercase(), boClient.address.lowercase()) -// assert(boGroup.isAdmin()) -// assert(!alixGroup.isAdmin()) -// } + @Test + fun testCanCreateAGroupWithDefaultPermissions() { + val boGroup = runBlocking { + boClient.conversations.newGroup(listOf(alix.walletAddress)) + } + runBlocking { + alixClient.conversations.syncGroups() + boGroup.sync() + } + val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } + assert(boGroup.id.isNotEmpty()) + assert(alixGroup.id.isNotEmpty()) -// @Test -// fun testCanCreateAGroupWithAdminPermissions() { -// val boGroup = runBlocking { -// boClient.conversations.newGroup( -// listOf(alix.walletAddress), -// permissions = GroupPermissions.GROUP_CREATOR_IS_ADMIN -// ) -// } -// runBlocking { alixClient.conversations.syncGroups() } -// val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } -// assert(boGroup.id.isNotEmpty()) -// assert(alixGroup.id.isNotEmpty()) -// -// assertEquals(boClient.contacts.consentList.groupState(boGroup.id), ConsentState.ALLOWED) -// assertEquals(alixClient.contacts.consentList.groupState(alixGroup.id), ConsentState.UNKNOWN) -// -// runBlocking { -// boGroup.addMembers(listOf(caro.walletAddress)) -// alixGroup.sync() -// } + runBlocking { + alixGroup.addMembers(listOf(caro.walletAddress)) + boGroup.sync() + } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 +// assertEquals(alixGroup.members().size, 3) + assertEquals(boGroup.members().size, 3) + + runBlocking { + alixGroup.removeMembers(listOf(caro.walletAddress)) + boGroup.sync() + } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 +// assertEquals(alixGroup.members().size, 2) + assertEquals(boGroup.members().size, 2) + + runBlocking { + boGroup.addMembers(listOf(caro.walletAddress)) + boGroup.sync() + } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 +// assertEquals(alixGroup.members().size, 3) + assertEquals(boGroup.members().size, 3) + + assertEquals(boGroup.permissionLevel(), GroupPermissions.ALL_MEMBERS) + assertEquals(alixGroup.permissionLevel(), GroupPermissions.ALL_MEMBERS) + assertEquals(boGroup.isAdmin(boClient.inboxId), true) + assertEquals(boGroup.isAdmin(alixClient.inboxId), false) + assertEquals(alixGroup.isAdmin(boClient.inboxId), true) + assertEquals(alixGroup.isAdmin(alixClient.inboxId), false) + // can not fetch creator ID. See https://github.com/xmtp/libxmtp/issues/788 +// assert(boGroup.isCreator()) +// assert(!alixGroup.isCreator()) + } + + @Test + fun testCanCreateAGroupWithAdminPermissions() { + val boGroup = runBlocking { + boClient.conversations.newGroup( + listOf(alix.walletAddress), + permissions = GroupPermissions.ADMIN_ONLY + ) + } + runBlocking { alixClient.conversations.syncGroups() } + val alixGroup = runBlocking { alixClient.conversations.listGroups().first() } + assert(boGroup.id.isNotEmpty()) + assert(alixGroup.id.isNotEmpty()) + + assertEquals(boClient.contacts.consentList.groupState(boGroup.id), ConsentState.ALLOWED) + assertEquals(alixClient.contacts.consentList.groupState(alixGroup.id), ConsentState.UNKNOWN) + + runBlocking { + boGroup.addMembers(listOf(caro.walletAddress)) + alixGroup.sync() + } + + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 // assertEquals(alixGroup.members().size, 3) -// assertEquals(boGroup.members().size, 3) -// -// assertThrows(XMTPException::class.java) { -// runBlocking { alixGroup.removeMembers(listOf(caro.walletAddress)) } -// } -// runBlocking { boGroup.sync() } + assertEquals(boGroup.members().size, 3) + + assertThrows(XMTPException::class.java) { + runBlocking { alixGroup.removeMembers(listOf(caro.walletAddress)) } + } + runBlocking { boGroup.sync() } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 // assertEquals(alixGroup.members().size, 3) -// assertEquals(boGroup.members().size, 3) -// runBlocking { -// boGroup.removeMembers(listOf(caro.walletAddress)) -// alixGroup.sync() -// } + assertEquals(boGroup.members().size, 3) + runBlocking { + boGroup.removeMembers(listOf(caro.walletAddress)) + alixGroup.sync() + } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 // assertEquals(alixGroup.members().size, 2) -// assertEquals(boGroup.members().size, 2) -// -// assertThrows(XMTPException::class.java) { -// runBlocking { alixGroup.addMembers(listOf(caro.walletAddress)) } -// } -// runBlocking { boGroup.sync() } + assertEquals(boGroup.members().size, 2) + + assertThrows(XMTPException::class.java) { + runBlocking { alixGroup.addMembers(listOf(caro.walletAddress)) } + } + runBlocking { boGroup.sync() } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 // assertEquals(alixGroup.members().size, 2) -// assertEquals(boGroup.members().size, 2) -// -// assertEquals(boGroup.permissionLevel(), GroupPermissions.GROUP_CREATOR_IS_ADMIN) -// assertEquals(alixGroup.permissionLevel(), GroupPermissions.GROUP_CREATOR_IS_ADMIN) -// assertEquals(boGroup.adminInboxId().lowercase(), boClient.address.lowercase()) -// assertEquals(alixGroup.adminInboxId().lowercase(), boClient.address.lowercase()) -// assert(boGroup.isAdmin()) -// assert(!alixGroup.isAdmin()) -// } + assertEquals(boGroup.members().size, 2) + + assertEquals(boGroup.permissionLevel(), GroupPermissions.ADMIN_ONLY) + assertEquals(alixGroup.permissionLevel(), GroupPermissions.ADMIN_ONLY) + assertEquals(boGroup.isAdmin(boClient.inboxId), true) + assertEquals(boGroup.isAdmin(alixClient.inboxId), false) + assertEquals(alixGroup.isAdmin(boClient.inboxId), true) + assertEquals(alixGroup.isAdmin(alixClient.inboxId), false) + // can not fetch creator ID. See https://github.com/xmtp/libxmtp/issues/788 +// assert(boGroup.isCreator()) +// assert(!alixGroup.isCreator()) + } @Test fun testCanListGroupMembers() { @@ -239,6 +266,36 @@ class GroupTest { } @Test + fun testCanRemoveGroupMembersWhenNotCreator() { + val boGroup = runBlocking { + boClient.conversations.newGroup( + listOf( + alixClient.address, + caroClient.address + ) + ) + } + runBlocking { alixClient.conversations.syncGroups() } + val group = runBlocking { + alixClient.conversations.syncGroups() + alixClient.conversations.listGroups().first() + } + runBlocking { + group.removeMembers(listOf(caroClient.address)) + group.sync() + boGroup.sync() + } + // Issue members is not returning correctly for non group creators: + // https://github.com/xmtp/libxmtp/issues/769 + assertEquals( + boGroup.members().map { it.inboxId }.sorted(), + listOf( + alixClient.inboxId.lowercase(), + boClient.inboxId.lowercase() + ).sorted() + ) + } + fun testCanAddGroupMemberIds() { val group = runBlocking { boClient.conversations.newGroup(listOf(alix.walletAddress)) } runBlocking { group.addMembersByInboxId(listOf(caroClient.inboxId)) } diff --git a/library/src/main/java/org/xmtp/android/library/Conversations.kt b/library/src/main/java/org/xmtp/android/library/Conversations.kt index 40b652ce7..3548f6424 100644 --- a/library/src/main/java/org/xmtp/android/library/Conversations.kt +++ b/library/src/main/java/org/xmtp/android/library/Conversations.kt @@ -106,7 +106,7 @@ data class Conversations( suspend fun newGroup( accountAddresses: List, - permissions: GroupPermissions = GroupPermissions.EVERYONE_IS_ADMIN, + permissions: GroupPermissions = GroupPermissions.ALL_MEMBERS, ): Group { if (accountAddresses.size == 1 && accountAddresses.first().lowercase() == client.address.lowercase() diff --git a/library/src/main/java/org/xmtp/android/library/Group.kt b/library/src/main/java/org/xmtp/android/library/Group.kt index f112af3a3..972a28f3b 100644 --- a/library/src/main/java/org/xmtp/android/library/Group.kt +++ b/library/src/main/java/org/xmtp/android/library/Group.kt @@ -16,9 +16,11 @@ import org.xmtp.proto.message.api.v1.MessageApiOuterClass import uniffi.xmtpv3.FfiDeliveryStatus import uniffi.xmtpv3.FfiGroup import uniffi.xmtpv3.FfiGroupMetadata +import uniffi.xmtpv3.FfiGroupPermissions import uniffi.xmtpv3.FfiListMessagesOptions import uniffi.xmtpv3.FfiMessage import uniffi.xmtpv3.FfiMessageCallback +import uniffi.xmtpv3.GroupPermissions import java.util.Date import kotlin.time.Duration.Companion.nanoseconds import kotlin.time.DurationUnit @@ -36,6 +38,9 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) { private val metadata: FfiGroupMetadata get() = libXMTPGroup.groupMetadata() + private val permissions: FfiGroupPermissions + get() = libXMTPGroup.groupPermissions() + val name: String get() = libXMTPGroup.groupName() @@ -157,18 +162,18 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) { return libXMTPGroup.addedByInboxId() } -// fun permissionLevel(): GroupPermissions { -// return metadata.policyType() -// } - - fun isAdmin(): Boolean { - return metadata.creatorInboxId() == client.inboxId + fun permissionLevel(): GroupPermissions { + return permissions.policyType() } - fun adminInboxId(): String { + fun creatorInboxId(): String { return metadata.creatorInboxId() } + fun isCreator(): Boolean { + return metadata.creatorInboxId() == client.inboxId + } + suspend fun addMembers(addresses: List) { try { libXMTPGroup.addMembers(addresses) @@ -215,6 +220,54 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) { return libXMTPGroup.updateGroupName(name) } + fun isAdmin(inboxId: String): Boolean { + return libXMTPGroup.isAdmin(inboxId) + } + + fun isSuperAdmin(inboxId: String): Boolean { + return libXMTPGroup.isSuperAdmin(inboxId) + } + + suspend fun addAdmin(inboxId: String) { + try { + libXMTPGroup.addAdmin(inboxId) + } catch (e: Exception) { + throw XMTPException("Permission denied: Unable to add admin", e) + } + } + + suspend fun removeAdmin(inboxId: String) { + try { + libXMTPGroup.removeAdmin(inboxId) + } catch (e: Exception) { + throw XMTPException("Permission denied: Unable to remove admin", e) + } + } + + suspend fun addSuperAdmin(inboxId: String) { + try { + libXMTPGroup.addSuperAdmin(inboxId) + } catch (e: Exception) { + throw XMTPException("Permission denied: Unable to add super admin", e) + } + } + + suspend fun removeSuperAdmin(inboxId: String) { + try { + libXMTPGroup.removeSuperAdmin(inboxId) + } catch (e: Exception) { + throw XMTPException("Permission denied: Unable to remove super admin", e) + } + } + + suspend fun listAdmins(): List { + return libXMTPGroup.adminList() + } + + suspend fun listSuperAdmins(): List { + return libXMTPGroup.superAdminList() + } + fun streamMessages(): Flow = callbackFlow { val messageCallback = object : FfiMessageCallback { override fun onMessage(message: FfiMessage) { diff --git a/library/src/main/java/org/xmtp/android/library/libxmtp/Member.kt b/library/src/main/java/org/xmtp/android/library/libxmtp/Member.kt index 990646590..35c193fe6 100644 --- a/library/src/main/java/org/xmtp/android/library/libxmtp/Member.kt +++ b/library/src/main/java/org/xmtp/android/library/libxmtp/Member.kt @@ -1,11 +1,21 @@ package org.xmtp.android.library.libxmtp import uniffi.xmtpv3.FfiGroupMember +import uniffi.xmtpv3.FfiPermissionLevel +enum class PermissionLevel { + MEMBER, ADMIN, SUPER_ADMIN +} class Member(private val ffiMember: FfiGroupMember) { val inboxId: String get() = ffiMember.inboxId val addresses: List get() = ffiMember.accountAddresses + val permissionLevel: PermissionLevel + get() = when (ffiMember.permissionLevel) { + FfiPermissionLevel.MEMBER -> PermissionLevel.MEMBER + FfiPermissionLevel.ADMIN -> PermissionLevel.ADMIN + FfiPermissionLevel.SUPER_ADMIN -> PermissionLevel.SUPER_ADMIN + } } diff --git a/library/src/main/java/xmtpv3.kt b/library/src/main/java/xmtpv3.kt index d452c662a..8b34e5521 100644 --- a/library/src/main/java/xmtpv3.kt +++ b/library/src/main/java/xmtpv3.kt @@ -17,7 +17,6 @@ package uniffi.xmtpv3; // compile the Rust component. The easiest way to ensure this is to bundle the Kotlin // helpers directly inline like we're doing here. -import android.annotation.SuppressLint import com.sun.jna.Library import com.sun.jna.IntegerType import com.sun.jna.Native @@ -48,19 +47,14 @@ import kotlinx.coroutines.suspendCancellableCoroutine open class RustBuffer : Structure() { // Note: `capacity` and `len` are actually `ULong` values, but JVM only supports signed values. // When dealing with these fields, make sure to call `toULong()`. - @JvmField - var capacity: Long = 0 + @JvmField var capacity: Long = 0 + @JvmField var len: Long = 0 + @JvmField var data: Pointer? = null - @JvmField - var len: Long = 0 + class ByValue: RustBuffer(), Structure.ByValue + class ByReference: RustBuffer(), Structure.ByReference - @JvmField - var data: Pointer? = null - - class ByValue : RustBuffer(), Structure.ByValue - class ByReference : RustBuffer(), Structure.ByReference - - internal fun setValue(other: RustBuffer) { + internal fun setValue(other: RustBuffer) { capacity = other.capacity len = other.len data = other.data @@ -71,9 +65,9 @@ open class RustBuffer : Structure() { // Note: need to convert the size to a `Long` value to make this work with JVM. UniffiLib.INSTANCE.ffi_xmtpv3_rustbuffer_alloc(size.toLong(), status) }.also { - if (it.data == null) { - throw RuntimeException("RustBuffer.alloc() returned null data pointer (size=${size})") - } + if(it.data == null) { + throw RuntimeException("RustBuffer.alloc() returned null data pointer (size=${size})") + } } internal fun create(capacity: ULong, len: ULong, data: Pointer?): RustBuffer.ByValue { @@ -136,15 +130,11 @@ class RustBufferByReference : ByReference(16) { @Structure.FieldOrder("len", "data") open class ForeignBytes : Structure() { - @JvmField - var len: Int = 0 - - @JvmField - var data: Pointer? = null + @JvmField var len: Int = 0 + @JvmField var data: Pointer? = null class ByValue : ForeignBytes(), Structure.ByValue } - // The FfiConverter interface handles converter types to and from the FFI // // All implementing objects should be public to support external types. When a @@ -200,11 +190,11 @@ public interface FfiConverter { fun liftFromRustBuffer(rbuf: RustBuffer.ByValue): KotlinType { val byteBuf = rbuf.asByteBuffer()!! try { - val item = read(byteBuf) - if (byteBuf.hasRemaining()) { - throw RuntimeException("junk remaining in buffer after lifting, something is very wrong!!") - } - return item + val item = read(byteBuf) + if (byteBuf.hasRemaining()) { + throw RuntimeException("junk remaining in buffer after lifting, something is very wrong!!") + } + return item } finally { RustBuffer.free(rbuf) } @@ -212,7 +202,7 @@ public interface FfiConverter { } // FfiConverter that uses `RustBuffer` as the FfiType -public interface FfiConverterRustBuffer : FfiConverter { +public interface FfiConverterRustBuffer: FfiConverter { override fun lift(value: RustBuffer.ByValue) = liftFromRustBuffer(value) override fun lower(value: KotlinType) = lowerIntoRustBuffer(value) } @@ -225,13 +215,10 @@ internal const val UNIFFI_CALL_UNEXPECTED_ERROR = 2.toByte() @Structure.FieldOrder("code", "error_buf") internal open class UniffiRustCallStatus : Structure() { - @JvmField - var code: Byte = 0 + @JvmField var code: Byte = 0 + @JvmField var error_buf: RustBuffer.ByValue = RustBuffer.ByValue() - @JvmField - var error_buf: RustBuffer.ByValue = RustBuffer.ByValue() - - class ByValue : UniffiRustCallStatus(), Structure.ByValue + class ByValue: UniffiRustCallStatus(), Structure.ByValue fun isSuccess(): Boolean { return code == UNIFFI_CALL_SUCCESS @@ -267,10 +254,7 @@ interface UniffiRustCallStatusErrorHandler { // synchronize itself // Call a rust function that returns a Result<>. Pass in the Error class companion that corresponds to the Err -private inline fun uniffiRustCallWithError( - errorHandler: UniffiRustCallStatusErrorHandler, - callback: (UniffiRustCallStatus) -> U, -): U { +private inline fun uniffiRustCallWithError(errorHandler: UniffiRustCallStatusErrorHandler, callback: (UniffiRustCallStatus) -> U): U { var status = UniffiRustCallStatus(); val return_value = callback(status) uniffiCheckCallStatus(errorHandler, status) @@ -278,10 +262,7 @@ private inline fun uniffiRustCallWithError( } // Check UniffiRustCallStatus and throw an error if the call wasn't successful -private fun uniffiCheckCallStatus( - errorHandler: UniffiRustCallStatusErrorHandler, - status: UniffiRustCallStatus, -) { +private fun uniffiCheckCallStatus(errorHandler: UniffiRustCallStatusErrorHandler, status: UniffiRustCallStatus) { if (status.isSuccess()) { return } else if (status.isError()) { @@ -301,7 +282,7 @@ private fun uniffiCheckCallStatus( } // UniffiRustCallStatusErrorHandler implementation for times when we don't expect a CALL_ERROR -object UniffiNullRustCallStatusErrorHandler : UniffiRustCallStatusErrorHandler { +object UniffiNullRustCallStatusErrorHandler: UniffiRustCallStatusErrorHandler { override fun lift(error_buf: RustBuffer.ByValue): InternalException { RustBuffer.free(error_buf) return InternalException("Unexpected CALL_ERROR") @@ -313,28 +294,28 @@ private inline fun uniffiRustCall(callback: (UniffiRustCallStatus) -> U): U return uniffiRustCallWithError(UniffiNullRustCallStatusErrorHandler, callback); } -internal inline fun uniffiTraitInterfaceCall( +internal inline fun uniffiTraitInterfaceCall( callStatus: UniffiRustCallStatus, makeCall: () -> T, writeReturn: (T) -> Unit, ) { try { writeReturn(makeCall()) - } catch (e: Exception) { + } catch(e: Exception) { callStatus.code = UNIFFI_CALL_UNEXPECTED_ERROR callStatus.error_buf = FfiConverterString.lower(e.toString()) } } -internal inline fun uniffiTraitInterfaceCallWithError( +internal inline fun uniffiTraitInterfaceCallWithError( callStatus: UniffiRustCallStatus, makeCall: () -> T, writeReturn: (T) -> Unit, - lowerError: (E) -> RustBuffer.ByValue, + lowerError: (E) -> RustBuffer.ByValue ) { try { writeReturn(makeCall()) - } catch (e: Exception) { + } catch(e: Exception) { if (e is E) { callStatus.code = UNIFFI_CALL_ERROR callStatus.error_buf = lowerError(e) @@ -344,11 +325,10 @@ internal inline fun uniffiTraitInterfaceCallWithError } } } - // Map handles to objects // // This is used pass an opaque 64-bit handle representing a foreign object to the Rust code. -internal class UniffiHandleMap { +internal class UniffiHandleMap { private val map = ConcurrentHashMap() private val counter = java.util.concurrent.atomic.AtomicLong(0) @@ -385,24 +365,21 @@ private fun findLibraryName(componentName: String): String { } private inline fun loadIndirect( - componentName: String, + componentName: String ): Lib { return Native.load(findLibraryName(componentName), Lib::class.java) } // Define FFI callback types internal interface UniffiRustFutureContinuationCallback : com.sun.jna.Callback { - fun callback(`data`: Long, `pollResult`: Byte) + fun callback(`data`: Long,`pollResult`: Byte,) } - internal interface UniffiForeignFutureFree : com.sun.jna.Callback { - fun callback(`handle`: Long) + fun callback(`handle`: Long,) } - internal interface UniffiCallbackInterfaceFree : com.sun.jna.Callback { - fun callback(`handle`: Long) + fun callback(`handle`: Long,) } - @Structure.FieldOrder("handle", "free") internal open class UniffiForeignFuture( @JvmField internal var `handle`: Long = 0.toLong(), @@ -411,15 +388,14 @@ internal open class UniffiForeignFuture( class UniffiByValue( `handle`: Long = 0.toLong(), `free`: UniffiForeignFutureFree? = null, - ) : UniffiForeignFuture(`handle`, `free`), Structure.ByValue + ): UniffiForeignFuture(`handle`,`free`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFuture) { + internal fun uniffiSetValue(other: UniffiForeignFuture) { `handle` = other.`handle` `free` = other.`free` } } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructU8( @JvmField internal var `returnValue`: Byte = 0.toByte(), @@ -428,19 +404,17 @@ internal open class UniffiForeignFutureStructU8( class UniffiByValue( `returnValue`: Byte = 0.toByte(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructU8(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructU8(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructU8) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructU8) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteU8 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructU8.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructU8.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructI8( @JvmField internal var `returnValue`: Byte = 0.toByte(), @@ -449,19 +423,17 @@ internal open class UniffiForeignFutureStructI8( class UniffiByValue( `returnValue`: Byte = 0.toByte(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructI8(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructI8(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructI8) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructI8) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteI8 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructI8.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructI8.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructU16( @JvmField internal var `returnValue`: Short = 0.toShort(), @@ -470,19 +442,17 @@ internal open class UniffiForeignFutureStructU16( class UniffiByValue( `returnValue`: Short = 0.toShort(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructU16(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructU16(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructU16) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructU16) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteU16 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructU16.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructU16.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructI16( @JvmField internal var `returnValue`: Short = 0.toShort(), @@ -491,19 +461,17 @@ internal open class UniffiForeignFutureStructI16( class UniffiByValue( `returnValue`: Short = 0.toShort(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructI16(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructI16(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructI16) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructI16) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteI16 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructI16.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructI16.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructU32( @JvmField internal var `returnValue`: Int = 0, @@ -512,19 +480,17 @@ internal open class UniffiForeignFutureStructU32( class UniffiByValue( `returnValue`: Int = 0, `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructU32(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructU32(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructU32) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructU32) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteU32 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructU32.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructU32.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructI32( @JvmField internal var `returnValue`: Int = 0, @@ -533,19 +499,17 @@ internal open class UniffiForeignFutureStructI32( class UniffiByValue( `returnValue`: Int = 0, `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructI32(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructI32(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructI32) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructI32) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteI32 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructI32.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructI32.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructU64( @JvmField internal var `returnValue`: Long = 0.toLong(), @@ -554,19 +518,17 @@ internal open class UniffiForeignFutureStructU64( class UniffiByValue( `returnValue`: Long = 0.toLong(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructU64(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructU64(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructU64) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructU64) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteU64 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructU64.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructU64.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructI64( @JvmField internal var `returnValue`: Long = 0.toLong(), @@ -575,19 +537,17 @@ internal open class UniffiForeignFutureStructI64( class UniffiByValue( `returnValue`: Long = 0.toLong(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructI64(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructI64(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructI64) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructI64) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteI64 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructI64.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructI64.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructF32( @JvmField internal var `returnValue`: Float = 0.0f, @@ -596,19 +556,17 @@ internal open class UniffiForeignFutureStructF32( class UniffiByValue( `returnValue`: Float = 0.0f, `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructF32(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructF32(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructF32) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructF32) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteF32 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructF32.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructF32.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructF64( @JvmField internal var `returnValue`: Double = 0.0, @@ -617,19 +575,17 @@ internal open class UniffiForeignFutureStructF64( class UniffiByValue( `returnValue`: Double = 0.0, `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructF64(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructF64(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructF64) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructF64) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteF64 : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructF64.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructF64.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructPointer( @JvmField internal var `returnValue`: Pointer = Pointer.NULL, @@ -638,19 +594,17 @@ internal open class UniffiForeignFutureStructPointer( class UniffiByValue( `returnValue`: Pointer = Pointer.NULL, `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructPointer(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructPointer(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructPointer) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructPointer) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompletePointer : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructPointer.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructPointer.UniffiByValue,) } - @Structure.FieldOrder("returnValue", "callStatus") internal open class UniffiForeignFutureStructRustBuffer( @JvmField internal var `returnValue`: RustBuffer.ByValue = RustBuffer.ByValue(), @@ -659,86 +613,48 @@ internal open class UniffiForeignFutureStructRustBuffer( class UniffiByValue( `returnValue`: RustBuffer.ByValue = RustBuffer.ByValue(), `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructRustBuffer(`returnValue`, `callStatus`), Structure.ByValue + ): UniffiForeignFutureStructRustBuffer(`returnValue`,`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructRustBuffer) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructRustBuffer) { `returnValue` = other.`returnValue` `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteRustBuffer : com.sun.jna.Callback { - fun callback( - `callbackData`: Long, - `result`: UniffiForeignFutureStructRustBuffer.UniffiByValue, - ) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructRustBuffer.UniffiByValue,) } - @Structure.FieldOrder("callStatus") internal open class UniffiForeignFutureStructVoid( @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { class UniffiByValue( `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ) : UniffiForeignFutureStructVoid(`callStatus`), Structure.ByValue + ): UniffiForeignFutureStructVoid(`callStatus`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiForeignFutureStructVoid) { + internal fun uniffiSetValue(other: UniffiForeignFutureStructVoid) { `callStatus` = other.`callStatus` } } - internal interface UniffiForeignFutureCompleteVoid : com.sun.jna.Callback { - fun callback(`callbackData`: Long, `result`: UniffiForeignFutureStructVoid.UniffiByValue) + fun callback(`callbackData`: Long,`result`: UniffiForeignFutureStructVoid.UniffiByValue,) } - internal interface UniffiCallbackInterfaceFfiInboxOwnerMethod0 : com.sun.jna.Callback { - fun callback( - `uniffiHandle`: Long, - `uniffiOutReturn`: RustBuffer, - uniffiCallStatus: UniffiRustCallStatus, - ) + fun callback(`uniffiHandle`: Long,`uniffiOutReturn`: RustBuffer,uniffiCallStatus: UniffiRustCallStatus,) } - internal interface UniffiCallbackInterfaceFfiInboxOwnerMethod1 : com.sun.jna.Callback { - fun callback( - `uniffiHandle`: Long, - `text`: RustBuffer.ByValue, - `uniffiOutReturn`: RustBuffer, - uniffiCallStatus: UniffiRustCallStatus, - ) + fun callback(`uniffiHandle`: Long,`text`: RustBuffer.ByValue,`uniffiOutReturn`: RustBuffer,uniffiCallStatus: UniffiRustCallStatus,) } - internal interface UniffiCallbackInterfaceFfiLoggerMethod0 : com.sun.jna.Callback { - fun callback( - `uniffiHandle`: Long, - `level`: Int, - `levelLabel`: RustBuffer.ByValue, - `message`: RustBuffer.ByValue, - `uniffiOutReturn`: Pointer, - uniffiCallStatus: UniffiRustCallStatus, - ) + fun callback(`uniffiHandle`: Long,`level`: Int,`levelLabel`: RustBuffer.ByValue,`message`: RustBuffer.ByValue,`uniffiOutReturn`: Pointer,uniffiCallStatus: UniffiRustCallStatus,) } - internal interface UniffiCallbackInterfaceFfiConversationCallbackMethod0 : com.sun.jna.Callback { - fun callback( - `uniffiHandle`: Long, - `conversation`: Pointer, - `uniffiOutReturn`: Pointer, - uniffiCallStatus: UniffiRustCallStatus, - ) + fun callback(`uniffiHandle`: Long,`conversation`: Pointer,`uniffiOutReturn`: Pointer,uniffiCallStatus: UniffiRustCallStatus,) } - internal interface UniffiCallbackInterfaceFfiMessageCallbackMethod0 : com.sun.jna.Callback { - fun callback( - `uniffiHandle`: Long, - `message`: RustBuffer.ByValue, - `uniffiOutReturn`: Pointer, - uniffiCallStatus: UniffiRustCallStatus, - ) + fun callback(`uniffiHandle`: Long,`message`: RustBuffer.ByValue,`uniffiOutReturn`: Pointer,uniffiCallStatus: UniffiRustCallStatus,) } - @Structure.FieldOrder("getAddress", "sign", "uniffiFree") internal open class UniffiVTableCallbackInterfaceFfiInboxOwner( @JvmField internal var `getAddress`: UniffiCallbackInterfaceFfiInboxOwnerMethod0? = null, @@ -749,17 +665,15 @@ internal open class UniffiVTableCallbackInterfaceFfiInboxOwner( `getAddress`: UniffiCallbackInterfaceFfiInboxOwnerMethod0? = null, `sign`: UniffiCallbackInterfaceFfiInboxOwnerMethod1? = null, `uniffiFree`: UniffiCallbackInterfaceFree? = null, - ) : UniffiVTableCallbackInterfaceFfiInboxOwner(`getAddress`, `sign`, `uniffiFree`), - Structure.ByValue + ): UniffiVTableCallbackInterfaceFfiInboxOwner(`getAddress`,`sign`,`uniffiFree`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiInboxOwner) { + internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiInboxOwner) { `getAddress` = other.`getAddress` `sign` = other.`sign` `uniffiFree` = other.`uniffiFree` } } - @Structure.FieldOrder("log", "uniffiFree") internal open class UniffiVTableCallbackInterfaceFfiLogger( @JvmField internal var `log`: UniffiCallbackInterfaceFfiLoggerMethod0? = null, @@ -768,15 +682,14 @@ internal open class UniffiVTableCallbackInterfaceFfiLogger( class UniffiByValue( `log`: UniffiCallbackInterfaceFfiLoggerMethod0? = null, `uniffiFree`: UniffiCallbackInterfaceFree? = null, - ) : UniffiVTableCallbackInterfaceFfiLogger(`log`, `uniffiFree`), Structure.ByValue + ): UniffiVTableCallbackInterfaceFfiLogger(`log`,`uniffiFree`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiLogger) { + internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiLogger) { `log` = other.`log` `uniffiFree` = other.`uniffiFree` } } - @Structure.FieldOrder("onConversation", "uniffiFree") internal open class UniffiVTableCallbackInterfaceFfiConversationCallback( @JvmField internal var `onConversation`: UniffiCallbackInterfaceFfiConversationCallbackMethod0? = null, @@ -785,16 +698,14 @@ internal open class UniffiVTableCallbackInterfaceFfiConversationCallback( class UniffiByValue( `onConversation`: UniffiCallbackInterfaceFfiConversationCallbackMethod0? = null, `uniffiFree`: UniffiCallbackInterfaceFree? = null, - ) : UniffiVTableCallbackInterfaceFfiConversationCallback(`onConversation`, `uniffiFree`), - Structure.ByValue + ): UniffiVTableCallbackInterfaceFfiConversationCallback(`onConversation`,`uniffiFree`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiConversationCallback) { + internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiConversationCallback) { `onConversation` = other.`onConversation` `uniffiFree` = other.`uniffiFree` } } - @Structure.FieldOrder("onMessage", "uniffiFree") internal open class UniffiVTableCallbackInterfaceFfiMessageCallback( @JvmField internal var `onMessage`: UniffiCallbackInterfaceFfiMessageCallbackMethod0? = null, @@ -803,10 +714,9 @@ internal open class UniffiVTableCallbackInterfaceFfiMessageCallback( class UniffiByValue( `onMessage`: UniffiCallbackInterfaceFfiMessageCallbackMethod0? = null, `uniffiFree`: UniffiCallbackInterfaceFree? = null, - ) : UniffiVTableCallbackInterfaceFfiMessageCallback(`onMessage`, `uniffiFree`), - Structure.ByValue + ): UniffiVTableCallbackInterfaceFfiMessageCallback(`onMessage`,`uniffiFree`,), Structure.ByValue - internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiMessageCallback) { + internal fun uniffiSetValue(other: UniffiVTableCallbackInterfaceFfiMessageCallback) { `onMessage` = other.`onMessage` `uniffiFree` = other.`uniffiFree` } @@ -814,838 +724,719 @@ internal open class UniffiVTableCallbackInterfaceFfiMessageCallback( } -// A JNA Library to expose the extern-C FFI definitions. -// This is an implementation detail which will be called internally by the public API. -internal interface UniffiLib : Library { - companion object { - internal val INSTANCE: UniffiLib by lazy { - loadIndirect(componentName = "xmtpv3") - .also { lib: UniffiLib -> - uniffiCheckContractApiVersion(lib) - uniffiCheckApiChecksums(lib) - uniffiCallbackInterfaceFfiConversationCallback.register(lib) - uniffiCallbackInterfaceFfiInboxOwner.register(lib) - uniffiCallbackInterfaceFfiLogger.register(lib) - uniffiCallbackInterfaceFfiMessageCallback.register(lib) - } - } - // The Cleaner for the whole library - internal val CLEANER: UniffiCleaner by lazy { - UniffiCleaner.create() - } - } - fun uniffi_xmtpv3_fn_clone_fficonversations( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_fficonversations( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_fficonversations_create_group( - `ptr`: Pointer, `accountAddresses`: RustBuffer.ByValue, `permissions`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_fficonversations_list( - `ptr`: Pointer, `opts`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_fficonversations_process_streamed_welcome_message( - `ptr`: Pointer, `envelopeBytes`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_method_fficonversations_stream( - `ptr`: Pointer, `callback`: Long, - ): Long - fun uniffi_xmtpv3_fn_method_fficonversations_stream_all_messages( - `ptr`: Pointer, `messageCallback`: Long, - ): Long - fun uniffi_xmtpv3_fn_method_fficonversations_sync( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_clone_ffigroup( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffigroup( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffigroup_add_members( - `ptr`: Pointer, `accountAddresses`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_add_members_by_inbox_id( - `ptr`: Pointer, `inboxIds`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_added_by_inbox_id( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffigroup_created_at_ns( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_find_messages( - `ptr`: Pointer, `opts`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffigroup_group_metadata( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_method_ffigroup_group_name( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffigroup_id( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffigroup_is_active( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Byte - fun uniffi_xmtpv3_fn_method_ffigroup_list_members( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffigroup_process_streamed_group_message( - `ptr`: Pointer, `envelopeBytes`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_remove_members( - `ptr`: Pointer, `accountAddresses`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_remove_members_by_inbox_id( - `ptr`: Pointer, `inboxIds`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_send( - `ptr`: Pointer, `contentBytes`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_stream( - `ptr`: Pointer, `messageCallback`: Long, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_sync( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_method_ffigroup_update_group_name( - `ptr`: Pointer, `groupName`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_clone_ffigroupmetadata( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffigroupmetadata( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffigroupmetadata_conversation_type( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffigroupmetadata_creator_inbox_id( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_clone_ffigrouppermissions( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffigrouppermissions( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffigrouppermissions_policy_type( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_clone_ffisignaturerequest( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffisignaturerequest( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffisignaturerequest_add_ecdsa_signature( - `ptr`: Pointer, `signatureBytes`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffisignaturerequest_add_erc1271_signature( - `ptr`: Pointer, - `signatureBytes`: RustBuffer.ByValue, - `address`: RustBuffer.ByValue, - `chainRpcUrl`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffisignaturerequest_missing_address_signatures( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_method_ffisignaturerequest_signature_text( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_clone_ffistreamcloser( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffistreamcloser( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffistreamcloser_end( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffistreamcloser_is_closed( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Byte - fun uniffi_xmtpv3_fn_clone_ffiv2apiclient( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffiv2apiclient( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffiv2apiclient_batch_query( - `ptr`: Pointer, `req`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffiv2apiclient_publish( - `ptr`: Pointer, `request`: RustBuffer.ByValue, `authToken`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffiv2apiclient_query( - `ptr`: Pointer, `request`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffiv2apiclient_set_app_version( - `ptr`: Pointer, `version`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffiv2apiclient_subscribe( - `ptr`: Pointer, `request`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_clone_ffiv2subscription( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffiv2subscription( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffiv2subscription_end( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_method_ffiv2subscription_next( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_method_ffiv2subscription_update( - `ptr`: Pointer, `req`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_clone_ffixmtpclient( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_free_ffixmtpclient( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffixmtpclient_can_message( - `ptr`: Pointer, `accountAddresses`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_method_ffixmtpclient_conversations( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun uniffi_xmtpv3_fn_method_ffixmtpclient_db_reconnect( - `ptr`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_method_ffixmtpclient_inbox_id( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffixmtpclient_installation_id( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_method_ffixmtpclient_register_identity( - `ptr`: Pointer, `signatureRequest`: Pointer, - ): Long - fun uniffi_xmtpv3_fn_method_ffixmtpclient_release_db_connection( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_fn_method_ffixmtpclient_signature_request( - `ptr`: Pointer, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_init_callback_vtable_ffiinboxowner( - `vtable`: UniffiVTableCallbackInterfaceFfiInboxOwner, - ): Unit - fun uniffi_xmtpv3_fn_init_callback_vtable_ffilogger( - `vtable`: UniffiVTableCallbackInterfaceFfiLogger, - ): Unit - fun uniffi_xmtpv3_fn_init_callback_vtable_fficonversationcallback( - `vtable`: UniffiVTableCallbackInterfaceFfiConversationCallback, - ): Unit - fun uniffi_xmtpv3_fn_init_callback_vtable_ffimessagecallback( - `vtable`: UniffiVTableCallbackInterfaceFfiMessageCallback, - ): Unit - fun uniffi_xmtpv3_fn_func_create_client( - `logger`: Long, - `host`: RustBuffer.ByValue, - `isSecure`: Byte, - `db`: RustBuffer.ByValue, - `encryptionKey`: RustBuffer.ByValue, - `accountAddress`: RustBuffer.ByValue, - `legacyIdentitySource`: RustBuffer.ByValue, - `legacySignedPrivateKeyProto`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_func_create_v2_client( - `host`: RustBuffer.ByValue, `isSecure`: Byte, - ): Long - fun uniffi_xmtpv3_fn_func_diffie_hellman_k256( - `privateKeyBytes`: RustBuffer.ByValue, - `publicKeyBytes`: RustBuffer.ByValue, - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_generate_inbox_id( - `accountAddress`: RustBuffer.ByValue, `nonce`: Long, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_generate_private_preferences_topic_identifier( - `privateKey`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_get_inbox_id_for_address( - `logger`: Long, - `host`: RustBuffer.ByValue, - `isSecure`: Byte, - `accountAddress`: RustBuffer.ByValue, - ): Long - fun uniffi_xmtpv3_fn_func_get_version_info( - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_keccak256( - `input`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_public_key_from_private_key_k256( - `privateKeyBytes`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_recover_address( - `signatureBytes`: RustBuffer.ByValue, - `predigestMessage`: RustBuffer.ByValue, - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_recover_public_key_k256_keccak256( - `message`: RustBuffer.ByValue, - `signature`: RustBuffer.ByValue, - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_recover_public_key_k256_sha256( - `message`: RustBuffer.ByValue, - `signature`: RustBuffer.ByValue, - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_sha256( - `input`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_user_preferences_decrypt( - `publicKey`: RustBuffer.ByValue, - `privateKey`: RustBuffer.ByValue, - `message`: RustBuffer.ByValue, - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_user_preferences_encrypt( - `publicKey`: RustBuffer.ByValue, - `privateKey`: RustBuffer.ByValue, - `message`: RustBuffer.ByValue, - uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun uniffi_xmtpv3_fn_func_verify_k256_sha256( - `signedBy`: RustBuffer.ByValue, - `message`: RustBuffer.ByValue, - `signature`: RustBuffer.ByValue, - `recoveryId`: Byte, - uniffi_out_err: UniffiRustCallStatus, - ): Byte - fun ffi_xmtpv3_rustbuffer_alloc( - `size`: Long, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun ffi_xmtpv3_rustbuffer_from_bytes( - `bytes`: ForeignBytes.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun ffi_xmtpv3_rustbuffer_free( - `buf`: RustBuffer.ByValue, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun ffi_xmtpv3_rustbuffer_reserve( - `buf`: RustBuffer.ByValue, `additional`: Long, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun ffi_xmtpv3_rust_future_poll_u8( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_u8( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_u8( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_u8( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Byte - fun ffi_xmtpv3_rust_future_poll_i8( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_i8( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_i8( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_i8( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Byte - fun ffi_xmtpv3_rust_future_poll_u16( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_u16( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_u16( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_u16( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Short - fun ffi_xmtpv3_rust_future_poll_i16( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_i16( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_i16( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_i16( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Short - fun ffi_xmtpv3_rust_future_poll_u32( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_u32( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_u32( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_u32( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Int - fun ffi_xmtpv3_rust_future_poll_i32( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_i32( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_i32( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_i32( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Int - fun ffi_xmtpv3_rust_future_poll_u64( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_u64( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_u64( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_u64( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Long - fun ffi_xmtpv3_rust_future_poll_i64( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_i64( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_i64( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_i64( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Long - fun ffi_xmtpv3_rust_future_poll_f32( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_f32( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_f32( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_f32( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Float - fun ffi_xmtpv3_rust_future_poll_f64( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_f64( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_f64( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_f64( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Double - fun ffi_xmtpv3_rust_future_poll_pointer( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_pointer( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_pointer( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_pointer( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Pointer - fun ffi_xmtpv3_rust_future_poll_rust_buffer( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_rust_buffer( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_rust_buffer( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_rust_buffer( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): RustBuffer.ByValue - fun ffi_xmtpv3_rust_future_poll_void( - `handle`: Long, `callback`: UniffiRustFutureContinuationCallback, `callbackData`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_cancel_void( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_free_void( - `handle`: Long, - ): Unit - fun ffi_xmtpv3_rust_future_complete_void( - `handle`: Long, uniffi_out_err: UniffiRustCallStatus, - ): Unit - fun uniffi_xmtpv3_checksum_func_create_client( - ): Short - fun uniffi_xmtpv3_checksum_func_create_v2_client( - ): Short - fun uniffi_xmtpv3_checksum_func_diffie_hellman_k256( - ): Short - fun uniffi_xmtpv3_checksum_func_generate_inbox_id( - ): Short - fun uniffi_xmtpv3_checksum_func_generate_private_preferences_topic_identifier( - ): Short - fun uniffi_xmtpv3_checksum_func_get_inbox_id_for_address( - ): Short - fun uniffi_xmtpv3_checksum_func_get_version_info( - ): Short - fun uniffi_xmtpv3_checksum_func_keccak256( - ): Short - fun uniffi_xmtpv3_checksum_func_public_key_from_private_key_k256( - ): Short - fun uniffi_xmtpv3_checksum_func_recover_address( - ): Short - fun uniffi_xmtpv3_checksum_func_recover_public_key_k256_keccak256( - ): Short - fun uniffi_xmtpv3_checksum_func_recover_public_key_k256_sha256( - ): Short - fun uniffi_xmtpv3_checksum_func_sha256( - ): Short - fun uniffi_xmtpv3_checksum_func_user_preferences_decrypt( - ): Short - fun uniffi_xmtpv3_checksum_func_user_preferences_encrypt( - ): Short - fun uniffi_xmtpv3_checksum_func_verify_k256_sha256( - ): Short - fun uniffi_xmtpv3_checksum_method_fficonversations_create_group( - ): Short - fun uniffi_xmtpv3_checksum_method_fficonversations_list( - ): Short - fun uniffi_xmtpv3_checksum_method_fficonversations_process_streamed_welcome_message( - ): Short - fun uniffi_xmtpv3_checksum_method_fficonversations_stream( - ): Short - fun uniffi_xmtpv3_checksum_method_fficonversations_stream_all_messages( - ): Short - fun uniffi_xmtpv3_checksum_method_fficonversations_sync( - ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_add_members( - ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_add_members_by_inbox_id( - ): Short + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// A JNA Library to expose the extern-C FFI definitions. +// This is an implementation detail which will be called internally by the public API. + +internal interface UniffiLib : Library { + companion object { + internal val INSTANCE: UniffiLib by lazy { + loadIndirect(componentName = "xmtpv3") + .also { lib: UniffiLib -> + uniffiCheckContractApiVersion(lib) + uniffiCheckApiChecksums(lib) + uniffiCallbackInterfaceFfiConversationCallback.register(lib) + uniffiCallbackInterfaceFfiInboxOwner.register(lib) + uniffiCallbackInterfaceFfiLogger.register(lib) + uniffiCallbackInterfaceFfiMessageCallback.register(lib) + } + } + + // The Cleaner for the whole library + internal val CLEANER: UniffiCleaner by lazy { + UniffiCleaner.create() + } + } + + fun uniffi_xmtpv3_fn_clone_fficonversations(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_fficonversations(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_fficonversations_create_group(`ptr`: Pointer,`accountAddresses`: RustBuffer.ByValue,`permissions`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_fficonversations_list(`ptr`: Pointer,`opts`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_fficonversations_process_streamed_welcome_message(`ptr`: Pointer,`envelopeBytes`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_method_fficonversations_stream(`ptr`: Pointer,`callback`: Long, + ): Long + fun uniffi_xmtpv3_fn_method_fficonversations_stream_all_messages(`ptr`: Pointer,`messageCallback`: Long, + ): Long + fun uniffi_xmtpv3_fn_method_fficonversations_sync(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_clone_ffigroup(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffigroup(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffigroup_add_admin(`ptr`: Pointer,`inboxId`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_add_members(`ptr`: Pointer,`accountAddresses`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_add_members_by_inbox_id(`ptr`: Pointer,`inboxIds`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_add_super_admin(`ptr`: Pointer,`inboxId`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_added_by_inbox_id(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_admin_list(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_created_at_ns(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_find_messages(`ptr`: Pointer,`opts`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_group_metadata(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_method_ffigroup_group_name(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_group_permissions(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_method_ffigroup_id(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_is_active(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun uniffi_xmtpv3_fn_method_ffigroup_is_admin(`ptr`: Pointer,`inboxId`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun uniffi_xmtpv3_fn_method_ffigroup_is_super_admin(`ptr`: Pointer,`inboxId`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun uniffi_xmtpv3_fn_method_ffigroup_list_members(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_process_streamed_group_message(`ptr`: Pointer,`envelopeBytes`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_remove_admin(`ptr`: Pointer,`inboxId`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_remove_members(`ptr`: Pointer,`accountAddresses`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_remove_members_by_inbox_id(`ptr`: Pointer,`inboxIds`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_remove_super_admin(`ptr`: Pointer,`inboxId`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_send(`ptr`: Pointer,`contentBytes`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_stream(`ptr`: Pointer,`messageCallback`: Long, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_super_admin_list(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroup_sync(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_method_ffigroup_update_group_name(`ptr`: Pointer,`groupName`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_clone_ffigroupmetadata(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffigroupmetadata(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffigroupmetadata_conversation_type(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffigroupmetadata_creator_inbox_id(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_clone_ffigrouppermissions(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffigrouppermissions(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffigrouppermissions_policy_type(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_clone_ffisignaturerequest(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffisignaturerequest(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffisignaturerequest_add_ecdsa_signature(`ptr`: Pointer,`signatureBytes`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffisignaturerequest_add_erc1271_signature(`ptr`: Pointer,`signatureBytes`: RustBuffer.ByValue,`address`: RustBuffer.ByValue,`chainRpcUrl`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffisignaturerequest_missing_address_signatures(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_method_ffisignaturerequest_signature_text(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_clone_ffistreamcloser(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffistreamcloser(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffistreamcloser_end(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffistreamcloser_is_closed(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun uniffi_xmtpv3_fn_clone_ffiv2apiclient(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffiv2apiclient(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffiv2apiclient_batch_query(`ptr`: Pointer,`req`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffiv2apiclient_publish(`ptr`: Pointer,`request`: RustBuffer.ByValue,`authToken`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffiv2apiclient_query(`ptr`: Pointer,`request`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffiv2apiclient_set_app_version(`ptr`: Pointer,`version`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffiv2apiclient_subscribe(`ptr`: Pointer,`request`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_clone_ffiv2subscription(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffiv2subscription(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffiv2subscription_end(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_method_ffiv2subscription_next(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_method_ffiv2subscription_update(`ptr`: Pointer,`req`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_clone_ffixmtpclient(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_free_ffixmtpclient(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffixmtpclient_can_message(`ptr`: Pointer,`accountAddresses`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_method_ffixmtpclient_conversations(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun uniffi_xmtpv3_fn_method_ffixmtpclient_db_reconnect(`ptr`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_method_ffixmtpclient_inbox_id(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffixmtpclient_installation_id(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_method_ffixmtpclient_register_identity(`ptr`: Pointer,`signatureRequest`: Pointer, + ): Long + fun uniffi_xmtpv3_fn_method_ffixmtpclient_release_db_connection(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_fn_method_ffixmtpclient_signature_request(`ptr`: Pointer,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_init_callback_vtable_ffiinboxowner(`vtable`: UniffiVTableCallbackInterfaceFfiInboxOwner, + ): Unit + fun uniffi_xmtpv3_fn_init_callback_vtable_ffilogger(`vtable`: UniffiVTableCallbackInterfaceFfiLogger, + ): Unit + fun uniffi_xmtpv3_fn_init_callback_vtable_fficonversationcallback(`vtable`: UniffiVTableCallbackInterfaceFfiConversationCallback, + ): Unit + fun uniffi_xmtpv3_fn_init_callback_vtable_ffimessagecallback(`vtable`: UniffiVTableCallbackInterfaceFfiMessageCallback, + ): Unit + fun uniffi_xmtpv3_fn_func_create_client(`logger`: Long,`host`: RustBuffer.ByValue,`isSecure`: Byte,`db`: RustBuffer.ByValue,`encryptionKey`: RustBuffer.ByValue,`accountAddress`: RustBuffer.ByValue,`legacyIdentitySource`: RustBuffer.ByValue,`legacySignedPrivateKeyProto`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_func_create_v2_client(`host`: RustBuffer.ByValue,`isSecure`: Byte, + ): Long + fun uniffi_xmtpv3_fn_func_diffie_hellman_k256(`privateKeyBytes`: RustBuffer.ByValue,`publicKeyBytes`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_generate_inbox_id(`accountAddress`: RustBuffer.ByValue,`nonce`: Long,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_generate_private_preferences_topic_identifier(`privateKey`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_get_inbox_id_for_address(`logger`: Long,`host`: RustBuffer.ByValue,`isSecure`: Byte,`accountAddress`: RustBuffer.ByValue, + ): Long + fun uniffi_xmtpv3_fn_func_get_version_info(uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_keccak256(`input`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_public_key_from_private_key_k256(`privateKeyBytes`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_recover_address(`signatureBytes`: RustBuffer.ByValue,`predigestMessage`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_recover_public_key_k256_keccak256(`message`: RustBuffer.ByValue,`signature`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_recover_public_key_k256_sha256(`message`: RustBuffer.ByValue,`signature`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_sha256(`input`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_user_preferences_decrypt(`publicKey`: RustBuffer.ByValue,`privateKey`: RustBuffer.ByValue,`message`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_user_preferences_encrypt(`publicKey`: RustBuffer.ByValue,`privateKey`: RustBuffer.ByValue,`message`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun uniffi_xmtpv3_fn_func_verify_k256_sha256(`signedBy`: RustBuffer.ByValue,`message`: RustBuffer.ByValue,`signature`: RustBuffer.ByValue,`recoveryId`: Byte,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun ffi_xmtpv3_rustbuffer_alloc(`size`: Long,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun ffi_xmtpv3_rustbuffer_from_bytes(`bytes`: ForeignBytes.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun ffi_xmtpv3_rustbuffer_free(`buf`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun ffi_xmtpv3_rustbuffer_reserve(`buf`: RustBuffer.ByValue,`additional`: Long,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun ffi_xmtpv3_rust_future_poll_u8(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_u8(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_u8(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_u8(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun ffi_xmtpv3_rust_future_poll_i8(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_i8(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_i8(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_i8(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Byte + fun ffi_xmtpv3_rust_future_poll_u16(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_u16(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_u16(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_u16(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Short + fun ffi_xmtpv3_rust_future_poll_i16(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_i16(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_i16(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_i16(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Short + fun ffi_xmtpv3_rust_future_poll_u32(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_u32(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_u32(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_u32(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Int + fun ffi_xmtpv3_rust_future_poll_i32(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_i32(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_i32(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_i32(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Int + fun ffi_xmtpv3_rust_future_poll_u64(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_u64(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_u64(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_u64(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Long + fun ffi_xmtpv3_rust_future_poll_i64(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_i64(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_i64(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_i64(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Long + fun ffi_xmtpv3_rust_future_poll_f32(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_f32(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_f32(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_f32(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Float + fun ffi_xmtpv3_rust_future_poll_f64(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_f64(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_f64(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_f64(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Double + fun ffi_xmtpv3_rust_future_poll_pointer(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_pointer(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_pointer(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_pointer(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun ffi_xmtpv3_rust_future_poll_rust_buffer(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_rust_buffer(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_rust_buffer(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_rust_buffer(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun ffi_xmtpv3_rust_future_poll_void(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_cancel_void(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_free_void(`handle`: Long, + ): Unit + fun ffi_xmtpv3_rust_future_complete_void(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, + ): Unit + fun uniffi_xmtpv3_checksum_func_create_client( + ): Short + fun uniffi_xmtpv3_checksum_func_create_v2_client( + ): Short + fun uniffi_xmtpv3_checksum_func_diffie_hellman_k256( + ): Short + fun uniffi_xmtpv3_checksum_func_generate_inbox_id( + ): Short + fun uniffi_xmtpv3_checksum_func_generate_private_preferences_topic_identifier( + ): Short + fun uniffi_xmtpv3_checksum_func_get_inbox_id_for_address( + ): Short + fun uniffi_xmtpv3_checksum_func_get_version_info( + ): Short + fun uniffi_xmtpv3_checksum_func_keccak256( + ): Short + fun uniffi_xmtpv3_checksum_func_public_key_from_private_key_k256( + ): Short + fun uniffi_xmtpv3_checksum_func_recover_address( + ): Short + fun uniffi_xmtpv3_checksum_func_recover_public_key_k256_keccak256( + ): Short + fun uniffi_xmtpv3_checksum_func_recover_public_key_k256_sha256( + ): Short + fun uniffi_xmtpv3_checksum_func_sha256( + ): Short + fun uniffi_xmtpv3_checksum_func_user_preferences_decrypt( + ): Short + fun uniffi_xmtpv3_checksum_func_user_preferences_encrypt( + ): Short + fun uniffi_xmtpv3_checksum_func_verify_k256_sha256( + ): Short + fun uniffi_xmtpv3_checksum_method_fficonversations_create_group( + ): Short + fun uniffi_xmtpv3_checksum_method_fficonversations_list( + ): Short + fun uniffi_xmtpv3_checksum_method_fficonversations_process_streamed_welcome_message( + ): Short + fun uniffi_xmtpv3_checksum_method_fficonversations_stream( + ): Short + fun uniffi_xmtpv3_checksum_method_fficonversations_stream_all_messages( + ): Short + fun uniffi_xmtpv3_checksum_method_fficonversations_sync( + ): Short + fun uniffi_xmtpv3_checksum_method_ffigroup_add_admin( + ): Short + fun uniffi_xmtpv3_checksum_method_ffigroup_add_members( + ): Short + fun uniffi_xmtpv3_checksum_method_ffigroup_add_members_by_inbox_id( + ): Short + fun uniffi_xmtpv3_checksum_method_ffigroup_add_super_admin( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_added_by_inbox_id( ): Short - + fun uniffi_xmtpv3_checksum_method_ffigroup_admin_list( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_created_at_ns( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_find_messages( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_group_metadata( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_group_name( ): Short - + fun uniffi_xmtpv3_checksum_method_ffigroup_group_permissions( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_id( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_is_active( ): Short - + fun uniffi_xmtpv3_checksum_method_ffigroup_is_admin( + ): Short + fun uniffi_xmtpv3_checksum_method_ffigroup_is_super_admin( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_list_members( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_process_streamed_group_message( ): Short - + fun uniffi_xmtpv3_checksum_method_ffigroup_remove_admin( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_remove_members( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_remove_members_by_inbox_id( ): Short - + fun uniffi_xmtpv3_checksum_method_ffigroup_remove_super_admin( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_send( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_stream( ): Short - + fun uniffi_xmtpv3_checksum_method_ffigroup_super_admin_list( + ): Short fun uniffi_xmtpv3_checksum_method_ffigroup_sync( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroup_update_group_name( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroupmetadata_conversation_type( ): Short - fun uniffi_xmtpv3_checksum_method_ffigroupmetadata_creator_inbox_id( ): Short - fun uniffi_xmtpv3_checksum_method_ffigrouppermissions_policy_type( ): Short - fun uniffi_xmtpv3_checksum_method_ffisignaturerequest_add_ecdsa_signature( ): Short - fun uniffi_xmtpv3_checksum_method_ffisignaturerequest_add_erc1271_signature( ): Short - fun uniffi_xmtpv3_checksum_method_ffisignaturerequest_missing_address_signatures( ): Short - fun uniffi_xmtpv3_checksum_method_ffisignaturerequest_signature_text( ): Short - fun uniffi_xmtpv3_checksum_method_ffistreamcloser_end( ): Short - fun uniffi_xmtpv3_checksum_method_ffistreamcloser_is_closed( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2apiclient_batch_query( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2apiclient_publish( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2apiclient_query( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2apiclient_set_app_version( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2apiclient_subscribe( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2subscription_end( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2subscription_next( ): Short - fun uniffi_xmtpv3_checksum_method_ffiv2subscription_update( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_can_message( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_conversations( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_db_reconnect( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_inbox_id( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_installation_id( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_register_identity( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_release_db_connection( ): Short - fun uniffi_xmtpv3_checksum_method_ffixmtpclient_signature_request( ): Short - fun uniffi_xmtpv3_checksum_method_ffiinboxowner_get_address( ): Short - fun uniffi_xmtpv3_checksum_method_ffiinboxowner_sign( ): Short - fun uniffi_xmtpv3_checksum_method_ffilogger_log( ): Short - fun uniffi_xmtpv3_checksum_method_fficonversationcallback_on_conversation( ): Short - fun uniffi_xmtpv3_checksum_method_ffimessagecallback_on_message( ): Short - fun ffi_xmtpv3_uniffi_contract_version( ): Int - + } private fun uniffiCheckContractApiVersion(lib: UniffiLib) { @@ -1726,15 +1517,24 @@ private fun uniffiCheckApiChecksums(lib: UniffiLib) { if (lib.uniffi_xmtpv3_checksum_method_fficonversations_sync() != 9054.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_add_admin() != 4600.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_add_members() != 27666.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_add_members_by_inbox_id() != 23290.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_add_super_admin() != 40681.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_added_by_inbox_id() != 37220.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_admin_list() != 51010.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_created_at_ns() != 4894.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } @@ -1747,30 +1547,48 @@ private fun uniffiCheckApiChecksums(lib: UniffiLib) { if (lib.uniffi_xmtpv3_checksum_method_ffigroup_group_name() != 61525.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_group_permissions() != 15980.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_id() != 36764.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_is_active() != 33848.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_is_admin() != 26672.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_is_super_admin() != 61614.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_list_members() != 61034.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_process_streamed_group_message() != 19069.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_remove_admin() != 57094.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_remove_members() != 24336.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_remove_members_by_inbox_id() != 45424.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_remove_super_admin() != 35336.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_send() != 37701.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_stream() != 45558.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } + if (lib.uniffi_xmtpv3_checksum_method_ffigroup_super_admin_list() != 5323.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } if (lib.uniffi_xmtpv3_checksum_method_ffigroup_sync() != 24219.toShort()) { throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") } @@ -1878,19 +1696,19 @@ internal const val UNIFFI_RUST_FUTURE_POLL_MAYBE_READY = 1.toByte() internal val uniffiContinuationHandleMap = UniffiHandleMap>() // FFI type for Rust future continuations -internal object uniffiRustFutureContinuationCallbackImpl : UniffiRustFutureContinuationCallback { +internal object uniffiRustFutureContinuationCallbackImpl: UniffiRustFutureContinuationCallback { override fun callback(data: Long, pollResult: Byte) { uniffiContinuationHandleMap.remove(data).resume(pollResult) } } -internal suspend fun uniffiRustCallAsync( +internal suspend fun uniffiRustCallAsync( rustFuture: Long, pollFunc: (Long, UniffiRustFutureContinuationCallback, Long) -> Unit, completeFunc: (Long, UniffiRustCallStatus) -> F, freeFunc: (Long) -> Unit, liftFunc: (F) -> T, - errorHandler: UniffiRustCallStatusErrorHandler, + errorHandler: UniffiRustCallStatusErrorHandler ): T { try { do { @@ -1924,7 +1742,6 @@ internal suspend fun uniffiRustCallAsync( // helper method to execute a block and destroy the object at the end. interface Disposable { fun destroy() - companion object { fun destroy(vararg args: Any?) { args.filterIsInstance() @@ -1948,7 +1765,7 @@ inline fun T.use(block: (T) -> R) = /** Used to instantiate an interface without an actual pointer, for fakes in tests, mostly. */ object NoPointer -public object FfiConverterUByte : FfiConverter { +public object FfiConverterUByte: FfiConverter { override fun lift(value: Byte): UByte { return value.toUByte() } @@ -1968,7 +1785,7 @@ public object FfiConverterUByte : FfiConverter { } } -public object FfiConverterUInt : FfiConverter { +public object FfiConverterUInt: FfiConverter { override fun lift(value: Int): UInt { return value.toUInt() } @@ -1988,7 +1805,7 @@ public object FfiConverterUInt : FfiConverter { } } -public object FfiConverterULong : FfiConverter { +public object FfiConverterULong: FfiConverter { override fun lift(value: Long): ULong { return value.toULong() } @@ -2008,7 +1825,7 @@ public object FfiConverterULong : FfiConverter { } } -public object FfiConverterLong : FfiConverter { +public object FfiConverterLong: FfiConverter { override fun lift(value: Long): Long { return value } @@ -2028,7 +1845,7 @@ public object FfiConverterLong : FfiConverter { } } -public object FfiConverterBoolean : FfiConverter { +public object FfiConverterBoolean: FfiConverter { override fun lift(value: Byte): Boolean { return value.toInt() != 0 } @@ -2048,7 +1865,7 @@ public object FfiConverterBoolean : FfiConverter { } } -public object FfiConverterString : FfiConverter { +public object FfiConverterString: FfiConverter { // Note: we don't inherit from FfiConverterRustBuffer, because we use a // special encoding when lowering/lifting. We can use `RustBuffer.len` to // store our length and avoid writing it out to the buffer. @@ -2102,18 +1919,16 @@ public object FfiConverterString : FfiConverter { } } -public object FfiConverterByteArray : FfiConverterRustBuffer { +public object FfiConverterByteArray: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): ByteArray { val len = buf.getInt() val byteArr = ByteArray(len) buf.get(byteArr) return byteArr } - override fun allocationSize(value: ByteArray): ULong { return 4UL + value.size.toULong() } - override fun write(value: ByteArray, buf: ByteBuffer) { buf.putInt(value.size) buf.put(value) @@ -2274,32 +2089,28 @@ private class JavaLangRefCleaner : UniffiCleaner { } private class JavaLangRefCleanable( - val cleanable: java.lang.ref.Cleaner.Cleanable, + val cleanable: java.lang.ref.Cleaner.Cleanable ) : UniffiCleaner.Cleanable { override fun clean() = cleanable.clean() } - public interface FfiConversationsInterface { - - suspend fun `createGroup`( - `accountAddresses`: List, - `permissions`: GroupPermissions?, - ): FfiGroup - + + suspend fun `createGroup`(`accountAddresses`: List, `permissions`: GroupPermissions?): FfiGroup + suspend fun `list`(`opts`: FfiListConversationsOptions): List - + fun `processStreamedWelcomeMessage`(`envelopeBytes`: kotlin.ByteArray): FfiGroup - + suspend fun `stream`(`callback`: FfiConversationCallback): FfiStreamCloser - + suspend fun `streamAllMessages`(`messageCallback`: FfiMessageCallback): FfiStreamCloser - + suspend fun `sync`() - + companion object } -open class FfiConversations : Disposable, AutoCloseable, FfiConversationsInterface { +open class FfiConversations: Disposable, AutoCloseable, FfiConversationsInterface { constructor(pointer: Pointer) { this.pointer = pointer @@ -2350,7 +2161,7 @@ open class FfiConversations : Disposable, AutoCloseable, FfiConversationsInterfa if (c == Long.MAX_VALUE) { throw IllegalStateException("${this.javaClass.simpleName} call counter would overflow") } - } while (!this.callCounter.compareAndSet(c, c + 1L)) + } while (! this.callCounter.compareAndSet(c, c + 1L)) // Now we can safely do the method call without the pointer being freed concurrently. try { return block(this.uniffiClonePointer()) @@ -2380,191 +2191,134 @@ open class FfiConversations : Disposable, AutoCloseable, FfiConversationsInterfa } } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `createGroup`( - `accountAddresses`: List, - `permissions`: GroupPermissions?, - ): FfiGroup { + override suspend fun `createGroup`(`accountAddresses`: List, `permissions`: GroupPermissions?) : FfiGroup { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_create_group( - thisPtr, - FfiConverterSequenceString.lower(`accountAddresses`), - FfiConverterOptionalTypeGroupPermissions.lower(`permissions`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, - // lift function - { FfiConverterTypeFfiGroup.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_create_group( + thisPtr, + FfiConverterSequenceString.lower(`accountAddresses`),FfiConverterOptionalTypeGroupPermissions.lower(`permissions`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, + // lift function + { FfiConverterTypeFfiGroup.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `list`(`opts`: FfiListConversationsOptions): List { + override suspend fun `list`(`opts`: FfiListConversationsOptions) : List { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_list( - thisPtr, - FfiConverterTypeFfiListConversationsOptions.lower(`opts`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterSequenceTypeFfiGroup.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_list( + thisPtr, + FfiConverterTypeFfiListConversationsOptions.lower(`opts`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterSequenceTypeFfiGroup.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - - @Throws(GenericException::class) - override fun `processStreamedWelcomeMessage`(`envelopeBytes`: kotlin.ByteArray): FfiGroup { - return FfiConverterTypeFfiGroup.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_process_streamed_welcome_message( - it, FfiConverterByteArray.lower(`envelopeBytes`), _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `processStreamedWelcomeMessage`(`envelopeBytes`: kotlin.ByteArray): FfiGroup { + return FfiConverterTypeFfiGroup.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_process_streamed_welcome_message( + it, FfiConverterByteArray.lower(`envelopeBytes`),_status) +} } + ) + } + - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `stream`(`callback`: FfiConversationCallback): FfiStreamCloser { + override suspend fun `stream`(`callback`: FfiConversationCallback) : FfiStreamCloser { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_stream( - thisPtr, - FfiConverterTypeFfiConversationCallback.lower(`callback`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, - // lift function - { FfiConverterTypeFfiStreamCloser.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_stream( + thisPtr, + FfiConverterTypeFfiConversationCallback.lower(`callback`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, + // lift function + { FfiConverterTypeFfiStreamCloser.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `streamAllMessages`(`messageCallback`: FfiMessageCallback): FfiStreamCloser { + override suspend fun `streamAllMessages`(`messageCallback`: FfiMessageCallback) : FfiStreamCloser { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_stream_all_messages( - thisPtr, - FfiConverterTypeFfiMessageCallback.lower(`messageCallback`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, - // lift function - { FfiConverterTypeFfiStreamCloser.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_stream_all_messages( + thisPtr, + FfiConverterTypeFfiMessageCallback.lower(`messageCallback`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, + // lift function + { FfiConverterTypeFfiStreamCloser.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `sync`() { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_sync( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_fficonversations_sync( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } + + + companion object - + } -public object FfiConverterTypeFfiConversations : FfiConverter { +public object FfiConverterTypeFfiConversations: FfiConverter { override fun lower(value: FfiConversations): Pointer { return value.uniffiClonePointer() @@ -2689,45 +2443,63 @@ public object FfiConverterTypeFfiConversations : FfiConverter) - + suspend fun `addMembersByInboxId`(`inboxIds`: List) - + + suspend fun `addSuperAdmin`(`inboxId`: kotlin.String) + fun `addedByInboxId`(): kotlin.String - + + fun `adminList`(): List + fun `createdAtNs`(): kotlin.Long - + fun `findMessages`(`opts`: FfiListMessagesOptions): List - + fun `groupMetadata`(): FfiGroupMetadata - + fun `groupName`(): kotlin.String - + + fun `groupPermissions`(): FfiGroupPermissions + fun `id`(): kotlin.ByteArray - + fun `isActive`(): kotlin.Boolean - + + fun `isAdmin`(`inboxId`: kotlin.String): kotlin.Boolean + + fun `isSuperAdmin`(`inboxId`: kotlin.String): kotlin.Boolean + fun `listMembers`(): List - + suspend fun `processStreamedGroupMessage`(`envelopeBytes`: kotlin.ByteArray): FfiMessage - + + suspend fun `removeAdmin`(`inboxId`: kotlin.String) + suspend fun `removeMembers`(`accountAddresses`: List) - + suspend fun `removeMembersByInboxId`(`inboxIds`: List) - + + suspend fun `removeSuperAdmin`(`inboxId`: kotlin.String) + suspend fun `send`(`contentBytes`: kotlin.ByteArray): kotlin.ByteArray - + suspend fun `stream`(`messageCallback`: FfiMessageCallback): FfiStreamCloser - + + fun `superAdminList`(): List + suspend fun `sync`() - + suspend fun `updateGroupName`(`groupName`: kotlin.String) - + companion object } -open class FfiGroup : Disposable, AutoCloseable, FfiGroupInterface { +open class FfiGroup: Disposable, AutoCloseable, FfiGroupInterface { constructor(pointer: Pointer) { this.pointer = pointer @@ -2778,7 +2550,7 @@ open class FfiGroup : Disposable, AutoCloseable, FfiGroupInterface { if (c == Long.MAX_VALUE) { throw IllegalStateException("${this.javaClass.simpleName} call counter would overflow") } - } while (!this.callCounter.compareAndSet(c, c + 1L)) + } while (! this.callCounter.compareAndSet(c, c + 1L)) // Now we can safely do the method call without the pointer being freed concurrently. try { return block(this.uniffiClonePointer()) @@ -2808,416 +2580,465 @@ open class FfiGroup : Disposable, AutoCloseable, FfiGroupInterface { } } - + + @Throws(GenericException::class) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + override suspend fun `addAdmin`(`inboxId`: kotlin.String) { + return uniffiRustCallAsync( + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_add_admin( + thisPtr, + FfiConverterString.lower(`inboxId`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) + } + + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `addMembers`(`accountAddresses`: List) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_add_members( - thisPtr, - FfiConverterSequenceString.lower(`accountAddresses`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_add_members( + thisPtr, + FfiConverterSequenceString.lower(`accountAddresses`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `addMembersByInboxId`(`inboxIds`: List) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_add_members_by_inbox_id( - thisPtr, - FfiConverterSequenceString.lower(`inboxIds`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_add_members_by_inbox_id( + thisPtr, + FfiConverterSequenceString.lower(`inboxIds`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) - override fun `addedByInboxId`(): kotlin.String { - return FfiConverterString.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_added_by_inbox_id( - it, _status - ) - } - } - ) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + override suspend fun `addSuperAdmin`(`inboxId`: kotlin.String) { + return uniffiRustCallAsync( + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_add_super_admin( + thisPtr, + FfiConverterString.lower(`inboxId`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - - override fun `createdAtNs`(): kotlin.Long { - return FfiConverterLong.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_created_at_ns( - it, _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `addedByInboxId`(): kotlin.String { + return FfiConverterString.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_added_by_inbox_id( + it, _status) +} } + ) + } + - - @Throws(GenericException::class) - override fun `findMessages`(`opts`: FfiListMessagesOptions): List { - return FfiConverterSequenceTypeFfiMessage.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_find_messages( - it, FfiConverterTypeFfiListMessagesOptions.lower(`opts`), _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `adminList`(): List { + return FfiConverterSequenceString.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_admin_list( + it, _status) +} } + ) + } + + override fun `createdAtNs`(): kotlin.Long { + return FfiConverterLong.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_created_at_ns( + it, _status) +} + } + ) + } + - @Throws(GenericException::class) - override fun `groupMetadata`(): FfiGroupMetadata { - return FfiConverterTypeFfiGroupMetadata.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_group_metadata( - it, _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `findMessages`(`opts`: FfiListMessagesOptions): List { + return FfiConverterSequenceTypeFfiMessage.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_find_messages( + it, FfiConverterTypeFfiListMessagesOptions.lower(`opts`),_status) +} } + ) + } + + + @Throws(GenericException::class)override fun `groupMetadata`(): FfiGroupMetadata { + return FfiConverterTypeFfiGroupMetadata.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_group_metadata( + it, _status) +} + } + ) + } + - @Throws(GenericException::class) - override fun `groupName`(): kotlin.String { - return FfiConverterString.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_group_name( - it, _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `groupName`(): kotlin.String { + return FfiConverterString.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_group_name( + it, _status) +} + } + ) } + + + @Throws(GenericException::class)override fun `groupPermissions`(): FfiGroupPermissions { + return FfiConverterTypeFfiGroupPermissions.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_group_permissions( + it, _status) +} + } + ) + } + override fun `id`(): kotlin.ByteArray { - return FfiConverterByteArray.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_id( - it, _status - ) - } - } - ) + return FfiConverterByteArray.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_id( + it, _status) +} } + ) + } + - - @Throws(GenericException::class) - override fun `isActive`(): kotlin.Boolean { - return FfiConverterBoolean.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_is_active( - it, _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `isActive`(): kotlin.Boolean { + return FfiConverterBoolean.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_is_active( + it, _status) +} + } + ) } + + + @Throws(GenericException::class)override fun `isAdmin`(`inboxId`: kotlin.String): kotlin.Boolean { + return FfiConverterBoolean.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_is_admin( + it, FfiConverterString.lower(`inboxId`),_status) +} + } + ) + } + - @Throws(GenericException::class) - override fun `listMembers`(): List { - return FfiConverterSequenceTypeFfiGroupMember.lift( - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_list_members( - it, _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `isSuperAdmin`(`inboxId`: kotlin.String): kotlin.Boolean { + return FfiConverterBoolean.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_is_super_admin( + it, FfiConverterString.lower(`inboxId`),_status) +} } + ) + } + + + @Throws(GenericException::class)override fun `listMembers`(): List { + return FfiConverterSequenceTypeFfiGroupMember.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_list_members( + it, _status) +} + } + ) + } + + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `processStreamedGroupMessage`(`envelopeBytes`: kotlin.ByteArray): FfiMessage { + override suspend fun `processStreamedGroupMessage`(`envelopeBytes`: kotlin.ByteArray) : FfiMessage { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_process_streamed_group_message( - thisPtr, - FfiConverterByteArray.lower(`envelopeBytes`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterTypeFfiMessage.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_process_streamed_group_message( + thisPtr, + FfiConverterByteArray.lower(`envelopeBytes`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterTypeFfiMessage.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } + + @Throws(GenericException::class) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + override suspend fun `removeAdmin`(`inboxId`: kotlin.String) { + return uniffiRustCallAsync( + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_remove_admin( + thisPtr, + FfiConverterString.lower(`inboxId`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) + } + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `removeMembers`(`accountAddresses`: List) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_remove_members( - thisPtr, - FfiConverterSequenceString.lower(`accountAddresses`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_remove_members( + thisPtr, + FfiConverterSequenceString.lower(`accountAddresses`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `removeMembersByInboxId`(`inboxIds`: List) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_remove_members_by_inbox_id( - thisPtr, - FfiConverterSequenceString.lower(`inboxIds`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_remove_members_by_inbox_id( + thisPtr, + FfiConverterSequenceString.lower(`inboxIds`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `send`(`contentBytes`: kotlin.ByteArray): kotlin.ByteArray { + override suspend fun `removeSuperAdmin`(`inboxId`: kotlin.String) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_send( - thisPtr, - FfiConverterByteArray.lower(`contentBytes`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterByteArray.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_remove_super_admin( + thisPtr, + FfiConverterString.lower(`inboxId`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } + + @Throws(GenericException::class) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + override suspend fun `send`(`contentBytes`: kotlin.ByteArray) : kotlin.ByteArray { + return uniffiRustCallAsync( + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_send( + thisPtr, + FfiConverterByteArray.lower(`contentBytes`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterByteArray.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) + } + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `stream`(`messageCallback`: FfiMessageCallback): FfiStreamCloser { + override suspend fun `stream`(`messageCallback`: FfiMessageCallback) : FfiStreamCloser { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_stream( - thisPtr, - FfiConverterTypeFfiMessageCallback.lower(`messageCallback`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, - // lift function - { FfiConverterTypeFfiStreamCloser.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_stream( + thisPtr, + FfiConverterTypeFfiMessageCallback.lower(`messageCallback`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, + // lift function + { FfiConverterTypeFfiStreamCloser.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } + + @Throws(GenericException::class)override fun `superAdminList`(): List { + return FfiConverterSequenceString.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_super_admin_list( + it, _status) +} + } + ) + } + + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `sync`() { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_sync( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_sync( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `updateGroupName`(`groupName`: kotlin.String) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_update_group_name( - thisPtr, - FfiConverterString.lower(`groupName`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroup_update_group_name( + thisPtr, + FfiConverterString.lower(`groupName`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } + + + companion object - + } -public object FfiConverterTypeFfiGroup : FfiConverter { +public object FfiConverterTypeFfiGroup: FfiConverter { override fun lower(value: FfiGroup): Pointer { return value.uniffiClonePointer() @@ -3342,15 +3163,15 @@ public object FfiConverterTypeFfiGroup : FfiConverter { public interface FfiGroupMetadataInterface { - + fun `conversationType`(): kotlin.String - + fun `creatorInboxId`(): kotlin.String - + companion object } -open class FfiGroupMetadata : Disposable, AutoCloseable, FfiGroupMetadataInterface { +open class FfiGroupMetadata: Disposable, AutoCloseable, FfiGroupMetadataInterface { constructor(pointer: Pointer) { this.pointer = pointer @@ -3401,7 +3222,7 @@ open class FfiGroupMetadata : Disposable, AutoCloseable, FfiGroupMetadataInterfa if (c == Long.MAX_VALUE) { throw IllegalStateException("${this.javaClass.simpleName} call counter would overflow") } - } while (!this.callCounter.compareAndSet(c, c + 1L)) + } while (! this.callCounter.compareAndSet(c, c + 1L)) // Now we can safely do the method call without the pointer being freed concurrently. try { return block(this.uniffiClonePointer()) @@ -3432,36 +3253,38 @@ open class FfiGroupMetadata : Disposable, AutoCloseable, FfiGroupMetadataInterfa } override fun `conversationType`(): kotlin.String { - return FfiConverterString.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroupmetadata_conversation_type( - it, _status - ) - } - } - ) + return FfiConverterString.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroupmetadata_conversation_type( + it, _status) +} } - + ) + } + override fun `creatorInboxId`(): kotlin.String { - return FfiConverterString.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroupmetadata_creator_inbox_id( - it, _status - ) - } - } - ) + return FfiConverterString.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigroupmetadata_creator_inbox_id( + it, _status) +} } + ) + } + + + + companion object - + } -public object FfiConverterTypeFfiGroupMetadata : FfiConverter { +public object FfiConverterTypeFfiGroupMetadata: FfiConverter { override fun lower(value: FfiGroupMetadata): Pointer { return value.uniffiClonePointer() @@ -3586,13 +3409,13 @@ public object FfiConverterTypeFfiGroupMetadata : FfiConverter - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigrouppermissions_policy_type( - it, _status - ) - } - } - ) + + @Throws(GenericException::class)override fun `policyType`(): GroupPermissions { + return FfiConverterTypeGroupPermissions.lift( + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffigrouppermissions_policy_type( + it, _status) +} + } + ) } + + + + companion object - + } -public object FfiConverterTypeFfiGroupPermissions : FfiConverter { +public object FfiConverterTypeFfiGroupPermissions: FfiConverter { override fun lower(value: FfiGroupPermissions): Pointer { return value.uniffiClonePointer() @@ -3817,26 +3642,22 @@ public object FfiConverterTypeFfiGroupPermissions : FfiConverter - + suspend fun `signatureText`(): kotlin.String - + companion object } -open class FfiSignatureRequest : Disposable, AutoCloseable, FfiSignatureRequestInterface { +open class FfiSignatureRequest: Disposable, AutoCloseable, FfiSignatureRequestInterface { constructor(pointer: Pointer) { this.pointer = pointer @@ -3887,7 +3708,7 @@ open class FfiSignatureRequest : Disposable, AutoCloseable, FfiSignatureRequestI if (c == Long.MAX_VALUE) { throw IllegalStateException("${this.javaClass.simpleName} call counter would overflow") } - } while (!this.callCounter.compareAndSet(c, c + 1L)) + } while (! this.callCounter.compareAndSet(c, c + 1L)) // Now we can safely do the method call without the pointer being freed concurrently. try { return block(this.uniffiClonePointer()) @@ -3917,151 +3738,104 @@ open class FfiSignatureRequest : Disposable, AutoCloseable, FfiSignatureRequestI } } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `addEcdsaSignature`(`signatureBytes`: kotlin.ByteArray) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_add_ecdsa_signature( - thisPtr, - FfiConverterByteArray.lower(`signatureBytes`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_add_ecdsa_signature( + thisPtr, + FfiConverterByteArray.lower(`signatureBytes`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `addErc1271Signature`( - `signatureBytes`: kotlin.ByteArray, - `address`: kotlin.String, - `chainRpcUrl`: kotlin.String, - ) { + override suspend fun `addErc1271Signature`(`signatureBytes`: kotlin.ByteArray, `address`: kotlin.String, `chainRpcUrl`: kotlin.String) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_add_erc1271_signature( - thisPtr, - FfiConverterByteArray.lower(`signatureBytes`), - FfiConverterString.lower(`address`), - FfiConverterString.lower(`chainRpcUrl`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_add_erc1271_signature( + thisPtr, + FfiConverterByteArray.lower(`signatureBytes`),FfiConverterString.lower(`address`),FfiConverterString.lower(`chainRpcUrl`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + /** * missing signatures that are from [MemberKind::Address] */ @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `missingAddressSignatures`(): List { + override suspend fun `missingAddressSignatures`() : List { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_missing_address_signatures( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterSequenceString.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_missing_address_signatures( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterSequenceString.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `signatureText`(): kotlin.String { + override suspend fun `signatureText`() : kotlin.String { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_signature_text( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterString.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffisignaturerequest_signature_text( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterString.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } + + + companion object - + } -public object FfiConverterTypeFfiSignatureRequest : FfiConverter { +public object FfiConverterTypeFfiSignatureRequest: FfiConverter { override fun lower(value: FfiSignatureRequest): Pointer { return value.uniffiClonePointer() @@ -4186,15 +3960,15 @@ public object FfiConverterTypeFfiSignatureRequest : FfiConverter - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffistreamcloser_end( - it, _status - ) - } - } - + override fun `end`() + = + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffistreamcloser_end( + it, _status) +} + } + + override fun `isClosed`(): kotlin.Boolean { - return FfiConverterBoolean.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffistreamcloser_is_closed( - it, _status - ) - } - } - ) + return FfiConverterBoolean.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffistreamcloser_is_closed( + it, _status) +} + } + ) } + + + + companion object - + } -public object FfiConverterTypeFfiStreamCloser : FfiConverter { +public object FfiConverterTypeFfiStreamCloser: FfiConverter { override fun lower(value: FfiStreamCloser): Pointer { return value.uniffiClonePointer() @@ -4427,21 +4205,21 @@ public object FfiConverterTypeFfiStreamCloser : FfiConverter - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_batch_query( - thisPtr, - FfiConverterTypeFfiV2BatchQueryRequest.lower(`req`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterTypeFfiV2BatchQueryResponse.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_batch_query( + thisPtr, + FfiConverterTypeFfiV2BatchQueryRequest.lower(`req`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterTypeFfiV2BatchQueryResponse.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `publish`(`request`: FfiPublishRequest, `authToken`: kotlin.String) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_publish( - thisPtr, - FfiConverterTypeFfiPublishRequest.lower(`request`), - FfiConverterString.lower(`authToken`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_publish( + thisPtr, + FfiConverterTypeFfiPublishRequest.lower(`request`),FfiConverterString.lower(`authToken`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `query`(`request`: FfiV2QueryRequest): FfiV2QueryResponse { + override suspend fun `query`(`request`: FfiV2QueryRequest) : FfiV2QueryResponse { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_query( - thisPtr, - FfiConverterTypeFfiV2QueryRequest.lower(`request`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterTypeFfiV2QueryResponse.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_query( + thisPtr, + FfiConverterTypeFfiV2QueryRequest.lower(`request`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterTypeFfiV2QueryResponse.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - override fun `setAppVersion`(`version`: kotlin.String) = - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_set_app_version( - it, FfiConverterString.lower(`version`), _status - ) - } - } - + override fun `setAppVersion`(`version`: kotlin.String) + = + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_set_app_version( + it, FfiConverterString.lower(`version`),_status) +} + } + + + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `subscribe`(`request`: FfiV2SubscribeRequest): FfiV2Subscription { + override suspend fun `subscribe`(`request`: FfiV2SubscribeRequest) : FfiV2Subscription { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_subscribe( - thisPtr, - FfiConverterTypeFfiV2SubscribeRequest.lower(`request`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, - // lift function - { FfiConverterTypeFfiV2Subscription.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2apiclient_subscribe( + thisPtr, + FfiConverterTypeFfiV2SubscribeRequest.lower(`request`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, + // lift function + { FfiConverterTypeFfiV2Subscription.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } + + + companion object - + } -public object FfiConverterTypeFfiV2ApiClient : FfiConverter { +public object FfiConverterTypeFfiV2ApiClient: FfiConverter { override fun lower(value: FfiV2ApiClient): Pointer { return value.uniffiClonePointer() @@ -4791,17 +4529,17 @@ public object FfiConverterTypeFfiV2ApiClient : FfiConverter - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2subscription_end( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - UniffiNullRustCallStatusErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2subscription_end( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + UniffiNullRustCallStatusErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `next`(): FfiEnvelope { + override suspend fun `next`() : FfiEnvelope { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2subscription_next( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterTypeFfiEnvelope.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2subscription_next( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterTypeFfiEnvelope.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `update`(`req`: FfiV2SubscribeRequest) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2subscription_update( - thisPtr, - FfiConverterTypeFfiV2SubscribeRequest.lower(`req`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffiv2subscription_update( + thisPtr, + FfiConverterTypeFfiV2SubscribeRequest.lower(`req`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } + + + companion object - + } -public object FfiConverterTypeFfiV2Subscription : FfiConverter { +public object FfiConverterTypeFfiV2Subscription: FfiConverter { override fun lower(value: FfiV2Subscription): Pointer { return value.uniffiClonePointer() @@ -5109,27 +4817,27 @@ public object FfiConverterTypeFfiV2Subscription : FfiConverter): Map - + fun `conversations`(): FfiConversations - + suspend fun `dbReconnect`() - + fun `inboxId`(): kotlin.String - + fun `installationId`(): kotlin.ByteArray - + suspend fun `registerIdentity`(`signatureRequest`: FfiSignatureRequest) - + fun `releaseDbConnection`() - + fun `signatureRequest`(): FfiSignatureRequest? - + companion object } -open class FfiXmtpClient : Disposable, AutoCloseable, FfiXmtpClientInterface { +open class FfiXmtpClient: Disposable, AutoCloseable, FfiXmtpClientInterface { constructor(pointer: Pointer) { this.pointer = pointer @@ -5180,7 +4888,7 @@ open class FfiXmtpClient : Disposable, AutoCloseable, FfiXmtpClientInterface { if (c == Long.MAX_VALUE) { throw IllegalStateException("${this.javaClass.simpleName} call counter would overflow") } - } while (!this.callCounter.compareAndSet(c, c + 1L)) + } while (! this.callCounter.compareAndSet(c, c + 1L)) // Now we can safely do the method call without the pointer being freed concurrently. try { return block(this.uniffiClonePointer()) @@ -5210,171 +4918,140 @@ open class FfiXmtpClient : Disposable, AutoCloseable, FfiXmtpClientInterface { } } - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") - override suspend fun `canMessage`(`accountAddresses`: List): Map { + override suspend fun `canMessage`(`accountAddresses`: List) : Map { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_can_message( - thisPtr, - FfiConverterSequenceString.lower(`accountAddresses`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, - // lift function - { FfiConverterMapStringBoolean.lift(it) }, - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_can_message( + thisPtr, + FfiConverterSequenceString.lower(`accountAddresses`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, + // lift function + { FfiConverterMapStringBoolean.lift(it) }, + // Error FFI converter + GenericException.ErrorHandler, + ) } override fun `conversations`(): FfiConversations { - return FfiConverterTypeFfiConversations.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_conversations( - it, _status - ) - } - } - ) + return FfiConverterTypeFfiConversations.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_conversations( + it, _status) +} } + ) + } + - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `dbReconnect`() { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_db_reconnect( - thisPtr, - - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_db_reconnect( + thisPtr, + + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } override fun `inboxId`(): kotlin.String { - return FfiConverterString.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_inbox_id( - it, _status - ) - } - } - ) + return FfiConverterString.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_inbox_id( + it, _status) +} } - + ) + } + override fun `installationId`(): kotlin.ByteArray { - return FfiConverterByteArray.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_installation_id( - it, _status - ) - } - } - ) + return FfiConverterByteArray.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_installation_id( + it, _status) +} } + ) + } + - + @Throws(GenericException::class) @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") override suspend fun `registerIdentity`(`signatureRequest`: FfiSignatureRequest) { return uniffiRustCallAsync( - callWithPointer { thisPtr -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_register_identity( - thisPtr, - FfiConverterTypeFfiSignatureRequest.lower(`signatureRequest`), - ) - }, - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void( - future, - continuation - ) - }, - { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, - // lift function - { Unit }, - - // Error FFI converter - GenericException.ErrorHandler, - ) + callWithPointer { thisPtr -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_register_identity( + thisPtr, + FfiConverterTypeFfiSignatureRequest.lower(`signatureRequest`), + ) + }, + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_void(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_void(future, continuation) }, + { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_void(future) }, + // lift function + { Unit }, + + // Error FFI converter + GenericException.ErrorHandler, + ) } - - @Throws(GenericException::class) - override fun `releaseDbConnection`() = - callWithPointer { - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_release_db_connection( - it, _status - ) - } - } - + + @Throws(GenericException::class)override fun `releaseDbConnection`() + = + callWithPointer { + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_release_db_connection( + it, _status) +} + } + + override fun `signatureRequest`(): FfiSignatureRequest? { - return FfiConverterOptionalTypeFfiSignatureRequest.lift( - callWithPointer { - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_signature_request( - it, _status - ) - } - } - ) + return FfiConverterOptionalTypeFfiSignatureRequest.lift( + callWithPointer { + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_method_ffixmtpclient_signature_request( + it, _status) +} + } + ) } + + + + companion object - + } -public object FfiConverterTypeFfiXmtpClient : FfiConverter { +public object FfiConverterTypeFfiXmtpClient: FfiConverter { override fun lower(value: FfiXmtpClient): Pointer { return value.uniffiClonePointer() @@ -5400,15 +5077,16 @@ public object FfiConverterTypeFfiXmtpClient : FfiConverter { +public object FfiConverterTypeFfiCursor: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiCursor { return FfiCursor( FfiConverterByteArray.read(buf), @@ -5418,26 +5096,27 @@ public object FfiConverterTypeFfiCursor : FfiConverterRustBuffer { override fun allocationSize(value: FfiCursor) = ( FfiConverterByteArray.allocationSize(value.`digest`) + - FfiConverterULong.allocationSize(value.`senderTimeNs`) - ) + FfiConverterULong.allocationSize(value.`senderTimeNs`) + ) override fun write(value: FfiCursor, buf: ByteBuffer) { - FfiConverterByteArray.write(value.`digest`, buf) - FfiConverterULong.write(value.`senderTimeNs`, buf) + FfiConverterByteArray.write(value.`digest`, buf) + FfiConverterULong.write(value.`senderTimeNs`, buf) } } -data class FfiEnvelope( - var `contentTopic`: kotlin.String, - var `timestampNs`: kotlin.ULong, - var `message`: kotlin.ByteArray, -) { +data class FfiEnvelope ( + var `contentTopic`: kotlin.String, + var `timestampNs`: kotlin.ULong, + var `message`: kotlin.ByteArray +) { + companion object } -public object FfiConverterTypeFfiEnvelope : FfiConverterRustBuffer { +public object FfiConverterTypeFfiEnvelope: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiEnvelope { return FfiEnvelope( FfiConverterString.read(buf), @@ -5448,61 +5127,66 @@ public object FfiConverterTypeFfiEnvelope : FfiConverterRustBuffer override fun allocationSize(value: FfiEnvelope) = ( FfiConverterString.allocationSize(value.`contentTopic`) + - FfiConverterULong.allocationSize(value.`timestampNs`) + - FfiConverterByteArray.allocationSize(value.`message`) - ) + FfiConverterULong.allocationSize(value.`timestampNs`) + + FfiConverterByteArray.allocationSize(value.`message`) + ) override fun write(value: FfiEnvelope, buf: ByteBuffer) { - FfiConverterString.write(value.`contentTopic`, buf) - FfiConverterULong.write(value.`timestampNs`, buf) - FfiConverterByteArray.write(value.`message`, buf) + FfiConverterString.write(value.`contentTopic`, buf) + FfiConverterULong.write(value.`timestampNs`, buf) + FfiConverterByteArray.write(value.`message`, buf) } } -data class FfiGroupMember( - var `inboxId`: kotlin.String, - var `accountAddresses`: List, - var `installationIds`: List, -) { +data class FfiGroupMember ( + var `inboxId`: kotlin.String, + var `accountAddresses`: List, + var `installationIds`: List, + var `permissionLevel`: FfiPermissionLevel +) { + companion object } -public object FfiConverterTypeFfiGroupMember : FfiConverterRustBuffer { +public object FfiConverterTypeFfiGroupMember: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiGroupMember { return FfiGroupMember( FfiConverterString.read(buf), FfiConverterSequenceString.read(buf), FfiConverterSequenceByteArray.read(buf), + FfiConverterTypeFfiPermissionLevel.read(buf), ) } override fun allocationSize(value: FfiGroupMember) = ( FfiConverterString.allocationSize(value.`inboxId`) + - FfiConverterSequenceString.allocationSize(value.`accountAddresses`) + - FfiConverterSequenceByteArray.allocationSize(value.`installationIds`) - ) + FfiConverterSequenceString.allocationSize(value.`accountAddresses`) + + FfiConverterSequenceByteArray.allocationSize(value.`installationIds`) + + FfiConverterTypeFfiPermissionLevel.allocationSize(value.`permissionLevel`) + ) override fun write(value: FfiGroupMember, buf: ByteBuffer) { - FfiConverterString.write(value.`inboxId`, buf) - FfiConverterSequenceString.write(value.`accountAddresses`, buf) - FfiConverterSequenceByteArray.write(value.`installationIds`, buf) + FfiConverterString.write(value.`inboxId`, buf) + FfiConverterSequenceString.write(value.`accountAddresses`, buf) + FfiConverterSequenceByteArray.write(value.`installationIds`, buf) + FfiConverterTypeFfiPermissionLevel.write(value.`permissionLevel`, buf) } } -data class FfiListConversationsOptions( - var `createdAfterNs`: kotlin.Long?, - var `createdBeforeNs`: kotlin.Long?, - var `limit`: kotlin.Long?, -) { +data class FfiListConversationsOptions ( + var `createdAfterNs`: kotlin.Long?, + var `createdBeforeNs`: kotlin.Long?, + var `limit`: kotlin.Long? +) { + companion object } -public object FfiConverterTypeFfiListConversationsOptions : - FfiConverterRustBuffer { +public object FfiConverterTypeFfiListConversationsOptions: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiListConversationsOptions { return FfiListConversationsOptions( FfiConverterOptionalLong.read(buf), @@ -5513,30 +5197,30 @@ public object FfiConverterTypeFfiListConversationsOptions : override fun allocationSize(value: FfiListConversationsOptions) = ( FfiConverterOptionalLong.allocationSize(value.`createdAfterNs`) + - FfiConverterOptionalLong.allocationSize(value.`createdBeforeNs`) + - FfiConverterOptionalLong.allocationSize(value.`limit`) - ) + FfiConverterOptionalLong.allocationSize(value.`createdBeforeNs`) + + FfiConverterOptionalLong.allocationSize(value.`limit`) + ) override fun write(value: FfiListConversationsOptions, buf: ByteBuffer) { - FfiConverterOptionalLong.write(value.`createdAfterNs`, buf) - FfiConverterOptionalLong.write(value.`createdBeforeNs`, buf) - FfiConverterOptionalLong.write(value.`limit`, buf) + FfiConverterOptionalLong.write(value.`createdAfterNs`, buf) + FfiConverterOptionalLong.write(value.`createdBeforeNs`, buf) + FfiConverterOptionalLong.write(value.`limit`, buf) } } -data class FfiListMessagesOptions( - var `sentBeforeNs`: kotlin.Long?, - var `sentAfterNs`: kotlin.Long?, - var `limit`: kotlin.Long?, - var `deliveryStatus`: FfiDeliveryStatus?, -) { +data class FfiListMessagesOptions ( + var `sentBeforeNs`: kotlin.Long?, + var `sentAfterNs`: kotlin.Long?, + var `limit`: kotlin.Long?, + var `deliveryStatus`: FfiDeliveryStatus? +) { + companion object } -public object FfiConverterTypeFfiListMessagesOptions : - FfiConverterRustBuffer { +public object FfiConverterTypeFfiListMessagesOptions: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiListMessagesOptions { return FfiListMessagesOptions( FfiConverterOptionalLong.read(buf), @@ -5548,34 +5232,35 @@ public object FfiConverterTypeFfiListMessagesOptions : override fun allocationSize(value: FfiListMessagesOptions) = ( FfiConverterOptionalLong.allocationSize(value.`sentBeforeNs`) + - FfiConverterOptionalLong.allocationSize(value.`sentAfterNs`) + - FfiConverterOptionalLong.allocationSize(value.`limit`) + - FfiConverterOptionalTypeFfiDeliveryStatus.allocationSize(value.`deliveryStatus`) - ) + FfiConverterOptionalLong.allocationSize(value.`sentAfterNs`) + + FfiConverterOptionalLong.allocationSize(value.`limit`) + + FfiConverterOptionalTypeFfiDeliveryStatus.allocationSize(value.`deliveryStatus`) + ) override fun write(value: FfiListMessagesOptions, buf: ByteBuffer) { - FfiConverterOptionalLong.write(value.`sentBeforeNs`, buf) - FfiConverterOptionalLong.write(value.`sentAfterNs`, buf) - FfiConverterOptionalLong.write(value.`limit`, buf) - FfiConverterOptionalTypeFfiDeliveryStatus.write(value.`deliveryStatus`, buf) + FfiConverterOptionalLong.write(value.`sentBeforeNs`, buf) + FfiConverterOptionalLong.write(value.`sentAfterNs`, buf) + FfiConverterOptionalLong.write(value.`limit`, buf) + FfiConverterOptionalTypeFfiDeliveryStatus.write(value.`deliveryStatus`, buf) } } -data class FfiMessage( - var `id`: kotlin.ByteArray, - var `sentAtNs`: kotlin.Long, - var `convoId`: kotlin.ByteArray, - var `senderInboxId`: kotlin.String, - var `content`: kotlin.ByteArray, - var `kind`: FfiGroupMessageKind, - var `deliveryStatus`: FfiDeliveryStatus, -) { +data class FfiMessage ( + var `id`: kotlin.ByteArray, + var `sentAtNs`: kotlin.Long, + var `convoId`: kotlin.ByteArray, + var `senderInboxId`: kotlin.String, + var `content`: kotlin.ByteArray, + var `kind`: FfiGroupMessageKind, + var `deliveryStatus`: FfiDeliveryStatus +) { + companion object } -public object FfiConverterTypeFfiMessage : FfiConverterRustBuffer { +public object FfiConverterTypeFfiMessage: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiMessage { return FfiMessage( FfiConverterByteArray.read(buf), @@ -5590,36 +5275,37 @@ public object FfiConverterTypeFfiMessage : FfiConverterRustBuffer { override fun allocationSize(value: FfiMessage) = ( FfiConverterByteArray.allocationSize(value.`id`) + - FfiConverterLong.allocationSize(value.`sentAtNs`) + - FfiConverterByteArray.allocationSize(value.`convoId`) + - FfiConverterString.allocationSize(value.`senderInboxId`) + - FfiConverterByteArray.allocationSize(value.`content`) + - FfiConverterTypeFfiGroupMessageKind.allocationSize(value.`kind`) + - FfiConverterTypeFfiDeliveryStatus.allocationSize(value.`deliveryStatus`) - ) + FfiConverterLong.allocationSize(value.`sentAtNs`) + + FfiConverterByteArray.allocationSize(value.`convoId`) + + FfiConverterString.allocationSize(value.`senderInboxId`) + + FfiConverterByteArray.allocationSize(value.`content`) + + FfiConverterTypeFfiGroupMessageKind.allocationSize(value.`kind`) + + FfiConverterTypeFfiDeliveryStatus.allocationSize(value.`deliveryStatus`) + ) override fun write(value: FfiMessage, buf: ByteBuffer) { - FfiConverterByteArray.write(value.`id`, buf) - FfiConverterLong.write(value.`sentAtNs`, buf) - FfiConverterByteArray.write(value.`convoId`, buf) - FfiConverterString.write(value.`senderInboxId`, buf) - FfiConverterByteArray.write(value.`content`, buf) - FfiConverterTypeFfiGroupMessageKind.write(value.`kind`, buf) - FfiConverterTypeFfiDeliveryStatus.write(value.`deliveryStatus`, buf) + FfiConverterByteArray.write(value.`id`, buf) + FfiConverterLong.write(value.`sentAtNs`, buf) + FfiConverterByteArray.write(value.`convoId`, buf) + FfiConverterString.write(value.`senderInboxId`, buf) + FfiConverterByteArray.write(value.`content`, buf) + FfiConverterTypeFfiGroupMessageKind.write(value.`kind`, buf) + FfiConverterTypeFfiDeliveryStatus.write(value.`deliveryStatus`, buf) } } -data class FfiPagingInfo( - var `limit`: kotlin.UInt, - var `cursor`: FfiCursor?, - var `direction`: FfiSortDirection, -) { +data class FfiPagingInfo ( + var `limit`: kotlin.UInt, + var `cursor`: FfiCursor?, + var `direction`: FfiSortDirection +) { + companion object } -public object FfiConverterTypeFfiPagingInfo : FfiConverterRustBuffer { +public object FfiConverterTypeFfiPagingInfo: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiPagingInfo { return FfiPagingInfo( FfiConverterUInt.read(buf), @@ -5630,26 +5316,27 @@ public object FfiConverterTypeFfiPagingInfo : FfiConverterRustBuffer, -) { +data class FfiPublishRequest ( + var `envelopes`: List +) { + companion object } -public object FfiConverterTypeFfiPublishRequest : FfiConverterRustBuffer { +public object FfiConverterTypeFfiPublishRequest: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiPublishRequest { return FfiPublishRequest( FfiConverterSequenceTypeFfiEnvelope.read(buf), @@ -5658,23 +5345,23 @@ public object FfiConverterTypeFfiPublishRequest : FfiConverterRustBuffer, -) { +data class FfiV2BatchQueryRequest ( + var `requests`: List +) { + companion object } -public object FfiConverterTypeFfiV2BatchQueryRequest : - FfiConverterRustBuffer { +public object FfiConverterTypeFfiV2BatchQueryRequest: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiV2BatchQueryRequest { return FfiV2BatchQueryRequest( FfiConverterSequenceTypeFfiV2QueryRequest.read(buf), @@ -5683,23 +5370,23 @@ public object FfiConverterTypeFfiV2BatchQueryRequest : override fun allocationSize(value: FfiV2BatchQueryRequest) = ( FfiConverterSequenceTypeFfiV2QueryRequest.allocationSize(value.`requests`) - ) + ) override fun write(value: FfiV2BatchQueryRequest, buf: ByteBuffer) { - FfiConverterSequenceTypeFfiV2QueryRequest.write(value.`requests`, buf) + FfiConverterSequenceTypeFfiV2QueryRequest.write(value.`requests`, buf) } } -data class FfiV2BatchQueryResponse( - var `responses`: List, -) { +data class FfiV2BatchQueryResponse ( + var `responses`: List +) { + companion object } -public object FfiConverterTypeFfiV2BatchQueryResponse : - FfiConverterRustBuffer { +public object FfiConverterTypeFfiV2BatchQueryResponse: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiV2BatchQueryResponse { return FfiV2BatchQueryResponse( FfiConverterSequenceTypeFfiV2QueryResponse.read(buf), @@ -5708,25 +5395,26 @@ public object FfiConverterTypeFfiV2BatchQueryResponse : override fun allocationSize(value: FfiV2BatchQueryResponse) = ( FfiConverterSequenceTypeFfiV2QueryResponse.allocationSize(value.`responses`) - ) + ) override fun write(value: FfiV2BatchQueryResponse, buf: ByteBuffer) { - FfiConverterSequenceTypeFfiV2QueryResponse.write(value.`responses`, buf) + FfiConverterSequenceTypeFfiV2QueryResponse.write(value.`responses`, buf) } } -data class FfiV2QueryRequest( - var `contentTopics`: List, - var `startTimeNs`: kotlin.ULong, - var `endTimeNs`: kotlin.ULong, - var `pagingInfo`: FfiPagingInfo?, -) { +data class FfiV2QueryRequest ( + var `contentTopics`: List, + var `startTimeNs`: kotlin.ULong, + var `endTimeNs`: kotlin.ULong, + var `pagingInfo`: FfiPagingInfo? +) { + companion object } -public object FfiConverterTypeFfiV2QueryRequest : FfiConverterRustBuffer { +public object FfiConverterTypeFfiV2QueryRequest: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiV2QueryRequest { return FfiV2QueryRequest( FfiConverterSequenceString.read(buf), @@ -5738,29 +5426,30 @@ public object FfiConverterTypeFfiV2QueryRequest : FfiConverterRustBuffer, - var `pagingInfo`: FfiPagingInfo?, -) { +data class FfiV2QueryResponse ( + var `envelopes`: List, + var `pagingInfo`: FfiPagingInfo? +) { + companion object } -public object FfiConverterTypeFfiV2QueryResponse : FfiConverterRustBuffer { +public object FfiConverterTypeFfiV2QueryResponse: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiV2QueryResponse { return FfiV2QueryResponse( FfiConverterSequenceTypeFfiEnvelope.read(buf), @@ -5770,25 +5459,25 @@ public object FfiConverterTypeFfiV2QueryResponse : FfiConverterRustBuffer, -) { +data class FfiV2SubscribeRequest ( + var `contentTopics`: List +) { + companion object } -public object FfiConverterTypeFfiV2SubscribeRequest : - FfiConverterRustBuffer { +public object FfiConverterTypeFfiV2SubscribeRequest: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiV2SubscribeRequest { return FfiV2SubscribeRequest( FfiConverterSequenceString.read(buf), @@ -5797,25 +5486,26 @@ public object FfiConverterTypeFfiV2SubscribeRequest : override fun allocationSize(value: FfiV2SubscribeRequest) = ( FfiConverterSequenceString.allocationSize(value.`contentTopics`) - ) + ) override fun write(value: FfiV2SubscribeRequest, buf: ByteBuffer) { - FfiConverterSequenceString.write(value.`contentTopics`, buf) + FfiConverterSequenceString.write(value.`contentTopics`, buf) } } -enum class FfiDeliveryStatus { + +enum class FfiDeliveryStatus { + UNPUBLISHED, PUBLISHED, FAILED; - companion object } -public object FfiConverterTypeFfiDeliveryStatus : FfiConverterRustBuffer { +public object FfiConverterTypeFfiDeliveryStatus: FfiConverterRustBuffer { override fun read(buf: ByteBuffer) = try { FfiDeliveryStatus.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { @@ -5830,16 +5520,19 @@ public object FfiConverterTypeFfiDeliveryStatus : FfiConverterRustBuffer { +public object FfiConverterTypeFfiGroupMessageKind: FfiConverterRustBuffer { override fun read(buf: ByteBuffer) = try { FfiGroupMessageKind.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { @@ -5854,66 +5547,101 @@ public object FfiConverterTypeFfiGroupMessageKind : FfiConverterRustBuffer { +public object FfiConverterTypeFfiPermissionLevel: FfiConverterRustBuffer { override fun read(buf: ByteBuffer) = try { - FfiSortDirection.values()[buf.getInt() - 1] + FfiPermissionLevel.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { throw RuntimeException("invalid enum value, something is very wrong!!", e) } - override fun allocationSize(value: FfiSortDirection) = 4UL + override fun allocationSize(value: FfiPermissionLevel) = 4UL - override fun write(value: FfiSortDirection, buf: ByteBuffer) { + override fun write(value: FfiPermissionLevel, buf: ByteBuffer) { buf.putInt(value.ordinal + 1) } } -sealed class GenericException(message: String) : Exception(message) { - class Client(message: String) : GenericException(message) - class ClientBuilder(message: String) : GenericException(message) - class Storage(message: String) : GenericException(message) - class ApiException(message: String) : GenericException(message) +enum class FfiSortDirection { + + UNSPECIFIED, + ASCENDING, + DESCENDING; + companion object +} + + +public object FfiConverterTypeFfiSortDirection: FfiConverterRustBuffer { + override fun read(buf: ByteBuffer) = try { + FfiSortDirection.values()[buf.getInt() - 1] + } catch (e: IndexOutOfBoundsException) { + throw RuntimeException("invalid enum value, something is very wrong!!", e) + } + + override fun allocationSize(value: FfiSortDirection) = 4UL - class GroupException(message: String) : GenericException(message) + override fun write(value: FfiSortDirection, buf: ByteBuffer) { + buf.putInt(value.ordinal + 1) + } +} - class Signature(message: String) : GenericException(message) - class GroupMetadata(message: String) : GenericException(message) - class GroupMutablePermissions(message: String) : GenericException(message) - class Generic(message: String) : GenericException(message) - class SignatureRequestException(message: String) : GenericException(message) - class Erc1271SignatureException(message: String) : GenericException(message) +sealed class GenericException(message: String): Exception(message) { + + class Client(message: String) : GenericException(message) + + class ClientBuilder(message: String) : GenericException(message) + + class Storage(message: String) : GenericException(message) + + class ApiException(message: String) : GenericException(message) + + class GroupException(message: String) : GenericException(message) + + class Signature(message: String) : GenericException(message) + + class GroupMetadata(message: String) : GenericException(message) + + class GroupMutablePermissions(message: String) : GenericException(message) + + class Generic(message: String) : GenericException(message) + + class SignatureRequestException(message: String) : GenericException(message) + + class Erc1271SignatureException(message: String) : GenericException(message) + companion object ErrorHandler : UniffiRustCallStatusErrorHandler { - override fun lift(error_buf: RustBuffer.ByValue): GenericException = - FfiConverterTypeGenericError.lift(error_buf) + override fun lift(error_buf: RustBuffer.ByValue): GenericException = FfiConverterTypeGenericError.lift(error_buf) } } public object FfiConverterTypeGenericError : FfiConverterRustBuffer { override fun read(buf: ByteBuffer): GenericException { - - return when (buf.getInt()) { + + return when(buf.getInt()) { 1 -> GenericException.Client(FfiConverterString.read(buf)) 2 -> GenericException.ClientBuilder(FfiConverterString.read(buf)) 3 -> GenericException.Storage(FfiConverterString.read(buf)) @@ -5927,7 +5655,7 @@ public object FfiConverterTypeGenericError : FfiConverterRustBuffer GenericException.Erc1271SignatureException(FfiConverterString.read(buf)) else -> throw RuntimeException("invalid error enum value, something is very wrong!!") } - + } override fun allocationSize(value: GenericException): ULong { @@ -5935,57 +5663,47 @@ public object FfiConverterTypeGenericError : FfiConverterRustBuffer { buf.putInt(1) Unit } - is GenericException.ClientBuilder -> { buf.putInt(2) Unit } - is GenericException.Storage -> { buf.putInt(3) Unit } - is GenericException.ApiException -> { buf.putInt(4) Unit } - is GenericException.GroupException -> { buf.putInt(5) Unit } - is GenericException.Signature -> { buf.putInt(6) Unit } - is GenericException.GroupMetadata -> { buf.putInt(7) Unit } - is GenericException.GroupMutablePermissions -> { buf.putInt(8) Unit } - is GenericException.Generic -> { buf.putInt(9) Unit } - is GenericException.SignatureRequestException -> { buf.putInt(10) Unit } - is GenericException.Erc1271SignatureException -> { buf.putInt(11) Unit @@ -5996,16 +5714,17 @@ public object FfiConverterTypeGenericError : FfiConverterRustBuffer { +public object FfiConverterTypeGroupPermissions: FfiConverterRustBuffer { override fun read(buf: ByteBuffer) = try { GroupPermissions.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { @@ -6020,6 +5739,9 @@ public object FfiConverterTypeGroupPermissions : FfiConverterRustBuffer { +public object FfiConverterTypeLegacyIdentitySource: FfiConverterRustBuffer { override fun read(buf: ByteBuffer) = try { LegacyIdentitySource.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { @@ -6054,25 +5775,29 @@ public object FfiConverterTypeLegacyIdentitySource : FfiConverterRustBuffer { - override fun lift(error_buf: RustBuffer.ByValue): SigningException = - FfiConverterTypeSigningError.lift(error_buf) + override fun lift(error_buf: RustBuffer.ByValue): SigningException = FfiConverterTypeSigningError.lift(error_buf) } } public object FfiConverterTypeSigningError : FfiConverterRustBuffer { override fun read(buf: ByteBuffer): SigningException { - - return when (buf.getInt()) { + + return when(buf.getInt()) { 1 -> SigningException.Generic(FfiConverterString.read(buf)) else -> throw RuntimeException("invalid error enum value, something is very wrong!!") } - + } override fun allocationSize(value: SigningException): ULong { @@ -6080,7 +5805,7 @@ public object FfiConverterTypeSigningError : FfiConverterRustBuffer { buf.putInt(1) Unit @@ -6091,24 +5816,25 @@ public object FfiConverterTypeSigningError : FfiConverterRustBuffer : - FfiConverter { +public abstract class FfiConverterCallbackInterface: FfiConverter { internal val handleMap = UniffiHandleMap() internal fun drop(handle: Long) { @@ -6132,13 +5858,8 @@ public abstract class FfiConverterCallbackInterface : // Put the implementation in an object so we don't pollute the top-level namespace internal object uniffiCallbackInterfaceFfiConversationCallback { - internal object `onConversation` : UniffiCallbackInterfaceFfiConversationCallbackMethod0 { - override fun callback( - `uniffiHandle`: Long, - `conversation`: Pointer, - `uniffiOutReturn`: Pointer, - uniffiCallStatus: UniffiRustCallStatus, - ) { + internal object `onConversation`: UniffiCallbackInterfaceFfiConversationCallbackMethod0 { + override fun callback(`uniffiHandle`: Long,`conversation`: Pointer,`uniffiOutReturn`: Pointer,uniffiCallStatus: UniffiRustCallStatus,) { val uniffiObj = FfiConverterTypeFfiConversationCallback.handleMap.get(uniffiHandle) val makeCall = { -> uniffiObj.`onConversation`( @@ -6150,7 +5871,7 @@ internal object uniffiCallbackInterfaceFfiConversationCallback { } } - internal object uniffiFree : UniffiCallbackInterfaceFree { + internal object uniffiFree: UniffiCallbackInterfaceFree { override fun callback(handle: Long) { FfiConverterTypeFfiConversationCallback.handleMap.remove(handle) } @@ -6169,57 +5890,45 @@ internal object uniffiCallbackInterfaceFfiConversationCallback { } // The ffiConverter which transforms the Callbacks in to handles to pass to Rust. -public object FfiConverterTypeFfiConversationCallback : - FfiConverterCallbackInterface() +public object FfiConverterTypeFfiConversationCallback: FfiConverterCallbackInterface() -public interface FfiInboxOwner { - fun `getAddress`(): kotlin.String - fun `sign`(`text`: kotlin.String): kotlin.ByteArray +public interface FfiInboxOwner { + + fun `getAddress`(): kotlin.String + + fun `sign`(`text`: kotlin.String): kotlin.ByteArray + companion object } + // Put the implementation in an object so we don't pollute the top-level namespace internal object uniffiCallbackInterfaceFfiInboxOwner { - internal object `getAddress` : UniffiCallbackInterfaceFfiInboxOwnerMethod0 { - override fun callback( - `uniffiHandle`: Long, - `uniffiOutReturn`: RustBuffer, - uniffiCallStatus: UniffiRustCallStatus, - ) { + internal object `getAddress`: UniffiCallbackInterfaceFfiInboxOwnerMethod0 { + override fun callback(`uniffiHandle`: Long,`uniffiOutReturn`: RustBuffer,uniffiCallStatus: UniffiRustCallStatus,) { val uniffiObj = FfiConverterTypeFfiInboxOwner.handleMap.get(uniffiHandle) val makeCall = { -> uniffiObj.`getAddress`( ) } - val writeReturn = - { value: kotlin.String -> uniffiOutReturn.setValue(FfiConverterString.lower(value)) } + val writeReturn = { value: kotlin.String -> uniffiOutReturn.setValue(FfiConverterString.lower(value)) } uniffiTraitInterfaceCall(uniffiCallStatus, makeCall, writeReturn) } } - - internal object `sign` : UniffiCallbackInterfaceFfiInboxOwnerMethod1 { - override fun callback( - `uniffiHandle`: Long, - `text`: RustBuffer.ByValue, - `uniffiOutReturn`: RustBuffer, - uniffiCallStatus: UniffiRustCallStatus, - ) { + internal object `sign`: UniffiCallbackInterfaceFfiInboxOwnerMethod1 { + override fun callback(`uniffiHandle`: Long,`text`: RustBuffer.ByValue,`uniffiOutReturn`: RustBuffer,uniffiCallStatus: UniffiRustCallStatus,) { val uniffiObj = FfiConverterTypeFfiInboxOwner.handleMap.get(uniffiHandle) val makeCall = { -> uniffiObj.`sign`( FfiConverterString.lift(`text`), ) } - val writeReturn = { value: kotlin.ByteArray -> - uniffiOutReturn.setValue( - FfiConverterByteArray.lower(value) - ) - } + val writeReturn = { value: kotlin.ByteArray -> uniffiOutReturn.setValue(FfiConverterByteArray.lower(value)) } uniffiTraitInterfaceCallWithError( uniffiCallStatus, makeCall, @@ -6229,7 +5938,7 @@ internal object uniffiCallbackInterfaceFfiInboxOwner { } } - internal object uniffiFree : UniffiCallbackInterfaceFree { + internal object uniffiFree: UniffiCallbackInterfaceFree { override fun callback(handle: Long) { FfiConverterTypeFfiInboxOwner.handleMap.remove(handle) } @@ -6249,28 +5958,25 @@ internal object uniffiCallbackInterfaceFfiInboxOwner { } // The ffiConverter which transforms the Callbacks in to handles to pass to Rust. -public object FfiConverterTypeFfiInboxOwner : FfiConverterCallbackInterface() +public object FfiConverterTypeFfiInboxOwner: FfiConverterCallbackInterface() -public interface FfiLogger { - fun `log`(`level`: kotlin.UInt, `levelLabel`: kotlin.String, `message`: kotlin.String) + +public interface FfiLogger { + + fun `log`(`level`: kotlin.UInt, `levelLabel`: kotlin.String, `message`: kotlin.String) + companion object } + // Put the implementation in an object so we don't pollute the top-level namespace internal object uniffiCallbackInterfaceFfiLogger { - internal object `log` : UniffiCallbackInterfaceFfiLoggerMethod0 { - override fun callback( - `uniffiHandle`: Long, - `level`: Int, - `levelLabel`: RustBuffer.ByValue, - `message`: RustBuffer.ByValue, - `uniffiOutReturn`: Pointer, - uniffiCallStatus: UniffiRustCallStatus, - ) { + internal object `log`: UniffiCallbackInterfaceFfiLoggerMethod0 { + override fun callback(`uniffiHandle`: Long,`level`: Int,`levelLabel`: RustBuffer.ByValue,`message`: RustBuffer.ByValue,`uniffiOutReturn`: Pointer,uniffiCallStatus: UniffiRustCallStatus,) { val uniffiObj = FfiConverterTypeFfiLogger.handleMap.get(uniffiHandle) val makeCall = { -> uniffiObj.`log`( @@ -6284,7 +5990,7 @@ internal object uniffiCallbackInterfaceFfiLogger { } } - internal object uniffiFree : UniffiCallbackInterfaceFree { + internal object uniffiFree: UniffiCallbackInterfaceFree { override fun callback(handle: Long) { FfiConverterTypeFfiLogger.handleMap.remove(handle) } @@ -6303,26 +6009,25 @@ internal object uniffiCallbackInterfaceFfiLogger { } // The ffiConverter which transforms the Callbacks in to handles to pass to Rust. -public object FfiConverterTypeFfiLogger : FfiConverterCallbackInterface() +public object FfiConverterTypeFfiLogger: FfiConverterCallbackInterface() -public interface FfiMessageCallback { - fun `onMessage`(`message`: FfiMessage) + +public interface FfiMessageCallback { + + fun `onMessage`(`message`: FfiMessage) + companion object } + // Put the implementation in an object so we don't pollute the top-level namespace internal object uniffiCallbackInterfaceFfiMessageCallback { - internal object `onMessage` : UniffiCallbackInterfaceFfiMessageCallbackMethod0 { - override fun callback( - `uniffiHandle`: Long, - `message`: RustBuffer.ByValue, - `uniffiOutReturn`: Pointer, - uniffiCallStatus: UniffiRustCallStatus, - ) { + internal object `onMessage`: UniffiCallbackInterfaceFfiMessageCallbackMethod0 { + override fun callback(`uniffiHandle`: Long,`message`: RustBuffer.ByValue,`uniffiOutReturn`: Pointer,uniffiCallStatus: UniffiRustCallStatus,) { val uniffiObj = FfiConverterTypeFfiMessageCallback.handleMap.get(uniffiHandle) val makeCall = { -> uniffiObj.`onMessage`( @@ -6334,7 +6039,7 @@ internal object uniffiCallbackInterfaceFfiMessageCallback { } } - internal object uniffiFree : UniffiCallbackInterfaceFree { + internal object uniffiFree: UniffiCallbackInterfaceFree { override fun callback(handle: Long) { FfiConverterTypeFfiMessageCallback.handleMap.remove(handle) } @@ -6353,11 +6058,12 @@ internal object uniffiCallbackInterfaceFfiMessageCallback { } // The ffiConverter which transforms the Callbacks in to handles to pass to Rust. -public object FfiConverterTypeFfiMessageCallback : - FfiConverterCallbackInterface() +public object FfiConverterTypeFfiMessageCallback: FfiConverterCallbackInterface() + + -public object FfiConverterOptionalLong : FfiConverterRustBuffer { +public object FfiConverterOptionalLong: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): kotlin.Long? { if (buf.get().toInt() == 0) { return null @@ -6384,7 +6090,9 @@ public object FfiConverterOptionalLong : FfiConverterRustBuffer { } -public object FfiConverterOptionalString : FfiConverterRustBuffer { + + +public object FfiConverterOptionalString: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): kotlin.String? { if (buf.get().toInt() == 0) { return null @@ -6411,7 +6119,9 @@ public object FfiConverterOptionalString : FfiConverterRustBuffer { + + +public object FfiConverterOptionalByteArray: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): kotlin.ByteArray? { if (buf.get().toInt() == 0) { return null @@ -6438,8 +6148,9 @@ public object FfiConverterOptionalByteArray : FfiConverterRustBuffer { + + +public object FfiConverterOptionalTypeFfiSignatureRequest: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiSignatureRequest? { if (buf.get().toInt() == 0) { return null @@ -6466,7 +6177,9 @@ public object FfiConverterOptionalTypeFfiSignatureRequest : } -public object FfiConverterOptionalTypeFfiCursor : FfiConverterRustBuffer { + + +public object FfiConverterOptionalTypeFfiCursor: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiCursor? { if (buf.get().toInt() == 0) { return null @@ -6493,7 +6206,9 @@ public object FfiConverterOptionalTypeFfiCursor : FfiConverterRustBuffer { + + +public object FfiConverterOptionalTypeFfiPagingInfo: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiPagingInfo? { if (buf.get().toInt() == 0) { return null @@ -6520,8 +6235,9 @@ public object FfiConverterOptionalTypeFfiPagingInfo : FfiConverterRustBuffer { + + +public object FfiConverterOptionalTypeFfiDeliveryStatus: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): FfiDeliveryStatus? { if (buf.get().toInt() == 0) { return null @@ -6548,7 +6264,9 @@ public object FfiConverterOptionalTypeFfiDeliveryStatus : } -public object FfiConverterOptionalTypeGroupPermissions : FfiConverterRustBuffer { + + +public object FfiConverterOptionalTypeGroupPermissions: FfiConverterRustBuffer { override fun read(buf: ByteBuffer): GroupPermissions? { if (buf.get().toInt() == 0) { return null @@ -6575,7 +6293,9 @@ public object FfiConverterOptionalTypeGroupPermissions : FfiConverterRustBuffer< } -public object FfiConverterSequenceString : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceString: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6598,7 +6318,9 @@ public object FfiConverterSequenceString : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceByteArray: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6621,7 +6343,9 @@ public object FfiConverterSequenceByteArray : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceTypeFfiGroup: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6644,7 +6368,9 @@ public object FfiConverterSequenceTypeFfiGroup : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceTypeFfiEnvelope: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6667,8 +6393,9 @@ public object FfiConverterSequenceTypeFfiEnvelope : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceTypeFfiGroupMember: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6691,7 +6418,9 @@ public object FfiConverterSequenceTypeFfiGroupMember : } -public object FfiConverterSequenceTypeFfiMessage : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceTypeFfiMessage: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6714,8 +6443,9 @@ public object FfiConverterSequenceTypeFfiMessage : FfiConverterRustBuffer> { + + +public object FfiConverterSequenceTypeFfiV2QueryRequest: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6738,8 +6468,9 @@ public object FfiConverterSequenceTypeFfiV2QueryRequest : } -public object FfiConverterSequenceTypeFfiV2QueryResponse : - FfiConverterRustBuffer> { + + +public object FfiConverterSequenceTypeFfiV2QueryResponse: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): List { val len = buf.getInt() return List(len) { @@ -6762,8 +6493,8 @@ public object FfiConverterSequenceTypeFfiV2QueryResponse : } -public object FfiConverterMapStringBoolean : - FfiConverterRustBuffer> { + +public object FfiConverterMapStringBoolean: FfiConverterRustBuffer> { override fun read(buf: ByteBuffer): Map { val len = buf.getInt() return buildMap(len) { @@ -6779,7 +6510,7 @@ public object FfiConverterMapStringBoolean : val spaceForMapSize = 4UL val spaceForChildren = value.map { (k, v) -> FfiConverterString.allocationSize(k) + - FfiConverterBoolean.allocationSize(v) + FfiConverterBoolean.allocationSize(v) }.sum() return spaceForMapSize + spaceForChildren } @@ -6797,311 +6528,181 @@ public object FfiConverterMapStringBoolean : } -@Throws(GenericException::class) -@Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") -suspend fun `createClient`( - `logger`: FfiLogger, - `host`: kotlin.String, - `isSecure`: kotlin.Boolean, - `db`: kotlin.String?, - `encryptionKey`: kotlin.ByteArray?, - `accountAddress`: kotlin.String, - `legacyIdentitySource`: LegacyIdentitySource, - `legacySignedPrivateKeyProto`: kotlin.ByteArray?, -): FfiXmtpClient { - return uniffiRustCallAsync( - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_create_client( - FfiConverterTypeFfiLogger.lower( - `logger` - ), - FfiConverterString.lower(`host`), - FfiConverterBoolean.lower(`isSecure`), - FfiConverterOptionalString.lower(`db`), - FfiConverterOptionalByteArray.lower(`encryptionKey`), - FfiConverterString.lower(`accountAddress`), - FfiConverterTypeLegacyIdentitySource.lower(`legacyIdentitySource`), - FfiConverterOptionalByteArray.lower(`legacySignedPrivateKeyProto`), - ), - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, + + + + + + + @Throws(GenericException::class) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + suspend fun `createClient`(`logger`: FfiLogger, `host`: kotlin.String, `isSecure`: kotlin.Boolean, `db`: kotlin.String?, `encryptionKey`: kotlin.ByteArray?, `accountAddress`: kotlin.String, `legacyIdentitySource`: LegacyIdentitySource, `legacySignedPrivateKeyProto`: kotlin.ByteArray?) : FfiXmtpClient { + return uniffiRustCallAsync( + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_create_client(FfiConverterTypeFfiLogger.lower(`logger`),FfiConverterString.lower(`host`),FfiConverterBoolean.lower(`isSecure`),FfiConverterOptionalString.lower(`db`),FfiConverterOptionalByteArray.lower(`encryptionKey`),FfiConverterString.lower(`accountAddress`),FfiConverterTypeLegacyIdentitySource.lower(`legacyIdentitySource`),FfiConverterOptionalByteArray.lower(`legacySignedPrivateKeyProto`),), + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, // lift function { FfiConverterTypeFfiXmtpClient.lift(it) }, // Error FFI converter GenericException.ErrorHandler, ) -} + } -@Throws(GenericException::class) -@Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") -suspend fun `createV2Client`(`host`: kotlin.String, `isSecure`: kotlin.Boolean): FfiV2ApiClient { - return uniffiRustCallAsync( - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_create_v2_client( - FfiConverterString.lower(`host`), - FfiConverterBoolean.lower(`isSecure`), - ), - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer( - future, - continuation - ) - }, + @Throws(GenericException::class) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + suspend fun `createV2Client`(`host`: kotlin.String, `isSecure`: kotlin.Boolean) : FfiV2ApiClient { + return uniffiRustCallAsync( + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_create_v2_client(FfiConverterString.lower(`host`),FfiConverterBoolean.lower(`isSecure`),), + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_pointer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_pointer(future, continuation) }, { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_pointer(future) }, // lift function { FfiConverterTypeFfiV2ApiClient.lift(it) }, // Error FFI converter GenericException.ErrorHandler, ) -} + } -@Throws(GenericException::class) -fun `diffieHellmanK256`( - `privateKeyBytes`: kotlin.ByteArray, - `publicKeyBytes`: kotlin.ByteArray, -): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_diffie_hellman_k256( - FfiConverterByteArray.lower(`privateKeyBytes`), - FfiConverterByteArray.lower(`publicKeyBytes`), - _status - ) - } - ) + @Throws(GenericException::class) fun `diffieHellmanK256`(`privateKeyBytes`: kotlin.ByteArray, `publicKeyBytes`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_diffie_hellman_k256( + FfiConverterByteArray.lower(`privateKeyBytes`),FfiConverterByteArray.lower(`publicKeyBytes`),_status) } - -fun `generateInboxId`(`accountAddress`: kotlin.String, `nonce`: kotlin.ULong): kotlin.String { - return FfiConverterString.lift( - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_generate_inbox_id( - FfiConverterString.lower(`accountAddress`), - FfiConverterULong.lower(`nonce`), - _status - ) - } ) + } + + fun `generateInboxId`(`accountAddress`: kotlin.String, `nonce`: kotlin.ULong): kotlin.String { + return FfiConverterString.lift( + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_generate_inbox_id( + FfiConverterString.lower(`accountAddress`),FfiConverterULong.lower(`nonce`),_status) } - - -@Throws(GenericException::class) -fun `generatePrivatePreferencesTopicIdentifier`(`privateKey`: kotlin.ByteArray): kotlin.String { - return FfiConverterString.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_generate_private_preferences_topic_identifier( - FfiConverterByteArray.lower(`privateKey`), _status - ) - } ) -} + } + + @Throws(GenericException::class) fun `generatePrivatePreferencesTopicIdentifier`(`privateKey`: kotlin.ByteArray): kotlin.String { + return FfiConverterString.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_generate_private_preferences_topic_identifier( + FfiConverterByteArray.lower(`privateKey`),_status) +} + ) + } + -@Throws(GenericException::class) -@Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") -suspend fun `getInboxIdForAddress`( - `logger`: FfiLogger, - `host`: kotlin.String, - `isSecure`: kotlin.Boolean, - `accountAddress`: kotlin.String, -): kotlin.String? { - return uniffiRustCallAsync( - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_get_inbox_id_for_address( - FfiConverterTypeFfiLogger.lower( - `logger` - ), - FfiConverterString.lower(`host`), - FfiConverterBoolean.lower(`isSecure`), - FfiConverterString.lower(`accountAddress`), - ), - { future, callback, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer( - future, - callback, - continuation - ) - }, - { future, continuation -> - UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer( - future, - continuation - ) - }, + @Throws(GenericException::class) + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE") + suspend fun `getInboxIdForAddress`(`logger`: FfiLogger, `host`: kotlin.String, `isSecure`: kotlin.Boolean, `accountAddress`: kotlin.String) : kotlin.String? { + return uniffiRustCallAsync( + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_get_inbox_id_for_address(FfiConverterTypeFfiLogger.lower(`logger`),FfiConverterString.lower(`host`),FfiConverterBoolean.lower(`isSecure`),FfiConverterString.lower(`accountAddress`),), + { future, callback, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_poll_rust_buffer(future, callback, continuation) }, + { future, continuation -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_complete_rust_buffer(future, continuation) }, { future -> UniffiLib.INSTANCE.ffi_xmtpv3_rust_future_free_rust_buffer(future) }, // lift function { FfiConverterOptionalString.lift(it) }, // Error FFI converter GenericException.ErrorHandler, ) + } + fun `getVersionInfo`(): kotlin.String { + return FfiConverterString.lift( + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_get_version_info( + _status) } - -fun `getVersionInfo`(): kotlin.String { - return FfiConverterString.lift( - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_get_version_info( - _status - ) - } ) + } + + fun `keccak256`(`input`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_keccak256( + FfiConverterByteArray.lower(`input`),_status) } - -fun `keccak256`(`input`: kotlin.ByteArray): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_keccak256( - FfiConverterByteArray.lower(`input`), _status - ) - } ) -} - + } + -@Throws(GenericException::class) -fun `publicKeyFromPrivateKeyK256`(`privateKeyBytes`: kotlin.ByteArray): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_public_key_from_private_key_k256( - FfiConverterByteArray.lower(`privateKeyBytes`), _status - ) - } - ) + @Throws(GenericException::class) fun `publicKeyFromPrivateKeyK256`(`privateKeyBytes`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_public_key_from_private_key_k256( + FfiConverterByteArray.lower(`privateKeyBytes`),_status) } - - -@Throws(GenericException::class) -fun `recoverAddress`( - `signatureBytes`: kotlin.ByteArray, - `predigestMessage`: kotlin.String, -): kotlin.String { - return FfiConverterString.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_recover_address( - FfiConverterByteArray.lower(`signatureBytes`), - FfiConverterString.lower(`predigestMessage`), - _status - ) - } ) -} - + } + -@Throws(GenericException::class) -fun `recoverPublicKeyK256Keccak256`( - `message`: kotlin.ByteArray, - `signature`: kotlin.ByteArray, -): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_recover_public_key_k256_keccak256( - FfiConverterByteArray.lower(`message`), - FfiConverterByteArray.lower(`signature`), - _status - ) - } - ) + @Throws(GenericException::class) fun `recoverAddress`(`signatureBytes`: kotlin.ByteArray, `predigestMessage`: kotlin.String): kotlin.String { + return FfiConverterString.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_recover_address( + FfiConverterByteArray.lower(`signatureBytes`),FfiConverterString.lower(`predigestMessage`),_status) } - - -@Throws(GenericException::class) -fun `recoverPublicKeyK256Sha256`( - `message`: kotlin.ByteArray, - `signature`: kotlin.ByteArray, -): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_recover_public_key_k256_sha256( - FfiConverterByteArray.lower(`message`), - FfiConverterByteArray.lower(`signature`), - _status - ) - } ) -} + } + -fun `sha256`(`input`: kotlin.ByteArray): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_sha256( - FfiConverterByteArray.lower(`input`), _status - ) - } - ) + @Throws(GenericException::class) fun `recoverPublicKeyK256Keccak256`(`message`: kotlin.ByteArray, `signature`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_recover_public_key_k256_keccak256( + FfiConverterByteArray.lower(`message`),FfiConverterByteArray.lower(`signature`),_status) } - - -@Throws(GenericException::class) -fun `userPreferencesDecrypt`( - `publicKey`: kotlin.ByteArray, - `privateKey`: kotlin.ByteArray, - `message`: kotlin.ByteArray, -): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_user_preferences_decrypt( - FfiConverterByteArray.lower(`publicKey`), - FfiConverterByteArray.lower(`privateKey`), - FfiConverterByteArray.lower(`message`), - _status - ) - } ) -} - + } + -@Throws(GenericException::class) -fun `userPreferencesEncrypt`( - `publicKey`: kotlin.ByteArray, - `privateKey`: kotlin.ByteArray, - `message`: kotlin.ByteArray, -): kotlin.ByteArray { - return FfiConverterByteArray.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_user_preferences_encrypt( - FfiConverterByteArray.lower(`publicKey`), - FfiConverterByteArray.lower(`privateKey`), - FfiConverterByteArray.lower(`message`), - _status - ) - } + @Throws(GenericException::class) fun `recoverPublicKeyK256Sha256`(`message`: kotlin.ByteArray, `signature`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_recover_public_key_k256_sha256( + FfiConverterByteArray.lower(`message`),FfiConverterByteArray.lower(`signature`),_status) +} ) + } + + fun `sha256`(`input`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCall() { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_sha256( + FfiConverterByteArray.lower(`input`),_status) } + ) + } + - -@Throws(GenericException::class) -fun `verifyK256Sha256`( - `signedBy`: kotlin.ByteArray, - `message`: kotlin.ByteArray, - `signature`: kotlin.ByteArray, - `recoveryId`: kotlin.UByte, -): kotlin.Boolean { - return FfiConverterBoolean.lift( - uniffiRustCallWithError(GenericException) { _status -> - UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_verify_k256_sha256( - FfiConverterByteArray.lower(`signedBy`), - FfiConverterByteArray.lower(`message`), - FfiConverterByteArray.lower(`signature`), - FfiConverterUByte.lower(`recoveryId`), - _status - ) - } + @Throws(GenericException::class) fun `userPreferencesDecrypt`(`publicKey`: kotlin.ByteArray, `privateKey`: kotlin.ByteArray, `message`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_user_preferences_decrypt( + FfiConverterByteArray.lower(`publicKey`),FfiConverterByteArray.lower(`privateKey`),FfiConverterByteArray.lower(`message`),_status) +} ) + } + + + @Throws(GenericException::class) fun `userPreferencesEncrypt`(`publicKey`: kotlin.ByteArray, `privateKey`: kotlin.ByteArray, `message`: kotlin.ByteArray): kotlin.ByteArray { + return FfiConverterByteArray.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_user_preferences_encrypt( + FfiConverterByteArray.lower(`publicKey`),FfiConverterByteArray.lower(`privateKey`),FfiConverterByteArray.lower(`message`),_status) } + ) + } + + @Throws(GenericException::class) fun `verifyK256Sha256`(`signedBy`: kotlin.ByteArray, `message`: kotlin.ByteArray, `signature`: kotlin.ByteArray, `recoveryId`: kotlin.UByte): kotlin.Boolean { + return FfiConverterBoolean.lift( + uniffiRustCallWithError(GenericException) { _status -> + UniffiLib.INSTANCE.uniffi_xmtpv3_fn_func_verify_k256_sha256( + FfiConverterByteArray.lower(`signedBy`),FfiConverterByteArray.lower(`message`),FfiConverterByteArray.lower(`signature`),FfiConverterUByte.lower(`recoveryId`),_status) +} + ) + } + diff --git a/library/src/main/jniLibs/arm64-v8a/libuniffi_xmtpv3.so b/library/src/main/jniLibs/arm64-v8a/libuniffi_xmtpv3.so index 0c9e7e68b..04b3c3151 100755 Binary files a/library/src/main/jniLibs/arm64-v8a/libuniffi_xmtpv3.so and b/library/src/main/jniLibs/arm64-v8a/libuniffi_xmtpv3.so differ diff --git a/library/src/main/jniLibs/armeabi-v7a/libuniffi_xmtpv3.so b/library/src/main/jniLibs/armeabi-v7a/libuniffi_xmtpv3.so index 78ef06308..bfa2036bb 100755 Binary files a/library/src/main/jniLibs/armeabi-v7a/libuniffi_xmtpv3.so and b/library/src/main/jniLibs/armeabi-v7a/libuniffi_xmtpv3.so differ diff --git a/library/src/main/jniLibs/x86/libuniffi_xmtpv3.so b/library/src/main/jniLibs/x86/libuniffi_xmtpv3.so index c7c6f07be..fabdcf01c 100755 Binary files a/library/src/main/jniLibs/x86/libuniffi_xmtpv3.so and b/library/src/main/jniLibs/x86/libuniffi_xmtpv3.so differ diff --git a/library/src/main/jniLibs/x86_64/libuniffi_xmtpv3.so b/library/src/main/jniLibs/x86_64/libuniffi_xmtpv3.so index 8e67f1286..fc3a94934 100755 Binary files a/library/src/main/jniLibs/x86_64/libuniffi_xmtpv3.so and b/library/src/main/jniLibs/x86_64/libuniffi_xmtpv3.so differ