[#1429] Get memos for rawID
- New API for getting the memos by transaction's rawID [#1429] Get memos for rawID - Mock regenerated to have unique names [#1429] Get memos for rawID - Offlinetest fixed
This commit is contained in:
parent
d97d19694a
commit
9de9ea5e78
|
@ -6,6 +6,9 @@ and this library adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
# Unreleased
|
||||
|
||||
## Added
|
||||
- New API `getMemos(for rawID: Data) -> [Memos]` to load memos for a certain transaction (ZcashTransaction.Overview) defined by its rawID.
|
||||
|
||||
# 2.1.7 - 2024-05-16
|
||||
|
||||
## Changed
|
||||
|
|
|
@ -135,15 +135,19 @@ class TransactionSQLDAO: TransactionRepository {
|
|||
return try await execute(query) { try ZcashTransaction.Overview(row: $0) }
|
||||
}
|
||||
|
||||
func findMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo] {
|
||||
func findMemos(for rawID: Data) async throws -> [Memo] {
|
||||
do {
|
||||
return try await getTransactionOutputs(for: transaction.rawID)
|
||||
return try await getTransactionOutputs(for: rawID)
|
||||
.compactMap { $0.memo }
|
||||
} catch {
|
||||
throw ZcashError.transactionRepositoryFindMemos(error)
|
||||
}
|
||||
}
|
||||
|
||||
func findMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo] {
|
||||
try await findMemos(for: transaction.rawID)
|
||||
}
|
||||
|
||||
func getTransactionOutputs(for rawID: Data) async throws -> [ZcashTransaction.Output] {
|
||||
let query = self.txOutputsView
|
||||
.filter(ZcashTransaction.Output.Column.rawID == Blob(bytes: rawID.bytes))
|
||||
|
|
|
@ -19,6 +19,9 @@ protocol TransactionRepository {
|
|||
func findPendingTransactions(latestHeight: BlockHeight, offset: Int, limit: Int) async throws -> [ZcashTransaction.Overview]
|
||||
func findReceived(offset: Int, limit: Int) async throws -> [ZcashTransaction.Overview]
|
||||
func findSent(offset: Int, limit: Int) async throws -> [ZcashTransaction.Overview]
|
||||
// sourcery: mockedName="findMemosForRawID"
|
||||
func findMemos(for rawID: Data) async throws -> [Memo]
|
||||
// sourcery: mockedName="findMemosForZcashTransaction"
|
||||
func findMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo]
|
||||
func getRecipients(for rawID: Data) async throws -> [TransactionRecipient]
|
||||
func getTransactionOutputs(for rawID: Data) async throws -> [ZcashTransaction.Output]
|
||||
|
|
|
@ -263,6 +263,11 @@ public protocol Synchronizer: AnyObject {
|
|||
/// - Parameter kind: Transaction Kind expected from this PaginatedTransactionRepository
|
||||
func paginatedTransactions(of kind: TransactionKind) -> PaginatedTransactionRepository
|
||||
|
||||
/// Get all memos for `transaction.rawID`.
|
||||
///
|
||||
// sourcery: mockedName="getMemosForRawID"
|
||||
func getMemos(for rawID: Data) async throws -> [Memo]
|
||||
|
||||
/// Get all memos for `transaction`.
|
||||
///
|
||||
// sourcery: mockedName="getMemosForClearedTransaction"
|
||||
|
|
|
@ -480,8 +480,12 @@ public class SDKSynchronizer: Synchronizer {
|
|||
PagedTransactionRepositoryBuilder.build(initializer: initializer, kind: .all)
|
||||
}
|
||||
|
||||
public func getMemos(for rawID: Data) async throws -> [Memo] {
|
||||
return try await transactionRepository.findMemos(for: rawID)
|
||||
}
|
||||
|
||||
public func getMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo] {
|
||||
return try await transactionRepository.findMemos(for: transaction)
|
||||
return try await transactionRepository.findMemos(for: transaction.rawID)
|
||||
}
|
||||
|
||||
public func getRecipients(for transaction: ZcashTransaction.Overview) async -> [TransactionRecipient] {
|
||||
|
|
|
@ -201,6 +201,10 @@ extension MockTransactionRepository: TransactionRepository {
|
|||
throw MockTransactionRepositoryError.notImplemented
|
||||
}
|
||||
|
||||
func findMemos(for rawID: Data) throws -> [ZcashLightClientKit.Memo] {
|
||||
throw MockTransactionRepositoryError.notImplemented
|
||||
}
|
||||
|
||||
func findMemos(for transaction: ZcashLightClientKit.ZcashTransaction.Overview) throws -> [ZcashLightClientKit.Memo] {
|
||||
throw MockTransactionRepositoryError.notImplemented
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated using Sourcery 2.2.3 — https://github.com/krzysztofzablocki/Sourcery
|
||||
// Generated using Sourcery 2.2.4 — https://github.com/krzysztofzablocki/Sourcery
|
||||
// DO NOT EDIT
|
||||
import Combine
|
||||
@testable import ZcashLightClientKit
|
||||
|
@ -1600,6 +1600,30 @@ class SynchronizerMock: Synchronizer {
|
|||
|
||||
// MARK: - getMemos
|
||||
|
||||
var getMemosForRawIDThrowableError: Error?
|
||||
var getMemosForRawIDCallsCount = 0
|
||||
var getMemosForRawIDCalled: Bool {
|
||||
return getMemosForRawIDCallsCount > 0
|
||||
}
|
||||
var getMemosForRawIDReceivedRawID: Data?
|
||||
var getMemosForRawIDReturnValue: [Memo]!
|
||||
var getMemosForRawIDClosure: ((Data) async throws -> [Memo])?
|
||||
|
||||
func getMemos(for rawID: Data) async throws -> [Memo] {
|
||||
if let error = getMemosForRawIDThrowableError {
|
||||
throw error
|
||||
}
|
||||
getMemosForRawIDCallsCount += 1
|
||||
getMemosForRawIDReceivedRawID = rawID
|
||||
if let closure = getMemosForRawIDClosure {
|
||||
return try await closure(rawID)
|
||||
} else {
|
||||
return getMemosForRawIDReturnValue
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - getMemos
|
||||
|
||||
var getMemosForClearedTransactionThrowableError: Error?
|
||||
var getMemosForClearedTransactionCallsCount = 0
|
||||
var getMemosForClearedTransactionCalled: Bool {
|
||||
|
@ -2094,25 +2118,49 @@ class TransactionRepositoryMock: TransactionRepository {
|
|||
|
||||
// MARK: - findMemos
|
||||
|
||||
var findMemosForThrowableError: Error?
|
||||
var findMemosForCallsCount = 0
|
||||
var findMemosForCalled: Bool {
|
||||
return findMemosForCallsCount > 0
|
||||
var findMemosForRawIDThrowableError: Error?
|
||||
var findMemosForRawIDCallsCount = 0
|
||||
var findMemosForRawIDCalled: Bool {
|
||||
return findMemosForRawIDCallsCount > 0
|
||||
}
|
||||
var findMemosForReceivedTransaction: ZcashTransaction.Overview?
|
||||
var findMemosForReturnValue: [Memo]!
|
||||
var findMemosForClosure: ((ZcashTransaction.Overview) async throws -> [Memo])?
|
||||
var findMemosForRawIDReceivedRawID: Data?
|
||||
var findMemosForRawIDReturnValue: [Memo]!
|
||||
var findMemosForRawIDClosure: ((Data) async throws -> [Memo])?
|
||||
|
||||
func findMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo] {
|
||||
if let error = findMemosForThrowableError {
|
||||
func findMemos(for rawID: Data) async throws -> [Memo] {
|
||||
if let error = findMemosForRawIDThrowableError {
|
||||
throw error
|
||||
}
|
||||
findMemosForCallsCount += 1
|
||||
findMemosForReceivedTransaction = transaction
|
||||
if let closure = findMemosForClosure {
|
||||
findMemosForRawIDCallsCount += 1
|
||||
findMemosForRawIDReceivedRawID = rawID
|
||||
if let closure = findMemosForRawIDClosure {
|
||||
return try await closure(rawID)
|
||||
} else {
|
||||
return findMemosForRawIDReturnValue
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - findMemos
|
||||
|
||||
var findMemosForZcashTransactionThrowableError: Error?
|
||||
var findMemosForZcashTransactionCallsCount = 0
|
||||
var findMemosForZcashTransactionCalled: Bool {
|
||||
return findMemosForZcashTransactionCallsCount > 0
|
||||
}
|
||||
var findMemosForZcashTransactionReceivedTransaction: ZcashTransaction.Overview?
|
||||
var findMemosForZcashTransactionReturnValue: [Memo]!
|
||||
var findMemosForZcashTransactionClosure: ((ZcashTransaction.Overview) async throws -> [Memo])?
|
||||
|
||||
func findMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo] {
|
||||
if let error = findMemosForZcashTransactionThrowableError {
|
||||
throw error
|
||||
}
|
||||
findMemosForZcashTransactionCallsCount += 1
|
||||
findMemosForZcashTransactionReceivedTransaction = transaction
|
||||
if let closure = findMemosForZcashTransactionClosure {
|
||||
return try await closure(transaction)
|
||||
} else {
|
||||
return findMemosForReturnValue
|
||||
return findMemosForZcashTransactionReturnValue
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
scriptDir=${0:a:h}
|
||||
cd "${scriptDir}"
|
||||
|
||||
sourcery_version=2.2.3
|
||||
sourcery_version=2.2.4
|
||||
|
||||
if which sourcery >/dev/null; then
|
||||
if [[ $(sourcery --version) != $sourcery_version ]]; then
|
||||
|
|
Loading…
Reference in New Issue