diff --git a/packages/android/algokit_transact/app/build.gradle.kts b/packages/android/algokit_transact/app/build.gradle.kts index b70a2deee..c35b652ff 100644 --- a/packages/android/algokit_transact/app/build.gradle.kts +++ b/packages/android/algokit_transact/app/build.gradle.kts @@ -51,8 +51,8 @@ android { } dependencies { - // implementation(project(":transact")) - implementation("com.example.transact:algo-transact-ffi:0.0.1") + implementation(project(":transact")) + // implementation("com.example.transact:algo-transact-ffi:0.0.1") implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) diff --git a/packages/android/algokit_transact/app/src/main/kotlin/com.example.algokit_transact/MainActivity.kt b/packages/android/algokit_transact/app/src/main/kotlin/com.example.algokit_transact/MainActivity.kt index 1acdfd7ff..302c6e6d5 100644 --- a/packages/android/algokit_transact/app/src/main/kotlin/com.example.algokit_transact/MainActivity.kt +++ b/packages/android/algokit_transact/app/src/main/kotlin/com.example.algokit_transact/MainActivity.kt @@ -25,8 +25,8 @@ class MainActivity : ComponentActivity() { color = MaterialTheme.colorScheme.background ) { val address = TransactApi() - .createAddressFromString("YVRRLLVBX54N44WG4EZJWPXXA6RROAU5TLHB4XHCMZFVZBVCB6KSDWDSEQ") - Greeting(address.address) + .getPubKeyFromAddress("YVRRLLVBX54N44WG4EZJWPXXA6RROAU5TLHB4XHCMZFVZBVCB6KSDWDSEQ") + Greeting(address.toString()) } } } @@ -71,4 +71,4 @@ fun GreetingPreview() { HelloWorldTheme { Greeting("Android") } -} \ No newline at end of file +} diff --git a/packages/android/algokit_transact/transact/src/main/kotlin/com/example/transact/TransactApi.kt b/packages/android/algokit_transact/transact/src/main/kotlin/com/example/transact/TransactApi.kt index ed929f724..02246b67c 100644 --- a/packages/android/algokit_transact/transact/src/main/kotlin/com/example/transact/TransactApi.kt +++ b/packages/android/algokit_transact/transact/src/main/kotlin/com/example/transact/TransactApi.kt @@ -1,8 +1,10 @@ package com.example.transact +import android.R.attr.publicKey import android.location.Address import uniffi.algokit_transact_ffi.Transaction import uniffi.algokit_transact_ffi.addressFromPublicKey +import uniffi.algokit_transact_ffi.publicKeyFromAddress class TransactApi { companion object { @@ -15,12 +17,12 @@ class TransactApi { } } - fun createAddressFromPubKey(publicKey: ByteArray): Address { + fun createAddressFromPubKey(publicKey: ByteArray): String { return addressFromPublicKey(publicKey) } - fun createAddressFromString(publicKey: ByteArray): Address { - return addressFromPublicKey(publicKey) + fun getPubKeyFromAddress(address: String): ByteArray { + return publicKeyFromAddress(address) } fun encodeTransaction(transaction: Transaction): ByteArray { diff --git a/packages/android/algokit_transact/transact/src/main/kotlin/uniffi/algokit_transact_ffi/algokit_transact_ffi.kt b/packages/android/algokit_transact/transact/src/main/kotlin/uniffi/algokit_transact_ffi/algokit_transact_ffi.kt index 79226e7d2..456184039 100644 --- a/packages/android/algokit_transact/transact/src/main/kotlin/uniffi/algokit_transact_ffi/algokit_transact_ffi.kt +++ b/packages/android/algokit_transact/transact/src/main/kotlin/uniffi/algokit_transact_ffi/algokit_transact_ffi.kt @@ -17,19 +17,19 @@ package uniffi.algokit_transact_ffi // 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.location.Address +import com.sun.jna.Callback import com.sun.jna.Library -import com.sun.jna.IntegerType import com.sun.jna.Native import com.sun.jna.Pointer import com.sun.jna.Structure -import com.sun.jna.Callback import com.sun.jna.ptr.* import java.nio.ByteBuffer import java.nio.ByteOrder import java.nio.CharBuffer import java.nio.charset.CodingErrorAction -import java.util.concurrent.atomic.AtomicLong import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.atomic.AtomicLong // This is a helper for safely working with byte buffers returned from the Rust code. // A rust-owned buffer is represented by its capacity, its current length, and a @@ -40,49 +40,62 @@ import java.util.concurrent.ConcurrentHashMap */ @Structure.FieldOrder("capacity", "len", "data") 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 len: Long = 0 - @JvmField var data: Pointer? = null - - class ByValue: RustBuffer(), Structure.ByValue - class ByReference: RustBuffer(), Structure.ByReference - - internal fun setValue(other: RustBuffer) { - capacity = other.capacity - len = other.len - data = other.data - } - - companion object { - internal fun alloc(size: ULong = 0UL) = uniffiRustCall() { status -> - // Note: need to convert the size to a `Long` value to make this work with JVM. - UniffiLib.INSTANCE.ffi_algokit_transact_ffi_rustbuffer_alloc(size.toLong(), status) - }.also { - if(it.data == null) { - throw RuntimeException("RustBuffer.alloc() returned null data pointer (size=${size})") - } - } + // 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 - internal fun create(capacity: ULong, len: ULong, data: Pointer?): RustBuffer.ByValue { - var buf = RustBuffer.ByValue() - buf.capacity = capacity.toLong() - buf.len = len.toLong() - buf.data = data - return buf - } + @JvmField var len: Long = 0 + + @JvmField var data: Pointer? = null + + class ByValue : + RustBuffer(), + Structure.ByValue - internal fun free(buf: RustBuffer.ByValue) = uniffiRustCall() { status -> - UniffiLib.INSTANCE.ffi_algokit_transact_ffi_rustbuffer_free(buf, status) + class ByReference : + RustBuffer(), + Structure.ByReference + + internal fun setValue(other: RustBuffer) { + capacity = other.capacity + len = other.len + data = other.data + } + + companion object { + internal fun alloc(size: ULong = 0UL) = + uniffiRustCall { status -> + // Note: need to convert the size to a `Long` value to make this work with JVM. + UniffiLib.INSTANCE.ffi_algokit_transact_ffi_rustbuffer_alloc(size.toLong(), status) + }.also { + 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 { + var buf = RustBuffer.ByValue() + buf.capacity = capacity.toLong() + buf.len = len.toLong() + buf.data = data + return buf } - @Suppress("TooGenericExceptionThrown") - fun asByteBuffer() = - this.data?.getByteBuffer(0, this.len.toLong())?.also { - it.order(ByteOrder.BIG_ENDIAN) - } + internal fun free(buf: RustBuffer.ByValue) = + uniffiRustCall { status -> + UniffiLib.INSTANCE.ffi_algokit_transact_ffi_rustbuffer_free(buf, status) + } + } + + @Suppress("TooGenericExceptionThrown") + fun asByteBuffer() = + this.data?.getByteBuffer(0, this.len.toLong())?.also { + it.order(ByteOrder.BIG_ENDIAN) + } } /** @@ -94,29 +107,29 @@ open class RustBuffer : Structure() { * @suppress */ class RustBufferByReference : ByReference(16) { - /** - * Set the pointed-to `RustBuffer` to the given value. - */ - fun setValue(value: RustBuffer.ByValue) { - // NOTE: The offsets are as they are in the C-like struct. - val pointer = getPointer() - pointer.setLong(0, value.capacity) - pointer.setLong(8, value.len) - pointer.setPointer(16, value.data) - } - - /** - * Get a `RustBuffer.ByValue` from this reference. - */ - fun getValue(): RustBuffer.ByValue { - val pointer = getPointer() - val value = RustBuffer.ByValue() - value.writeField("capacity", pointer.getLong(0)) - value.writeField("len", pointer.getLong(8)) - value.writeField("data", pointer.getLong(16)) - - return value - } + /** + * Set the pointed-to `RustBuffer` to the given value. + */ + fun setValue(value: RustBuffer.ByValue) { + // NOTE: The offsets are as they are in the C-like struct. + val pointer = getPointer() + pointer.setLong(0, value.capacity) + pointer.setLong(8, value.len) + pointer.setPointer(16, value.data) + } + + /** + * Get a `RustBuffer.ByValue` from this reference. + */ + fun getValue(): RustBuffer.ByValue { + val pointer = getPointer() + val value = RustBuffer.ByValue() + value.writeField("capacity", pointer.getLong(0)) + value.writeField("len", pointer.getLong(8)) + value.writeField("data", pointer.getLong(16)) + + return value + } } // This is a helper for safely passing byte references into the rust code. @@ -127,11 +140,15 @@ class RustBufferByReference : ByReference(16) { @Structure.FieldOrder("len", "data") internal open class ForeignBytes : Structure() { - @JvmField var len: Int = 0 - @JvmField var data: Pointer? = null + @JvmField var len: Int = 0 - class ByValue : ForeignBytes(), Structure.ByValue + @JvmField var data: Pointer? = null + + class ByValue : + ForeignBytes(), + Structure.ByValue } + /** * The FfiConverter interface handles converter types to and from the FFI * @@ -141,65 +158,69 @@ internal open class ForeignBytes : Structure() { * @suppress */ public interface FfiConverter { - // Convert an FFI type to a Kotlin type - fun lift(value: FfiType): KotlinType - - // Convert an Kotlin type to an FFI type - fun lower(value: KotlinType): FfiType - - // Read a Kotlin type from a `ByteBuffer` - fun read(buf: ByteBuffer): KotlinType - - // Calculate bytes to allocate when creating a `RustBuffer` - // - // This must return at least as many bytes as the write() function will - // write. It can return more bytes than needed, for example when writing - // Strings we can't know the exact bytes needed until we the UTF-8 - // encoding, so we pessimistically allocate the largest size possible (3 - // bytes per codepoint). Allocating extra bytes is not really a big deal - // because the `RustBuffer` is short-lived. - fun allocationSize(value: KotlinType): ULong - - // Write a Kotlin type to a `ByteBuffer` - fun write(value: KotlinType, buf: ByteBuffer) - - // Lower a value into a `RustBuffer` - // - // This method lowers a value into a `RustBuffer` rather than the normal - // FfiType. It's used by the callback interface code. Callback interface - // returns are always serialized into a `RustBuffer` regardless of their - // normal FFI type. - fun lowerIntoRustBuffer(value: KotlinType): RustBuffer.ByValue { - val rbuf = RustBuffer.alloc(allocationSize(value)) - try { - val bbuf = rbuf.data!!.getByteBuffer(0, rbuf.capacity).also { - it.order(ByteOrder.BIG_ENDIAN) - } - write(value, bbuf) - rbuf.writeField("len", bbuf.position().toLong()) - return rbuf - } catch (e: Throwable) { - RustBuffer.free(rbuf) - throw e - } - } - - // Lift a value from a `RustBuffer`. - // - // This here mostly because of the symmetry with `lowerIntoRustBuffer()`. - // It's currently only used by the `FfiConverterRustBuffer` class below. - 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 - } finally { - RustBuffer.free(rbuf) - } + // Convert an FFI type to a Kotlin type + fun lift(value: FfiType): KotlinType + + // Convert an Kotlin type to an FFI type + fun lower(value: KotlinType): FfiType + + // Read a Kotlin type from a `ByteBuffer` + fun read(buf: ByteBuffer): KotlinType + + // Calculate bytes to allocate when creating a `RustBuffer` + // + // This must return at least as many bytes as the write() function will + // write. It can return more bytes than needed, for example when writing + // Strings we can't know the exact bytes needed until we the UTF-8 + // encoding, so we pessimistically allocate the largest size possible (3 + // bytes per codepoint). Allocating extra bytes is not really a big deal + // because the `RustBuffer` is short-lived. + fun allocationSize(value: KotlinType): ULong + + // Write a Kotlin type to a `ByteBuffer` + fun write( + value: KotlinType, + buf: ByteBuffer, + ) + + // Lower a value into a `RustBuffer` + // + // This method lowers a value into a `RustBuffer` rather than the normal + // FfiType. It's used by the callback interface code. Callback interface + // returns are always serialized into a `RustBuffer` regardless of their + // normal FFI type. + fun lowerIntoRustBuffer(value: KotlinType): RustBuffer.ByValue { + val rbuf = RustBuffer.alloc(allocationSize(value)) + try { + val bbuf = + rbuf.data!!.getByteBuffer(0, rbuf.capacity).also { + it.order(ByteOrder.BIG_ENDIAN) + } + write(value, bbuf) + rbuf.writeField("len", bbuf.position().toLong()) + return rbuf + } catch (e: Throwable) { + RustBuffer.free(rbuf) + throw e + } + } + + // Lift a value from a `RustBuffer`. + // + // This here mostly because of the symmetry with `lowerIntoRustBuffer()`. + // It's currently only used by the `FfiConverterRustBuffer` class below. + 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 + } finally { + RustBuffer.free(rbuf) } + } } /** @@ -207,9 +228,10 @@ public interface FfiConverter { * * @suppress */ -public interface FfiConverterRustBuffer: FfiConverter { - override fun lift(value: RustBuffer.ByValue) = liftFromRustBuffer(value) - override fun lower(value: KotlinType) = lowerIntoRustBuffer(value) +public interface FfiConverterRustBuffer : FfiConverter { + override fun lift(value: RustBuffer.ByValue) = liftFromRustBuffer(value) + + override fun lower(value: KotlinType) = lowerIntoRustBuffer(value) } // A handful of classes and functions to support the generated data structures. // This would be a good candidate for isolating in its own ffi-support lib. @@ -220,34 +242,36 @@ 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 error_buf: RustBuffer.ByValue = RustBuffer.ByValue() + @JvmField var code: Byte = 0 - class ByValue: UniffiRustCallStatus(), Structure.ByValue + @JvmField var error_buf: RustBuffer.ByValue = RustBuffer.ByValue() - fun isSuccess(): Boolean { - return code == UNIFFI_CALL_SUCCESS - } + class ByValue : + UniffiRustCallStatus(), + Structure.ByValue - fun isError(): Boolean { - return code == UNIFFI_CALL_ERROR - } + fun isSuccess(): Boolean = code == UNIFFI_CALL_SUCCESS - fun isPanic(): Boolean { - return code == UNIFFI_CALL_UNEXPECTED_ERROR - } + fun isError(): Boolean = code == UNIFFI_CALL_ERROR - companion object { - fun create(code: Byte, errorBuf: RustBuffer.ByValue): UniffiRustCallStatus.ByValue { - val callStatus = UniffiRustCallStatus.ByValue() - callStatus.code = code - callStatus.error_buf = errorBuf - return callStatus - } + fun isPanic(): Boolean = code == UNIFFI_CALL_UNEXPECTED_ERROR + + companion object { + fun create( + code: Byte, + errorBuf: RustBuffer.ByValue, + ): UniffiRustCallStatus.ByValue { + val callStatus = UniffiRustCallStatus.ByValue() + callStatus.code = code + callStatus.error_buf = errorBuf + return callStatus } + } } -class InternalException(message: String) : kotlin.Exception(message) +class InternalException( + message: String, +) : kotlin.Exception(message) /** * Each top-level error class has a companion object that can lift the error from the call status's rust buffer @@ -255,7 +279,7 @@ class InternalException(message: String) : kotlin.Exception(message) * @suppress */ interface UniffiRustCallStatusErrorHandler { - fun lift(error_buf: RustBuffer.ByValue): E; + fun lift(error_buf: RustBuffer.ByValue): E } // Helpers for calling Rust @@ -263,31 +287,37 @@ 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 { - var status = UniffiRustCallStatus() - val return_value = callback(status) - uniffiCheckCallStatus(errorHandler, status) - return return_value +private inline fun uniffiRustCallWithError( + errorHandler: UniffiRustCallStatusErrorHandler, + callback: (UniffiRustCallStatus) -> U, +): U { + var status = UniffiRustCallStatus() + val return_value = callback(status) + uniffiCheckCallStatus(errorHandler, status) + return return_value } // Check UniffiRustCallStatus and throw an error if the call wasn't successful -private fun uniffiCheckCallStatus(errorHandler: UniffiRustCallStatusErrorHandler, status: UniffiRustCallStatus) { - if (status.isSuccess()) { - return - } else if (status.isError()) { - throw errorHandler.lift(status.error_buf) - } else if (status.isPanic()) { - // when the rust code sees a panic, it tries to construct a rustbuffer - // with the message. but if that code panics, then it just sends back - // an empty buffer. - if (status.error_buf.len > 0) { - throw InternalException(FfiConverterString.lift(status.error_buf)) - } else { - throw InternalException("Rust panic") - } +private fun uniffiCheckCallStatus( + errorHandler: UniffiRustCallStatusErrorHandler, + status: UniffiRustCallStatus, +) { + if (status.isSuccess()) { + return + } else if (status.isError()) { + throw errorHandler.lift(status.error_buf) + } else if (status.isPanic()) { + // when the rust code sees a panic, it tries to construct a rustbuffer + // with the message. but if that code panics, then it just sends back + // an empty buffer. + if (status.error_buf.len > 0) { + throw InternalException(FfiConverterString.lift(status.error_buf)) } else { - throw InternalException("Unknown rust call status: $status.code") + throw InternalException("Rust panic") } + } else { + throw InternalException("Unknown rust call status: $status.code") + } } /** @@ -295,838 +325,977 @@ private fun uniffiCheckCallStatus(errorHandler: UniffiRustC * * @suppress */ -object UniffiNullRustCallStatusErrorHandler: UniffiRustCallStatusErrorHandler { - override fun lift(error_buf: RustBuffer.ByValue): InternalException { - RustBuffer.free(error_buf) - return InternalException("Unexpected CALL_ERROR") - } +object UniffiNullRustCallStatusErrorHandler : UniffiRustCallStatusErrorHandler { + override fun lift(error_buf: RustBuffer.ByValue): InternalException { + RustBuffer.free(error_buf) + return InternalException("Unexpected CALL_ERROR") + } } // Call a rust function that returns a plain value -private inline fun uniffiRustCall(callback: (UniffiRustCallStatus) -> U): U { - return uniffiRustCallWithError(UniffiNullRustCallStatusErrorHandler, callback) -} +private inline fun uniffiRustCall(callback: (UniffiRustCallStatus) -> U): U = + uniffiRustCallWithError(UniffiNullRustCallStatusErrorHandler, callback) -internal inline fun uniffiTraitInterfaceCall( - callStatus: UniffiRustCallStatus, - makeCall: () -> T, - writeReturn: (T) -> Unit, +internal inline fun uniffiTraitInterfaceCall( + callStatus: UniffiRustCallStatus, + makeCall: () -> T, + writeReturn: (T) -> Unit, ) { - try { - writeReturn(makeCall()) - } catch(e: kotlin.Exception) { - callStatus.code = UNIFFI_CALL_UNEXPECTED_ERROR - callStatus.error_buf = FfiConverterString.lower(e.toString()) - } -} - -internal inline fun uniffiTraitInterfaceCallWithError( - callStatus: UniffiRustCallStatus, - makeCall: () -> T, - writeReturn: (T) -> Unit, - lowerError: (E) -> RustBuffer.ByValue + try { + writeReturn(makeCall()) + } catch (e: kotlin.Exception) { + callStatus.code = UNIFFI_CALL_UNEXPECTED_ERROR + callStatus.error_buf = FfiConverterString.lower(e.toString()) + } +} + +internal inline fun uniffiTraitInterfaceCallWithError( + callStatus: UniffiRustCallStatus, + makeCall: () -> T, + writeReturn: (T) -> Unit, + lowerError: (E) -> RustBuffer.ByValue, ) { - try { - writeReturn(makeCall()) - } catch(e: kotlin.Exception) { - if (e is E) { - callStatus.code = UNIFFI_CALL_ERROR - callStatus.error_buf = lowerError(e) - } else { - callStatus.code = UNIFFI_CALL_UNEXPECTED_ERROR - callStatus.error_buf = FfiConverterString.lower(e.toString()) - } + try { + writeReturn(makeCall()) + } catch (e: kotlin.Exception) { + if (e is E) { + callStatus.code = UNIFFI_CALL_ERROR + callStatus.error_buf = lowerError(e) + } else { + callStatus.code = UNIFFI_CALL_UNEXPECTED_ERROR + callStatus.error_buf = FfiConverterString.lower(e.toString()) } + } } + // Map handles to objects // // This is used pass an opaque 64-bit handle representing a foreign object to the Rust code. -internal class UniffiHandleMap { - private val map = ConcurrentHashMap() - private val counter = java.util.concurrent.atomic.AtomicLong(0) +internal class UniffiHandleMap { + private val map = ConcurrentHashMap() + private val counter = + java.util.concurrent.atomic + .AtomicLong(0) - val size: Int - get() = map.size + val size: Int + get() = map.size - // Insert a new object into the handle map and get a handle for it - fun insert(obj: T): Long { - val handle = counter.getAndAdd(1) - map.put(handle, obj) - return handle - } + // Insert a new object into the handle map and get a handle for it + fun insert(obj: T): Long { + val handle = counter.getAndAdd(1) + map.put(handle, obj) + return handle + } - // Get an object from the handle map - fun get(handle: Long): T { - return map.get(handle) ?: throw InternalException("UniffiHandleMap.get: Invalid handle") - } + // Get an object from the handle map + fun get(handle: Long): T = map.get(handle) ?: throw InternalException("UniffiHandleMap.get: Invalid handle") - // Remove an entry from the handlemap and get the Kotlin object back - fun remove(handle: Long): T { - return map.remove(handle) ?: throw InternalException("UniffiHandleMap: Invalid handle") - } + // Remove an entry from the handlemap and get the Kotlin object back + fun remove(handle: Long): T = map.remove(handle) ?: throw InternalException("UniffiHandleMap: Invalid handle") } // Contains loading, initialization code, // and the FFI Function declarations in a com.sun.jna.Library. @Synchronized private fun findLibraryName(componentName: String): String { - val libOverride = System.getProperty("uniffi.component.$componentName.libraryOverride") - if (libOverride != null) { - return libOverride - } - return "algokit_transact_ffi" + val libOverride = System.getProperty("uniffi.component.$componentName.libraryOverride") + if (libOverride != null) { + return libOverride + } + return "algokit_transact_ffi" } -private inline fun loadIndirect( - componentName: String -): Lib { - return Native.load(findLibraryName(componentName), Lib::class.java) -} +private inline fun loadIndirect(componentName: String): Lib = + 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(), - @JvmField internal var `free`: UniffiForeignFutureFree? = null, + @JvmField internal var `handle`: Long = 0.toLong(), + @JvmField internal var `free`: UniffiForeignFutureFree? = null, ) : Structure() { - class UniffiByValue( - `handle`: Long = 0.toLong(), - `free`: UniffiForeignFutureFree? = null, - ): UniffiForeignFuture(`handle`,`free`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFuture) { - `handle` = other.`handle` - `free` = other.`free` - } + class UniffiByValue( + `handle`: Long = 0.toLong(), + `free`: UniffiForeignFutureFree? = null, + ) : UniffiForeignFuture(`handle`, `free`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Byte = 0.toByte(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Byte = 0.toByte(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructU8(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructU8) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Byte = 0.toByte(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructU8(`returnValue`, `callStatus`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Byte = 0.toByte(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Byte = 0.toByte(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructI8(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructI8) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Byte = 0.toByte(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructI8(`returnValue`, `callStatus`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Short = 0.toShort(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Short = 0.toShort(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructU16(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructU16) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Short = 0.toShort(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructU16(`returnValue`, `callStatus`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Short = 0.toShort(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Short = 0.toShort(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructI16(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructI16) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Short = 0.toShort(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructI16(`returnValue`, `callStatus`), + Structure.ByValue + 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, - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Int = 0, + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Int = 0, - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructU32(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructU32) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Int = 0, + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructU32(`returnValue`, `callStatus`), + Structure.ByValue + 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, - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Int = 0, + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Int = 0, - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructI32(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructI32) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Int = 0, + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructI32(`returnValue`, `callStatus`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Long = 0.toLong(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Long = 0.toLong(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructU64(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructU64) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Long = 0.toLong(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructU64(`returnValue`, `callStatus`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Long = 0.toLong(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Long = 0.toLong(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructI64(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructI64) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Long = 0.toLong(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructI64(`returnValue`, `callStatus`), + Structure.ByValue + 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, - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Float = 0.0f, + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Float = 0.0f, - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructF32(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructF32) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Float = 0.0f, + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructF32(`returnValue`, `callStatus`), + Structure.ByValue + 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, - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Double = 0.0, + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Double = 0.0, - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructF64(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructF64) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Double = 0.0, + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructF64(`returnValue`, `callStatus`), + Structure.ByValue + 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, - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: Pointer = Pointer.NULL, + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: Pointer = Pointer.NULL, - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructPointer(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructPointer) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: Pointer = Pointer.NULL, + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructPointer(`returnValue`, `callStatus`), + Structure.ByValue + 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(), - @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + @JvmField internal var `returnValue`: RustBuffer.ByValue = RustBuffer.ByValue(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `returnValue`: RustBuffer.ByValue = RustBuffer.ByValue(), - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructRustBuffer(`returnValue`,`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructRustBuffer) { - `returnValue` = other.`returnValue` - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `returnValue`: RustBuffer.ByValue = RustBuffer.ByValue(), + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructRustBuffer(`returnValue`, `callStatus`), + Structure.ByValue + 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(), + @JvmField internal var `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), ) : Structure() { - class UniffiByValue( - `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), - ): UniffiForeignFutureStructVoid(`callStatus`,), Structure.ByValue - - internal fun uniffiSetValue(other: UniffiForeignFutureStructVoid) { - `callStatus` = other.`callStatus` - } + class UniffiByValue( + `callStatus`: UniffiRustCallStatus.ByValue = UniffiRustCallStatus.ByValue(), + ) : UniffiForeignFutureStructVoid(`callStatus`), + Structure.ByValue + 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, + ) } +// For large crates we prevent `MethodTooLargeException` (see #2340) +// N.B. the name of the extension is very misleading, since it is +// rather `InterfaceTooLargeException`, caused by too many methods +// in the interface for large crates. +// +// By splitting the otherwise huge interface into two parts +// * UniffiLib +// * IntegrityCheckingUniffiLib (this) +// we allow for ~2x as many methods in the UniffiLib interface. +// +// The `ffi_uniffi_contract_version` method and all checksum methods are put +// into `IntegrityCheckingUniffiLib` and these methods are called only once, +// when the library is loaded. +internal interface IntegrityCheckingUniffiLib : Library { + // Integrity check functions only + fun uniffi_algokit_transact_ffi_checksum_func_address_from_multisig_signature(): Short + fun uniffi_algokit_transact_ffi_checksum_func_address_from_public_key(): Short + fun uniffi_algokit_transact_ffi_checksum_func_apply_multisig_subsignature(): Short + fun uniffi_algokit_transact_ffi_checksum_func_assign_fee(): Short + fun uniffi_algokit_transact_ffi_checksum_func_calculate_fee(): Short + fun uniffi_algokit_transact_ffi_checksum_func_decode_signed_transaction(): Short + fun uniffi_algokit_transact_ffi_checksum_func_decode_signed_transactions(): Short + fun uniffi_algokit_transact_ffi_checksum_func_decode_transaction(): Short + fun uniffi_algokit_transact_ffi_checksum_func_decode_transactions(): Short + fun uniffi_algokit_transact_ffi_checksum_func_encode_signed_transaction(): Short + fun uniffi_algokit_transact_ffi_checksum_func_encode_signed_transactions(): Short + fun uniffi_algokit_transact_ffi_checksum_func_encode_transaction(): Short + fun uniffi_algokit_transact_ffi_checksum_func_encode_transaction_raw(): Short + fun uniffi_algokit_transact_ffi_checksum_func_encode_transactions(): Short + fun uniffi_algokit_transact_ffi_checksum_func_estimate_transaction_size(): Short + fun uniffi_algokit_transact_ffi_checksum_func_get_algorand_constant(): Short + fun uniffi_algokit_transact_ffi_checksum_func_get_encoded_transaction_type(): Short + fun uniffi_algokit_transact_ffi_checksum_func_get_transaction_id(): Short + fun uniffi_algokit_transact_ffi_checksum_func_get_transaction_id_raw(): Short + fun uniffi_algokit_transact_ffi_checksum_func_group_transactions(): Short + fun uniffi_algokit_transact_ffi_checksum_func_merge_multisignatures(): Short + fun uniffi_algokit_transact_ffi_checksum_func_new_multisig_signature(): Short + fun uniffi_algokit_transact_ffi_checksum_func_participants_from_multisig_signature(): Short + fun uniffi_algokit_transact_ffi_checksum_func_public_key_from_address(): Short + fun ffi_algokit_transact_ffi_uniffi_contract_version(): Int +} +// 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 { + val componentName = "algokit_transact_ffi" + // For large crates we prevent `MethodTooLargeException` (see #2340) + // N.B. the name of the extension is very misleading, since it is + // rather `InterfaceTooLargeException`, caused by too many methods + // in the interface for large crates. + // + // By splitting the otherwise huge interface into two parts + // * UniffiLib (this) + // * IntegrityCheckingUniffiLib + // And all checksum methods are put into `IntegrityCheckingUniffiLib` + // we allow for ~2x as many methods in the UniffiLib interface. + // + // Thus we first load the library with `loadIndirect` as `IntegrityCheckingUniffiLib` + // so that we can (optionally!) call `uniffiCheckApiChecksums`... + loadIndirect(componentName) + .also { lib: IntegrityCheckingUniffiLib -> + uniffiCheckContractApiVersion(lib) + uniffiCheckApiChecksums(lib) + } + // ... and then we load the library as `UniffiLib` + // N.B. we cannot use `loadIndirect` once and then try to cast it to `UniffiLib` + // => results in `java.lang.ClassCastException: com.sun.proxy.$Proxy cannot be cast to ...` + // error. So we must call `loadIndirect` twice. For crates large enough + // to trigger this issue, the performance impact is negligible, running on + // a macOS M1 machine the `loadIndirect` call takes ~50ms. + val lib = loadIndirect(componentName) + // No need to check the contract version and checksums, since + // we already did that with `IntegrityCheckingUniffiLib` above. + // Loading of library with integrity check done. + lib + } + } + + // FFI functions + fun uniffi_algokit_transact_ffi_fn_func_address_from_multisig_signature( + `multisigSignature`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_address_from_public_key( + `publicKey`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_apply_multisig_subsignature( + `multisigSignature`: RustBuffer.ByValue, + `participant`: RustBuffer.ByValue, + `subsignature`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_assign_fee( + `transaction`: RustBuffer.ByValue, + `feeParams`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_calculate_fee( + `transaction`: RustBuffer.ByValue, + `feeParams`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): Long + + fun uniffi_algokit_transact_ffi_fn_func_decode_signed_transaction( + `encodedSignedTransaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_decode_signed_transactions( + `encodedSignedTransactions`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_decode_transaction( + `encodedTx`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_decode_transactions( + `encodedTxs`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_encode_signed_transaction( + `signedTransaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_encode_signed_transactions( + `signedTransactions`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_encode_transaction( + `transaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_encode_transaction_raw( + `transaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_encode_transactions( + `transactions`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_estimate_transaction_size( + `transaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): Long + + fun uniffi_algokit_transact_ffi_fn_func_get_algorand_constant( + `constant`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): Long + + fun uniffi_algokit_transact_ffi_fn_func_get_encoded_transaction_type( + `encodedTransaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_get_transaction_id( + `transaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_get_transaction_id_raw( + `transaction`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_group_transactions( + `transactions`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_merge_multisignatures( + `multisigSignatureA`: RustBuffer.ByValue, + `multisigSignatureB`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_new_multisig_signature( + `version`: Byte, + `threshold`: Byte, + `participants`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_participants_from_multisig_signature( + `multisigSignature`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun uniffi_algokit_transact_ffi_fn_func_public_key_from_address( + `address`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun ffi_algokit_transact_ffi_rustbuffer_alloc( + `size`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun ffi_algokit_transact_ffi_rustbuffer_from_bytes( + `bytes`: ForeignBytes.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun ffi_algokit_transact_ffi_rustbuffer_free( + `buf`: RustBuffer.ByValue, + uniffi_out_err: UniffiRustCallStatus, + ): Unit + + fun ffi_algokit_transact_ffi_rustbuffer_reserve( + `buf`: RustBuffer.ByValue, + `additional`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + + fun ffi_algokit_transact_ffi_rust_future_poll_u8( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + + fun ffi_algokit_transact_ffi_rust_future_cancel_u8(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_free_u8(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_complete_u8( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Byte + + fun ffi_algokit_transact_ffi_rust_future_poll_i8( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + + fun ffi_algokit_transact_ffi_rust_future_cancel_i8(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_free_i8(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_complete_i8( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Byte + + fun ffi_algokit_transact_ffi_rust_future_poll_u16( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + + fun ffi_algokit_transact_ffi_rust_future_cancel_u16(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_free_u16(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_complete_u16( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Short + fun ffi_algokit_transact_ffi_rust_future_poll_i16( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_i16(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_free_i16(`handle`: Long): Unit + + fun ffi_algokit_transact_ffi_rust_future_complete_i16( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Short + fun ffi_algokit_transact_ffi_rust_future_poll_u32( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_u32(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_u32(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_u32( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Int + fun ffi_algokit_transact_ffi_rust_future_poll_i32( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_i32(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_i32(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_i32( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Int + fun ffi_algokit_transact_ffi_rust_future_poll_u64( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_u64(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_u64(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_u64( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Long + fun ffi_algokit_transact_ffi_rust_future_poll_i64( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_i64(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_i64(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_i64( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Long + fun ffi_algokit_transact_ffi_rust_future_poll_f32( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_f32(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_f32(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_f32( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Float + fun ffi_algokit_transact_ffi_rust_future_poll_f64( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_f64(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_f64(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_f64( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Double + fun ffi_algokit_transact_ffi_rust_future_poll_pointer( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_pointer(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_pointer(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_pointer( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Pointer + fun ffi_algokit_transact_ffi_rust_future_poll_rust_buffer( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_rust_buffer(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_rust_buffer(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_complete_rust_buffer( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): RustBuffer.ByValue + fun ffi_algokit_transact_ffi_rust_future_poll_void( + `handle`: Long, + `callback`: UniffiRustFutureContinuationCallback, + `callbackData`: Long, + ): Unit + fun ffi_algokit_transact_ffi_rust_future_cancel_void(`handle`: Long): Unit + fun ffi_algokit_transact_ffi_rust_future_free_void(`handle`: Long): Unit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// For large crates we prevent `MethodTooLargeException` (see #2340) -// N.B. the name of the extension is very misleading, since it is -// rather `InterfaceTooLargeException`, caused by too many methods -// in the interface for large crates. -// -// By splitting the otherwise huge interface into two parts -// * UniffiLib -// * IntegrityCheckingUniffiLib (this) -// we allow for ~2x as many methods in the UniffiLib interface. -// -// The `ffi_uniffi_contract_version` method and all checksum methods are put -// into `IntegrityCheckingUniffiLib` and these methods are called only once, -// when the library is loaded. -internal interface IntegrityCheckingUniffiLib : Library { - // Integrity check functions only - fun uniffi_algokit_transact_ffi_checksum_func_address_from_multisig_signature( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_address_from_public_key( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_apply_multisig_subsignature( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_assign_fee( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_calculate_fee( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_decode_signed_transaction( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_decode_signed_transactions( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_decode_transaction( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_decode_transactions( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_encode_signed_transaction( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_encode_signed_transactions( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_encode_transaction( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_encode_transaction_raw( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_encode_transactions( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_estimate_transaction_size( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_get_algorand_constant( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_get_encoded_transaction_type( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_get_transaction_id( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_get_transaction_id_raw( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_group_transactions( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_merge_multisignatures( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_new_multisig_signature( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_participants_from_multisig_signature( -): Short -fun uniffi_algokit_transact_ffi_checksum_func_public_key_from_address( -): Short -fun ffi_algokit_transact_ffi_uniffi_contract_version( -): Int - -} - -// 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 { - val componentName = "algokit_transact_ffi" - // For large crates we prevent `MethodTooLargeException` (see #2340) - // N.B. the name of the extension is very misleading, since it is - // rather `InterfaceTooLargeException`, caused by too many methods - // in the interface for large crates. - // - // By splitting the otherwise huge interface into two parts - // * UniffiLib (this) - // * IntegrityCheckingUniffiLib - // And all checksum methods are put into `IntegrityCheckingUniffiLib` - // we allow for ~2x as many methods in the UniffiLib interface. - // - // Thus we first load the library with `loadIndirect` as `IntegrityCheckingUniffiLib` - // so that we can (optionally!) call `uniffiCheckApiChecksums`... - loadIndirect(componentName) - .also { lib: IntegrityCheckingUniffiLib -> - uniffiCheckContractApiVersion(lib) - uniffiCheckApiChecksums(lib) - } - // ... and then we load the library as `UniffiLib` - // N.B. we cannot use `loadIndirect` once and then try to cast it to `UniffiLib` - // => results in `java.lang.ClassCastException: com.sun.proxy.$Proxy cannot be cast to ...` - // error. So we must call `loadIndirect` twice. For crates large enough - // to trigger this issue, the performance impact is negligible, running on - // a macOS M1 machine the `loadIndirect` call takes ~50ms. - val lib = loadIndirect(componentName) - // No need to check the contract version and checksums, since - // we already did that with `IntegrityCheckingUniffiLib` above. - // Loading of library with integrity check done. - lib - } - - } - - // FFI functions - fun uniffi_algokit_transact_ffi_fn_func_address_from_multisig_signature(`multisigSignature`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_address_from_public_key(`publicKey`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_apply_multisig_subsignature(`multisigSignature`: RustBuffer.ByValue,`participant`: RustBuffer.ByValue,`subsignature`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_assign_fee(`transaction`: RustBuffer.ByValue,`feeParams`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_calculate_fee(`transaction`: RustBuffer.ByValue,`feeParams`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): Long -fun uniffi_algokit_transact_ffi_fn_func_decode_signed_transaction(`encodedSignedTransaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_decode_signed_transactions(`encodedSignedTransactions`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_decode_transaction(`encodedTx`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_decode_transactions(`encodedTxs`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_encode_signed_transaction(`signedTransaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_encode_signed_transactions(`signedTransactions`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_encode_transaction(`transaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_encode_transaction_raw(`transaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_encode_transactions(`transactions`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_estimate_transaction_size(`transaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): Long -fun uniffi_algokit_transact_ffi_fn_func_get_algorand_constant(`constant`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): Long -fun uniffi_algokit_transact_ffi_fn_func_get_encoded_transaction_type(`encodedTransaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_get_transaction_id(`transaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_get_transaction_id_raw(`transaction`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_group_transactions(`transactions`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_merge_multisignatures(`multisigSignatureA`: RustBuffer.ByValue,`multisigSignatureB`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_new_multisig_signature(`version`: Byte,`threshold`: Byte,`participants`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_participants_from_multisig_signature(`multisigSignature`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun uniffi_algokit_transact_ffi_fn_func_public_key_from_address(`address`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun ffi_algokit_transact_ffi_rustbuffer_alloc(`size`: Long,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun ffi_algokit_transact_ffi_rustbuffer_from_bytes(`bytes`: ForeignBytes.ByValue,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun ffi_algokit_transact_ffi_rustbuffer_free(`buf`: RustBuffer.ByValue,uniffi_out_err: UniffiRustCallStatus, -): Unit -fun ffi_algokit_transact_ffi_rustbuffer_reserve(`buf`: RustBuffer.ByValue,`additional`: Long,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun ffi_algokit_transact_ffi_rust_future_poll_u8(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_u8(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_u8(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_u8(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Byte -fun ffi_algokit_transact_ffi_rust_future_poll_i8(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_i8(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_i8(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_i8(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Byte -fun ffi_algokit_transact_ffi_rust_future_poll_u16(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_u16(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_u16(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_u16(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Short -fun ffi_algokit_transact_ffi_rust_future_poll_i16(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_i16(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_i16(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_i16(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Short -fun ffi_algokit_transact_ffi_rust_future_poll_u32(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_u32(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_u32(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_u32(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Int -fun ffi_algokit_transact_ffi_rust_future_poll_i32(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_i32(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_i32(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_i32(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Int -fun ffi_algokit_transact_ffi_rust_future_poll_u64(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_u64(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_u64(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_u64(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Long -fun ffi_algokit_transact_ffi_rust_future_poll_i64(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_i64(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_i64(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_i64(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Long -fun ffi_algokit_transact_ffi_rust_future_poll_f32(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_f32(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_f32(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_f32(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Float -fun ffi_algokit_transact_ffi_rust_future_poll_f64(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_f64(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_f64(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_f64(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Double -fun ffi_algokit_transact_ffi_rust_future_poll_pointer(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_pointer(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_pointer(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_pointer(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Pointer -fun ffi_algokit_transact_ffi_rust_future_poll_rust_buffer(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_rust_buffer(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_rust_buffer(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_rust_buffer(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): RustBuffer.ByValue -fun ffi_algokit_transact_ffi_rust_future_poll_void(`handle`: Long,`callback`: UniffiRustFutureContinuationCallback,`callbackData`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_cancel_void(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_free_void(`handle`: Long, -): Unit -fun ffi_algokit_transact_ffi_rust_future_complete_void(`handle`: Long,uniffi_out_err: UniffiRustCallStatus, -): Unit - + fun ffi_algokit_transact_ffi_rust_future_complete_void( + `handle`: Long, + uniffi_out_err: UniffiRustCallStatus, + ): Unit } private fun uniffiCheckContractApiVersion(lib: IntegrityCheckingUniffiLib) { - // Get the bindings contract version from our ComponentInterface - val bindings_contract_version = 29 - // Get the scaffolding contract version by calling the into the dylib - val scaffolding_contract_version = lib.ffi_algokit_transact_ffi_uniffi_contract_version() - if (bindings_contract_version != scaffolding_contract_version) { - throw RuntimeException("UniFFI contract version mismatch: try cleaning and rebuilding your project") - } + // Get the bindings contract version from our ComponentInterface + val bindings_contract_version = 29 + // Get the scaffolding contract version by calling the into the dylib + val scaffolding_contract_version = lib.ffi_algokit_transact_ffi_uniffi_contract_version() + if (bindings_contract_version != scaffolding_contract_version) { + throw RuntimeException("UniFFI contract version mismatch: try cleaning and rebuilding your project") + } } + @Suppress("UNUSED_PARAMETER") private fun uniffiCheckApiChecksums(lib: IntegrityCheckingUniffiLib) { - if (lib.uniffi_algokit_transact_ffi_checksum_func_address_from_multisig_signature() != 51026.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_address_from_public_key() != 10716.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_apply_multisig_subsignature() != 42634.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_assign_fee() != 35003.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_calculate_fee() != 7537.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_signed_transaction() != 43569.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_signed_transactions() != 62888.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_transaction() != 56405.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_transactions() != 26956.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_signed_transaction() != 47064.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_signed_transactions() != 1956.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_transaction() != 11275.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_transaction_raw() != 384.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_transactions() != 59611.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_estimate_transaction_size() != 60858.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_get_algorand_constant() != 49400.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_get_encoded_transaction_type() != 42551.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_get_transaction_id() != 10957.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_get_transaction_id_raw() != 48975.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_group_transactions() != 18193.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_merge_multisignatures() != 58688.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_new_multisig_signature() != 29314.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_participants_from_multisig_signature() != 25095.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } - if (lib.uniffi_algokit_transact_ffi_checksum_func_public_key_from_address() != 58152.toShort()) { - throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") - } + if (lib.uniffi_algokit_transact_ffi_checksum_func_address_from_multisig_signature() != 51026.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_address_from_public_key() != 10716.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_apply_multisig_subsignature() != 42634.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_assign_fee() != 35003.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_calculate_fee() != 7537.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_signed_transaction() != 43569.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_signed_transactions() != 62888.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_transaction() != 56405.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_decode_transactions() != 26956.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_signed_transaction() != 47064.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_signed_transactions() != 1956.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_transaction() != 11275.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_transaction_raw() != 384.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_encode_transactions() != 59611.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_estimate_transaction_size() != 60858.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_get_algorand_constant() != 49400.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_get_encoded_transaction_type() != 42551.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_get_transaction_id() != 10957.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_get_transaction_id_raw() != 48975.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_group_transactions() != 18193.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_merge_multisignatures() != 58688.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_new_multisig_signature() != 29314.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_participants_from_multisig_signature() != 25095.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } + if (lib.uniffi_algokit_transact_ffi_checksum_func_public_key_from_address() != 58152.toShort()) { + throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } } /** * @suppress */ public fun uniffiEnsureInitialized() { - UniffiLib.INSTANCE + UniffiLib.INSTANCE } // Async support // Public interface members begin here. - // Interface implemented by anything that can contain an object reference. // // Such types expose a `destroy()` method that must be called to cleanly @@ -1136,56 +1305,57 @@ public fun uniffiEnsureInitialized() { // The easiest way to ensure this method is called is to use the `.use` // helper method to execute a block and destroy the object at the end. interface Disposable { - fun destroy() - companion object { - fun destroy(vararg args: Any?) { - for (arg in args) { - when (arg) { - is Disposable -> arg.destroy() - is ArrayList<*> -> { - for (idx in arg.indices) { - val element = arg[idx] - if (element is Disposable) { - element.destroy() - } - } - } - is Map<*, *> -> { - for (element in arg.values) { - if (element is Disposable) { - element.destroy() - } - } - } - is Iterable<*> -> { - for (element in arg) { - if (element is Disposable) { - element.destroy() - } - } - } - } + fun destroy() + + companion object { + fun destroy(vararg args: Any?) { + for (arg in args) { + when (arg) { + is Disposable -> arg.destroy() + is ArrayList<*> -> { + for (idx in arg.indices) { + val element = arg[idx] + if (element is Disposable) { + element.destroy() + } } + } + is Map<*, *> -> { + for (element in arg.values) { + if (element is Disposable) { + element.destroy() + } + } + } + is Iterable<*> -> { + for (element in arg) { + if (element is Disposable) { + element.destroy() + } + } + } } + } } + } } /** * @suppress */ inline fun T.use(block: (T) -> R) = + try { + block(this) + } finally { try { - block(this) - } finally { - try { - // N.B. our implementation is on the nullable type `Disposable?`. - this?.destroy() - } catch (e: Throwable) { - // swallow - } + // N.B. our implementation is on the nullable type `Disposable?`. + this?.destroy() + } catch (e: Throwable) { + // swallow } + } -/** +/** * Used to instantiate an interface without an actual pointer, for fakes in tests, mostly. * * @suppress @@ -1195,172 +1365,164 @@ object NoPointer /** * @suppress */ -public object FfiConverterUByte: FfiConverter { - override fun lift(value: Byte): UByte { - return value.toUByte() - } +public object FfiConverterUByte : FfiConverter { + override fun lift(value: Byte): UByte = value.toUByte() - override fun read(buf: ByteBuffer): UByte { - return lift(buf.get()) - } + override fun read(buf: ByteBuffer): UByte = lift(buf.get()) - override fun lower(value: UByte): Byte { - return value.toByte() - } + override fun lower(value: UByte): Byte = value.toByte() - override fun allocationSize(value: UByte) = 1UL + override fun allocationSize(value: UByte) = 1UL - override fun write(value: UByte, buf: ByteBuffer) { - buf.put(value.toByte()) - } + override fun write( + value: UByte, + buf: ByteBuffer, + ) { + buf.put(value.toByte()) + } } /** * @suppress */ -public object FfiConverterUInt: FfiConverter { - override fun lift(value: Int): UInt { - return value.toUInt() - } +public object FfiConverterUInt : FfiConverter { + override fun lift(value: Int): UInt = value.toUInt() - override fun read(buf: ByteBuffer): UInt { - return lift(buf.getInt()) - } + override fun read(buf: ByteBuffer): UInt = lift(buf.getInt()) - override fun lower(value: UInt): Int { - return value.toInt() - } + override fun lower(value: UInt): Int = value.toInt() - override fun allocationSize(value: UInt) = 4UL + override fun allocationSize(value: UInt) = 4UL - override fun write(value: UInt, buf: ByteBuffer) { - buf.putInt(value.toInt()) - } + override fun write( + value: UInt, + buf: ByteBuffer, + ) { + buf.putInt(value.toInt()) + } } /** * @suppress */ -public object FfiConverterULong: FfiConverter { - override fun lift(value: Long): ULong { - return value.toULong() - } +public object FfiConverterULong : FfiConverter { + override fun lift(value: Long): ULong = value.toULong() - override fun read(buf: ByteBuffer): ULong { - return lift(buf.getLong()) - } + override fun read(buf: ByteBuffer): ULong = lift(buf.getLong()) - override fun lower(value: ULong): Long { - return value.toLong() - } + override fun lower(value: ULong): Long = value.toLong() - override fun allocationSize(value: ULong) = 8UL + override fun allocationSize(value: ULong) = 8UL - override fun write(value: ULong, buf: ByteBuffer) { - buf.putLong(value.toLong()) - } + override fun write( + value: ULong, + buf: ByteBuffer, + ) { + buf.putLong(value.toLong()) + } } /** * @suppress */ -public object FfiConverterBoolean: FfiConverter { - override fun lift(value: Byte): Boolean { - return value.toInt() != 0 - } +public object FfiConverterBoolean : FfiConverter { + override fun lift(value: Byte): Boolean = value.toInt() != 0 - override fun read(buf: ByteBuffer): Boolean { - return lift(buf.get()) - } + override fun read(buf: ByteBuffer): Boolean = lift(buf.get()) - override fun lower(value: Boolean): Byte { - return if (value) 1.toByte() else 0.toByte() - } + override fun lower(value: Boolean): Byte = if (value) 1.toByte() else 0.toByte() - override fun allocationSize(value: Boolean) = 1UL + override fun allocationSize(value: Boolean) = 1UL - override fun write(value: Boolean, buf: ByteBuffer) { - buf.put(lower(value)) - } + override fun write( + value: Boolean, + buf: ByteBuffer, + ) { + buf.put(lower(value)) + } } /** * @suppress */ -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. - override fun lift(value: RustBuffer.ByValue): String { - try { - val byteArr = ByteArray(value.len.toInt()) - value.asByteBuffer()!!.get(byteArr) - return byteArr.toString(Charsets.UTF_8) - } finally { - RustBuffer.free(value) - } - } - - override fun read(buf: ByteBuffer): String { - val len = buf.getInt() - val byteArr = ByteArray(len) - buf.get(byteArr) - return byteArr.toString(Charsets.UTF_8) - } - - fun toUtf8(value: String): ByteBuffer { - // Make sure we don't have invalid UTF-16, check for lone surrogates. - return Charsets.UTF_8.newEncoder().run { - onMalformedInput(CodingErrorAction.REPORT) - encode(CharBuffer.wrap(value)) - } - } - - override fun lower(value: String): RustBuffer.ByValue { - val byteBuf = toUtf8(value) - // Ideally we'd pass these bytes to `ffi_bytebuffer_from_bytes`, but doing so would require us - // to copy them into a JNA `Memory`. So we might as well directly copy them into a `RustBuffer`. - val rbuf = RustBuffer.alloc(byteBuf.limit().toULong()) - rbuf.asByteBuffer()!!.put(byteBuf) - return rbuf - } - - // We aren't sure exactly how many bytes our string will be once it's UTF-8 - // encoded. Allocate 3 bytes per UTF-16 code unit which will always be - // enough. - override fun allocationSize(value: String): ULong { - val sizeForLength = 4UL - val sizeForString = value.length.toULong() * 3UL - return sizeForLength + sizeForString - } - - override fun write(value: String, buf: ByteBuffer) { - val byteBuf = toUtf8(value) - buf.putInt(byteBuf.limit()) - buf.put(byteBuf) - } +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. + override fun lift(value: RustBuffer.ByValue): String { + try { + val byteArr = ByteArray(value.len.toInt()) + value.asByteBuffer()!!.get(byteArr) + return byteArr.toString(Charsets.UTF_8) + } finally { + RustBuffer.free(value) + } + } + + override fun read(buf: ByteBuffer): String { + val len = buf.getInt() + val byteArr = ByteArray(len) + buf.get(byteArr) + return byteArr.toString(Charsets.UTF_8) + } + + fun toUtf8(value: String): ByteBuffer { + // Make sure we don't have invalid UTF-16, check for lone surrogates. + return Charsets.UTF_8.newEncoder().run { + onMalformedInput(CodingErrorAction.REPORT) + encode(CharBuffer.wrap(value)) + } + } + + override fun lower(value: String): RustBuffer.ByValue { + val byteBuf = toUtf8(value) + // Ideally we'd pass these bytes to `ffi_bytebuffer_from_bytes`, but doing so would require us + // to copy them into a JNA `Memory`. So we might as well directly copy them into a `RustBuffer`. + val rbuf = RustBuffer.alloc(byteBuf.limit().toULong()) + rbuf.asByteBuffer()!!.put(byteBuf) + return rbuf + } + + // We aren't sure exactly how many bytes our string will be once it's UTF-8 + // encoded. Allocate 3 bytes per UTF-16 code unit which will always be + // enough. + override fun allocationSize(value: String): ULong { + val sizeForLength = 4UL + val sizeForString = value.length.toULong() * 3UL + return sizeForLength + sizeForString + } + + override fun write( + value: String, + buf: ByteBuffer, + ) { + val byteBuf = toUtf8(value) + buf.putInt(byteBuf.limit()) + buf.put(byteBuf) + } } /** * @suppress */ -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) - } -} +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 = 4UL + value.size.toULong() + override fun write( + value: ByteArray, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + buf.put(value) + } +} /** * Represents an app call transaction that interacts with Algorand Smart Contracts. @@ -1368,141 +1530,141 @@ public object FfiConverterByteArray: FfiConverterRustBuffer { * App call transactions are used to create, update, delete, opt-in to, * close out of, or clear state from Algorand applications (smart contracts). */ -data class AppCallTransactionFields ( - /** - * ID of the app being called. - * - * Set this to 0 to indicate an app creation call. - */ - var `appId`: kotlin.ULong, - /** - * Defines what additional actions occur with the transaction. - */ - var `onComplete`: OnApplicationComplete, - /** - * Logic executed for every app call transaction, except when - * on-completion is set to "clear". - * - * Approval programs may reject the transaction. - * Only required for app creation and update transactions. - */ - var `approvalProgram`: kotlin.ByteArray? = null, - /** - * Logic executed for app call transactions with on-completion set to "clear". - * - * Clear state programs cannot reject the transaction. - * Only required for app creation and update transactions. - */ - var `clearStateProgram`: kotlin.ByteArray? = null, - /** - * Holds the maximum number of global state values. - * - * Only required for app creation transactions. - * This cannot be changed after creation. - */ - var `globalStateSchema`: StateSchema? = null, - /** - * Holds the maximum number of local state values. - * - * Only required for app creation transactions. - * This cannot be changed after creation. - */ - var `localStateSchema`: StateSchema? = null, - /** - * Number of additional pages allocated to the app's approval - * and clear state programs. - * - * Each extra program page is 2048 bytes. The sum of approval program - * and clear state program may not exceed 2048*(1+extra_program_pages) bytes. - * Currently, the maximum value is 3. - * This cannot be changed after creation. - */ - var `extraProgramPages`: kotlin.UInt? = null, - /** - * Transaction specific arguments available in the app's - * approval program and clear state program. - */ - var `args`: List? = null, - /** - * List of accounts in addition to the sender that may be accessed - * from the app's approval program and clear state program. - */ - var `accountReferences`: List? = null, - /** - * List of apps in addition to the current app that may be called - * from the app's approval program and clear state program. - */ - var `appReferences`: List? = null, - /** - * Lists the assets whose parameters may be accessed by this app's - * approval program and clear state program. - * - * The access is read-only. - */ - var `assetReferences`: List? = null, - /** - * The boxes that should be made available for the runtime of the program. - */ - var `boxReferences`: List? = null +data class AppCallTransactionFields( + /** + * ID of the app being called. + * + * Set this to 0 to indicate an app creation call. + */ + var `appId`: kotlin.ULong, + /** + * Defines what additional actions occur with the transaction. + */ + var `onComplete`: OnApplicationComplete, + /** + * Logic executed for every app call transaction, except when + * on-completion is set to "clear". + * + * Approval programs may reject the transaction. + * Only required for app creation and update transactions. + */ + var `approvalProgram`: kotlin.ByteArray? = null, + /** + * Logic executed for app call transactions with on-completion set to "clear". + * + * Clear state programs cannot reject the transaction. + * Only required for app creation and update transactions. + */ + var `clearStateProgram`: kotlin.ByteArray? = null, + /** + * Holds the maximum number of global state values. + * + * Only required for app creation transactions. + * This cannot be changed after creation. + */ + var `globalStateSchema`: StateSchema? = null, + /** + * Holds the maximum number of local state values. + * + * Only required for app creation transactions. + * This cannot be changed after creation. + */ + var `localStateSchema`: StateSchema? = null, + /** + * Number of additional pages allocated to the app's approval + * and clear state programs. + * + * Each extra program page is 2048 bytes. The sum of approval program + * and clear state program may not exceed 2048*(1+extra_program_pages) bytes. + * Currently, the maximum value is 3. + * This cannot be changed after creation. + */ + var `extraProgramPages`: kotlin.UInt? = null, + /** + * Transaction specific arguments available in the app's + * approval program and clear state program. + */ + var `args`: List? = null, + /** + * List of accounts in addition to the sender that may be accessed + * from the app's approval program and clear state program. + */ + var `accountReferences`: List? = null, + /** + * List of apps in addition to the current app that may be called + * from the app's approval program and clear state program. + */ + var `appReferences`: List? = null, + /** + * Lists the assets whose parameters may be accessed by this app's + * approval program and clear state program. + * + * The access is read-only. + */ + var `assetReferences`: List? = null, + /** + * The boxes that should be made available for the runtime of the program. + */ + var `boxReferences`: List? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeAppCallTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AppCallTransactionFields { - return AppCallTransactionFields( - FfiConverterULong.read(buf), - FfiConverterTypeOnApplicationComplete.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalTypeStateSchema.read(buf), - FfiConverterOptionalTypeStateSchema.read(buf), - FfiConverterOptionalUInt.read(buf), - FfiConverterOptionalSequenceByteArray.read(buf), - FfiConverterOptionalSequenceString.read(buf), - FfiConverterOptionalSequenceULong.read(buf), - FfiConverterOptionalSequenceULong.read(buf), - FfiConverterOptionalSequenceTypeBoxReference.read(buf), - ) - } +public object FfiConverterTypeAppCallTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AppCallTransactionFields = + AppCallTransactionFields( + FfiConverterULong.read(buf), + FfiConverterTypeOnApplicationComplete.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalTypeStateSchema.read(buf), + FfiConverterOptionalTypeStateSchema.read(buf), + FfiConverterOptionalUInt.read(buf), + FfiConverterOptionalSequenceByteArray.read(buf), + FfiConverterOptionalSequenceString.read(buf), + FfiConverterOptionalSequenceULong.read(buf), + FfiConverterOptionalSequenceULong.read(buf), + FfiConverterOptionalSequenceTypeBoxReference.read(buf), + ) - override fun allocationSize(value: AppCallTransactionFields) = ( - FfiConverterULong.allocationSize(value.`appId`) + - FfiConverterTypeOnApplicationComplete.allocationSize(value.`onComplete`) + - FfiConverterOptionalByteArray.allocationSize(value.`approvalProgram`) + - FfiConverterOptionalByteArray.allocationSize(value.`clearStateProgram`) + - FfiConverterOptionalTypeStateSchema.allocationSize(value.`globalStateSchema`) + - FfiConverterOptionalTypeStateSchema.allocationSize(value.`localStateSchema`) + - FfiConverterOptionalUInt.allocationSize(value.`extraProgramPages`) + - FfiConverterOptionalSequenceByteArray.allocationSize(value.`args`) + - FfiConverterOptionalSequenceString.allocationSize(value.`accountReferences`) + - FfiConverterOptionalSequenceULong.allocationSize(value.`appReferences`) + - FfiConverterOptionalSequenceULong.allocationSize(value.`assetReferences`) + - FfiConverterOptionalSequenceTypeBoxReference.allocationSize(value.`boxReferences`) + override fun allocationSize(value: AppCallTransactionFields) = + ( + FfiConverterULong.allocationSize(value.`appId`) + + FfiConverterTypeOnApplicationComplete.allocationSize(value.`onComplete`) + + FfiConverterOptionalByteArray.allocationSize(value.`approvalProgram`) + + FfiConverterOptionalByteArray.allocationSize(value.`clearStateProgram`) + + FfiConverterOptionalTypeStateSchema.allocationSize(value.`globalStateSchema`) + + FfiConverterOptionalTypeStateSchema.allocationSize(value.`localStateSchema`) + + FfiConverterOptionalUInt.allocationSize(value.`extraProgramPages`) + + FfiConverterOptionalSequenceByteArray.allocationSize(value.`args`) + + FfiConverterOptionalSequenceString.allocationSize(value.`accountReferences`) + + FfiConverterOptionalSequenceULong.allocationSize(value.`appReferences`) + + FfiConverterOptionalSequenceULong.allocationSize(value.`assetReferences`) + + FfiConverterOptionalSequenceTypeBoxReference.allocationSize(value.`boxReferences`) ) - override fun write(value: AppCallTransactionFields, buf: ByteBuffer) { - FfiConverterULong.write(value.`appId`, buf) - FfiConverterTypeOnApplicationComplete.write(value.`onComplete`, buf) - FfiConverterOptionalByteArray.write(value.`approvalProgram`, buf) - FfiConverterOptionalByteArray.write(value.`clearStateProgram`, buf) - FfiConverterOptionalTypeStateSchema.write(value.`globalStateSchema`, buf) - FfiConverterOptionalTypeStateSchema.write(value.`localStateSchema`, buf) - FfiConverterOptionalUInt.write(value.`extraProgramPages`, buf) - FfiConverterOptionalSequenceByteArray.write(value.`args`, buf) - FfiConverterOptionalSequenceString.write(value.`accountReferences`, buf) - FfiConverterOptionalSequenceULong.write(value.`appReferences`, buf) - FfiConverterOptionalSequenceULong.write(value.`assetReferences`, buf) - FfiConverterOptionalSequenceTypeBoxReference.write(value.`boxReferences`, buf) - } + override fun write( + value: AppCallTransactionFields, + buf: ByteBuffer, + ) { + FfiConverterULong.write(value.`appId`, buf) + FfiConverterTypeOnApplicationComplete.write(value.`onComplete`, buf) + FfiConverterOptionalByteArray.write(value.`approvalProgram`, buf) + FfiConverterOptionalByteArray.write(value.`clearStateProgram`, buf) + FfiConverterOptionalTypeStateSchema.write(value.`globalStateSchema`, buf) + FfiConverterOptionalTypeStateSchema.write(value.`localStateSchema`, buf) + FfiConverterOptionalUInt.write(value.`extraProgramPages`, buf) + FfiConverterOptionalSequenceByteArray.write(value.`args`, buf) + FfiConverterOptionalSequenceString.write(value.`accountReferences`, buf) + FfiConverterOptionalSequenceULong.write(value.`appReferences`, buf) + FfiConverterOptionalSequenceULong.write(value.`assetReferences`, buf) + FfiConverterOptionalSequenceTypeBoxReference.write(value.`boxReferences`, buf) + } } - - /** * Parameters to define an asset config transaction. * @@ -1514,975 +1676,973 @@ public object FfiConverterTypeAppCallTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AssetConfigTransactionFields { - return AssetConfigTransactionFields( - FfiConverterULong.read(buf), - FfiConverterOptionalULong.read(buf), - FfiConverterOptionalUInt.read(buf), - FfiConverterOptionalBoolean.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalString.read(buf), - ) - } +public object FfiConverterTypeAssetConfigTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AssetConfigTransactionFields = + AssetConfigTransactionFields( + FfiConverterULong.read(buf), + FfiConverterOptionalULong.read(buf), + FfiConverterOptionalUInt.read(buf), + FfiConverterOptionalBoolean.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalString.read(buf), + ) - override fun allocationSize(value: AssetConfigTransactionFields) = ( - FfiConverterULong.allocationSize(value.`assetId`) + - FfiConverterOptionalULong.allocationSize(value.`total`) + - FfiConverterOptionalUInt.allocationSize(value.`decimals`) + - FfiConverterOptionalBoolean.allocationSize(value.`defaultFrozen`) + - FfiConverterOptionalString.allocationSize(value.`assetName`) + - FfiConverterOptionalString.allocationSize(value.`unitName`) + - FfiConverterOptionalString.allocationSize(value.`url`) + - FfiConverterOptionalByteArray.allocationSize(value.`metadataHash`) + - FfiConverterOptionalString.allocationSize(value.`manager`) + - FfiConverterOptionalString.allocationSize(value.`reserve`) + - FfiConverterOptionalString.allocationSize(value.`freeze`) + - FfiConverterOptionalString.allocationSize(value.`clawback`) + override fun allocationSize(value: AssetConfigTransactionFields) = + ( + FfiConverterULong.allocationSize(value.`assetId`) + + FfiConverterOptionalULong.allocationSize(value.`total`) + + FfiConverterOptionalUInt.allocationSize(value.`decimals`) + + FfiConverterOptionalBoolean.allocationSize(value.`defaultFrozen`) + + FfiConverterOptionalString.allocationSize(value.`assetName`) + + FfiConverterOptionalString.allocationSize(value.`unitName`) + + FfiConverterOptionalString.allocationSize(value.`url`) + + FfiConverterOptionalByteArray.allocationSize(value.`metadataHash`) + + FfiConverterOptionalString.allocationSize(value.`manager`) + + FfiConverterOptionalString.allocationSize(value.`reserve`) + + FfiConverterOptionalString.allocationSize(value.`freeze`) + + FfiConverterOptionalString.allocationSize(value.`clawback`) ) - override fun write(value: AssetConfigTransactionFields, buf: ByteBuffer) { - FfiConverterULong.write(value.`assetId`, buf) - FfiConverterOptionalULong.write(value.`total`, buf) - FfiConverterOptionalUInt.write(value.`decimals`, buf) - FfiConverterOptionalBoolean.write(value.`defaultFrozen`, buf) - FfiConverterOptionalString.write(value.`assetName`, buf) - FfiConverterOptionalString.write(value.`unitName`, buf) - FfiConverterOptionalString.write(value.`url`, buf) - FfiConverterOptionalByteArray.write(value.`metadataHash`, buf) - FfiConverterOptionalString.write(value.`manager`, buf) - FfiConverterOptionalString.write(value.`reserve`, buf) - FfiConverterOptionalString.write(value.`freeze`, buf) - FfiConverterOptionalString.write(value.`clawback`, buf) - } + override fun write( + value: AssetConfigTransactionFields, + buf: ByteBuffer, + ) { + FfiConverterULong.write(value.`assetId`, buf) + FfiConverterOptionalULong.write(value.`total`, buf) + FfiConverterOptionalUInt.write(value.`decimals`, buf) + FfiConverterOptionalBoolean.write(value.`defaultFrozen`, buf) + FfiConverterOptionalString.write(value.`assetName`, buf) + FfiConverterOptionalString.write(value.`unitName`, buf) + FfiConverterOptionalString.write(value.`url`, buf) + FfiConverterOptionalByteArray.write(value.`metadataHash`, buf) + FfiConverterOptionalString.write(value.`manager`, buf) + FfiConverterOptionalString.write(value.`reserve`, buf) + FfiConverterOptionalString.write(value.`freeze`, buf) + FfiConverterOptionalString.write(value.`clawback`, buf) + } } - - /** * Represents an asset freeze transaction that freezes or unfreezes asset holdings. * * Asset freeze transactions are used by the asset freeze account to control * whether a specific account can transfer a particular asset. */ -data class AssetFreezeTransactionFields ( - /** - * The ID of the asset being frozen/unfrozen. - */ - var `assetId`: kotlin.ULong, - /** - * The target account whose asset holdings will be affected. - */ - var `freezeTarget`: kotlin.String, - /** - * The new freeze status. - * - * `true` to freeze the asset holdings (prevent transfers), - * `false` to unfreeze the asset holdings (allow transfers). - */ - var `frozen`: kotlin.Boolean +data class AssetFreezeTransactionFields( + /** + * The ID of the asset being frozen/unfrozen. + */ + var `assetId`: kotlin.ULong, + /** + * The target account whose asset holdings will be affected. + */ + var `freezeTarget`: kotlin.String, + /** + * The new freeze status. + * + * `true` to freeze the asset holdings (prevent transfers), + * `false` to unfreeze the asset holdings (allow transfers). + */ + var `frozen`: kotlin.Boolean, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeAssetFreezeTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AssetFreezeTransactionFields { - return AssetFreezeTransactionFields( - FfiConverterULong.read(buf), - FfiConverterString.read(buf), - FfiConverterBoolean.read(buf), - ) - } - - override fun allocationSize(value: AssetFreezeTransactionFields) = ( - FfiConverterULong.allocationSize(value.`assetId`) + - FfiConverterString.allocationSize(value.`freezeTarget`) + - FfiConverterBoolean.allocationSize(value.`frozen`) +public object FfiConverterTypeAssetFreezeTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AssetFreezeTransactionFields = + AssetFreezeTransactionFields( + FfiConverterULong.read(buf), + FfiConverterString.read(buf), + FfiConverterBoolean.read(buf), ) - override fun write(value: AssetFreezeTransactionFields, buf: ByteBuffer) { - FfiConverterULong.write(value.`assetId`, buf) - FfiConverterString.write(value.`freezeTarget`, buf) - FfiConverterBoolean.write(value.`frozen`, buf) - } -} - - + override fun allocationSize(value: AssetFreezeTransactionFields) = + ( + FfiConverterULong.allocationSize(value.`assetId`) + + FfiConverterString.allocationSize(value.`freezeTarget`) + + FfiConverterBoolean.allocationSize(value.`frozen`) + ) -data class AssetTransferTransactionFields ( - var `assetId`: kotlin.ULong, - var `amount`: kotlin.ULong, - var `receiver`: kotlin.String, - var `assetSender`: kotlin.String? = null, - var `closeRemainderTo`: kotlin.String? = null + override fun write( + value: AssetFreezeTransactionFields, + buf: ByteBuffer, + ) { + FfiConverterULong.write(value.`assetId`, buf) + FfiConverterString.write(value.`freezeTarget`, buf) + FfiConverterBoolean.write(value.`frozen`, buf) + } +} + +data class AssetTransferTransactionFields( + var `assetId`: kotlin.ULong, + var `amount`: kotlin.ULong, + var `receiver`: kotlin.String, + var `assetSender`: kotlin.String? = null, + var `closeRemainderTo`: kotlin.String? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeAssetTransferTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AssetTransferTransactionFields { - return AssetTransferTransactionFields( - FfiConverterULong.read(buf), - FfiConverterULong.read(buf), - FfiConverterString.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalString.read(buf), - ) - } +public object FfiConverterTypeAssetTransferTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AssetTransferTransactionFields = + AssetTransferTransactionFields( + FfiConverterULong.read(buf), + FfiConverterULong.read(buf), + FfiConverterString.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalString.read(buf), + ) - override fun allocationSize(value: AssetTransferTransactionFields) = ( - FfiConverterULong.allocationSize(value.`assetId`) + - FfiConverterULong.allocationSize(value.`amount`) + - FfiConverterString.allocationSize(value.`receiver`) + - FfiConverterOptionalString.allocationSize(value.`assetSender`) + - FfiConverterOptionalString.allocationSize(value.`closeRemainderTo`) + override fun allocationSize(value: AssetTransferTransactionFields) = + ( + FfiConverterULong.allocationSize(value.`assetId`) + + FfiConverterULong.allocationSize(value.`amount`) + + FfiConverterString.allocationSize(value.`receiver`) + + FfiConverterOptionalString.allocationSize(value.`assetSender`) + + FfiConverterOptionalString.allocationSize(value.`closeRemainderTo`) ) - override fun write(value: AssetTransferTransactionFields, buf: ByteBuffer) { - FfiConverterULong.write(value.`assetId`, buf) - FfiConverterULong.write(value.`amount`, buf) - FfiConverterString.write(value.`receiver`, buf) - FfiConverterOptionalString.write(value.`assetSender`, buf) - FfiConverterOptionalString.write(value.`closeRemainderTo`, buf) - } + override fun write( + value: AssetTransferTransactionFields, + buf: ByteBuffer, + ) { + FfiConverterULong.write(value.`assetId`, buf) + FfiConverterULong.write(value.`amount`, buf) + FfiConverterString.write(value.`receiver`, buf) + FfiConverterOptionalString.write(value.`assetSender`, buf) + FfiConverterOptionalString.write(value.`closeRemainderTo`, buf) + } } - - /** * Box reference for app call transactions. * * References a specific box that should be made available for the runtime * of the program. */ -data class BoxReference ( - /** - * App ID that owns the box. - * A value of 0 indicates the current app. - */ - var `appId`: kotlin.ULong, - /** - * Name of the box. - */ - var `name`: kotlin.ByteArray +data class BoxReference( + /** + * App ID that owns the box. + * A value of 0 indicates the current app. + */ + var `appId`: kotlin.ULong, + /** + * Name of the box. + */ + var `name`: kotlin.ByteArray, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeBoxReference: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): BoxReference { - return BoxReference( - FfiConverterULong.read(buf), - FfiConverterByteArray.read(buf), - ) - } +public object FfiConverterTypeBoxReference : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): BoxReference = + BoxReference( + FfiConverterULong.read(buf), + FfiConverterByteArray.read(buf), + ) - override fun allocationSize(value: BoxReference) = ( - FfiConverterULong.allocationSize(value.`appId`) + - FfiConverterByteArray.allocationSize(value.`name`) + override fun allocationSize(value: BoxReference) = + ( + FfiConverterULong.allocationSize(value.`appId`) + + FfiConverterByteArray.allocationSize(value.`name`) ) - override fun write(value: BoxReference, buf: ByteBuffer) { - FfiConverterULong.write(value.`appId`, buf) - FfiConverterByteArray.write(value.`name`, buf) - } + override fun write( + value: BoxReference, + buf: ByteBuffer, + ) { + FfiConverterULong.write(value.`appId`, buf) + FfiConverterByteArray.write(value.`name`, buf) + } } - - -data class FeeParams ( - var `feePerByte`: kotlin.ULong, - var `minFee`: kotlin.ULong, - var `extraFee`: kotlin.ULong? = null, - var `maxFee`: kotlin.ULong? = null +data class FeeParams( + var `feePerByte`: kotlin.ULong, + var `minFee`: kotlin.ULong, + var `extraFee`: kotlin.ULong? = null, + var `maxFee`: kotlin.ULong? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeFeeParams: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): FeeParams { - return FeeParams( - FfiConverterULong.read(buf), - FfiConverterULong.read(buf), - FfiConverterOptionalULong.read(buf), - FfiConverterOptionalULong.read(buf), - ) - } +public object FfiConverterTypeFeeParams : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): FeeParams = + FeeParams( + FfiConverterULong.read(buf), + FfiConverterULong.read(buf), + FfiConverterOptionalULong.read(buf), + FfiConverterOptionalULong.read(buf), + ) - override fun allocationSize(value: FeeParams) = ( - FfiConverterULong.allocationSize(value.`feePerByte`) + - FfiConverterULong.allocationSize(value.`minFee`) + - FfiConverterOptionalULong.allocationSize(value.`extraFee`) + - FfiConverterOptionalULong.allocationSize(value.`maxFee`) + override fun allocationSize(value: FeeParams) = + ( + FfiConverterULong.allocationSize(value.`feePerByte`) + + FfiConverterULong.allocationSize(value.`minFee`) + + FfiConverterOptionalULong.allocationSize(value.`extraFee`) + + FfiConverterOptionalULong.allocationSize(value.`maxFee`) ) - override fun write(value: FeeParams, buf: ByteBuffer) { - FfiConverterULong.write(value.`feePerByte`, buf) - FfiConverterULong.write(value.`minFee`, buf) - FfiConverterOptionalULong.write(value.`extraFee`, buf) - FfiConverterOptionalULong.write(value.`maxFee`, buf) - } + override fun write( + value: FeeParams, + buf: ByteBuffer, + ) { + FfiConverterULong.write(value.`feePerByte`, buf) + FfiConverterULong.write(value.`minFee`, buf) + FfiConverterOptionalULong.write(value.`extraFee`, buf) + FfiConverterOptionalULong.write(value.`maxFee`, buf) + } } - - -data class KeyPairAccount ( - var `pubKey`: kotlin.ByteArray +data class KeyPairAccount( + var `pubKey`: kotlin.ByteArray, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeKeyPairAccount: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): KeyPairAccount { - return KeyPairAccount( - FfiConverterByteArray.read(buf), - ) - } +public object FfiConverterTypeKeyPairAccount : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): KeyPairAccount = + KeyPairAccount( + FfiConverterByteArray.read(buf), + ) - override fun allocationSize(value: KeyPairAccount) = ( - FfiConverterByteArray.allocationSize(value.`pubKey`) + override fun allocationSize(value: KeyPairAccount) = + ( + FfiConverterByteArray.allocationSize(value.`pubKey`) ) - override fun write(value: KeyPairAccount, buf: ByteBuffer) { - FfiConverterByteArray.write(value.`pubKey`, buf) - } -} - - - -data class KeyRegistrationTransactionFields ( - /** - * Root participation public key (32 bytes) - */ - var `voteKey`: kotlin.ByteArray? = null, - /** - * VRF public key (32 bytes) - */ - var `selectionKey`: kotlin.ByteArray? = null, - /** - * State proof key (64 bytes) - */ - var `stateProofKey`: kotlin.ByteArray? = null, - /** - * First round for which the participation key is valid - */ - var `voteFirst`: kotlin.ULong? = null, - /** - * Last round for which the participation key is valid - */ - var `voteLast`: kotlin.ULong? = null, - /** - * Key dilution for the 2-level participation key - */ - var `voteKeyDilution`: kotlin.ULong? = null, - /** - * Mark account as non-reward earning - */ - var `nonParticipation`: kotlin.Boolean? = null + override fun write( + value: KeyPairAccount, + buf: ByteBuffer, + ) { + FfiConverterByteArray.write(value.`pubKey`, buf) + } +} + +data class KeyRegistrationTransactionFields( + /** + * Root participation public key (32 bytes) + */ + var `voteKey`: kotlin.ByteArray? = null, + /** + * VRF public key (32 bytes) + */ + var `selectionKey`: kotlin.ByteArray? = null, + /** + * State proof key (64 bytes) + */ + var `stateProofKey`: kotlin.ByteArray? = null, + /** + * First round for which the participation key is valid + */ + var `voteFirst`: kotlin.ULong? = null, + /** + * Last round for which the participation key is valid + */ + var `voteLast`: kotlin.ULong? = null, + /** + * Key dilution for the 2-level participation key + */ + var `voteKeyDilution`: kotlin.ULong? = null, + /** + * Mark account as non-reward earning + */ + var `nonParticipation`: kotlin.Boolean? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeKeyRegistrationTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): KeyRegistrationTransactionFields { - return KeyRegistrationTransactionFields( - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalULong.read(buf), - FfiConverterOptionalULong.read(buf), - FfiConverterOptionalULong.read(buf), - FfiConverterOptionalBoolean.read(buf), - ) - } +public object FfiConverterTypeKeyRegistrationTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): KeyRegistrationTransactionFields = + KeyRegistrationTransactionFields( + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalULong.read(buf), + FfiConverterOptionalULong.read(buf), + FfiConverterOptionalULong.read(buf), + FfiConverterOptionalBoolean.read(buf), + ) - override fun allocationSize(value: KeyRegistrationTransactionFields) = ( - FfiConverterOptionalByteArray.allocationSize(value.`voteKey`) + - FfiConverterOptionalByteArray.allocationSize(value.`selectionKey`) + - FfiConverterOptionalByteArray.allocationSize(value.`stateProofKey`) + - FfiConverterOptionalULong.allocationSize(value.`voteFirst`) + - FfiConverterOptionalULong.allocationSize(value.`voteLast`) + - FfiConverterOptionalULong.allocationSize(value.`voteKeyDilution`) + - FfiConverterOptionalBoolean.allocationSize(value.`nonParticipation`) + override fun allocationSize(value: KeyRegistrationTransactionFields) = + ( + FfiConverterOptionalByteArray.allocationSize(value.`voteKey`) + + FfiConverterOptionalByteArray.allocationSize(value.`selectionKey`) + + FfiConverterOptionalByteArray.allocationSize(value.`stateProofKey`) + + FfiConverterOptionalULong.allocationSize(value.`voteFirst`) + + FfiConverterOptionalULong.allocationSize(value.`voteLast`) + + FfiConverterOptionalULong.allocationSize(value.`voteKeyDilution`) + + FfiConverterOptionalBoolean.allocationSize(value.`nonParticipation`) ) - override fun write(value: KeyRegistrationTransactionFields, buf: ByteBuffer) { - FfiConverterOptionalByteArray.write(value.`voteKey`, buf) - FfiConverterOptionalByteArray.write(value.`selectionKey`, buf) - FfiConverterOptionalByteArray.write(value.`stateProofKey`, buf) - FfiConverterOptionalULong.write(value.`voteFirst`, buf) - FfiConverterOptionalULong.write(value.`voteLast`, buf) - FfiConverterOptionalULong.write(value.`voteKeyDilution`, buf) - FfiConverterOptionalBoolean.write(value.`nonParticipation`, buf) - } + override fun write( + value: KeyRegistrationTransactionFields, + buf: ByteBuffer, + ) { + FfiConverterOptionalByteArray.write(value.`voteKey`, buf) + FfiConverterOptionalByteArray.write(value.`selectionKey`, buf) + FfiConverterOptionalByteArray.write(value.`stateProofKey`, buf) + FfiConverterOptionalULong.write(value.`voteFirst`, buf) + FfiConverterOptionalULong.write(value.`voteLast`, buf) + FfiConverterOptionalULong.write(value.`voteKeyDilution`, buf) + FfiConverterOptionalBoolean.write(value.`nonParticipation`, buf) + } } - - /** * Representation of an Algorand multisignature signature. */ -data class MultisigSignature ( - /** - * Multisig version. - */ - var `version`: kotlin.UByte, - /** - * Minimum number of signatures required. - */ - var `threshold`: kotlin.UByte, - /** - * List of subsignatures for each participant. - */ - var `subsignatures`: List +data class MultisigSignature( + /** + * Multisig version. + */ + var `version`: kotlin.UByte, + /** + * Minimum number of signatures required. + */ + var `threshold`: kotlin.UByte, + /** + * List of subsignatures for each participant. + */ + var `subsignatures`: List, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeMultisigSignature: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): MultisigSignature { - return MultisigSignature( - FfiConverterUByte.read(buf), - FfiConverterUByte.read(buf), - FfiConverterSequenceTypeMultisigSubsignature.read(buf), - ) - } +public object FfiConverterTypeMultisigSignature : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): MultisigSignature = + MultisigSignature( + FfiConverterUByte.read(buf), + FfiConverterUByte.read(buf), + FfiConverterSequenceTypeMultisigSubsignature.read(buf), + ) - override fun allocationSize(value: MultisigSignature) = ( - FfiConverterUByte.allocationSize(value.`version`) + - FfiConverterUByte.allocationSize(value.`threshold`) + - FfiConverterSequenceTypeMultisigSubsignature.allocationSize(value.`subsignatures`) + override fun allocationSize(value: MultisigSignature) = + ( + FfiConverterUByte.allocationSize(value.`version`) + + FfiConverterUByte.allocationSize(value.`threshold`) + + FfiConverterSequenceTypeMultisigSubsignature.allocationSize(value.`subsignatures`) ) - override fun write(value: MultisigSignature, buf: ByteBuffer) { - FfiConverterUByte.write(value.`version`, buf) - FfiConverterUByte.write(value.`threshold`, buf) - FfiConverterSequenceTypeMultisigSubsignature.write(value.`subsignatures`, buf) - } + override fun write( + value: MultisigSignature, + buf: ByteBuffer, + ) { + FfiConverterUByte.write(value.`version`, buf) + FfiConverterUByte.write(value.`threshold`, buf) + FfiConverterSequenceTypeMultisigSubsignature.write(value.`subsignatures`, buf) + } } - - /** * Representation of a single subsignature in a multisignature transaction. * * Each subsignature contains the participant's address and an optional signature. */ -data class MultisigSubsignature ( - /** - * Address of the participant. - */ - var `address`: kotlin.String, - /** - * Optional signature bytes for the participant. - */ - var `signature`: kotlin.ByteArray? = null +data class MultisigSubsignature( + /** + * Address of the participant. + */ + var `address`: kotlin.String, + /** + * Optional signature bytes for the participant. + */ + var `signature`: kotlin.ByteArray? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeMultisigSubsignature: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): MultisigSubsignature { - return MultisigSubsignature( - FfiConverterString.read(buf), - FfiConverterOptionalByteArray.read(buf), - ) - } +public object FfiConverterTypeMultisigSubsignature : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): MultisigSubsignature = + MultisigSubsignature( + FfiConverterString.read(buf), + FfiConverterOptionalByteArray.read(buf), + ) - override fun allocationSize(value: MultisigSubsignature) = ( - FfiConverterString.allocationSize(value.`address`) + - FfiConverterOptionalByteArray.allocationSize(value.`signature`) + override fun allocationSize(value: MultisigSubsignature) = + ( + FfiConverterString.allocationSize(value.`address`) + + FfiConverterOptionalByteArray.allocationSize(value.`signature`) ) - override fun write(value: MultisigSubsignature, buf: ByteBuffer) { - FfiConverterString.write(value.`address`, buf) - FfiConverterOptionalByteArray.write(value.`signature`, buf) - } + override fun write( + value: MultisigSubsignature, + buf: ByteBuffer, + ) { + FfiConverterString.write(value.`address`, buf) + FfiConverterOptionalByteArray.write(value.`signature`, buf) + } } - - -data class PaymentTransactionFields ( - var `receiver`: kotlin.String, - var `amount`: kotlin.ULong, - var `closeRemainderTo`: kotlin.String? = null +data class PaymentTransactionFields( + var `receiver`: kotlin.String, + var `amount`: kotlin.ULong, + var `closeRemainderTo`: kotlin.String? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypePaymentTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): PaymentTransactionFields { - return PaymentTransactionFields( - FfiConverterString.read(buf), - FfiConverterULong.read(buf), - FfiConverterOptionalString.read(buf), - ) - } - - override fun allocationSize(value: PaymentTransactionFields) = ( - FfiConverterString.allocationSize(value.`receiver`) + - FfiConverterULong.allocationSize(value.`amount`) + - FfiConverterOptionalString.allocationSize(value.`closeRemainderTo`) +public object FfiConverterTypePaymentTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): PaymentTransactionFields = + PaymentTransactionFields( + FfiConverterString.read(buf), + FfiConverterULong.read(buf), + FfiConverterOptionalString.read(buf), ) - override fun write(value: PaymentTransactionFields, buf: ByteBuffer) { - FfiConverterString.write(value.`receiver`, buf) - FfiConverterULong.write(value.`amount`, buf) - FfiConverterOptionalString.write(value.`closeRemainderTo`, buf) - } -} - - + override fun allocationSize(value: PaymentTransactionFields) = + ( + FfiConverterString.allocationSize(value.`receiver`) + + FfiConverterULong.allocationSize(value.`amount`) + + FfiConverterOptionalString.allocationSize(value.`closeRemainderTo`) + ) -data class SignedTransaction ( - /** - * The transaction that has been signed. - */ - var `transaction`: Transaction, - /** - * Optional Ed25519 signature authorizing the transaction. - */ - var `signature`: kotlin.ByteArray? = null, - /** - * Optional auth address applicable if the transaction sender is a rekeyed account. - */ - var `authAddress`: kotlin.String? = null, - /** - * Optional multisig signature if the transaction is a multisig transaction. - */ - var `multisignature`: MultisigSignature? = null + override fun write( + value: PaymentTransactionFields, + buf: ByteBuffer, + ) { + FfiConverterString.write(value.`receiver`, buf) + FfiConverterULong.write(value.`amount`, buf) + FfiConverterOptionalString.write(value.`closeRemainderTo`, buf) + } +} + +data class SignedTransaction( + /** + * The transaction that has been signed. + */ + var `transaction`: Transaction, + /** + * Optional Ed25519 signature authorizing the transaction. + */ + var `signature`: kotlin.ByteArray? = null, + /** + * Optional auth address applicable if the transaction sender is a rekeyed account. + */ + var `authAddress`: kotlin.String? = null, + /** + * Optional multisig signature if the transaction is a multisig transaction. + */ + var `multisignature`: MultisigSignature? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeSignedTransaction: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): SignedTransaction { - return SignedTransaction( - FfiConverterTypeTransaction.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalTypeMultisigSignature.read(buf), - ) - } +public object FfiConverterTypeSignedTransaction : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): SignedTransaction = + SignedTransaction( + FfiConverterTypeTransaction.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalTypeMultisigSignature.read(buf), + ) - override fun allocationSize(value: SignedTransaction) = ( - FfiConverterTypeTransaction.allocationSize(value.`transaction`) + - FfiConverterOptionalByteArray.allocationSize(value.`signature`) + - FfiConverterOptionalString.allocationSize(value.`authAddress`) + - FfiConverterOptionalTypeMultisigSignature.allocationSize(value.`multisignature`) + override fun allocationSize(value: SignedTransaction) = + ( + FfiConverterTypeTransaction.allocationSize(value.`transaction`) + + FfiConverterOptionalByteArray.allocationSize(value.`signature`) + + FfiConverterOptionalString.allocationSize(value.`authAddress`) + + FfiConverterOptionalTypeMultisigSignature.allocationSize(value.`multisignature`) ) - override fun write(value: SignedTransaction, buf: ByteBuffer) { - FfiConverterTypeTransaction.write(value.`transaction`, buf) - FfiConverterOptionalByteArray.write(value.`signature`, buf) - FfiConverterOptionalString.write(value.`authAddress`, buf) - FfiConverterOptionalTypeMultisigSignature.write(value.`multisignature`, buf) - } + override fun write( + value: SignedTransaction, + buf: ByteBuffer, + ) { + FfiConverterTypeTransaction.write(value.`transaction`, buf) + FfiConverterOptionalByteArray.write(value.`signature`, buf) + FfiConverterOptionalString.write(value.`authAddress`, buf) + FfiConverterOptionalTypeMultisigSignature.write(value.`multisignature`, buf) + } } - - /** * Schema for app state storage. * * Defines the maximum number of values that may be stored in app * key/value storage for both global and local state. */ -data class StateSchema ( - /** - * Maximum number of integer values that may be stored. - */ - var `numUints`: kotlin.UInt, - /** - * Maximum number of byte slice values that may be stored. - */ - var `numByteSlices`: kotlin.UInt +data class StateSchema( + /** + * Maximum number of integer values that may be stored. + */ + var `numUints`: kotlin.UInt, + /** + * Maximum number of byte slice values that may be stored. + */ + var `numByteSlices`: kotlin.UInt, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeStateSchema: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): StateSchema { - return StateSchema( - FfiConverterUInt.read(buf), - FfiConverterUInt.read(buf), - ) - } +public object FfiConverterTypeStateSchema : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): StateSchema = + StateSchema( + FfiConverterUInt.read(buf), + FfiConverterUInt.read(buf), + ) - override fun allocationSize(value: StateSchema) = ( - FfiConverterUInt.allocationSize(value.`numUints`) + - FfiConverterUInt.allocationSize(value.`numByteSlices`) + override fun allocationSize(value: StateSchema) = + ( + FfiConverterUInt.allocationSize(value.`numUints`) + + FfiConverterUInt.allocationSize(value.`numByteSlices`) ) - override fun write(value: StateSchema, buf: ByteBuffer) { - FfiConverterUInt.write(value.`numUints`, buf) - FfiConverterUInt.write(value.`numByteSlices`, buf) - } -} - - - -data class Transaction ( - /** - * The type of transaction - */ - var `transactionType`: TransactionType, - /** - * The sender of the transaction - */ - var `sender`: kotlin.String, - /** - * Optional transaction fee in microALGO. - * - * If not set, the fee will be interpreted as 0 by the network. - */ - var `fee`: kotlin.ULong? = null, - var `firstValid`: kotlin.ULong, - var `lastValid`: kotlin.ULong, - var `genesisHash`: kotlin.ByteArray?, - var `genesisId`: kotlin.String?, - var `note`: kotlin.ByteArray? = null, - var `rekeyTo`: kotlin.String? = null, - var `lease`: kotlin.ByteArray? = null, - var `group`: kotlin.ByteArray? = null, - var `payment`: PaymentTransactionFields? = null, - var `assetTransfer`: AssetTransferTransactionFields? = null, - var `assetConfig`: AssetConfigTransactionFields? = null, - var `appCall`: AppCallTransactionFields? = null, - var `keyRegistration`: KeyRegistrationTransactionFields? = null, - var `assetFreeze`: AssetFreezeTransactionFields? = null + override fun write( + value: StateSchema, + buf: ByteBuffer, + ) { + FfiConverterUInt.write(value.`numUints`, buf) + FfiConverterUInt.write(value.`numByteSlices`, buf) + } +} + +data class Transaction( + /** + * The type of transaction + */ + var `transactionType`: TransactionType, + /** + * The sender of the transaction + */ + var `sender`: kotlin.String, + /** + * Optional transaction fee in microALGO. + * + * If not set, the fee will be interpreted as 0 by the network. + */ + var `fee`: kotlin.ULong? = null, + var `firstValid`: kotlin.ULong, + var `lastValid`: kotlin.ULong, + var `genesisHash`: kotlin.ByteArray?, + var `genesisId`: kotlin.String?, + var `note`: kotlin.ByteArray? = null, + var `rekeyTo`: kotlin.String? = null, + var `lease`: kotlin.ByteArray? = null, + var `group`: kotlin.ByteArray? = null, + var `payment`: PaymentTransactionFields? = null, + var `assetTransfer`: AssetTransferTransactionFields? = null, + var `assetConfig`: AssetConfigTransactionFields? = null, + var `appCall`: AppCallTransactionFields? = null, + var `keyRegistration`: KeyRegistrationTransactionFields? = null, + var `assetFreeze`: AssetFreezeTransactionFields? = null, ) { - - companion object + companion object } /** * @suppress */ -public object FfiConverterTypeTransaction: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): Transaction { - return Transaction( - FfiConverterTypeTransactionType.read(buf), - FfiConverterString.read(buf), - FfiConverterOptionalULong.read(buf), - FfiConverterULong.read(buf), - FfiConverterULong.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalString.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalByteArray.read(buf), - FfiConverterOptionalTypePaymentTransactionFields.read(buf), - FfiConverterOptionalTypeAssetTransferTransactionFields.read(buf), - FfiConverterOptionalTypeAssetConfigTransactionFields.read(buf), - FfiConverterOptionalTypeAppCallTransactionFields.read(buf), - FfiConverterOptionalTypeKeyRegistrationTransactionFields.read(buf), - FfiConverterOptionalTypeAssetFreezeTransactionFields.read(buf), - ) - } - - override fun allocationSize(value: Transaction) = ( - FfiConverterTypeTransactionType.allocationSize(value.`transactionType`) + - FfiConverterString.allocationSize(value.`sender`) + - FfiConverterOptionalULong.allocationSize(value.`fee`) + - FfiConverterULong.allocationSize(value.`firstValid`) + - FfiConverterULong.allocationSize(value.`lastValid`) + - FfiConverterOptionalByteArray.allocationSize(value.`genesisHash`) + - FfiConverterOptionalString.allocationSize(value.`genesisId`) + - FfiConverterOptionalByteArray.allocationSize(value.`note`) + - FfiConverterOptionalString.allocationSize(value.`rekeyTo`) + - FfiConverterOptionalByteArray.allocationSize(value.`lease`) + - FfiConverterOptionalByteArray.allocationSize(value.`group`) + - FfiConverterOptionalTypePaymentTransactionFields.allocationSize(value.`payment`) + - FfiConverterOptionalTypeAssetTransferTransactionFields.allocationSize(value.`assetTransfer`) + - FfiConverterOptionalTypeAssetConfigTransactionFields.allocationSize(value.`assetConfig`) + - FfiConverterOptionalTypeAppCallTransactionFields.allocationSize(value.`appCall`) + - FfiConverterOptionalTypeKeyRegistrationTransactionFields.allocationSize(value.`keyRegistration`) + - FfiConverterOptionalTypeAssetFreezeTransactionFields.allocationSize(value.`assetFreeze`) +public object FfiConverterTypeTransaction : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): Transaction = + Transaction( + FfiConverterTypeTransactionType.read(buf), + FfiConverterString.read(buf), + FfiConverterOptionalULong.read(buf), + FfiConverterULong.read(buf), + FfiConverterULong.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalString.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalByteArray.read(buf), + FfiConverterOptionalTypePaymentTransactionFields.read(buf), + FfiConverterOptionalTypeAssetTransferTransactionFields.read(buf), + FfiConverterOptionalTypeAssetConfigTransactionFields.read(buf), + FfiConverterOptionalTypeAppCallTransactionFields.read(buf), + FfiConverterOptionalTypeKeyRegistrationTransactionFields.read(buf), + FfiConverterOptionalTypeAssetFreezeTransactionFields.read(buf), ) - override fun write(value: Transaction, buf: ByteBuffer) { - FfiConverterTypeTransactionType.write(value.`transactionType`, buf) - FfiConverterString.write(value.`sender`, buf) - FfiConverterOptionalULong.write(value.`fee`, buf) - FfiConverterULong.write(value.`firstValid`, buf) - FfiConverterULong.write(value.`lastValid`, buf) - FfiConverterOptionalByteArray.write(value.`genesisHash`, buf) - FfiConverterOptionalString.write(value.`genesisId`, buf) - FfiConverterOptionalByteArray.write(value.`note`, buf) - FfiConverterOptionalString.write(value.`rekeyTo`, buf) - FfiConverterOptionalByteArray.write(value.`lease`, buf) - FfiConverterOptionalByteArray.write(value.`group`, buf) - FfiConverterOptionalTypePaymentTransactionFields.write(value.`payment`, buf) - FfiConverterOptionalTypeAssetTransferTransactionFields.write(value.`assetTransfer`, buf) - FfiConverterOptionalTypeAssetConfigTransactionFields.write(value.`assetConfig`, buf) - FfiConverterOptionalTypeAppCallTransactionFields.write(value.`appCall`, buf) - FfiConverterOptionalTypeKeyRegistrationTransactionFields.write(value.`keyRegistration`, buf) - FfiConverterOptionalTypeAssetFreezeTransactionFields.write(value.`assetFreeze`, buf) - } -} - - - - - -sealed class AlgoKitTransactException: kotlin.Exception() { - - class EncodingException( - - val `errorMsg`: kotlin.String - ) : AlgoKitTransactException() { - override val message - get() = "errorMsg=${ `errorMsg` }" - } - - class DecodingException( - - val `errorMsg`: kotlin.String - ) : AlgoKitTransactException() { - override val message - get() = "errorMsg=${ `errorMsg` }" - } - - class InputException( - - val `errorMsg`: kotlin.String - ) : AlgoKitTransactException() { - override val message - get() = "errorMsg=${ `errorMsg` }" - } - - class MsgPackException( - - val `errorMsg`: kotlin.String - ) : AlgoKitTransactException() { - override val message - get() = "errorMsg=${ `errorMsg` }" - } - - - companion object ErrorHandler : UniffiRustCallStatusErrorHandler { - override fun lift(error_buf: RustBuffer.ByValue): AlgoKitTransactException = FfiConverterTypeAlgoKitTransactError.lift(error_buf) - } + override fun allocationSize(value: Transaction) = + ( + FfiConverterTypeTransactionType.allocationSize(value.`transactionType`) + + FfiConverterString.allocationSize(value.`sender`) + + FfiConverterOptionalULong.allocationSize(value.`fee`) + + FfiConverterULong.allocationSize(value.`firstValid`) + + FfiConverterULong.allocationSize(value.`lastValid`) + + FfiConverterOptionalByteArray.allocationSize(value.`genesisHash`) + + FfiConverterOptionalString.allocationSize(value.`genesisId`) + + FfiConverterOptionalByteArray.allocationSize(value.`note`) + + FfiConverterOptionalString.allocationSize(value.`rekeyTo`) + + FfiConverterOptionalByteArray.allocationSize(value.`lease`) + + FfiConverterOptionalByteArray.allocationSize(value.`group`) + + FfiConverterOptionalTypePaymentTransactionFields.allocationSize(value.`payment`) + + FfiConverterOptionalTypeAssetTransferTransactionFields.allocationSize(value.`assetTransfer`) + + FfiConverterOptionalTypeAssetConfigTransactionFields.allocationSize(value.`assetConfig`) + + FfiConverterOptionalTypeAppCallTransactionFields.allocationSize(value.`appCall`) + + FfiConverterOptionalTypeKeyRegistrationTransactionFields.allocationSize(value.`keyRegistration`) + + FfiConverterOptionalTypeAssetFreezeTransactionFields.allocationSize(value.`assetFreeze`) + ) - + override fun write( + value: Transaction, + buf: ByteBuffer, + ) { + FfiConverterTypeTransactionType.write(value.`transactionType`, buf) + FfiConverterString.write(value.`sender`, buf) + FfiConverterOptionalULong.write(value.`fee`, buf) + FfiConverterULong.write(value.`firstValid`, buf) + FfiConverterULong.write(value.`lastValid`, buf) + FfiConverterOptionalByteArray.write(value.`genesisHash`, buf) + FfiConverterOptionalString.write(value.`genesisId`, buf) + FfiConverterOptionalByteArray.write(value.`note`, buf) + FfiConverterOptionalString.write(value.`rekeyTo`, buf) + FfiConverterOptionalByteArray.write(value.`lease`, buf) + FfiConverterOptionalByteArray.write(value.`group`, buf) + FfiConverterOptionalTypePaymentTransactionFields.write(value.`payment`, buf) + FfiConverterOptionalTypeAssetTransferTransactionFields.write(value.`assetTransfer`, buf) + FfiConverterOptionalTypeAssetConfigTransactionFields.write(value.`assetConfig`, buf) + FfiConverterOptionalTypeAppCallTransactionFields.write(value.`appCall`, buf) + FfiConverterOptionalTypeKeyRegistrationTransactionFields.write(value.`keyRegistration`, buf) + FfiConverterOptionalTypeAssetFreezeTransactionFields.write(value.`assetFreeze`, buf) + } +} + +sealed class AlgoKitTransactException : kotlin.Exception() { + class EncodingException( + val `errorMsg`: kotlin.String, + ) : AlgoKitTransactException() { + override val message + get() = "errorMsg=${ `errorMsg` }" + } + + class DecodingException( + val `errorMsg`: kotlin.String, + ) : AlgoKitTransactException() { + override val message + get() = "errorMsg=${ `errorMsg` }" + } + + class InputException( + val `errorMsg`: kotlin.String, + ) : AlgoKitTransactException() { + override val message + get() = "errorMsg=${ `errorMsg` }" + } + + class MsgPackException( + val `errorMsg`: kotlin.String, + ) : AlgoKitTransactException() { + override val message + get() = "errorMsg=${ `errorMsg` }" + } + + companion object ErrorHandler : UniffiRustCallStatusErrorHandler { + override fun lift(error_buf: RustBuffer.ByValue): AlgoKitTransactException = FfiConverterTypeAlgoKitTransactError.lift(error_buf) + } } /** * @suppress */ public object FfiConverterTypeAlgoKitTransactError : FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AlgoKitTransactException { - - - return when(buf.getInt()) { - 1 -> AlgoKitTransactException.EncodingException( - FfiConverterString.read(buf), - ) - 2 -> AlgoKitTransactException.DecodingException( - FfiConverterString.read(buf), - ) - 3 -> AlgoKitTransactException.InputException( - FfiConverterString.read(buf), - ) - 4 -> AlgoKitTransactException.MsgPackException( - FfiConverterString.read(buf), - ) - else -> throw RuntimeException("invalid error enum value, something is very wrong!!") - } - } - - override fun allocationSize(value: AlgoKitTransactException): ULong { - return when(value) { - is AlgoKitTransactException.EncodingException -> ( - // Add the size for the Int that specifies the variant plus the size needed for all fields - 4UL - + FfiConverterString.allocationSize(value.`errorMsg`) - ) - is AlgoKitTransactException.DecodingException -> ( - // Add the size for the Int that specifies the variant plus the size needed for all fields - 4UL - + FfiConverterString.allocationSize(value.`errorMsg`) - ) - is AlgoKitTransactException.InputException -> ( - // Add the size for the Int that specifies the variant plus the size needed for all fields - 4UL - + FfiConverterString.allocationSize(value.`errorMsg`) - ) - is AlgoKitTransactException.MsgPackException -> ( - // Add the size for the Int that specifies the variant plus the size needed for all fields - 4UL - + FfiConverterString.allocationSize(value.`errorMsg`) - ) - } - } - - override fun write(value: AlgoKitTransactException, buf: ByteBuffer) { - when(value) { - is AlgoKitTransactException.EncodingException -> { - buf.putInt(1) - FfiConverterString.write(value.`errorMsg`, buf) - Unit - } - is AlgoKitTransactException.DecodingException -> { - buf.putInt(2) - FfiConverterString.write(value.`errorMsg`, buf) - Unit - } - is AlgoKitTransactException.InputException -> { - buf.putInt(3) - FfiConverterString.write(value.`errorMsg`, buf) - Unit - } - is AlgoKitTransactException.MsgPackException -> { - buf.putInt(4) - FfiConverterString.write(value.`errorMsg`, buf) - Unit - } - }.let { /* this makes the `when` an expression, which ensures it is exhaustive */ } - } - + override fun read(buf: ByteBuffer): AlgoKitTransactException = + when (buf.getInt()) { + 1 -> + AlgoKitTransactException.EncodingException( + FfiConverterString.read(buf), + ) + 2 -> + AlgoKitTransactException.DecodingException( + FfiConverterString.read(buf), + ) + 3 -> + AlgoKitTransactException.InputException( + FfiConverterString.read(buf), + ) + 4 -> + AlgoKitTransactException.MsgPackException( + FfiConverterString.read(buf), + ) + else -> throw RuntimeException("invalid error enum value, something is very wrong!!") + } + + override fun allocationSize(value: AlgoKitTransactException): ULong = + when (value) { + is AlgoKitTransactException.EncodingException -> ( + // Add the size for the Int that specifies the variant plus the size needed for all fields + 4UL + + FfiConverterString.allocationSize(value.`errorMsg`) + ) + is AlgoKitTransactException.DecodingException -> ( + // Add the size for the Int that specifies the variant plus the size needed for all fields + 4UL + + FfiConverterString.allocationSize(value.`errorMsg`) + ) + is AlgoKitTransactException.InputException -> ( + // Add the size for the Int that specifies the variant plus the size needed for all fields + 4UL + + FfiConverterString.allocationSize(value.`errorMsg`) + ) + is AlgoKitTransactException.MsgPackException -> ( + // Add the size for the Int that specifies the variant plus the size needed for all fields + 4UL + + FfiConverterString.allocationSize(value.`errorMsg`) + ) + } + + override fun write( + value: AlgoKitTransactException, + buf: ByteBuffer, + ) { + when (value) { + is AlgoKitTransactException.EncodingException -> { + buf.putInt(1) + FfiConverterString.write(value.`errorMsg`, buf) + Unit + } + is AlgoKitTransactException.DecodingException -> { + buf.putInt(2) + FfiConverterString.write(value.`errorMsg`, buf) + Unit + } + is AlgoKitTransactException.InputException -> { + buf.putInt(3) + FfiConverterString.write(value.`errorMsg`, buf) + Unit + } + is AlgoKitTransactException.MsgPackException -> { + buf.putInt(4) + FfiConverterString.write(value.`errorMsg`, buf) + Unit + } + }.let { /* this makes the `when` an expression, which ensures it is exhaustive */ } + } } - - /** * Enum containing all constants used in this crate. */ enum class AlgorandConstant { - - /** - * Length of hash digests (32) - */ - HASH_LENGTH, - /** - * Length of the checksum used in Algorand addresses (4) - */ - CHECKSUM_LENGTH, - /** - * Length of a base32-encoded Algorand address (58) - */ - ADDRESS_LENGTH, - /** - * Length of an Algorand public key in bytes (32) - */ - PUBLIC_KEY_LENGTH, - /** - * Length of an Algorand secret key in bytes (32) - */ - SECRET_KEY_LENGTH, - /** - * Length of an Algorand signature in bytes (64) - */ - SIGNATURE_LENGTH, - /** - * Increment in the encoded byte size when a signature is attached to a transaction (75) - */ - SIGNATURE_ENCODING_INCR_LENGTH, - /** - * The maximum number of transactions in a group (16) - */ - MAX_TX_GROUP_SIZE; - companion object -} + /** + * Length of hash digests (32) + */ + HASH_LENGTH, + + /** + * Length of the checksum used in Algorand addresses (4) + */ + CHECKSUM_LENGTH, + + /** + * Length of a base32-encoded Algorand address (58) + */ + ADDRESS_LENGTH, + /** + * Length of an Algorand public key in bytes (32) + */ + PUBLIC_KEY_LENGTH, + + /** + * Length of an Algorand secret key in bytes (32) + */ + SECRET_KEY_LENGTH, + + /** + * Length of an Algorand signature in bytes (64) + */ + SIGNATURE_LENGTH, + + /** + * Increment in the encoded byte size when a signature is attached to a transaction (75) + */ + SIGNATURE_ENCODING_INCR_LENGTH, + + /** + * The maximum number of transactions in a group (16) + */ + MAX_TX_GROUP_SIZE, + + ; + + companion object +} /** * @suppress */ -public object FfiConverterTypeAlgorandConstant: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer) = try { - AlgorandConstant.values()[buf.getInt() - 1] +public object FfiConverterTypeAlgorandConstant : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer) = + try { + AlgorandConstant.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { - throw RuntimeException("invalid enum value, something is very wrong!!", e) + throw RuntimeException("invalid enum value, something is very wrong!!", e) } - override fun allocationSize(value: AlgorandConstant) = 4UL + override fun allocationSize(value: AlgorandConstant) = 4UL - override fun write(value: AlgorandConstant, buf: ByteBuffer) { - buf.putInt(value.ordinal + 1) - } + override fun write( + value: AlgorandConstant, + buf: ByteBuffer, + ) { + buf.putInt(value.ordinal + 1) + } } - - - - /** * On-completion actions for app transactions. * @@ -2490,1196 +2650,1250 @@ public object FfiConverterTypeAlgorandConstant: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer) = try { - OnApplicationComplete.values()[buf.getInt() - 1] +public object FfiConverterTypeOnApplicationComplete : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer) = + try { + OnApplicationComplete.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { - throw RuntimeException("invalid enum value, something is very wrong!!", e) + throw RuntimeException("invalid enum value, something is very wrong!!", e) } - override fun allocationSize(value: OnApplicationComplete) = 4UL + override fun allocationSize(value: OnApplicationComplete) = 4UL - override fun write(value: OnApplicationComplete, buf: ByteBuffer) { - buf.putInt(value.ordinal + 1) - } + override fun write( + value: OnApplicationComplete, + buf: ByteBuffer, + ) { + buf.putInt(value.ordinal + 1) + } } - - - - - enum class TransactionType { - - PAYMENT, - ASSET_TRANSFER, - ASSET_FREEZE, - ASSET_CONFIG, - KEY_REGISTRATION, - APP_CALL; - companion object -} + PAYMENT, + ASSET_TRANSFER, + ASSET_FREEZE, + ASSET_CONFIG, + KEY_REGISTRATION, + APP_CALL, + ; + companion object +} /** * @suppress */ -public object FfiConverterTypeTransactionType: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer) = try { - TransactionType.values()[buf.getInt() - 1] +public object FfiConverterTypeTransactionType : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer) = + try { + TransactionType.values()[buf.getInt() - 1] } catch (e: IndexOutOfBoundsException) { - throw RuntimeException("invalid enum value, something is very wrong!!", e) + throw RuntimeException("invalid enum value, something is very wrong!!", e) } - override fun allocationSize(value: TransactionType) = 4UL + override fun allocationSize(value: TransactionType) = 4UL - override fun write(value: TransactionType, buf: ByteBuffer) { - buf.putInt(value.ordinal + 1) - } + override fun write( + value: TransactionType, + buf: ByteBuffer, + ) { + buf.putInt(value.ordinal + 1) + } } - - - - - /** * @suppress */ -public object FfiConverterOptionalUInt: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): kotlin.UInt? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterUInt.read(buf) +public object FfiConverterOptionalUInt : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): kotlin.UInt? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterUInt.read(buf) + } - override fun allocationSize(value: kotlin.UInt?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterUInt.allocationSize(value) - } + override fun allocationSize(value: kotlin.UInt?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterUInt.allocationSize(value) } + } - override fun write(value: kotlin.UInt?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterUInt.write(value, buf) - } + override fun write( + value: kotlin.UInt?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterUInt.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalULong: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): kotlin.ULong? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterULong.read(buf) +public object FfiConverterOptionalULong : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): kotlin.ULong? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterULong.read(buf) + } - override fun allocationSize(value: kotlin.ULong?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterULong.allocationSize(value) - } + override fun allocationSize(value: kotlin.ULong?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterULong.allocationSize(value) } + } - override fun write(value: kotlin.ULong?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterULong.write(value, buf) - } + override fun write( + value: kotlin.ULong?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterULong.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalBoolean: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): kotlin.Boolean? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterBoolean.read(buf) +public object FfiConverterOptionalBoolean : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): kotlin.Boolean? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterBoolean.read(buf) + } - override fun allocationSize(value: kotlin.Boolean?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterBoolean.allocationSize(value) - } + override fun allocationSize(value: kotlin.Boolean?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterBoolean.allocationSize(value) } + } - override fun write(value: kotlin.Boolean?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterBoolean.write(value, buf) - } + override fun write( + value: kotlin.Boolean?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterBoolean.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalString: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): kotlin.String? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterString.read(buf) +public object FfiConverterOptionalString : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): kotlin.String? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterString.read(buf) + } - override fun allocationSize(value: kotlin.String?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterString.allocationSize(value) - } + override fun allocationSize(value: kotlin.String?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterString.allocationSize(value) } + } - override fun write(value: kotlin.String?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterString.write(value, buf) - } + override fun write( + value: kotlin.String?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterString.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalByteArray: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): kotlin.ByteArray? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterByteArray.read(buf) +public object FfiConverterOptionalByteArray : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): kotlin.ByteArray? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterByteArray.read(buf) + } - override fun allocationSize(value: kotlin.ByteArray?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterByteArray.allocationSize(value) - } + override fun allocationSize(value: kotlin.ByteArray?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterByteArray.allocationSize(value) } + } - override fun write(value: kotlin.ByteArray?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterByteArray.write(value, buf) - } + override fun write( + value: kotlin.ByteArray?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterByteArray.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeAppCallTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AppCallTransactionFields? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeAppCallTransactionFields.read(buf) +public object FfiConverterOptionalTypeAppCallTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AppCallTransactionFields? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeAppCallTransactionFields.read(buf) + } - override fun allocationSize(value: AppCallTransactionFields?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeAppCallTransactionFields.allocationSize(value) - } + override fun allocationSize(value: AppCallTransactionFields?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeAppCallTransactionFields.allocationSize(value) } + } - override fun write(value: AppCallTransactionFields?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeAppCallTransactionFields.write(value, buf) - } + override fun write( + value: AppCallTransactionFields?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeAppCallTransactionFields.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeAssetConfigTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AssetConfigTransactionFields? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeAssetConfigTransactionFields.read(buf) +public object FfiConverterOptionalTypeAssetConfigTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AssetConfigTransactionFields? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeAssetConfigTransactionFields.read(buf) + } - override fun allocationSize(value: AssetConfigTransactionFields?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeAssetConfigTransactionFields.allocationSize(value) - } + override fun allocationSize(value: AssetConfigTransactionFields?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeAssetConfigTransactionFields.allocationSize(value) } + } - override fun write(value: AssetConfigTransactionFields?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeAssetConfigTransactionFields.write(value, buf) - } + override fun write( + value: AssetConfigTransactionFields?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeAssetConfigTransactionFields.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeAssetFreezeTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AssetFreezeTransactionFields? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeAssetFreezeTransactionFields.read(buf) +public object FfiConverterOptionalTypeAssetFreezeTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AssetFreezeTransactionFields? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeAssetFreezeTransactionFields.read(buf) + } - override fun allocationSize(value: AssetFreezeTransactionFields?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeAssetFreezeTransactionFields.allocationSize(value) - } + override fun allocationSize(value: AssetFreezeTransactionFields?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeAssetFreezeTransactionFields.allocationSize(value) } + } - override fun write(value: AssetFreezeTransactionFields?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeAssetFreezeTransactionFields.write(value, buf) - } + override fun write( + value: AssetFreezeTransactionFields?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeAssetFreezeTransactionFields.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeAssetTransferTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): AssetTransferTransactionFields? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeAssetTransferTransactionFields.read(buf) +public object FfiConverterOptionalTypeAssetTransferTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): AssetTransferTransactionFields? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeAssetTransferTransactionFields.read(buf) + } - override fun allocationSize(value: AssetTransferTransactionFields?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeAssetTransferTransactionFields.allocationSize(value) - } + override fun allocationSize(value: AssetTransferTransactionFields?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeAssetTransferTransactionFields.allocationSize(value) } + } - override fun write(value: AssetTransferTransactionFields?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeAssetTransferTransactionFields.write(value, buf) - } + override fun write( + value: AssetTransferTransactionFields?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeAssetTransferTransactionFields.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeKeyRegistrationTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): KeyRegistrationTransactionFields? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeKeyRegistrationTransactionFields.read(buf) +public object FfiConverterOptionalTypeKeyRegistrationTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): KeyRegistrationTransactionFields? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeKeyRegistrationTransactionFields.read(buf) + } - override fun allocationSize(value: KeyRegistrationTransactionFields?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeKeyRegistrationTransactionFields.allocationSize(value) - } + override fun allocationSize(value: KeyRegistrationTransactionFields?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeKeyRegistrationTransactionFields.allocationSize(value) } + } - override fun write(value: KeyRegistrationTransactionFields?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeKeyRegistrationTransactionFields.write(value, buf) - } + override fun write( + value: KeyRegistrationTransactionFields?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeKeyRegistrationTransactionFields.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeMultisigSignature: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): MultisigSignature? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeMultisigSignature.read(buf) +public object FfiConverterOptionalTypeMultisigSignature : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): MultisigSignature? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeMultisigSignature.read(buf) + } - override fun allocationSize(value: MultisigSignature?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeMultisigSignature.allocationSize(value) - } + override fun allocationSize(value: MultisigSignature?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeMultisigSignature.allocationSize(value) } + } - override fun write(value: MultisigSignature?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeMultisigSignature.write(value, buf) - } + override fun write( + value: MultisigSignature?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeMultisigSignature.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypePaymentTransactionFields: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): PaymentTransactionFields? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypePaymentTransactionFields.read(buf) +public object FfiConverterOptionalTypePaymentTransactionFields : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): PaymentTransactionFields? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypePaymentTransactionFields.read(buf) + } - override fun allocationSize(value: PaymentTransactionFields?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypePaymentTransactionFields.allocationSize(value) - } + override fun allocationSize(value: PaymentTransactionFields?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypePaymentTransactionFields.allocationSize(value) } + } - override fun write(value: PaymentTransactionFields?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypePaymentTransactionFields.write(value, buf) - } + override fun write( + value: PaymentTransactionFields?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypePaymentTransactionFields.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalTypeStateSchema: FfiConverterRustBuffer { - override fun read(buf: ByteBuffer): StateSchema? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterTypeStateSchema.read(buf) +public object FfiConverterOptionalTypeStateSchema : FfiConverterRustBuffer { + override fun read(buf: ByteBuffer): StateSchema? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterTypeStateSchema.read(buf) + } - override fun allocationSize(value: StateSchema?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterTypeStateSchema.allocationSize(value) - } + override fun allocationSize(value: StateSchema?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterTypeStateSchema.allocationSize(value) } + } - override fun write(value: StateSchema?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterTypeStateSchema.write(value, buf) - } + override fun write( + value: StateSchema?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterTypeStateSchema.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalSequenceULong: FfiConverterRustBuffer?> { - override fun read(buf: ByteBuffer): List? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterSequenceULong.read(buf) +public object FfiConverterOptionalSequenceULong : FfiConverterRustBuffer?> { + override fun read(buf: ByteBuffer): List? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterSequenceULong.read(buf) + } - override fun allocationSize(value: List?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterSequenceULong.allocationSize(value) - } + override fun allocationSize(value: List?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterSequenceULong.allocationSize(value) } + } - override fun write(value: List?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterSequenceULong.write(value, buf) - } + override fun write( + value: List?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterSequenceULong.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalSequenceString: FfiConverterRustBuffer?> { - override fun read(buf: ByteBuffer): List? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterSequenceString.read(buf) +public object FfiConverterOptionalSequenceString : FfiConverterRustBuffer?> { + override fun read(buf: ByteBuffer): List? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterSequenceString.read(buf) + } - override fun allocationSize(value: List?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterSequenceString.allocationSize(value) - } + override fun allocationSize(value: List?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterSequenceString.allocationSize(value) } + } - override fun write(value: List?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterSequenceString.write(value, buf) - } + override fun write( + value: List?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterSequenceString.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalSequenceByteArray: FfiConverterRustBuffer?> { - override fun read(buf: ByteBuffer): List? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterSequenceByteArray.read(buf) +public object FfiConverterOptionalSequenceByteArray : FfiConverterRustBuffer?> { + override fun read(buf: ByteBuffer): List? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterSequenceByteArray.read(buf) + } - override fun allocationSize(value: List?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterSequenceByteArray.allocationSize(value) - } + override fun allocationSize(value: List?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterSequenceByteArray.allocationSize(value) } + } - override fun write(value: List?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterSequenceByteArray.write(value, buf) - } + override fun write( + value: List?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterSequenceByteArray.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterOptionalSequenceTypeBoxReference: FfiConverterRustBuffer?> { - override fun read(buf: ByteBuffer): List? { - if (buf.get().toInt() == 0) { - return null - } - return FfiConverterSequenceTypeBoxReference.read(buf) +public object FfiConverterOptionalSequenceTypeBoxReference : FfiConverterRustBuffer?> { + override fun read(buf: ByteBuffer): List? { + if (buf.get().toInt() == 0) { + return null } + return FfiConverterSequenceTypeBoxReference.read(buf) + } - override fun allocationSize(value: List?): ULong { - if (value == null) { - return 1UL - } else { - return 1UL + FfiConverterSequenceTypeBoxReference.allocationSize(value) - } + override fun allocationSize(value: List?): ULong { + if (value == null) { + return 1UL + } else { + return 1UL + FfiConverterSequenceTypeBoxReference.allocationSize(value) } + } - override fun write(value: List?, buf: ByteBuffer) { - if (value == null) { - buf.put(0) - } else { - buf.put(1) - FfiConverterSequenceTypeBoxReference.write(value, buf) - } + override fun write( + value: List?, + buf: ByteBuffer, + ) { + if (value == null) { + buf.put(0) + } else { + buf.put(1) + FfiConverterSequenceTypeBoxReference.write(value, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceULong: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterULong.read(buf) - } +public object FfiConverterSequenceULong : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterULong.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterULong.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterULong.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterULong.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterULong.write(it, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceString: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterString.read(buf) - } +public object FfiConverterSequenceString : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterString.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterString.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterString.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterString.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterString.write(it, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceByteArray: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterByteArray.read(buf) - } +public object FfiConverterSequenceByteArray : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterByteArray.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterByteArray.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterByteArray.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterByteArray.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterByteArray.write(it, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceTypeBoxReference: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterTypeBoxReference.read(buf) - } +public object FfiConverterSequenceTypeBoxReference : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterTypeBoxReference.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterTypeBoxReference.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterTypeBoxReference.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterTypeBoxReference.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterTypeBoxReference.write(it, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceTypeMultisigSubsignature: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterTypeMultisigSubsignature.read(buf) - } +public object FfiConverterSequenceTypeMultisigSubsignature : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterTypeMultisigSubsignature.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterTypeMultisigSubsignature.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterTypeMultisigSubsignature.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterTypeMultisigSubsignature.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterTypeMultisigSubsignature.write(it, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceTypeSignedTransaction: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterTypeSignedTransaction.read(buf) - } +public object FfiConverterSequenceTypeSignedTransaction : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterTypeSignedTransaction.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterTypeSignedTransaction.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterTypeSignedTransaction.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterTypeSignedTransaction.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterTypeSignedTransaction.write(it, buf) } + } } - - - /** * @suppress */ -public object FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer> { - override fun read(buf: ByteBuffer): List { - val len = buf.getInt() - return List(len) { - FfiConverterTypeTransaction.read(buf) - } +public object FfiConverterSequenceTypeTransaction : FfiConverterRustBuffer> { + override fun read(buf: ByteBuffer): List { + val len = buf.getInt() + return List(len) { + FfiConverterTypeTransaction.read(buf) } + } - override fun allocationSize(value: List): ULong { - val sizeForLength = 4UL - val sizeForItems = value.map { FfiConverterTypeTransaction.allocationSize(it) }.sum() - return sizeForLength + sizeForItems - } + override fun allocationSize(value: List): ULong { + val sizeForLength = 4UL + val sizeForItems = value.map { FfiConverterTypeTransaction.allocationSize(it) }.sum() + return sizeForLength + sizeForItems + } - override fun write(value: List, buf: ByteBuffer) { - buf.putInt(value.size) - value.iterator().forEach { - FfiConverterTypeTransaction.write(it, buf) - } + override fun write( + value: List, + buf: ByteBuffer, + ) { + buf.putInt(value.size) + value.iterator().forEach { + FfiConverterTypeTransaction.write(it, buf) } + } } - /** - * Returns the address of the multisignature account. - * - * # Errors - * /// Returns [`AlgoKitTransactError`] if the multisignature signature is invalid or the address cannot be derived. - */ - @Throws(AlgoKitTransactException::class) fun `addressFromMultisigSignature`(`multisigSignature`: MultisigSignature): kotlin.String { - return FfiConverterString.lift( - uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_address_from_multisig_signature( - FfiConverterTypeMultisigSignature.lower(`multisigSignature`),_status) -} - ) - } - - @Throws(AlgoKitTransactException::class) fun `addressFromPublicKey`(`publicKey`: kotlin.ByteArray): kotlin.String { - return FfiConverterString.lift( - uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_address_from_public_key( - FfiConverterByteArray.lower(`publicKey`),_status) -} - ) - } - - - /** - * Applies a subsignature for a participant to a multisignature signature, replacing any existing signature. - * - * # Errors - * - * Returns [`AlgoKitTransactError`] if the participant address is invalid or not found, or if the signature bytes are invalid. - */ - @Throws(AlgoKitTransactException::class) fun `applyMultisigSubsignature`(`multisigSignature`: MultisigSignature, `participant`: kotlin.String, `subsignature`: kotlin.ByteArray): MultisigSignature { - return FfiConverterTypeMultisigSignature.lift( +/** + * Returns the address of the multisignature account. + * + * # Errors + * /// Returns [`AlgoKitTransactError`] if the multisignature signature is invalid or the address cannot be derived. + */ +@Throws(AlgoKitTransactException::class) +fun `addressFromMultisigSignature`(`multisigSignature`: MultisigSignature): kotlin.String = + FfiConverterString.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_apply_multisig_subsignature( - FfiConverterTypeMultisigSignature.lower(`multisigSignature`),FfiConverterString.lower(`participant`),FfiConverterByteArray.lower(`subsignature`),_status) -} - ) - } - - - @Throws(AlgoKitTransactException::class) fun `assignFee`(`transaction`: Transaction, `feeParams`: FeeParams): Transaction { - return FfiConverterTypeTransaction.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_address_from_multisig_signature( + FfiConverterTypeMultisigSignature.lower(`multisigSignature`), + _status, + ) + }, + ) + +@Throws(AlgoKitTransactException::class) +fun `addressFromPublicKey`(`publicKey`: kotlin.ByteArray): String = + FfiConverterString.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_assign_fee( - FfiConverterTypeTransaction.lower(`transaction`),FfiConverterTypeFeeParams.lower(`feeParams`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_address_from_public_key( + FfiConverterByteArray.lower(`publicKey`), + _status, + ) + }, + ) - @Throws(AlgoKitTransactException::class) fun `calculateFee`(`transaction`: Transaction, `feeParams`: FeeParams): kotlin.ULong { - return FfiConverterULong.lift( +/** + * Applies a subsignature for a participant to a multisignature signature, replacing any existing signature. + * + * # Errors + * + * Returns [`AlgoKitTransactError`] if the participant address is invalid or not found, or if the signature bytes are invalid. + */ +@Throws(AlgoKitTransactException::class) +fun `applyMultisigSubsignature`( + `multisigSignature`: MultisigSignature, + `participant`: kotlin.String, + `subsignature`: kotlin.ByteArray, +): MultisigSignature = + FfiConverterTypeMultisigSignature.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_calculate_fee( - FfiConverterTypeTransaction.lower(`transaction`),FfiConverterTypeFeeParams.lower(`feeParams`),_status) -} - ) - } - - - /** - * Decodes a signed transaction. - * - * # Parameters - * * `encoded_signed_transaction` - The MsgPack encoded signed transaction bytes - * - * # Returns - * The decoded SignedTransaction or an error if decoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `decodeSignedTransaction`(`encodedSignedTransaction`: kotlin.ByteArray): SignedTransaction { - return FfiConverterTypeSignedTransaction.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_apply_multisig_subsignature( + FfiConverterTypeMultisigSignature.lower(`multisigSignature`), + FfiConverterString.lower(`participant`), + FfiConverterByteArray.lower(`subsignature`), + _status, + ) + }, + ) + +@Throws(AlgoKitTransactException::class) +fun `assignFee`( + `transaction`: Transaction, + `feeParams`: FeeParams, +): Transaction = + FfiConverterTypeTransaction.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_signed_transaction( - FfiConverterByteArray.lower(`encodedSignedTransaction`),_status) -} - ) - } - - - /** - * Decodes a collection of MsgPack bytes into a signed transaction collection. - * - * # Parameters - * * `encoded_signed_transactions` - A collection of MsgPack encoded bytes, each representing a signed transaction. - * - * # Returns - * A collection of decoded signed transactions or an error if decoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `decodeSignedTransactions`(`encodedSignedTransactions`: List): List { - return FfiConverterSequenceTypeSignedTransaction.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_assign_fee( + FfiConverterTypeTransaction.lower(`transaction`), + FfiConverterTypeFeeParams.lower(`feeParams`), + _status, + ) + }, + ) + +@Throws(AlgoKitTransactException::class) +fun `calculateFee`( + `transaction`: Transaction, + `feeParams`: FeeParams, +): kotlin.ULong = + FfiConverterULong.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_signed_transactions( - FfiConverterSequenceByteArray.lower(`encodedSignedTransactions`),_status) -} - ) - } - - - /** - * Decodes MsgPack bytes into a transaction. - * - * # Parameters - * * `encoded_tx` - MsgPack encoded bytes representing a transaction. - * - * # Returns - * A decoded transaction or an error if decoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `decodeTransaction`(`encodedTx`: kotlin.ByteArray): Transaction { - return FfiConverterTypeTransaction.lift( - uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_transaction( - FfiConverterByteArray.lower(`encodedTx`),_status) -} - ) - } - - - /** - * Decodes a collection of MsgPack bytes into a transaction collection. - * - * # Parameters - * * `encoded_txs` - A collection of MsgPack encoded bytes, each representing a transaction. - * - * # Returns - * A collection of decoded transactions or an error if decoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `decodeTransactions`(`encodedTxs`: List): List { - return FfiConverterSequenceTypeTransaction.lift( - uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_transactions( - FfiConverterSequenceByteArray.lower(`encodedTxs`),_status) -} - ) - } - - - /** - * Encode a signed transaction to MsgPack for sending on the network. - * - * This method performs canonical encoding. No domain separation prefix is applicable. - * - * # Parameters - * * `signed_transaction` - The signed transaction to encode - * - * # Returns - * The MsgPack encoded bytes or an error if encoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `encodeSignedTransaction`(`signedTransaction`: SignedTransaction): kotlin.ByteArray { - return FfiConverterByteArray.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_calculate_fee( + FfiConverterTypeTransaction.lower(`transaction`), + FfiConverterTypeFeeParams.lower(`feeParams`), + _status, + ) + }, + ) + +/** + * Decodes a signed transaction. + * + * # Parameters + * * `encoded_signed_transaction` - The MsgPack encoded signed transaction bytes + * + * # Returns + * The decoded SignedTransaction or an error if decoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `decodeSignedTransaction`(`encodedSignedTransaction`: kotlin.ByteArray): SignedTransaction = + FfiConverterTypeSignedTransaction.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_signed_transaction( - FfiConverterTypeSignedTransaction.lower(`signedTransaction`),_status) -} - ) - } - - - /** - * Encode signed transactions to MsgPack for sending on the network. - * - * This method performs canonical encoding. No domain separation prefix is applicable. - * - * # Parameters - * * `signed_transactions` - A collection of signed transactions to encode - * - * # Returns - * A collection of MsgPack encoded bytes or an error if encoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `encodeSignedTransactions`(`signedTransactions`: List): List { - return FfiConverterSequenceByteArray.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_signed_transaction( + FfiConverterByteArray.lower(`encodedSignedTransaction`), + _status, + ) + }, + ) + +/** + * Decodes a collection of MsgPack bytes into a signed transaction collection. + * + * # Parameters + * * `encoded_signed_transactions` - A collection of MsgPack encoded bytes, each representing a signed transaction. + * + * # Returns + * A collection of decoded signed transactions or an error if decoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `decodeSignedTransactions`(`encodedSignedTransactions`: List): List = + FfiConverterSequenceTypeSignedTransaction.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_signed_transactions( - FfiConverterSequenceTypeSignedTransaction.lower(`signedTransactions`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_signed_transactions( + FfiConverterSequenceByteArray.lower(`encodedSignedTransactions`), + _status, + ) + }, + ) - /** - * Encode the transaction with the domain separation (e.g. "TX") prefix - */ - @Throws(AlgoKitTransactException::class) fun `encodeTransaction`(`transaction`: Transaction): kotlin.ByteArray { - return FfiConverterByteArray.lift( +/** + * Decodes MsgPack bytes into a transaction. + * + * # Parameters + * * `encoded_tx` - MsgPack encoded bytes representing a transaction. + * + * # Returns + * A decoded transaction or an error if decoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `decodeTransaction`(`encodedTx`: kotlin.ByteArray): Transaction = + FfiConverterTypeTransaction.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_transaction( - FfiConverterTypeTransaction.lower(`transaction`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_transaction( + FfiConverterByteArray.lower(`encodedTx`), + _status, + ) + }, + ) - /** - * Encode the transaction without the domain separation (e.g. "TX") prefix - * This is useful for encoding the transaction for signing with tools that automatically add "TX" prefix to the transaction bytes. - */ - @Throws(AlgoKitTransactException::class) fun `encodeTransactionRaw`(`transaction`: Transaction): kotlin.ByteArray { - return FfiConverterByteArray.lift( +/** + * Decodes a collection of MsgPack bytes into a transaction collection. + * + * # Parameters + * * `encoded_txs` - A collection of MsgPack encoded bytes, each representing a transaction. + * + * # Returns + * A collection of decoded transactions or an error if decoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `decodeTransactions`(`encodedTxs`: List): List = + FfiConverterSequenceTypeTransaction.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_transaction_raw( - FfiConverterTypeTransaction.lower(`transaction`),_status) -} - ) - } - - - /** - * Encode transactions to MsgPack with the domain separation (e.g. "TX") prefix. - * - * # Parameters - * * `transactions` - A collection of transactions to encode - * - * # Returns - * A collection of MsgPack encoded bytes or an error if encoding fails. - */ - @Throws(AlgoKitTransactException::class) fun `encodeTransactions`(`transactions`: List): List { - return FfiConverterSequenceByteArray.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_decode_transactions( + FfiConverterSequenceByteArray.lower(`encodedTxs`), + _status, + ) + }, + ) + +/** + * Encode a signed transaction to MsgPack for sending on the network. + * + * This method performs canonical encoding. No domain separation prefix is applicable. + * + * # Parameters + * * `signed_transaction` - The signed transaction to encode + * + * # Returns + * The MsgPack encoded bytes or an error if encoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `encodeSignedTransaction`(`signedTransaction`: SignedTransaction): kotlin.ByteArray = + FfiConverterByteArray.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_transactions( - FfiConverterSequenceTypeTransaction.lower(`transactions`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_signed_transaction( + FfiConverterTypeSignedTransaction.lower(`signedTransaction`), + _status, + ) + }, + ) - /** - * Return the size of the transaction in bytes as if it was already signed and encoded. - * This is useful for estimating the fee for the transaction. - */ - @Throws(AlgoKitTransactException::class) fun `estimateTransactionSize`(`transaction`: Transaction): kotlin.ULong { - return FfiConverterULong.lift( +/** + * Encode signed transactions to MsgPack for sending on the network. + * + * This method performs canonical encoding. No domain separation prefix is applicable. + * + * # Parameters + * * `signed_transactions` - A collection of signed transactions to encode + * + * # Returns + * A collection of MsgPack encoded bytes or an error if encoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `encodeSignedTransactions`(`signedTransactions`: List): List = + FfiConverterSequenceByteArray.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_estimate_transaction_size( - FfiConverterTypeTransaction.lower(`transaction`),_status) -} - ) - } - - fun `getAlgorandConstant`(`constant`: AlgorandConstant): kotlin.ULong { - return FfiConverterULong.lift( - uniffiRustCall() { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_algorand_constant( - FfiConverterTypeAlgorandConstant.lower(`constant`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_signed_transactions( + FfiConverterSequenceTypeSignedTransaction.lower(`signedTransactions`), + _status, + ) + }, + ) - /** - * Get the transaction type from the encoded transaction. - * This is particularly useful when decoding a transaction that has an unknown type - */ - @Throws(AlgoKitTransactException::class) fun `getEncodedTransactionType`(`encodedTransaction`: kotlin.ByteArray): TransactionType { - return FfiConverterTypeTransactionType.lift( +/** + * Encode the transaction with the domain separation (e.g. "TX") prefix + */ +@Throws(AlgoKitTransactException::class) +fun `encodeTransaction`(`transaction`: Transaction): kotlin.ByteArray = + FfiConverterByteArray.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_encoded_transaction_type( - FfiConverterByteArray.lower(`encodedTransaction`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_transaction( + FfiConverterTypeTransaction.lower(`transaction`), + _status, + ) + }, + ) - /** - * Get the base32 transaction ID string for a transaction. - */ - @Throws(AlgoKitTransactException::class) fun `getTransactionId`(`transaction`: Transaction): kotlin.String { - return FfiConverterString.lift( +/** + * Encode the transaction without the domain separation (e.g. "TX") prefix + * This is useful for encoding the transaction for signing with tools that automatically add "TX" prefix to the transaction bytes. + */ +@Throws(AlgoKitTransactException::class) +fun `encodeTransactionRaw`(`transaction`: Transaction): kotlin.ByteArray = + FfiConverterByteArray.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_transaction_id( - FfiConverterTypeTransaction.lower(`transaction`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_transaction_raw( + FfiConverterTypeTransaction.lower(`transaction`), + _status, + ) + }, + ) - /** - * Get the raw 32-byte transaction ID for a transaction. - */ - @Throws(AlgoKitTransactException::class) fun `getTransactionIdRaw`(`transaction`: Transaction): kotlin.ByteArray { - return FfiConverterByteArray.lift( +/** + * Encode transactions to MsgPack with the domain separation (e.g. "TX") prefix. + * + * # Parameters + * * `transactions` - A collection of transactions to encode + * + * # Returns + * A collection of MsgPack encoded bytes or an error if encoding fails. + */ +@Throws(AlgoKitTransactException::class) +fun `encodeTransactions`(`transactions`: List): List = + FfiConverterSequenceByteArray.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_transaction_id_raw( - FfiConverterTypeTransaction.lower(`transaction`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_encode_transactions( + FfiConverterSequenceTypeTransaction.lower(`transactions`), + _status, + ) + }, + ) - /** - * Groups a collection of transactions by calculating and assigning the group to each transaction. - */ - @Throws(AlgoKitTransactException::class) fun `groupTransactions`(`transactions`: List): List { - return FfiConverterSequenceTypeTransaction.lift( +/** + * Return the size of the transaction in bytes as if it was already signed and encoded. + * This is useful for estimating the fee for the transaction. + */ +@Throws(AlgoKitTransactException::class) +fun `estimateTransactionSize`(`transaction`: Transaction): kotlin.ULong = + FfiConverterULong.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_group_transactions( - FfiConverterSequenceTypeTransaction.lower(`transactions`),_status) -} - ) - } - - - /** - * Merges two multisignature signatures, replacing signatures in the first with those from the second where present. - * - * # Errors - * - * Returns [`AlgoKitTransactError`] if the multisignature parameters or participants do not match. - */ - @Throws(AlgoKitTransactException::class) fun `mergeMultisignatures`(`multisigSignatureA`: MultisigSignature, `multisigSignatureB`: MultisigSignature): MultisigSignature { - return FfiConverterTypeMultisigSignature.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_estimate_transaction_size( + FfiConverterTypeTransaction.lower(`transaction`), + _status, + ) + }, + ) + +fun `getAlgorandConstant`(`constant`: AlgorandConstant): kotlin.ULong = + FfiConverterULong.lift( + uniffiRustCall { _status -> + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_algorand_constant( + FfiConverterTypeAlgorandConstant.lower(`constant`), + _status, + ) + }, + ) + +/** + * Get the transaction type from the encoded transaction. + * This is particularly useful when decoding a transaction that has an unknown type + */ +@Throws(AlgoKitTransactException::class) +fun `getEncodedTransactionType`(`encodedTransaction`: kotlin.ByteArray): TransactionType = + FfiConverterTypeTransactionType.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_merge_multisignatures( - FfiConverterTypeMultisigSignature.lower(`multisigSignatureA`),FfiConverterTypeMultisigSignature.lower(`multisigSignatureB`),_status) -} - ) - } - - - /** - * Creates an empty multisignature signature from a list of participant addresses. - * - * # Errors - * - * Returns [`AlgoKitTransactError`] if any address is invalid or the multisignature parameters are invalid. - */ - @Throws(AlgoKitTransactException::class) fun `newMultisigSignature`(`version`: kotlin.UByte, `threshold`: kotlin.UByte, `participants`: List): MultisigSignature { - return FfiConverterTypeMultisigSignature.lift( + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_encoded_transaction_type( + FfiConverterByteArray.lower(`encodedTransaction`), + _status, + ) + }, + ) + +/** + * Get the base32 transaction ID string for a transaction. + */ +@Throws(AlgoKitTransactException::class) +fun `getTransactionId`(`transaction`: Transaction): kotlin.String = + FfiConverterString.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_new_multisig_signature( - FfiConverterUByte.lower(`version`),FfiConverterUByte.lower(`threshold`),FfiConverterSequenceString.lower(`participants`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_transaction_id( + FfiConverterTypeTransaction.lower(`transaction`), + _status, + ) + }, + ) - /** - * Returns the list of participant addresses from a multisignature signature. - * - * # Errors - * Returns [`AlgoKitTransactError`] if the multisignature is invalid. - */ - @Throws(AlgoKitTransactException::class) fun `participantsFromMultisigSignature`(`multisigSignature`: MultisigSignature): List { - return FfiConverterSequenceString.lift( +/** + * Get the raw 32-byte transaction ID for a transaction. + */ +@Throws(AlgoKitTransactException::class) +fun `getTransactionIdRaw`(`transaction`: Transaction): kotlin.ByteArray = + FfiConverterByteArray.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_participants_from_multisig_signature( - FfiConverterTypeMultisigSignature.lower(`multisigSignature`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_get_transaction_id_raw( + FfiConverterTypeTransaction.lower(`transaction`), + _status, + ) + }, + ) - @Throws(AlgoKitTransactException::class) fun `publicKeyFromAddress`(`address`: kotlin.String): kotlin.ByteArray { - return FfiConverterByteArray.lift( +/** + * Groups a collection of transactions by calculating and assigning the group to each transaction. + */ +@Throws(AlgoKitTransactException::class) +fun `groupTransactions`(`transactions`: List): List = + FfiConverterSequenceTypeTransaction.lift( uniffiRustCallWithError(AlgoKitTransactException) { _status -> - UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_public_key_from_address( - FfiConverterString.lower(`address`),_status) -} - ) - } - + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_group_transactions( + FfiConverterSequenceTypeTransaction.lower(`transactions`), + _status, + ) + }, + ) +/** + * Merges two multisignature signatures, replacing signatures in the first with those from the second where present. + * + * # Errors + * + * Returns [`AlgoKitTransactError`] if the multisignature parameters or participants do not match. + */ +@Throws(AlgoKitTransactException::class) +fun `mergeMultisignatures`( + `multisigSignatureA`: MultisigSignature, + `multisigSignatureB`: MultisigSignature, +): MultisigSignature = + FfiConverterTypeMultisigSignature.lift( + uniffiRustCallWithError(AlgoKitTransactException) { _status -> + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_merge_multisignatures( + FfiConverterTypeMultisigSignature.lower(`multisigSignatureA`), + FfiConverterTypeMultisigSignature.lower(`multisigSignatureB`), + _status, + ) + }, + ) + +/** + * Creates an empty multisignature signature from a list of participant addresses. + * + * # Errors + * + * Returns [`AlgoKitTransactError`] if any address is invalid or the multisignature parameters are invalid. + */ +@Throws(AlgoKitTransactException::class) +fun `newMultisigSignature`( + `version`: kotlin.UByte, + `threshold`: kotlin.UByte, + `participants`: List, +): MultisigSignature = + FfiConverterTypeMultisigSignature.lift( + uniffiRustCallWithError(AlgoKitTransactException) { _status -> + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_new_multisig_signature( + FfiConverterUByte.lower(`version`), + FfiConverterUByte.lower(`threshold`), + FfiConverterSequenceString.lower(`participants`), + _status, + ) + }, + ) +/** + * Returns the list of participant addresses from a multisignature signature. + * + * # Errors + * Returns [`AlgoKitTransactError`] if the multisignature is invalid. + */ +@Throws(AlgoKitTransactException::class) +fun `participantsFromMultisigSignature`(`multisigSignature`: MultisigSignature): List = + FfiConverterSequenceString.lift( + uniffiRustCallWithError(AlgoKitTransactException) { _status -> + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_participants_from_multisig_signature( + FfiConverterTypeMultisigSignature.lower(`multisigSignature`), + _status, + ) + }, + ) + +@Throws(AlgoKitTransactException::class) +fun `publicKeyFromAddress`(`address`: kotlin.String): kotlin.ByteArray = + FfiConverterByteArray.lift( + uniffiRustCallWithError(AlgoKitTransactException) { _status -> + UniffiLib.INSTANCE.uniffi_algokit_transact_ffi_fn_func_public_key_from_address( + FfiConverterString.lower(`address`), + _status, + ) + }, + )