github.com/theQRL/go-zond@v0.2.1/graphql/schema.go (about) 1 // Copyright 2019 The go-ethereum Authors 2 // This file is part of the go-ethereum library. 3 // 4 // The go-ethereum library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The go-ethereum library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. 16 17 package graphql 18 19 const schema string = ` 20 # Bytes32 is a 32 byte binary string, represented as 0x-prefixed hexadecimal. 21 scalar Bytes32 22 # Address is a 20 byte Zond address, represented as 0x-prefixed hexadecimal. 23 scalar Address 24 # Bytes is an arbitrary length binary string, represented as 0x-prefixed hexadecimal. 25 # An empty byte string is represented as '0x'. Byte strings must have an even number of hexadecimal nybbles. 26 scalar Bytes 27 # BigInt is a large integer. Input is accepted as either a JSON number or as a string. 28 # Strings may be either decimal or 0x-prefixed hexadecimal. Output values are all 29 # 0x-prefixed hexadecimal. 30 scalar BigInt 31 # Long is a 64 bit unsigned integer. Input is accepted as either a JSON number or as a string. 32 # Strings may be either decimal or 0x-prefixed hexadecimal. Output values are all 33 # 0x-prefixed hexadecimal. 34 scalar Long 35 36 schema { 37 query: Query 38 mutation: Mutation 39 } 40 41 # Account is a Zond account at a particular block. 42 type Account { 43 # Address is the address owning the account. 44 address: Address! 45 # Balance is the balance of the account, in wei. 46 balance: BigInt! 47 # TransactionCount is the number of transactions sent from this account, 48 # or in the case of a contract, the number of contracts created. Otherwise 49 # known as the nonce. 50 transactionCount: Long! 51 # Code contains the smart contract code for this account, if the account 52 # is a (non-self-destructed) contract. 53 code: Bytes! 54 # Storage provides access to the storage of a contract account, indexed 55 # by its 32 byte slot identifier. 56 storage(slot: Bytes32!): Bytes32! 57 } 58 59 # Log is a Zond event log. 60 type Log { 61 # Index is the index of this log in the block. 62 index: Long! 63 # Account is the account which generated this log - this will always 64 # be a contract account. 65 account(block: Long): Account! 66 # Topics is a list of 0-4 indexed topics for the log. 67 topics: [Bytes32!]! 68 # Data is unindexed data for this log. 69 data: Bytes! 70 # Transaction is the transaction that generated this log entry. 71 transaction: Transaction! 72 } 73 74 type AccessTuple { 75 address: Address! 76 storageKeys : [Bytes32!]! 77 } 78 79 type Withdrawal { 80 # Index is a monotonically increasing identifier issued by consensus layer. 81 index: Long! 82 # Validator is index of the validator associated with withdrawal. 83 validator: Long! 84 # Recipient address of the withdrawn amount. 85 address: Address! 86 # Amount is the withdrawal value in Gwei. 87 amount: Long! 88 } 89 90 # Transaction is a Zond transaction. 91 type Transaction { 92 # Hash is the hash of this transaction. 93 hash: Bytes32! 94 # Nonce is the nonce of the account this transaction was generated with. 95 nonce: Long! 96 # Index is the index of this transaction in the parent block. This will 97 # be null if the transaction has not yet been mined. 98 index: Long 99 # From is the account that sent this transaction - this will always be 100 # an externally owned account. 101 from(block: Long): Account! 102 # To is the account the transaction was sent to. This is null for 103 # contract-creating transactions. 104 to(block: Long): Account 105 # Value is the value, in wei, sent along with this transaction. 106 value: BigInt! 107 # MaxFeePerGas is the maximum fee per gas offered to include a transaction, in wei. 108 maxFeePerGas: BigInt 109 # MaxPriorityFeePerGas is the maximum miner tip per gas offered to include a transaction, in wei. 110 maxPriorityFeePerGas: BigInt 111 # EffectiveTip is the actual amount of reward going to miner after considering the max fee cap. 112 effectiveTip: BigInt 113 # Gas is the maximum amount of gas this transaction can consume. 114 gas: Long! 115 # InputData is the data supplied to the target of the transaction. 116 inputData: Bytes! 117 # Block is the block this transaction was mined in. This will be null if 118 # the transaction has not yet been mined. 119 block: Block 120 121 # Status is the return status of the transaction. This will be 1 if the 122 # transaction succeeded, or 0 if it failed (due to a revert, or due to 123 # running out of gas). If the transaction has not yet been mined, this 124 # field will be null. 125 status: Long 126 # GasUsed is the amount of gas that was used processing this transaction. 127 # If the transaction has not yet been mined, this field will be null. 128 gasUsed: Long 129 # CumulativeGasUsed is the total gas used in the block up to and including 130 # this transaction. If the transaction has not yet been mined, this field 131 # will be null. 132 cumulativeGasUsed: Long 133 # EffectiveGasPrice is actual value per gas deducted from the sender's 134 # account. It is baseFeePerGas + min(maxFeePerGas - baseFeePerGas, 135 # maxPriorityFeePerGas). 136 effectiveGasPrice: BigInt 137 # CreatedContract is the account that was created by a contract creation 138 # transaction. If the transaction was not a contract creation transaction, 139 # or it has not yet been mined, this field will be null. 140 createdContract(block: Long): Account 141 # Logs is a list of log entries emitted by this transaction. If the 142 # transaction has not yet been mined, this field will be null. 143 logs: [Log!] 144 publicKey: Bytes! 145 signature: Bytes! 146 # Envelope transaction support 147 type: Long 148 accessList: [AccessTuple!] 149 # Raw is the canonical encoding of the transaction: it returns the type and payload. 150 raw: Bytes! 151 # RawReceipt is the canonical encoding of the receipt: this is equivalent to 152 # TxType || ReceiptEncoding. 153 rawReceipt: Bytes! 154 } 155 156 # BlockFilterCriteria encapsulates log filter criteria for a filter applied 157 # to a single block. 158 input BlockFilterCriteria { 159 # Addresses is list of addresses that are of interest. If this list is 160 # empty, results will not be filtered by address. 161 addresses: [Address!] 162 # Topics list restricts matches to particular event topics. Each event has a list 163 # of topics. Topics matches a prefix of that list. An empty element array matches any 164 # topic. Non-empty elements represent an alternative that matches any of the 165 # contained topics. 166 # 167 # Examples: 168 # - [] or nil matches any topic list 169 # - [[A]] matches topic A in first position 170 # - [[], [B]] matches any topic in first position, B in second position 171 # - [[A], [B]] matches topic A in first position, B in second position 172 # - [[A, B]], [C, D]] matches topic (A OR B) in first position, (C OR D) in second position 173 topics: [[Bytes32!]!] 174 } 175 176 # Block is a Zond block. 177 type Block { 178 # Number is the number of this block, starting at 0 for the genesis block. 179 number: Long! 180 # Hash is the block hash of this block. 181 hash: Bytes32! 182 # Parent is the parent block of this block. 183 parent: Block 184 # TransactionsRoot is the keccak256 hash of the root of the trie of transactions in this block. 185 transactionsRoot: Bytes32! 186 # TransactionCount is the number of transactions in this block. if 187 # transactions are not available for this block, this field will be null. 188 transactionCount: Long 189 # StateRoot is the keccak256 hash of the state trie after this block was processed. 190 stateRoot: Bytes32! 191 # ReceiptsRoot is the keccak256 hash of the trie of transaction receipts in this block. 192 receiptsRoot: Bytes32! 193 # Miner is the account that mined this block. 194 miner(block: Long): Account! 195 # ExtraData is an arbitrary data field supplied by the miner. 196 extraData: Bytes! 197 # GasLimit is the maximum amount of gas that was available to transactions in this block. 198 gasLimit: Long! 199 # GasUsed is the amount of gas that was used executing transactions in this block. 200 gasUsed: Long! 201 # BaseFeePerGas is the fee per unit of gas burned by the protocol in this block. 202 baseFeePerGas: BigInt 203 # NextBaseFeePerGas is the fee per unit of gas which needs to be burned in the next block. 204 nextBaseFeePerGas: BigInt 205 # Timestamp is the unix timestamp at which this block was mined. 206 timestamp: Long! 207 # LogsBloom is a bloom filter that can be used to check if a block may 208 # contain log entries matching a filter. 209 logsBloom: Bytes! 210 # Random is the hash that was used as an input to the PoW process. 211 random: Bytes32! 212 # Transactions is a list of transactions associated with this block. If 213 # transactions are unavailable for this block, this field will be null. 214 transactions: [Transaction!] 215 # TransactionAt returns the transaction at the specified index. If 216 # transactions are unavailable for this block, or if the index is out of 217 # bounds, this field will be null. 218 transactionAt(index: Long!): Transaction 219 # Logs returns a filtered set of logs from this block. 220 logs(filter: BlockFilterCriteria!): [Log!]! 221 # Account fetches a Zond account at the current block's state. 222 account(address: Address!): Account! 223 # Call executes a local call operation at the current block's state. 224 call(data: CallData!): CallResult 225 # EstimateGas estimates the amount of gas that will be required for 226 # successful execution of a transaction at the current block's state. 227 estimateGas(data: CallData!): Long! 228 # RawHeader is the RLP encoding of the block's header. 229 rawHeader: Bytes! 230 # Raw is the RLP encoding of the block. 231 raw: Bytes! 232 # WithdrawalsRoot is the withdrawals trie root in this block. 233 # If withdrawals are unavailable for this block, this field will be null. 234 withdrawalsRoot: Bytes32 235 # Withdrawals is a list of withdrawals associated with this block. If 236 # withdrawals are unavailable for this block, this field will be null. 237 withdrawals: [Withdrawal!] 238 } 239 240 # CallData represents the data associated with a local contract call. 241 # All fields are optional. 242 input CallData { 243 # From is the address making the call. 244 from: Address 245 # To is the address the call is sent to. 246 to: Address 247 # Gas is the amount of gas sent with the call. 248 gas: Long 249 # MaxFeePerGas is the maximum fee per gas offered, in wei. 250 maxFeePerGas: BigInt 251 # MaxPriorityFeePerGas is the maximum miner tip per gas offered, in wei. 252 maxPriorityFeePerGas: BigInt 253 # Value is the value, in wei, sent along with the call. 254 value: BigInt 255 # Data is the data sent to the callee. 256 data: Bytes 257 } 258 259 # CallResult is the result of a local call operation. 260 type CallResult { 261 # Data is the return data of the called contract. 262 data: Bytes! 263 # GasUsed is the amount of gas used by the call, after any refunds. 264 gasUsed: Long! 265 # Status is the result of the call - 1 for success or 0 for failure. 266 status: Long! 267 } 268 269 # FilterCriteria encapsulates log filter criteria for searching log entries. 270 input FilterCriteria { 271 # FromBlock is the block at which to start searching, inclusive. Defaults 272 # to the latest block if not supplied. 273 fromBlock: Long 274 # ToBlock is the block at which to stop searching, inclusive. Defaults 275 # to the latest block if not supplied. 276 toBlock: Long 277 # Addresses is a list of addresses that are of interest. If this list is 278 # empty, results will not be filtered by address. 279 addresses: [Address!] 280 # Topics list restricts matches to particular event topics. Each event has a list 281 # of topics. Topics matches a prefix of that list. An empty element array matches any 282 # topic. Non-empty elements represent an alternative that matches any of the 283 # contained topics. 284 # 285 # Examples: 286 # - [] or nil matches any topic list 287 # - [[A]] matches topic A in first position 288 # - [[], [B]] matches any topic in first position, B in second position 289 # - [[A], [B]] matches topic A in first position, B in second position 290 # - [[A, B]], [C, D]] matches topic (A OR B) in first position, (C OR D) in second position 291 topics: [[Bytes32!]!] 292 } 293 294 # SyncState contains the current synchronisation state of the client. 295 type SyncState { 296 # StartingBlock is the block number at which synchronisation started. 297 startingBlock: Long! 298 # CurrentBlock is the point at which synchronisation has presently reached. 299 currentBlock: Long! 300 # HighestBlock is the latest known block number. 301 highestBlock: Long! 302 } 303 304 # Pending represents the current pending state. 305 type Pending { 306 # TransactionCount is the number of transactions in the pending state. 307 transactionCount: Long! 308 # Transactions is a list of transactions in the current pending state. 309 transactions: [Transaction!] 310 # Account fetches a Zond account for the pending state. 311 account(address: Address!): Account! 312 # Call executes a local call operation for the pending state. 313 call(data: CallData!): CallResult 314 # EstimateGas estimates the amount of gas that will be required for 315 # successful execution of a transaction for the pending state. 316 estimateGas(data: CallData!): Long! 317 } 318 319 type Query { 320 # Block fetches a Zond block by number or by hash. If neither is 321 # supplied, the most recent known block is returned. 322 block(number: Long, hash: Bytes32): Block 323 # Blocks returns all the blocks between two numbers, inclusive. If 324 # to is not supplied, it defaults to the most recent known block. 325 blocks(from: Long, to: Long): [Block!]! 326 # Pending returns the current pending state. 327 pending: Pending! 328 # Transaction returns a transaction specified by its hash. 329 transaction(hash: Bytes32!): Transaction 330 # Logs returns log entries matching the provided filter. 331 logs(filter: FilterCriteria!): [Log!]! 332 # GasPrice returns the node's estimate of a gas price sufficient to 333 # ensure a transaction is mined in a timely fashion. 334 gasPrice: BigInt! 335 # MaxPriorityFeePerGas returns the node's estimate of a gas tip sufficient 336 # to ensure a transaction is mined in a timely fashion. 337 maxPriorityFeePerGas: BigInt! 338 # Syncing returns information on the current synchronisation state. 339 syncing: SyncState 340 # ChainID returns the current chain ID for transaction replay protection. 341 chainID: BigInt! 342 } 343 344 type Mutation { 345 # SendRawTransaction sends an RLP-encoded transaction to the network. 346 sendRawTransaction(data: Bytes!): Bytes32! 347 } 348 `