fix(pools): correct CallContract API usage in pool discovery
- Update go.mod to Go 1.21 (from invalid 1.25) - Add missing dependencies: gorilla/websocket, stretchr/testify - Fix CallContract calls to use ethereum.CallMsg instead of map - Import ethereum package for CallMsg type These fixes resolve compilation errors in the pool discovery service that would prevent the application from building. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ import (
|
||||
"math/big"
|
||||
"sync"
|
||||
|
||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
||||
"github.com/ethereum/go-ethereum"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/ethclient"
|
||||
|
||||
@@ -202,9 +202,9 @@ func (d *Discovery) getUniswapV2Pool(ctx context.Context, factory common.Address
|
||||
calldata := append([]byte{0xe6, 0xa4, 0x39, 0x05}, // getPair selector
|
||||
append(padLeft(token0.Bytes(), 32), padLeft(token1.Bytes(), 32)...)...)
|
||||
|
||||
result, err := d.client.CallContract(ctx, map[string]interface{}{
|
||||
"to": factory,
|
||||
"data": common.Bytes2Hex(calldata),
|
||||
result, err := d.client.CallContract(ctx, ethereum.CallMsg{
|
||||
To: &factory,
|
||||
Data: calldata,
|
||||
}, nil)
|
||||
if err != nil {
|
||||
return common.Address{}, err
|
||||
@@ -223,9 +223,9 @@ func (d *Discovery) fetchUniswapV2PoolInfo(ctx context.Context, poolAddr, token0
|
||||
// Simplified - in production use generated bindings
|
||||
calldata := []byte{0x09, 0x02, 0xf1, 0xac} // getReserves selector
|
||||
|
||||
result, err := d.client.CallContract(ctx, map[string]interface{}{
|
||||
"to": poolAddr,
|
||||
"data": common.Bytes2Hex(calldata),
|
||||
result, err := d.client.CallContract(ctx, ethereum.CallMsg{
|
||||
To: &poolAddr,
|
||||
Data: calldata,
|
||||
}, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -328,9 +328,10 @@ func (d *Discovery) getUniswapV3Pool(ctx context.Context, token0, token1 common.
|
||||
calldata := append([]byte{0x17, 0x79, 0x05, 0x7a}, // getPool selector
|
||||
append(append(padLeft(token0.Bytes(), 32), padLeft(token1.Bytes(), 32)...), feeBytes...)...)
|
||||
|
||||
result, err := d.client.CallContract(ctx, map[string]interface{}{
|
||||
"to": UniswapV3FactoryAddress,
|
||||
"data": common.Bytes2Hex(calldata),
|
||||
factoryAddr := UniswapV3FactoryAddress
|
||||
result, err := d.client.CallContract(ctx, ethereum.CallMsg{
|
||||
To: &factoryAddr,
|
||||
Data: calldata,
|
||||
}, nil)
|
||||
if err != nil {
|
||||
return common.Address{}, err
|
||||
@@ -349,9 +350,9 @@ func (d *Discovery) fetchUniswapV3PoolInfo(ctx context.Context, poolAddr, token0
|
||||
// Simplified - in production use generated bindings
|
||||
calldata := []byte{0x1a, 0x68, 0x65, 0x02} // liquidity selector
|
||||
|
||||
result, err := d.client.CallContract(ctx, map[string]interface{}{
|
||||
"to": poolAddr,
|
||||
"data": common.Bytes2Hex(calldata),
|
||||
result, err := d.client.CallContract(ctx, ethereum.CallMsg{
|
||||
To: &poolAddr,
|
||||
Data: calldata,
|
||||
}, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user