@@ -27,6 +27,7 @@ import {
27
27
import { isBase64 , parseRpcEvents } from "../../utils/events" ;
28
28
import { unmarshalOraiBridgeRoute } from "../../utils/marshal" ;
29
29
import { decodeIbcMemo } from "../../utils/protobuf" ;
30
+ import { retryFunc } from "../../utils/retry" ;
30
31
31
32
// EVM
32
33
export const handleQuerySendToCosmosEvm = async ( ctx : ContextIntepreter , event : AnyEventObject ) => {
@@ -75,7 +76,9 @@ export const handleSendToCosmosEvm = async (ctx: ContextIntepreter, event: AnyEv
75
76
// this context data will be used for querying in the next state
76
77
ctx . evmChainPrefixOnLeftTraverseOrder = evmChainPrefix ;
77
78
ctx . evmEventNonce = sendToCosmosData . eventNonce ;
78
- await ctx . db . insert ( DatabaseEnum . Evm , sendToCosmosData ) ;
79
+ await retryFunc ( async ( ) => {
80
+ await ctx . db . insert ( DatabaseEnum . Evm , sendToCosmosData ) ;
81
+ } ) ;
79
82
return Promise . resolve ( ) ;
80
83
} ;
81
84
@@ -198,7 +201,9 @@ export const handleStoreAutoForward = async (ctx: ContextIntepreter, event: AnyE
198
201
{ where : { txHash : prevEvmState [ 0 ] . txHash } }
199
202
) ;
200
203
console . log ( "storeAutoForward:" , autoForwardData ) ;
201
- await ctx . db . insert ( DatabaseEnum . OraiBridge , autoForwardData ) ;
204
+ await retryFunc ( async ( ) => {
205
+ await ctx . db . insert ( DatabaseEnum . OraiBridge , autoForwardData ) ;
206
+ } ) ;
202
207
ctx . oraiBridgeSrcChannel = autoForwardData . srcChannel ;
203
208
ctx . oraiBridgeDstChannel = autoForwardData . dstChannel ;
204
209
ctx . oraiBridgeEventNonce = event . data . eventNonce ;
@@ -358,7 +363,9 @@ export const handleOnRecvPacketOnOraiBridge = async (ctx: ContextIntepreter, eve
358
363
status : StateDBStatus . PENDING
359
364
} ;
360
365
console . log ( "onRecvPacketOnOraiBridge: " , oraiBridgeData ) ;
361
- await ctx . db . insert ( DatabaseEnum . OraiBridge , oraiBridgeData ) ;
366
+ await retryFunc ( async ( ) => {
367
+ await ctx . db . insert ( DatabaseEnum . OraiBridge , oraiBridgeData ) ;
368
+ } ) ;
362
369
} ;
363
370
364
371
// TODO: add query logic here
@@ -527,7 +534,9 @@ export const handleStoreOnBatchSendToEthClaim = async (
527
534
status : StateDBStatus . FINISHED
528
535
} ;
529
536
console . log ( "storeOnBatchSendToETHClaim: " , evmStateData ) ;
530
- await ctx . db . insert ( DatabaseEnum . Evm , evmStateData ) ;
537
+ await retryFunc ( async ( ) => {
538
+ await ctx . db . insert ( DatabaseEnum . Evm , evmStateData ) ;
539
+ } ) ;
531
540
} ;
532
541
533
542
// ORAICHAIN
@@ -745,7 +754,9 @@ export const handleStoreOnRecvPacketOraichain = async (
745
754
status : nextPacketData . nextPacketSequence != 0 ? StateDBStatus . PENDING : StateDBStatus . FINISHED
746
755
} ;
747
756
console . log ( "storeOnRecvPacketOraichain:" , onRecvPacketData ) ;
748
- await ctx . db . insert ( DatabaseEnum . Oraichain , onRecvPacketData ) ;
757
+ await retryFunc ( async ( ) => {
758
+ await ctx . db . insert ( DatabaseEnum . Oraichain , onRecvPacketData ) ;
759
+ } ) ;
749
760
// now we have verified everything, lets store the result into the db
750
761
// TODO: if there's a next state, prepare to return a valid result here
751
762
if ( nextState || nextPacketData . nextPacketSequence != 0 ) {
@@ -896,7 +907,9 @@ export const handleStoreOnRecvPacketOraichainReverse = async (
896
907
status : StateDBStatus . PENDING
897
908
} ;
898
909
console . log ( "onRecvPacketData" , onRecvPacketData ) ;
899
- await ctx . db . insert ( DatabaseEnum . Oraichain , onRecvPacketData ) ;
910
+ await retryFunc ( async ( ) => {
911
+ await ctx . db . insert ( DatabaseEnum . Oraichain , onRecvPacketData ) ;
912
+ } ) ;
900
913
901
914
// no next state, we move to final state of the machine
902
915
return Promise . resolve ( "" ) ;
@@ -1065,7 +1078,9 @@ export const handleUpdateOnAcknowledgementOnCosmos = async (
1065
1078
}
1066
1079
1067
1080
console . log ( "Cosmos data:" , cosmosData ) ;
1068
- await ctx . db . insert ( DatabaseEnum . Cosmos , cosmosData ) ;
1081
+ await retryFunc ( async ( ) => {
1082
+ await ctx . db . insert ( DatabaseEnum . Cosmos , cosmosData ) ;
1083
+ } ) ;
1069
1084
} ;
1070
1085
1071
1086
export const handleStoreOnTransferBackToRemoteChain = async (
@@ -1146,7 +1161,9 @@ export const handleStoreOnTransferBackToRemoteChain = async (
1146
1161
status : StateDBStatus . PENDING
1147
1162
} ;
1148
1163
console . log ( "storeOnTransferBackToRemoteChain" , transferBackToRemoteChainData ) ;
1149
- await ctx . db . insert ( DatabaseEnum . Oraichain , transferBackToRemoteChainData ) ;
1164
+ await retryFunc ( async ( ) => {
1165
+ await ctx . db . insert ( DatabaseEnum . Oraichain , transferBackToRemoteChainData ) ;
1166
+ } ) ;
1150
1167
1151
1168
// no next state, we move to final state of the machine
1152
1169
return Promise . resolve ( "" ) ;
@@ -1186,7 +1203,9 @@ export const handleStoreOnIbcTransferFromRemote = async (ctx: ContextIntepreter,
1186
1203
status : StateDBStatus . PENDING
1187
1204
} ;
1188
1205
console . log ( "Cosmos Data:" , cosmosData ) ;
1189
- await ctx . db . insert ( DatabaseEnum . Cosmos , cosmosData ) ;
1206
+ await retryFunc ( async ( ) => {
1207
+ await ctx . db . insert ( DatabaseEnum . Cosmos , cosmosData ) ;
1208
+ } ) ;
1190
1209
1191
1210
ctx . cosmosPacketSequence = parseInt ( packetSequence . value ) ;
1192
1211
ctx . cosmosSrcChannel = cosmosData . srcChannel ;
0 commit comments