Skip to content

Commit

Permalink
handle error create type
Browse files Browse the repository at this point in the history
  • Loading branch information
ngocthanh1389 committed Apr 25, 2024
1 parent 5c6050a commit 903c6d6
Showing 1 changed file with 31 additions and 27 deletions.
58 changes: 31 additions & 27 deletions pkg/parser/uniswapx/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,31 @@ type ResolvedOrder struct {
var (
ErrInvalidOneInchFilledTopic = errors.New("invalid uniswapx order filled topic")
ErrUpdateOrder = errors.New("can't update order")
)

type Parser struct {
abi *abi.ABI
ps *UniswapxFilterer
eventHash string
traceCalls *tracecall.Cache
orderArguments abi.Arguments
}

func MustNewParser(cache *tracecall.Cache) *Parser {
ps, err := NewUniswapxFilterer(common.Address{}, nil)
if err != nil {
panic(err)
}
ab, err := UniswapxMetaData.GetAbi()
if err != nil {
panic(err)
}
event, ok := ab.Events[FilledEvent]
if !ok {
panic(fmt.Sprintf("no such event: %s", FilledEvent))
}

OrderTuple, _ = abi.NewType("tuple", "", []abi.ArgumentMarshaling{
orderTuple, err := abi.NewType("tuple", "", []abi.ArgumentMarshaling{
{Name: "info", Type: "tuple", Components: []abi.ArgumentMarshaling{
{Name: "reactor", Type: "address"},
{Name: "swapper", Type: "address"},
Expand Down Expand Up @@ -91,35 +114,16 @@ var (
},
{Name: "cosignature", Type: "bytes"},
})
OrderArguments = abi.Arguments{{Type: OrderTuple}}
)

type Parser struct {
abi *abi.ABI
ps *UniswapxFilterer
eventHash string
traceCalls *tracecall.Cache
}

func MustNewParser(cache *tracecall.Cache) *Parser {
ps, err := NewUniswapxFilterer(common.Address{}, nil)
if err != nil {
panic(err)
}
ab, err := UniswapxMetaData.GetAbi()
if err != nil {
panic(err)
}
event, ok := ab.Events[FilledEvent]
if !ok {
panic(fmt.Sprintf("no such event: %s", FilledEvent))
panic("cant create order abi type")
}

return &Parser{
ps: ps,
abi: ab,
eventHash: event.ID.String(),
traceCalls: cache,
ps: ps,
abi: ab,
eventHash: event.ID.String(),
traceCalls: cache,
orderArguments: abi.Arguments{{Type: orderTuple}},
}
}

Expand Down Expand Up @@ -199,7 +203,7 @@ func (p *Parser) recursiveDetectRFQTrades(order storage.TradeLog, call types.Cal
inputOrder = inputOrders[0]
}

parsedOrder, err := OrderArguments.Unpack(inputOrder.Order)
parsedOrder, err := p.orderArguments.Unpack(inputOrder.Order)
if err != nil {
continue
}
Expand Down

0 comments on commit 903c6d6

Please sign in to comment.