Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 18 additions & 13 deletions content/api-reference/arc/arc-api-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,36 @@ slug: docs/arc/arc-api-overview

| | |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [`arc_getCertificate`](/docs/chains/arc/arc-api-endpoints/arc-get-certificate) | [`debug_executionWitness`](/docs/chains/arc/arc-api-endpoints/debug-execution-witness) |
| [`eth_accounts`](/docs/chains/arc/arc-api-endpoints/eth-accounts) | [`eth_blobBaseFee`](/docs/chains/arc/arc-api-endpoints/eth-blob-base-fee) |
| [`eth_blockNumber`](/docs/chains/arc/arc-api-endpoints/eth-block-number) | [`eth_call`](/docs/chains/arc/arc-api-endpoints/eth-call) |
| [`eth_callBundle`](/docs/chains/arc/arc-api-endpoints/eth-call-bundle) | [`eth_callMany`](/docs/chains/arc/arc-api-endpoints/eth-call-many) |
| [`eth_chainId`](/docs/chains/arc/arc-api-endpoints/eth-chain-id) | [`eth_createAccessList`](/docs/chains/arc/arc-api-endpoints/eth-create-access-list) |
| [`eth_estimateGas`](/docs/chains/arc/arc-api-endpoints/eth-estimate-gas) | [`eth_feeHistory`](/docs/chains/arc/arc-api-endpoints/eth-fee-history) |
| [`eth_chainId`](/docs/chains/arc/arc-api-endpoints/eth-chain-id) | [`eth_config`](/docs/chains/arc/arc-api-endpoints/eth-config) |
| [`eth_createAccessList`](/docs/chains/arc/arc-api-endpoints/eth-create-access-list) | [`eth_estimateGas`](/docs/chains/arc/arc-api-endpoints/eth-estimate-gas) |
| [`eth_feeHistory`](/docs/chains/arc/arc-api-endpoints/eth-fee-history) | [`eth_fillTransaction`](/docs/chains/arc/arc-api-endpoints/eth-fill-transaction) |
| [`eth_gasPrice`](/docs/chains/arc/arc-api-endpoints/eth-gas-price) | [`eth_getAccount`](/docs/chains/arc/arc-api-endpoints/eth-get-account) |
| [`eth_getAccountInfo`](/docs/chains/arc/arc-api-endpoints/eth-get-account-info) | [`eth_getBalance`](/docs/chains/arc/arc-api-endpoints/eth-get-balance) |
| [`eth_getBlockByHash`](/docs/chains/arc/arc-api-endpoints/eth-get-block-by-hash) | [`eth_getBlockByNumber`](/docs/chains/arc/arc-api-endpoints/eth-get-block-by-number) |
| [`eth_getBlockReceipts`](/docs/chains/arc/arc-api-endpoints/eth-get-block-receipts) | [`eth_getBlockTransactionCountByHash`](/docs/chains/arc/arc-api-endpoints/eth-get-block-transaction-count-by-hash) |
| [`eth_getBlockTransactionCountByNumber`](/docs/chains/arc/arc-api-endpoints/eth-get-block-transaction-count-by-number) | [`eth_getCode`](/docs/chains/arc/arc-api-endpoints/eth-get-code) |
| [`eth_getFilterChanges`](/docs/chains/arc/arc-api-endpoints/eth-get-filter-changes) | [`eth_getFilterLogs`](/docs/chains/arc/arc-api-endpoints/eth-get-filter-logs) |
| [`eth_getHeaderByHash`](/docs/chains/arc/arc-api-endpoints/eth-get-header-by-hash) | [`eth_getHeaderByNumber`](/docs/chains/arc/arc-api-endpoints/eth-get-header-by-number) |
| [`eth_getLogs`](/docs/chains/arc/arc-api-endpoints/eth-get-logs) | [`eth_getProof`](/docs/chains/arc/arc-api-endpoints/eth-get-proof) |
| [`eth_getRawTransactionByHash`](/docs/chains/arc/arc-api-endpoints/eth-get-raw-transaction-by-hash) | [`eth_getStorageAt`](/docs/chains/arc/arc-api-endpoints/eth-get-storage-at) |
| [`eth_getTransactionByBlockHashAndIndex`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-by-block-hash-and-index) | [`eth_getTransactionByBlockNumberAndIndex`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-by-block-number-and-index) |
| [`eth_getTransactionByHash`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-by-hash) | [`eth_getTransactionCount`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-count) |
| [`eth_getTransactionReceipt`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-receipt) | [`eth_getUncleByBlockHashAndIndex`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-by-block-hash-and-index) |
| [`eth_getUncleByBlockNumberAndIndex`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-by-block-number-and-index) | [`eth_getUncleCountByBlockHash`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-count-by-block-hash) |
| [`eth_getUncleCountByBlockNumber`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-count-by-block-number) | [`eth_maxPriorityFeePerGas`](/docs/chains/arc/arc-api-endpoints/eth-max-priority-fee-per-gas) |
| [`eth_newBlockFilter`](/docs/chains/arc/arc-api-endpoints/eth-new-block-filter) | [`eth_newFilter`](/docs/chains/arc/arc-api-endpoints/eth-new-filter) |
| [`eth_newPendingTransactionFilter`](/docs/chains/arc/arc-api-endpoints/eth-new-pending-transaction-filter) | [`eth_protocolVersion`](/docs/chains/arc/arc-api-endpoints/eth-protocol-version) |
| [`eth_sendRawTransaction`](/docs/chains/arc/arc-api-endpoints/eth-send-raw-transaction) | [`eth_sendRawTransactionSync`](/docs/chains/arc/arc-api-endpoints/eth-send-raw-transaction-sync) |
| [`eth_simulateV1`](/docs/chains/arc/arc-api-endpoints/eth-simulate-v-1) | [`eth_submitWork`](/docs/chains/arc/arc-api-endpoints/eth-submit-work) |
| [`eth_subscribe`](/docs/chains/arc/arc-api-endpoints/eth-subscribe) | [`eth_syncing`](/docs/chains/arc/arc-api-endpoints/eth-syncing) |
| [`eth_uninstallFilter`](/docs/chains/arc/arc-api-endpoints/eth-uninstall-filter) | [`eth_unsubscribe`](/docs/chains/arc/arc-api-endpoints/eth-unsubscribe) |
| [`net_version`](/docs/chains/arc/arc-api-endpoints/net-version) | [`web3_clientVersion`](/docs/chains/arc/arc-api-endpoints/web-3-client-version) |
| [`eth_getTransactionByHash`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-by-hash) | [`eth_getTransactionBySenderAndNonce`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-by-sender-and-nonce) |
| [`eth_getTransactionCount`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-count) | [`eth_getTransactionReceipt`](/docs/chains/arc/arc-api-endpoints/eth-get-transaction-receipt) |
| [`eth_getUncleByBlockHashAndIndex`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-by-block-hash-and-index) | [`eth_getUncleByBlockNumberAndIndex`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-by-block-number-and-index) |
| [`eth_getUncleCountByBlockHash`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-count-by-block-hash) | [`eth_getUncleCountByBlockNumber`](/docs/chains/arc/arc-api-endpoints/eth-get-uncle-count-by-block-number) |
| [`eth_maxPriorityFeePerGas`](/docs/chains/arc/arc-api-endpoints/eth-max-priority-fee-per-gas) | [`eth_newBlockFilter`](/docs/chains/arc/arc-api-endpoints/eth-new-block-filter) |
| [`eth_newFilter`](/docs/chains/arc/arc-api-endpoints/eth-new-filter) | [`eth_newPendingTransactionFilter`](/docs/chains/arc/arc-api-endpoints/eth-new-pending-transaction-filter) |
| [`eth_protocolVersion`](/docs/chains/arc/arc-api-endpoints/eth-protocol-version) | [`eth_sendRawTransaction`](/docs/chains/arc/arc-api-endpoints/eth-send-raw-transaction) |
| [`eth_sendRawTransactionSync`](/docs/chains/arc/arc-api-endpoints/eth-send-raw-transaction-sync) | [`eth_simulateV1`](/docs/chains/arc/arc-api-endpoints/eth-simulate-v-1) |
| [`eth_submitWork`](/docs/chains/arc/arc-api-endpoints/eth-submit-work) | [`eth_subscribe`](/docs/chains/arc/arc-api-endpoints/eth-subscribe) |
| [`eth_syncing`](/docs/chains/arc/arc-api-endpoints/eth-syncing) | [`eth_uninstallFilter`](/docs/chains/arc/arc-api-endpoints/eth-uninstall-filter) |
| [`eth_unsubscribe`](/docs/chains/arc/arc-api-endpoints/eth-unsubscribe) | [`net_listening`](/docs/chains/arc/arc-api-endpoints/net-listening) |
| [`net_peerCount`](/docs/chains/arc/arc-api-endpoints/net-peer-count) | [`net_version`](/docs/chains/arc/arc-api-endpoints/net-version) |
| [`txpool_content`](/docs/chains/arc/arc-api-endpoints/txpool-content) | [`web3_clientVersion`](/docs/chains/arc/arc-api-endpoints/web-3-client-version) |
| [`web3_sha3`](/docs/chains/arc/arc-api-endpoints/web-3-sha-3) | |

