Also see firefly-ethconnect for the hardened
connector optimized for private Ethereum sidechains, optimized for finality assured consensus
algorithms and throughput.
License
Apache 2.0
ABI Encoding
A key responsibility of the FFCAPI connector is to map from developer friendly JSON inputs/outputs
down to the binary encoding of the blockchain.
This repo uses the Apache 2.0 RLP encoding/decoding utilities from the
firefly-signer repository.
Configuration
For a full list of configuration options see config.md
For EVM connector to function properly, you should check the blockchain node supports the following JSON-RPC Methods over HTTP:
Event tracking
eth_blockNumber
eth_getBlockByNumber
eth_getBlockByHash
eth_getLogs
eth_getTransactionByHash
eth_getTransactionReceipt
Additionally, when connector.events.filterPollingMode is server (the default), node-side filters are used and the following are required (eth_newBlockFilter only with the default full chainTrackingMode - light mode polls eth_blockNumber for new blocks in either filter polling mode):
Hyperledger FireFly EVM Connector
This repo provides a reference implementation of the FireFly Connector API (FFCAPI) for EVM Based blockchains.
See the Hyperledger Firefly Documentation and the FireFly Transaction Manager repository for more information.
License
Apache 2.0
ABI Encoding
A key responsibility of the FFCAPI connector is to map from developer friendly JSON inputs/outputs down to the binary encoding of the blockchain.
This repo uses the Apache 2.0 RLP encoding/decoding utilities from the firefly-signer repository.
Configuration
For a full list of configuration options see config.md
Example configuration
Blockchain node compatibility
For EVM connector to function properly, you should check the blockchain node supports the following JSON-RPC Methods over HTTP:
Event tracking
eth_blockNumbereth_getBlockByNumbereth_getBlockByHasheth_getLogseth_getTransactionByHasheth_getTransactionReceiptAdditionally, when connector.events.filterPollingMode is
server(the default), node-side filters are used and the following are required (eth_newBlockFilteronly with the default fullchainTrackingMode-lightmode pollseth_blockNumberfor new blocks in either filter polling mode):eth_newBlockFiltereth_newFiltereth_getFilterLogseth_getFilterChangeseth_uninstallFilterQuery
eth_calleth_getBalanceeth_gasPriceTransaction submission
eth_estimateGaseth_sendTransaction/eth_sendRawTransactioneth_getTransactionCountOptional methods
Transaction tracing
debug_traceTransactionBlock listener
eth_getBlockByHasheth_getBlockByNumberReceipt fetching
eth_getBlockReceipts