@@ -30,7 +30,7 @@ const (
3030
3131func ParseRebalanceStrategy (s string ) (RebalanceStrategy , error ) {
3232 switch s {
33- case string (AllAtOnce ):
33+ case "" , string (AllAtOnce ):
3434 return AllAtOnce , nil
3535 case string (UtxoSplit ):
3636 return UtxoSplit , nil
@@ -132,20 +132,20 @@ func (useCase *BridgePegoutUseCase) runUtxoSplit(
132132 watchedQuotes []quote.WatchedPegoutQuote ,
133133) error {
134134 bridgeMin := pegoutConfig .BridgeTransactionMin
135- numTxs , err := new (entities.Wei ).Div (totalValue , bridgeMin )
135+ numTxsWei , err := new (entities.Wei ).Div (totalValue , bridgeMin )
136136 if err != nil {
137137 return usecases .WrapUseCaseError (usecases .BridgePegoutId , err )
138138 }
139- remainder := new (entities.Wei ).Sub (totalValue , new (entities.Wei ).Mul (numTxs , bridgeMin ))
139+ numTxs := numTxsWei .Uint64 ()
140+ remainder := new (entities.Wei ).Sub (totalValue , new (entities.Wei ).Mul (numTxsWei , bridgeMin ))
140141
141142 gasPerTx := entities .NewWei (BridgeConversionGasLimit * BridgeConversionGasPrice )
142- requiredBalance := new (entities.Wei ).Add (totalValue , new (entities.Wei ).Mul (numTxs , gasPerTx ))
143+ requiredBalance := new (entities.Wei ).Add (totalValue , new (entities.Wei ).Mul (numTxsWei , gasPerTx ))
143144 if err := useCase .checkBalance (ctx , requiredBalance ); err != nil {
144145 return err
145146 }
146147
147148 bridgeAddress := useCase .contracts .Bridge .GetAddress ()
148- n := numTxs .Uint64 ()
149149
150150 // First chunk absorbs the remainder (when N=1, firstChunk == totalValue)
151151 firstChunk := new (entities.Wei ).Add (bridgeMin .Copy (), remainder )
@@ -155,19 +155,19 @@ func (useCase *BridgePegoutUseCase) runUtxoSplit(
155155 config := blockchain .NewTransactionConfig (firstChunk , BridgeConversionGasLimit , entities .NewWei (BridgeConversionGasPrice ))
156156 receipt , txErr = useCase .rskWallet .SendRbtc (ctx , config , bridgeAddress )
157157 if txErr == nil {
158- log .Debugf ("%s: split tx 1/%d sent to the bridge successfully (%s)" , usecases .BridgePegoutId , n , receipt .TransactionHash )
158+ log .Debugf ("%s: split tx 1/%d sent to the bridge successfully (%s)" , usecases .BridgePegoutId , numTxs , receipt .TransactionHash )
159159 } else {
160- if err := useCase . updateQuotes ( ctx , receipt , txErr , watchedQuotes ); err != nil {
161- return usecases .WrapUseCaseError ( usecases . BridgePegoutId , err )
162- }
163- return usecases . WrapUseCaseError ( usecases . BridgePegoutId , txErr )
160+ return usecases . WrapUseCaseError (
161+ usecases .BridgePegoutId ,
162+ useCase . updateQuotes ( ctx , receipt , txErr , watchedQuotes ),
163+ )
164164 }
165165
166- for i := uint64 (1 ); i < n ; i ++ {
166+ for i := uint64 (1 ); i < numTxs ; i ++ {
167167 config = blockchain .NewTransactionConfig (bridgeMin .Copy (), BridgeConversionGasLimit , entities .NewWei (BridgeConversionGasPrice ))
168168 receipt , txErr = useCase .rskWallet .SendRbtc (ctx , config , bridgeAddress )
169169 if txErr == nil {
170- log .Debugf ("%s: split tx %d/%d sent to the bridge successfully (%s)" , usecases .BridgePegoutId , i + 1 , n , receipt .TransactionHash )
170+ log .Debugf ("%s: split tx %d/%d sent to the bridge successfully (%s)" , usecases .BridgePegoutId , i + 1 , numTxs , receipt .TransactionHash )
171171 } else {
172172 break
173173 }
0 commit comments