## Related APIs
Expand Down
111 changes: 111 additions & 0 deletions src/openrpc/chains/_components/custom/methods.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,117 @@
# These methods are only supported by specific chains/networks
components:
methods:
# Arc methods
# (Arc's Malachite BFT consensus layer surfaces a custom `arc_` JSON-RPC
# namespace alongside the standard `eth_*` methods.)
arc_getCertificate:
name: arc_getCertificate
summary: Returns the Malachite BFT commit certificate for a finalized Arc block at the given height.
description: >-
Returns the Malachite BFT commit certificate for a finalized block on
Arc. The certificate contains the consensus round, the finalized block
hash, and the base64-encoded validator signatures that decided the
block. It is produced by Arc's Malachite consensus layer and is only
available for blocks that have already been finalized.


Because Arc has deterministic finality on inclusion, once a certificate
exists for a given height it is immutable and safe to cache
indefinitely.


See the [Arc node RPC reference](https://docs.arc.io/arc/tutorials/run-an-arc-node)
for background on the `arc` namespace.
x-compute-units: 20
params:
- name: Block height
required: true
description: >-
The block height to fetch the certificate for. Accepts either a
decimal integer (for example `7`) or a hex-encoded quantity
string (for example `"0x7"`). Must be greater than or equal to
`1`.
schema:
oneOf:
- title: Block height (decimal)
type: integer
minimum: 1
- title: Block height (hex quantity)
type: string
pattern: "^0[xX][0-9a-fA-F]+$"
result:
name: Commit certificate
description: The commit certificate for the requested block height.
schema:
title: Commit certificate
type: object
required:
- height
- round
- block_hash
- signatures
properties:
height:
title: Block height
description: The block height this certificate finalizes.
type: integer
minimum: 1
round:
title: Consensus round
description: The Malachite consensus round in which the block was decided.
type: integer
minimum: 0
block_hash:
title: Block hash
description: The 32-byte hash of the block finalized at this height.
type: string
pattern: "^0x[0-9a-fA-F]{64}$"
signatures:
title: Validator signatures
description: One entry per validator that signed the commit certificate.
type: array
items:
title: Validator signature
type: object
required:
- address
- signature
properties:
address:
title: Validator address
description: The 20-byte validator address.
type: string
pattern: "^0x[0-9a-fA-F]{40}$"
signature:
title: Signature
description: >-
Standard padded Base64 encoding of the 64-byte
validator signature.
type: string
examples:
- name: arc_getCertificate example
params:
- name: Block height
value: "0x7"
result:
name: Commit certificate
value:
height: 7
round: 0
block_hash: "0x751ccaee8df96f648c9ab00121a4ac1a1bcafc0c8e8cb0d205c67346edb37af2"
signatures:
- address: "0x602930d1ab44f1744f42e842b701c2b149c5da4f"
signature: "K3SKb2xKYGWLZ9eMIXtXYckACgU6AaOVwmymD4nIVT6GXvQ9UylllQpSWhTZfuV7oDjo75ynruLh4xHv++jQBA=="
- address: "0x6791e002c8419e8a2fa5266e2951ed1780bc2295"
signature: "uNmquXJkx+4NyNnkLUnnRY+1ZZygb5drQbh9ya50oW0z0H9HS21R7PyueayfHoADnJT9DqbDF+D8KECLmy3+Cw=="
- address: "0x2e78053671f707844a631bc907d4855894848fe3"
signature: "2/52ncq8uRzHMiBiVxTFk10BzEq9InHfHckBu/qK9fomDNmgOPSuwWURu49EGPDti7Q60If4n7/Qt3dLa2N7CQ=="
errors:
- code: -32004
message: Certificate not found
- code: -32602
message: Invalid params (height must be >= 1)

# EVM Methods
# Block methods
eth_getUncleCountByBlockHash:
Expand Down
13 changes: 13 additions & 0 deletions src/openrpc/chains/arc/arc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,27 @@ servers:
- url: https://arc-testnet.g.alchemy.com/v2
name: Arc Testnet
methods:
- $ref: ../_components/custom/methods.yaml#/components/methods/arc_getCertificate
Comment thread
dslovinsky marked this conversation as resolved.
- $ref: >-
../_components/custom/methods.yaml#/components/methods/debug_executionWitness
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_accounts
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_blobBaseFee
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_callBundle
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_callMany
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_config
- $ref: >-
../_components/custom/methods.yaml#/components/methods/eth_createAccessList
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_feeHistory
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_fillTransaction
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_getAccountInfo
- $ref: >-
../_components/custom/methods.yaml#/components/methods/eth_getBlockReceipts
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_getHeaderByHash
- $ref: >-
../_components/custom/methods.yaml#/components/methods/eth_getHeaderByNumber
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_getProof
- $ref: >-
../_components/custom/methods.yaml#/components/methods/eth_getTransactionBySenderAndNonce
- $ref: >-
../_components/custom/methods.yaml#/components/methods/eth_getUncleByBlockHashAndIndex
- $ref: >-
Expand All @@ -38,6 +48,9 @@ methods:
../_components/custom/methods.yaml#/components/methods/eth_sendRawTransactionSync
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_simulateV1
- $ref: ../_components/custom/methods.yaml#/components/methods/eth_syncing
- $ref: ../_components/custom/methods.yaml#/components/methods/net_listening
- $ref: ../_components/custom/methods.yaml#/components/methods/net_peerCount
- $ref: ../_components/custom/methods.yaml#/components/methods/txpool_content
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_blockNumber
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_call
- $ref: ../_components/evm/methods.yaml#/components/methods/eth_chainId
Expand Down
Loading