diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1be2b2f45..52644f52b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -22,4 +22,4 @@ jobs: - name: Install speccheck run: go install github.com/lightclient/rpctestgen/cmd/speccheck@latest - name: Run speccheck - run: speccheck -v + run: speccheck -v --tests tests/jsonrpc diff --git a/scripts/graphql-validate.js b/scripts/graphql-validate.js index 3bb9d19cb..fb954059e 100644 --- a/scripts/graphql-validate.js +++ b/scripts/graphql-validate.js @@ -1,16 +1,17 @@ import fs from 'fs'; +import path from 'path'; import graphql from 'graphql'; -import { diff, DiffRule } from '@graphql-inspector/core'; +import { diff } from '@graphql-inspector/core'; function ignoreDirectiveChanges(obj) { - return obj.changes.filter((change) => !change.type.startsWith('DIRECTIVE')) + return obj.changes.filter((change) => !change.type.startsWith('DIRECTIVE')); } // Validate JSON schema const raw = fs.readFileSync('graphql.json'); const schema = graphql.buildClientSchema(JSON.parse(raw)); -graphql.assertValidSchema(schema) -console.log('GraphQL JSON schema validated successfully.') +graphql.assertValidSchema(schema); +console.log('GraphQL JSON schema validated successfully.'); // Validate standard schema const rawStd = fs.readFileSync('schema.graphqls', 'utf8'); @@ -19,10 +20,60 @@ graphql.assertValidSchema(schemaStd); console.log('GraphQL standard schema validated successfully.'); // Compare and make sure JSON and standard schemas match. -diff(schema, schemaStd, [ignoreDirectiveChanges]).then((changes) => { +diff(schema, schemaStd, [ignoreDirectiveChanges]) + .then((changes) => { if (changes.length === 0) { - console.log('GraphQL schemas match.') - return + console.log('GraphQL schemas match.'); + return; } - throw new Error(`Found differences between JSON and standard:\n${JSON.stringify(changes, null, 2)}`) -}).catch(console.error); \ No newline at end of file + throw new Error( + `Found differences between JSON and standard:\n${JSON.stringify( + changes, + null, + 2 + )}` + ); + }) + .catch(console.error); + +function validateGraphql(dir) { + fs.readdir(dir, (_, files) => { + files.forEach((file) => { + const filePath = path.join(dir, file); + + console.log(`Validating file: ${filePath}`); + if (fs.statSync(filePath).isFile()) { + const lines = fs.readFileSync(filePath, 'utf8').split('\n'); + + let prev = null; + lines.forEach((line) => { + if (prev && prev.startsWith('>> ') && line.startsWith('<< ')) { + const output = JSON.parse(line.substring(3)); + + // Validate the success Query + if (!'errors' in output) { + const query = graphql.parse(line.substring(3)); + const result = graphql.validate(schema, query); + if (result.length === 0) { + console.log(`GraphQL test ${file} validated successfully.`); + } else { + throw new Error( + `GraphQL query ${file} failed validation:\n${JSON.stringify( + result, + null, + 2 + )}` + ); + } + } + } + + prev = line; + }); + } else { + validateGraphql(filePath); + } + }); + }); +} +validateGraphql('tests/graphql'); diff --git a/tests/graphql/block/block_withdrawals.io b/tests/graphql/block/block_withdrawals.io new file mode 100644 index 000000000..0765c8cd5 --- /dev/null +++ b/tests/graphql/block/block_withdrawals.io @@ -0,0 +1,2 @@ +>> {block(number: 33) {number withdrawalsRoot withdrawals {index amount validator address}}} +<< {"data":{"block":{"number":"0x21","withdrawalsRoot":"0x37945ab58d2712a26df2a38d217e822694927e29b30d5993d7a53ccea618d1f3","withdrawals":[{"index":"0x0","amount":"0x2540be400","validator":"0xa","address":"0x0000000000000000000000000000000000000dad"}]}}} diff --git a/tests/graphql/block/block_withdrawals_pre_shanghai.io b/tests/graphql/block/block_withdrawals_pre_shanghai.io new file mode 100644 index 000000000..79dc85ea5 --- /dev/null +++ b/tests/graphql/block/block_withdrawals_pre_shanghai.io @@ -0,0 +1,2 @@ +>> {block(number: 32) {number withdrawalsRoot withdrawals {index amount}}} +<< {"data":{"block":{"number":"0x20","withdrawalsRoot":null,"withdrawals":null}}} diff --git a/tests/graphql/block/eth_blockNumber.io b/tests/graphql/block/eth_blockNumber.io new file mode 100644 index 000000000..b2b45ae00 --- /dev/null +++ b/tests/graphql/block/eth_blockNumber.io @@ -0,0 +1,2 @@ +>> {block {number}} +<< {"data":{"block":{"number":"0x21"}}} diff --git a/tests/graphql/block/eth_call_Block8.io b/tests/graphql/block/eth_call_Block8.io new file mode 100644 index 000000000..e82d121a5 --- /dev/null +++ b/tests/graphql/block/eth_call_Block8.io @@ -0,0 +1,2 @@ +>> {block(number: 8) {number call(data: {from: "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" to: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" data: "0x12a7b914"}) {data status}}} +<< {"data":{"block":{"number":"0x8","call":{"data":"0x0000000000000000000000000000000000000000000000000000000000000000","status":"0x1"}}}} diff --git a/tests/graphql/block/eth_call_BlockLatest.io b/tests/graphql/block/eth_call_BlockLatest.io new file mode 100644 index 000000000..f15db13cb --- /dev/null +++ b/tests/graphql/block/eth_call_BlockLatest.io @@ -0,0 +1,2 @@ +>> {block {number call(data: {from: "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" to: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" data: "0x12a7b914"}) {data status}}} +<< {"data":{"block":{"number":"0x21","call":{"data":"0x0000000000000000000000000000000000000000000000000000000000000001","status":"0x1"}}}} diff --git a/tests/graphql/block/eth_estimateGas_contractDeploy.io b/tests/graphql/block/eth_estimateGas_contractDeploy.io new file mode 100644 index 000000000..2d7e25a96 --- /dev/null +++ b/tests/graphql/block/eth_estimateGas_contractDeploy.io @@ -0,0 +1,2 @@ +>> {block(number: 32) {estimateGas(data: {from: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" data: "0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"})}} +<< {"data":{"block":{"estimateGas":"0x1b551"}}} diff --git a/tests/graphql/block/eth_estimateGas_noParams.io b/tests/graphql/block/eth_estimateGas_noParams.io new file mode 100644 index 000000000..cb64ca126 --- /dev/null +++ b/tests/graphql/block/eth_estimateGas_noParams.io @@ -0,0 +1,2 @@ +>> {block(number: 32) {estimateGas(data: {})}} +<< {"data":{"block":{"estimateGas":"0x5208"}}} diff --git a/tests/graphql/block/eth_estimateGas_transfer.io b/tests/graphql/block/eth_estimateGas_transfer.io new file mode 100644 index 000000000..7d21d62ea --- /dev/null +++ b/tests/graphql/block/eth_estimateGas_transfer.io @@ -0,0 +1,2 @@ +>> {block {estimateGas(data: {from: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" to: "0x8888f1f195afa192cfee860698584c030f4c9db1"})}} +<< {"data":{"block":{"estimateGas":"0x5208"}}} diff --git a/tests/graphql/block/eth_getBalance_0x19.io b/tests/graphql/block/eth_getBalance_0x19.io new file mode 100644 index 000000000..e371ea672 --- /dev/null +++ b/tests/graphql/block/eth_getBalance_0x19.io @@ -0,0 +1,2 @@ +>> {block(number: 25) {account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {balance}}} +<< {"data":{"block":{"account":{"balance":"0xfa"}}}} diff --git a/tests/graphql/block/eth_getBalance_invalidAccountBlockNumber.io b/tests/graphql/block/eth_getBalance_invalidAccountBlockNumber.io new file mode 100644 index 000000000..aa76d5246 --- /dev/null +++ b/tests/graphql/block/eth_getBalance_invalidAccountBlockNumber.io @@ -0,0 +1,2 @@ +>> {block(number: 25) {account(address: "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef") {balance}}} +<< {"data":{"block":{"account":{"balance":"0x0"}}}} diff --git a/tests/graphql/block/eth_getBalance_invalidAccountLatest.io b/tests/graphql/block/eth_getBalance_invalidAccountLatest.io new file mode 100644 index 000000000..87f660bc9 --- /dev/null +++ b/tests/graphql/block/eth_getBalance_invalidAccountLatest.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0xdeaff00ddeaff00ddeaff00ddeaff00ddeaff00d") {balance}}} +<< {"data":{"block":{"account":{"balance":"0x0"}}}} diff --git a/tests/graphql/block/eth_getBalance_latest.io b/tests/graphql/block/eth_getBalance_latest.io new file mode 100644 index 000000000..dade195b6 --- /dev/null +++ b/tests/graphql/block/eth_getBalance_latest.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {balance}}} +<< {"data":{"block":{"account":{"balance":"0x140"}}}} diff --git a/tests/graphql/block/eth_getBalance_toobig_bn.io b/tests/graphql/block/eth_getBalance_toobig_bn.io new file mode 100644 index 000000000..fd9ef3771 --- /dev/null +++ b/tests/graphql/block/eth_getBalance_toobig_bn.io @@ -0,0 +1,2 @@ +>> {block(number: 133) {account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {balance}}} +<< {"data":{"block":null}} diff --git a/tests/graphql/block/eth_getBalance_without_addr.io b/tests/graphql/block/eth_getBalance_without_addr.io new file mode 100644 index 000000000..16f49c7e1 --- /dev/null +++ b/tests/graphql/block/eth_getBalance_without_addr.io @@ -0,0 +1,2 @@ +>> {block {account {balance}}} +<< {"errors":[{"message":"ValidationerroroftypeMissingFieldArgument:Missingfieldargumentaddress@'account'","locations":[{"line":1,"column":2}],"extensions":{"classification":"ValidationError"}}]} diff --git a/tests/graphql/block/eth_getBlockTransactionCount_byHash.io b/tests/graphql/block/eth_getBlockTransactionCount_byHash.io new file mode 100644 index 000000000..6b2cf8f3e --- /dev/null +++ b/tests/graphql/block/eth_getBlockTransactionCount_byHash.io @@ -0,0 +1,2 @@ +>> {block(hash: "0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6") {transactionCount}} +<< {"data":{"block":{"transactionCount":"0x1"}}} diff --git a/tests/graphql/block/eth_getBlockTransactionCount_byNumber.io b/tests/graphql/block/eth_getBlockTransactionCount_byNumber.io new file mode 100644 index 000000000..8a4609599 --- /dev/null +++ b/tests/graphql/block/eth_getBlockTransactionCount_byNumber.io @@ -0,0 +1,2 @@ +>> {block(number: 30) {transactions {hash} timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot}} +<< {"data":{"block":{"transactions":[{"hash":"0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4"}],"timestamp":"0x561bc336","difficulty":"0x20740","totalDifficulty":"0x3e6cc0","gasUsed":"0x5c21","gasLimit":"0x2fefd8","hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6","nonce":"0x5c321bd9e9f040f1","ommerCount":"0x0","logsBloom":"0x00000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000080000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000400000000000000000200000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000800000000040000000000000000000000000000000000000000010000000000000000000000000","mixHash":"0x6ce1c4afb4f85fefd1b0ed966b20cd248f08d9a5b0df773f75c6c2f5cc237b7c","ommerHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","extraData":"0x","stateRoot":"0xdb46d6bb168130fe2cb60b4b24346137b5741f11283e0d7edace65c5f5466b2e","receiptsRoot":"0x88b3b304b058b39791c26fdb94a05cc16ce67cf8f84f7348cb3c60c0ff342d0d","transactionCount":"0x1","transactionsRoot":"0x5a8d5d966b48e1331ae19eb459eb28882cdc7654e615d37774b79204e875dc01"}}} diff --git a/tests/graphql/block/eth_getBlock_byHash.io b/tests/graphql/block/eth_getBlock_byHash.io new file mode 100644 index 000000000..3d60fa4c7 --- /dev/null +++ b/tests/graphql/block/eth_getBlock_byHash.io @@ -0,0 +1,2 @@ +>> {block(hash: "0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6") {number transactions {hash} timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot}} +<< {"data":{"block":{"number":"0x1e","transactions":[{"hash":"0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4"}],"timestamp":"0x561bc336","difficulty":"0x20740","totalDifficulty":"0x3e6cc0","gasUsed":"0x5c21","gasLimit":"0x2fefd8","hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6","nonce":"0x5c321bd9e9f040f1","ommerCount":"0x0","logsBloom":"0x00000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000080000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000400000000000000000200000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000800000000040000000000000000000000000000000000000000010000000000000000000000000","mixHash":"0x6ce1c4afb4f85fefd1b0ed966b20cd248f08d9a5b0df773f75c6c2f5cc237b7c","ommerHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","extraData":"0x","stateRoot":"0xdb46d6bb168130fe2cb60b4b24346137b5741f11283e0d7edace65c5f5466b2e","receiptsRoot":"0x88b3b304b058b39791c26fdb94a05cc16ce67cf8f84f7348cb3c60c0ff342d0d","transactionCount":"0x1","transactionsRoot":"0x5a8d5d966b48e1331ae19eb459eb28882cdc7654e615d37774b79204e875dc01"}}} diff --git a/tests/graphql/block/eth_getBlock_byHashInvalid.io b/tests/graphql/block/eth_getBlock_byHashInvalid.io new file mode 100644 index 000000000..29db12c0d --- /dev/null +++ b/tests/graphql/block/eth_getBlock_byHashInvalid.io @@ -0,0 +1,2 @@ +>> {block(hash: "0x123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0") {number}} +<< {"errors":[{"message":"Exceptionwhilefetchingdata(/block):Blockhash0x123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0wasnotfound","locations":[{"line":1,"column":2}],"path":["block"],"extensions":{"classification":"DataFetchingException"}}],"data":null} diff --git a/tests/graphql/block/eth_getBlock_byNumber.io b/tests/graphql/block/eth_getBlock_byNumber.io new file mode 100644 index 000000000..d89226aef --- /dev/null +++ b/tests/graphql/block/eth_getBlock_byNumber.io @@ -0,0 +1,2 @@ +>> {block(number: 30) {transactions {hash} timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot ommers {hash} ommerAt(index: 1) {hash} miner {address} account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {balance} parent {hash}}} +<< {"data":{"block":{"transactions":[{"hash":"0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4"}],"timestamp":"0x561bc336","difficulty":"0x20740","totalDifficulty":"0x3e6cc0","gasUsed":"0x5c21","gasLimit":"0x2fefd8","hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6","nonce":"0x5c321bd9e9f040f1","ommerCount":"0x0","logsBloom":"0x00000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000080000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000400000000000000000200000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000800000000040000000000000000000000000000000000000000010000000000000000000000000","mixHash":"0x6ce1c4afb4f85fefd1b0ed966b20cd248f08d9a5b0df773f75c6c2f5cc237b7c","ommerHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","extraData":"0x","stateRoot":"0xdb46d6bb168130fe2cb60b4b24346137b5741f11283e0d7edace65c5f5466b2e","receiptsRoot":"0x88b3b304b058b39791c26fdb94a05cc16ce67cf8f84f7348cb3c60c0ff342d0d","transactionCount":"0x1","transactionsRoot":"0x5a8d5d966b48e1331ae19eb459eb28882cdc7654e615d37774b79204e875dc01","ommers":[],"ommerAt":null,"miner":{"address":"0x8888f1f195afa192cfee860698584c030f4c9db1"},"account":{"balance":"0x12c"},"parent":{"hash":"0xf8cfa377bd766cdf22edb388dd08cc149e85d24f2796678c835f3c54ab930803"}}}} diff --git a/tests/graphql/block/eth_getBlock_byNumberInvalid.io b/tests/graphql/block/eth_getBlock_byNumberInvalid.io new file mode 100644 index 000000000..93c01db71 --- /dev/null +++ b/tests/graphql/block/eth_getBlock_byNumberInvalid.io @@ -0,0 +1,2 @@ +>> {block(number: 88888888) {number}} +<< {"data":{"block":null}} diff --git a/tests/graphql/block/eth_getBlock_shanghai.io b/tests/graphql/block/eth_getBlock_shanghai.io new file mode 100644 index 000000000..6eeec1dc5 --- /dev/null +++ b/tests/graphql/block/eth_getBlock_shanghai.io @@ -0,0 +1,2 @@ +>> {block(number: 33) {baseFeePerGas difficulty extraData miner {address} mixHash nonce stateRoot totalDifficulty withdrawalsRoot withdrawals {address amount index validator}}} +<< {"data":{"block":{"baseFeePerGas":"0x3b9aca00","difficulty":"0x0","extraData":"0x","miner":{"address":"0x0000000000000000000000000000000000000000"},"mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","stateRoot":"0x0d3c456bb68669bad05da3a1a766daab236c9df1da8f74edf5ebe9383f00084c","totalDifficulty":"0x427c00","withdrawalsRoot":"0x37945ab58d2712a26df2a38d217e822694927e29b30d5993d7a53ccea618d1f3","withdrawals":[{"address":"0x0000000000000000000000000000000000000dad","amount":"0x2540be400","index":"0x0","validator":"0xa"}]}}} diff --git a/tests/graphql/block/eth_getBlock_wrongParams.io b/tests/graphql/block/eth_getBlock_wrongParams.io new file mode 100644 index 000000000..35dc4869e --- /dev/null +++ b/tests/graphql/block/eth_getBlock_wrongParams.io @@ -0,0 +1,2 @@ +>> {block(number: "0x03" hash: "0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6") {number transactions {hash} timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot}} +<< {"errors":[{"message":"Exceptionwhilefetchingdata(/block):Invalidparams","locations":[{"line":1,"column":2}],"path":["block"],"extensions":{"errorCode":-32602,"errorMessage":"Invalidparams","classification":"DataFetchingException"}}],"data":null} diff --git a/tests/graphql/block/eth_getCode.io b/tests/graphql/block/eth_getCode.io new file mode 100644 index 000000000..0cf32fbcc --- /dev/null +++ b/tests/graphql/block/eth_getCode.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {code}}} +<< {"data":{"block":{"account":{"code":"0x6000357c010000000000000000000000000000000000000000000000000000000090048063102accc11461012c57806312a7b9141461013a5780631774e6461461014c5780631e26fd331461015d5780631f9030371461016e578063343a875d1461018057806338cc4831146101955780634e7ad367146101bd57806357cb2fc4146101cb57806365538c73146101e057806368895979146101ee57806376bc21d9146102005780639a19a9531461020e5780639dc2c8f51461021f578063a53b1c1e1461022d578063a67808571461023e578063b61c05031461024c578063c2b12a731461025a578063d2282dc51461026b578063e30081a01461027c578063e8beef5b1461028d578063f38b06001461029b578063f5b53e17146102a9578063fd408767146102bb57005b6101346104d6565b60006000f35b61014261039b565b8060005260206000f35b610157600435610326565b60006000f35b6101686004356102c9565b60006000f35b610176610442565b8060005260206000f35b6101886103d3565b8060ff1660005260206000f35b61019d610413565b8073ffffffffffffffffffffffffffffffffffffffff1660005260206000f35b6101c56104c5565b60006000f35b6101d36103b7565b8060000b60005260206000f35b6101e8610454565b60006000f35b6101f6610401565b8060005260206000f35b61020861051f565b60006000f35b6102196004356102e5565b60006000f35b610227610693565b60006000f35b610238600435610342565b60006000f35b610246610484565b60006000f35b610254610493565b60006000f35b61026560043561038d565b60006000f35b610276600435610350565b60006000f35b61028760043561035e565b60006000f35b6102956105b4565b60006000f35b6102a3610547565b60006000f35b6102b16103ef565b8060005260206000f35b6102c3610600565b60006000f35b80600060006101000a81548160ff021916908302179055505b50565b80600060016101000a81548160ff02191690837f01000000000000000000000000000000000000000000000000000000000000009081020402179055505b50565b80600060026101000a81548160ff021916908302179055505b50565b806001600050819055505b50565b806002600050819055505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055505b50565b806004600050819055505b50565b6000600060009054906101000a900460ff1690506103b4565b90565b6000600060019054906101000a900460000b90506103d0565b90565b6000600060029054906101000a900460ff1690506103ec565b90565b600060016000505490506103fe565b90565b60006002600050549050610410565b90565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061043f565b90565b60006004600050549050610451565b90565b7f65c9ac8011e286e89d02a269890f41d67ca2cc597b2c76c7c69321ff492be5806000602a81526020016000a15b565b6000602a81526020016000a05b565b60017f81933b308056e7e85668661dcd102b1f22795b4431f9cf4625794f381c271c6b6000602a81526020016000a25b565b60016000602a81526020016000a15b565b3373ffffffffffffffffffffffffffffffffffffffff1660017f0e216b62efbb97e751a2ce09f607048751720397ecfb9eef1e48a6644948985b6000602a81526020016000a35b565b3373ffffffffffffffffffffffffffffffffffffffff1660016000602a81526020016000a25b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001023373ffffffffffffffffffffffffffffffffffffffff1660017f317b31292193c2a4f561cc40a95ea0d97a2733f14af6d6d59522473e1f3ae65f6000602a81526020016000a45b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001023373ffffffffffffffffffffffffffffffffffffffff1660016000602a81526020016000a35b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001023373ffffffffffffffffffffffffffffffffffffffff1660017fd5f0a30e4be0c6be577a71eceb7464245a796a7e6a55c0d971837b250de05f4e60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe98152602001602a81526020016000a45b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001023373ffffffffffffffffffffffffffffffffffffffff16600160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe98152602001602a81526020016000a35b56"}}}} diff --git a/tests/graphql/block/eth_getCode_noCode.io b/tests/graphql/block/eth_getCode_noCode.io new file mode 100644 index 000000000..ab9bf690c --- /dev/null +++ b/tests/graphql/block/eth_getCode_noCode.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0x8888f1f195afa192cfee860698584c030f4c9db1") {code}}} +<< {"data":{"block":{"account":{"code":"0x"}}}} diff --git a/tests/graphql/block/eth_getLogs_matchTopic.io b/tests/graphql/block/eth_getLogs_matchTopic.io new file mode 100644 index 000000000..e96d6bb4e --- /dev/null +++ b/tests/graphql/block/eth_getLogs_matchTopic.io @@ -0,0 +1,2 @@ +>> {block(number: 23) {logs(filter: {topics: [ [ "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" "0x65c9ac8011e286e89d02a269890f41d67ca2cc597b2c76c7c69321ff492be580" ] ]}) {index topics data account {address} transaction {hash}}}} +<< {"data":{"block":{"logs":[{"index":"0x0","topics":["0x65c9ac8011e286e89d02a269890f41d67ca2cc597b2c76c7c69321ff492be580"],"data":"0x000000000000000000000000000000000000000000000000000000000000002a","account":{"address":"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f"},"transaction":{"hash":"0x97a385bf570ced7821c6495b3877ddd2afd5c452f350f0d4876e98d9161389c6"}}]}}} diff --git a/tests/graphql/block/eth_getStorageAt.io b/tests/graphql/block/eth_getStorageAt.io new file mode 100644 index 000000000..3ab6c7b31 --- /dev/null +++ b/tests/graphql/block/eth_getStorageAt.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {storage(slot: "0x0000000000000000000000000000000000000000000000000000000000000004")}}} +<< {"data":{"block":{"account":{"storage":"0xaabbccffffffffffffffffffffffffffffffffffffffffffffffffffffffffee"}}}} diff --git a/tests/graphql/block/eth_getStorageAt_illegalRangeGreaterThan.io b/tests/graphql/block/eth_getStorageAt_illegalRangeGreaterThan.io new file mode 100644 index 000000000..baf6d5296 --- /dev/null +++ b/tests/graphql/block/eth_getStorageAt_illegalRangeGreaterThan.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {storage(slot: "0x0000000000000000000000000000000000000000000000000000000000000021")}}} +<< {"data":{"block":{"account":{"storage":"0x0000000000000000000000000000000000000000000000000000000000000000"}}}} diff --git a/tests/graphql/block/eth_getTransactionCount.io b/tests/graphql/block/eth_getTransactionCount.io new file mode 100644 index 000000000..323cd0a2c --- /dev/null +++ b/tests/graphql/block/eth_getTransactionCount.io @@ -0,0 +1,2 @@ +>> {block {account(address: "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b") {transactionCount}}} +<< {"data":{"block":{"account":{"transactionCount":"0x21"}}}} diff --git a/tests/graphql/block/eth_getTransaction_byBlockHashAndIndex.io b/tests/graphql/block/eth_getTransaction_byBlockHashAndIndex.io new file mode 100644 index 000000000..47fcce0b7 --- /dev/null +++ b/tests/graphql/block/eth_getTransaction_byBlockHashAndIndex.io @@ -0,0 +1,2 @@ +>> {block(hash: "0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6") {transactionAt(index: 0) {block {hash} hash}}} +<< {"data":{"block":{"transactionAt":{"block":{"hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6"},"hash":"0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4"}}}} diff --git a/tests/graphql/block/eth_getTransaction_byBlockNumberAndIndex.io b/tests/graphql/block/eth_getTransaction_byBlockNumberAndIndex.io new file mode 100644 index 000000000..9db42fff0 --- /dev/null +++ b/tests/graphql/block/eth_getTransaction_byBlockNumberAndIndex.io @@ -0,0 +1,2 @@ +>> {block(number: 30) {transactionAt(index: 0) {block {hash} hash}}} +<< {"data":{"block":{"transactionAt":{"block":{"hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6"},"hash":"0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4"}}}} diff --git a/tests/graphql/block/eth_getTransaction_byBlockNumberAndInvalidIndex.io b/tests/graphql/block/eth_getTransaction_byBlockNumberAndInvalidIndex.io new file mode 100644 index 000000000..f490f65a1 --- /dev/null +++ b/tests/graphql/block/eth_getTransaction_byBlockNumberAndInvalidIndex.io @@ -0,0 +1,2 @@ +>> {block(number: 30) {transactionAt(index: 1) {block {hash} hash}}} +<< {"data":{"block":{"transactionAt":null}}} diff --git a/tests/graphql/block/getBlock_byHexNumber.io b/tests/graphql/block/getBlock_byHexNumber.io new file mode 100644 index 000000000..364f33381 --- /dev/null +++ b/tests/graphql/block/getBlock_byHexNumber.io @@ -0,0 +1,2 @@ +>> {block(number: "0x1e") {gasUsed gasLimit hash}} +<< {"data":{"block":{"gasUsed":"0x5c21","gasLimit":"0x2fefd8","hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6"}}} diff --git a/tests/graphql/blocks/graphql_blocks_byFrom.io b/tests/graphql/blocks/graphql_blocks_byFrom.io new file mode 100644 index 000000000..5110cf0d9 --- /dev/null +++ b/tests/graphql/blocks/graphql_blocks_byFrom.io @@ -0,0 +1,2 @@ +>> {blocks(from: 30) {number}} +<< {"data":{"blocks":[{"number":"0x1e"},{"number":"0x1f"},{"number":"0x20"},{"number":"0x21"}]}} diff --git a/tests/graphql/blocks/graphql_blocks_byRange.io b/tests/graphql/blocks/graphql_blocks_byRange.io new file mode 100644 index 000000000..d0d5384cc --- /dev/null +++ b/tests/graphql/blocks/graphql_blocks_byRange.io @@ -0,0 +1,2 @@ +>> {blocks(from: 30, to: 32) {number gasUsed gasLimit hash nonce stateRoot receiptsRoot transactionCount}} +<< {"data":{"blocks":[{"number":"0x1e","gasUsed":"0x5c21","gasLimit":"0x2fefd8","hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6","nonce":"0x5c321bd9e9f040f1","stateRoot":"0xdb46d6bb168130fe2cb60b4b24346137b5741f11283e0d7edace65c5f5466b2e","receiptsRoot":"0x88b3b304b058b39791c26fdb94a05cc16ce67cf8f84f7348cb3c60c0ff342d0d","transactionCount":"0x1"},{"number":"0x1f","gasUsed":"0x5eef","gasLimit":"0x2fefd8","hash":"0x0f765087745aa259d9e5ac39c367c57432a16ed98e3b0d81c5b51d10f301dc49","nonce":"0xd3a27a3001616468","stateRoot":"0xa80997cf804269d64f2479baf535cf8f9090b70fbf515741c6995564f1e678bd","receiptsRoot":"0x2440c44a3f75ad8b0425a73e7be2f61a5171112465cfd14e62e735b56d7178e6","transactionCount":"0x1"},{"number":"0x20","gasUsed":"0x5c99","gasLimit":"0x2fefd8","hash":"0x71d59849ddd98543bdfbe8548f5eed559b07b8aaf196369f39134500eab68e53","nonce":"0xdb063000b00e8026","stateRoot":"0xf65f3dd13f72f5fa5607a5224691419969b4f4bae7a00a6cdb853f2ca9eeb1be","receiptsRoot":"0xa50a7e67e833f4502524371ee462ccbcc6c6cabd2aeb1555c56150007a53183c","transactionCount":"0x1"}]}} diff --git a/tests/graphql/blocks/graphql_blocks_byWrongRange.io b/tests/graphql/blocks/graphql_blocks_byWrongRange.io new file mode 100644 index 000000000..d4852e8c7 --- /dev/null +++ b/tests/graphql/blocks/graphql_blocks_byWrongRange.io @@ -0,0 +1,2 @@ +>> {blocks(from: "0x1e", to: "0x1c") {number gasUsed gasLimit hash nonce stateRoot receiptsRoot transactionCount}} +<< {"data":{"blocks":[]}} diff --git a/tests/graphql/chain.rlp b/tests/graphql/chain.rlp new file mode 100644 index 000000000..480efc87d Binary files /dev/null and b/tests/graphql/chain.rlp differ diff --git a/tests/graphql/genesis.json b/tests/graphql/genesis.json new file mode 100644 index 000000000..e55ac9008 --- /dev/null +++ b/tests/graphql/genesis.json @@ -0,0 +1,16 @@ +{ + "config" : {}, + "coinbase" : "0x8888f1f195afa192cfee860698584c030f4c9db1", + "difficulty" : "0x020000", + "extraData" : "0x42", + "gasLimit" : "0x2fefd8", + "mixHash" : "0x2c85bcbce56429100b2108254bb56906257582aeafcbd682bc9af67a9f5aee46", + "nonce" : "0x78cc16f7b4f65485", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "timestamp" : "0x54c98c81", + "alloc" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "balance" : "0x09184e72a000" + } + } +} \ No newline at end of file diff --git a/tests/graphql/pending/graphql_pending.io b/tests/graphql/pending/graphql_pending.io new file mode 100644 index 000000000..07dd14cff --- /dev/null +++ b/tests/graphql/pending/graphql_pending.io @@ -0,0 +1,5 @@ +>> mutation {sendRawTransaction(data: "0xf85021822710830186a080808200011ba01b733c6ee0c3ea21830991381618712eee6dd3a85136d3ac6c23b437ed6414e6a07709914716fb9751130f7c44f1d3ef94ceb02cbe0f6721608bb2050d96933e81")} +<< {"data":{"sendRawTransaction":"0x34b0f5643684a4379df8e81bd84207857d346eab44fd3f92cbbef9f72064fd35"}} + +>> {pending {transactionCount transactions {nonce gas} account(address: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f") {balance} estimateGas(data: {}) call(data: {from: "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" to: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" data: "0x12a7b914"}) {data status}}} +<< {"data":{"pending":{"transactionCount":"0x1","transactions":[{"nonce":"0x21","gas":"0x186a0"}],"account":{"balance":"0x140"},"estimateGas":"0xcf08","call":{"data":"0x0000000000000000000000000000000000000000000000000000000000000001","status":"0x1"}}}} diff --git a/tests/graphql/sendRawTransaction/eth_sendRawTransaction_contractCreation.io b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_contractCreation.io new file mode 100644 index 000000000..78b2e832c --- /dev/null +++ b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_contractCreation.io @@ -0,0 +1,2 @@ +>> mutation {sendRawTransaction(data: "0xf901ca3285174876e800830fffff8080b90177608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb00291ca05d71c687073e23402e59853d85c587f6eebc735082f40a450e407451b42ee2a4a07d4f2db1717dc9be745b991962193fa0d5f6059b9c92350dba3efe3a99df6b52")} +<< {"data":{"sendRawTransaction":"0xf9a25e1d6202e9ea1d984f76939e9bb3609bfb9aea2541ae8a629270343fbb2f"}} diff --git a/tests/graphql/sendRawTransaction/eth_sendRawTransaction_messageCall.io b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_messageCall.io new file mode 100644 index 000000000..4b7d25e7a --- /dev/null +++ b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_messageCall.io @@ -0,0 +1,2 @@ +>> mutation {sendRawTransaction(data: "0xf8693785174876e800830fffff94450b61224a7df4d8a70f3e20d4fd6a6380b920d180843bdab8bf1ba054b00220864ab58246bbe0a6f6d50166f9bd0ba3f1711912f79c073da6368ca5a04f84bc3231ee4406b8ceb8740d6d8d1900f87b67b9f4a0a38bc55062121a94c6")} +<< {"data":{"sendRawTransaction":"0x6ad12f495251471d1834852623c2eeb2cb04d2fb9e1a5d6cff481cfec7b233a8"}} diff --git a/tests/graphql/sendRawTransaction/eth_sendRawTransaction_nonceTooLow.io b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_nonceTooLow.io new file mode 100644 index 000000000..0038fd22b --- /dev/null +++ b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_nonceTooLow.io @@ -0,0 +1,2 @@ +>> mutation {sendRawTransaction(data: "0xf86410018304cb2f946295ee1b4f6dd65047762f924ecd367c17eabf8f0a8457cb2fc41ca0060dc80554e845b572ab6b88dab08f7491f83b4405fea2f067a80b3742127fb0a0246160f01d027a0335be590d443335ecb2cf5d9f9589c8efffa4acbda4acafea")} +<< {"errors":[{"message":"Exceptionwhilefetchingdata(/sendRawTransaction):Noncetoolow","locations":[{"line":1,"column":12}],"path":["sendRawTransaction"],"extensions":{"errorCode":-32001,"errorMessage":"Noncetoolow","classification":"DataFetchingException"}}],"data":null} diff --git a/tests/graphql/sendRawTransaction/eth_sendRawTransaction_transferEther.io b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_transferEther.io new file mode 100644 index 000000000..fbf7b5625 --- /dev/null +++ b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_transferEther.io @@ -0,0 +1,2 @@ +>> mutation {sendRawTransaction(data: "0xf86d3785174876e801830222e0945aae326516b4f8fe08074b7e972e40a713048d628829a2241af62c0000801ca077d36666ce36d433b6f1ac62eafe7a232354c83ad2293cfcc2445a86bcd08b4da04b8bd0918d440507ab81d47cf562addaa15a1d28ac701989f5141c8da49615d0")} +<< {"data":{"sendRawTransaction":"0x772b6d5c64b9798865d6dfa35ba44d181abd96a448f8ab7ea9e9631cabb7b290"}} diff --git a/tests/graphql/sendRawTransaction/eth_sendRawTransaction_unsignedTransaction.io b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_unsignedTransaction.io new file mode 100644 index 000000000..304ca9188 --- /dev/null +++ b/tests/graphql/sendRawTransaction/eth_sendRawTransaction_unsignedTransaction.io @@ -0,0 +1,2 @@ +>> mutation {sendRawTransaction(data: "0xed0a85174876e800830222e0945aae326516b4f8fe08074b7e972e40a713048d62880de0b6b3a7640000801c8080")} +<< {"errors":[{"message":"Exceptionwhilefetchingdata(/sendRawTransaction):Invalidparams","locations":[{"line":1,"column":12}],"path":["sendRawTransaction"],"extensions":{"errorCode":-32602,"errorMessage":"Invalidparams","classification":"DataFetchingException"}}],"data":null} diff --git a/tests/graphql/syncing/eth_syncing.io b/tests/graphql/syncing/eth_syncing.io new file mode 100644 index 000000000..c3aff0fbf --- /dev/null +++ b/tests/graphql/syncing/eth_syncing.io @@ -0,0 +1,2 @@ +>> {syncing {startingBlock currentBlock highestBlock}} +<< {"data":{"syncing":null}} diff --git a/tests/graphql/transaction/eth_getTransactionReceipt.io b/tests/graphql/transaction/eth_getTransactionReceipt.io new file mode 100644 index 000000000..2d11cff6e --- /dev/null +++ b/tests/graphql/transaction/eth_getTransactionReceipt.io @@ -0,0 +1,2 @@ +>> {transaction(hash: "0x812742182a79a8e67733edc58cfa3767aa2d7ad06439d156ddbbb33e3403b4ed") {block {hash logsBloom} hash createdContract {address} cumulativeGasUsed gas gasUsed logs {topics} from {address} to {address} index}} +<< {"data":{"transaction":{"block":{"hash":"0x10aaf14a53caf27552325374429d3558398a36d3682ede6603c2c6511896e9f9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"createdContract":{"address":"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f"},"cumulativeGasUsed":"0x78674","from":{"address":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"},"gas":"0x2fefd8","gasUsed":"0x78674","hash":"0x812742182a79a8e67733edc58cfa3767aa2d7ad06439d156ddbbb33e3403b4ed","index":"0x0","logs":[],"to":null}}} diff --git a/tests/graphql/transaction/eth_getTransaction_byHash.io b/tests/graphql/transaction/eth_getTransaction_byHash.io new file mode 100644 index 000000000..95adb4c7a --- /dev/null +++ b/tests/graphql/transaction/eth_getTransaction_byHash.io @@ -0,0 +1,2 @@ +>> {transaction(hash: "0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4") {block {hash} gas gasPrice hash inputData nonce index value from {address} to {address} logs {index} status createdContract {address}}} +<< {"data":{"transaction":{"block":{"hash":"0xc8df1f061abb4d0c107b2b1a794ade8780b3120e681f723fe55a7be586d95ba6"},"createdContract":null,"from":{"address":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"},"gas":"0x4cb2f","gasPrice":"0x1","hash":"0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4","index":"0x0","inputData":"0xe8beef5b","logs":[{"index":"0x0"}],"nonce":"0x1d","status":null,"to":{"address":"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f"},"value":"0xa"}}} diff --git a/tests/graphql/transaction/eth_getTransaction_byHashNull.io b/tests/graphql/transaction/eth_getTransaction_byHashNull.io new file mode 100644 index 000000000..c7d712bcc --- /dev/null +++ b/tests/graphql/transaction/eth_getTransaction_byHashNull.io @@ -0,0 +1,2 @@ +>> {transaction(hash: "0xffc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4") {block {hash} gas gasPrice hash inputData nonce index value}} +<< {"data":{"transaction":null}} diff --git a/tests/graphql/transaction/get_type2Transaction.io b/tests/graphql/transaction/get_type2Transaction.io new file mode 100644 index 000000000..b4e4b976f --- /dev/null +++ b/tests/graphql/transaction/get_type2Transaction.io @@ -0,0 +1,2 @@ +>> {transaction(hash: "0x3ecd2ca6cf26c864d0ea5f038a58d4cd4a46a3e242fe92f446f392fdc232dd98") {accessList {address storageKeys} maxFeePerGas maxPriorityFeePerGas nonce type status}} +<< {"data":{"transaction":{"accessList":[{"address":"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000"]}],"maxFeePerGas":"0xb2d05e00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x20","type":"0x2","status":"0x1"}}} diff --git a/tests/graphql/transaction/transaction_fromByHexBlockNumber.io b/tests/graphql/transaction/transaction_fromByHexBlockNumber.io new file mode 100644 index 000000000..e6a7cf0f5 --- /dev/null +++ b/tests/graphql/transaction/transaction_fromByHexBlockNumber.io @@ -0,0 +1,2 @@ +>> {transaction(hash: "0x9cc6c7e602c56aa30c554bb691377f8703d778cec8845f4b88c0f72516b304f4") {block {number} from(block: "0x1d") {transactionCount}}} +<< {"data":{"transaction":{"block":{"number":"0x1e"},"from":{"transactionCount":"0x1d"}}}} diff --git a/tests/README.md b/tests/jsonrpc/README.md similarity index 100% rename from tests/README.md rename to tests/jsonrpc/README.md diff --git a/tests/bad.rlp b/tests/jsonrpc/bad.rlp similarity index 100% rename from tests/bad.rlp rename to tests/jsonrpc/bad.rlp diff --git a/tests/chain.rlp b/tests/jsonrpc/chain.rlp similarity index 100% rename from tests/chain.rlp rename to tests/jsonrpc/chain.rlp diff --git a/tests/debug_getRawBlock/get-block-n.io b/tests/jsonrpc/debug_getRawBlock/get-block-n.io similarity index 100% rename from tests/debug_getRawBlock/get-block-n.io rename to tests/jsonrpc/debug_getRawBlock/get-block-n.io diff --git a/tests/debug_getRawBlock/get-genesis.io b/tests/jsonrpc/debug_getRawBlock/get-genesis.io similarity index 100% rename from tests/debug_getRawBlock/get-genesis.io rename to tests/jsonrpc/debug_getRawBlock/get-genesis.io diff --git a/tests/debug_getRawBlock/get-invalid-number.io b/tests/jsonrpc/debug_getRawBlock/get-invalid-number.io similarity index 100% rename from tests/debug_getRawBlock/get-invalid-number.io rename to tests/jsonrpc/debug_getRawBlock/get-invalid-number.io diff --git a/tests/debug_getRawHeader/get-block-n.io b/tests/jsonrpc/debug_getRawHeader/get-block-n.io similarity index 100% rename from tests/debug_getRawHeader/get-block-n.io rename to tests/jsonrpc/debug_getRawHeader/get-block-n.io diff --git a/tests/debug_getRawHeader/get-genesis.io b/tests/jsonrpc/debug_getRawHeader/get-genesis.io similarity index 100% rename from tests/debug_getRawHeader/get-genesis.io rename to tests/jsonrpc/debug_getRawHeader/get-genesis.io diff --git a/tests/debug_getRawHeader/get-invalid-number.io b/tests/jsonrpc/debug_getRawHeader/get-invalid-number.io similarity index 100% rename from tests/debug_getRawHeader/get-invalid-number.io rename to tests/jsonrpc/debug_getRawHeader/get-invalid-number.io diff --git a/tests/debug_getRawReceipts/get-block-n.io b/tests/jsonrpc/debug_getRawReceipts/get-block-n.io similarity index 100% rename from tests/debug_getRawReceipts/get-block-n.io rename to tests/jsonrpc/debug_getRawReceipts/get-block-n.io diff --git a/tests/debug_getRawReceipts/get-genesis.io b/tests/jsonrpc/debug_getRawReceipts/get-genesis.io similarity index 100% rename from tests/debug_getRawReceipts/get-genesis.io rename to tests/jsonrpc/debug_getRawReceipts/get-genesis.io diff --git a/tests/debug_getRawReceipts/get-invalid-number.io b/tests/jsonrpc/debug_getRawReceipts/get-invalid-number.io similarity index 100% rename from tests/debug_getRawReceipts/get-invalid-number.io rename to tests/jsonrpc/debug_getRawReceipts/get-invalid-number.io diff --git a/tests/debug_getRawTransaction/get-invalid-hash.io b/tests/jsonrpc/debug_getRawTransaction/get-invalid-hash.io similarity index 100% rename from tests/debug_getRawTransaction/get-invalid-hash.io rename to tests/jsonrpc/debug_getRawTransaction/get-invalid-hash.io diff --git a/tests/debug_getRawTransaction/get-tx.io b/tests/jsonrpc/debug_getRawTransaction/get-tx.io similarity index 100% rename from tests/debug_getRawTransaction/get-tx.io rename to tests/jsonrpc/debug_getRawTransaction/get-tx.io diff --git a/tests/eth_blockNumber/simple-test.io b/tests/jsonrpc/eth_blockNumber/simple-test.io similarity index 100% rename from tests/eth_blockNumber/simple-test.io rename to tests/jsonrpc/eth_blockNumber/simple-test.io diff --git a/tests/eth_call/call-simple-contract.io b/tests/jsonrpc/eth_call/call-simple-contract.io similarity index 100% rename from tests/eth_call/call-simple-contract.io rename to tests/jsonrpc/eth_call/call-simple-contract.io diff --git a/tests/eth_call/call-simple-transfer.io b/tests/jsonrpc/eth_call/call-simple-transfer.io similarity index 100% rename from tests/eth_call/call-simple-transfer.io rename to tests/jsonrpc/eth_call/call-simple-transfer.io diff --git a/tests/eth_chainId/get-chain-id.io b/tests/jsonrpc/eth_chainId/get-chain-id.io similarity index 100% rename from tests/eth_chainId/get-chain-id.io rename to tests/jsonrpc/eth_chainId/get-chain-id.io diff --git a/tests/eth_createAccessList/create-al-multiple-reads.io b/tests/jsonrpc/eth_createAccessList/create-al-multiple-reads.io similarity index 100% rename from tests/eth_createAccessList/create-al-multiple-reads.io rename to tests/jsonrpc/eth_createAccessList/create-al-multiple-reads.io diff --git a/tests/eth_createAccessList/create-al-simple-contract.io b/tests/jsonrpc/eth_createAccessList/create-al-simple-contract.io similarity index 100% rename from tests/eth_createAccessList/create-al-simple-contract.io rename to tests/jsonrpc/eth_createAccessList/create-al-simple-contract.io diff --git a/tests/eth_createAccessList/create-al-simple-transfer.io b/tests/jsonrpc/eth_createAccessList/create-al-simple-transfer.io similarity index 100% rename from tests/eth_createAccessList/create-al-simple-transfer.io rename to tests/jsonrpc/eth_createAccessList/create-al-simple-transfer.io diff --git a/tests/eth_estimateGas/estimate-simple-contract.io b/tests/jsonrpc/eth_estimateGas/estimate-simple-contract.io similarity index 100% rename from tests/eth_estimateGas/estimate-simple-contract.io rename to tests/jsonrpc/eth_estimateGas/estimate-simple-contract.io diff --git a/tests/eth_estimateGas/estimate-simple-transfer.io b/tests/jsonrpc/eth_estimateGas/estimate-simple-transfer.io similarity index 100% rename from tests/eth_estimateGas/estimate-simple-transfer.io rename to tests/jsonrpc/eth_estimateGas/estimate-simple-transfer.io diff --git a/tests/eth_feeHistory/fee-history.io b/tests/jsonrpc/eth_feeHistory/fee-history.io similarity index 100% rename from tests/eth_feeHistory/fee-history.io rename to tests/jsonrpc/eth_feeHistory/fee-history.io diff --git a/tests/eth_getBalance/get-balance-blockhash.io b/tests/jsonrpc/eth_getBalance/get-balance-blockhash.io similarity index 100% rename from tests/eth_getBalance/get-balance-blockhash.io rename to tests/jsonrpc/eth_getBalance/get-balance-blockhash.io diff --git a/tests/eth_getBalance/get-balance.io b/tests/jsonrpc/eth_getBalance/get-balance.io similarity index 100% rename from tests/eth_getBalance/get-balance.io rename to tests/jsonrpc/eth_getBalance/get-balance.io diff --git a/tests/eth_getBlockByHash/get-block-by-empty-hash.io b/tests/jsonrpc/eth_getBlockByHash/get-block-by-empty-hash.io similarity index 100% rename from tests/eth_getBlockByHash/get-block-by-empty-hash.io rename to tests/jsonrpc/eth_getBlockByHash/get-block-by-empty-hash.io diff --git a/tests/eth_getBlockByHash/get-block-by-hash.io b/tests/jsonrpc/eth_getBlockByHash/get-block-by-hash.io similarity index 100% rename from tests/eth_getBlockByHash/get-block-by-hash.io rename to tests/jsonrpc/eth_getBlockByHash/get-block-by-hash.io diff --git a/tests/eth_getBlockByHash/get-block-by-notfound-hash.io b/tests/jsonrpc/eth_getBlockByHash/get-block-by-notfound-hash.io similarity index 100% rename from tests/eth_getBlockByHash/get-block-by-notfound-hash.io rename to tests/jsonrpc/eth_getBlockByHash/get-block-by-notfound-hash.io diff --git a/tests/eth_getBlockByNumber/get-block-n.io b/tests/jsonrpc/eth_getBlockByNumber/get-block-n.io similarity index 100% rename from tests/eth_getBlockByNumber/get-block-n.io rename to tests/jsonrpc/eth_getBlockByNumber/get-block-n.io diff --git a/tests/eth_getBlockByNumber/get-block-notfound.io b/tests/jsonrpc/eth_getBlockByNumber/get-block-notfound.io similarity index 100% rename from tests/eth_getBlockByNumber/get-block-notfound.io rename to tests/jsonrpc/eth_getBlockByNumber/get-block-notfound.io diff --git a/tests/eth_getBlockByNumber/get-finalized.io b/tests/jsonrpc/eth_getBlockByNumber/get-finalized.io similarity index 100% rename from tests/eth_getBlockByNumber/get-finalized.io rename to tests/jsonrpc/eth_getBlockByNumber/get-finalized.io diff --git a/tests/eth_getBlockByNumber/get-genesis.io b/tests/jsonrpc/eth_getBlockByNumber/get-genesis.io similarity index 100% rename from tests/eth_getBlockByNumber/get-genesis.io rename to tests/jsonrpc/eth_getBlockByNumber/get-genesis.io diff --git a/tests/eth_getBlockByNumber/get-latest.io b/tests/jsonrpc/eth_getBlockByNumber/get-latest.io similarity index 100% rename from tests/eth_getBlockByNumber/get-latest.io rename to tests/jsonrpc/eth_getBlockByNumber/get-latest.io diff --git a/tests/eth_getBlockByNumber/get-safe.io b/tests/jsonrpc/eth_getBlockByNumber/get-safe.io similarity index 100% rename from tests/eth_getBlockByNumber/get-safe.io rename to tests/jsonrpc/eth_getBlockByNumber/get-safe.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-0.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-0.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-0.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-0.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-by-hash.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-by-hash.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-by-hash.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-earliest.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-earliest.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-earliest.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-earliest.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-empty.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-empty.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-empty.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-empty.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-future.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-future.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-future.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-future.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-latest.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-latest.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-latest.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-latest.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-n.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-n.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-n.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-n.io diff --git a/tests/eth_getBlockReceipts/get-block-receipts-not-found.io b/tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-not-found.io similarity index 100% rename from tests/eth_getBlockReceipts/get-block-receipts-not-found.io rename to tests/jsonrpc/eth_getBlockReceipts/get-block-receipts-not-found.io diff --git a/tests/eth_getBlockTransactionCountByHash/get-block-n.io b/tests/jsonrpc/eth_getBlockTransactionCountByHash/get-block-n.io similarity index 100% rename from tests/eth_getBlockTransactionCountByHash/get-block-n.io rename to tests/jsonrpc/eth_getBlockTransactionCountByHash/get-block-n.io diff --git a/tests/eth_getBlockTransactionCountByHash/get-genesis.io b/tests/jsonrpc/eth_getBlockTransactionCountByHash/get-genesis.io similarity index 100% rename from tests/eth_getBlockTransactionCountByHash/get-genesis.io rename to tests/jsonrpc/eth_getBlockTransactionCountByHash/get-genesis.io diff --git a/tests/eth_getBlockTransactionCountByNumber/get-block-n.io b/tests/jsonrpc/eth_getBlockTransactionCountByNumber/get-block-n.io similarity index 100% rename from tests/eth_getBlockTransactionCountByNumber/get-block-n.io rename to tests/jsonrpc/eth_getBlockTransactionCountByNumber/get-block-n.io diff --git a/tests/eth_getBlockTransactionCountByNumber/get-genesis.io b/tests/jsonrpc/eth_getBlockTransactionCountByNumber/get-genesis.io similarity index 100% rename from tests/eth_getBlockTransactionCountByNumber/get-genesis.io rename to tests/jsonrpc/eth_getBlockTransactionCountByNumber/get-genesis.io diff --git a/tests/eth_getCode/get-code.io b/tests/jsonrpc/eth_getCode/get-code.io similarity index 100% rename from tests/eth_getCode/get-code.io rename to tests/jsonrpc/eth_getCode/get-code.io diff --git a/tests/eth_getProof/get-account-proof-blockhash.io b/tests/jsonrpc/eth_getProof/get-account-proof-blockhash.io similarity index 100% rename from tests/eth_getProof/get-account-proof-blockhash.io rename to tests/jsonrpc/eth_getProof/get-account-proof-blockhash.io diff --git a/tests/eth_getProof/get-account-proof-with-storage.io b/tests/jsonrpc/eth_getProof/get-account-proof-with-storage.io similarity index 100% rename from tests/eth_getProof/get-account-proof-with-storage.io rename to tests/jsonrpc/eth_getProof/get-account-proof-with-storage.io diff --git a/tests/eth_getProof/get-account-proof.io b/tests/jsonrpc/eth_getProof/get-account-proof.io similarity index 100% rename from tests/eth_getProof/get-account-proof.io rename to tests/jsonrpc/eth_getProof/get-account-proof.io diff --git a/tests/eth_getStorage/get-storage-invalid-key-too-large.io b/tests/jsonrpc/eth_getStorage/get-storage-invalid-key-too-large.io similarity index 100% rename from tests/eth_getStorage/get-storage-invalid-key-too-large.io rename to tests/jsonrpc/eth_getStorage/get-storage-invalid-key-too-large.io diff --git a/tests/eth_getStorage/get-storage-invalid-key.io b/tests/jsonrpc/eth_getStorage/get-storage-invalid-key.io similarity index 100% rename from tests/eth_getStorage/get-storage-invalid-key.io rename to tests/jsonrpc/eth_getStorage/get-storage-invalid-key.io diff --git a/tests/eth_getStorage/get-storage.io b/tests/jsonrpc/eth_getStorage/get-storage.io similarity index 100% rename from tests/eth_getStorage/get-storage.io rename to tests/jsonrpc/eth_getStorage/get-storage.io diff --git a/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io b/tests/jsonrpc/eth_getTransactionByBlockHashAndIndex/get-block-n.io similarity index 100% rename from tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io rename to tests/jsonrpc/eth_getTransactionByBlockHashAndIndex/get-block-n.io diff --git a/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io b/tests/jsonrpc/eth_getTransactionByBlockNumberAndIndex/get-block-n.io similarity index 100% rename from tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io rename to tests/jsonrpc/eth_getTransactionByBlockNumberAndIndex/get-block-n.io diff --git a/tests/eth_getTransactionByHash/get-access-list.io b/tests/jsonrpc/eth_getTransactionByHash/get-access-list.io similarity index 100% rename from tests/eth_getTransactionByHash/get-access-list.io rename to tests/jsonrpc/eth_getTransactionByHash/get-access-list.io diff --git a/tests/eth_getTransactionByHash/get-blob-tx.io b/tests/jsonrpc/eth_getTransactionByHash/get-blob-tx.io similarity index 100% rename from tests/eth_getTransactionByHash/get-blob-tx.io rename to tests/jsonrpc/eth_getTransactionByHash/get-blob-tx.io diff --git a/tests/eth_getTransactionByHash/get-dynamic-fee.io b/tests/jsonrpc/eth_getTransactionByHash/get-dynamic-fee.io similarity index 100% rename from tests/eth_getTransactionByHash/get-dynamic-fee.io rename to tests/jsonrpc/eth_getTransactionByHash/get-dynamic-fee.io diff --git a/tests/eth_getTransactionByHash/get-empty-tx.io b/tests/jsonrpc/eth_getTransactionByHash/get-empty-tx.io similarity index 100% rename from tests/eth_getTransactionByHash/get-empty-tx.io rename to tests/jsonrpc/eth_getTransactionByHash/get-empty-tx.io diff --git a/tests/eth_getTransactionByHash/get-legacy-create.io b/tests/jsonrpc/eth_getTransactionByHash/get-legacy-create.io similarity index 100% rename from tests/eth_getTransactionByHash/get-legacy-create.io rename to tests/jsonrpc/eth_getTransactionByHash/get-legacy-create.io diff --git a/tests/eth_getTransactionByHash/get-legacy-input.io b/tests/jsonrpc/eth_getTransactionByHash/get-legacy-input.io similarity index 100% rename from tests/eth_getTransactionByHash/get-legacy-input.io rename to tests/jsonrpc/eth_getTransactionByHash/get-legacy-input.io diff --git a/tests/eth_getTransactionByHash/get-legacy-tx.io b/tests/jsonrpc/eth_getTransactionByHash/get-legacy-tx.io similarity index 100% rename from tests/eth_getTransactionByHash/get-legacy-tx.io rename to tests/jsonrpc/eth_getTransactionByHash/get-legacy-tx.io diff --git a/tests/eth_getTransactionByHash/get-notfound-tx.io b/tests/jsonrpc/eth_getTransactionByHash/get-notfound-tx.io similarity index 100% rename from tests/eth_getTransactionByHash/get-notfound-tx.io rename to tests/jsonrpc/eth_getTransactionByHash/get-notfound-tx.io diff --git a/tests/eth_getTransactionCount/get-account-nonce.io b/tests/jsonrpc/eth_getTransactionCount/get-account-nonce.io similarity index 100% rename from tests/eth_getTransactionCount/get-account-nonce.io rename to tests/jsonrpc/eth_getTransactionCount/get-account-nonce.io diff --git a/tests/eth_getTransactionReceipt/get-access-list.io b/tests/jsonrpc/eth_getTransactionReceipt/get-access-list.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-access-list.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-access-list.io diff --git a/tests/eth_getTransactionReceipt/get-blob-tx.io b/tests/jsonrpc/eth_getTransactionReceipt/get-blob-tx.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-blob-tx.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-blob-tx.io diff --git a/tests/eth_getTransactionReceipt/get-dynamic-fee.io b/tests/jsonrpc/eth_getTransactionReceipt/get-dynamic-fee.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-dynamic-fee.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-dynamic-fee.io diff --git a/tests/eth_getTransactionReceipt/get-empty-tx.io b/tests/jsonrpc/eth_getTransactionReceipt/get-empty-tx.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-empty-tx.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-empty-tx.io diff --git a/tests/eth_getTransactionReceipt/get-legacy-contract.io b/tests/jsonrpc/eth_getTransactionReceipt/get-legacy-contract.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-legacy-contract.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-legacy-contract.io diff --git a/tests/eth_getTransactionReceipt/get-legacy-input.io b/tests/jsonrpc/eth_getTransactionReceipt/get-legacy-input.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-legacy-input.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-legacy-input.io diff --git a/tests/eth_getTransactionReceipt/get-legacy-receipt.io b/tests/jsonrpc/eth_getTransactionReceipt/get-legacy-receipt.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-legacy-receipt.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-legacy-receipt.io diff --git a/tests/eth_getTransactionReceipt/get-notfound-tx.io b/tests/jsonrpc/eth_getTransactionReceipt/get-notfound-tx.io similarity index 100% rename from tests/eth_getTransactionReceipt/get-notfound-tx.io rename to tests/jsonrpc/eth_getTransactionReceipt/get-notfound-tx.io diff --git a/tests/eth_sendRawTransaction/send-access-list-transaction.io b/tests/jsonrpc/eth_sendRawTransaction/send-access-list-transaction.io similarity index 100% rename from tests/eth_sendRawTransaction/send-access-list-transaction.io rename to tests/jsonrpc/eth_sendRawTransaction/send-access-list-transaction.io diff --git a/tests/eth_sendRawTransaction/send-blob-tx.io b/tests/jsonrpc/eth_sendRawTransaction/send-blob-tx.io similarity index 100% rename from tests/eth_sendRawTransaction/send-blob-tx.io rename to tests/jsonrpc/eth_sendRawTransaction/send-blob-tx.io diff --git a/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io b/tests/jsonrpc/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io similarity index 100% rename from tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io rename to tests/jsonrpc/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io diff --git a/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io b/tests/jsonrpc/eth_sendRawTransaction/send-dynamic-fee-transaction.io similarity index 100% rename from tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io rename to tests/jsonrpc/eth_sendRawTransaction/send-dynamic-fee-transaction.io diff --git a/tests/eth_sendRawTransaction/send-legacy-transaction.io b/tests/jsonrpc/eth_sendRawTransaction/send-legacy-transaction.io similarity index 100% rename from tests/eth_sendRawTransaction/send-legacy-transaction.io rename to tests/jsonrpc/eth_sendRawTransaction/send-legacy-transaction.io diff --git a/tests/eth_syncing/check-syncing.io b/tests/jsonrpc/eth_syncing/check-syncing.io similarity index 100% rename from tests/eth_syncing/check-syncing.io rename to tests/jsonrpc/eth_syncing/check-syncing.io diff --git a/tests/genesis.json b/tests/jsonrpc/genesis.json similarity index 100% rename from tests/genesis.json rename to tests/jsonrpc/genesis.json