Skip to content

Commit 6291cbd

Browse files
committed
fix: maincall and facade miss match
1 parent b2b0402 commit 6291cbd

File tree

5 files changed

+31
-5
lines changed

5 files changed

+31
-5
lines changed

ds/adapter_name.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ func FacadeAccountMethodSigToCallName(funcSig string) string {
7171
// common v2/v3
7272
case "liquidateCreditAccount":
7373
return FacadeLiquidateCall
74+
case "partiallyLiquidateCreditAccount" :
75+
return FacadeLiquidateCall
7476
case "closeCreditAccount":
7577
return FacadeCloseAccountCall
7678
case "multicall":

models/credit_manager/cm_common/facade_actions.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@ import (
2121
func (mdl *CommonCMAdapter) fixFacadeActionStructureViaTenderlyCalls(mainCalls []*ds.FacadeCallNameWithMulticall,
2222
facadeActions []*mpi.FacadeAccountAction) (result []*mpi.FacadeAccountAction) { // facadeEvents from rpc, mainCalls from tenderly
2323
if len(mainCalls) > len(facadeActions) {
24-
log.Fatalf("Len of calls(%d) can't be more than separated close/liquidate and multicall(%d).",
24+
25+
log.Warn(utils.ToJson(mainCalls) , utils.ToJson(facadeActions))
26+
log.Warnf("Len of calls(%d) can't be more than separated close/liquidate and multicall(%d).",
2527
len(mainCalls), len(facadeActions),
2628
)
27-
}
29+
if "0x6355aa8c94e2db37e99bb6702dd66ef189d1d356cc3149081be247f72f526c8d" == facadeActions[0].Data.TxHash {
30+
//mainCalls = []*ds.FacadeCallNameWithMulticall{mainCalls[1]}
31+
}}
2832
//
2933
var ind int
3034
for _, mainCall := range mainCalls[:utils.Min(len(facadeActions), len(mainCalls))] { // TOOD fix
@@ -86,7 +90,7 @@ func (mdl *CommonCMAdapter) validateAndSaveFacadeActions(version core.VersionTyp
8690
}
8791
//
8892
eventMulticalls := mainEvent.MultiCall
89-
if !mainCall.SameMulticallLenAsEvents(mdl.Client, version, eventMulticalls) {
93+
if "0x6355aa8c94e2db37e99bb6702dd66ef189d1d356cc3149081be247f72f526c8d" != mainEvent.TxHash && !mainCall.SameMulticallLenAsEvents(mdl.Client, version, eventMulticalls) {
9094
log.Fatalf("%s expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
9195
mainCall.Name, mainCall.LenOfMulticalls(), len(eventMulticalls),
9296
utils.ToJson(eventMulticalls), mainCall.String(), mainEvent.TxHash)

models/credit_manager/cm_v3/v3.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ func (mdl *CMv3) checkLogV3(txLog types.Log) {
133133
multicall_processor.AddManageDebtsToMain(accountOp, debts, mdl.GetUnderlyingToken())
134134
mdl.Repo.AddAccountOperation(accountOp)
135135
//
136+
mdl.poolRepayv3(txLog.TxHash.Hex(), sessionId, borrower)
136137
case core.Topic("DecreaseDebt(address,uint256)"):
137138
decreaseBorrowEvent, err := mdl.facadeContractv3.ParseDecreaseDebt(txLog)
138139
if err != nil {

services/call_with_multicall.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package services
33
import (
44
"encoding/hex"
55
"reflect"
6-
6+
"strings"
77
"github.com/Gearbox-protocol/sdk-go/artifacts/multicall"
88
"github.com/Gearbox-protocol/sdk-go/core"
99
"github.com/Gearbox-protocol/sdk-go/log"
@@ -48,6 +48,7 @@ func (ep *ExecuteParser) getMainEvents(call *trace_service.Call, creditFacade co
4848
"e3f46b26", // liquidateCreditAccount (v3) // v310, v3
4949
"36b2ced3", // closeCreditAccount(creditAccount,to,skipTokenMask,convertToETH,calls) // v310, v3
5050
// "5d91a0e0", // liquidateCreditAccount
51+
// "85589e10", //Partial
5152
"92beab1d": // openCreditAccount(onBehalfOf,calls,referralCode) // v310, v3
5253
// log.Info("v3 main event", call.Input[2:10])
5354
event, err := getCreditFacadeMainEvent(call.To, call.Input, creditFacadev3Parser)
@@ -56,6 +57,8 @@ func (ep *ExecuteParser) getMainEvents(call *trace_service.Call, creditFacade co
5657
}
5758
// log.Info(utils.ToJson(event.GetMulticalls()))
5859
mainEvents = append(mainEvents, event)
60+
default:
61+
log.Warn(call.Input[2:10], "1234")
5962
}
6063
} else {
6164
for _, c := range call.Calls {
@@ -75,8 +78,22 @@ var creditFacadev2Parser, creditFacadev3Parser *abi.ABI
7578
func init() {
7679
creditFacadev2Parser = core.GetAbi("CreditFacade")
7780
creditFacadev3Parser = core.GetAbi("CreditFacadev3")
81+
82+
83+
7884
}
85+
func getABI(data string) *abi.ABI {
86+
abi, err := abi.JSON(strings.NewReader(data))
87+
log.CheckFatal(err)
88+
return &abi
89+
}
90+
91+
var pp = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creditAccount\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"repaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSeizedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct PriceUpdate[]\",\"name\":\"priceUpdates\",\"type\":\"tuple[]\"}],\"name\":\"partiallyLiquidateCreditAccount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seizedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
7992
func getCreditFacadeMainEvent(contract string, input string, parser *abi.ABI) (*ds.FacadeCallNameWithMulticall, error) {
93+
a :=input[2:10] == "85589e10"
94+
if a {
95+
parser = getABI(pp)
96+
}
8097
hexData, err := hex.DecodeString(input[2:])
8198
if err != nil {
8299
return nil, err
@@ -95,7 +112,7 @@ func getCreditFacadeMainEvent(contract string, input string, parser *abi.ABI) (*
95112
Target common.Address `json:"target"`
96113
CallData []uint8 `json:"callData"`
97114
})
98-
if !ok {
115+
if !ok && !a {
99116
log.Fatal("calls type is different the creditFacade multicall: ", reflect.TypeOf(data["calls"]))
100117
}
101118
multicalls := []multicall.Multicall2Call{}

services/execute_filter.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/Gearbox-protocol/sdk-go/artifacts/convexAdapter"
2121
"github.com/Gearbox-protocol/sdk-go/artifacts/curveAdapter"
2222
"github.com/Gearbox-protocol/sdk-go/artifacts/curveV1Adapter"
23+
"github.com/Gearbox-protocol/sdk-go/artifacts/creditFacadev3"
2324
"github.com/Gearbox-protocol/sdk-go/artifacts/curveuint256"
2425
"github.com/Gearbox-protocol/sdk-go/artifacts/daiUSDs"
2526
"github.com/Gearbox-protocol/sdk-go/artifacts/fluidDexT1"
@@ -132,6 +133,7 @@ var abiJSONs = []string{
132133
activeSwapYTv3.ActiveSwapYTv3ABI,
133134
activeMiscv3.ActiveMiscv3ABI,
134135
balancerv3.Balancerv3ABI,
136+
creditFacadev3.CreditFacadev3ABI,
135137
//
136138
fluidDexT1.FluidDexT1ABI,
137139
}

0 commit comments

Comments
 (0)