/rly-fork

Primary LanguageGoApache License 2.0Apache-2.0

CCTP Relayer

This service listens and forwards Cross Chain Transfer Protocol events.
Lightweight and easily extensible with more chains.

Installation

git clone https://github.com/strangelove-ventures/noble-cctp-relayer
cd noble-cctp-relayer
go install

Running the relayer

noble-cctp-relayer start --config ./config/sample-app-config.yaml

Sample configs can be found in config/.

API

Simple API to query message state cache

# All messages for a source tx hash
localhost:8000/tx/<hash, including the 0x prefix>
# All messages for a tx hash and domain 0 (Ethereum)
localhost:8000/tx/<hash>?domain=0
# All messages for a tx hash and a given type ('mint' or 'forward')
localhost:8000/tx/<hash>?type=forward

State

IrisLookupId Type Status SourceDomain DestDomain SourceTxHash DestTxHash MsgSentBytes Created Updated
0x123 Mint Created 0 4 0x123 ABC123 bytes... date date
0x123 Forward Pending 0 4 0x123 ABC123 bytes... date date
0x123 Mint Attested 0 4 0x123 ABC123 bytes... date date
0x123 Forward Complete 0 4 0x123 ABC123 bytes... date date
0x123 Mint Failed 0 4 0x123 ABC123 bytes... date date
0x123 Mint Filtered 0 4 0x123 ABC123 bytes... date date

Generating Go ABI bindings

abigen --abi cmd/ethereum/abi/TokenMessenger.json --pkg cmd --type TokenMessenger --out cmd/TokenMessenger.go
abigen --abi cmd/ethereum/abi/TokenMessengerWithMetadata.json --pkg cmd --type TokenMessengerWithMetadata --out cmd/TokenMessengerWithMetadata.go
abigen --abi cmd/ethereum/abi/ERC20.json --pkg integration_testing --type ERC20 --out integration/ERC20.go
abigen --abi cmd/ethereum/abi/MessageTransmitter.json --pkg cmd --type MessageTransmitter --out cmd/MessageTransmitter.go

Useful links

Goerli USDC faucet

Goerli ETH faucet