From c2ae255527c92b5ad0cfa619d431231d9e8d979f Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Sun, 20 Jun 2021 00:11:32 -0500 Subject: [PATCH 01/21] begin merging work with lightclient's, split into separate files, and add build function --- test.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 000000000..da32bd3f8 --- /dev/null +++ b/test.txt @@ -0,0 +1,13 @@ +{ "eth_blockNumber": { "$ref": "./methods/eth/blockNumber.json" }}, +{ "eth_getBlockByHash": { "$ref": "./methods/eth/getBlockByHash.json" }}, +{ "eth_call": { "$ref": "./methods/eth/call.json" }}, +{ "eth_getBlockByNumber": { "$ref": "./methods/eth/getBlockByNumber.json" }}, +{ "eth_chainId": { "$ref": "./methods/eth/chainId.json" }}, +{ "eth_getBlockTransactionCountByHash": { "$ref": "./methods/eth/getBlockTransactionCountByHash.json" }}, +{ "eth_coinbase": { "$ref": "./methods/eth/coinbase.json" }}, +{ "eth_getBlockTransactionCountByNumber": { "$ref": "./methods/eth/getBlockTransactionCountByNumber.json" }}, +{ "eth_estimateGas": { "$ref": "./methods/eth/estimateGas.json" }}, +{ "eth_getCode": { "$ref": "./methods/eth/getCode.json" }}, +{ "eth_gasPrice": { "$ref": "./methods/eth/gasPrice.json" }}, +{ "eth_getFilterChanges": { "$ref": "./methods/eth/getFilterChanges.json" }}, +{ "eth_getBalance": { "$ref": "./methods/eth/getBalance.json" }}, \ No newline at end of file From d80f80b26aa54270fce5abaf561e824b8687bc78 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Tue, 6 Jul 2021 02:05:00 -0500 Subject: [PATCH 02/21] EIP 1559 -> open rpc cc0 --- .gitignore | 4 + README.md | 2 +- build.js | 16 + build/openrpc.json | 2613 +++++++++++++++++ components/AccessList.json | 39 + components/Address.json | 53 + components/Block.json | 193 ++ components/Data.json | 65 + components/EIPs/1559.json | 49 + components/Filter.json | 120 + components/Gas.json | 40 + components/Header.json | 123 + components/Logs.json | 89 + components/Mining.json | 48 + components/Null.json | 19 + components/POW.json | 63 + components/ProtocolVersion.json | 13 + components/Quantity.json | 28 + components/Status.json | 10 + components/Syncing.json | 61 + components/Topic.json | 26 + components/Transaction.json | 313 ++ components/Uncle.json | 100 + methods/eth/accounts.json | 11 + methods/eth/blockNumber.json | 8 + methods/eth/call.json | 15 + methods/eth/coinbase.json | 9 + methods/eth/estimateGas.json | 15 + methods/eth/gasPrice.json | 9 + methods/eth/getBalance.json | 15 + methods/eth/getBlockByHash.json | 13 + methods/eth/getBlockByNumber.json | 15 + .../eth/getBlockTransactionCountByHash.json | 10 + .../eth/getBlockTransactionCountByNumber.json | 12 + methods/eth/getCode.json | 15 + methods/eth/getFilterChanges.json | 8 + methods/eth/getFilterLogs.json | 16 + methods/eth/getLogs.json | 12 + methods/eth/getStorageAt.json | 24 + .../getTransactionByBlockHashAndIndex.json | 15 + .../getTransactionByBlockNumberAndIndex.json | 11 + methods/eth/getTransactionByHash.json | 8 + methods/eth/getTransactionCount.json | 17 + methods/eth/getTransactionReceipt.json | 9 + methods/eth/getUncleByBlockHashAndIndex.json | 11 + .../eth/getUncleByBlockNumberAndIndex.json | 11 + methods/eth/getUncleCountByBlockHash.json | 8 + methods/eth/getUncleCountByBlockNumber.json | 8 + methods/eth/getWork.json | 22 + methods/eth/hashRate.json | 8 + methods/eth/mining.json | 8 + methods/eth/newBlockFilter.json | 8 + methods/eth/newFilter.json | 12 + methods/eth/newPendingTransactionFilter.json | 8 + methods/eth/protocolVersion.json | 8 + methods/eth/sendRawTransaction.json | 13 + methods/eth/sendTransaction.json | 14 + methods/eth/sign.json | 22 + methods/eth/signTransaction.json | 15 + methods/eth/submitHashrate.json | 17 + methods/eth/submitWork.json | 20 + methods/eth/syncing.json | 8 + methods/eth/uninstallFilter.json | 13 + methods/net/listening.json | 12 + methods/net/peerCount.json | 12 + methods/net/version.json | 13 + methods/web3/clientVersion.json | 11 + methods/web3/sha3.json | 20 + openrpc.json | 1376 +-------- package-lock.json | 803 +++++ package.json | 18 + test.txt | 13 - 72 files changed, 5623 insertions(+), 1243 deletions(-) create mode 100644 .gitignore create mode 100644 build.js create mode 100644 build/openrpc.json create mode 100644 components/AccessList.json create mode 100644 components/Address.json create mode 100644 components/Block.json create mode 100644 components/Data.json create mode 100644 components/EIPs/1559.json create mode 100644 components/Filter.json create mode 100644 components/Gas.json create mode 100644 components/Header.json create mode 100644 components/Logs.json create mode 100644 components/Mining.json create mode 100644 components/Null.json create mode 100644 components/POW.json create mode 100644 components/ProtocolVersion.json create mode 100644 components/Quantity.json create mode 100644 components/Status.json create mode 100644 components/Syncing.json create mode 100644 components/Topic.json create mode 100644 components/Transaction.json create mode 100644 components/Uncle.json create mode 100644 methods/eth/accounts.json create mode 100644 methods/eth/blockNumber.json create mode 100644 methods/eth/call.json create mode 100644 methods/eth/coinbase.json create mode 100644 methods/eth/estimateGas.json create mode 100644 methods/eth/gasPrice.json create mode 100644 methods/eth/getBalance.json create mode 100644 methods/eth/getBlockByHash.json create mode 100644 methods/eth/getBlockByNumber.json create mode 100644 methods/eth/getBlockTransactionCountByHash.json create mode 100644 methods/eth/getBlockTransactionCountByNumber.json create mode 100644 methods/eth/getCode.json create mode 100644 methods/eth/getFilterChanges.json create mode 100644 methods/eth/getFilterLogs.json create mode 100644 methods/eth/getLogs.json create mode 100644 methods/eth/getStorageAt.json create mode 100644 methods/eth/getTransactionByBlockHashAndIndex.json create mode 100644 methods/eth/getTransactionByBlockNumberAndIndex.json create mode 100644 methods/eth/getTransactionByHash.json create mode 100644 methods/eth/getTransactionCount.json create mode 100644 methods/eth/getTransactionReceipt.json create mode 100644 methods/eth/getUncleByBlockHashAndIndex.json create mode 100644 methods/eth/getUncleByBlockNumberAndIndex.json create mode 100644 methods/eth/getUncleCountByBlockHash.json create mode 100644 methods/eth/getUncleCountByBlockNumber.json create mode 100644 methods/eth/getWork.json create mode 100644 methods/eth/hashRate.json create mode 100644 methods/eth/mining.json create mode 100644 methods/eth/newBlockFilter.json create mode 100644 methods/eth/newFilter.json create mode 100644 methods/eth/newPendingTransactionFilter.json create mode 100644 methods/eth/protocolVersion.json create mode 100644 methods/eth/sendRawTransaction.json create mode 100644 methods/eth/sendTransaction.json create mode 100644 methods/eth/sign.json create mode 100644 methods/eth/signTransaction.json create mode 100644 methods/eth/submitHashrate.json create mode 100644 methods/eth/submitWork.json create mode 100644 methods/eth/syncing.json create mode 100644 methods/eth/uninstallFilter.json create mode 100644 methods/net/listening.json create mode 100644 methods/net/peerCount.json create mode 100644 methods/net/version.json create mode 100644 methods/web3/clientVersion.json create mode 100644 methods/web3/sha3.json create mode 100644 package-lock.json create mode 100644 package.json delete mode 100644 test.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..b8fddbb32 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +build/* +!build/openrpc.json +**\.DS_Store \ No newline at end of file diff --git a/README.md b/README.md index e5c20cc32..d65dd7954 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Ethereum JSON-RPC Specification -[View the spec](https://playground.open-rpc.org/?uiSchema%5BappBar%5D%5Bui:splitView%5D=false&schemaUrl=https://raw.githubusercontent.com/lightclient/eth1.0-apis/main/openrpc.json&uiSchema%5BappBar%5D%5Bui:input%5D=false) +[View the spec](https://playground.open-rpc.org/?uiSchema[appBar][ui:splitView]=false&schemaUrl=https://github.com/alita-moore/eth1.0-apis/blob/main/build/openrpc.json&uiSchema[appBar][ui:input]=false) The Ethereum JSON-RPC is a collection of methods that all clients implement. This interface allows downstream tooling and infrastructure to treat different diff --git a/build.js b/build.js new file mode 100644 index 000000000..27e88d64f --- /dev/null +++ b/build.js @@ -0,0 +1,16 @@ +const RefParser = require("@apidevtools/json-schema-ref-parser"); +const fs = require("fs"); + +const _parse = async (_schema) => { + try { + let schema = await RefParser.dereference(_schema); + if (!fs.existsSync("./build")) { + fs.mkdirSync("./build"); + } + fs.writeFileSync("./build/openrpc.json", JSON.stringify(schema)); + } catch (err) { + console.error(err); + } +}; + +_parse(require("./openrpc.json")); diff --git a/build/openrpc.json b/build/openrpc.json new file mode 100644 index 000000000..64d5772a6 --- /dev/null +++ b/build/openrpc.json @@ -0,0 +1,2613 @@ +{ + "openrpc": "1.2.4", + "info": { + "title": "Ethereum JSON-RPC Specification", + "description": "A specification of the standard interface for Ethreum clients.", + "license": { + "name": "CC0-1.0", + "url": "https://creativecommons.org/publicdomain/zero/1.0/legalcode" + }, + "version": "0.0.0" + }, + "methods": [ + { + "name": "eth_accounts", + "summary": "Returns a list of addresses owned by this client", + "params": [], + "result": { + "name": "array of addresses", + "schema": { + "title": "addresses", + "type": "array", + "items": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + } + } + }, + { + "name": "eth_blockNumber", + "summary": "Returns the number of the most recent block seen by this client", + "params": [], + "result": { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_call", + "summary": "Executes a new message call immediately without creating a transaction on the block chain.", + "params": [ + { + "name": "Transaction", + "required": true, + "schema": { + "title": "Transaction object with sender", + "type": "object", + "allOf": [ + { + "required": ["from"], + "properties": { + "from": { + "title": "from", + "description": "The transaction sender's address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + } + }, + { + "title": "transaction object", + "type": "object", + "allOf": [ + { + "required": ["nonce", "gas", "value", "input"], + "properties": { + "type": { + "title": "type", + "type": "string", + "pattern": "^0x([a-fA-F0-9]?){1,2}$" + }, + "nonce": { + "title": "nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "to": { + "title": "to", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "gas": { + "title": "gas", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "value": { + "title": "value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "input": { + "title": "input", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "accessList": { + "title": "accessList", + "type": "array", + "items": { + "name": "access list entry", + "type": "object", + "properties": { + "address": { + "title": "access address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "storageKeys": { + "title": "storage keys", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + } + } + }, + { + "oneOf": [ + { + "name": "EIP-1559 fee market parameters", + "type": "object", + "description": "EIP-1559 dynamic fee transactions have two fee parameters.", + "required": ["maxFeePerGas", "maxPriorityFeePerGas"], + "properties": { + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "Legacy fee market parameters", + "type": "object", + "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", + "required": ["gasPrice"], + "properties": { + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + ] + } + ] + } + ] + } + } + ], + "result": { + "name": "Return data", + "schema": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + }, + { + "name": "eth_coinbase", + "summary": "Returns the coinbase address for this client", + "params": [], + "result": { + "name": "Coinbase address", + "schema": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + } + }, + { + "name": "eth_estimateGas", + "summary": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.", + "params": [ + { + "name": "Transaction", + "required": true, + "schema": { + "title": "Transaction object with sender", + "type": "object", + "allOf": [ + { + "required": ["from"], + "properties": { + "from": { + "title": "from", + "description": "The transaction sender's address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + } + }, + { + "title": "transaction object", + "type": "object", + "allOf": [ + { + "required": ["nonce", "gas", "value", "input"], + "properties": { + "type": { + "title": "type", + "type": "string", + "pattern": "^0x([a-fA-F0-9]?){1,2}$" + }, + "nonce": { + "title": "nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "to": { + "title": "to", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "gas": { + "title": "gas", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "value": { + "title": "value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "input": { + "title": "input", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "accessList": { + "title": "accessList", + "type": "array", + "items": { + "name": "access list entry", + "type": "object", + "properties": { + "address": { + "title": "access address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "storageKeys": { + "title": "storage keys", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + } + } + }, + { + "oneOf": [ + { + "name": "EIP-1559 fee market parameters", + "type": "object", + "description": "EIP-1559 dynamic fee transactions have two fee parameters.", + "required": ["maxFeePerGas", "maxPriorityFeePerGas"], + "properties": { + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "Legacy fee market parameters", + "type": "object", + "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", + "required": ["gasPrice"], + "properties": { + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + ] + } + ] + } + ] + } + } + ], + "result": { + "name": "Gas used", + "schema": { + "title": "gas used", + "summary": "A scalar value equal to the total gas usedin transactions in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_gasPrice", + "summary": "Returns the current price per gas in wei.", + "params": [], + "result": { + "name": "Gas price", + "schema": { + "title": "gas price", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_getBalance", + "summary": "Returns the balance of the account of given address.", + "params": [ + { + "name": "address", + "schema": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + }, + { + "name": "Block number or tag", + "schema": { + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + } + } + ], + "result": { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_getBlockByHash", + "summary": "Returns information about a block by hash.", + "params": [ + { + "name": "block hash", + "schema": { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "Block information", + "schema": { + "title": "block object", + "type": "object", + "required": ["transactions", "uncles"], + "allOf": [ + { + "title": "header object", + "type": "object", + "required": [ + "parentHash", + "sha3Uncles", + "miner", + "stateRoot", + "transactionsRoot", + "receiptsRoot", + "bloom", + "totalDifficulty", + "number", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "mixHash", + "nonce" + ], + "properties": { + "parentHash": { + "title": "parent block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "sha3Uncles": { + "title": "sha3uncles", + "summary": "SHA3 (Keccak-256) of the uncles data in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "stateRoot": { + "name": "block state root", + "summary": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "receiptsRoot": { + "name": "receipt root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "miner": { + "title": "miner", + "summary": "address that received this block's mining rewards", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "transactionsRoot": { + "title": "transaction root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "bloom": { + "title": "header log bloom", + "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + "totalDifficulty": { + "title": "header total difficulty", + "summary": "total difficulty of the best chain until this block", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "gasLimit": { + "title": "block gas limit", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "gasUsed": { + "title": "gas used", + "summary": "A scalar value equal to the total gas usedin transactions in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "timestamp": { + "title": "block timestamp", + "summary": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "mixHash": { + "title": "block mix hash", + "summary": "A 32-byte hash which, combined with the nonce, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "nonce": { + "title": "block nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "baseFeePerGas": { + "title": "base fee per gas", + "summary": "base fee per gas, which is a function of gas used and gas target of the parent block. The base fee per gas is burned.", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "number": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "powHash": { + "title": "proof of work hash", + "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "seedHash": { + "title": "seed hash", + "summary": "The Keccak-256 hash of the previous epoch's seed hash, if it's the first block then it's the Keccak-256 hash of a series of 32bytes of zeros", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "extraData": { + "name": "extra data", + "summary": "'extra data' field of this block; must be at most 32 bytes", + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "title": "block transaction hashes", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "title": "uncles", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ] + } + } + }, + { + "name": "eth_getBlockByNumber", + "summary": "Returns information about a block by number.", + "params": [ + { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "Block information", + "schema": { + "name": "block object", + "schema": { + "title": "block object", + "type": "object", + "required": ["transactions", "uncles"], + "allOf": [ + { + "title": "header object", + "type": "object", + "required": [ + "parentHash", + "sha3Uncles", + "miner", + "stateRoot", + "transactionsRoot", + "receiptsRoot", + "bloom", + "totalDifficulty", + "number", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "mixHash", + "nonce" + ], + "properties": { + "parentHash": { + "title": "parent block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "sha3Uncles": { + "title": "sha3uncles", + "summary": "SHA3 (Keccak-256) of the uncles data in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "stateRoot": { + "name": "block state root", + "summary": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "receiptsRoot": { + "name": "receipt root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "miner": { + "title": "miner", + "summary": "address that received this block's mining rewards", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "transactionsRoot": { + "title": "transaction root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "bloom": { + "title": "header log bloom", + "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + "totalDifficulty": { + "title": "header total difficulty", + "summary": "total difficulty of the best chain until this block", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "gasLimit": { + "title": "block gas limit", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "gasUsed": { + "title": "gas used", + "summary": "A scalar value equal to the total gas usedin transactions in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "timestamp": { + "title": "block timestamp", + "summary": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "mixHash": { + "title": "block mix hash", + "summary": "A 32-byte hash which, combined with the nonce, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "nonce": { + "title": "block nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "baseFeePerGas": { + "title": "base fee per gas", + "summary": "base fee per gas, which is a function of gas used and gas target of the parent block. The base fee per gas is burned.", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "number": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "powHash": { + "title": "proof of work hash", + "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "seedHash": { + "title": "seed hash", + "summary": "The Keccak-256 hash of the previous epoch's seed hash, if it's the first block then it's the Keccak-256 hash of a series of 32bytes of zeros", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "extraData": { + "name": "extra data", + "summary": "'extra data' field of this block; must be at most 32 bytes", + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "title": "block transaction hashes", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "title": "uncles", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ] + } + } + } + }, + { + "name": "eth_getBlockTransactionCountByHash", + "summary": "Returns the number of transactions in a block specified by block hash", + "params": [ + { + "name": "block hash", + "schema": { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "block transaction count", + "summary": "The number of transactions on a given block", + "schema": { + "title": "array of hex encoded unsigned integers", + "type": "array", + "items": [ + { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + ] + } + } + }, + { + "name": "eth_getBlockTransactionCountByNumber", + "summary": "Returns the number of transactions in a block matching specified by the block number.", + "params": [ + { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "block transaction count", + "summary": "The number of transactions on a given block", + "schema": { + "title": "array of hex encoded unsigned integers", + "type": "array", + "items": [ + { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + ] + } + } + }, + { + "name": "eth_getCode", + "summary": "Returns code at a given address.", + "params": [ + { + "name": "address", + "schema": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + }, + { + "name": "Block number or tag", + "schema": { + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + } + } + ], + "result": { + "name": "Bytecode", + "schema": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + }, + { + "name": "eth_getFilterChanges", + "summary": "Returns a list of all logs based on filter ID since the last log retrieval", + "params": [ + { + "name": "filter id", + "schema": { + "name": "Filter Identifier", + "summary": "ID of the filter", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "filter results", + "schema": { + "title": "filter results", + "oneOf": [ + { + "name": "new block hashes", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "name": "new transaction hashes", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "name": "new filter logs", + "title": "log objects", + "type": "array", + "items": [ + { + "title": "log object", + "type": "object", + "properties": { + "removed": { "title": "removed", "type": "boolean" }, + "logIndex": { + "title": "log index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "transactionIndex": { + "title": "transaction index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "transactionHash": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "blockHash": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "blockNumber": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "address": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "data": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "title": "topic", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + ] + } + ] + } + } + }, + { + "name": "eth_getFilterLogs", + "summary": "Returns a list of all logs based on filter ID", + "params": [ + { + "name": "filter id", + "schema": { + "name": "Filter Identifier", + "summary": "ID of the filter", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "required": true + } + ], + "result": { + "name": "logs", + "description": "The return value of eth_getFilterLogs when retrieving logs from eth_newBlockFilter and eth_newPendingTransactionFilter filters will be an array of hashes, not an array of Log objects.", + "summary": "array of log objects", + "schema": { + "title": "log objects", + "type": "array", + "items": [ + { + "title": "log object", + "type": "object", + "properties": { + "removed": { "title": "removed", "type": "boolean" }, + "logIndex": { + "title": "log index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "transactionIndex": { + "title": "transaction index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "transactionHash": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "blockHash": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "blockNumber": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "address": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "data": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "title": "topic", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + ] + } + } + }, + { + "name": "eth_getLogs", + "summary": "Returns a list of all logs based on a filter object", + "params": [ + { + "name": "filter object", + "schema": { + "title": "filter object", + "type": "object", + "properties": { + "fromBlock": { + "name": "from block", + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + }, + "toBlock": { + "name": "to block", + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + }, + "address": { + "title": "Address(es)", + "summary": "contract address or a list of addresses from which logs should originate", + "oneOf": [ + { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + { + "title": "addresses", + "type": "array", + "items": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + } + ] + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "title": "topic", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + } + ], + "result": { + "name": "logs", + "summary": "array of log objects", + "schema": { + "title": "log objects", + "type": "array", + "items": [ + { + "title": "log object", + "type": "object", + "properties": { + "removed": { "title": "removed", "type": "boolean" }, + "logIndex": { + "title": "log index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "transactionIndex": { + "title": "transaction index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "transactionHash": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "blockHash": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "blockNumber": { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "address": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "data": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "title": "topic", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + ] + } + } + }, + { + "name": "eth_getStorageAt", + "description": "Returns the value from a storage position at an address", + "params": [ + { + "name": "address", + "schema": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "summary": "address of stored data" + }, + { + "name": "dataIndex", + "summary": "index into stored data", + "schema": { + "title": "data index", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "name": "block number or identifier or hash", + "summary": "The desired block number, its hash, or a block tag", + "schema": { + "title": "block number or tag or hsh", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + }, + { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + ] + } + } + ], + "result": { + "name": "data stored", + "summary": "data stored at the given address and data index", + "schema": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + }, + { + "name": "eth_getTransactionByBlockHashAndIndex.json", + "description": "Returns information about a transaction specified by block hash and transaction index", + "params": [ + { + "name": "block hash", + "schema": { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "name": "transaction index", + "schema": { + "name": "transactionIndex", + "description": "index of a transaction in the specified block", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "hash or null", + "schema": { + "title": "hash or null", + "oneOf": [ + { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + } + } + }, + { + "name": "eth_getTransactionByBlockNumberAndIndex", + "summary": "Returns information about a transaction specified by block number and transaction index", + "params": [ + { + "name": "Block number or tag", + "schema": { + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + } + }, + { + "name": "transaction index", + "schema": { + "name": "transactionIndex", + "description": "index of a transaction in the specified block", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "hash or null", + "schema": { + "title": "hash or null", + "oneOf": [ + { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + } + } + }, + { + "name": "eth_getTransactionByHash", + "summary": "Returns information about a transaction specified by hash", + "params": [ + { + "name": "transaction hash", + "schema": { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "hash or null", + "schema": { + "title": "hash or null", + "oneOf": [ + { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + } + } + }, + { + "name": "eth_getTransactionCount", + "summary": "Returns the number of transactions sent from an address", + "params": [ + { + "name": "address", + "schema": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "summary": "address to query for sent transactions", + "required": true + }, + { + "name": "block number or identifier or hash", + "summary": "The desired block number, its hash, or a block tag", + "schema": { + "title": "block number or tag or hsh", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + }, + { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + ] + }, + "required": true + } + ], + "result": { + "name": "transaction count", + "schema": { + "title": "transaction count", + "summary": "number of transactions sent from the specified address", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_getTransactionReceipt", + "summary": "Returns the receipt of a transaction specified by hash. Transaction receipts are unavailable for pending transactions.", + "params": [ + { + "name": "transaction hash", + "schema": { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "hash or null", + "schema": { + "title": "hash or null", + "oneOf": [ + { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + } + } + }, + { + "name": "eth_getUncleByBlockHashAndIndex", + "summary": "Returns information about an uncle specified by block hash and uncle index position", + "params": [ + { + "name": "block hash", + "schema": { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "name": "uncle index", + "schema": { + "title": "uncle index", + "summary": "index of uncle", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "uncle or null", + "schema": { + "title": "uncle or null", + "summary": "null if no block or uncle is found, otherwise an uncle object", + "oneOf": [ + { + "title": "uncle object", + "type": "object", + "properties": { + "extraData": { + "name": "extra data", + "summary": "'extra data' field of this block; must be at most 32 bytes", + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "hash": { + "title": "hash", + "oneOf": [ + { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + }, + "logsBloom": { + "title": "logsBloom", + "summary": "logs bloom filter or null if pending", + "oneOf": [ + { + "title": "bloom filter", + "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + }, + "miner": { + "title": "miner", + "summary": "address that received this block's mining rewards", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "nonce": { + "title": "nonce", + "oneOf": [ + { + "title": "proof of work nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + }, + "parentHash": { + "title": "parent block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "receiptsRoot": { + "name": "receipt root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "sha3Uncles": { + "title": "ommersHash", + "summary": "SHA3 (Keccak-256) of the uncles data in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "stateRoot": { + "name": "block state root", + "summary": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "size": { + "title": "size", + "name": "block size", + "summary": "size of this block in bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "timestamp": { + "title": "timestamp", + "summary": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "totalDifficulty": { + "title": "totalDifficulty", + "summary": "total difficulty of the best chain until this block", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "Uncles": { + "name": "uncles", + "summary": "list of uncle hashes", + "title": "transaction uncles", + "type": "array", + "items": [ + { + "title": "transaction object", + "type": "object", + "allOf": [ + { + "required": ["nonce", "gas", "value", "input"], + "properties": { + "type": { + "title": "type", + "type": "string", + "pattern": "^0x([a-fA-F0-9]?){1,2}$" + }, + "nonce": { + "title": "nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "to": { + "title": "to", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "gas": { + "title": "gas", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "value": { + "title": "value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "input": { + "title": "input", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "accessList": { + "title": "accessList", + "type": "array", + "items": { + "name": "access list entry", + "type": "object", + "properties": { + "address": { + "title": "access address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "storageKeys": { + "title": "storage keys", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + } + } + }, + { + "oneOf": [ + { + "name": "EIP-1559 fee market parameters", + "type": "object", + "description": "EIP-1559 dynamic fee transactions have two fee parameters.", + "required": [ + "maxFeePerGas", + "maxPriorityFeePerGas" + ], + "properties": { + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "Legacy fee market parameters", + "type": "object", + "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", + "required": ["gasPrice"], + "properties": { + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + ] + } + ] + } + ] + } + } + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + } + } + }, + { + "name": "eth_getUncleByBlockNumberAndIndex", + "summary": "Returns information about an uncle specified by block number and uncle index position", + "params": [ + { + "name": "Block number or tag", + "schema": { + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + } + }, + { + "name": "integer", + "schema": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "uncle or null", + "schema": { + "title": "uncle or null", + "summary": "null if no block or uncle is found, otherwise an uncle object", + "oneOf": [ + { + "title": "uncle object", + "type": "object", + "properties": { + "extraData": { + "name": "extra data", + "summary": "'extra data' field of this block; must be at most 32 bytes", + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "hash": { + "title": "hash", + "oneOf": [ + { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + }, + "logsBloom": { + "title": "logsBloom", + "summary": "logs bloom filter or null if pending", + "oneOf": [ + { + "title": "bloom filter", + "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + }, + "miner": { + "title": "miner", + "summary": "address that received this block's mining rewards", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "nonce": { + "title": "nonce", + "oneOf": [ + { + "title": "proof of work nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + }, + "parentHash": { + "title": "parent block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "receiptsRoot": { + "name": "receipt root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "sha3Uncles": { + "title": "ommersHash", + "summary": "SHA3 (Keccak-256) of the uncles data in this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "stateRoot": { + "name": "block state root", + "summary": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "size": { + "title": "size", + "name": "block size", + "summary": "size of this block in bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "timestamp": { + "title": "timestamp", + "summary": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "totalDifficulty": { + "title": "totalDifficulty", + "summary": "total difficulty of the best chain until this block", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "Uncles": { + "name": "uncles", + "summary": "list of uncle hashes", + "title": "transaction uncles", + "type": "array", + "items": [ + { + "title": "transaction object", + "type": "object", + "allOf": [ + { + "required": ["nonce", "gas", "value", "input"], + "properties": { + "type": { + "title": "type", + "type": "string", + "pattern": "^0x([a-fA-F0-9]?){1,2}$" + }, + "nonce": { + "title": "nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "to": { + "title": "to", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "gas": { + "title": "gas", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "value": { + "title": "value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "input": { + "title": "input", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "accessList": { + "title": "accessList", + "type": "array", + "items": { + "name": "access list entry", + "type": "object", + "properties": { + "address": { + "title": "access address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "storageKeys": { + "title": "storage keys", + "type": "array", + "items": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + } + } + }, + { + "oneOf": [ + { + "name": "EIP-1559 fee market parameters", + "type": "object", + "description": "EIP-1559 dynamic fee transactions have two fee parameters.", + "required": [ + "maxFeePerGas", + "maxPriorityFeePerGas" + ], + "properties": { + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "Legacy fee market parameters", + "type": "object", + "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", + "required": ["gasPrice"], + "properties": { + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + ] + } + ] + } + ] + } + } + }, + { + "title": "null", + "type": "null", + "description": "null, undefined, None" + } + ] + } + } + }, + { + "name": "eth_getUncleCountByBlockHash", + "summary": "Returns the number of uncles in a block specified by block hash", + "params": [ + { + "name": "block hash", + "schema": { + "title": "block hash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "uncle count", + "schema": { + "title": "uncle count", + "summary": "number of uncles in the specified block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_getUncleCountByBlockNumber", + "summary": "Returns the number of uncles in a block specified by block number", + "params": [ + { + "name": "Block number or tag", + "schema": { + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + } + } + ], + "result": { + "name": "uncle count", + "schema": { + "title": "uncle count", + "summary": "number of uncles in the specified block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_getWork", + "summary": "Returns a list containing relevant information for proof-of-work", + "params": [], + "result": { + "name": "work", + "schema": { + "type": "array", + "items": [ + { + "title": "proof of work hash", + "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "seed hash", + "summary": "The Keccak-256 hash of the previous epoch's seed hash, if it's the first block then it's the Keccak-256 hash of a series of 32bytes of zeros", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "boundary condition", + "summary": "boundary condition ('target'), 2^256 / difficulty", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + ] + } + } + }, + { + "name": "eth_hashrate", + "summary": "Returns the number of hashes-per-second this node is mining at", + "params": [], + "result": { + "name": "hashrate", + "summary": "number of hashes-per-second this node is mining at", + "schema": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_mining", + "summary": "Determines if this client is mining new blocks", + "params": [], + "result": { + "name": "is mining", + "summary": "true if this client is mining or false if it is not mining", + "schema": { "type": "boolean" } + } + }, + { + "name": "eth_newBlockFilter", + "summary": "Creates a filter to listen for new blocks that can be used with eth_getFilterChanges", + "params": [], + "result": { + "name": "filter id", + "schema": { + "name": "Filter Identifier", + "summary": "ID of the filter", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_newFilter", + "summary": "Creates a filter to listen for specific state changes that can then be used with eth_getFilterChanges", + "params": [ + { + "name": "filter object", + "schema": { + "title": "filter object", + "type": "object", + "properties": { + "fromBlock": { + "name": "from block", + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + }, + "toBlock": { + "name": "to block", + "title": "block number or block tag", + "oneOf": [ + { + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { + "title": "block tag", + "type": "string", + "enum": ["earliest", "latest", "pending"] + } + ] + }, + "address": { + "title": "Address(es)", + "summary": "contract address or a list of addresses from which logs should originate", + "oneOf": [ + { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + { + "title": "addresses", + "type": "array", + "items": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } + } + ] + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "title": "topic", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + } + ], + "result": { + "name": "filter id", + "schema": { + "name": "Filter Identifier", + "summary": "ID of the filter", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_newPendingTransactionFilter", + "summary": "Creates a filter to listen for new pending transactions that can be used with eth_getFilterChanges", + "params": [], + "result": { + "name": "filter id", + "schema": { + "name": "Filter Identifier", + "summary": "ID of the filter", + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_protocolVersion", + "summary": "Returns the current Ethereum protocol version", + "params": [], + "result": { + "name": "protocol version", + "schema": { + "title": "protocol version", + "summary": "current Ethereum protocol version", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_sendRawTransaction", + "summary": "Sends an already-signed transaction to the network", + "params": [ + { + "name": "signed transaction data", + "schema": { + "title": "signed transaction data", + "summary": "the encoding of the [...rawTransactionData, v, r, s] (in order) of the transaction object", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + ], + "result": { + "name": "transaction hash", + "schema": { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_sendTransaction", + "summary": "Creates, signs, and sends a new transaction to the network", + "params": [ + { + "required": true, + "name": "transaciton request object", + "schema": { + "title": "transaction request object", + "type": "object", + "properties": { + "to": { + "title": "to", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "from": { + "title": "from", + "description": "The transaction sender's address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "gas": { + "title": "gas", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "gasPrice": { + "title": "gas price", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "value": { + "title": "value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "data": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "nonce": { + "title": "proof of work nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + ], + "result": { + "summary": "transaction hash, or the zero hash if the transaction is not yet available", + "name": "hash or zero hash", + "schema": { + "title": "hash or zero hash", + "oneOf": [ + { + "title": "transactionHash", + "summary": "hash of a transaction", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + { "title": "zero hash", "type": "string", "pattern": "^0x$" } + ] + } + } + }, + { + "name": "eth_sign", + "summary": "Calculates an Ethereum-specific signature in the form of keccak256('\\x19Ethereum Signed Message:\n' + len(message) + message))", + "params": [ + { + "name": "address", + "schema": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "required": true, + "summary": "address to use for signing" + }, + { + "required": true, + "name": "data", + "summary": "data to sign", + "schema": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + ], + "result": { + "name": "hash", + "summary": "signature hash of the provided data", + "schema": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_signTransaction", + "summary": "Signs a transaction that can be submitted to the network at a later time using with eth_sendRawTransaction", + "params": [ + { + "name": "transaction to be signed", + "required": true, + "schema": { + "title": "transaction request object", + "type": "object", + "properties": { + "to": { + "title": "to", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "from": { + "title": "from", + "description": "The transaction sender's address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + }, + "gas": { + "title": "gas", + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "gasPrice": { + "title": "gas price", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "value": { + "title": "value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "data": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "nonce": { + "title": "proof of work nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + } + ], + "result": { + "summary": "signature hash of the transaction object", + "name": "32 byte hash", + "schema": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "eth_submitHashrate", + "summary": "Submit a mining hashrate", + "params": [ + { + "name": "hashrate", + "summary": "number of hashes-per-second this node is mining at", + "schema": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "required": true + }, + { + "required": true, + "name": "random id", + "summary": "random ID identifying this node", + "schema": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + ], + "result": { + "name": "status", + "summary": "true if the operation was successful, false if it was not", + "schema": { "title": "success", "type": "boolean" } + } + }, + { + "name": "eth_submitWork", + "summary": "Submit a proof-of-work solution", + "params": [ + { + "name": "proof of work nonce found", + "schema": { + "title": "proof of work nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "required": true, + "name": "block proof of work hash", + "schema": { + "title": "proof of work hash", + "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + }, + { + "required": true, + "name": "proof of work mix hash", + "schema": { + "title": "mix hash", + "summary": "A 32-byte hash which, combined with the nonce, proves that a sufficient amount of computation has been carried out on this block", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "is solution valid", + "summary": "true if the solution is valid, false otherwise", + "schema": { "type": "boolean" } + } + }, + { + "name": "eth_syncing", + "summary": "Returns information about the status of this client's network synchronization", + "params": [], + "result": { + "name": "false or progres object", + "schema": { + "title": "false or syncing progress object", + "summary": "false if this client is not syncing with the network, otherwise a syncing progres object", + "oneOf": [ + { + "title": "not syncing", + "description": "Should always return false if not syncing.", + "type": "boolean" + }, + { + "title": "syncing progress", + "type": "object", + "properties": { + "startingBlock": { + "title": "starting block", + "summary": "block number at which syncing started", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "currentBlock": { + "title": "current block", + "summary": "number of the most-recent block synced", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "highestBlock": { + "title": "highest block", + "summary": "number of latest block on the network", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + ] + } + } + }, + { + "name": "eth_uninstallFilter", + "summary": "Destroys a filter based on filter ID; This should only be called if a filter and its notifications are no longer needed. This will also be called automatically on a filter if its notifications are not retrieved using eth_getFilterChanges for a period of time.", + "params": [ + { + "required": true, + "name": "filter id to destroy", + "schema": { + "title": "filter id to destroy", + "summary": "ID of the filter to destroy", + "name": "Filter Identifier", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + ], + "result": { + "name": "is filter destroyed", + "schema": { + "title": "is filter destroyed", + "summary": "true if the filter is found and successfully destroyed or false if it is not", + "type": "boolean" + } + } + }, + { + "name": "net_listening", + "summary": "Determines if this client is listening for new network connections", + "params": [], + "result": { + "name": "is listening", + "summary": "true if listening is active or false if listening is not active", + "schema": { "type": "boolean" } + } + }, + { + "name": "net_peerCount", + "summary": "Returns the number of peers currently connected to this client", + "params": [], + "result": { + "name": "connected peers", + "summary": "number of connected peers", + "schema": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + }, + { + "name": "net_version", + "summary": "Returns the chain ID associated with the current network", + "params": [], + "result": { + "name": "chain id", + "summary": "chain ID associated with the current network", + "description": "Common chain IDs: '1' - Ethereum mainnet '3' - Ropsten testnet '4' - Rinkeby testnet '42' - Kovan testnet Note: See EIP-155 for a [complete list](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md#list-of-chain-ids) of possible chain IDs.", + "schema": { "type": "string" } + } + }, + { + "name": "web3_clientVersion", + "summary": "Returns the version of the current client", + "params": [], + "result": { "name": "client version", "schema": { "type": "string" } } + }, + { + "name": "web3_sha3", + "summary": "Hashes data using the Keccak-256 algorithm", + "params": [ + { + "name": "data to be hashed", + "required": true, + "schema": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + } + } + ], + "result": { + "name": "hashed data", + "summary": "Keccak-256 hash of the given data", + "schema": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } + } + } + ] +} diff --git a/components/AccessList.json b/components/AccessList.json new file mode 100644 index 000000000..58f785c33 --- /dev/null +++ b/components/AccessList.json @@ -0,0 +1,39 @@ +{ + "AccessList": { + "name": "access list", + "description": "EIP-2930 access list", + "schema": { + "$ref": "./AccessList.json#/entries" + } + }, + "entries": { + "title": "array of Access List Entries", + "type": "array", + "items": { + "$ref": "./AccessList.json#/entry" + } + }, + "entry": { + "name": "access list entry", + "type": "object", + "properties": { + "address": { + "$ref": "./AccessList.json#/address" + }, + "storageKeys": { + "$ref": "./AccessList.json#/storageKeys" + } + } + }, + "address": { + "title": "access address", + "$ref": "./Address.json#/address" + }, + "storageKeys": { + "title": "storage keys", + "type": "array", + "items": { + "$ref": "./Data.json#/hash32" + } + } +} diff --git a/components/Address.json b/components/Address.json new file mode 100644 index 000000000..01bf186a6 --- /dev/null +++ b/components/Address.json @@ -0,0 +1,53 @@ +{ + "Address": { + "name": "address", + "schema": { + "$ref": "./Address.json#/address" + } + }, + "Addresses": { + "name": "addresses", + "schema": {"$ref": "./Address.json#/addresses"} + }, + "orNull": { + "name": "address or null", + "schema": { + "$ref": "./Address.json#/addressOrNull" + } + }, + "Miner": { + "name": "coinbase", + "summary": "address that received this block's mining rewards", + "schema": { + "$ref": "./Address.json#/miner" + } + }, + "miner": { + "title": "coinbase", + "summary": "address that received this block's mining rewards", + "$ref": "./Address.json#/address" + }, + "addressOrNull": { + "title": "address or null", + "oneOf": [ + { + "$ref": "./Address.json#/address" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "addresses": { + "title": "addresses", + "type": "array", + "items": { + "$ref": "./Address.json#/address" + } + }, + "address": { + "title": "address", + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" + } +} \ No newline at end of file diff --git a/components/Block.json b/components/Block.json new file mode 100644 index 000000000..0f7786d62 --- /dev/null +++ b/components/Block.json @@ -0,0 +1,193 @@ +{ + "Number": { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "./Block.json#/number" + } + }, + "Latest": { + "name": "latest block number", + "summary": "the most recent block seen by this client", + "$ref": "./Quantity.json#/Integer" + }, + "BlockTransactionCount": { + "name": "block transaction count", + "summary": "The number of transactions on a given block", + "schema": { + "$ref": "./Quantity.json#/arrayOfUint256" + } + }, + "OrNull": { + "name": "block object or null", + "schema": { + "$ref": "./Block.json#/blockObjectOrNull" + } + }, + "NumberOrNull": { + "name": "block number or null", + "description": "The block number. Note: if the block number is the pending block this will be Null", + "schema": { + "$ref": "./Block.json#/numberOrNull" + } + }, + "NumberOrTag": { + "name": "Block number or tag", + "schema": { + "$ref": "./Block.json#/numberOrTag" + } + }, + "HashOrNull": { + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", + "schema": { + "$ref": "./Block.json#/hashOrNull" + } + }, + "Hash": { + "name": "block hash", + "schema": { + "$ref": "./Block.json#/hash" + } + }, + "hash": { + "title": "block hash", + "$ref": "./Data.json#/hash32" + }, + "Tag": { + "name": "block tag", + "summary": "string descriptor for common queried block", + "schema": { + "$ref": "./Block.json#/tag" + } + }, + "blockObject": { + "title": "block object", + "type": "object", + "required": [ + "transactions", + "uncles" + ], + "allOf": [ + { + "$ref": "./Header.json#/headerObject" + }, + { + "$ref": "./Block.json#/transactionHash" + }, + { + "$ref": "./Block.json#/uncle/uncles" + } + ] + }, + "BlockObject": { + "name": "block object", + "schema": { + "$ref": "./Block.json#/blockObject" + } + }, + "transactionHash": { + "title": "block transaction hashes", + "$ref": "./Data.json#/arrayOfHash32" + }, + "numberOrTagOrHash": { + "title": "block number or tag or hsh", + "oneOf": [ + { + "$ref": "./Block.json#/number" + }, + { + "$ref": "./Block.json#/tag" + }, + { + "$ref": "./Block.json#/hash" + } + ] + }, + "hashOrNull": { + "title": "block hash or null if pending", + "oneOf": [ + { + "$ref": "./Block.json#/hash" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "numberOrTag": { + "title": "block number or block tag", + "oneOf": [ + { + "$ref": "./Block.json#/number" + }, + { + "$ref": "./Block.json#/tag" + } + ] + }, + "numberOrNull": { + "title": "block number or null", + "oneOf": [ + { + "$ref": "./Block.json#/number" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "blockObjectOrNull": { + "title": "block object or null", + "oneOf": [ + { + "$ref": "./Block.json#/blockObject" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "NumberOrTagOrHash": { + "name": "block number or identifier or hash", + "summary": "The desired block number, its hash, or a block tag", + "schema": { + "$ref": "./Block.json#/numberOrTagOrHash" + } + }, + "size": { + "name": "block size", + "summary": "size of this block in bytes", + "$ref": "./Data.json#/bytes" + }, + "UncleCount": { + "name": "uncle count", + "schema": { + "$ref": "./Block.json#/uncle/count" + } + }, + "uncle": { + "count": { + "title": "uncle count", + "summary": "number of uncles in the specified block", + "$ref": "./Quantity.json#/integer" + }, + "uncles": { + "title": "uncles", + "$ref": "./Data.json#/arrayOfHash32" + } + }, + "number": { + "title": "block number", + "$ref": "./Quantity.json#/integer" + }, + "tag": { + "title": "block tag", + "type": "string", + "enum": [ + "earliest", + "latest", + "pending" + ] + } +} \ No newline at end of file diff --git a/components/Data.json b/components/Data.json new file mode 100644 index 000000000..46964f76c --- /dev/null +++ b/components/Data.json @@ -0,0 +1,65 @@ +{ + "Bytes": { + "schema": { + "$ref": "./Data.json#/bytes" + } + }, + "Bytecode": { + "name": "Bytecode", + "schema": { + "$ref": "./Data.json#/bytes" + } + }, + "Hash": { + "name": "32 byte hash", + "schema": { + "$ref": "./Data.json#/hash32" + } + }, + "arrayOfHash32": { + "type": "array", + "items": { + "$ref": "./Data.json#/hash32" + } + }, + "Index": { + "name": "data index", + "schema": { + "$ref": "./Data.json#/index" + } + }, + "index": { + "title": "data index", + "$ref": "./Quantity.json#/integer" + }, + "byte": { + "title": "hex encoded byte", + "type": "string", + "pattern": "^0x([a-fA-F0-9]?){1,2}$" + }, + "bytes": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "bytes32": { + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "bytes65": { + "title": "65 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + "bytes256": { + "title": "256 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + "hash32": { + "title": "32 byte hex string", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } +} \ No newline at end of file diff --git a/components/EIPs/1559.json b/components/EIPs/1559.json new file mode 100644 index 000000000..49c551e2c --- /dev/null +++ b/components/EIPs/1559.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "name": "EIP-1559 fee market parameters", + "type": "object", + "description": "EIP-1559 dynamic fee transactions have two fee parameters.", + "required": ["maxFeePerGas", "maxPriorityFeePerGas"], + "properties": { + "maxPriorityFeePerGas": { + "$ref": "./1559.json#/properties/maxPriorityFeePerGas" + }, + "maxFeePerGas": { + "$ref": "./1559.json#/properties/maxFeePerGas" + } + } + }, + "legacyParameters": { + "name": "Legacy fee market parameters", + "type": "object", + "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", + "required": ["gasPrice"], + "properties": { + "gasPrice": { + "$ref": "./1559.json#/properties/legacyGasPrice" + } + } + }, + "properties": { + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "$ref": "../Quantity.json#/integer" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "$ref": "../Quantity.json#/integer" + }, + "baseFeePerGas": { + "title": "Base fee per gas", + "summary": "base fee per gas, which is a function of gas used and gas target of the parent block. The base fee per gas is burned.", + "$ref": "../Quantity.json#/integer" + }, + "legacyGasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "$ref": "../Quantity.json#/integer" + } + } +} diff --git a/components/Filter.json b/components/Filter.json new file mode 100644 index 000000000..c8462018a --- /dev/null +++ b/components/Filter.json @@ -0,0 +1,120 @@ +{ + "FilterObject": { + "name": "filter object", + "schema": { + "$ref": "./Filter.json#/filterObject" + } + }, + "Results": { + "name": "filter results", + "schema": { + "$ref": "./Filter.json#/results" + } + }, + "Identifier": { + "name": "filter id", + "schema": { + "$ref": "./Filter.json#/identifier" + } + }, + "DestroyFilterID": { + "name": "filter id to destroy", + "schema": { + "$ref": "./Filter.json#/destroyFilterID" + } + }, + "IsFilterDestroyed": { + "name": "is filter destroyed", + "schema": { + "$ref": "#/isFilterDestroyed" + } + }, + "identifier": { + "name": "Filter Identifier", + "summary": "ID of the filter", + "$ref": "./Quantity.json#/integer" + }, + "destroyFilterID": { + "title": "filter id to destroy", + "summary": "ID of the filter to destroy", + "$ref": "#/identifier" + }, + "isFilterDestroyed": { + "title": "is filter destroyed", + "summary": "true if the filter is found and successfully destroyed or false if it is not", + "type": "boolean" + }, + "results": { + "title": "filter results", + "oneOf": [ + { + "$ref": "./Filter.json#/blockHashes" + }, + { + "$ref": "./Filter.json#/transactionHashes" + }, + { + "$ref": "./Filter.json#/newLogs" + } + ] + }, + "blockHashes": { + "name": "new block hashes", + "type": "array", + "items": { + "$ref": "./Data.json#/hash32" + } + }, + "transactionHashes": { + "name": "new transaction hashes", + "type": "array", + "items": { + "$ref": "./Data.json#/hash32" + } + }, + "newLogs": { + "name": "new filter logs", + "$ref": "./Logs.json#/logObjects" + }, + "filterObject": { + "title": "filter object", + "type": "object", + "properties": { + "fromBlock": { + "$ref": "./Filter.json#/fromBlock" + }, + "toBlock": { + "$ref": "./Filter.json#/toBlock" + }, + "address": { + "$ref": "./Filter.json#/address" + }, + "topics": { + "$ref": "./Filter.json#/topics" + } + } + }, + "fromBlock": { + "name": "from block", + "$ref": "./Block.json#/numberOrTag" + }, + "toBlock": { + "name": "to block", + "$ref": "./Block.json#/numberOrTag" + }, + "address": { + "title": "Address(es)", + "summary": "contract address or a list of addresses from which logs should originate", + "oneOf": [ + { + "$ref": "./Address.json#/address" + }, + { + "$ref": "./Address.json#/addresses" + } + ] + }, + "topics": { + "$ref": "./Topic.json#/topics" + } +} \ No newline at end of file diff --git a/components/Gas.json b/components/Gas.json new file mode 100644 index 000000000..bbab17893 --- /dev/null +++ b/components/Gas.json @@ -0,0 +1,40 @@ +{ + "Limit": { + "schema": { + "$ref": "./Gas.json#/limit" + } + }, + "limit": { + "name": "gas limit", + "summary": "A scalar value equal to the current limit of gas expenditure per block", + "$ref": "./Quantity.json#/integer" + }, + "Used": { + "schema": { + "$ref": "./Gas.json#/used" + } + }, + "Price": { + "schema": { + "$ref": "./Gas.json#/price" + } + }, + "price": { + "title": "gas price", + "$ref": "./Quantity.json#/integer" + }, + "used": { + "title": "gas used", + "summary": "A scalar value equal to the total gas usedin transactions in this block", + "$ref": "./Quantity.json#/integer" + }, + "baseFeePerGas": { + "$ref": "./EIPs/1559.json#/properties/baseFeePerGas" + }, + "maxFeePerGas": { + "$ref": "./EIPs/1559.json#/properties/maxFeePerGas" + }, + "maxPriorityFeePerGas": { + "$ref": "./EIPs/1559.json#/properties/maxPriorityFeePerGas" + } +} diff --git a/components/Header.json b/components/Header.json new file mode 100644 index 000000000..723e5baa3 --- /dev/null +++ b/components/Header.json @@ -0,0 +1,123 @@ +{ + "HeaderObject": { + "name": "header object", + "schema": { + "$ref": "./Header.json#/headerObject" + } + }, + "headerObject": { + "title": "header object", + "type": "object", + "required": [ + "parentHash", + "sha3Uncles", + "miner", + "stateRoot", + "transactionsRoot", + "receiptsRoot", + "bloom", + "totalDifficulty", + "number", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "mixHash", + "nonce" + ], + "properties": { + "parentHash": { + "$ref": "./Header.json#/parentHash" + }, + "sha3Uncles": { + "title": "sha3uncles", + "$ref": "./Uncle.json#/sha3Uncles" + }, + "stateRoot": { + "$ref": "./Header.json#/stateRoot" + }, + "receiptsRoot": { + "$ref": "./Header.json#/receiptsRoot" + }, + "miner": { + "title": "miner", + "$ref": "./Address.json#/miner" + }, + "transactionsRoot": { + "title": "transaction root", + "$ref": "./Transaction.json#/root" + }, + "bloom": { + "title": "header log bloom", + "$ref": "./Logs.json#/bloom" + }, + "totalDifficulty": { + "title": "header total difficulty", + "$ref": "./POW.json#/totalDifficulty" + }, + "gasLimit": { + "title": "block gas limit", + "$ref": "./Gas.json#/limit" + }, + "gasUsed": { + "title": "total gas used", + "$ref": "./Gas.json#/used" + }, + "timestamp": { + "title": "block timestamp", + "$ref": "./Header.json#/timestamp" + }, + "mixHash": { + "title": "block mix hash", + "$ref": "./POW.json#/mixHash" + }, + "nonce": { + "title": "block nonce", + "$ref": "./POW.json#/nonce" + }, + "baseFeePerGas": { + "title": "base fee per gas", + "$ref": "./Gas.json#/baseFeePerGas" + }, + "number": { + "title": "block number", + "$ref": "./Block.json#/number" + }, + "powHash": { + "title": "proof of work hash", + "$ref": "./POW.json#/hash" + }, + "seedHash": { + "title": "seed hash", + "$ref": "./POW.json#/seedHash" + }, + "extraData": { + "$ref": "./Header.json#/extraData" + } + } + }, + "parentHash": { + "title": "parent block hash", + "$ref": "./Data.json#/hash32" + }, + "receiptsRoot": { + "name": "receipt root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", + "$ref": "./Data.json#/hash32" + }, + "stateRoot": { + "name": "block state root", + "summary": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", + "$ref": "./Data.json#/hash32" + }, + "extraData": { + "name": "extra data", + "summary": "'extra data' field of this block; must be at most 32 bytes", + "$ref": "./Data.json#/bytes32" + }, + "timestamp": { + "title": "timestamp", + "summary": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", + "$ref": "./Quantity.json#/integer" + } +} diff --git a/components/Logs.json b/components/Logs.json new file mode 100644 index 000000000..26d271b9e --- /dev/null +++ b/components/Logs.json @@ -0,0 +1,89 @@ +{ + "Logs": { + "name": "logs", + "summary": "array of log objects", + "schema": { + "$ref": "./Logs.json#/logObjects" + } + }, + "Log": { + "name": "log", + "summary": "a single log object", + "schema": { + "$ref": "./Logs.json#/logObject" + } + }, + "Bloom": { + "name": "logs bloom", + "schema": { + "$ref": "./Logs.json#/bloom" + } + }, + "BloomOrNull": { + "name": "logs bloom or null", + "schema": { + "$ref": "./Logs.json#/bloomOrNull" + } + }, + "bloom": { + "title": "bloom filter", + "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", + "$ref": "./Data.json#/bytes256" + }, + "bloomOrNull": { + "title": "bloom filter or null", + "summary": "logs bloom filter or null if pending", + "oneOf": [{ "$ref": "./Logs.json#/bloom" }, { "$ref": "./Null.json#/null" }] + }, + "logObjects": { + "title": "log objects", + "type": "array", + "items": [ + { + "$ref": "./Logs.json#/logObject" + } + ] + }, + "logObject": { + "title": "log object", + "type": "object", + "properties": { + "removed": { + "title": "removed", + "type": "boolean" + }, + "logIndex": { + "title": "log index", + "$ref": "./Quantity.json#/integer" + }, + "transactionIndex": { + "title": "transaction index", + "$ref": "./Quantity.json#/integer" + }, + "transactionHash": { + "title": "transaction hash", + "$ref": "./Data.json#/hash32" + }, + "blockHash": { + "title": "block hash", + "$ref": "./Data.json#/hash32" + }, + "blockNumber": { + "title": "block number", + "$ref": "./Quantity.json#/integer" + }, + "address": { + "title": "address", + "$ref": "./Address.json#/address" + }, + "data": { + "title": "data", + "$ref": "./Data.json#/bytes" + }, + "topics": { + "title": "topics", + "$ref": "./Topic.json#/topics" + } + } + } +} diff --git a/components/Mining.json b/components/Mining.json new file mode 100644 index 000000000..98cef83f1 --- /dev/null +++ b/components/Mining.json @@ -0,0 +1,48 @@ +{ + "Hashrate": { + "name": "hashrate", + "summary": "number of hashes-per-second this node is mining at", + "$ref": "./Quantity.json#/Integer" + }, + "IsMining": { + "name": "is mining", + "summary": "true if this client is mining or false if it is not mining", + "schema": { + "type": "boolean" + } + }, + "RandomID": { + "name": "random id", + "summary": "random ID identifying this node", + "schema": { + "$ref": "./Data.json#/bytes" + } + }, + "POWSolution": { + "IsSolutionValid": { + "name": "is solution valid", + "summary": "true if the solution is valid, false otherwise", + "schema": { + "type": "boolean" + } + }, + "NonceFound": { + "name": "proof of work nonce found", + "schema": { + "$ref": "./POW.json#/nonce" + } + }, + "HeaderPOWHash": { + "name": "block proof of work hash", + "schema": { + "$ref": "./POW.json#/hash" + } + }, + "MixHash": { + "name": "proof of work mix hash", + "schema": { + "$ref": "./POW.json#/mixHash" + } + } + } +} diff --git a/components/Null.json b/components/Null.json new file mode 100644 index 000000000..484438d19 --- /dev/null +++ b/components/Null.json @@ -0,0 +1,19 @@ +{ + "Null": { + "schema": { "$ref": "./Null.json#/null" } + }, + "null": { + "title": "null", + "type": "null", + "description": "null, undefined, None" + }, + "ZeroHash": { + "name": "zero hash", + "schema": "./Null.json#/zeroHash" + }, + "zeroHash": { + "title": "zero hash", + "type": "string", + "pattern": "^0x$" + } +} diff --git a/components/POW.json b/components/POW.json new file mode 100644 index 000000000..d70c4007a --- /dev/null +++ b/components/POW.json @@ -0,0 +1,63 @@ +{ + "nonce": { + "title": "proof of work nonce", + "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "$ref": "./Data.json#/hash32" + }, + "nonceOrNull": { + "title": "proof of work nonce or null if pending", + "oneOf": [ + { + "$ref": "./POW.json#/nonce" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "Hash": { + "schema": { + "$ref": "./POW.json#/hash" + } + }, + "SeedHash": { + "schema": { + "$ref": "./POW.json#/seedHash" + } + }, + "BoundaryCondition": { + "schema": { + "$ref": "./POW.json#/boundaryCondition" + } + }, + "hash": { + "title": "proof of work hash", + "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", + "$ref": "./Data.json#/bytes32" + }, + "mixHash": { + "title": "mix hash", + "summary": "A 32-byte hash which, combined with the nonce, proves that a sufficient amount of computation has been carried out on this block", + "$ref": "./Data.json#/hash32" + }, + "totalDifficulty": { + "title": "total difficulty", + "summary": "total difficulty of the best chain until this block", + "$ref": "./Data.json#/bytes" + }, + "difficulty": { + "title": "block difficulty", + "summary": "A scalar value corresponding to the difficulty level of this block. This can be calculated from the previous block’s difficulty level and the timestamp", + "$ref": "./Quantity.json#/integer" + }, + "boundaryCondition": { + "title": "boundary condition", + "summary": "boundary condition ('target'), 2^256 / difficulty", + "$ref": "./Data.json#/bytes32" + }, + "seedHash": { + "title": "seed hash", + "summary": "The Keccak-256 hash of the previous epoch's seed hash, if it's the first block then it's the Keccak-256 hash of a series of 32bytes of zeros", + "$ref": "./Data.json#/bytes32" + } +} diff --git a/components/ProtocolVersion.json b/components/ProtocolVersion.json new file mode 100644 index 000000000..e65a629dc --- /dev/null +++ b/components/ProtocolVersion.json @@ -0,0 +1,13 @@ +{ + "ProtocolVersion": { + "name": "protocol version", + "schema": { + "$ref": "./ProtocolVersion.json#/protocolVersion" + } + }, + "protocolVersion": { + "title": "protocol version", + "summary": "current Ethereum protocol version", + "$ref": "./Quantity.json#/integer" + } +} diff --git a/components/Quantity.json b/components/Quantity.json new file mode 100644 index 000000000..e4dca2163 --- /dev/null +++ b/components/Quantity.json @@ -0,0 +1,28 @@ +{ + "Integer": { + "name": "integer", + "schema": { + "$ref": "./Quantity.json#/integer" + } + }, + "integer": { + "$ref": "./Quantity.json#/uint256" + }, + "arrayOfUint256": { + "title": "array of hex encoded unsigned integers", + "type": "array", + "items": [ + {"$ref": "./Quantity.json#/uint256"} + ] + }, + "uint": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]+$" + }, + "uint256": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } +} diff --git a/components/Status.json b/components/Status.json new file mode 100644 index 000000000..4c6f26afa --- /dev/null +++ b/components/Status.json @@ -0,0 +1,10 @@ +{ + "Status": { + "name": "status", + "summary": "true if the operation was successful, false if it was not", + "schema": { + "title": "success", + "type": "boolean" + } + } +} diff --git a/components/Syncing.json b/components/Syncing.json new file mode 100644 index 000000000..ce44fb105 --- /dev/null +++ b/components/Syncing.json @@ -0,0 +1,61 @@ +{ + "Status": { + "name": "syncing status", + "schema": { + "oneOf": [ + { + "$ref": "./Syncing.json#/progressObject" + }, + { + "$ref": "./Syncing.json#/notSyncing" + } + ] + } + }, + "progressObject": { + "title": "syncing progress", + "type": "object", + "properties": { + "startingBlock": { + "$ref": "./Syncing.json#/startingBlock" + }, + "currentBlock": { + "$ref": "./Syncing.json#/currentBlock" + }, + "highestBlock": { + "$ref": "./Syncing.json#/highestBlock" + } + } + }, + "startingBlock": { + "title": "starting block", + "summary": "block number at which syncing started", + "$ref": "./Quantity.json#/integer" + }, + "currentBlock": { + "title": "current block", + "summary": "number of the most-recent block synced", + "$ref": "./Quantity.json#/integer" + }, + "highestBlock": { + "title": "highest block", + "summary": "number of latest block on the network", + "$ref": "./Quantity.json#/integer" + }, + "notSyncing": { + "title": "not syncing", + "description": "Should always return false if not syncing.", + "type": "boolean" + }, + "FalseOrProgressObject": { + "name": "false or progres object", + "schema": { + "$ref": "./Syncing.json#/falseOrProgressObject" + } + }, + "falseOrProgressObject": { + "title": "false or syncing progress object", + "summary": "false if this client is not syncing with the network, otherwise a syncing progres object", + "oneOf": [{ "$ref": "./Syncing.json#/notSyncing" }, { "$ref": "./Syncing.json#/progressObject" }] + } +} diff --git a/components/Topic.json b/components/Topic.json new file mode 100644 index 000000000..12e62c507 --- /dev/null +++ b/components/Topic.json @@ -0,0 +1,26 @@ +{ + "Topic": { + "schema": { + "$ref": "./Topic.json#/topic" + } + }, + "topic": { + "title": "topic", + "$ref": "./Quantity.json#/integer" + }, + "Topics": { + "name": "topics", + "summary": "list of order-dependent topics", + "description": "**Note:** Topics are order-dependent. A transaction with a log with topics `[A, B]` will be matched by the following topic filters:\n- `[]` - 'anything'\n- `[A]` - 'A in first position (and anything after)'\n- `[null, B]` - 'anything in first position AND B in second position (and anything after)'\n- `[A, B]` - 'A in first position AND B in second position (and anything after)'\n- `[[A, B], [A, B]]` - '(A OR B) in first position AND (A OR B) in second position (and anything after)'", + "schema": { + "$ref": "./Topic.json#/topics" + } + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "$ref": "./Topic.json#/topic" + } + } +} diff --git a/components/Transaction.json b/components/Transaction.json new file mode 100644 index 000000000..d87b07850 --- /dev/null +++ b/components/Transaction.json @@ -0,0 +1,313 @@ +{ + "TransactionObject": { + "name": "transaction object", + "schema": { + "$ref": "./Transaction.json#/transactionObject" + } + }, + "transactionObject": { + "title": "transaction object", + "type": "object", + "allOf": [ + { + "required": ["nonce", "gas", "value", "input"], + "properties": { + "type": { + "$ref": "./Transaction.json#/type" + }, + "nonce": { + "title": "nonce", + "$ref": "./POW.json#/nonce" + }, + "to": { + "$ref": "./Transaction.json#/to" + }, + "gas": { + "title": "gas", + "$ref": "./Gas.json#/limit" + }, + "value": { + "$ref": "./Transaction.json#/value" + }, + "input": { + "$ref": "./Transaction.json#/input" + }, + "accessList": { + "title": "accessList", + "$ref": "./AccessList.json#/entries" + } + } + }, + { + "oneOf": [ + { + "$ref": "./EIPs/1559.json#/parameters" + }, + { + "$ref": "./EIPs/1559.json#/legacyParameters" + } + ] + } + ] + }, + "TransactionRequestObject": { + "name": "transaciton request object", + "schema": { + "$ref": "./Transaction.json#/transactionRequestObject" + } + }, + "transactionRequestObject": { + "title": "transaction request object", + "type": "object", + "properties": { + "to": { + "$ref": "./Transaction.json#/to" + }, + "from": { + "$ref": "./Transaction.json#/from" + }, + "gas": { + "title": "gas", + "$ref": "./Gas.json#/limit" + }, + "gasPrice": { + "$ref": "./Gas.json#/price" + }, + "value": { + "$ref": "./Transaction.json#/value" + }, + "data": { + "title": "data", + "$ref": "./Data.json#/bytes" + }, + "nonce": { + "title": "nonce", + "$ref": "./POW.json#/nonce" + } + } + }, + "type": { + "title": "type", + "$ref": "./Data.json#/byte" + }, + "to": { + "title": "to", + "$ref": "./Address.json#/address" + }, + "value": { + "title": "value", + "$ref": "./Quantity.json#/integer" + }, + "input": { + "title": "input", + "$ref": "./Quantity.json#/integer" + }, + "SignedTransaction": { + "schema": { + "$ref": "./Transaction.json#/signedTransaction" + } + }, + "signedTransaction": { + "title": "Signed transaction object", + "type": "object", + "allOf": [ + { + "$ref": "./Transaction.json#/transactionObject" + }, + { + "required": ["v", "r", "s"], + "properties": { + "v": { + "$ref": "./Transaction.json#/v" + }, + "r": { + "$ref": "./Transaction.json#/r" + }, + "s": { + "$ref": "./Transaction.json#/s" + } + } + } + ] + }, + "v": { + "title": "v", + "$ref": "./Quantity.json#/integer" + }, + "r": { + "title": "r", + "$ref": "./Quantity.json#/integer" + }, + "s": { + "title": "s", + "$ref": "./Quantity.json#/integer" + }, + "WithSender": { + "schema": { + "$ref": "./Transaction.json#/withSender" + } + }, + "withSender": { + "title": "Transaction object with sender", + "type": "object", + "allOf": [ + { + "required": ["from"], + "properties": { + "from": { + "$ref": "./Transaction.json#/from" + } + } + }, + { + "$ref": "./Transaction.json#/transactionObject" + } + ] + }, + "Info": { + "schema": { + "$ref": "./Transaction.json#/info" + } + }, + "info": { + "type": "object", + "title": "transaction information", + "allOf": [ + { + "name": "Contextual information", + "required": [ + "blockHash", + "blockNumber", + "from", + "hash", + "transactionIndex" + ], + "properties": { + "blockHash": { + "title": "blockHash", + "$ref": "./Block.json#/hash" + }, + "blockNumber": { + "title": "blockNumber", + "$ref": "./Block.json#/number" + }, + "from": { + "$ref": "./Transaction.json#/from" + }, + "hash": { + "$ref": "./Transaction.json#/hash" + }, + "transactionIndex": { + "$ref": "./Transaction.json#/index" + } + } + }, + { + "$ref": "./Transaction.json#/signedTransaction" + } + ] + }, + "Index": { + "name": "transaction index", + "schema": { + "$ref": "./Transaction.json#/index" + } + }, + "Hash": { + "name": "transaction hash", + "schema": { + "$ref": "./Transaction.json#/hash" + } + }, + "index": { + "name": "transactionIndex", + "description": "index of a transaction in the specified block", + "$ref": "./Quantity.json#/integer" + }, + "hash": { + "title": "transactionHash", + "summary": "hash of a transaction", + "$ref": "./Data.json#/hash32" + }, + "HashOrNull": { + "name": "hash or null", + "schema": { + "$ref": "./Transaction.json#/hashOrNull" + } + }, + "HashOrZeroHash": { + "name": "hash or zero hash", + "schema": { + "$ref": "./Transaction.json#/hashOrZeroHash" + } + }, + "hashOrZeroHash": { + "title": "hash or zero hash", + "oneOf": [ + { + "$ref": "./Transaction.json#/hash" + }, + { + "$ref": "./Null.json#/zeroHash" + } + ] + }, + "hashOrNull": { + "title": "hash or null", + "oneOf": [ + { + "$ref": "./Transaction.json#/hash" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "From": { + "schema": { + "$ref": "./Transaction.json#/from" + } + }, + "from": { + "title": "from", + "description": "The transaction sender's address", + "$ref": "./Address.json#/address" + }, + "uncles": { + "title": "transaction uncles", + "type": "array", + "items": [{ "$ref": "./Transaction.json#/transactionObject" }] + }, + "root": { + "title": "transaction root", + "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block", + "$ref": "./Data.json#/hash32" + }, + "rawTransactionData": { + "title": "raw transaction data", + "summary": "the encoding of the [nonce, gasPrice, gasLimit, to, value, data] (in order) of a transaction object", + "$ref": "./Data.json#/bytes" + }, + "SignedTransactionData": { + "name": "signed transaction data", + "schema": { + "$ref": "./Transaction.json#/signedTransactionData" + } + }, + "signedTransactionData": { + "title": "signed transaction data", + "summary": "the encoding of the [...rawTransactionData, v, r, s] (in order) of the transaction object", + "$ref": "./Data.json#/bytes" + }, + "Count": { + "name": "transaction count", + "schema": { + "$ref": "./Transaction.json#/count" + } + }, + "count": { + "title": "transaction count", + "summary": "number of transactions sent from the specified address", + "$ref": "./Quantity.json#/integer" + } +} diff --git a/components/Uncle.json b/components/Uncle.json new file mode 100644 index 000000000..3274e4e05 --- /dev/null +++ b/components/Uncle.json @@ -0,0 +1,100 @@ +{ + "UncleObject": { + "schema": "./Uncle.json#/uncleObject" + }, + "uncleObject": { + "title": "uncle object", + "type": "object", + "properties": { + "extraData": { + "title": "extraData", + "$ref": "./Header.json#/extraData" + }, + "hash": { + "title": "hash", + "$ref": "./Block.json#/hashOrNull" + }, + "logsBloom": { + "title": "logsBloom", + "$ref": "./Logs.json#/bloomOrNull" + }, + "miner": { + "title": "miner", + "$ref": "./Address.json#/miner" + }, + "nonce": { + "title": "nonce", + "$ref": "./POW.json#/nonceOrNull" + }, + "parentHash": { + "title": "parentHash", + "$ref": "./Header.json#/parentHash" + }, + "receiptsRoot": { + "title": "receiptsRoot", + "$ref": "./Header.json#/receiptsRoot" + }, + "sha3Uncles": { + "$ref": "./Uncle.json#/sha3Uncles" + }, + "stateRoot": { + "title": "stateRoot", + "$ref": "./Header.json#/stateRoot" + }, + "size": { + "title": "size", + "$ref": "./Block.json#/size" + }, + "timestamp": { + "title": "timestamp", + "$ref": "./Header.json#/timestamp" + }, + "totalDifficulty": { + "title": "totalDifficulty", + "$ref": "./POW.json#/totalDifficulty" + }, + "Uncles": { + "$ref": "./Uncle.json#/uncles" + } + } + }, + "sha3Uncles": { + "title": "ommersHash", + "summary": "SHA3 (Keccak-256) of the uncles data in this block", + "$ref": "./Data.json#/hash32" + }, + "uncles": { + "name": "uncles", + "summary": "list of uncle hashes", + "$ref": "./Transaction.json#/uncles" + }, + "UncleObjectOrNull": { + "name": "uncle or null", + "schema": { + "$ref": "./Uncle.json#/uncleObjectOrNull" + } + }, + "uncleObjectOrNull": { + "title": "uncle or null", + "summary": "null if no block or uncle is found, otherwise an uncle object", + "oneOf": [ + { + "$ref": "./Uncle.json#/uncleObject" + }, + { + "$ref": "./Null.json#/null" + } + ] + }, + "Index": { + "name": "uncle index", + "schema": { + "$ref": "./Uncle.json#/index" + } + }, + "index": { + "title": "uncle index", + "summary": "index of uncle", + "$ref": "./Quantity.json#/integer" + } +} diff --git a/methods/eth/accounts.json b/methods/eth/accounts.json new file mode 100644 index 000000000..978413129 --- /dev/null +++ b/methods/eth/accounts.json @@ -0,0 +1,11 @@ +{ + "name": "eth_accounts", + "summary": "Returns a list of addresses owned by this client", + "params": [], + "result": { + "name": "array of addresses", + "schema": { + "$ref": "../../components/Address.json#/addresses" + } + } +} \ No newline at end of file diff --git a/methods/eth/blockNumber.json b/methods/eth/blockNumber.json new file mode 100644 index 000000000..5be3f8201 --- /dev/null +++ b/methods/eth/blockNumber.json @@ -0,0 +1,8 @@ +{ + "name": "eth_blockNumber", + "summary": "Returns the number of the most recent block seen by this client", + "params": [], + "result": { + "$ref": "../../components/Block.json#/Number" + } +} diff --git a/methods/eth/call.json b/methods/eth/call.json new file mode 100644 index 000000000..af3e74e98 --- /dev/null +++ b/methods/eth/call.json @@ -0,0 +1,15 @@ +{ + "name": "eth_call", + "summary": "Executes a new message call immediately without creating a transaction on the block chain.", + "params": [ + { + "name": "Transaction", + "required": true, + "$ref": "../../components/Transaction.json#/WithSender" + } + ], + "result": { + "name": "Return data", + "$ref": "../../components/Data.json#/Bytes" + } +} diff --git a/methods/eth/coinbase.json b/methods/eth/coinbase.json new file mode 100644 index 000000000..2cf1d9dbd --- /dev/null +++ b/methods/eth/coinbase.json @@ -0,0 +1,9 @@ +{ + "name": "eth_coinbase", + "summary": "Returns the coinbase address for this client", + "params": [], + "result": { + "name": "Coinbase address", + "$ref": "../../components/Address.json#/Address" + } +} diff --git a/methods/eth/estimateGas.json b/methods/eth/estimateGas.json new file mode 100644 index 000000000..1935d41b0 --- /dev/null +++ b/methods/eth/estimateGas.json @@ -0,0 +1,15 @@ +{ + "name": "eth_estimateGas", + "summary": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.", + "params": [ + { + "name": "Transaction", + "required": true, + "$ref": "../../components/Transaction.json#/WithSender" + } + ], + "result": { + "name": "Gas used", + "$ref": "../../components/Gas.json#/Used" + } +} diff --git a/methods/eth/gasPrice.json b/methods/eth/gasPrice.json new file mode 100644 index 000000000..63fcdff75 --- /dev/null +++ b/methods/eth/gasPrice.json @@ -0,0 +1,9 @@ +{ + "name": "eth_gasPrice", + "summary": "Returns the current price per gas in wei.", + "params": [], + "result": { + "name": "Gas price", + "$ref": "../../components/Gas.json#/Price" + } +} diff --git a/methods/eth/getBalance.json b/methods/eth/getBalance.json new file mode 100644 index 000000000..1df7866e1 --- /dev/null +++ b/methods/eth/getBalance.json @@ -0,0 +1,15 @@ +{ + "name": "eth_getBalance", + "summary": "Returns the balance of the account of given address.", + "params": [ + { + "$ref": "../../components/Address.json#/Address" + }, + { + "$ref": "../../components/Block.json#/NumberOrTag" + } + ], + "result": { + "$ref": "../../components/Block.json#/Number" + } +} diff --git a/methods/eth/getBlockByHash.json b/methods/eth/getBlockByHash.json new file mode 100644 index 000000000..b4de2df43 --- /dev/null +++ b/methods/eth/getBlockByHash.json @@ -0,0 +1,13 @@ +{ + "name": "eth_getBlockByHash", + "summary": "Returns information about a block by hash.", + "params": [ + { + "$ref": "../../components/Block.json#/Hash" + } + ], + "result": { + "name": "Block information", + "$ref": "../../components/Block.json#/BlockObject" + } +} diff --git a/methods/eth/getBlockByNumber.json b/methods/eth/getBlockByNumber.json new file mode 100644 index 000000000..cfbae5efc --- /dev/null +++ b/methods/eth/getBlockByNumber.json @@ -0,0 +1,15 @@ +{ + "name": "eth_getBlockByNumber", + "summary": "Returns information about a block by number.", + "params": [ + { + "$ref": "../../components/Block.json#/Number" + } + ], + "result": { + "name": "Block information", + "schema": { + "$ref": "../../components/Block.json#/BlockObject" + } + } +} diff --git a/methods/eth/getBlockTransactionCountByHash.json b/methods/eth/getBlockTransactionCountByHash.json new file mode 100644 index 000000000..89ad907ac --- /dev/null +++ b/methods/eth/getBlockTransactionCountByHash.json @@ -0,0 +1,10 @@ +{ + "name": "eth_getBlockTransactionCountByHash", + "summary": "Returns the number of transactions in a block specified by block hash", + "params": [ + { + "$ref": "../../components/Block.json#/Hash" + } + ], + "result": { "$ref": "../../components/Block.json#/BlockTransactionCount" } +} diff --git a/methods/eth/getBlockTransactionCountByNumber.json b/methods/eth/getBlockTransactionCountByNumber.json new file mode 100644 index 000000000..2da8c6b74 --- /dev/null +++ b/methods/eth/getBlockTransactionCountByNumber.json @@ -0,0 +1,12 @@ +{ + "name": "eth_getBlockTransactionCountByNumber", + "summary": "Returns the number of transactions in a block matching specified by the block number.", + "params": [ + { + "$ref": "../../components/Block.json#/Number" + } + ], + "result": { + "$ref": "../../components/Block.json#/BlockTransactionCount" + } +} diff --git a/methods/eth/getCode.json b/methods/eth/getCode.json new file mode 100644 index 000000000..3347247d8 --- /dev/null +++ b/methods/eth/getCode.json @@ -0,0 +1,15 @@ +{ + "name": "eth_getCode", + "summary": "Returns code at a given address.", + "params": [ + { + "$ref": "../../components/Address.json#/Address" + }, + { + "$ref": "../../components/Block.json#/NumberOrTag" + } + ], + "result": { + "$ref": "../../components/Data.json#/Bytecode" + } +} diff --git a/methods/eth/getFilterChanges.json b/methods/eth/getFilterChanges.json new file mode 100644 index 000000000..0d378c2c8 --- /dev/null +++ b/methods/eth/getFilterChanges.json @@ -0,0 +1,8 @@ +{ + "name": "eth_getFilterChanges", + "summary": "Returns a list of all logs based on filter ID since the last log retrieval", + "params": [{ "$ref": "../../components/Filter.json#/Identifier" }], + "result": { + "$ref": "../../components/Filter.json#/Results" + } +} diff --git a/methods/eth/getFilterLogs.json b/methods/eth/getFilterLogs.json new file mode 100644 index 000000000..3c121b050 --- /dev/null +++ b/methods/eth/getFilterLogs.json @@ -0,0 +1,16 @@ +{ + "name": "eth_getFilterLogs", + "summary": "Returns a list of all logs based on filter ID", + "params": [ + { + "name": "filterId", + "required": true, + "$ref": "../../components/Filter.json#/Identifier" + } + ], + "result": { + "name": "logs", + "description": "The return value of eth_getFilterLogs when retrieving logs from eth_newBlockFilter and eth_newPendingTransactionFilter filters will be an array of hashes, not an array of Log objects.", + "$ref": "../../components/Logs.json#/Logs" + } +} diff --git a/methods/eth/getLogs.json b/methods/eth/getLogs.json new file mode 100644 index 000000000..4f4021059 --- /dev/null +++ b/methods/eth/getLogs.json @@ -0,0 +1,12 @@ +{ + "name": "eth_getLogs", + "summary": "Returns a list of all logs based on a filter object", + "params": [ + { + "$ref": "../../components/Filter.json#/FilterObject" + } + ], + "result": { + "$ref": "../../components/Logs.json#/Logs" + } +} diff --git a/methods/eth/getStorageAt.json b/methods/eth/getStorageAt.json new file mode 100644 index 000000000..0f06352f6 --- /dev/null +++ b/methods/eth/getStorageAt.json @@ -0,0 +1,24 @@ +{ + "name": "eth_getStorageAt", + "description": "Returns the value from a storage position at an address", + "params": [ + { + "name": "dataAddress", + "summary": "address of stored data", + "$ref": "../../components/Address.json#/Address" + }, + { + "name": "dataIndex", + "summary": "index into stored data", + "$ref": "../../components/Data.json#/Index" + }, + { + "$ref": "../../components/Block.json#/NumberOrTagOrHash" + } + ], + "result": { + "name": "data stored", + "summary": "data stored at the given address and data index", + "$ref": "../../components/Data.json#/Bytes" + } +} diff --git a/methods/eth/getTransactionByBlockHashAndIndex.json b/methods/eth/getTransactionByBlockHashAndIndex.json new file mode 100644 index 000000000..d751aea2b --- /dev/null +++ b/methods/eth/getTransactionByBlockHashAndIndex.json @@ -0,0 +1,15 @@ +{ + "name": "eth_getTransactionByBlockHashAndIndex.json", + "description": "Returns information about a transaction specified by block hash and transaction index", + "params": [ + { + "$ref": "../../components/Block.json#/Hash" + }, + { + "$ref": "../../components/Transaction.json#/Index" + } + ], + "result": { + "$ref": "../../components/Transaction.json#/HashOrNull" + } +} diff --git a/methods/eth/getTransactionByBlockNumberAndIndex.json b/methods/eth/getTransactionByBlockNumberAndIndex.json new file mode 100644 index 000000000..96aacee59 --- /dev/null +++ b/methods/eth/getTransactionByBlockNumberAndIndex.json @@ -0,0 +1,11 @@ +{ + "name": "eth_getTransactionByBlockNumberAndIndex", + "summary": "Returns information about a transaction specified by block number and transaction index", + "params": [ + { "$ref": "../../components/Block.json#/NumberOrTag" }, + { "$ref": "../../components/Transaction.json#/Index" } + ], + "result": { + "$ref": "../../components/Transaction.json#/HashOrNull" + } +} diff --git a/methods/eth/getTransactionByHash.json b/methods/eth/getTransactionByHash.json new file mode 100644 index 000000000..0616cae79 --- /dev/null +++ b/methods/eth/getTransactionByHash.json @@ -0,0 +1,8 @@ +{ + "name": "eth_getTransactionByHash", + "summary": "Returns information about a transaction specified by hash", + "params": [{ "$ref": "../../components/Transaction.json#/Hash" }], + "result": { + "$ref": "../../components/Transaction.json#/HashOrNull" + } +} diff --git a/methods/eth/getTransactionCount.json b/methods/eth/getTransactionCount.json new file mode 100644 index 000000000..2b978e7b3 --- /dev/null +++ b/methods/eth/getTransactionCount.json @@ -0,0 +1,17 @@ +{ + "name": "eth_getTransactionCount", + "summary": "Returns the number of transactions sent from an address", + "params": [ + { + "name": "transactionAddress", + "summary": "address to query for sent transactions", + "required": true, + "$ref": "../../components/Address.json#/Address" + }, + { + "required": true, + "$ref": "../../components/Block.json#/NumberOrTagOrHash" + } + ], + "result": { "$ref": "../../components/Transaction.json#/Count" } +} diff --git a/methods/eth/getTransactionReceipt.json b/methods/eth/getTransactionReceipt.json new file mode 100644 index 000000000..be3e463fe --- /dev/null +++ b/methods/eth/getTransactionReceipt.json @@ -0,0 +1,9 @@ +{ + "name": "eth_getTransactionReceipt", + "summary": "Returns the receipt of a transaction specified by hash. Transaction receipts are unavailable for pending transactions.", + "params": [{ "$ref": "../../components/Transaction.json#/Hash" }], + "result": { + "name": "transaction receipt or null", + "$ref": "../../components/Transaction.json#/HashOrNull" + } +} diff --git a/methods/eth/getUncleByBlockHashAndIndex.json b/methods/eth/getUncleByBlockHashAndIndex.json new file mode 100644 index 000000000..8a88d0974 --- /dev/null +++ b/methods/eth/getUncleByBlockHashAndIndex.json @@ -0,0 +1,11 @@ +{ + "name": "eth_getUncleByBlockHashAndIndex", + "summary": "Returns information about an uncle specified by block hash and uncle index position", + "params": [ + { "$ref": "../../components/Block.json#/Hash" }, + { "$ref": "../../components/Uncle.json#/Index" } + ], + "result": { + "$ref": "../../components/Uncle.json#/UncleObjectOrNull" + } +} diff --git a/methods/eth/getUncleByBlockNumberAndIndex.json b/methods/eth/getUncleByBlockNumberAndIndex.json new file mode 100644 index 000000000..2f6e4b48b --- /dev/null +++ b/methods/eth/getUncleByBlockNumberAndIndex.json @@ -0,0 +1,11 @@ +{ + "name": "eth_getUncleByBlockNumberAndIndex", + "summary": "Returns information about an uncle specified by block number and uncle index position", + "params": [ + { "$ref": "../../components/Block.json#/NumberOrTag" }, + { "$ref": "../../components/Quantity.json#/Integer" } + ], + "result": { + "$ref": "../../components/Uncle.json#/UncleObjectOrNull" + } +} diff --git a/methods/eth/getUncleCountByBlockHash.json b/methods/eth/getUncleCountByBlockHash.json new file mode 100644 index 000000000..5fbb54ed9 --- /dev/null +++ b/methods/eth/getUncleCountByBlockHash.json @@ -0,0 +1,8 @@ +{ + "name": "eth_getUncleCountByBlockHash", + "summary": "Returns the number of uncles in a block specified by block hash", + "params": [{ "$ref": "../../components/Block.json#/Hash" }], + "result": { + "$ref": "../../components/Block.json#/UncleCount" + } +} diff --git a/methods/eth/getUncleCountByBlockNumber.json b/methods/eth/getUncleCountByBlockNumber.json new file mode 100644 index 000000000..619ae0ee6 --- /dev/null +++ b/methods/eth/getUncleCountByBlockNumber.json @@ -0,0 +1,8 @@ +{ + "name": "eth_getUncleCountByBlockNumber", + "summary": "Returns the number of uncles in a block specified by block number", + "params": [{ "$ref": "../../components/Block.json#/NumberOrTag" }], + "result": { + "$ref": "../../components/Block.json#/UncleCount" + } +} diff --git a/methods/eth/getWork.json b/methods/eth/getWork.json new file mode 100644 index 000000000..c8de96fde --- /dev/null +++ b/methods/eth/getWork.json @@ -0,0 +1,22 @@ +{ + "name": "eth_getWork", + "summary": "Returns a list containing relevant information for proof-of-work", + "params": [], + "result": { + "name": "work", + "schema": { + "type": "array", + "items": [ + { + "$ref": "../../components/POW.json#/hash" + }, + { + "$ref": "../../components/POW.json#/seedHash" + }, + { + "$ref": "../../components/POW.json#/boundaryCondition" + } + ] + } + } +} diff --git a/methods/eth/hashRate.json b/methods/eth/hashRate.json new file mode 100644 index 000000000..0e3fdc4ce --- /dev/null +++ b/methods/eth/hashRate.json @@ -0,0 +1,8 @@ +{ + "name": "eth_hashrate", + "summary": "Returns the number of hashes-per-second this node is mining at", + "params": [], + "result": { + "$ref": "../../components/Mining.json#/Hashrate" + } +} diff --git a/methods/eth/mining.json b/methods/eth/mining.json new file mode 100644 index 000000000..c097ee1c5 --- /dev/null +++ b/methods/eth/mining.json @@ -0,0 +1,8 @@ +{ + "name": "eth_mining", + "summary": "Determines if this client is mining new blocks", + "params": [], + "result": { + "$ref": "../../components/Mining.json#/IsMining" + } +} diff --git a/methods/eth/newBlockFilter.json b/methods/eth/newBlockFilter.json new file mode 100644 index 000000000..c3d3aa141 --- /dev/null +++ b/methods/eth/newBlockFilter.json @@ -0,0 +1,8 @@ +{ + "name": "eth_newBlockFilter", + "summary": "Creates a filter to listen for new blocks that can be used with eth_getFilterChanges", + "params": [], + "result": { + "$ref": "../../components/Filter.json#/Identifier" + } +} diff --git a/methods/eth/newFilter.json b/methods/eth/newFilter.json new file mode 100644 index 000000000..305950995 --- /dev/null +++ b/methods/eth/newFilter.json @@ -0,0 +1,12 @@ +{ + "name": "eth_newFilter", + "summary": "Creates a filter to listen for specific state changes that can then be used with eth_getFilterChanges", + "params": [ + { + "$ref": "../../components/Filter.json#/FilterObject" + } + ], + "result": { + "$ref": "../../components/Filter.json#/Identifier" + } +} diff --git a/methods/eth/newPendingTransactionFilter.json b/methods/eth/newPendingTransactionFilter.json new file mode 100644 index 000000000..8547a21d4 --- /dev/null +++ b/methods/eth/newPendingTransactionFilter.json @@ -0,0 +1,8 @@ +{ + "name": "eth_newPendingTransactionFilter", + "summary": "Creates a filter to listen for new pending transactions that can be used with eth_getFilterChanges", + "params": [], + "result": { + "$ref": "../../components/Filter.json#/Identifier" + } +} diff --git a/methods/eth/protocolVersion.json b/methods/eth/protocolVersion.json new file mode 100644 index 000000000..58dbfcfa5 --- /dev/null +++ b/methods/eth/protocolVersion.json @@ -0,0 +1,8 @@ +{ + "name": "eth_protocolVersion", + "summary": "Returns the current Ethereum protocol version", + "params": [], + "result": { + "$ref": "../../components/ProtocolVersion.json#/ProtocolVersion" + } +} diff --git a/methods/eth/sendRawTransaction.json b/methods/eth/sendRawTransaction.json new file mode 100644 index 000000000..cf7e8458d --- /dev/null +++ b/methods/eth/sendRawTransaction.json @@ -0,0 +1,13 @@ +{ + "name": "eth_sendRawTransaction", + "summary": "Sends an already-signed transaction to the network", + "params": [ + { + "$ref": "../../components/Transaction.json#/SignedTransactionData" + } + ], + "result": { + "name": "transactionHash", + "$ref": "../../components/Transaction.json#/Hash" + } +} diff --git a/methods/eth/sendTransaction.json b/methods/eth/sendTransaction.json new file mode 100644 index 000000000..de8807be7 --- /dev/null +++ b/methods/eth/sendTransaction.json @@ -0,0 +1,14 @@ +{ + "name": "eth_sendTransaction", + "summary": "Creates, signs, and sends a new transaction to the network", + "params": [ + { + "required": true, + "$ref": "../../components/Transaction.json#/TransactionRequestObject" + } + ], + "result": { + "summary": "transaction hash, or the zero hash if the transaction is not yet available", + "$ref": "../../components/Transaction.json#/HashOrZeroHash" + } +} \ No newline at end of file diff --git a/methods/eth/sign.json b/methods/eth/sign.json new file mode 100644 index 000000000..6e977ce65 --- /dev/null +++ b/methods/eth/sign.json @@ -0,0 +1,22 @@ +{ + "name": "eth_sign", + "summary": "Calculates an Ethereum-specific signature in the form of keccak256('\\x19Ethereum Signed Message:\n' + len(message) + message))", + "params": [ + { + "required": true, + "summary": "address to use for signing", + "$ref": "../../components/Address.json#/Address" + }, + { + "required": true, + "name": "data", + "summary": "data to sign", + "$ref": "../../components/Data.json#/Bytes" + } + ], + "result": { + "name": "hash", + "summary": "signature hash of the provided data", + "$ref": "../../components/Data.json#/Hash" + } +} \ No newline at end of file diff --git a/methods/eth/signTransaction.json b/methods/eth/signTransaction.json new file mode 100644 index 000000000..e8f355936 --- /dev/null +++ b/methods/eth/signTransaction.json @@ -0,0 +1,15 @@ +{ + "name": "eth_signTransaction", + "summary": "Signs a transaction that can be submitted to the network at a later time using with eth_sendRawTransaction", + "params": [ + { + "name": "transaction to be signed", + "required": true, + "$ref": "../../components/Transaction.json#/TransactionRequestObject" + } + ], + "result": { + "summary": "signature hash of the transaction object", + "$ref": "../../components/Data.json#/Hash" + } +} \ No newline at end of file diff --git a/methods/eth/submitHashrate.json b/methods/eth/submitHashrate.json new file mode 100644 index 000000000..351446caf --- /dev/null +++ b/methods/eth/submitHashrate.json @@ -0,0 +1,17 @@ +{ + "name": "eth_submitHashrate", + "summary": "Submit a mining hashrate", + "params": [ + { + "required": true, + "$ref": "../../components/Mining.json#/Hashrate" + }, + { + "required": true, + "$ref": "../../components/Mining.json#/RandomID" + } + ], + "result": { + "$ref": "../../components/Status.json#/Status" + } +} diff --git a/methods/eth/submitWork.json b/methods/eth/submitWork.json new file mode 100644 index 000000000..2cbefc43f --- /dev/null +++ b/methods/eth/submitWork.json @@ -0,0 +1,20 @@ +{ + "name": "eth_submitWork", + "summary": "Submit a proof-of-work solution", + "params": [ + { + "$ref": "../../components/Mining.json#/POWSolution/NonceFound" + }, + { + "required": true, + "$ref": "../../components/Mining.json#/POWSolution/HeaderPOWHash" + }, + { + "required": true, + "$ref": "../../components/Mining.json#/POWSolution/MixHash" + } + ], + "result": { + "$ref": "../../components/Mining.json#/POWSolution/IsSolutionValid" + } +} diff --git a/methods/eth/syncing.json b/methods/eth/syncing.json new file mode 100644 index 000000000..5a09fb909 --- /dev/null +++ b/methods/eth/syncing.json @@ -0,0 +1,8 @@ +{ + "name": "eth_syncing", + "summary": "Returns information about the status of this client's network synchronization", + "params": [], + "result": { + "$ref": "../../components/Syncing.json#/FalseOrProgressObject" + } +} diff --git a/methods/eth/uninstallFilter.json b/methods/eth/uninstallFilter.json new file mode 100644 index 000000000..93447aedf --- /dev/null +++ b/methods/eth/uninstallFilter.json @@ -0,0 +1,13 @@ +{ + "name": "eth_uninstallFilter", + "summary": "Destroys a filter based on filter ID; This should only be called if a filter and its notifications are no longer needed. This will also be called automatically on a filter if its notifications are not retrieved using eth_getFilterChanges for a period of time.", + "params": [ + { + "required": true, + "$ref": "../../components/Filter.json#/DestroyFilterID" + } + ], + "result": { + "$ref": "../../components/Filter.json#/IsFilterDestroyed" + } +} diff --git a/methods/net/listening.json b/methods/net/listening.json new file mode 100644 index 000000000..f4a1fef98 --- /dev/null +++ b/methods/net/listening.json @@ -0,0 +1,12 @@ +{ + "name": "net_listening", + "summary": "Determines if this client is listening for new network connections", + "params": [], + "result": { + "name": "is listening", + "summary": "true if listening is active or false if listening is not active", + "schema": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/methods/net/peerCount.json b/methods/net/peerCount.json new file mode 100644 index 000000000..33e8027cb --- /dev/null +++ b/methods/net/peerCount.json @@ -0,0 +1,12 @@ +{ + "name": "net_peerCount", + "summary": "Returns the number of peers currently connected to this client", + "params": [], + "result": { + "name": "connected peers", + "summary": "number of connected peers", + "schema": { + "$ref": "../../components/Quantity.json#/integer" + } + } +} \ No newline at end of file diff --git a/methods/net/version.json b/methods/net/version.json new file mode 100644 index 000000000..8f3a91a95 --- /dev/null +++ b/methods/net/version.json @@ -0,0 +1,13 @@ +{ + "name": "net_version", + "summary": "Returns the chain ID associated with the current network", + "params": [], + "result": { + "name": "chain id", + "summary": "chain ID associated with the current network", + "description": "Common chain IDs: '1' - Ethereum mainnet '3' - Ropsten testnet '4' - Rinkeby testnet '42' - Kovan testnet Note: See EIP-155 for a [complete list](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md#list-of-chain-ids) of possible chain IDs.", + "schema": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/methods/web3/clientVersion.json b/methods/web3/clientVersion.json new file mode 100644 index 000000000..62f6d524e --- /dev/null +++ b/methods/web3/clientVersion.json @@ -0,0 +1,11 @@ +{ + "name": "web3_clientVersion", + "summary": "Returns the version of the current client", + "params": [], + "result": { + "name": "client version", + "schema": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/methods/web3/sha3.json b/methods/web3/sha3.json new file mode 100644 index 000000000..f3e06896e --- /dev/null +++ b/methods/web3/sha3.json @@ -0,0 +1,20 @@ +{ + "name": "web3_sha3", + "summary": "Hashes data using the Keccak-256 algorithm", + "params": [ + { + "name": "data to be hashed", + "required": true, + "schema": { + "$ref": "../../components/Data.json#/bytes" + } + } + ], + "result": { + "name": "hashed data", + "summary": "Keccak-256 hash of the given data", + "schema": { + "$ref": "../../components/Data.json#/hash32" + } + } +} \ No newline at end of file diff --git a/openrpc.json b/openrpc.json index 82af2706d..45c285967 100644 --- a/openrpc.json +++ b/openrpc.json @@ -1,1231 +1,149 @@ { - "openrpc": "1.2.4", - "info": { - "title": "Ethereum JSON-RPC Specification", - "description": "A specification of the standard interface for Ethreum clients.", - "license": { - "name": "CC0-1.0", - "url": "https://creativecommons.org/publicdomain/zero/1.0/legalcode" - }, - "version": "0.0.0" - }, - "methods": [ - { - "name": "eth_protocolVersion", - "summary": "Returns the current ethereum protocol version.", - "params": [], - "result": { - "name": "Protocol version", - "schema": { - "title": "version", - "type": "string" - } - } - }, - { - "name": "eth_syncing", - "summary": "Returns an object with data about the sync status or false.", - "params": [], - "result": { - "name": "Syncing status", - "schema": { - "$ref": "#/components/schemas/SyncingStatus" - } - } - }, - { - "name": "eth_coinbase", - "summary": "Returns the client coinbase address.", - "params": [], - "result": { - "name": "Coinbase address", - "schema": { - "$ref": "#/components/schemas/address" - } - } - }, - { - "name": "eth_mining", - "summary": "Returns whether the client is actively mining new blocks.", - "params": [], - "result": { - "name": "Mining status", - "schema": { - "title": "miningStatus", - "type": "boolean" - } - } - }, - { - "name": "eth_hashrate", - "summary": "Returns the number of hashes per second that the node is mining with.", - "params": [], - "result": { - "name": "Mining status", - "schema": { - "title": "Hashrate", - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_gasPrice", - "summary": "Returns the current price per gas in wei.", - "params": [], - "result": { - "name": "Gas price", - "schema": { - "title": "Gas price", - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_accounts", - "summary": "Returns a list of addresses owned by client.", - "params": [], - "result": { - "name": "Accounts", - "schema": { - "title": "Accounts", - "type": "array", - "items": { - "$ref": "#/components/schemas/address" - } - } - } - }, - { - "name": "eth_blockNumber", - "summary": "Returns the number of most recent block.", - "params": [], - "result": { - "name": "Block number", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_getBalance", - "summary": "Returns the balance of the account of given address.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, - { - "name": "Block", - "required": true, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" - } - } - ], - "result": { - "name": "Block number", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_getStorage", - "summary": "Returns the value from a storage position at a given address.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, - { - "name": "Storage slot", - "required": true, - "schema": { - "$ref": "#/components/schemas/uint256" - } - }, - { - "name": "Block", - "required": true, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" - } - } - ], - "result": { - "name": "Value", - "schema": { - "$ref": "#/components/schemas/bytes" - } - } - }, - { - "name": "eth_getTransactionCount", - "summary": "Returns the number of transactions sent from an address.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, - { - "name": "Block", - "required": true, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" - } - } - ], - "result": { - "name": "Transaction count", - "schema": { - "title": "Transaction count", - "type": "array", - "items": { - "$ref": "#/components/schemas/uint" - } - } - } - }, - { - "name": "eth_getBlockTransactionCountByHash", - "summary": "Returns the number of transactions in a block from a block matching the given block hash.", - "params": [ - { - "name": "Block hash", - "schema": { - "$ref": "#/components/schemas/hash32" - } - } - ], - "result": { - "name": "Transaction count", - "schema": { - "title": "Transaction count", - "type": "array", - "items": { - "$ref": "#/components/schemas/uint" - } - } - } - }, - { - "name": "eth_getBlockTransactionCountByNumber", - "summary": "Returns the number of transactions in a block matching the given block number.", - "params": [ - { - "name": "Block number", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Transaction count", - "schema": { - "title": "Transaction count", - "type": "array", - "items": { - "$ref": "#/components/schemas/uint" - } - } - } - }, - { - "name": "eth_getUncleCountByBlockHash", - "summary": "Returns the number of uncles in a block from a block matching the given block hash.", - "params": [ - { - "name": "Block hash", - "schema": { - "$ref": "#/components/schemas/hash32" - } - } - ], - "result": { - "name": "Uncle count", - "schema": { - "title": "Uncle count", - "type": "array", - "items": { - "$ref": "#/components/schemas/uint" - } - } - } - }, - { - "name": "eth_getUncleCountByBlockNumber", - "summary": "Returns the number of transactions in a block matching the given block number.", - "params": [ - { - "name": "Block number", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Uncle count", - "schema": { - "title": "Uncle count", - "type": "array", - "items": { - "$ref": "#/components/schemas/uint" - } - } - } - }, - { - "name": "eth_getCode", - "summary": "Returns code at a given address.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, - { - "name": "Block", - "required": true, - "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" - } - } - ], - "result": { - "name": "Bytecode", - "schema": { - "$ref": "#/components/schemas/bytes" - } - } - }, - { - "name": "eth_sign", - "summary": "Returns an EIP-191 signature over the provided data.", - "params": [ - { - "name": "Address", - "required": true, - "schema": { - "$ref": "#/components/schemas/address" - } - }, - { - "name": "Message", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes" - } - } - ], - "result": { - "name": "Signature", - "schema": { - "$ref": "#/components/schemas/bytes65" - } - } - }, - { - "name": "eth_signTransaction", - "summary": "Returns an RLP encoded transaction signed by the specified account.", - "params": [ - { - "name": "Transaction", - "required": true, - "schema": { - "$ref": "#/components/schemas/TransactionWithSender" - } - } - ], - "result": { - "name": "Encoded transaction", - "schema": { - "$ref": "#/components/schemas/bytes" - } - } - }, - { - "name": "eth_sendTransaction", - "summary": "Signs and submits a transaction.", - "params": [ - { - "name": "Transaction", - "required": true, - "schema": { - "$ref": "#/components/schemas/TransactionWithSender" - } - } - ], - "result": { - "name": "Transaction hash", - "schema": { - "$ref": "#/components/schemas/hash32" - } - } - }, - { - "name": "eth_sendRawTransaction", - "summary": "Submits a raw transaction.", - "params": [ - { - "name": "Transaction", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes" - } - } - ], - "result": { - "name": "Transaction hash", - "schema": { - "$ref": "#/components/schemas/hash32" - } - } - }, - { - "name": "eth_call", - "summary": "Executes a new message call immediately without creating a transaction on the block chain.", - "params": [ - { - "name": "Transaction", - "required": true, - "schema": { - "$ref": "#/components/schemas/TransactionWithSender" - } - } - ], - "result": { - "name": "Return data", - "schema": { - "$ref": "#/components/schemas/bytes" - } - } - }, - { - "name": "eth_estimateGas", - "summary": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.", - "params": [ - { - "name": "Transaction", - "required": true, - "schema": { - "$ref": "#/components/schemas/TransactionWithSender" - } - } - ], - "result": { - "name": "Gas used", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_getBlockByHash", - "summary": "Returns information about a block by hash.", - "params": [ - { - "name": "Block hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/hash32" - } - } - ], - "result": { - "name": "Block information", - "schema": { - "$ref": "#/components/schemas/Block" - } - } - }, - { - "name": "eth_getBlockByNumber", - "summary": "Returns information about a block by number.", - "params": [ - { - "name": "Block number", - "required": true, - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Block information", - "schema": { - "$ref": "#/components/schemas/Block" - } - } - }, - { - "name": "eth_getTransactionByHash", - "summary": "Returns the information about a transaction requested by transaction hash.", - "params": [ - { - "name": "Transaction hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/hash32" - } - } - ], - "result": { - "name": "Transaction information", - "schema": { - "$ref": "#/components/schemas/TransactionInfo" - } - } - }, - { - "name": "eth_getTransactionByBlockHashAndIndex", - "summary": "Returns information about a transaction by block hash and transaction index position.", - "params": [ - { - "name": "Block hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/hash32" - } - }, - { - "name": "Transaction index", - "required": true, - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Transaction information", - "schema": { - "$ref": "#/components/schemas/TransactionInfo" - } - } - }, - { - "name": "eth_getTransactionByBlockNumberAndIndex", - "summary": "Returns information about a transaction by block number and transaction index position.", - "params": [ - { - "name": "Block number", - "required": true, - "schema": { - "$ref": "#/components/schemas/uint" - } - }, - { - "name": "Transaction index", - "required": true, - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Transaction information", - "schema": { - "$ref": "#/components/schemas/TransactionInfo" - } - } - }, - { - "name": "eth_newFilter", - "summary": "Creates a filter object, based on filter options, to notify when the state changes (logs).", - "params": [ - { - "name": "Filter", - "schema": { - "$ref": "#/components/schemas/Filter" - } - } - ], - "result": { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_newBlockFilter", - "summary": "Creates a filter in the node, to notify when a new block arrives.", - "params": [], - "result": { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_newPendingTransactionFilter", - "summary": "Creates a filter in the node, to notify when new pending transactions arrive.", - "params": [], - "result": { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - }, - { - "name": "eth_uninstallFilter", - "summary": "Uninstalls a filter with given id.", - "params": [ - { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Success", - "schema": { - "type": "boolean" - } - } - }, - { - "name": "eth_getFilterChanges", - "summary": "Polling method for a filter, which returns an array of logs which occurred since last poll.", - "params": [ - { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Log objects", - "schema": { - "$ref": "#/components/schemas/FilterResults" - } - } - }, - { - "name": "eth_getFilterLogs", - "summary": "Returns an array of all logs matching filter with given id.", - "params": [ - { - "name": "Filter Identifier", - "schema": { - "$ref": "#/components/schemas/uint" - } - } - ], - "result": { - "name": "Log objects", - "schema": { - "$ref": "#/components/schemas/FilterResults" - } - } - }, - { - "name": "eth_getLogs", - "summary": "Returns an array of all logs matching filter with given id.", - "params": [ - { - "name": "Filter", - "schema": { - "$ref": "#/components/schemas/Filter" - } - } - ], - "result": { - "name": "Log objects", - "schema": { - "$ref": "#/components/schemas/FilterResults" - } - } - }, - { - "name": "eth_getWork", - "summary": "Returns the hash of the current block, the seedHash, and the boundary condition to be met (“target”).", - "params": [], - "result": { - "name": "Current work", - "schema": { - "type": "array", - "items": [ - { - "title": "PoW hash", - "$ref": "#/components/schemas/bytes32" - }, - { - "title": "seed hash", - "$ref": "#/components/schemas/bytes32" - }, - { - "title": "difficulty", - "$ref": "#/components/schemas/bytes32" - } - ] - } - } - }, - { - "name": "eth_submitWork", - "summary": "Used for submitting a proof-of-work solution.", - "params": [ - { - "name": "PoW hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" - } - }, - { - "name": "seed hash", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" - } - }, - { - "name": "difficulty", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" - } - } - ], - "result": { - "name": "Success", - "schema": { - "type": "boolean" - } - } - }, - { - "name": "eth_submitHashrate", - "summary": "Used for submitting mining hashrate.", - "params": [ - { - "name": "Hashrate", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" - } - }, - { - "name": "ID", - "required": true, - "schema": { - "$ref": "#/components/schemas/bytes32" - } - } - ], - "result": { - "name": "Success", - "schema": { - "type": "boolean" - } - } - } - ], - "components": { - "schemas": { - "address": { - "title": "hex encoded address", - "type": "string", - "pattern": "^0x[0-9a-f]{40}$" - }, - "addresses": { - "title": "hex encoded address", - "type": "array", - "items": { "$ref": "#/components/schemas/address" } - }, - "byte": { - "title": "hex encoded byte", - "type": "string", - "pattern": "^0x([a-fA-F0-9]?){1,2}$" - }, - "bytes": { - "title": "hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]+$" - }, - "bytes32": { - "title": "32 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - "bytes256": { - "title": "256 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{512}$" - }, - "bytes65": { - "title": "65 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{512}$" - }, - "uint": { - "title": "hex encoded unsigned integer", - "type": "string", - "pattern": "^0x[0-9a-f]+$" - }, - "uint256": { - "title": "hex encoded unsigned integer", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - "hash32": { - "title": "32 byte hex value", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - "BlockTag": { - "title": "Block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - }, - "BlockNumberOrTag": { - "title": "Block number or tag", - "oneOf": [ - { - "title": "Block number", - "$ref": "#/components/schemas/uint" - }, - { - "title": "Block tag", - "$ref": "#/components/schemas/BlockTag" - } - ] - }, - "SyncingStatus": { - "title": "Syncing status", - "oneOf": [ - { - "title": "Syncing progress", - "type": "object", - "properties": { - "startingBlock": { - "title": "Starting block", - "$ref": "#/components/schemas/uint" - }, - "currentBlock": { - "title": "Current block", - "$ref": "#/components/schemas/uint" - }, - "highestBlock": { - "title": "Highest block", - "$ref": "#/components/schemas/uint" - } - } - }, - { - "title": "Not syncing", - "description": "Should always return false if not syncing.", - "type": "boolean" - } - ] - }, - "FilterResults": { - "title": "Filter results", - "oneOf": [ - { - "title": "new block hashes", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } - }, - { - "title": "new transaction hashes", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } - }, - { - "title": "new logs", - "type": "array", - "items": { - "$ref": "#/components/schemas/Log" - } - } - ] - }, - "Header": { - "title": "Header object", - "type": "object", - "required": [ - "parentHash", - "sha3Uncles", - "miner", - "stateRoot", - "transactionsRoot", - "receiptRoot", - "bloom", - "totalDifficulty", - "number", - "gasLimit", - "gasUsed", - "timestamp", - "extraData", - "mixHash", - "nonce" - ], - "properties": { - "parentHash": { - "title": "Parent block hash", - "$ref": "#/components/schemas/hash32" - }, - "sha3Uncles": { - "title": "Ommers hash", - "$ref": "#/components/schemas/hash32" - }, - "miner": { - "title": "Coinbase", - "$ref": "#/components/schemas/address" - }, - "stateRoot": { - "title": "State root", - "$ref": "#/components/schemas/hash32" - }, - "transactionsRoot": { - "title": "Transactions root", - "$ref": "#/components/schemas/hash32" - }, - "receiptRoot": { - "title": "Receipts root", - "$ref": "#/components/schemas/hash32" - }, - "bloom": { - "title": "Bloom filter", - "$ref": "#/components/schemas/bytes256" - }, - "totalDifficulty": { - "title": "Difficulty", - "$ref": "#/components/schemas/bytes" - }, - "number": { - "title": "Number", - "$ref": "#/components/schemas/uint" - }, - "gasLimit": { - "title": "Gas limit", - "$ref": "#/components/schemas/uint" - }, - "gasUsed": { - "title": "Gas used", - "$ref": "#/components/schemas/uint" - }, - "timestamp": { - "title": "Timestamp", - "$ref": "#/components/schemas/uint" - }, - "extraData": { - "title": "Extra data", - "$ref": "#/components/schemas/bytes" - }, - "mixHash": { - "title": "Mix hash", - "$ref": "#/components/schemas/hash32" - }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/bytes" - }, - "baseFeePerGas": { - "title": "Base fee per gas", - "$ref": "#/components/schemas/uint" - } - } - }, - "Block": { - "title": "Block object", - "type": "object", - "required": ["transactions", "uncles"], - "allOf": [ - { "$ref": "#/components/schemas/Header" }, - { - "title": "transactions", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } - }, - { - "title": "uncles", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } - } - ] - }, - "AccessListEntry": { - "title": "Access list entry", - "type": "object", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "storageKeys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } - } - } - }, - "AccessList": { - "title": "Access list", - "type": "object", - "items": { - "$ref": "#/components/schemas/AccessListEntry" - } - }, - "SignedTransaction": { - "title": "Signed transaction object", - "type": "object", - "allOf": [ - { "$ref": "#/components/schemas/Transaction" }, - { - "required": ["v", "r", "s"], - "properties": { - "v": { - "title": "v", - "$ref": "#/components/schemas/uint" - }, - "r": { - "title": "r", - "$ref": "#/components/schemas/uint" - }, - "s": { - "title": "s", - "$ref": "#/components/schemas/uint" - } - } - } - ] - }, - "TransactionWithSender": { - "title": "Transaction object with sender", - "type": "object", - "allOf": [ - { - "required": ["from"], - "properties": { - "from": { - "title": "from", - "$ref": "#/components/schemas/address" - } - } - }, - { "$ref": "#/components/schemas/Transaction" } - ] - }, - "Transaction": { - "type": "object", - "title": "Transaction object", - "allOf": [ - { - "required": ["nonce", "gas", "value", "input"], - "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" - }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" - }, - "to": { - "title": "to address", - "$ref": "#/components/schemas/address" - }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" - }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" - }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" - }, - "accessList": { - "title": "accessList", - "description": "EIP-2930 access list", - "$ref": "#/components/schemas/AccessList" - } - } - }, - { - "oneOf": [ - { - "title": "EIP-1559 fee market parameters", - "type": "object", - "description": "EIP-1559 dynamic fee transactions have two fee parameters.", - "required": [ - "maxFeePerGas", - "maxPriorityFeePerGas" - ], - "properties": { - "maxPriorityFeePerGas": { - "title": "max priority fee per gas", - "description": "Maximum fee per gas the sender is willing to pay to miners in wei", - "$ref": "#/components/schemas/uint" - }, - "maxFeePerGas": { - "title": "max fee per gas", - "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", - "$ref": "#/components/schemas/uint" - } - } - }, - { - "title": "Legacy fee market parameters", - "type": "object", - "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": ["gasPrice"], - "properties": { - "gasPrice": { - "title": "gas price", - "description": "The gas price willing to be paid by the sender in wei", - "$ref": "#/components/schemas/uint" - } - } - } - ] - } - ] - }, - "TransactionInfo": { - "type": "object", - "title": "Transaction information", - "allOf": [ - { - "title": "Contextual information", - "required": ["blockHash", "blockNumber", "from", "hash", "transactionIndex"], - "properties": { - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" - }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" - }, - "from": { - "title": "from address", - "$ref": "#/components/schemas/address" - }, - "hash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" - }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" - } - } - }, - { "$ref": "#/components/schemas/SignedTransaction"} - ] - }, - "Filter": { - "title": "filter", - "type": "object", - "properties": { - "fromBlock": { - "title": "from block", - "$ref": "#/components/schemas/uint" - }, - "toBlock": { - "title": "to block", - "$ref": "#/components/schemas/uint" - }, - "address": { - "title": "Address(es)", - "oneOf": [ - { - "title": "Address", - "$ref": "#/components/schemas/address" - }, - { - "title": "Addresses", - "$ref": "#/components/schemas/addresses" - } - ] - }, - "topics": { - "title": "Topics", - "$ref": "#/components/schemas/Topics" - } - } - }, - "Topic": { - "title": "Topic", - "$ref": "#/components/schemas/uint256" - }, - "Topics": { - "title": "Topics", - "type": "array", - "items": { - "$ref": "#/components/schemas/Topic" - } - }, - "Log": { - "title": "log", - "type": "object", - "properties": { - "removed": { - "title": "removed", - "type": "boolean" - }, - "logIndex": { - "title": "log index", - "$ref": "#/components/schemas/uint" - }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" - }, - "transactionHash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" - }, - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" - }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" - }, - "address": { - "title": "address", - "$ref": "#/components/schemas/address" - }, - "data": { - "title": "data", - "$ref": "#/components/schemas/bytes" - }, - "topics": { - "title": "topics", - "$ref": "#/components/schemas/Topics" - } - } - } - } - } + "openrpc": "1.2.4", + "info": { + "title": "Ethereum JSON-RPC Specification", + "description": "A specification of the standard interface for Ethreum clients.", + "license": { + "name": "CC0-1.0", + "url": "https://creativecommons.org/publicdomain/zero/1.0/legalcode" + }, + "version": "0.0.0" + }, + "methods": [ + { + "$ref": "methods/eth/accounts.json" + }, + { + "$ref": "methods/eth/blockNumber.json" + }, + { + "$ref": "methods/eth/call.json" + }, + { + "$ref": "methods/eth/coinbase.json" + }, + { + "$ref": "methods/eth/estimateGas.json" + }, + { + "$ref": "methods/eth/gasPrice.json" + }, + { + "$ref": "methods/eth/getBalance.json" + }, + { + "$ref": "methods/eth/getBlockByHash.json" + }, + { + "$ref": "methods/eth/getBlockByNumber.json" + }, + { + "$ref": "methods/eth/getBlockTransactionCountByHash.json" + }, + { + "$ref": "methods/eth/getBlockTransactionCountByNumber.json" + }, + { + "$ref": "methods/eth/getCode.json" + }, + { + "$ref": "methods/eth/getFilterChanges.json" + }, + { + "$ref": "methods/eth/getFilterLogs.json" + }, + { + "$ref": "methods/eth/getLogs.json" + }, + { + "$ref": "methods/eth/getStorageAt.json" + }, + { + "$ref": "methods/eth/getTransactionByBlockHashAndIndex.json" + }, + { + "$ref": "methods/eth/getTransactionByBlockNumberAndIndex.json" + }, + { + "$ref": "methods/eth/getTransactionByHash.json" + }, + { + "$ref": "methods/eth/getTransactionCount.json" + }, + { + "$ref": "methods/eth/getTransactionReceipt.json" + }, + { + "$ref": "methods/eth/getUncleByBlockHashAndIndex.json" + }, + { + "$ref": "methods/eth/getUncleByBlockNumberAndIndex.json" + }, + { + "$ref": "methods/eth/getUncleCountByBlockHash.json" + }, + { + "$ref": "methods/eth/getUncleCountByBlockNumber.json" + }, + { + "$ref": "methods/eth/getWork.json" + }, + { + "$ref": "methods/eth/hashRate.json" + }, + { + "$ref": "methods/eth/mining.json" + }, + { + "$ref": "methods/eth/newBlockFilter.json" + }, + { + "$ref": "methods/eth/newFilter.json" + }, + { + "$ref": "methods/eth/newPendingTransactionFilter.json" + }, + { + "$ref": "methods/eth/protocolVersion.json" + }, + { + "$ref": "methods/eth/sendRawTransaction.json" + }, + { + "$ref": "methods/eth/sendTransaction.json" + }, + { + "$ref": "methods/eth/sign.json" + }, + { + "$ref": "methods/eth/signTransaction.json" + }, + { + "$ref": "methods/eth/submitHashrate.json" + }, + { + "$ref": "methods/eth/submitWork.json" + }, + { + "$ref": "methods/eth/syncing.json" + }, + { + "$ref": "methods/eth/uninstallFilter.json" + }, + { + "$ref": "methods/net/listening.json" + }, + { + "$ref": "methods/net/peerCount.json" + }, + { + "$ref": "methods/net/version.json" + }, + { + "$ref": "methods/web3/clientVersion.json" + }, + { + "$ref": "methods/web3/sha3.json" + } + ] } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..d25a262f7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,803 @@ +{ + "name": "json-rpc", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@apidevtools/json-schema-ref-parser": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", + "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", + "requires": { + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "js-yaml": "^3.13.1" + } + }, + "@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" + }, + "@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "@json-schema-spec/json-pointer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz", + "integrity": "sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw==" + }, + "@json-schema-tools/dereferencer": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@json-schema-tools/dereferencer/-/dereferencer-1.5.1.tgz", + "integrity": "sha512-CUpdGpxNTq1ebMkrgVxS03FHfwkGiw63c+GNzqFAqwqsxR0OsR79aqK8h2ybxTIEhdwiaknSnlUgtUIy7FJ+3A==", + "requires": { + "@json-schema-tools/reference-resolver": "^1.2.1", + "@json-schema-tools/traverse": "^1.7.5", + "fast-safe-stringify": "^2.0.7" + } + }, + "@json-schema-tools/meta-schema": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.6.1.tgz", + "integrity": "sha512-GPNTio0DpH/5Cqiol7Q7eLWXd1psvUL9Wje7HUubF/uvTqaEo2W2YF/37bt2umCgitos4bp+iEWoI8IV9A2TmA==" + }, + "@json-schema-tools/reference-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.1.tgz", + "integrity": "sha512-zsiV4GPjLJ6qhWRytSdEWfENy+ycCgE5Uu62IL0E8vSviohOAMIpAuFf15ByNvlj6U8M/pFg0OfPWy7R8+vWWA==", + "requires": { + "@json-schema-spec/json-pointer": "^0.1.2", + "isomorphic-fetch": "^3.0.0" + } + }, + "@json-schema-tools/referencer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@json-schema-tools/referencer/-/referencer-1.0.3.tgz", + "integrity": "sha512-/a9IyzU08B120X70hXPpZKjbQesz6bq3PrnkubbFaQyiB+lBrw2hlBQo1GHAGZCybz2xrnn4VMRMLsF3PT10wg==", + "requires": { + "@json-schema-tools/traverse": "^1.7.3" + } + }, + "@json-schema-tools/titleizer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@json-schema-tools/titleizer/-/titleizer-1.0.4.tgz", + "integrity": "sha512-3VQDsTBxnnJ/9PDJ8sFdYDqzMo2QowNEH2wIa886n3IsGiFpozaCg8+ZHGu43O4iKJKqLh9dCnoxHBeJLb+ntA==", + "requires": { + "@json-schema-tools/traverse": "^1.7.3" + } + }, + "@json-schema-tools/transpiler": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@json-schema-tools/transpiler/-/transpiler-1.7.1.tgz", + "integrity": "sha512-ROkQLBWOjmsJOvbFUiplkwgEZGgBIa6AdVLEec2YhFMbHbWhhgQLMaQbvZ+c2mTmHcIgqTD7MtLMDQGVy2OqtA==", + "requires": { + "@json-schema-tools/referencer": "^1.0.3", + "@json-schema-tools/titleizer": "^1.0.4", + "@json-schema-tools/traverse": "^1.7.7", + "lodash.camelcase": "^4.3.0", + "lodash.deburr": "^4.1.0", + "lodash.trim": "^4.5.1" + } + }, + "@json-schema-tools/traverse": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/@json-schema-tools/traverse/-/traverse-1.7.7.tgz", + "integrity": "sha512-ch/pPoOEIeKe1PKbfuLEIM8MAdTiR+fr9BYk6VTlIHrya5f5d8shJg6h/oQgD3K/ftjU/RYBGGalw9Pz4pCXew==" + }, + "@open-rpc/generator": { + "version": "1.18.12", + "resolved": "https://registry.npmjs.org/@open-rpc/generator/-/generator-1.18.12.tgz", + "integrity": "sha512-wJazDSIlgNk+SAjzbxyCSAVQdsQ4YNDbTf/2Lnt7QdYNJf+rGpGyzL3E/1mwTX4k7/yE5yU0bauo0nk4U512fA==", + "requires": { + "@iarna/toml": "^2.2.5", + "@open-rpc/typings": "^1.11.3", + "commander": "^7.2.0", + "fs-extra": "^9.1.0", + "inquirer": "^8.0.0", + "lodash": "^4.17.21" + } + }, + "@open-rpc/meta-schema": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/@open-rpc/meta-schema/-/meta-schema-1.14.2.tgz", + "integrity": "sha512-vD4Nbkrb7wYFRcSQf+j228LwOy1C6/KKpy5NADlpMElGrAWPRxhTa2yTi6xG+x88OHzg2+cydQ0GAD6o40KUcg==" + }, + "@open-rpc/schema-utils-js": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-1.14.3.tgz", + "integrity": "sha512-NSdeCpf7l2eNH28fshCHtRAgHUU56ugiHk09Utrq3jBhSP4VBhbna2ieFxFSDg9jgTeb9+XlApphpCoSzT4Kpg==", + "requires": { + "@json-schema-tools/dereferencer": "^1.4.0", + "@json-schema-tools/meta-schema": "^1.5.10", + "@json-schema-tools/reference-resolver": "^1.1.1", + "@open-rpc/meta-schema": "^1.14.0", + "ajv": "^6.10.0", + "detect-node": "^2.0.4", + "fast-safe-stringify": "^2.0.7", + "fs-extra": "^9.0.0", + "is-url": "^1.2.4", + "isomorphic-fetch": "^3.0.0" + } + }, + "@open-rpc/typings": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@open-rpc/typings/-/typings-1.11.3.tgz", + "integrity": "sha512-40VwBlQg8kFyUutyRRgglt5DUrI3oVQDrMzmRQuZrMWybc1LbFB1mQmuet1fedr4GulzEGi3zjUi02rzsAvvCw==", + "requires": { + "@json-schema-tools/titleizer": "^1.0.4", + "@json-schema-tools/transpiler": "^1.6.0", + "@open-rpc/schema-utils-js": "^1.14.0", + "commander": "^6.0.0", + "fs-extra": "^9.0.1" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + } + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==" + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "requires": { + "globule": "~0.1.0" + } + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + } + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" + } + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.0.tgz", + "integrity": "sha512-1nKYPoalt1vMBfCMtpomsUc32wmOoWXAoq3kM/5iTfxyQ2f/BxjixQpC+mbZ7BI0JUXHED4/XPXekDVtJNpXYw==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.3.0", + "run-async": "^2.4.0", + "rxjs": "^6.6.6", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" + }, + "lodash.trim": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", + "integrity": "sha1-NkJefukL5KpeJ7zruFt9EepHqlc=" + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ora": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz", + "integrity": "sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "verbalize": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/verbalize/-/verbalize-0.1.2.tgz", + "integrity": "sha1-Fl/aRkAzFUj46ZCx1+FDletyAgc=", + "requires": { + "chalk": "~0.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "requires": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" + } + } + }, + "watch-cli": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/watch-cli/-/watch-cli-0.2.3.tgz", + "integrity": "sha512-+g6n5J+jimY8hxcoHQaePPNnjmRux0nCN9BztkChx9mOas61rou3nXxTireuOMSPz7sIM7/vk6vG1f85h6Ob2A==", + "requires": { + "gaze": "^0.5.1", + "lodash": "^3.5.0", + "minimist": "^1.1.1", + "supports-color": "^4.0.0", + "verbalize": "^0.1.2" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "^2.0.0" + } + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..0ba2dea95 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "json-rpc", + "version": "1.0.0", + "description": "ethereum foundation json rpc specification", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "node ./build.js && prettier --write build/openrpc.json", + "watch": "watch -p '**/!(__openrpc__)*.json' -c 'npm run build && npx prettier --write build/__openrpc__.json'" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^9.0.7", + "@open-rpc/generator": "^1.18.12", + "watch-cli": "^0.2.3" + } +} diff --git a/test.txt b/test.txt deleted file mode 100644 index da32bd3f8..000000000 --- a/test.txt +++ /dev/null @@ -1,13 +0,0 @@ -{ "eth_blockNumber": { "$ref": "./methods/eth/blockNumber.json" }}, -{ "eth_getBlockByHash": { "$ref": "./methods/eth/getBlockByHash.json" }}, -{ "eth_call": { "$ref": "./methods/eth/call.json" }}, -{ "eth_getBlockByNumber": { "$ref": "./methods/eth/getBlockByNumber.json" }}, -{ "eth_chainId": { "$ref": "./methods/eth/chainId.json" }}, -{ "eth_getBlockTransactionCountByHash": { "$ref": "./methods/eth/getBlockTransactionCountByHash.json" }}, -{ "eth_coinbase": { "$ref": "./methods/eth/coinbase.json" }}, -{ "eth_getBlockTransactionCountByNumber": { "$ref": "./methods/eth/getBlockTransactionCountByNumber.json" }}, -{ "eth_estimateGas": { "$ref": "./methods/eth/estimateGas.json" }}, -{ "eth_getCode": { "$ref": "./methods/eth/getCode.json" }}, -{ "eth_gasPrice": { "$ref": "./methods/eth/gasPrice.json" }}, -{ "eth_getFilterChanges": { "$ref": "./methods/eth/getFilterChanges.json" }}, -{ "eth_getBalance": { "$ref": "./methods/eth/getBalance.json" }}, \ No newline at end of file From 84511e917037f20079d581ebb4ce6ce5441dfa06 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Tue, 6 Jul 2021 10:48:07 -0500 Subject: [PATCH 03/21] Update components/Address.json Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com> --- components/Address.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/Address.json b/components/Address.json index 01bf186a6..413cb1a0e 100644 --- a/components/Address.json +++ b/components/Address.json @@ -1,6 +1,6 @@ { "Address": { - "name": "address", + "name": "hex encoded address", "schema": { "$ref": "./Address.json#/address" } @@ -50,4 +50,4 @@ "type": "string", "pattern": "^0x[0-9a-f]{40}$" } -} \ No newline at end of file +} From 14db1ef45f12edaa0cf73a0cbb5ddf71fe9f5e20 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Tue, 6 Jul 2021 10:54:51 -0500 Subject: [PATCH 04/21] Update package.json Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0ba2dea95..29551b9e6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "watch": "watch -p '**/!(__openrpc__)*.json' -c 'npm run build && npx prettier --write build/__openrpc__.json'" }, "author": "", - "license": "ISC", + "license": "CC0", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.7", "@open-rpc/generator": "^1.18.12", From a322cfa346eae33df60c1eac8952b54131d5cf32 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Mon, 12 Jul 2021 18:54:04 -0500 Subject: [PATCH 05/21] update the compiled --- build/openrpc.json | 189 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 153 insertions(+), 36 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index 64d5772a6..a42a75a54 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -53,7 +53,9 @@ "type": "object", "allOf": [ { - "required": ["from"], + "required": [ + "from" + ], "properties": { "from": { "title": "from", @@ -68,7 +70,12 @@ "type": "object", "allOf": [ { - "required": ["nonce", "gas", "value", "input"], + "required": [ + "nonce", + "gas", + "value", + "input" + ], "properties": { "type": { "title": "type", @@ -135,7 +142,10 @@ "name": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", - "required": ["maxFeePerGas", "maxPriorityFeePerGas"], + "required": [ + "maxFeePerGas", + "maxPriorityFeePerGas" + ], "properties": { "maxPriorityFeePerGas": { "title": "max priority fee per gas", @@ -155,7 +165,9 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": ["gasPrice"], + "required": [ + "gasPrice" + ], "properties": { "gasPrice": { "title": "gas price", @@ -207,7 +219,9 @@ "type": "object", "allOf": [ { - "required": ["from"], + "required": [ + "from" + ], "properties": { "from": { "title": "from", @@ -222,7 +236,12 @@ "type": "object", "allOf": [ { - "required": ["nonce", "gas", "value", "input"], + "required": [ + "nonce", + "gas", + "value", + "input" + ], "properties": { "type": { "title": "type", @@ -289,7 +308,10 @@ "name": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", - "required": ["maxFeePerGas", "maxPriorityFeePerGas"], + "required": [ + "maxFeePerGas", + "maxPriorityFeePerGas" + ], "properties": { "maxPriorityFeePerGas": { "title": "max priority fee per gas", @@ -309,7 +331,9 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": ["gasPrice"], + "required": [ + "gasPrice" + ], "properties": { "gasPrice": { "title": "gas price", @@ -375,7 +399,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] } @@ -409,7 +437,10 @@ "schema": { "title": "block object", "type": "object", - "required": ["transactions", "uncles"], + "required": [ + "transactions", + "uncles" + ], "allOf": [ { "title": "header object", @@ -587,7 +618,10 @@ "schema": { "title": "block object", "type": "object", - "required": ["transactions", "uncles"], + "required": [ + "transactions", + "uncles" + ], "allOf": [ { "title": "header object", @@ -829,7 +863,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] } @@ -891,7 +929,10 @@ "title": "log object", "type": "object", "properties": { - "removed": { "title": "removed", "type": "boolean" }, + "removed": { + "title": "removed", + "type": "boolean" + }, "logIndex": { "title": "log index", "type": "string", @@ -972,7 +1013,10 @@ "title": "log object", "type": "object", "properties": { - "removed": { "title": "removed", "type": "boolean" }, + "removed": { + "title": "removed", + "type": "boolean" + }, "logIndex": { "title": "log index", "type": "string", @@ -1045,7 +1089,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] }, @@ -1061,7 +1109,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] }, @@ -1109,7 +1161,10 @@ "title": "log object", "type": "object", "properties": { - "removed": { "title": "removed", "type": "boolean" }, + "removed": { + "title": "removed", + "type": "boolean" + }, "logIndex": { "title": "log index", "type": "string", @@ -1196,7 +1251,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] }, { "title": "block hash", @@ -1277,7 +1336,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] } @@ -1375,7 +1438,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] }, { "title": "block hash", @@ -1579,7 +1646,12 @@ "type": "object", "allOf": [ { - "required": ["nonce", "gas", "value", "input"], + "required": [ + "nonce", + "gas", + "value", + "input" + ], "properties": { "type": { "title": "type", @@ -1669,7 +1741,9 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": ["gasPrice"], + "required": [ + "gasPrice" + ], "properties": { "gasPrice": { "title": "gas price", @@ -1713,7 +1787,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] } @@ -1853,7 +1931,12 @@ "type": "object", "allOf": [ { - "required": ["nonce", "gas", "value", "input"], + "required": [ + "nonce", + "gas", + "value", + "input" + ], "properties": { "type": { "title": "type", @@ -1943,7 +2026,9 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": ["gasPrice"], + "required": [ + "gasPrice" + ], "properties": { "gasPrice": { "title": "gas price", @@ -2010,7 +2095,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] } @@ -2078,7 +2167,9 @@ "result": { "name": "is mining", "summary": "true if this client is mining or false if it is not mining", - "schema": { "type": "boolean" } + "schema": { + "type": "boolean" + } } }, { @@ -2118,7 +2209,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] }, @@ -2134,7 +2229,11 @@ { "title": "block tag", "type": "string", - "enum": ["earliest", "latest", "pending"] + "enum": [ + "earliest", + "latest", + "pending" + ] } ] }, @@ -2301,7 +2400,11 @@ "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, - { "title": "zero hash", "type": "string", "pattern": "^0x$" } + { + "title": "zero hash", + "type": "string", + "pattern": "^0x$" + } ] } } @@ -2433,7 +2536,10 @@ "result": { "name": "status", "summary": "true if the operation was successful, false if it was not", - "schema": { "title": "success", "type": "boolean" } + "schema": { + "title": "success", + "type": "boolean" + } } }, { @@ -2473,7 +2579,9 @@ "result": { "name": "is solution valid", "summary": "true if the solution is valid, false otherwise", - "schema": { "type": "boolean" } + "schema": { + "type": "boolean" + } } }, { @@ -2551,7 +2659,9 @@ "result": { "name": "is listening", "summary": "true if listening is active or false if listening is not active", - "schema": { "type": "boolean" } + "schema": { + "type": "boolean" + } } }, { @@ -2576,14 +2686,21 @@ "name": "chain id", "summary": "chain ID associated with the current network", "description": "Common chain IDs: '1' - Ethereum mainnet '3' - Ropsten testnet '4' - Rinkeby testnet '42' - Kovan testnet Note: See EIP-155 for a [complete list](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md#list-of-chain-ids) of possible chain IDs.", - "schema": { "type": "string" } + "schema": { + "type": "string" + } } }, { "name": "web3_clientVersion", "summary": "Returns the version of the current client", "params": [], - "result": { "name": "client version", "schema": { "type": "string" } } + "result": { + "name": "client version", + "schema": { + "type": "string" + } + } }, { "name": "web3_sha3", @@ -2610,4 +2727,4 @@ } } ] -} +} \ No newline at end of file From c004715b873b87535c3aff3853624a73269b5887 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 00:29:58 -0500 Subject: [PATCH 06/21] address comments and prettier run --- build/openrpc.json | 140 ++++++------------------------- components/AccessList.json | 2 +- components/Address.json | 2 +- components/Block.json | 13 +-- components/Data.json | 2 +- components/EIPs/1559.json | 4 +- components/Filter.json | 10 +-- components/Quantity.json | 10 +-- components/Syncing.json | 5 +- components/Transaction.json | 2 +- components/Uncle.json | 16 ++-- methods/eth/accounts.json | 2 +- methods/eth/sendTransaction.json | 2 +- methods/eth/sign.json | 2 +- methods/eth/signTransaction.json | 2 +- methods/net/listening.json | 2 +- methods/net/peerCount.json | 2 +- methods/net/version.json | 2 +- methods/web3/clientVersion.json | 2 +- methods/web3/sha3.json | 2 +- 20 files changed, 65 insertions(+), 159 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index a42a75a54..5d905fa39 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -53,9 +53,7 @@ "type": "object", "allOf": [ { - "required": [ - "from" - ], + "required": ["from"], "properties": { "from": { "title": "from", @@ -70,12 +68,7 @@ "type": "object", "allOf": [ { - "required": [ - "nonce", - "gas", - "value", - "input" - ], + "required": ["nonce", "gas", "value", "input"], "properties": { "type": { "title": "type", @@ -142,10 +135,7 @@ "name": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", - "required": [ - "maxFeePerGas", - "maxPriorityFeePerGas" - ], + "required": ["maxFeePerGas", "maxPriorityFeePerGas"], "properties": { "maxPriorityFeePerGas": { "title": "max priority fee per gas", @@ -165,9 +155,7 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": [ - "gasPrice" - ], + "required": ["gasPrice"], "properties": { "gasPrice": { "title": "gas price", @@ -219,9 +207,7 @@ "type": "object", "allOf": [ { - "required": [ - "from" - ], + "required": ["from"], "properties": { "from": { "title": "from", @@ -236,12 +222,7 @@ "type": "object", "allOf": [ { - "required": [ - "nonce", - "gas", - "value", - "input" - ], + "required": ["nonce", "gas", "value", "input"], "properties": { "type": { "title": "type", @@ -308,10 +289,7 @@ "name": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", - "required": [ - "maxFeePerGas", - "maxPriorityFeePerGas" - ], + "required": ["maxFeePerGas", "maxPriorityFeePerGas"], "properties": { "maxPriorityFeePerGas": { "title": "max priority fee per gas", @@ -331,9 +309,7 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": [ - "gasPrice" - ], + "required": ["gasPrice"], "properties": { "gasPrice": { "title": "gas price", @@ -399,11 +375,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] } @@ -437,10 +409,7 @@ "schema": { "title": "block object", "type": "object", - "required": [ - "transactions", - "uncles" - ], + "required": ["transactions", "uncles"], "allOf": [ { "title": "header object", @@ -618,10 +587,7 @@ "schema": { "title": "block object", "type": "object", - "required": [ - "transactions", - "uncles" - ], + "required": ["transactions", "uncles"], "allOf": [ { "title": "header object", @@ -863,11 +829,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] } @@ -1089,11 +1051,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] }, @@ -1109,11 +1067,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] }, @@ -1251,11 +1205,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] }, { "title": "block hash", @@ -1336,11 +1286,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] } @@ -1438,11 +1384,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] }, { "title": "block hash", @@ -1646,12 +1588,7 @@ "type": "object", "allOf": [ { - "required": [ - "nonce", - "gas", - "value", - "input" - ], + "required": ["nonce", "gas", "value", "input"], "properties": { "type": { "title": "type", @@ -1741,9 +1678,7 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": [ - "gasPrice" - ], + "required": ["gasPrice"], "properties": { "gasPrice": { "title": "gas price", @@ -1787,11 +1722,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] } @@ -1931,12 +1862,7 @@ "type": "object", "allOf": [ { - "required": [ - "nonce", - "gas", - "value", - "input" - ], + "required": ["nonce", "gas", "value", "input"], "properties": { "type": { "title": "type", @@ -2026,9 +1952,7 @@ "name": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", - "required": [ - "gasPrice" - ], + "required": ["gasPrice"], "properties": { "gasPrice": { "title": "gas price", @@ -2095,11 +2019,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] } @@ -2209,11 +2129,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] }, @@ -2229,11 +2145,7 @@ { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } ] }, @@ -2727,4 +2639,4 @@ } } ] -} \ No newline at end of file +} diff --git a/components/AccessList.json b/components/AccessList.json index 58f785c33..57eb13429 100644 --- a/components/AccessList.json +++ b/components/AccessList.json @@ -14,7 +14,7 @@ } }, "entry": { - "name": "access list entry", + "title": "access list entry", "type": "object", "properties": { "address": { diff --git a/components/Address.json b/components/Address.json index 413cb1a0e..01170e0a8 100644 --- a/components/Address.json +++ b/components/Address.json @@ -7,7 +7,7 @@ }, "Addresses": { "name": "addresses", - "schema": {"$ref": "./Address.json#/addresses"} + "schema": { "$ref": "./Address.json#/addresses" } }, "orNull": { "name": "address or null", diff --git a/components/Block.json b/components/Block.json index 0f7786d62..9181b2385 100644 --- a/components/Block.json +++ b/components/Block.json @@ -64,10 +64,7 @@ "blockObject": { "title": "block object", "type": "object", - "required": [ - "transactions", - "uncles" - ], + "required": ["transactions", "uncles"], "allOf": [ { "$ref": "./Header.json#/headerObject" @@ -184,10 +181,6 @@ "tag": { "title": "block tag", "type": "string", - "enum": [ - "earliest", - "latest", - "pending" - ] + "enum": ["earliest", "latest", "pending"] } -} \ No newline at end of file +} diff --git a/components/Data.json b/components/Data.json index 46964f76c..088188d9a 100644 --- a/components/Data.json +++ b/components/Data.json @@ -62,4 +62,4 @@ "type": "string", "pattern": "^0x[0-9a-f]{64}$" } -} \ No newline at end of file +} diff --git a/components/EIPs/1559.json b/components/EIPs/1559.json index 49c551e2c..6e9912a89 100644 --- a/components/EIPs/1559.json +++ b/components/EIPs/1559.json @@ -1,6 +1,6 @@ { "parameters": { - "name": "EIP-1559 fee market parameters", + "title": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", "required": ["maxFeePerGas", "maxPriorityFeePerGas"], @@ -14,7 +14,7 @@ } }, "legacyParameters": { - "name": "Legacy fee market parameters", + "title": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", "required": ["gasPrice"], diff --git a/components/Filter.json b/components/Filter.json index c8462018a..0ca940b70 100644 --- a/components/Filter.json +++ b/components/Filter.json @@ -30,7 +30,7 @@ } }, "identifier": { - "name": "Filter Identifier", + "title": "Filter Identifier", "summary": "ID of the filter", "$ref": "./Quantity.json#/integer" }, @@ -59,21 +59,21 @@ ] }, "blockHashes": { - "name": "new block hashes", + "title": "new block hashes", "type": "array", "items": { "$ref": "./Data.json#/hash32" } }, "transactionHashes": { - "name": "new transaction hashes", + "title": "new transaction hashes", "type": "array", "items": { "$ref": "./Data.json#/hash32" } }, "newLogs": { - "name": "new filter logs", + "title": "new filter logs", "$ref": "./Logs.json#/logObjects" }, "filterObject": { @@ -117,4 +117,4 @@ "topics": { "$ref": "./Topic.json#/topics" } -} \ No newline at end of file +} diff --git a/components/Quantity.json b/components/Quantity.json index e4dca2163..8647e6a4c 100644 --- a/components/Quantity.json +++ b/components/Quantity.json @@ -3,17 +3,15 @@ "name": "integer", "schema": { "$ref": "./Quantity.json#/integer" - } + } }, "integer": { "$ref": "./Quantity.json#/uint256" }, "arrayOfUint256": { - "title": "array of hex encoded unsigned integers", - "type": "array", - "items": [ - {"$ref": "./Quantity.json#/uint256"} - ] + "title": "array of hex encoded unsigned integers", + "type": "array", + "items": [{ "$ref": "./Quantity.json#/uint256" }] }, "uint": { "title": "hex encoded unsigned integer", diff --git a/components/Syncing.json b/components/Syncing.json index ce44fb105..1c62bf7e5 100644 --- a/components/Syncing.json +++ b/components/Syncing.json @@ -56,6 +56,9 @@ "falseOrProgressObject": { "title": "false or syncing progress object", "summary": "false if this client is not syncing with the network, otherwise a syncing progres object", - "oneOf": [{ "$ref": "./Syncing.json#/notSyncing" }, { "$ref": "./Syncing.json#/progressObject" }] + "oneOf": [ + { "$ref": "./Syncing.json#/notSyncing" }, + { "$ref": "./Syncing.json#/progressObject" } + ] } } diff --git a/components/Transaction.json b/components/Transaction.json index d87b07850..87fe5e56f 100644 --- a/components/Transaction.json +++ b/components/Transaction.json @@ -234,7 +234,7 @@ "schema": { "$ref": "./Transaction.json#/hashOrNull" } - }, + }, "HashOrZeroHash": { "name": "hash or zero hash", "schema": { diff --git a/components/Uncle.json b/components/Uncle.json index 3274e4e05..39add211b 100644 --- a/components/Uncle.json +++ b/components/Uncle.json @@ -77,14 +77,14 @@ "uncleObjectOrNull": { "title": "uncle or null", "summary": "null if no block or uncle is found, otherwise an uncle object", - "oneOf": [ - { - "$ref": "./Uncle.json#/uncleObject" - }, - { - "$ref": "./Null.json#/null" - } - ] + "oneOf": [ + { + "$ref": "./Uncle.json#/uncleObject" + }, + { + "$ref": "./Null.json#/null" + } + ] }, "Index": { "name": "uncle index", diff --git a/methods/eth/accounts.json b/methods/eth/accounts.json index 978413129..adfdff053 100644 --- a/methods/eth/accounts.json +++ b/methods/eth/accounts.json @@ -8,4 +8,4 @@ "$ref": "../../components/Address.json#/addresses" } } -} \ No newline at end of file +} diff --git a/methods/eth/sendTransaction.json b/methods/eth/sendTransaction.json index de8807be7..7bddd73ea 100644 --- a/methods/eth/sendTransaction.json +++ b/methods/eth/sendTransaction.json @@ -11,4 +11,4 @@ "summary": "transaction hash, or the zero hash if the transaction is not yet available", "$ref": "../../components/Transaction.json#/HashOrZeroHash" } -} \ No newline at end of file +} diff --git a/methods/eth/sign.json b/methods/eth/sign.json index 6e977ce65..09b1adc63 100644 --- a/methods/eth/sign.json +++ b/methods/eth/sign.json @@ -19,4 +19,4 @@ "summary": "signature hash of the provided data", "$ref": "../../components/Data.json#/Hash" } -} \ No newline at end of file +} diff --git a/methods/eth/signTransaction.json b/methods/eth/signTransaction.json index e8f355936..e60f3bfd6 100644 --- a/methods/eth/signTransaction.json +++ b/methods/eth/signTransaction.json @@ -12,4 +12,4 @@ "summary": "signature hash of the transaction object", "$ref": "../../components/Data.json#/Hash" } -} \ No newline at end of file +} diff --git a/methods/net/listening.json b/methods/net/listening.json index f4a1fef98..a68df99e2 100644 --- a/methods/net/listening.json +++ b/methods/net/listening.json @@ -9,4 +9,4 @@ "type": "boolean" } } -} \ No newline at end of file +} diff --git a/methods/net/peerCount.json b/methods/net/peerCount.json index 33e8027cb..37d67bddc 100644 --- a/methods/net/peerCount.json +++ b/methods/net/peerCount.json @@ -9,4 +9,4 @@ "$ref": "../../components/Quantity.json#/integer" } } -} \ No newline at end of file +} diff --git a/methods/net/version.json b/methods/net/version.json index 8f3a91a95..b04769c6c 100644 --- a/methods/net/version.json +++ b/methods/net/version.json @@ -10,4 +10,4 @@ "type": "string" } } -} \ No newline at end of file +} diff --git a/methods/web3/clientVersion.json b/methods/web3/clientVersion.json index 62f6d524e..dfd3f4854 100644 --- a/methods/web3/clientVersion.json +++ b/methods/web3/clientVersion.json @@ -8,4 +8,4 @@ "type": "string" } } -} \ No newline at end of file +} diff --git a/methods/web3/sha3.json b/methods/web3/sha3.json index f3e06896e..f884a76be 100644 --- a/methods/web3/sha3.json +++ b/methods/web3/sha3.json @@ -17,4 +17,4 @@ "$ref": "../../components/Data.json#/hash32" } } -} \ No newline at end of file +} From 2dedb506e058535d0d81f01429ee576d9cb0c42e Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 01:00:35 -0500 Subject: [PATCH 07/21] clean up address --- build/openrpc.json | 122 ++++++++++----------------- components/Address.json | 34 -------- methods/eth/coinbase.json | 4 +- methods/eth/getBalance.json | 5 +- methods/eth/getCode.json | 5 +- methods/eth/getStorageAt.json | 4 +- methods/eth/getTransactionCount.json | 4 +- methods/eth/sign.json | 5 +- 8 files changed, 64 insertions(+), 119 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index 5d905fa39..d96b6d993 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -107,7 +107,7 @@ "title": "accessList", "type": "array", "items": { - "name": "access list entry", + "title": "access list entry", "type": "object", "properties": { "address": { @@ -132,7 +132,7 @@ { "oneOf": [ { - "name": "EIP-1559 fee market parameters", + "title": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", "required": ["maxFeePerGas", "maxPriorityFeePerGas"], @@ -152,7 +152,7 @@ } }, { - "name": "Legacy fee market parameters", + "title": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", "required": ["gasPrice"], @@ -261,7 +261,7 @@ "title": "accessList", "type": "array", "items": { - "name": "access list entry", + "title": "access list entry", "type": "object", "properties": { "address": { @@ -286,7 +286,7 @@ { "oneOf": [ { - "name": "EIP-1559 fee market parameters", + "title": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", "required": ["maxFeePerGas", "maxPriorityFeePerGas"], @@ -306,7 +306,7 @@ } }, { - "name": "Legacy fee market parameters", + "title": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", "required": ["gasPrice"], @@ -355,7 +355,7 @@ "summary": "Returns the balance of the account of given address.", "params": [ { - "name": "address", + "name": "hex encoded address", "schema": { "title": "address", "type": "string", @@ -809,7 +809,7 @@ "summary": "Returns code at a given address.", "params": [ { - "name": "address", + "name": "hex encoded address", "schema": { "title": "address", "type": "string", @@ -851,9 +851,8 @@ { "name": "filter id", "schema": { - "name": "Filter Identifier", + "title": "Filter Identifier", "summary": "ID of the filter", - "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -865,7 +864,7 @@ "title": "filter results", "oneOf": [ { - "name": "new block hashes", + "title": "new block hashes", "type": "array", "items": { "title": "32 byte hex string", @@ -874,7 +873,7 @@ } }, { - "name": "new transaction hashes", + "title": "new transaction hashes", "type": "array", "items": { "title": "32 byte hex string", @@ -883,18 +882,14 @@ } }, { - "name": "new filter logs", - "title": "log objects", + "title": "new filter logs", "type": "array", "items": [ { "title": "log object", "type": "object", "properties": { - "removed": { - "title": "removed", - "type": "boolean" - }, + "removed": { "title": "removed", "type": "boolean" }, "logIndex": { "title": "log index", "type": "string", @@ -954,9 +949,8 @@ { "name": "filter id", "schema": { - "name": "Filter Identifier", + "title": "Filter Identifier", "summary": "ID of the filter", - "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, @@ -975,10 +969,7 @@ "title": "log object", "type": "object", "properties": { - "removed": { - "title": "removed", - "type": "boolean" - }, + "removed": { "title": "removed", "type": "boolean" }, "logIndex": { "title": "log index", "type": "string", @@ -1115,10 +1106,7 @@ "title": "log object", "type": "object", "properties": { - "removed": { - "title": "removed", - "type": "boolean" - }, + "removed": { "title": "removed", "type": "boolean" }, "logIndex": { "title": "log index", "type": "string", @@ -1174,13 +1162,13 @@ "description": "Returns the value from a storage position at an address", "params": [ { - "name": "address", + "name": "dataAddress", + "summary": "address of stored data", "schema": { "title": "address", "type": "string", "pattern": "^0x[0-9a-f]{40}$" - }, - "summary": "address of stored data" + } }, { "name": "dataIndex", @@ -1361,14 +1349,14 @@ "summary": "Returns the number of transactions sent from an address", "params": [ { - "name": "address", + "name": "transactionAddress", + "summary": "address to query for sent transactions", + "required": true, "schema": { "title": "address", "type": "string", "pattern": "^0x[0-9a-f]{40}$" - }, - "summary": "address to query for sent transactions", - "required": true + } }, { "name": "block number or identifier or hash", @@ -1627,7 +1615,7 @@ "title": "accessList", "type": "array", "items": { - "name": "access list entry", + "title": "access list entry", "type": "object", "properties": { "address": { @@ -1652,7 +1640,7 @@ { "oneOf": [ { - "name": "EIP-1559 fee market parameters", + "title": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", "required": [ @@ -1675,7 +1663,7 @@ } }, { - "name": "Legacy fee market parameters", + "title": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", "required": ["gasPrice"], @@ -1901,7 +1889,7 @@ "title": "accessList", "type": "array", "items": { - "name": "access list entry", + "title": "access list entry", "type": "object", "properties": { "address": { @@ -1926,7 +1914,7 @@ { "oneOf": [ { - "name": "EIP-1559 fee market parameters", + "title": "EIP-1559 fee market parameters", "type": "object", "description": "EIP-1559 dynamic fee transactions have two fee parameters.", "required": [ @@ -1949,7 +1937,7 @@ } }, { - "name": "Legacy fee market parameters", + "title": "Legacy fee market parameters", "type": "object", "description": "Legacy transactions and EIP-2930 access list transaction include this parameter.", "required": ["gasPrice"], @@ -2087,9 +2075,7 @@ "result": { "name": "is mining", "summary": "true if this client is mining or false if it is not mining", - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } } }, { @@ -2099,9 +2085,8 @@ "result": { "name": "filter id", "schema": { - "name": "Filter Identifier", + "title": "Filter Identifier", "summary": "ID of the filter", - "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -2185,9 +2170,8 @@ "result": { "name": "filter id", "schema": { - "name": "Filter Identifier", + "title": "Filter Identifier", "summary": "ID of the filter", - "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -2200,9 +2184,8 @@ "result": { "name": "filter id", "schema": { - "name": "Filter Identifier", + "title": "Filter Identifier", "summary": "ID of the filter", - "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -2312,11 +2295,7 @@ "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, - { - "title": "zero hash", - "type": "string", - "pattern": "^0x$" - } + { "title": "zero hash", "type": "string", "pattern": "^0x$" } ] } } @@ -2326,14 +2305,14 @@ "summary": "Calculates an Ethereum-specific signature in the form of keccak256('\\x19Ethereum Signed Message:\n' + len(message) + message))", "params": [ { - "name": "address", + "required": true, + "summary": "address to use for signing", + "name": "hex encoded address", "schema": { "title": "address", "type": "string", "pattern": "^0x[0-9a-f]{40}$" - }, - "required": true, - "summary": "address to use for signing" + } }, { "required": true, @@ -2448,10 +2427,7 @@ "result": { "name": "status", "summary": "true if the operation was successful, false if it was not", - "schema": { - "title": "success", - "type": "boolean" - } + "schema": { "title": "success", "type": "boolean" } } }, { @@ -2491,9 +2467,7 @@ "result": { "name": "is solution valid", "summary": "true if the solution is valid, false otherwise", - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } } }, { @@ -2549,7 +2523,6 @@ "schema": { "title": "filter id to destroy", "summary": "ID of the filter to destroy", - "name": "Filter Identifier", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -2571,9 +2544,7 @@ "result": { "name": "is listening", "summary": "true if listening is active or false if listening is not active", - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } } }, { @@ -2598,21 +2569,14 @@ "name": "chain id", "summary": "chain ID associated with the current network", "description": "Common chain IDs: '1' - Ethereum mainnet '3' - Ropsten testnet '4' - Rinkeby testnet '42' - Kovan testnet Note: See EIP-155 for a [complete list](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md#list-of-chain-ids) of possible chain IDs.", - "schema": { - "type": "string" - } + "schema": { "type": "string" } } }, { "name": "web3_clientVersion", "summary": "Returns the version of the current client", "params": [], - "result": { - "name": "client version", - "schema": { - "type": "string" - } - } + "result": { "name": "client version", "schema": { "type": "string" } } }, { "name": "web3_sha3", diff --git a/components/Address.json b/components/Address.json index 01170e0a8..c36db9fe3 100644 --- a/components/Address.json +++ b/components/Address.json @@ -1,43 +1,9 @@ { - "Address": { - "name": "hex encoded address", - "schema": { - "$ref": "./Address.json#/address" - } - }, - "Addresses": { - "name": "addresses", - "schema": { "$ref": "./Address.json#/addresses" } - }, - "orNull": { - "name": "address or null", - "schema": { - "$ref": "./Address.json#/addressOrNull" - } - }, - "Miner": { - "name": "coinbase", - "summary": "address that received this block's mining rewards", - "schema": { - "$ref": "./Address.json#/miner" - } - }, "miner": { "title": "coinbase", "summary": "address that received this block's mining rewards", "$ref": "./Address.json#/address" }, - "addressOrNull": { - "title": "address or null", - "oneOf": [ - { - "$ref": "./Address.json#/address" - }, - { - "$ref": "./Null.json#/null" - } - ] - }, "addresses": { "title": "addresses", "type": "array", diff --git a/methods/eth/coinbase.json b/methods/eth/coinbase.json index 2cf1d9dbd..ad9ae3689 100644 --- a/methods/eth/coinbase.json +++ b/methods/eth/coinbase.json @@ -4,6 +4,8 @@ "params": [], "result": { "name": "Coinbase address", - "$ref": "../../components/Address.json#/Address" + "schema": { + "$ref": "../../components/address.json#/address" + } } } diff --git a/methods/eth/getBalance.json b/methods/eth/getBalance.json index 1df7866e1..ec35eb59d 100644 --- a/methods/eth/getBalance.json +++ b/methods/eth/getBalance.json @@ -3,7 +3,10 @@ "summary": "Returns the balance of the account of given address.", "params": [ { - "$ref": "../../components/Address.json#/Address" + "name": "hex encoded address", + "schema": { + "$ref": "../../components/address.json#/address" + } }, { "$ref": "../../components/Block.json#/NumberOrTag" diff --git a/methods/eth/getCode.json b/methods/eth/getCode.json index 3347247d8..46b001bd2 100644 --- a/methods/eth/getCode.json +++ b/methods/eth/getCode.json @@ -3,7 +3,10 @@ "summary": "Returns code at a given address.", "params": [ { - "$ref": "../../components/Address.json#/Address" + "name": "hex encoded address", + "schema": { + "$ref": "../../components/address.json#/address" + } }, { "$ref": "../../components/Block.json#/NumberOrTag" diff --git a/methods/eth/getStorageAt.json b/methods/eth/getStorageAt.json index 0f06352f6..0d70ac805 100644 --- a/methods/eth/getStorageAt.json +++ b/methods/eth/getStorageAt.json @@ -5,7 +5,9 @@ { "name": "dataAddress", "summary": "address of stored data", - "$ref": "../../components/Address.json#/Address" + "schema": { + "$ref": "../../components/address.json#/address" + } }, { "name": "dataIndex", diff --git a/methods/eth/getTransactionCount.json b/methods/eth/getTransactionCount.json index 2b978e7b3..52f42abca 100644 --- a/methods/eth/getTransactionCount.json +++ b/methods/eth/getTransactionCount.json @@ -6,7 +6,9 @@ "name": "transactionAddress", "summary": "address to query for sent transactions", "required": true, - "$ref": "../../components/Address.json#/Address" + "schema": { + "$ref": "../../components/address.json#/address" + } }, { "required": true, diff --git a/methods/eth/sign.json b/methods/eth/sign.json index 09b1adc63..cc4255cd7 100644 --- a/methods/eth/sign.json +++ b/methods/eth/sign.json @@ -5,7 +5,10 @@ { "required": true, "summary": "address to use for signing", - "$ref": "../../components/Address.json#/Address" + "name": "hex encoded address", + "schema": { + "$ref": "../../components/address.json#/address" + } }, { "required": true, From 0b583d47fb3ccdecd650edf7fc26504d4c376275 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 01:21:22 -0500 Subject: [PATCH 08/21] clean up Block.json --- build/openrpc.json | 210 ++++++------------ components/AccessList.json | 11 +- components/Block.json | 113 ---------- methods/eth/blockNumber.json | 6 +- methods/eth/getBalance.json | 12 +- methods/eth/getBlockByHash.json | 10 +- methods/eth/getBlockByNumber.json | 11 +- .../eth/getBlockTransactionCountByHash.json | 13 +- .../eth/getBlockTransactionCountByNumber.json | 12 +- methods/eth/getCode.json | 6 +- methods/eth/getStorageAt.json | 6 +- .../getTransactionByBlockHashAndIndex.json | 11 +- .../getTransactionByBlockNumberAndIndex.json | 14 +- methods/eth/getTransactionByHash.json | 15 +- methods/eth/getTransactionCount.json | 6 +- methods/eth/getTransactionReceipt.json | 15 +- methods/eth/getUncleByBlockHashAndIndex.json | 7 +- .../eth/getUncleByBlockNumberAndIndex.json | 8 +- methods/eth/getUncleCountByBlockHash.json | 14 +- methods/eth/getUncleCountByBlockNumber.json | 16 +- methods/eth/sendRawTransaction.json | 5 +- methods/eth/sign.json | 5 +- methods/eth/signTransaction.json | 5 +- 23 files changed, 234 insertions(+), 297 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index d96b6d993..ae1f1a26c 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -363,21 +363,12 @@ } }, { - "name": "Block number or tag", + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or block tag", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - } - ] + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" } } ], @@ -405,7 +396,7 @@ } ], "result": { - "name": "Block information", + "name": "block object", "schema": { "title": "block object", "type": "object", @@ -817,21 +808,12 @@ } }, { - "name": "Block number or tag", + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or block tag", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - } - ] + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" } } ], @@ -1180,27 +1162,12 @@ } }, { - "name": "block number or identifier or hash", - "summary": "The desired block number, its hash, or a block tag", + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or tag or hsh", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - }, - { - "title": "block hash", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - } - ] + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" } } ], @@ -1238,13 +1205,13 @@ } ], "result": { - "name": "hash or null", + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", "schema": { - "title": "hash or null", + "title": "block hash or null if pending", "oneOf": [ { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, @@ -1262,21 +1229,12 @@ "summary": "Returns information about a transaction specified by block number and transaction index", "params": [ { - "name": "Block number or tag", + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or block tag", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - } - ] + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" } }, { @@ -1291,13 +1249,13 @@ } ], "result": { - "name": "hash or null", + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", "schema": { - "title": "hash or null", + "title": "block hash or null if pending", "oneOf": [ { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, @@ -1315,23 +1273,22 @@ "summary": "Returns information about a transaction specified by hash", "params": [ { - "name": "transaction hash", + "name": "block hash", "schema": { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } } ], "result": { - "name": "hash or null", + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", "schema": { - "title": "hash or null", + "title": "block hash or null if pending", "oneOf": [ { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, @@ -1359,29 +1316,14 @@ } }, { - "name": "block number or identifier or hash", - "summary": "The desired block number, its hash, or a block tag", + "required": true, + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or tag or hsh", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - }, - { - "title": "block hash", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - } - ] - }, - "required": true + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + } } ], "result": { @@ -1399,23 +1341,22 @@ "summary": "Returns the receipt of a transaction specified by hash. Transaction receipts are unavailable for pending transactions.", "params": [ { - "name": "transaction hash", + "name": "block hash", "schema": { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } } ], "result": { - "name": "hash or null", + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", "schema": { - "title": "hash or null", + "title": "block hash or null if pending", "oneOf": [ { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, @@ -1468,7 +1409,7 @@ "pattern": "^0x[0-9a-f]{64}$" }, "hash": { - "title": "hash", + "title": "block hash or null if pending", "oneOf": [ { "title": "block hash", @@ -1698,21 +1639,12 @@ "summary": "Returns information about an uncle specified by block number and uncle index position", "params": [ { - "name": "Block number or tag", + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or block tag", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - } - ] + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" } }, { @@ -1742,7 +1674,7 @@ "pattern": "^0x[0-9a-f]{64}$" }, "hash": { - "title": "hash", + "title": "block hash or null if pending", "oneOf": [ { "title": "block hash", @@ -1995,21 +1927,12 @@ "summary": "Returns the number of uncles in a block specified by block number", "params": [ { - "name": "Block number or tag", + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", "schema": { - "title": "block number or block tag", - "oneOf": [ - { - "title": "block number", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" - }, - { - "title": "block tag", - "type": "string", - "enum": ["earliest", "latest", "pending"] - } - ] + "title": "block number", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" } } ], @@ -2220,10 +2143,9 @@ } ], "result": { - "name": "transaction hash", + "name": "block hash", "schema": { - "title": "transactionHash", - "summary": "hash of a transaction", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -2326,10 +2248,10 @@ } ], "result": { - "name": "hash", + "name": "block hash", "summary": "signature hash of the provided data", "schema": { - "title": "32 byte hex string", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } @@ -2391,9 +2313,9 @@ ], "result": { "summary": "signature hash of the transaction object", - "name": "32 byte hash", + "name": "block hash", "schema": { - "title": "32 byte hex string", + "title": "block hash", "type": "string", "pattern": "^0x[0-9a-f]{64}$" } diff --git a/components/AccessList.json b/components/AccessList.json index 57eb13429..2f87b242c 100644 --- a/components/AccessList.json +++ b/components/AccessList.json @@ -1,11 +1,4 @@ { - "AccessList": { - "name": "access list", - "description": "EIP-2930 access list", - "schema": { - "$ref": "./AccessList.json#/entries" - } - }, "entries": { "title": "array of Access List Entries", "type": "array", @@ -18,14 +11,14 @@ "type": "object", "properties": { "address": { - "$ref": "./AccessList.json#/address" + "$ref": "./AccessList.json#/accessAddress" }, "storageKeys": { "$ref": "./AccessList.json#/storageKeys" } } }, - "address": { + "accessAddress": { "title": "access address", "$ref": "./Address.json#/address" }, diff --git a/components/Block.json b/components/Block.json index 9181b2385..fc6922f82 100644 --- a/components/Block.json +++ b/components/Block.json @@ -1,66 +1,8 @@ { - "Number": { - "name": "block number", - "summary": "The number of blocks in the best chain of the trie", - "schema": { - "$ref": "./Block.json#/number" - } - }, - "Latest": { - "name": "latest block number", - "summary": "the most recent block seen by this client", - "$ref": "./Quantity.json#/Integer" - }, - "BlockTransactionCount": { - "name": "block transaction count", - "summary": "The number of transactions on a given block", - "schema": { - "$ref": "./Quantity.json#/arrayOfUint256" - } - }, - "OrNull": { - "name": "block object or null", - "schema": { - "$ref": "./Block.json#/blockObjectOrNull" - } - }, - "NumberOrNull": { - "name": "block number or null", - "description": "The block number. Note: if the block number is the pending block this will be Null", - "schema": { - "$ref": "./Block.json#/numberOrNull" - } - }, - "NumberOrTag": { - "name": "Block number or tag", - "schema": { - "$ref": "./Block.json#/numberOrTag" - } - }, - "HashOrNull": { - "name": "block hash or null", - "description": "The block hash. Note: if the block number is the pending block this will be Null", - "schema": { - "$ref": "./Block.json#/hashOrNull" - } - }, - "Hash": { - "name": "block hash", - "schema": { - "$ref": "./Block.json#/hash" - } - }, "hash": { "title": "block hash", "$ref": "./Data.json#/hash32" }, - "Tag": { - "name": "block tag", - "summary": "string descriptor for common queried block", - "schema": { - "$ref": "./Block.json#/tag" - } - }, "blockObject": { "title": "block object", "type": "object", @@ -77,30 +19,10 @@ } ] }, - "BlockObject": { - "name": "block object", - "schema": { - "$ref": "./Block.json#/blockObject" - } - }, "transactionHash": { "title": "block transaction hashes", "$ref": "./Data.json#/arrayOfHash32" }, - "numberOrTagOrHash": { - "title": "block number or tag or hsh", - "oneOf": [ - { - "$ref": "./Block.json#/number" - }, - { - "$ref": "./Block.json#/tag" - }, - { - "$ref": "./Block.json#/hash" - } - ] - }, "hashOrNull": { "title": "block hash or null if pending", "oneOf": [ @@ -123,46 +45,11 @@ } ] }, - "numberOrNull": { - "title": "block number or null", - "oneOf": [ - { - "$ref": "./Block.json#/number" - }, - { - "$ref": "./Null.json#/null" - } - ] - }, - "blockObjectOrNull": { - "title": "block object or null", - "oneOf": [ - { - "$ref": "./Block.json#/blockObject" - }, - { - "$ref": "./Null.json#/null" - } - ] - }, - "NumberOrTagOrHash": { - "name": "block number or identifier or hash", - "summary": "The desired block number, its hash, or a block tag", - "schema": { - "$ref": "./Block.json#/numberOrTagOrHash" - } - }, "size": { "name": "block size", "summary": "size of this block in bytes", "$ref": "./Data.json#/bytes" }, - "UncleCount": { - "name": "uncle count", - "schema": { - "$ref": "./Block.json#/uncle/count" - } - }, "uncle": { "count": { "title": "uncle count", diff --git a/methods/eth/blockNumber.json b/methods/eth/blockNumber.json index 5be3f8201..670807c70 100644 --- a/methods/eth/blockNumber.json +++ b/methods/eth/blockNumber.json @@ -3,6 +3,10 @@ "summary": "Returns the number of the most recent block seen by this client", "params": [], "result": { - "$ref": "../../components/Block.json#/Number" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } } diff --git a/methods/eth/getBalance.json b/methods/eth/getBalance.json index ec35eb59d..d96098a81 100644 --- a/methods/eth/getBalance.json +++ b/methods/eth/getBalance.json @@ -9,10 +9,18 @@ } }, { - "$ref": "../../components/Block.json#/NumberOrTag" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } ], "result": { - "$ref": "../../components/Block.json#/Number" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } } diff --git a/methods/eth/getBlockByHash.json b/methods/eth/getBlockByHash.json index b4de2df43..f3de33d7b 100644 --- a/methods/eth/getBlockByHash.json +++ b/methods/eth/getBlockByHash.json @@ -3,11 +3,17 @@ "summary": "Returns information about a block by hash.", "params": [ { - "$ref": "../../components/Block.json#/Hash" + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } } ], "result": { "name": "Block information", - "$ref": "../../components/Block.json#/BlockObject" + "name": "block object", + "schema": { + "$ref": "../../components/Block.json#/blockObject" + } } } diff --git a/methods/eth/getBlockByNumber.json b/methods/eth/getBlockByNumber.json index cfbae5efc..8fcd54396 100644 --- a/methods/eth/getBlockByNumber.json +++ b/methods/eth/getBlockByNumber.json @@ -3,13 +3,20 @@ "summary": "Returns information about a block by number.", "params": [ { - "$ref": "../../components/Block.json#/Number" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } ], "result": { "name": "Block information", "schema": { - "$ref": "../../components/Block.json#/BlockObject" + "name": "block object", + "schema": { + "$ref": "../../components/Block.json#/blockObject" + } } } } diff --git a/methods/eth/getBlockTransactionCountByHash.json b/methods/eth/getBlockTransactionCountByHash.json index 89ad907ac..1e7ba95c9 100644 --- a/methods/eth/getBlockTransactionCountByHash.json +++ b/methods/eth/getBlockTransactionCountByHash.json @@ -3,8 +3,17 @@ "summary": "Returns the number of transactions in a block specified by block hash", "params": [ { - "$ref": "../../components/Block.json#/Hash" + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } } ], - "result": { "$ref": "../../components/Block.json#/BlockTransactionCount" } + "result": { + "name": "block transaction count", + "summary": "The number of transactions on a given block", + "schema": { + "$ref": "../../components/Quantity.json#/arrayOfUint256" + } + } } diff --git a/methods/eth/getBlockTransactionCountByNumber.json b/methods/eth/getBlockTransactionCountByNumber.json index 2da8c6b74..71dafc1e3 100644 --- a/methods/eth/getBlockTransactionCountByNumber.json +++ b/methods/eth/getBlockTransactionCountByNumber.json @@ -3,10 +3,18 @@ "summary": "Returns the number of transactions in a block matching specified by the block number.", "params": [ { - "$ref": "../../components/Block.json#/Number" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } ], "result": { - "$ref": "../../components/Block.json#/BlockTransactionCount" + "name": "block transaction count", + "summary": "The number of transactions on a given block", + "schema": { + "$ref": "../../components/Quantity.json#/arrayOfUint256" + } } } diff --git a/methods/eth/getCode.json b/methods/eth/getCode.json index 46b001bd2..f3239a04d 100644 --- a/methods/eth/getCode.json +++ b/methods/eth/getCode.json @@ -9,7 +9,11 @@ } }, { - "$ref": "../../components/Block.json#/NumberOrTag" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } ], "result": { diff --git a/methods/eth/getStorageAt.json b/methods/eth/getStorageAt.json index 0d70ac805..d803c45fd 100644 --- a/methods/eth/getStorageAt.json +++ b/methods/eth/getStorageAt.json @@ -15,7 +15,11 @@ "$ref": "../../components/Data.json#/Index" }, { - "$ref": "../../components/Block.json#/NumberOrTagOrHash" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } ], "result": { diff --git a/methods/eth/getTransactionByBlockHashAndIndex.json b/methods/eth/getTransactionByBlockHashAndIndex.json index d751aea2b..764340cac 100644 --- a/methods/eth/getTransactionByBlockHashAndIndex.json +++ b/methods/eth/getTransactionByBlockHashAndIndex.json @@ -3,13 +3,20 @@ "description": "Returns information about a transaction specified by block hash and transaction index", "params": [ { - "$ref": "../../components/Block.json#/Hash" + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } }, { "$ref": "../../components/Transaction.json#/Index" } ], "result": { - "$ref": "../../components/Transaction.json#/HashOrNull" + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", + "schema": { + "$ref": "../../components/Block.json#/hashOrNull" + } } } diff --git a/methods/eth/getTransactionByBlockNumberAndIndex.json b/methods/eth/getTransactionByBlockNumberAndIndex.json index 96aacee59..f18dfde49 100644 --- a/methods/eth/getTransactionByBlockNumberAndIndex.json +++ b/methods/eth/getTransactionByBlockNumberAndIndex.json @@ -2,10 +2,20 @@ "name": "eth_getTransactionByBlockNumberAndIndex", "summary": "Returns information about a transaction specified by block number and transaction index", "params": [ - { "$ref": "../../components/Block.json#/NumberOrTag" }, + { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } + }, { "$ref": "../../components/Transaction.json#/Index" } ], "result": { - "$ref": "../../components/Transaction.json#/HashOrNull" + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", + "schema": { + "$ref": "../../components/Block.json#/hashOrNull" + } } } diff --git a/methods/eth/getTransactionByHash.json b/methods/eth/getTransactionByHash.json index 0616cae79..99f1792da 100644 --- a/methods/eth/getTransactionByHash.json +++ b/methods/eth/getTransactionByHash.json @@ -1,8 +1,19 @@ { "name": "eth_getTransactionByHash", "summary": "Returns information about a transaction specified by hash", - "params": [{ "$ref": "../../components/Transaction.json#/Hash" }], + "params": [ + { + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } + } + ], "result": { - "$ref": "../../components/Transaction.json#/HashOrNull" + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", + "schema": { + "$ref": "../../components/Block.json#/hashOrNull" + } } } diff --git a/methods/eth/getTransactionCount.json b/methods/eth/getTransactionCount.json index 52f42abca..cad842252 100644 --- a/methods/eth/getTransactionCount.json +++ b/methods/eth/getTransactionCount.json @@ -12,7 +12,11 @@ }, { "required": true, - "$ref": "../../components/Block.json#/NumberOrTagOrHash" + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } } ], "result": { "$ref": "../../components/Transaction.json#/Count" } diff --git a/methods/eth/getTransactionReceipt.json b/methods/eth/getTransactionReceipt.json index be3e463fe..3bc883ed6 100644 --- a/methods/eth/getTransactionReceipt.json +++ b/methods/eth/getTransactionReceipt.json @@ -1,9 +1,20 @@ { "name": "eth_getTransactionReceipt", "summary": "Returns the receipt of a transaction specified by hash. Transaction receipts are unavailable for pending transactions.", - "params": [{ "$ref": "../../components/Transaction.json#/Hash" }], + "params": [ + { + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } + } + ], "result": { "name": "transaction receipt or null", - "$ref": "../../components/Transaction.json#/HashOrNull" + "name": "block hash or null", + "description": "The block hash. Note: if the block number is the pending block this will be Null", + "schema": { + "$ref": "../../components/Block.json#/hashOrNull" + } } } diff --git a/methods/eth/getUncleByBlockHashAndIndex.json b/methods/eth/getUncleByBlockHashAndIndex.json index 8a88d0974..63f1d4901 100644 --- a/methods/eth/getUncleByBlockHashAndIndex.json +++ b/methods/eth/getUncleByBlockHashAndIndex.json @@ -2,7 +2,12 @@ "name": "eth_getUncleByBlockHashAndIndex", "summary": "Returns information about an uncle specified by block hash and uncle index position", "params": [ - { "$ref": "../../components/Block.json#/Hash" }, + { + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } + }, { "$ref": "../../components/Uncle.json#/Index" } ], "result": { diff --git a/methods/eth/getUncleByBlockNumberAndIndex.json b/methods/eth/getUncleByBlockNumberAndIndex.json index 2f6e4b48b..5fe662a5e 100644 --- a/methods/eth/getUncleByBlockNumberAndIndex.json +++ b/methods/eth/getUncleByBlockNumberAndIndex.json @@ -2,7 +2,13 @@ "name": "eth_getUncleByBlockNumberAndIndex", "summary": "Returns information about an uncle specified by block number and uncle index position", "params": [ - { "$ref": "../../components/Block.json#/NumberOrTag" }, + { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } + }, { "$ref": "../../components/Quantity.json#/Integer" } ], "result": { diff --git a/methods/eth/getUncleCountByBlockHash.json b/methods/eth/getUncleCountByBlockHash.json index 5fbb54ed9..d5e42a7b6 100644 --- a/methods/eth/getUncleCountByBlockHash.json +++ b/methods/eth/getUncleCountByBlockHash.json @@ -1,8 +1,18 @@ { "name": "eth_getUncleCountByBlockHash", "summary": "Returns the number of uncles in a block specified by block hash", - "params": [{ "$ref": "../../components/Block.json#/Hash" }], + "params": [ + { + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } + } + ], "result": { - "$ref": "../../components/Block.json#/UncleCount" + "name": "uncle count", + "schema": { + "$ref": "../../components/Block.json#/uncle/count" + } } } diff --git a/methods/eth/getUncleCountByBlockNumber.json b/methods/eth/getUncleCountByBlockNumber.json index 619ae0ee6..3fdbb9f67 100644 --- a/methods/eth/getUncleCountByBlockNumber.json +++ b/methods/eth/getUncleCountByBlockNumber.json @@ -1,8 +1,20 @@ { "name": "eth_getUncleCountByBlockNumber", "summary": "Returns the number of uncles in a block specified by block number", - "params": [{ "$ref": "../../components/Block.json#/NumberOrTag" }], + + "params": [ + { + "name": "block number", + "summary": "The number of blocks in the best chain of the trie", + "schema": { + "$ref": "../../components/Block.json#/number" + } + } + ], "result": { - "$ref": "../../components/Block.json#/UncleCount" + "name": "uncle count", + "schema": { + "$ref": "../../components/Block.json#/uncle/count" + } } } diff --git a/methods/eth/sendRawTransaction.json b/methods/eth/sendRawTransaction.json index cf7e8458d..2327e416e 100644 --- a/methods/eth/sendRawTransaction.json +++ b/methods/eth/sendRawTransaction.json @@ -8,6 +8,9 @@ ], "result": { "name": "transactionHash", - "$ref": "../../components/Transaction.json#/Hash" + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } } } diff --git a/methods/eth/sign.json b/methods/eth/sign.json index cc4255cd7..8877cc36c 100644 --- a/methods/eth/sign.json +++ b/methods/eth/sign.json @@ -20,6 +20,9 @@ "result": { "name": "hash", "summary": "signature hash of the provided data", - "$ref": "../../components/Data.json#/Hash" + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } } } diff --git a/methods/eth/signTransaction.json b/methods/eth/signTransaction.json index e60f3bfd6..593a500ea 100644 --- a/methods/eth/signTransaction.json +++ b/methods/eth/signTransaction.json @@ -10,6 +10,9 @@ ], "result": { "summary": "signature hash of the transaction object", - "$ref": "../../components/Data.json#/Hash" + "name": "block hash", + "schema": { + "$ref": "../../components/Block.json#/hash" + } } } From 04303ce7107eefc1a451d5275ab3f9da750dd223 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 11:38:12 -0500 Subject: [PATCH 09/21] clean up Data.json --- components/Data.json | 23 ----------------------- methods/eth/call.json | 4 +++- methods/eth/getCode.json | 5 ++++- methods/eth/getStorageAt.json | 8 ++++++-- methods/eth/sign.json | 4 +++- 5 files changed, 16 insertions(+), 28 deletions(-) diff --git a/components/Data.json b/components/Data.json index 088188d9a..51e9e187a 100644 --- a/components/Data.json +++ b/components/Data.json @@ -1,33 +1,10 @@ { - "Bytes": { - "schema": { - "$ref": "./Data.json#/bytes" - } - }, - "Bytecode": { - "name": "Bytecode", - "schema": { - "$ref": "./Data.json#/bytes" - } - }, - "Hash": { - "name": "32 byte hash", - "schema": { - "$ref": "./Data.json#/hash32" - } - }, "arrayOfHash32": { "type": "array", "items": { "$ref": "./Data.json#/hash32" } }, - "Index": { - "name": "data index", - "schema": { - "$ref": "./Data.json#/index" - } - }, "index": { "title": "data index", "$ref": "./Quantity.json#/integer" diff --git a/methods/eth/call.json b/methods/eth/call.json index af3e74e98..eccea44aa 100644 --- a/methods/eth/call.json +++ b/methods/eth/call.json @@ -10,6 +10,8 @@ ], "result": { "name": "Return data", - "$ref": "../../components/Data.json#/Bytes" + "schema": { + "$ref": "../../components/Data.json#/bytes" + } } } diff --git a/methods/eth/getCode.json b/methods/eth/getCode.json index f3239a04d..bc1d48665 100644 --- a/methods/eth/getCode.json +++ b/methods/eth/getCode.json @@ -17,6 +17,9 @@ } ], "result": { - "$ref": "../../components/Data.json#/Bytecode" + "name": "Bytecode", + "schema": { + "$ref": "../../components/Data.json#/bytes" + } } } diff --git a/methods/eth/getStorageAt.json b/methods/eth/getStorageAt.json index d803c45fd..2524bd273 100644 --- a/methods/eth/getStorageAt.json +++ b/methods/eth/getStorageAt.json @@ -12,7 +12,9 @@ { "name": "dataIndex", "summary": "index into stored data", - "$ref": "../../components/Data.json#/Index" + "schema": { + "$ref": "../../components/Data.json#/index" + } }, { "name": "block number", @@ -25,6 +27,8 @@ "result": { "name": "data stored", "summary": "data stored at the given address and data index", - "$ref": "../../components/Data.json#/Bytes" + "schema": { + "$ref": "../../components/Data.json#/bytes" + } } } diff --git a/methods/eth/sign.json b/methods/eth/sign.json index 8877cc36c..c3ced7083 100644 --- a/methods/eth/sign.json +++ b/methods/eth/sign.json @@ -14,7 +14,9 @@ "required": true, "name": "data", "summary": "data to sign", - "$ref": "../../components/Data.json#/Bytes" + "schema": { + "$ref": "../../components/Data.json#/bytes" + } } ], "result": { From b4600e314d1063d87ce4fbcd67d7e4da2f5fea70 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 11:50:00 -0500 Subject: [PATCH 10/21] clean Filter.json --- build/openrpc.json | 4 +-- components/Filter.json | 30 -------------------- methods/eth/getFilterChanges.json | 14 +++++++-- methods/eth/getFilterLogs.json | 5 +++- methods/eth/getLogs.json | 5 +++- methods/eth/newBlockFilter.json | 5 +++- methods/eth/newFilter.json | 10 +++++-- methods/eth/newPendingTransactionFilter.json | 5 +++- methods/eth/uninstallFilter.json | 10 +++++-- 9 files changed, 46 insertions(+), 42 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index ae1f1a26c..533d79ea3 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -930,13 +930,13 @@ "params": [ { "name": "filter id", + "required": true, "schema": { "title": "Filter Identifier", "summary": "ID of the filter", "type": "string", "pattern": "^0x[0-9a-f]{64}$" - }, - "required": true + } } ], "result": { diff --git a/components/Filter.json b/components/Filter.json index 0ca940b70..bccac2dd6 100644 --- a/components/Filter.json +++ b/components/Filter.json @@ -1,34 +1,4 @@ { - "FilterObject": { - "name": "filter object", - "schema": { - "$ref": "./Filter.json#/filterObject" - } - }, - "Results": { - "name": "filter results", - "schema": { - "$ref": "./Filter.json#/results" - } - }, - "Identifier": { - "name": "filter id", - "schema": { - "$ref": "./Filter.json#/identifier" - } - }, - "DestroyFilterID": { - "name": "filter id to destroy", - "schema": { - "$ref": "./Filter.json#/destroyFilterID" - } - }, - "IsFilterDestroyed": { - "name": "is filter destroyed", - "schema": { - "$ref": "#/isFilterDestroyed" - } - }, "identifier": { "title": "Filter Identifier", "summary": "ID of the filter", diff --git a/methods/eth/getFilterChanges.json b/methods/eth/getFilterChanges.json index 0d378c2c8..a68d7eccf 100644 --- a/methods/eth/getFilterChanges.json +++ b/methods/eth/getFilterChanges.json @@ -1,8 +1,18 @@ { "name": "eth_getFilterChanges", "summary": "Returns a list of all logs based on filter ID since the last log retrieval", - "params": [{ "$ref": "../../components/Filter.json#/Identifier" }], + "params": [ + { + "name": "filter id", + "schema": { + "$ref": "../../components/Filter.json#/identifier" + } + } + ], "result": { - "$ref": "../../components/Filter.json#/Results" + "name": "filter results", + "schema": { + "$ref": "../../components/Filter.json#/results" + } } } diff --git a/methods/eth/getFilterLogs.json b/methods/eth/getFilterLogs.json index 3c121b050..e6bf4412a 100644 --- a/methods/eth/getFilterLogs.json +++ b/methods/eth/getFilterLogs.json @@ -5,7 +5,10 @@ { "name": "filterId", "required": true, - "$ref": "../../components/Filter.json#/Identifier" + "name": "filter id", + "schema": { + "$ref": "../../components/Filter.json#/identifier" + } } ], "result": { diff --git a/methods/eth/getLogs.json b/methods/eth/getLogs.json index 4f4021059..87af88706 100644 --- a/methods/eth/getLogs.json +++ b/methods/eth/getLogs.json @@ -3,7 +3,10 @@ "summary": "Returns a list of all logs based on a filter object", "params": [ { - "$ref": "../../components/Filter.json#/FilterObject" + "name": "filter object", + "schema": { + "$ref": "../../components/Filter.json#/filterObject" + } } ], "result": { diff --git a/methods/eth/newBlockFilter.json b/methods/eth/newBlockFilter.json index c3d3aa141..d627cda0e 100644 --- a/methods/eth/newBlockFilter.json +++ b/methods/eth/newBlockFilter.json @@ -3,6 +3,9 @@ "summary": "Creates a filter to listen for new blocks that can be used with eth_getFilterChanges", "params": [], "result": { - "$ref": "../../components/Filter.json#/Identifier" + "name": "filter id", + "schema": { + "$ref": "../../components/Filter.json#/identifier" + } } } diff --git a/methods/eth/newFilter.json b/methods/eth/newFilter.json index 305950995..66583afe7 100644 --- a/methods/eth/newFilter.json +++ b/methods/eth/newFilter.json @@ -3,10 +3,16 @@ "summary": "Creates a filter to listen for specific state changes that can then be used with eth_getFilterChanges", "params": [ { - "$ref": "../../components/Filter.json#/FilterObject" + "name": "filter object", + "schema": { + "$ref": "../../components/Filter.json#/filterObject" + } } ], "result": { - "$ref": "../../components/Filter.json#/Identifier" + "name": "filter id", + "schema": { + "$ref": "../../components/Filter.json#/identifier" + } } } diff --git a/methods/eth/newPendingTransactionFilter.json b/methods/eth/newPendingTransactionFilter.json index 8547a21d4..e093350a4 100644 --- a/methods/eth/newPendingTransactionFilter.json +++ b/methods/eth/newPendingTransactionFilter.json @@ -3,6 +3,9 @@ "summary": "Creates a filter to listen for new pending transactions that can be used with eth_getFilterChanges", "params": [], "result": { - "$ref": "../../components/Filter.json#/Identifier" + "name": "filter id", + "schema": { + "$ref": "../../components/Filter.json#/identifier" + } } } diff --git a/methods/eth/uninstallFilter.json b/methods/eth/uninstallFilter.json index 93447aedf..9f229b891 100644 --- a/methods/eth/uninstallFilter.json +++ b/methods/eth/uninstallFilter.json @@ -4,10 +4,16 @@ "params": [ { "required": true, - "$ref": "../../components/Filter.json#/DestroyFilterID" + "name": "filter id to destroy", + "schema": { + "$ref": "../../components/Filter.json#/destroyFilterID" + } } ], "result": { - "$ref": "../../components/Filter.json#/IsFilterDestroyed" + "name": "is filter destroyed", + "schema": { + "$ref": "../../components/Filter.json#/isFilterDestroyed" + } } } From ddc076f2ace95ce21c7f0694eef353c850edea5a Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 11:52:07 -0500 Subject: [PATCH 11/21] clean Gas.json --- components/Gas.json | 15 --------------- methods/eth/estimateGas.json | 4 +++- methods/eth/gasPrice.json | 4 +++- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/components/Gas.json b/components/Gas.json index bbab17893..c9472ca88 100644 --- a/components/Gas.json +++ b/components/Gas.json @@ -1,24 +1,9 @@ { - "Limit": { - "schema": { - "$ref": "./Gas.json#/limit" - } - }, "limit": { "name": "gas limit", "summary": "A scalar value equal to the current limit of gas expenditure per block", "$ref": "./Quantity.json#/integer" }, - "Used": { - "schema": { - "$ref": "./Gas.json#/used" - } - }, - "Price": { - "schema": { - "$ref": "./Gas.json#/price" - } - }, "price": { "title": "gas price", "$ref": "./Quantity.json#/integer" diff --git a/methods/eth/estimateGas.json b/methods/eth/estimateGas.json index 1935d41b0..6aadb97a1 100644 --- a/methods/eth/estimateGas.json +++ b/methods/eth/estimateGas.json @@ -10,6 +10,8 @@ ], "result": { "name": "Gas used", - "$ref": "../../components/Gas.json#/Used" + "schema": { + "$ref": "../../components/Gas.json#/used" + } } } diff --git a/methods/eth/gasPrice.json b/methods/eth/gasPrice.json index 63fcdff75..ccd15948b 100644 --- a/methods/eth/gasPrice.json +++ b/methods/eth/gasPrice.json @@ -4,6 +4,8 @@ "params": [], "result": { "name": "Gas price", - "$ref": "../../components/Gas.json#/Price" + "schema": { + "$ref": "../../components/Gas.json#/price" + } } } From afadabb6a0d58b54ef74691fcae9d977b4bc4ec7 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 11:58:01 -0500 Subject: [PATCH 12/21] clean Header.json & Logs.json --- build/openrpc.json | 2 +- components/Header.json | 6 ------ components/Logs.json | 26 -------------------------- methods/eth/getFilterLogs.json | 6 ++++-- methods/eth/getLogs.json | 6 +++++- 5 files changed, 10 insertions(+), 36 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index 533d79ea3..51b31b3d8 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -929,7 +929,7 @@ "summary": "Returns a list of all logs based on filter ID", "params": [ { - "name": "filter id", + "name": "filterId", "required": true, "schema": { "title": "Filter Identifier", diff --git a/components/Header.json b/components/Header.json index 723e5baa3..55cd9d91a 100644 --- a/components/Header.json +++ b/components/Header.json @@ -1,10 +1,4 @@ { - "HeaderObject": { - "name": "header object", - "schema": { - "$ref": "./Header.json#/headerObject" - } - }, "headerObject": { "title": "header object", "type": "object", diff --git a/components/Logs.json b/components/Logs.json index 26d271b9e..157aaeb03 100644 --- a/components/Logs.json +++ b/components/Logs.json @@ -1,30 +1,4 @@ { - "Logs": { - "name": "logs", - "summary": "array of log objects", - "schema": { - "$ref": "./Logs.json#/logObjects" - } - }, - "Log": { - "name": "log", - "summary": "a single log object", - "schema": { - "$ref": "./Logs.json#/logObject" - } - }, - "Bloom": { - "name": "logs bloom", - "schema": { - "$ref": "./Logs.json#/bloom" - } - }, - "BloomOrNull": { - "name": "logs bloom or null", - "schema": { - "$ref": "./Logs.json#/bloomOrNull" - } - }, "bloom": { "title": "bloom filter", "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", diff --git a/methods/eth/getFilterLogs.json b/methods/eth/getFilterLogs.json index e6bf4412a..cbb364708 100644 --- a/methods/eth/getFilterLogs.json +++ b/methods/eth/getFilterLogs.json @@ -5,7 +5,6 @@ { "name": "filterId", "required": true, - "name": "filter id", "schema": { "$ref": "../../components/Filter.json#/identifier" } @@ -14,6 +13,9 @@ "result": { "name": "logs", "description": "The return value of eth_getFilterLogs when retrieving logs from eth_newBlockFilter and eth_newPendingTransactionFilter filters will be an array of hashes, not an array of Log objects.", - "$ref": "../../components/Logs.json#/Logs" + "summary": "array of log objects", + "schema": { + "$ref": "../../components/Logs.json#/logObjects" + } } } diff --git a/methods/eth/getLogs.json b/methods/eth/getLogs.json index 87af88706..4bcb2bebb 100644 --- a/methods/eth/getLogs.json +++ b/methods/eth/getLogs.json @@ -10,6 +10,10 @@ } ], "result": { - "$ref": "../../components/Logs.json#/Logs" + "name": "logs", + "summary": "array of log objects", + "schema": { + "$ref": "../../components/Logs.json#/logObjects" + } } } From 74999d9747aa419c60c3aa2d6f11e618288d4a51 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:04:29 -0500 Subject: [PATCH 13/21] cleanup Mining.json --- build/openrpc.json | 12 ++++----- components/Mining.json | 48 --------------------------------- methods/eth/hashRate.json | 4 ++- methods/eth/mining.json | 6 ++++- methods/eth/submitHashrate.json | 10 +++++-- methods/eth/submitWork.json | 21 ++++++++++++--- 6 files changed, 39 insertions(+), 62 deletions(-) delete mode 100644 components/Mining.json diff --git a/build/openrpc.json b/build/openrpc.json index 51b31b3d8..a5b357ba8 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -1982,13 +1982,13 @@ "summary": "Returns the number of hashes-per-second this node is mining at", "params": [], "result": { - "name": "hashrate", - "summary": "number of hashes-per-second this node is mining at", + "name": "integer", "schema": { "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" - } + }, + "summary": "number of hashes-per-second this node is mining at" } }, { @@ -2326,14 +2326,14 @@ "summary": "Submit a mining hashrate", "params": [ { - "name": "hashrate", - "summary": "number of hashes-per-second this node is mining at", + "name": "integer", "schema": { "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, - "required": true + "required": true, + "summary": "number of hashes-per-second this node is mining at" }, { "required": true, diff --git a/components/Mining.json b/components/Mining.json deleted file mode 100644 index 98cef83f1..000000000 --- a/components/Mining.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "Hashrate": { - "name": "hashrate", - "summary": "number of hashes-per-second this node is mining at", - "$ref": "./Quantity.json#/Integer" - }, - "IsMining": { - "name": "is mining", - "summary": "true if this client is mining or false if it is not mining", - "schema": { - "type": "boolean" - } - }, - "RandomID": { - "name": "random id", - "summary": "random ID identifying this node", - "schema": { - "$ref": "./Data.json#/bytes" - } - }, - "POWSolution": { - "IsSolutionValid": { - "name": "is solution valid", - "summary": "true if the solution is valid, false otherwise", - "schema": { - "type": "boolean" - } - }, - "NonceFound": { - "name": "proof of work nonce found", - "schema": { - "$ref": "./POW.json#/nonce" - } - }, - "HeaderPOWHash": { - "name": "block proof of work hash", - "schema": { - "$ref": "./POW.json#/hash" - } - }, - "MixHash": { - "name": "proof of work mix hash", - "schema": { - "$ref": "./POW.json#/mixHash" - } - } - } -} diff --git a/methods/eth/hashRate.json b/methods/eth/hashRate.json index 0e3fdc4ce..f47ac2658 100644 --- a/methods/eth/hashRate.json +++ b/methods/eth/hashRate.json @@ -3,6 +3,8 @@ "summary": "Returns the number of hashes-per-second this node is mining at", "params": [], "result": { - "$ref": "../../components/Mining.json#/Hashrate" + "name": "hashrate", + "summary": "number of hashes-per-second this node is mining at", + "$ref": "../../components/Quantity.json#/Integer" } } diff --git a/methods/eth/mining.json b/methods/eth/mining.json index c097ee1c5..614f63840 100644 --- a/methods/eth/mining.json +++ b/methods/eth/mining.json @@ -3,6 +3,10 @@ "summary": "Determines if this client is mining new blocks", "params": [], "result": { - "$ref": "../../components/Mining.json#/IsMining" + "name": "is mining", + "summary": "true if this client is mining or false if it is not mining", + "schema": { + "type": "boolean" + } } } diff --git a/methods/eth/submitHashrate.json b/methods/eth/submitHashrate.json index 351446caf..542d363bc 100644 --- a/methods/eth/submitHashrate.json +++ b/methods/eth/submitHashrate.json @@ -4,11 +4,17 @@ "params": [ { "required": true, - "$ref": "../../components/Mining.json#/Hashrate" + "name": "hashrate", + "summary": "number of hashes-per-second this node is mining at", + "$ref": "../../components/Quantity.json#/Integer" }, { "required": true, - "$ref": "../../components/Mining.json#/RandomID" + "name": "random id", + "summary": "random ID identifying this node", + "schema": { + "$ref": "../../components/Data.json#/bytes" + } } ], "result": { diff --git a/methods/eth/submitWork.json b/methods/eth/submitWork.json index 2cbefc43f..ddcd8922c 100644 --- a/methods/eth/submitWork.json +++ b/methods/eth/submitWork.json @@ -3,18 +3,31 @@ "summary": "Submit a proof-of-work solution", "params": [ { - "$ref": "../../components/Mining.json#/POWSolution/NonceFound" + "name": "proof of work nonce found", + "schema": { + "$ref": "../../components/POW.json#/nonce" + } }, { "required": true, - "$ref": "../../components/Mining.json#/POWSolution/HeaderPOWHash" + "name": "block proof of work hash", + "schema": { + "$ref": "../../components/POW.json#/hash" + } }, { "required": true, - "$ref": "../../components/Mining.json#/POWSolution/MixHash" + "name": "proof of work mix hash", + "schema": { + "$ref": "../../components/POW.json#/mixHash" + } } ], "result": { - "$ref": "../../components/Mining.json#/POWSolution/IsSolutionValid" + "name": "is solution valid", + "summary": "true if the solution is valid, false otherwise", + "schema": { + "type": "boolean" + } } } From 9124bdd2fb4e80553decaaf9274058de0218278f Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:10:25 -0500 Subject: [PATCH 14/21] clean Null.json, ProtocolVersion.json, and POW.json --- components/Null.json | 7 ------- components/POW.json | 20 -------------------- components/ProtocolVersion.json | 6 ------ methods/eth/protocolVersion.json | 5 ++++- 4 files changed, 4 insertions(+), 34 deletions(-) diff --git a/components/Null.json b/components/Null.json index 484438d19..fcdc872c4 100644 --- a/components/Null.json +++ b/components/Null.json @@ -1,16 +1,9 @@ { - "Null": { - "schema": { "$ref": "./Null.json#/null" } - }, "null": { "title": "null", "type": "null", "description": "null, undefined, None" }, - "ZeroHash": { - "name": "zero hash", - "schema": "./Null.json#/zeroHash" - }, "zeroHash": { "title": "zero hash", "type": "string", diff --git a/components/POW.json b/components/POW.json index d70c4007a..ce1412417 100644 --- a/components/POW.json +++ b/components/POW.json @@ -15,21 +15,6 @@ } ] }, - "Hash": { - "schema": { - "$ref": "./POW.json#/hash" - } - }, - "SeedHash": { - "schema": { - "$ref": "./POW.json#/seedHash" - } - }, - "BoundaryCondition": { - "schema": { - "$ref": "./POW.json#/boundaryCondition" - } - }, "hash": { "title": "proof of work hash", "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", @@ -45,11 +30,6 @@ "summary": "total difficulty of the best chain until this block", "$ref": "./Data.json#/bytes" }, - "difficulty": { - "title": "block difficulty", - "summary": "A scalar value corresponding to the difficulty level of this block. This can be calculated from the previous block’s difficulty level and the timestamp", - "$ref": "./Quantity.json#/integer" - }, "boundaryCondition": { "title": "boundary condition", "summary": "boundary condition ('target'), 2^256 / difficulty", diff --git a/components/ProtocolVersion.json b/components/ProtocolVersion.json index e65a629dc..351289f01 100644 --- a/components/ProtocolVersion.json +++ b/components/ProtocolVersion.json @@ -1,10 +1,4 @@ { - "ProtocolVersion": { - "name": "protocol version", - "schema": { - "$ref": "./ProtocolVersion.json#/protocolVersion" - } - }, "protocolVersion": { "title": "protocol version", "summary": "current Ethereum protocol version", diff --git a/methods/eth/protocolVersion.json b/methods/eth/protocolVersion.json index 58dbfcfa5..4e028bb81 100644 --- a/methods/eth/protocolVersion.json +++ b/methods/eth/protocolVersion.json @@ -3,6 +3,9 @@ "summary": "Returns the current Ethereum protocol version", "params": [], "result": { - "$ref": "../../components/ProtocolVersion.json#/ProtocolVersion" + "name": "protocol version", + "schema": { + "$ref": "../../components/ProtocolVersion.json#/protocolVersion" + } } } From 387518cc8ec17153105ac7e06beead7030f71319 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:15:18 -0500 Subject: [PATCH 15/21] clean Quantity.json, Syncing.json, and Topic.json --- build/openrpc.json | 12 ++++++------ components/Quantity.json | 6 ------ components/Status.json | 10 ---------- components/Syncing.json | 19 ------------------- components/Topic.json | 13 ------------- .../eth/getUncleByBlockNumberAndIndex.json | 7 ++++++- methods/eth/hashRate.json | 5 ++++- methods/eth/submitHashrate.json | 11 +++++++++-- methods/eth/syncing.json | 5 ++++- 9 files changed, 29 insertions(+), 59 deletions(-) delete mode 100644 components/Status.json diff --git a/build/openrpc.json b/build/openrpc.json index a5b357ba8..b6c3835b7 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -1983,12 +1983,12 @@ "params": [], "result": { "name": "integer", + "summary": "number of hashes-per-second this node is mining at", "schema": { "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" - }, - "summary": "number of hashes-per-second this node is mining at" + } } }, { @@ -2326,14 +2326,14 @@ "summary": "Submit a mining hashrate", "params": [ { - "name": "integer", + "required": true, + "name": "hashrate", + "summary": "number of hashes-per-second this node is mining at", "schema": { "title": "hex encoded unsigned integer", "type": "string", "pattern": "^0x[0-9a-f]{64}$" - }, - "required": true, - "summary": "number of hashes-per-second this node is mining at" + } }, { "required": true, diff --git a/components/Quantity.json b/components/Quantity.json index 8647e6a4c..93dd3ee4a 100644 --- a/components/Quantity.json +++ b/components/Quantity.json @@ -1,10 +1,4 @@ { - "Integer": { - "name": "integer", - "schema": { - "$ref": "./Quantity.json#/integer" - } - }, "integer": { "$ref": "./Quantity.json#/uint256" }, diff --git a/components/Status.json b/components/Status.json deleted file mode 100644 index 4c6f26afa..000000000 --- a/components/Status.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Status": { - "name": "status", - "summary": "true if the operation was successful, false if it was not", - "schema": { - "title": "success", - "type": "boolean" - } - } -} diff --git a/components/Syncing.json b/components/Syncing.json index 1c62bf7e5..90b5697cb 100644 --- a/components/Syncing.json +++ b/components/Syncing.json @@ -1,17 +1,4 @@ { - "Status": { - "name": "syncing status", - "schema": { - "oneOf": [ - { - "$ref": "./Syncing.json#/progressObject" - }, - { - "$ref": "./Syncing.json#/notSyncing" - } - ] - } - }, "progressObject": { "title": "syncing progress", "type": "object", @@ -47,12 +34,6 @@ "description": "Should always return false if not syncing.", "type": "boolean" }, - "FalseOrProgressObject": { - "name": "false or progres object", - "schema": { - "$ref": "./Syncing.json#/falseOrProgressObject" - } - }, "falseOrProgressObject": { "title": "false or syncing progress object", "summary": "false if this client is not syncing with the network, otherwise a syncing progres object", diff --git a/components/Topic.json b/components/Topic.json index 12e62c507..92e3236ee 100644 --- a/components/Topic.json +++ b/components/Topic.json @@ -1,21 +1,8 @@ { - "Topic": { - "schema": { - "$ref": "./Topic.json#/topic" - } - }, "topic": { "title": "topic", "$ref": "./Quantity.json#/integer" }, - "Topics": { - "name": "topics", - "summary": "list of order-dependent topics", - "description": "**Note:** Topics are order-dependent. A transaction with a log with topics `[A, B]` will be matched by the following topic filters:\n- `[]` - 'anything'\n- `[A]` - 'A in first position (and anything after)'\n- `[null, B]` - 'anything in first position AND B in second position (and anything after)'\n- `[A, B]` - 'A in first position AND B in second position (and anything after)'\n- `[[A, B], [A, B]]` - '(A OR B) in first position AND (A OR B) in second position (and anything after)'", - "schema": { - "$ref": "./Topic.json#/topics" - } - }, "topics": { "title": "topics", "type": "array", diff --git a/methods/eth/getUncleByBlockNumberAndIndex.json b/methods/eth/getUncleByBlockNumberAndIndex.json index 5fe662a5e..5f005fc68 100644 --- a/methods/eth/getUncleByBlockNumberAndIndex.json +++ b/methods/eth/getUncleByBlockNumberAndIndex.json @@ -9,7 +9,12 @@ "$ref": "../../components/Block.json#/number" } }, - { "$ref": "../../components/Quantity.json#/Integer" } + { + "name": "integer", + "schema": { + "$ref": "../../components/Quantity.json#/integer" + } + } ], "result": { "$ref": "../../components/Uncle.json#/UncleObjectOrNull" diff --git a/methods/eth/hashRate.json b/methods/eth/hashRate.json index f47ac2658..3a0194deb 100644 --- a/methods/eth/hashRate.json +++ b/methods/eth/hashRate.json @@ -5,6 +5,9 @@ "result": { "name": "hashrate", "summary": "number of hashes-per-second this node is mining at", - "$ref": "../../components/Quantity.json#/Integer" + "name": "integer", + "schema": { + "$ref": "../../components/Quantity.json#/integer" + } } } diff --git a/methods/eth/submitHashrate.json b/methods/eth/submitHashrate.json index 542d363bc..2ed934915 100644 --- a/methods/eth/submitHashrate.json +++ b/methods/eth/submitHashrate.json @@ -6,7 +6,9 @@ "required": true, "name": "hashrate", "summary": "number of hashes-per-second this node is mining at", - "$ref": "../../components/Quantity.json#/Integer" + "schema": { + "$ref": "../../components/Quantity.json#/integer" + } }, { "required": true, @@ -18,6 +20,11 @@ } ], "result": { - "$ref": "../../components/Status.json#/Status" + "name": "status", + "summary": "true if the operation was successful, false if it was not", + "schema": { + "title": "success", + "type": "boolean" + } } } diff --git a/methods/eth/syncing.json b/methods/eth/syncing.json index 5a09fb909..c38971e53 100644 --- a/methods/eth/syncing.json +++ b/methods/eth/syncing.json @@ -3,6 +3,9 @@ "summary": "Returns information about the status of this client's network synchronization", "params": [], "result": { - "$ref": "../../components/Syncing.json#/FalseOrProgressObject" + "name": "false or progres object", + "schema": { + "$ref": "../../components/Syncing.json#/falseOrProgressObject" + } } } From ca67d4da6150a841d7552a88efde8a0d77a7cb72 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:20:32 -0500 Subject: [PATCH 16/21] clean Transaction.json --- build/openrpc.json | 2 +- components/Transaction.json | 58 ------------------- methods/eth/call.json | 4 +- methods/eth/estimateGas.json | 4 +- .../getTransactionByBlockHashAndIndex.json | 5 +- .../getTransactionByBlockNumberAndIndex.json | 7 ++- methods/eth/getTransactionCount.json | 7 ++- methods/eth/sendRawTransaction.json | 5 +- methods/eth/sendTransaction.json | 10 +++- methods/eth/signTransaction.json | 5 +- 10 files changed, 39 insertions(+), 68 deletions(-) diff --git a/build/openrpc.json b/build/openrpc.json index b6c3835b7..7891ee238 100644 --- a/build/openrpc.json +++ b/build/openrpc.json @@ -2262,7 +2262,7 @@ "summary": "Signs a transaction that can be submitted to the network at a later time using with eth_sendRawTransaction", "params": [ { - "name": "transaction to be signed", + "name": "transaciton request object", "required": true, "schema": { "title": "transaction request object", diff --git a/components/Transaction.json b/components/Transaction.json index 87fe5e56f..fbb89dd5a 100644 --- a/components/Transaction.json +++ b/components/Transaction.json @@ -1,10 +1,4 @@ { - "TransactionObject": { - "name": "transaction object", - "schema": { - "$ref": "./Transaction.json#/transactionObject" - } - }, "transactionObject": { "title": "transaction object", "type": "object", @@ -50,12 +44,6 @@ } ] }, - "TransactionRequestObject": { - "name": "transaciton request object", - "schema": { - "$ref": "./Transaction.json#/transactionRequestObject" - } - }, "transactionRequestObject": { "title": "transaction request object", "type": "object", @@ -142,11 +130,6 @@ "title": "s", "$ref": "./Quantity.json#/integer" }, - "WithSender": { - "schema": { - "$ref": "./Transaction.json#/withSender" - } - }, "withSender": { "title": "Transaction object with sender", "type": "object", @@ -207,18 +190,6 @@ } ] }, - "Index": { - "name": "transaction index", - "schema": { - "$ref": "./Transaction.json#/index" - } - }, - "Hash": { - "name": "transaction hash", - "schema": { - "$ref": "./Transaction.json#/hash" - } - }, "index": { "name": "transactionIndex", "description": "index of a transaction in the specified block", @@ -229,18 +200,6 @@ "summary": "hash of a transaction", "$ref": "./Data.json#/hash32" }, - "HashOrNull": { - "name": "hash or null", - "schema": { - "$ref": "./Transaction.json#/hashOrNull" - } - }, - "HashOrZeroHash": { - "name": "hash or zero hash", - "schema": { - "$ref": "./Transaction.json#/hashOrZeroHash" - } - }, "hashOrZeroHash": { "title": "hash or zero hash", "oneOf": [ @@ -263,11 +222,6 @@ } ] }, - "From": { - "schema": { - "$ref": "./Transaction.json#/from" - } - }, "from": { "title": "from", "description": "The transaction sender's address", @@ -288,23 +242,11 @@ "summary": "the encoding of the [nonce, gasPrice, gasLimit, to, value, data] (in order) of a transaction object", "$ref": "./Data.json#/bytes" }, - "SignedTransactionData": { - "name": "signed transaction data", - "schema": { - "$ref": "./Transaction.json#/signedTransactionData" - } - }, "signedTransactionData": { "title": "signed transaction data", "summary": "the encoding of the [...rawTransactionData, v, r, s] (in order) of the transaction object", "$ref": "./Data.json#/bytes" }, - "Count": { - "name": "transaction count", - "schema": { - "$ref": "./Transaction.json#/count" - } - }, "count": { "title": "transaction count", "summary": "number of transactions sent from the specified address", diff --git a/methods/eth/call.json b/methods/eth/call.json index eccea44aa..d6530e736 100644 --- a/methods/eth/call.json +++ b/methods/eth/call.json @@ -5,7 +5,9 @@ { "name": "Transaction", "required": true, - "$ref": "../../components/Transaction.json#/WithSender" + "schema": { + "$ref": "../../components/Transaction.json#/withSender" + } } ], "result": { diff --git a/methods/eth/estimateGas.json b/methods/eth/estimateGas.json index 6aadb97a1..4f0fda1f8 100644 --- a/methods/eth/estimateGas.json +++ b/methods/eth/estimateGas.json @@ -5,7 +5,9 @@ { "name": "Transaction", "required": true, - "$ref": "../../components/Transaction.json#/WithSender" + "schema": { + "$ref": "../../components/Transaction.json#/withSender" + } } ], "result": { diff --git a/methods/eth/getTransactionByBlockHashAndIndex.json b/methods/eth/getTransactionByBlockHashAndIndex.json index 764340cac..362be98d4 100644 --- a/methods/eth/getTransactionByBlockHashAndIndex.json +++ b/methods/eth/getTransactionByBlockHashAndIndex.json @@ -9,7 +9,10 @@ } }, { - "$ref": "../../components/Transaction.json#/Index" + "name": "transaction index", + "schema": { + "$ref": "../../components/Transaction.json#/index" + } } ], "result": { diff --git a/methods/eth/getTransactionByBlockNumberAndIndex.json b/methods/eth/getTransactionByBlockNumberAndIndex.json index f18dfde49..9fc0a0412 100644 --- a/methods/eth/getTransactionByBlockNumberAndIndex.json +++ b/methods/eth/getTransactionByBlockNumberAndIndex.json @@ -9,7 +9,12 @@ "$ref": "../../components/Block.json#/number" } }, - { "$ref": "../../components/Transaction.json#/Index" } + { + "name": "transaction index", + "schema": { + "$ref": "../../components/Transaction.json#/index" + } + } ], "result": { "name": "block hash or null", diff --git a/methods/eth/getTransactionCount.json b/methods/eth/getTransactionCount.json index cad842252..045ef4001 100644 --- a/methods/eth/getTransactionCount.json +++ b/methods/eth/getTransactionCount.json @@ -19,5 +19,10 @@ } } ], - "result": { "$ref": "../../components/Transaction.json#/Count" } + "result": { + "name": "transaction count", + "schema": { + "$ref": "../../components/Transaction.json#/count" + } + } } diff --git a/methods/eth/sendRawTransaction.json b/methods/eth/sendRawTransaction.json index 2327e416e..2f93350f6 100644 --- a/methods/eth/sendRawTransaction.json +++ b/methods/eth/sendRawTransaction.json @@ -3,7 +3,10 @@ "summary": "Sends an already-signed transaction to the network", "params": [ { - "$ref": "../../components/Transaction.json#/SignedTransactionData" + "name": "signed transaction data", + "schema": { + "$ref": "../../components/Transaction.json#/signedTransactionData" + } } ], "result": { diff --git a/methods/eth/sendTransaction.json b/methods/eth/sendTransaction.json index 7bddd73ea..c55713bc4 100644 --- a/methods/eth/sendTransaction.json +++ b/methods/eth/sendTransaction.json @@ -4,11 +4,17 @@ "params": [ { "required": true, - "$ref": "../../components/Transaction.json#/TransactionRequestObject" + "name": "transaciton request object", + "schema": { + "$ref": "../../components/Transaction.json#/transactionRequestObject" + } } ], "result": { "summary": "transaction hash, or the zero hash if the transaction is not yet available", - "$ref": "../../components/Transaction.json#/HashOrZeroHash" + "name": "hash or zero hash", + "schema": { + "$ref": "../../components/Transaction.json#/hashOrZeroHash" + } } } diff --git a/methods/eth/signTransaction.json b/methods/eth/signTransaction.json index 593a500ea..25d2562e2 100644 --- a/methods/eth/signTransaction.json +++ b/methods/eth/signTransaction.json @@ -5,7 +5,10 @@ { "name": "transaction to be signed", "required": true, - "$ref": "../../components/Transaction.json#/TransactionRequestObject" + "name": "transaciton request object", + "schema": { + "$ref": "../../components/Transaction.json#/transactionRequestObject" + } } ], "result": { From 6d272971b6892102ac5e79d076d48e281c360c69 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:23:22 -0500 Subject: [PATCH 17/21] clean Uncle.json --- components/Uncle.json | 15 --------------- methods/eth/getUncleByBlockHashAndIndex.json | 12 ++++++++++-- methods/eth/getUncleByBlockNumberAndIndex.json | 5 ++++- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/components/Uncle.json b/components/Uncle.json index 39add211b..bbdb1a72b 100644 --- a/components/Uncle.json +++ b/components/Uncle.json @@ -1,7 +1,4 @@ { - "UncleObject": { - "schema": "./Uncle.json#/uncleObject" - }, "uncleObject": { "title": "uncle object", "type": "object", @@ -68,12 +65,6 @@ "summary": "list of uncle hashes", "$ref": "./Transaction.json#/uncles" }, - "UncleObjectOrNull": { - "name": "uncle or null", - "schema": { - "$ref": "./Uncle.json#/uncleObjectOrNull" - } - }, "uncleObjectOrNull": { "title": "uncle or null", "summary": "null if no block or uncle is found, otherwise an uncle object", @@ -86,12 +77,6 @@ } ] }, - "Index": { - "name": "uncle index", - "schema": { - "$ref": "./Uncle.json#/index" - } - }, "index": { "title": "uncle index", "summary": "index of uncle", diff --git a/methods/eth/getUncleByBlockHashAndIndex.json b/methods/eth/getUncleByBlockHashAndIndex.json index 63f1d4901..1575c47d4 100644 --- a/methods/eth/getUncleByBlockHashAndIndex.json +++ b/methods/eth/getUncleByBlockHashAndIndex.json @@ -8,9 +8,17 @@ "$ref": "../../components/Block.json#/hash" } }, - { "$ref": "../../components/Uncle.json#/Index" } + { + "name": "uncle index", + "schema": { + "$ref": "../../components/Uncle.json#/index" + } + } ], "result": { - "$ref": "../../components/Uncle.json#/UncleObjectOrNull" + "name": "uncle or null", + "schema": { + "$ref": "../../components/Uncle.json#/uncleObjectOrNull" + } } } diff --git a/methods/eth/getUncleByBlockNumberAndIndex.json b/methods/eth/getUncleByBlockNumberAndIndex.json index 5f005fc68..0555189ec 100644 --- a/methods/eth/getUncleByBlockNumberAndIndex.json +++ b/methods/eth/getUncleByBlockNumberAndIndex.json @@ -17,6 +17,9 @@ } ], "result": { - "$ref": "../../components/Uncle.json#/UncleObjectOrNull" + "name": "uncle or null", + "schema": { + "$ref": "../../components/Uncle.json#/uncleObjectOrNull" + } } } From 6f6c57f2a757a78ce1168dfb35a0983995bbbe58 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:27:02 -0500 Subject: [PATCH 18/21] remove unused schemas in Transaction.json --- components/Transaction.json | 64 ------------------------------------- 1 file changed, 64 deletions(-) diff --git a/components/Transaction.json b/components/Transaction.json index fbb89dd5a..0384318d8 100644 --- a/components/Transaction.json +++ b/components/Transaction.json @@ -90,11 +90,6 @@ "title": "input", "$ref": "./Quantity.json#/integer" }, - "SignedTransaction": { - "schema": { - "$ref": "./Transaction.json#/signedTransaction" - } - }, "signedTransaction": { "title": "Signed transaction object", "type": "object", @@ -147,49 +142,6 @@ } ] }, - "Info": { - "schema": { - "$ref": "./Transaction.json#/info" - } - }, - "info": { - "type": "object", - "title": "transaction information", - "allOf": [ - { - "name": "Contextual information", - "required": [ - "blockHash", - "blockNumber", - "from", - "hash", - "transactionIndex" - ], - "properties": { - "blockHash": { - "title": "blockHash", - "$ref": "./Block.json#/hash" - }, - "blockNumber": { - "title": "blockNumber", - "$ref": "./Block.json#/number" - }, - "from": { - "$ref": "./Transaction.json#/from" - }, - "hash": { - "$ref": "./Transaction.json#/hash" - }, - "transactionIndex": { - "$ref": "./Transaction.json#/index" - } - } - }, - { - "$ref": "./Transaction.json#/signedTransaction" - } - ] - }, "index": { "name": "transactionIndex", "description": "index of a transaction in the specified block", @@ -211,17 +163,6 @@ } ] }, - "hashOrNull": { - "title": "hash or null", - "oneOf": [ - { - "$ref": "./Transaction.json#/hash" - }, - { - "$ref": "./Null.json#/null" - } - ] - }, "from": { "title": "from", "description": "The transaction sender's address", @@ -237,11 +178,6 @@ "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block", "$ref": "./Data.json#/hash32" }, - "rawTransactionData": { - "title": "raw transaction data", - "summary": "the encoding of the [nonce, gasPrice, gasLimit, to, value, data] (in order) of a transaction object", - "$ref": "./Data.json#/bytes" - }, "signedTransactionData": { "title": "signed transaction data", "summary": "the encoding of the [...rawTransactionData, v, r, s] (in order) of the transaction object", From 8d620ab37e27eea2914247af4c76a3b857425861 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Wed, 14 Jul 2021 12:50:00 -0500 Subject: [PATCH 19/21] npm install and fix build / lint script --- package-lock.json | 1034 +++++++++++++++++++++++++++++++++- package.json | 2 +- build.js => scripts/build.js | 10 +- scripts/validate.js | 2 +- 4 files changed, 1015 insertions(+), 33 deletions(-) rename build.js => scripts/build.js (65%) diff --git a/package-lock.json b/package-lock.json index d25a262f7..506c11751 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,988 @@ { - "name": "json-rpc", + "name": "eth1.0-apis", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "CC0-1.0", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^9.0.7", + "@open-rpc/generator": "^1.18.12", + "@open-rpc/schema-utils-js": "^1.15.0", + "watch-cli": "^0.2.3" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", + "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "js-yaml": "^3.13.1" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "node_modules/@json-schema-spec/json-pointer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@json-schema-spec/json-pointer/-/json-pointer-0.1.2.tgz", + "integrity": "sha512-BYY7IavBjwsWWSmVcMz2A9mKiDD9RvacnsItgmy1xV8cmgbtxFfKmKMtkVpD7pYtkx4mIW4800yZBXueVFIWPw==" + }, + "node_modules/@json-schema-tools/dereferencer": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@json-schema-tools/dereferencer/-/dereferencer-1.5.1.tgz", + "integrity": "sha512-CUpdGpxNTq1ebMkrgVxS03FHfwkGiw63c+GNzqFAqwqsxR0OsR79aqK8h2ybxTIEhdwiaknSnlUgtUIy7FJ+3A==", + "dependencies": { + "@json-schema-tools/reference-resolver": "^1.2.1", + "@json-schema-tools/traverse": "^1.7.5", + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/@json-schema-tools/meta-schema": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.6.19.tgz", + "integrity": "sha512-55zuWFW7tr4tf/G5AYmybcPdGOkVAreQbt2JdnogX4I2r/zkxZiimYPJESDf5je9BI2oRveak2p296HzDppeaA==" + }, + "node_modules/@json-schema-tools/reference-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.3.tgz", + "integrity": "sha512-Bc7TjkuSy9PnQDeIenA3aU1cgh2/Wh042sxTfEaav38+Jf+2+U2kMBmMKS4nZLCR+L0fh71V3IwE2FMJleQCGw==", + "dependencies": { + "@json-schema-spec/json-pointer": "^0.1.2", + "isomorphic-fetch": "^3.0.0" + } + }, + "node_modules/@json-schema-tools/referencer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@json-schema-tools/referencer/-/referencer-1.0.3.tgz", + "integrity": "sha512-/a9IyzU08B120X70hXPpZKjbQesz6bq3PrnkubbFaQyiB+lBrw2hlBQo1GHAGZCybz2xrnn4VMRMLsF3PT10wg==", + "dependencies": { + "@json-schema-tools/traverse": "^1.7.3" + } + }, + "node_modules/@json-schema-tools/titleizer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@json-schema-tools/titleizer/-/titleizer-1.0.4.tgz", + "integrity": "sha512-3VQDsTBxnnJ/9PDJ8sFdYDqzMo2QowNEH2wIa886n3IsGiFpozaCg8+ZHGu43O4iKJKqLh9dCnoxHBeJLb+ntA==", + "dependencies": { + "@json-schema-tools/traverse": "^1.7.3" + } + }, + "node_modules/@json-schema-tools/transpiler": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@json-schema-tools/transpiler/-/transpiler-1.7.1.tgz", + "integrity": "sha512-ROkQLBWOjmsJOvbFUiplkwgEZGgBIa6AdVLEec2YhFMbHbWhhgQLMaQbvZ+c2mTmHcIgqTD7MtLMDQGVy2OqtA==", + "dependencies": { + "@json-schema-tools/referencer": "^1.0.3", + "@json-schema-tools/titleizer": "^1.0.4", + "@json-schema-tools/traverse": "^1.7.7", + "lodash.camelcase": "^4.3.0", + "lodash.deburr": "^4.1.0", + "lodash.trim": "^4.5.1" + } + }, + "node_modules/@json-schema-tools/traverse": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/@json-schema-tools/traverse/-/traverse-1.7.7.tgz", + "integrity": "sha512-ch/pPoOEIeKe1PKbfuLEIM8MAdTiR+fr9BYk6VTlIHrya5f5d8shJg6h/oQgD3K/ftjU/RYBGGalw9Pz4pCXew==" + }, + "node_modules/@open-rpc/generator": { + "version": "1.18.12", + "resolved": "https://registry.npmjs.org/@open-rpc/generator/-/generator-1.18.12.tgz", + "integrity": "sha512-wJazDSIlgNk+SAjzbxyCSAVQdsQ4YNDbTf/2Lnt7QdYNJf+rGpGyzL3E/1mwTX4k7/yE5yU0bauo0nk4U512fA==", + "dependencies": { + "@iarna/toml": "^2.2.5", + "@open-rpc/typings": "^1.11.3", + "commander": "^7.2.0", + "fs-extra": "^9.1.0", + "inquirer": "^8.0.0", + "lodash": "^4.17.21" + }, + "bin": { + "open-rpc-generator": "build/cli.js" + } + }, + "node_modules/@open-rpc/meta-schema": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/@open-rpc/meta-schema/-/meta-schema-1.14.2.tgz", + "integrity": "sha512-vD4Nbkrb7wYFRcSQf+j228LwOy1C6/KKpy5NADlpMElGrAWPRxhTa2yTi6xG+x88OHzg2+cydQ0GAD6o40KUcg==" + }, + "node_modules/@open-rpc/schema-utils-js": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-1.15.0.tgz", + "integrity": "sha512-YHTt3n3RZo1lRy8oknn2G1y0PWlo7HWtnwLOKfvVxjauKMOmlvBbpPHQZibpzIhgt+yPe4mht1ldhKOwq2tCUw==", + "dependencies": { + "@json-schema-tools/dereferencer": "1.5.1", + "@json-schema-tools/meta-schema": "^1.6.10", + "@json-schema-tools/reference-resolver": "^1.2.1", + "@open-rpc/meta-schema": "1.14.2", + "ajv": "^6.10.0", + "detect-node": "^2.0.4", + "fast-safe-stringify": "^2.0.7", + "fs-extra": "^9.0.0", + "is-url": "^1.2.4", + "isomorphic-fetch": "^3.0.0" + } + }, + "node_modules/@open-rpc/typings": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@open-rpc/typings/-/typings-1.11.3.tgz", + "integrity": "sha512-40VwBlQg8kFyUutyRRgglt5DUrI3oVQDrMzmRQuZrMWybc1LbFB1mQmuet1fedr4GulzEGi3zjUi02rzsAvvCw==", + "dependencies": { + "@json-schema-tools/titleizer": "^1.0.4", + "@json-schema-tools/transpiler": "^1.6.0", + "@open-rpc/schema-utils-js": "^1.14.0", + "commander": "^6.0.0", + "fs-extra": "^9.0.1" + }, + "bin": { + "open-rpc-typings": "build/cli.js" + } + }, + "node_modules/@open-rpc/typings/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dependencies": { + "globule": "~0.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dependencies": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob/node_modules/graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/glob/node_modules/inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + }, + "node_modules/globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dependencies": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/globule/node_modules/lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "node_modules/has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/inquirer": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.0.tgz", + "integrity": "sha512-1nKYPoalt1vMBfCMtpomsUc32wmOoWXAoq3kM/5iTfxyQ2f/BxjixQpC+mbZ7BI0JUXHED4/XPXekDVtJNpXYw==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.3.0", + "run-async": "^2.4.0", + "rxjs": "^6.6.6", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" + }, + "node_modules/lodash.trim": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", + "integrity": "sha1-NkJefukL5KpeJ7zruFt9EepHqlc=" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz", + "integrity": "sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/verbalize": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/verbalize/-/verbalize-0.1.2.tgz", + "integrity": "sha1-Fl/aRkAzFUj46ZCx1+FDletyAgc=", + "dependencies": { + "chalk": "~0.4.0" + }, + "engines": { + "node": ">=0.10.0", + "npm": ">=1.2.10" + } + }, + "node_modules/verbalize/node_modules/ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/verbalize/node_modules/chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dependencies": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/verbalize/node_modules/strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/watch-cli": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/watch-cli/-/watch-cli-0.2.3.tgz", + "integrity": "sha512-+g6n5J+jimY8hxcoHQaePPNnjmRux0nCN9BztkChx9mOas61rou3nXxTireuOMSPz7sIM7/vk6vG1f85h6Ob2A==", + "dependencies": { + "gaze": "^0.5.1", + "lodash": "^3.5.0", + "minimist": "^1.1.1", + "supports-color": "^4.0.0", + "verbalize": "^0.1.2" + }, + "bin": { + "watch": "bin/watch" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/watch-cli/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watch-cli/node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "node_modules/watch-cli/node_modules/supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + } + }, "dependencies": { "@apidevtools/json-schema-ref-parser": { "version": "9.0.7", @@ -40,14 +1020,14 @@ } }, "@json-schema-tools/meta-schema": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.6.1.tgz", - "integrity": "sha512-GPNTio0DpH/5Cqiol7Q7eLWXd1psvUL9Wje7HUubF/uvTqaEo2W2YF/37bt2umCgitos4bp+iEWoI8IV9A2TmA==" + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@json-schema-tools/meta-schema/-/meta-schema-1.6.19.tgz", + "integrity": "sha512-55zuWFW7tr4tf/G5AYmybcPdGOkVAreQbt2JdnogX4I2r/zkxZiimYPJESDf5je9BI2oRveak2p296HzDppeaA==" }, "@json-schema-tools/reference-resolver": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.1.tgz", - "integrity": "sha512-zsiV4GPjLJ6qhWRytSdEWfENy+ycCgE5Uu62IL0E8vSviohOAMIpAuFf15ByNvlj6U8M/pFg0OfPWy7R8+vWWA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@json-schema-tools/reference-resolver/-/reference-resolver-1.2.3.tgz", + "integrity": "sha512-Bc7TjkuSy9PnQDeIenA3aU1cgh2/Wh042sxTfEaav38+Jf+2+U2kMBmMKS4nZLCR+L0fh71V3IwE2FMJleQCGw==", "requires": { "@json-schema-spec/json-pointer": "^0.1.2", "isomorphic-fetch": "^3.0.0" @@ -106,14 +1086,14 @@ "integrity": "sha512-vD4Nbkrb7wYFRcSQf+j228LwOy1C6/KKpy5NADlpMElGrAWPRxhTa2yTi6xG+x88OHzg2+cydQ0GAD6o40KUcg==" }, "@open-rpc/schema-utils-js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-1.14.3.tgz", - "integrity": "sha512-NSdeCpf7l2eNH28fshCHtRAgHUU56ugiHk09Utrq3jBhSP4VBhbna2ieFxFSDg9jgTeb9+XlApphpCoSzT4Kpg==", - "requires": { - "@json-schema-tools/dereferencer": "^1.4.0", - "@json-schema-tools/meta-schema": "^1.5.10", - "@json-schema-tools/reference-resolver": "^1.1.1", - "@open-rpc/meta-schema": "^1.14.0", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@open-rpc/schema-utils-js/-/schema-utils-js-1.15.0.tgz", + "integrity": "sha512-YHTt3n3RZo1lRy8oknn2G1y0PWlo7HWtnwLOKfvVxjauKMOmlvBbpPHQZibpzIhgt+yPe4mht1ldhKOwq2tCUw==", + "requires": { + "@json-schema-tools/dereferencer": "1.5.1", + "@json-schema-tools/meta-schema": "^1.6.10", + "@json-schema-tools/reference-resolver": "^1.2.1", + "@open-rpc/meta-schema": "1.14.2", "ajv": "^6.10.0", "detect-node": "^2.0.4", "fast-safe-stringify": "^2.0.7", @@ -319,9 +1299,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" }, "figures": { "version": "3.2.0", @@ -649,6 +1629,14 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", @@ -659,14 +1647,6 @@ "strip-ansi": "^6.0.0" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", diff --git a/package.json b/package.json index ea3ecf3b7..0c5d4f58b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "scripts": { "lint": "node scripts/validate.js", "test": "echo \"Error: no test specified\" && exit 1", - "build": "node ./build.js && prettier --write build/openrpc.json", + "build": "node --experimental-json-modules ./scripts/build.js && prettier --write build/openrpc.json", "watch": "watch -p '**/!(__openrpc__)*.json' -c 'npm run build && npx prettier --write build/__openrpc__.json'" }, "author": "Ethereum", diff --git a/build.js b/scripts/build.js similarity index 65% rename from build.js rename to scripts/build.js index 27e88d64f..37a473ad9 100644 --- a/build.js +++ b/scripts/build.js @@ -1,5 +1,6 @@ -const RefParser = require("@apidevtools/json-schema-ref-parser"); -const fs = require("fs"); +import RefParser from "@apidevtools/json-schema-ref-parser" +import fs from "fs" +import * as openrpc from "../openrpc.json" const _parse = async (_schema) => { try { @@ -7,10 +8,11 @@ const _parse = async (_schema) => { if (!fs.existsSync("./build")) { fs.mkdirSync("./build"); } - fs.writeFileSync("./build/openrpc.json", JSON.stringify(schema)); + + fs.writeFileSync("./build/openrpc.json", JSON.stringify(schema.default)); } catch (err) { console.error(err); } }; -_parse(require("./openrpc.json")); +_parse(openrpc); diff --git a/scripts/validate.js b/scripts/validate.js index 2807377f5..762678469 100644 --- a/scripts/validate.js +++ b/scripts/validate.js @@ -4,7 +4,7 @@ import { validateOpenRPCDocument } from "@open-rpc/schema-utils-js"; -let rawdata = fs.readFileSync("openrpc.json"); +let rawdata = fs.readFileSync("build/openrpc.json"); let openrpc = JSON.parse(rawdata); const error = validateOpenRPCDocument(openrpc); From d2e49f49c38e81aab6cd6ba3225ed07d308354b5 Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Mon, 19 Jul 2021 15:58:06 -0700 Subject: [PATCH 20/21] Update components/Gas.json Co-authored-by: Shane --- components/Gas.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Gas.json b/components/Gas.json index c9472ca88..1c5ba2b2f 100644 --- a/components/Gas.json +++ b/components/Gas.json @@ -10,7 +10,7 @@ }, "used": { "title": "gas used", - "summary": "A scalar value equal to the total gas usedin transactions in this block", + "description": "A scalar value equal to the total gas used in transactions in this block", "$ref": "./Quantity.json#/integer" }, "baseFeePerGas": { From 05732b47531d920cbbeab526802e00266b69ad1e Mon Sep 17 00:00:00 2001 From: Alita Moore Date: Mon, 19 Jul 2021 18:01:02 -0500 Subject: [PATCH 21/21] name and summary -> title and description --- components/Address.json | 2 +- components/Block.json | 6 +++--- components/EIPs/1559.json | 2 +- components/Filter.json | 12 ++++++------ components/Gas.json | 6 +++--- components/Header.json | 14 +++++++------- components/Logs.json | 4 ++-- components/POW.json | 12 ++++++------ components/ProtocolVersion.json | 2 +- components/Syncing.json | 8 ++++---- components/Transaction.json | 10 +++++----- components/Uncle.json | 10 +++++----- 12 files changed, 44 insertions(+), 44 deletions(-) diff --git a/components/Address.json b/components/Address.json index c36db9fe3..9aa0c996d 100644 --- a/components/Address.json +++ b/components/Address.json @@ -1,7 +1,7 @@ { "miner": { "title": "coinbase", - "summary": "address that received this block's mining rewards", + "description": "address that received this block's mining rewards", "$ref": "./Address.json#/address" }, "addresses": { diff --git a/components/Block.json b/components/Block.json index fc6922f82..511898dda 100644 --- a/components/Block.json +++ b/components/Block.json @@ -46,14 +46,14 @@ ] }, "size": { - "name": "block size", - "summary": "size of this block in bytes", + "title": "block size", + "description": "size of this block in bytes", "$ref": "./Data.json#/bytes" }, "uncle": { "count": { "title": "uncle count", - "summary": "number of uncles in the specified block", + "description": "number of uncles in the specified block", "$ref": "./Quantity.json#/integer" }, "uncles": { diff --git a/components/EIPs/1559.json b/components/EIPs/1559.json index 6e9912a89..266ec04eb 100644 --- a/components/EIPs/1559.json +++ b/components/EIPs/1559.json @@ -37,7 +37,7 @@ }, "baseFeePerGas": { "title": "Base fee per gas", - "summary": "base fee per gas, which is a function of gas used and gas target of the parent block. The base fee per gas is burned.", + "description": "base fee per gas, which is a function of gas used and gas target of the parent block. The base fee per gas is burned.", "$ref": "../Quantity.json#/integer" }, "legacyGasPrice": { diff --git a/components/Filter.json b/components/Filter.json index bccac2dd6..77a922fa0 100644 --- a/components/Filter.json +++ b/components/Filter.json @@ -1,17 +1,17 @@ { "identifier": { "title": "Filter Identifier", - "summary": "ID of the filter", + "description": "ID of the filter", "$ref": "./Quantity.json#/integer" }, "destroyFilterID": { "title": "filter id to destroy", - "summary": "ID of the filter to destroy", + "description": "ID of the filter to destroy", "$ref": "#/identifier" }, "isFilterDestroyed": { "title": "is filter destroyed", - "summary": "true if the filter is found and successfully destroyed or false if it is not", + "description": "true if the filter is found and successfully destroyed or false if it is not", "type": "boolean" }, "results": { @@ -65,16 +65,16 @@ } }, "fromBlock": { - "name": "from block", + "title": "from block", "$ref": "./Block.json#/numberOrTag" }, "toBlock": { - "name": "to block", + "title": "to block", "$ref": "./Block.json#/numberOrTag" }, "address": { "title": "Address(es)", - "summary": "contract address or a list of addresses from which logs should originate", + "description": "contract address or a list of addresses from which logs should originate", "oneOf": [ { "$ref": "./Address.json#/address" diff --git a/components/Gas.json b/components/Gas.json index c9472ca88..34afb78cc 100644 --- a/components/Gas.json +++ b/components/Gas.json @@ -1,7 +1,7 @@ { "limit": { - "name": "gas limit", - "summary": "A scalar value equal to the current limit of gas expenditure per block", + "title": "gas limit", + "description": "A scalar value equal to the current limit of gas expenditure per block", "$ref": "./Quantity.json#/integer" }, "price": { @@ -10,7 +10,7 @@ }, "used": { "title": "gas used", - "summary": "A scalar value equal to the total gas usedin transactions in this block", + "description": "A scalar value equal to the total gas usedin transactions in this block", "$ref": "./Quantity.json#/integer" }, "baseFeePerGas": { diff --git a/components/Header.json b/components/Header.json index 55cd9d91a..0f6eb726a 100644 --- a/components/Header.json +++ b/components/Header.json @@ -95,23 +95,23 @@ "$ref": "./Data.json#/hash32" }, "receiptsRoot": { - "name": "receipt root", - "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", + "title": "receipt root", + "description": "The Keccak 256-bit hash of the root node of the trie structure populated with the receipts of each transaction in the transactions list portion of the block", "$ref": "./Data.json#/hash32" }, "stateRoot": { - "name": "block state root", - "summary": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", + "title": "block state root", + "description": "The Keccak 256-bit hash of the root node of the state trie, after all transactions are executed and finalizations applied", "$ref": "./Data.json#/hash32" }, "extraData": { - "name": "extra data", - "summary": "'extra data' field of this block; must be at most 32 bytes", + "title": "extra data", + "description": "'extra data' field of this block; must be at most 32 bytes", "$ref": "./Data.json#/bytes32" }, "timestamp": { "title": "timestamp", - "summary": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", + "description": "A scalar value equal to the reasonableoutput of Unix’s time() at this block’s inception", "$ref": "./Quantity.json#/integer" } } diff --git a/components/Logs.json b/components/Logs.json index 157aaeb03..35487d96e 100644 --- a/components/Logs.json +++ b/components/Logs.json @@ -1,12 +1,12 @@ { "bloom": { "title": "bloom filter", - "summary": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", + "description": "The Bloom filter composed from index-able information (logger address and log topics)contained in each log entry from the receipt ofeach transaction in the transactions list. It reduces a log entry into a single 256-byte hash", "$ref": "./Data.json#/bytes256" }, "bloomOrNull": { "title": "bloom filter or null", - "summary": "logs bloom filter or null if pending", + "description": "logs bloom filter or null if pending", "oneOf": [{ "$ref": "./Logs.json#/bloom" }, { "$ref": "./Null.json#/null" }] }, "logObjects": { diff --git a/components/POW.json b/components/POW.json index ce1412417..8c282ca2b 100644 --- a/components/POW.json +++ b/components/POW.json @@ -1,7 +1,7 @@ { "nonce": { "title": "proof of work nonce", - "summary": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", + "description": "A 32-byte value which, combined with the mix-hash, proves that a sufficient amount of computation has been carried out on this block", "$ref": "./Data.json#/hash32" }, "nonceOrNull": { @@ -17,27 +17,27 @@ }, "hash": { "title": "proof of work hash", - "summary": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", + "description": "The proof of work hash of the specified block; this can be found via the Nonce and MixHash", "$ref": "./Data.json#/bytes32" }, "mixHash": { "title": "mix hash", - "summary": "A 32-byte hash which, combined with the nonce, proves that a sufficient amount of computation has been carried out on this block", + "description": "A 32-byte hash which, combined with the nonce, proves that a sufficient amount of computation has been carried out on this block", "$ref": "./Data.json#/hash32" }, "totalDifficulty": { "title": "total difficulty", - "summary": "total difficulty of the best chain until this block", + "description": "total difficulty of the best chain until this block", "$ref": "./Data.json#/bytes" }, "boundaryCondition": { "title": "boundary condition", - "summary": "boundary condition ('target'), 2^256 / difficulty", + "description": "boundary condition ('target'), 2^256 / difficulty", "$ref": "./Data.json#/bytes32" }, "seedHash": { "title": "seed hash", - "summary": "The Keccak-256 hash of the previous epoch's seed hash, if it's the first block then it's the Keccak-256 hash of a series of 32bytes of zeros", + "description": "The Keccak-256 hash of the previous epoch's seed hash, if it's the first block then it's the Keccak-256 hash of a series of 32bytes of zeros", "$ref": "./Data.json#/bytes32" } } diff --git a/components/ProtocolVersion.json b/components/ProtocolVersion.json index 351289f01..6d8264f36 100644 --- a/components/ProtocolVersion.json +++ b/components/ProtocolVersion.json @@ -1,7 +1,7 @@ { "protocolVersion": { "title": "protocol version", - "summary": "current Ethereum protocol version", + "description": "current Ethereum protocol version", "$ref": "./Quantity.json#/integer" } } diff --git a/components/Syncing.json b/components/Syncing.json index 90b5697cb..f18b91155 100644 --- a/components/Syncing.json +++ b/components/Syncing.json @@ -16,17 +16,17 @@ }, "startingBlock": { "title": "starting block", - "summary": "block number at which syncing started", + "description": "block number at which syncing started", "$ref": "./Quantity.json#/integer" }, "currentBlock": { "title": "current block", - "summary": "number of the most-recent block synced", + "description": "number of the most-recent block synced", "$ref": "./Quantity.json#/integer" }, "highestBlock": { "title": "highest block", - "summary": "number of latest block on the network", + "description": "number of latest block on the network", "$ref": "./Quantity.json#/integer" }, "notSyncing": { @@ -36,7 +36,7 @@ }, "falseOrProgressObject": { "title": "false or syncing progress object", - "summary": "false if this client is not syncing with the network, otherwise a syncing progres object", + "description": "false if this client is not syncing with the network, otherwise a syncing progres object", "oneOf": [ { "$ref": "./Syncing.json#/notSyncing" }, { "$ref": "./Syncing.json#/progressObject" } diff --git a/components/Transaction.json b/components/Transaction.json index 0384318d8..2d1837beb 100644 --- a/components/Transaction.json +++ b/components/Transaction.json @@ -143,13 +143,13 @@ ] }, "index": { - "name": "transactionIndex", + "title": "transactionIndex", "description": "index of a transaction in the specified block", "$ref": "./Quantity.json#/integer" }, "hash": { "title": "transactionHash", - "summary": "hash of a transaction", + "description": "hash of a transaction", "$ref": "./Data.json#/hash32" }, "hashOrZeroHash": { @@ -175,17 +175,17 @@ }, "root": { "title": "transaction root", - "summary": "The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block", + "description": "The Keccak 256-bit hash of the root node of the trie structure populated with each transaction in the transactions list portion of the block", "$ref": "./Data.json#/hash32" }, "signedTransactionData": { "title": "signed transaction data", - "summary": "the encoding of the [...rawTransactionData, v, r, s] (in order) of the transaction object", + "description": "the encoding of the [...rawTransactionData, v, r, s] (in order) of the transaction object", "$ref": "./Data.json#/bytes" }, "count": { "title": "transaction count", - "summary": "number of transactions sent from the specified address", + "description": "number of transactions sent from the specified address", "$ref": "./Quantity.json#/integer" } } diff --git a/components/Uncle.json b/components/Uncle.json index bbdb1a72b..721e2a987 100644 --- a/components/Uncle.json +++ b/components/Uncle.json @@ -57,17 +57,17 @@ }, "sha3Uncles": { "title": "ommersHash", - "summary": "SHA3 (Keccak-256) of the uncles data in this block", + "description": "SHA3 (Keccak-256) of the uncles data in this block", "$ref": "./Data.json#/hash32" }, "uncles": { - "name": "uncles", - "summary": "list of uncle hashes", + "title": "uncles", + "description": "list of uncle hashes", "$ref": "./Transaction.json#/uncles" }, "uncleObjectOrNull": { "title": "uncle or null", - "summary": "null if no block or uncle is found, otherwise an uncle object", + "description": "null if no block or uncle is found, otherwise an uncle object", "oneOf": [ { "$ref": "./Uncle.json#/uncleObject" @@ -79,7 +79,7 @@ }, "index": { "title": "uncle index", - "summary": "index of uncle", + "description": "index of uncle", "$ref": "./Quantity.json#/integer" } }