Skip to content

Commit a134fd7

Browse files
committed
fix: add market to pool and creditmanager
1 parent 4dff27a commit a134fd7

File tree

4 files changed

+44
-24
lines changed

4 files changed

+44
-24
lines changed

ds/execute_parse_len_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func Test_Check1(t *testing.T) {
4646
utils.ReadJsonAndSetInterface("execute_parser/check_failed_token_disabled.json", &data)
4747

4848
calls := data.GetCalls(t)
49-
if !calls.SameMulticallLenAsEvents(core.NewVersion(2), data.Events) {
49+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(2), data.Events) {
5050
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
5151
calls.LenOfMulticalls(), len(data.Events),
5252
utils.ToJson(data.Events), calls.String(), data.TxHash)
@@ -59,7 +59,7 @@ func Test_Check2(t *testing.T) {
5959
utils.ReadJsonAndSetInterface("execute_parser/check_event_len_0.json", &data)
6060

6161
calls := data.GetCalls(t)
62-
if !calls.SameMulticallLenAsEvents(core.NewVersion(2), data.Events) {
62+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(2), data.Events) {
6363
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
6464
calls.LenOfMulticalls(), len(data.Events),
6565
utils.ToJson(data.Events), calls.String(), data.TxHash)
@@ -73,7 +73,7 @@ func Test_Checkv3(t *testing.T) {
7373
utils.ReadJsonAndSetInterface("execute_parser/check_v3.json", &data)
7474

7575
calls := data.GetCalls(t)
76-
if !calls.SameMulticallLenAsEvents(core.NewVersion(300), data.Events) {
76+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(300), data.Events) {
7777
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
7878
calls.LenOfMulticalls(), len(data.Events),
7979
utils.ToJson(data.Events), calls.String(), data.TxHash)
@@ -86,7 +86,7 @@ func Test_CheckWithdrawCollateralv3(t *testing.T) {
8686
utils.ReadJsonAndSetInterface("execute_parser/check_withdraw_collateral.json", &data)
8787

8888
calls := data.GetCalls(t)
89-
if !calls.SameMulticallLenAsEvents(core.NewVersion(300), data.Events) {
89+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(300), data.Events) {
9090
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
9191
calls.LenOfMulticalls(), len(data.Events),
9292
utils.ToJson(data.Events), calls.String(), data.TxHash)
@@ -100,7 +100,7 @@ func Test_CheckWithdrawCollateralFailure(t *testing.T) {
100100
utils.ReadJsonAndSetInterface("execute_parser/check_withdraw_collateral_failure.json", &data)
101101

102102
calls := data.GetCalls(t)
103-
if !calls.SameMulticallLenAsEvents(core.NewVersion(300), data.Events) {
103+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(300), data.Events) {
104104
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
105105
calls.LenOfMulticalls(), len(data.Events),
106106
utils.ToJson(data.Events), calls.String(), data.TxHash)
@@ -114,7 +114,7 @@ func Test_CheckNew(t *testing.T) {
114114
utils.ReadJsonAndSetInterface("execute_parser/check_new.json", &data)
115115

116116
calls := data.GetCalls(t)
117-
if !calls.SameMulticallLenAsEvents(core.NewVersion(300), data.Events) {
117+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(300), data.Events) {
118118
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
119119
calls.LenOfMulticalls(), len(data.Events),
120120
utils.ToJson(data.Events), calls.String(), data.TxHash)
@@ -126,7 +126,7 @@ func Test_CheckKK(t *testing.T) {
126126
utils.ReadJsonAndSetInterface("execute_parser/check_update_quota.json", &data)
127127

128128
calls := data.GetCalls(t)
129-
if !calls.SameMulticallLenAsEvents(core.NewVersion(300), data.Events) {
129+
if !calls.SameMulticallLenAsEvents(nil, core.NewVersion(300), data.Events) {
130130
t.Fatalf("expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
131131
calls.LenOfMulticalls(), len(data.Events),
132132
utils.ToJson(data.Events), calls.String(), data.TxHash)

ds/execute_parse_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestCmpLenSimpleV2(t *testing.T) {
3939
[]string{"0xb82C5D0A6750aD1E5c2f74CFD7e2E4788f2b0aBB@59781034"},
4040
[]string{"AddCollateral(address,address,uint256)"},
4141
)
42-
if !mainAction.SameMulticallLenAsEvents(core.NewVersion(2), events) {
42+
if !mainAction.SameMulticallLenAsEvents(nil, core.NewVersion(2), events) {
4343
log.Fatal()
4444
}
4545
}
@@ -50,7 +50,7 @@ func TestCmpLenWith2EventsV2(t *testing.T) {
5050
[]string{"0xb82C5D0A6750aD1E5c2f74CFD7e2E4788f2b0aBB@59781034", "0x020bafa614d63087C4B3C8244F1e2c8A3859Ce4E@d0e30db0"},
5151
[]string{"AddCollateral(address,address,uint256)", "ExecuteOrder"},
5252
)
53-
if !mainAction.SameMulticallLenAsEvents(core.NewVersion(2), events) {
53+
if !mainAction.SameMulticallLenAsEvents(nil, core.NewVersion(2), events) {
5454
log.Fatal()
5555
}
5656
}
@@ -64,7 +64,7 @@ func TestCmpLenWith2PlusRevertEventsV2(t *testing.T) {
6464
},
6565
[]string{"AddCollateral(address,address,uint256)", "ExecuteOrder", "ExecuteOrder"},
6666
)
67-
if !mainAction.SameMulticallLenAsEvents(core.NewVersion(2), events) {
67+
if !mainAction.SameMulticallLenAsEvents(nil, core.NewVersion(2), events) {
6868
log.Fatal()
6969
}
7070
}
@@ -77,7 +77,7 @@ func TestCmpLenTrivalRevertV2(t *testing.T) {
7777
[]string{"0x020bafa614d63087C4B3C8244F1e2c8A3859Ce4E@81314b59"},
7878
nil,
7979
)
80-
if !mainAction.SameMulticallLenAsEvents(core.NewVersion(2), events) {
80+
if !mainAction.SameMulticallLenAsEvents(nil, core.NewVersion(2), events) {
8181
log.Fatal()
8282
}
8383
}

ds/execute_parser.go

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,37 +61,39 @@ func (f FacadeCallNameWithMulticall) LenOfMulticalls() int {
6161

6262
// handles revertIflessthan case where event is not emitted.
6363
// also handles cases where number of execute order events emitted is less than execute calls
64-
func (f *FacadeCallNameWithMulticall) SameMulticallLenAsEvents(version core.VersionType, events []*schemas.AccountOperation) bool {
65-
defer func() {
66-
if err := recover(); err != nil {
67-
log.Fatal(err, f, utils.ToJson(events))
68-
}
69-
}()
64+
func (f *FacadeCallNameWithMulticall) SameMulticallLenAsEvents(client core.ClientI, version core.VersionType, events []*schemas.AccountOperation) bool {
65+
// defer func() {
66+
// if err := recover(); err != nil {
67+
// log.Fatal(err, f, utils.ToJson(events))
68+
// }
69+
// }()
7070

7171
if f.TestLen != 0 {
7272
return f.TestLen == len(events)
7373
}
7474
if version.Eq(2) {
7575
return f.v2(events)
7676
} else if version.Eq(300) {
77-
return f.v3(events)
77+
return f.v3(client, events)
7878
}
7979

8080
return false
8181
}
8282

83-
func (f *FacadeCallNameWithMulticall) v3(events []*schemas.AccountOperation) bool {
83+
func (f *FacadeCallNameWithMulticall) v3(client core.ClientI, events []*schemas.AccountOperation) bool {
8484
if len(f.facade) != 42 {
8585
log.Fatal("facade address is missing from executeParser DS")
8686
}
8787
eventInd := 0
8888
callInd := 0
8989
callLen := len(f.multiCalls)
9090
eventLen := len(events)
91+
// defer func() {
92+
// log.Info(callInd, callLen, eventInd, eventLen)
93+
// }()
9194
for callInd < callLen || eventInd < eventLen {
9295
multiCall := f.multiCalls[callInd]
9396
sig := hex.EncodeToString(multiCall.CallData[:4])
94-
// log.Info(callInd, eventInd)
9597
switch sig {
9698
case "59781034", // add collateral
9799
"6d75b9ee", // add collateral extended 2.2 // v310 too
@@ -149,12 +151,29 @@ func (f *FacadeCallNameWithMulticall) v3(events []*schemas.AccountOperation) boo
149151
case "1f1088a0": // withdrawcollateral
150152
if eventInd < eventLen {
151153
if events[eventInd].Action != "WithdrawCollateral(address,address,uint256,address)" {
154+
if events[eventInd].Action == "ExecuteOrder" &&
155+
// 0xd071f69785347d727dbfe40ac781c4b9b9d8dd848b038089e4e09b2f1ff219cd
156+
callInd-1 >= 0 && hex.EncodeToString(f.multiCalls[callInd-1].CallData[:4]) == "28b83c48" {
157+
eventInd++
158+
continue
159+
}
152160
return false
153161
}
154162
eventToken := (*events[eventInd].Args)["token"]
155-
if eventToken != nil &&
156-
common.HexToAddress(eventToken.(string)) == common.BytesToAddress(multiCall.CallData[4:4+32]) {
157-
eventInd++
163+
//
164+
log.Info(utils.ToJson(eventToken))
165+
log.Info(common.BytesToAddress(multiCall.CallData[4 : 4+32]))
166+
//
167+
if eventToken != nil {
168+
tokenfromcall := common.BytesToAddress(multiCall.CallData[4 : 4+32])
169+
isPahntom := false
170+
if client != nil {
171+
data, err := core.CallFuncGetAllData(client, "0xa7b6cd8e", tokenfromcall, 0, nil)
172+
isPahntom = err == nil && len(data) >= 64
173+
}
174+
if isPahntom || common.HexToAddress(eventToken.(string)) == tokenfromcall {
175+
eventInd++
176+
}
158177
}
159178
}
160179
callInd++
@@ -168,6 +187,7 @@ func (f *FacadeCallNameWithMulticall) v3(events []*schemas.AccountOperation) boo
168187
executeCall := 0
169188
for callInd < callLen && f.multiCalls[callInd].Target.Hex() != f.facade { // until multicall call that is not for facade is seen
170189
executeCall++
190+
log.Info(callInd)
171191
callInd++
172192
}
173193
if executeEvent > executeCall { // if execute events more than calls

models/credit_manager/cm_common/facade_actions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func (mdl *CommonCMAdapter) validateAndSaveFacadeActions(version core.VersionTyp
8686
}
8787
//
8888
eventMulticalls := mainEvent.MultiCall
89-
if !mainCall.SameMulticallLenAsEvents(version, eventMulticalls) {
89+
if !mainCall.SameMulticallLenAsEvents(mdl.Client, version, eventMulticalls) {
9090
log.Fatalf("%s expected %d multicalls, but third-eye detected %d. Events: %s. Calls: %s. txhash: %s",
9191
mainCall.Name, mainCall.LenOfMulticalls(), len(eventMulticalls),
9292
utils.ToJson(eventMulticalls), mainCall.String(), mainEvent.TxHash)

0 commit comments

Comments
 (0)