public static FinancialTransaction FromBlockchainHash(Organization organization, string blockchainTransactionHash) { int[] transactionIds = SwarmDb.GetDatabaseForReading() .GetObjectsByOptionalData(ObjectType.FinancialTransaction, ObjectOptionalDataType.FinancialTransactionBlockchainHash, blockchainTransactionHash); // There may be multiple transactions in this Swarmops installation referring to this transaction on the blockchain, but only // one per organization. So find the transaction that matches the org we want. foreach (int transactionId in transactionIds) { FinancialTransaction potentialResult = FinancialTransaction.FromIdentity(transactionId); if (potentialResult.OrganizationId == organization.Identity) { return(potentialResult); } } throw new ArgumentException("No match for supplied blockchain tx hash and organization"); }