Skip to content

hyperledger/firefly-evmconnect

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_newBlockFilter
  • eth_getFilterLogs
  • eth_getFilterChanges
  • eth_getLogs
  • eth_newFilter
  • eth_uninstallFilter
  • eth_getTransactionByHash
  • eth_getTransactionReceipt

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

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages