mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-android.git
synced 2026-07-22 21:55:53 +00:00
Add missing query() to QueryableStorageEntry3
QueryableStorageEntry2 has always had a single-key-tuple query(k1, k2) alongside entries()/keys(), but QueryableStorageEntry3 only ever grew entries()/keys() - nothing in the codebase needed a direct 3-key point query until BridgeMultisigRuntimeApi's Assets.Approvals lookup. Added query(k1, k2, k3), mirroring QueryableStorageEntry2's implementation exactly.
This commit is contained in:
+13
@@ -12,6 +12,9 @@ typealias QueryableStorageBinder3<K1, K2, K3, V> = (dynamicInstance: Any, key1:
|
||||
|
||||
interface QueryableStorageEntry3<I1, I2, I3, T : Any> {
|
||||
|
||||
context(StorageQueryContext)
|
||||
suspend fun query(argument1: I1, argument2: I2, argument3: I3): T?
|
||||
|
||||
context(StorageQueryContext)
|
||||
suspend fun entries(keys: List<Triple<I1, I2, I3>>): Map<Triple<I1, I2, I3>, T>
|
||||
|
||||
@@ -32,6 +35,16 @@ internal class RealQueryableStorageEntry3<I1, I2, I3, T : Any>(
|
||||
private val key3FromInternalConverter: QueryableStorageKeyFromInternalBinder<I3>? = null,
|
||||
) : QueryableStorageEntry3<I1, I2, I3, T> {
|
||||
|
||||
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<Triple<I1, I2, I3>>): Map<Triple<I1, I2, I3>, T> {
|
||||
return storageEntry.entries(
|
||||
|
||||
Reference in New Issue
Block a user