diff --git a/runtime/src/main/java/io/novafoundation/nova/runtime/storage/source/query/api/QueryableStorageEntry3.kt b/runtime/src/main/java/io/novafoundation/nova/runtime/storage/source/query/api/QueryableStorageEntry3.kt index ec1d0264..4c156210 100644 --- a/runtime/src/main/java/io/novafoundation/nova/runtime/storage/source/query/api/QueryableStorageEntry3.kt +++ b/runtime/src/main/java/io/novafoundation/nova/runtime/storage/source/query/api/QueryableStorageEntry3.kt @@ -12,6 +12,9 @@ typealias QueryableStorageBinder3 = (dynamicInstance: Any, key1: interface QueryableStorageEntry3 { + context(StorageQueryContext) + suspend fun query(argument1: I1, argument2: I2, argument3: I3): T? + context(StorageQueryContext) suspend fun entries(keys: List>): Map, T> @@ -32,6 +35,16 @@ internal class RealQueryableStorageEntry3( private val key3FromInternalConverter: QueryableStorageKeyFromInternalBinder? = null, ) : QueryableStorageEntry3 { + context(StorageQueryContext) + override suspend fun query(argument1: I1, argument2: I2, argument3: I3): T? { + return storageEntry.query( + convertKey1ToInternal(argument1), + convertKey2ToInternal(argument2), + convertKey3ToInternal(argument3), + binding = { decoded -> decoded?.let { binding(it, argument1, argument2, argument3) } } + ) + } + context(StorageQueryContext) override suspend fun entries(keys: List>): Map, T> { return storageEntry.entries(