@ -485,18 +485,14 @@ public class DefaultBlockchain implements MutableBlockchain {
final List < TransactionReceipt > transactionReceipts ,
final List < TransactionReceipt > transactionReceipts ,
final Optional < Difficulty > maybeTotalDifficulty ) {
final Optional < Difficulty > maybeTotalDifficulty ) {
final BlockchainStorage . Updater updater = blockchainStorage . updater ( ) ;
final BlockchainStorage . Updater updater = blockchainStorage . updater ( ) ;
final Hash hash = block . getHash ( ) ;
final Hash blockHash = block . getHash ( ) ;
updater . putBlockHeader ( hash , block . getHeader ( ) ) ;
updater . putBlockHeader ( blockHash , block . getHeader ( ) ) ;
updater . putBlockHash ( block . getHeader ( ) . getNumber ( ) , hash ) ;
updater . putBlockHash ( block . getHeader ( ) . getNumber ( ) , blockHash ) ;
updater . putBlockBody ( hash , block . getBody ( ) ) ;
updater . putBlockBody ( blockHash , block . getBody ( ) ) ;
final int nbTrx = block . getBody ( ) . getTransactions ( ) . size ( ) ;
indexTransactionsForBlock ( updater , blockHash , block . getBody ( ) . getTransactions ( ) ) ;
for ( int i = 0 ; i < nbTrx ; i + + ) {
updater . putTransactionReceipts ( blockHash , transactionReceipts ) ;
final Hash transactionHash = block . getBody ( ) . getTransactions ( ) . get ( i ) . getHash ( ) ;
updater . putTransactionLocation ( transactionHash , new TransactionLocation ( transactionHash , i ) ) ;
}
updater . putTransactionReceipts ( hash , transactionReceipts ) ;
maybeTotalDifficulty . ifPresent (
maybeTotalDifficulty . ifPresent (
totalDifficulty - > updater . putTotalDifficulty ( h ash, totalDifficulty ) ) ;
totalDifficulty - > updater . putTotalDifficulty ( blockHash , totalDifficulty ) ) ;
updater . commit ( ) ;
updater . commit ( ) ;
}
}
@ -563,7 +559,7 @@ public class DefaultBlockchain implements MutableBlockchain {
updater . putBlockHash ( blockWithReceipts . getNumber ( ) , newBlockHash ) ;
updater . putBlockHash ( blockWithReceipts . getNumber ( ) , newBlockHash ) ;
updater . setChainHead ( newBlockHash ) ;
updater . setChainHead ( newBlockHash ) ;
indexTransactionForBlock (
indexTransactions ForBlock (
updater , newBlockHash , blockWithReceipts . getBlock ( ) . getBody ( ) . getTransactions ( ) ) ;
updater , newBlockHash , blockWithReceipts . getBlock ( ) . getBody ( ) . getTransactions ( ) ) ;
gasUsedCounter . inc ( blockWithReceipts . getHeader ( ) . getGasUsed ( ) ) ;
gasUsedCounter . inc ( blockWithReceipts . getHeader ( ) . getGasUsed ( ) ) ;
numberOfTransactionsCounter . inc (
numberOfTransactionsCounter . inc (
@ -652,7 +648,7 @@ public class DefaultBlockchain implements MutableBlockchain {
// Update indexed transactions
// Update indexed transactions
newTransactions . forEach (
newTransactions . forEach (
( blockHash , transactionsInBlock ) - > {
( blockHash , transactionsInBlock ) - > {
indexTransactionForBlock ( updater , blockHash , transactionsInBlock ) ;
indexTransactions ForBlock ( updater , blockHash , transactionsInBlock ) ;
// Don't remove transactions that are being re-indexed.
// Don't remove transactions that are being re-indexed.
removedTransactions . removeAll ( transactionsInBlock ) ;
removedTransactions . removeAll ( transactionsInBlock ) ;
} ) ;
} ) ;
@ -792,11 +788,11 @@ public class DefaultBlockchain implements MutableBlockchain {
chainHeadOmmerCount = block . getBody ( ) . getOmmers ( ) . size ( ) ;
chainHeadOmmerCount = block . getBody ( ) . getOmmers ( ) . size ( ) ;
}
}
private static void indexTransactionForBlock (
private static void indexTransactions ForBlock (
final BlockchainStorage . Updater updater , final Hash h ash, final List < Transaction > txs ) {
final BlockchainStorage . Updater updater , final Hash blockH ash, final List < Transaction > txs ) {
for ( int i = 0 ; i < txs . size ( ) ; i + + ) {
for ( int index = 0 ; index < txs . size ( ) ; index + + ) {
final Hash txHash = txs . get ( i ) . getHash ( ) ;
final Hash txHash = txs . get ( index ) . getHash ( ) ;
final TransactionLocation loc = new TransactionLocation ( h ash, i ) ;
final TransactionLocation loc = new TransactionLocation ( blockH ash, index ) ;
updater . putTransactionLocation ( txHash , loc ) ;
updater . putTransactionLocation ( txHash , loc ) ;
}
}
}
}