Skip to content

About

Firefly EVM Connect

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

13 watching

Forks

codecov Go Reference

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.

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

Example configuration

connectors:
  - type: ethereum
    server:
      port: 5102
    ethereum:
      url: http://localhost:8545

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_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):

  • eth_newBlockFilter
  • eth_newFilter
  • eth_getFilterLogs
  • eth_getFilterChanges
  • eth_uninstallFilter

Query

  • eth_call
  • eth_getBalance
  • eth_gasPrice

Transaction submission

  • eth_estimateGas
  • eth_sendTransaction / eth_sendRawTransaction
  • eth_getTransactionCount

Optional methods

Transaction tracing

Required when connector.traceTXForRevertReason is set to true (default: false)

  • debug_traceTransaction

Block listener

Required when connector.blockTrackingMode is set to inMemoryPartialChain

  • eth_getBlockByHash
  • eth_getBlockByNumber

Receipt fetching

Required when connector.useGetBlockReceipts is set to true

  • eth_getBlockReceipts

About

Firefly EVM Connect

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

13 watching

Forks

Releases

Packages

Used by

Contributors

Languages