Kailua FaultDisputeGame is not supported by op-stack module #3794
Unanswered
slavastartsev
asked this question in
Idea / Feature Request
Replies: 1 comment
-
suggested fix: use the |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Check existing issues
Viem Version
2.31.7
Current Behavior
When proving withdrawal tx from OP stack L2 call
publicClientL1.waitProve()
fails becauseextraData
field forKailuaGame
provides different data layout comparing to bedrock'sFaultDisputeGame
contract.Expected Behavior
Update implementation of
waitProve
function to support differentIDisputeGame
contract implementations. As a reference you can check whichGameTypes
optimism supports. Link to OP stack codeSteps To Reproduce
You can follow contract implementation logic to see that returned data has different layout and results in
publicClientL1.waitProve()
function to throw error.Internally it will call
getGames
function. Function fetches latest games fromdisputeGameFactory
contractviem/src/op-stack/actions/getGames.ts
Lines 110 to 119 in 3aa8826
extraData
field containing 32 bytes which represent uint256l2BlockNumber
.Link to
findLatestGames
function implementation. In a loop function fetchesextraData
from each contract implementingIDisputeGame
.FaultDisputeGame contract
extraData
function implementation -> returns 32 bytes storing single valuel2BlockNumber
Kailua game contract
extraData
function implementation -> returns 24 bytes (0x08l2BlockNumber
, 0x08 parentGameIndex, 0x08 duplicationCounter)hence
abiDecodeParameters
call failsviem/src/op-stack/actions/getGames.ts
Lines 122 to 125 in 3aa8826
Link to Minimal Reproducible Example
No response
Anything else?
Link to OP stack code
Beta Was this translation helpful? Give feedback.
All reactions