Skip to content

Commit

Permalink
erasing swap if balance is not there to complete
Browse files Browse the repository at this point in the history
  • Loading branch information
bret-fusion committed Jun 21, 2019
1 parent 29f84f0 commit 4f11304
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion core/state_transition.go
Original file line number Diff line number Diff line change
Expand Up @@ -1013,7 +1013,7 @@ func (st *StateTransition) handleFsnCall() error {
}
}
}

if err := st.state.AddMultiSwap(swap); err != nil {
st.addLog(common.MakeMultiSwapFunc, makeSwapParam, common.NewKeyValue("Error", "System error can't add swap"))
return err
Expand All @@ -1024,13 +1024,23 @@ func (st *StateTransition) handleFsnCall() error {
if useAsset[i] == true {
if st.state.GetBalance(makeSwapParam.FromAssetID[i], st.msg.From()).Cmp(total[i]) < 0 {
st.addLog(common.MakeMultiSwapFunc, makeSwapParam, common.NewKeyValue("Error", "not enough from asset"))
// make sure swap added is not
// usable
swap.Owner = common.Address{}
st.state.UpdateMultiSwap(swap)
st.state.RemoveMultiSwap(swap.ID)
return fmt.Errorf("not enough from asset")
}
} else {
available := st.state.GetTimeLockBalance(makeSwapParam.FromAssetID[i], st.msg.From())
if available.Cmp(needValue[i]) < 0 {

if st.state.GetBalance(makeSwapParam.FromAssetID[i], st.msg.From()).Cmp(total[i]) < 0 {
// make sure swap added is not
// usable
swap.Owner = common.Address{}
st.state.UpdateMultiSwap(swap)
st.state.RemoveMultiSwap(swap.ID)
st.addLog(common.MakeMultiSwapFunc, makeSwapParam, common.NewKeyValue("Error", "not enough time lock or asset balance"))
return fmt.Errorf("not enough time lock or asset balance")
}
Expand Down

0 comments on commit 4f11304

Please sign in to comment.