Files
qortal/src/repository/hsqldb/transaction/HSQLDBGenesisTransactionRepository.java
catbref a0824b21d4 Converted most of CreateOrderTransaction
Some tidying up of other transaction-related repositories and transformers.
2018-06-13 14:29:15 +01:00

52 lines
1.7 KiB
Java

package repository.hsqldb.transaction;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import data.transaction.GenesisTransactionData;
import data.transaction.TransactionData;
import repository.DataException;
import repository.hsqldb.HSQLDBRepository;
import repository.hsqldb.HSQLDBSaver;
public class HSQLDBGenesisTransactionRepository extends HSQLDBTransactionRepository {
public HSQLDBGenesisTransactionRepository(HSQLDBRepository repository) {
super(repository);
}
TransactionData fromBase(byte[] signature, byte[] reference, byte[] creatorPublicKey, long timestamp, BigDecimal fee) throws DataException {
try {
ResultSet rs = this.repository.checkedExecute("SELECT recipient, amount FROM GenesisTransactions WHERE signature = ?", signature);
if (rs == null)
return null;
String recipient = rs.getString(1);
BigDecimal amount = rs.getBigDecimal(2).setScale(8);
return new GenesisTransactionData(recipient, amount, timestamp, signature);
} catch (SQLException e) {
throw new DataException("Unable to fetch genesis transaction from repository", e);
}
}
@Override
public void save(TransactionData transactionData) throws DataException {
super.save(transactionData);
GenesisTransactionData genesisTransactionData = (GenesisTransactionData) transactionData;
HSQLDBSaver saveHelper = new HSQLDBSaver("GenesisTransactions");
saveHelper.bind("signature", genesisTransactionData.getSignature()).bind("recipient", genesisTransactionData.getRecipient()).bind("amount",
genesisTransactionData.getAmount());
try {
saveHelper.execute(this.repository);
} catch (SQLException e) {
throw new DataException("Unable to save genesis transaction into repository", e);
}
}
}