private TransactionData Convert(TransactionOutputData source) { var target = new TransactionData { OutPoint = source.OutPoint, Address = source.Address, Id = source.Id ?? source.OutPoint.Hash, Amount = source.Amount ?? 0, IndexInTransaction = source.Index, BlockHeight = source.BlockHeight, BlockHash = source.BlockHash, BlockIndex = source.BlockIndex, CreationTime = source.CreationTime, ScriptPubKey = source.ScriptPubKey ?? Script.Empty, IsPropagated = source.IsPropagated, IsCoinBase = source.IsCoinBase, IsCoinStake = source.IsCoinStake, IsColdCoinStake = source.IsColdCoinStake, AccountIndex = source.AccountIndex, MerkleProof = source.MerkleProof, Hex = source.Hex, SpendingDetailsTransactionId = source.SpendingDetails?.TransactionId, SpendingDetailsBlockHeight = source.SpendingDetails?.BlockHeight, SpendingDetailsBlockIndex = source.SpendingDetails?.BlockIndex, SpendingDetailsIsCoinStake = source.SpendingDetails?.IsCoinStake, SpendingDetailsCreationTime = source.SpendingDetails?.CreationTime, SpendingDetailsPayments = source.SpendingDetails?.Payments, SpendingDetailsHex = source.SpendingDetails?.Hex }; return(target); }
public void InsertOrUpdate(TransactionOutputData item) { TransactionData insert = this.Convert(item); var sql = @$ "INSERT INTO TransactionData (OutPoint, Address, Id, Amount, IndexInTransaction, BlockHeight, BlockHash, BlockIndex, CreationTime, ScriptPubKey, IsPropagated, IsCoinBase, IsCoinStake, IsColdCoinStake, AccountIndex, MerkleProof, Hex, SpendingDetailsTransactionId, SpendingDetailsBlockHeight, SpendingDetailsBlockIndex, SpendingDetailsIsCoinStake, SpendingDetailsCreationTime, SpendingDetailsPayments, SpendingDetailsHex) VALUES (@OutPoint, @Address, @Id, @Amount, @IndexInTransaction, @BlockHeight, @BlockHash, @BlockIndex, @CreationTime, @ScriptPubKey, @IsPropagated, @IsCoinBase, @IsCoinStake, @IsColdCoinStake, @AccountIndex, @MerkleProof, @Hex, @SpendingDetailsTransactionId, @SpendingDetailsBlockHeight, @SpendingDetailsBlockIndex, @SpendingDetailsIsCoinStake, @SpendingDetailsCreationTime, @SpendingDetailsPayments, @SpendingDetailsHex) ON CONFLICT(OutPoint) DO UPDATE SET IndexInTransaction = @IndexInTransaction, BlockHeight = @BlockHeight, BlockHash = @BlockHash, BlockIndex = @BlockIndex, CreationTime = @CreationTime, IsPropagated = @IsPropagated, IsColdCoinStake = @IsColdCoinStake, AccountIndex = @AccountIndex, MerkleProof = @MerkleProof, Hex = @Hex, SpendingDetailsTransactionId = @SpendingDetailsTransactionId, SpendingDetailsBlockHeight = @SpendingDetailsBlockHeight, SpendingDetailsBlockIndex = @SpendingDetailsBlockIndex, SpendingDetailsIsCoinStake = @SpendingDetailsIsCoinStake, SpendingDetailsCreationTime = @SpendingDetailsCreationTime, SpendingDetailsPayments = @SpendingDetailsPayments, SpendingDetailsHex = @SpendingDetailsHex;"; this.sqliteConnection.Execute(sql, insert); }
public TransactionOutputData GetForOutput(OutPoint outPoint) { var trx = this.sqliteConnection.QueryFirstOrDefault <TransactionData>( "SELECT * FROM TransactionData WHERE OutPoint = @outPoint", new { outPoint }); if (trx == null) { return(null); } TransactionOutputData ret = this.Convert(trx); return(ret); }
public TransactionOutputData GetForOutput(OutPoint outPoint) { TransactionData trx = null; using var conn = this.GetDbConnection(); trx = conn.QueryFirstOrDefault <TransactionData>("SELECT * FROM TransactionData WHERE OutPoint = @outPoint", new { outPoint }); if (trx == null) { return(null); } TransactionOutputData ret = this.Convert(trx); return(ret); }
private TransactionOutputData Convert(TransactionData source) { var target = new TransactionOutputData { OutPoint = source.OutPoint, Address = source.Address, Id = source.Id, Amount = source.Amount, Index = source.IndexInTransaction, BlockHeight = source.BlockHeight, BlockIndex = source.BlockIndex, BlockHash = source.BlockHash, CreationTime = source.CreationTime, ScriptPubKey = source.ScriptPubKey, IsPropagated = source.IsPropagated, IsCoinBase = source.IsCoinBase, IsCoinStake = source.IsCoinStake, IsColdCoinStake = source.IsColdCoinStake, AccountIndex = source.AccountIndex, MerkleProof = source.MerkleProof, Hex = source.Hex }; if (source.SpendingDetailsTransactionId != null) { target.SpendingDetails = new SpendingDetails { TransactionId = source.SpendingDetailsTransactionId, BlockHeight = source.SpendingDetailsBlockHeight, BlockIndex = source.SpendingDetailsBlockIndex, IsCoinStake = source.SpendingDetailsIsCoinStake, CreationTime = source.SpendingDetailsCreationTime.Value, Payments = source.SpendingDetailsPayments, Hex = source.SpendingDetailsHex }; } return(target); }
public void InsertOrUpdate(TransactionOutputData item) { this.trxCol.Upsert(item); }