feat: op stack fault proofs #325
Annotations
10 errors and 2 warnings
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { na
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
Anvil log output
=======================================
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
eth_getBlockByHash
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByNumber
evm_setIntervalMining
eth_getBlockByHash
anvil_reset
anvil_reset
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
evm_setIntervalMining
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { na
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests:
src/utils/errors/getContractError.ts#L72
ContractFunctionExecutionError: The contract function "gameCount" returned no data ("0x").
This could be due to any of the following:
- The contract does not have the function "gameCount",
- The parameters passed to the contract function may be invalid, or
- The address is not a contract.
Contract Call:
address: 0x0000000000000000000000000000000000000000
function: gameCount()
Docs: https://viem.sh/docs/contract/readContract
Version: viem@1.0.2
❯ Module.getContractError src/utils/errors/getContractError.ts:72:10
❯ Module.readContract src/actions/public/readContract.ts:128:11
❯ Module.getGames src/chains/opStack/actions/getGames.ts:95:33
❯ Module.getGame src/chains/opStack/actions/getGame.ts:87:23
❯ src/chains/opStack/actions/buildProveWithdrawal.test.ts:38:16
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { details: undefined, docsPath: '/docs/contract/readContract', metaMessages: [ 'This could be due to any of the following:', ' - The contract does not have the function "gameCount",', ' - The parameters passed to the contract function may be invalid, or', ' - The address is not a contract.', ' ', 'Contract Call:', ' address: 0x0000000000000000000000000000000000000000\n function: gameCount()' ], shortMessage: 'The contract function "gameCount" returned no data ("0x").', version: 'viem@1.0.2', abi: [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'function', name: 'create', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'payable' }, { type: 'function', name: 'findLatestGames', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_start', type: 'uint256', internalType: 'uint256' }, { name: '_n', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'games_', type: 'tuple[]', internalType: 'struct IDisputeGameFactory.GameSearchResult[]', components: [ { name: 'index', type: 'uint256', internalType: 'uint256' }, { name: 'metadata', type: 'bytes32', internalType: 'GameId' }, { name: 'timestamp', type: 'uint64', internalType: 'Timestamp' }, { name: 'rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: 'extraData', type: 'bytes', internalType: 'bytes' } ] } ], stateMutability: 'view' }, { type: 'function', name: 'gameAtIndex', inputs: [ { name: '_index', type: 'uint256', internalType: 'uint256' } ], outputs: [ { name: 'gameType_', type: 'uint32', internalType: 'GameType' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' }, { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'gameCount', inputs: [], outputs: [ { name: 'gameCount_', type: 'uint256', internalType: 'uint256' } ], stateMutability: 'view' }, { type: 'function', name: 'gameImpls', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ], outputs: [ { name: '', type: 'address', internalType: 'contract IDisputeGame' } ], stateMutability: 'view' }, { type: 'function', name: 'games', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'proxy_', type: 'address', internalType: 'contract IDisputeGame' }, { name: 'timestamp_', type: 'uint64', internalType: 'Timestamp' } ], stateMutability: 'view' }, { type: 'function', name: 'getGameUUID', inputs: [ { name: '_gameType', type: 'uint32', internalType: 'GameType' }, { name: '_rootClaim', type: 'bytes32', internalType: 'Claim' }, { name: '_extraData', type: 'bytes', internalType: 'bytes' } ], outputs: [ { name: 'uuid_', type: 'bytes32', internalType: 'Hash' } ], stateMutability: 'pure' }, { type: 'function', name: 'initBonds', inputs: [ { name: '', type: 'uint32', internalType: 'GameType' } ]
|
Run tests
Attempt 1 failed. Reason: Child_process exited with error code 1
|
Run tests
Attempt 2 failed. Reason: Child_process exited with error code 1
|
Loading