File tree Expand file tree Collapse file tree
packages/neuron-wallet/src/services/tx Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -91,7 +91,25 @@ export class TransactionPersistor {
9191 txEntity . blockHash = transaction . blockHash
9292 txEntity . blockNumber = transaction . blockNumber
9393 txEntity . status = TransactionStatus . Success
94- await connection . manager . save ( [ txEntity , ...outputs . concat ( previousOutputs ) ] )
94+
95+ const sliceSize = 100
96+ const queryRunner = connection . createQueryRunner ( )
97+ await TransactionPersistor . waitUntilTransactionFinished ( queryRunner )
98+ await queryRunner . startTransaction ( )
99+ try {
100+ await queryRunner . manager . save ( txEntity )
101+ for ( const slice of Utils . eachSlice ( previousOutputs , sliceSize ) ) {
102+ await queryRunner . manager . save ( slice )
103+ }
104+ for ( const slice of Utils . eachSlice ( outputs , sliceSize ) ) {
105+ await queryRunner . manager . save ( slice )
106+ }
107+ await queryRunner . commitTransaction ( )
108+ } catch ( err ) {
109+ await queryRunner . rollbackTransaction ( )
110+ } finally {
111+ await queryRunner . release ( )
112+ }
95113
96114 return txEntity
97115 }
You can’t perform that action at this time.
0 commit comments