Skip to content

Commit

Permalink
chore: log the mismatch call stack to understand why block number did…
Browse files Browse the repository at this point in the history
…n't get passed (#782)

the GETH vs RETH mismatch is only from ETH_CALL RPC call. I noticed that such call has the block number as null in the input args, e.g.:

```
"methodName":"call","args":[{"data":"0x1749e1e30000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000d200000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000000000000000000000000000000000000000012200000000000000000000000000000000000000000000000000000000000001360000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000160de4468586b6b2f8a92feb0c260fc6cfc743b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000ea5edef1c6ed1be1bcba4617a1c5a994e9018a43000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace00000000000000000000000012b32f10a499bf40db334efe04226cca00bf2d9b000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace0000000000000000000000005ed60a121159481675bad3e648ba4c89753e056f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000853d955acef822db058eb8505911ed77f175b99e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace0000000000000000000000001f70300bce8c2302780bd0a153ebb75b8ca7efcb000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace00000000000000000000000011e003e9ecc5a2320e8b11098acd550b928b6df2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000cf0c122c6b73ff809c693db761e7baebe62b6a2e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace00000000000000000000000045804880de22913dafe09f4980848ece6ecbaf78000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000b5ee1690b7dcc7859771148d0889be838fe108e000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a40143aace000000000000000000000000956f47f50a910163d8bf957cf5846d573e7f87ca000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000","to":"0x1F98415757620B543A52E61c46B32eB19261F984"},null]
```

I want to understand the call stack that can cause the block number to not get populated, since supposedly SOR [gets the block number ](https://github.com/Uniswap/smart-order-router/blob/main/src/routers/alpha-router/alpha-router.ts#L2472) and pass to every subsequent RPC call.
  • Loading branch information
jsy1218 authored Jul 15, 2024
1 parent a2f06b7 commit 61fb8ab
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/rpc/UniJsonRpcProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -276,9 +276,11 @@ export class UniJsonRpcProvider extends StaticJsonRpcProvider {
case CALL_METHOD_NAME:
// if it's eth_call, then we know the response data type is string, so we can compare directly
if (providerResponse !== evaluatedProviderResponse) {
// create a bogus error object to get the call stack
const error = new Error()
this.log.error(
{ methodName, args },
`Provider response mismatch: ${providerResponse} from ${selectedProvider.providerId} vs ${evaluatedProviderResponse} from ${otherProvider.providerId}`
`Provider response mismatch: ${providerResponse} from ${selectedProvider.providerId} vs ${evaluatedProviderResponse} from ${otherProvider.providerId}. Call stack ${error.stack}`
)
selectedProvider.logRpcResponseMismatch(methodName, otherProvider)
} else {
Expand Down

0 comments on commit 61fb8ab

Please sign in to comment.