Skip to content

runtime error when indexing erc 4337 entrypoint event #240

@0xBigBoss

Description

@0xBigBoss

I am running into the following runtime error when trying to index a specific event for the erc 4337 entrypoint v0.7.

Specifically the AccountDeployed event. I have the following config.json below.

config.json
{
  "dashboard": {
    "root_password": "$DASHBOARD_ROOT_PASSWORD"
  },
  "pg_url": "$DATABASE_URL",
  "eth_sources": [
    {
      "name": "$BASE_NAME",
      "url": "$BASE_RPC_URL",
      "chain_id": "$BASE_CHAIN_ID",
      "batch_size": 100
    }
  ],
  "integrations": [
    {
      "name": "account_deployed",
      "enabled": true,
      "block": [
        {
          "name": "block_time",
          "column": "block_time"
        },
        {
          "name": "log_addr",
          "column": "log_addr",
          "filter_op": "contains",
          "filter_arg": [
            "0x0000000071727De22E5E9d8BAf0edAc6f37da032"
          ]
        }
      ],
      "event": {
        "type": "event",
        "anonymous": false,
        "inputs": [
          {
            "name": "userOpHash",
            "type": "bytes32",
            "indexed": true
          },
          {
            "name": "sender",
            "type": "address",
            "indexed": true
          },
          {
            "name": "factory",
            "type": "address",
            "indexed": false
          },
          {
            "name": "paymaster",
            "type": "address",
            "indexed": false
          }
        ],
        "name": "AccountDeployed"
      },
      "table": {
        "name": "send_account_deployed",
        "columns": [
          {
            "name": "chain_id",
            "type": "numeric"
          },
          {
            "name": "log_addr",
            "type": "bytea"
          },
          {
            "name": "block_time",
            "type": "numeric"
          },
          {
            "name": "userOpHash",
            "type": "bytea"
          },
          {
            "name": "sender",
            "type": "bytea"
          },
          {
            "name": "factory",
            "type": "bytea"
          },
          {
            "name": "paymaster",
            "type": "bytea"
          }
        ]
      },
      "sources": [
        {
          "name": "$BASE_NAME",
          "start": "$BASE_BLOCK_START"
        }
      ]
    }
  ]
}

I am running shovel like so.

docker run \
  --rm \
  --name shovel \
  --add-host=host.docker.internal:host-gateway \
  -p 8383:80 \
  --env DATABASE_URL=postgresql://postgres:[email protected]:54322/postgres \
  --env BASE_NAME=base \
  --env BASE_RPC_URL=https://base-pokt.nodies.app \
  --env BASE_CHAIN_ID=8453 \
  --env BASE_BLOCK_START=11135065 \
  --env DASHBOARD_ROOT_PASSWORD=shoveladmin \
  -v ./config.json:/etc/shovel/config.json \
  --entrypoint /usr/local/bin/shovel \
  -w /usr/local/bin \
  docker.io/indexsupply/shovel -l :80 -config /etc/shovel/config.json
p=1 v=5775 chain=08453 src=base dest=account_deployed msg=new-task
p=1 v=5775 n=0 msg=prune-task
p=1 v=5775 chain=08453 num=11135065 msg=start at config
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x4ed750]

goroutine 100 [running]:
github.com/indexsupply/x/dig.(*logWithCtx).get(0x68df80?, {0x400000fb60?, 0x0?})
	/app/dig/dig.go:834 +0x2c0
github.com/indexsupply/x/dig.Integration.processTx({{0x400000fb30, 0x10}, {0x0, {0x400000fbd0, 0xf}, {0x400000fb78, 0x5}, {0x4000258840, 0x4, 0x4}}, ...}, ...)
	/app/dig/dig.go:849 +0x13c
github.com/indexsupply/x/dig.Integration.Insert({{0x400000fb30, 0x10}, {0x0, {0x400000fbd0, 0xf}, {0x400000fb78, 0x5}, {0x4000258840, 0x4, 0x4}}, ...}, ...)
	/app/dig/dig.go:713 +0x438
github.com/indexsupply/x/shovel.(*Task).loadinsert.func1()
	/app/shovel/task.go:471 +0x128
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 18
	/go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:72 +0x98

Really racked my head on this one trying to ensure it wasn't me, but for the life of me I couldn't figure out why the log address is not set correctly for this event.

https://github.com/indexsupply/code/blob/57755b46c8566f8cc8626d13319297fab0c1310e/dig/dig.go#L833-L834

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions