message

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2026 License: LGPL-3.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TIMEOUT     = 10 * time.Minute
	BLOCK_RANGE = 1000
)
View Source
const (
	DOMAIN_NAME = "OIFEscrowLIFI"
	VERSION     = "1"
)
View Source
const (
	TRANSACTION_TIMEOUT = 30 * time.Second
)

Variables

This section is empty.

Functions

func NewAcrossMessage

func NewAcrossMessage(source, destination uint64, acrossData *AcrossData) *message.Message

func NewLifiEscrowMessage added in v1.0.0

func NewLifiEscrowMessage(source, destination uint64, lifiData *LifiEscrowData) *message.Message

func NewLifiUnlockMessage added in v0.5.0

func NewLifiUnlockMessage(source, destination uint64, lifiData *LifiUnlockData) *message.Message

func NewSprinterCreditMessage added in v1.0.0

func NewSprinterCreditMessage(
	source,
	destination uint64,
	sprinterData *SprinterCreditData) *message.Message

Types

type AcrossData

type AcrossData struct {
	ErrChn chan error `json:"-"`

	DepositTxHash    common.Hash
	DepositId        *big.Int
	Nonce            *big.Int
	BorrowAmount     *big.Int
	LiquidityPool    common.Address
	RepaymentChainID uint64
	Caller           common.Address
	Coordinator      peer.ID
	Deadline         uint64
	Source           uint64
	Destination      uint64
}

type AcrossMessageHandler

type AcrossMessageHandler struct {
	// contains filtered or unexported fields
}

func NewAcrossMessageHandler

func NewAcrossMessageHandler(
	chainID uint64,
	tokenStore config.TokenStore,
	pools map[uint64]common.Address,
	repayers map[uint64]common.Address,
	coordinator Coordinator,
	host host.Host,
	comm comm.Communication,
	fetcher signing.SaveDataFetcher,
	depositFetcher DepositFetcher,
	confirmationWatcher ConfirmationWatcher,
	sigChn chan any,
) *AcrossMessageHandler

func (*AcrossMessageHandler) HandleMessage

func (h *AcrossMessageHandler) HandleMessage(m *message.Message) (*proposal.Proposal, error)

HandleMessage finds the Across deposit with the according deposit ID and starts the MPC signature process for it. The result will be saved into the signature cache through the result channel.

func (*AcrossMessageHandler) Listen

func (h *AcrossMessageHandler) Listen(ctx context.Context)

type ConfirmationWatcher added in v0.2.0

type ConfirmationWatcher interface {
	WaitForTokenConfirmations(
		ctx context.Context,
		chainID uint64,
		txHash common.Hash,
		token common.Address,
		amount *big.Int) error
	WaitForOrderConfirmations(
		ctx context.Context,
		chainID uint64,
		txHash common.Hash,
		orderValue float64) error
}

type Coordinator

type Coordinator interface {
	Execute(ctx context.Context, tssProcesses []tss.TssProcess, resultChn chan interface{}, coordinator peer.ID) error
}

type DepositFetcher added in v0.3.0

type DepositFetcher interface {
	Deposit(ctx context.Context, hash common.Hash, depositID *big.Int) (*events.AcrossDeposit, error)
}

type EventFilterer

type EventFilterer interface {
	FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error)
	LatestBlock() (*big.Int, error)
	TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error)
}

type LifiAPI added in v1.3.0

type LifiAPI interface {
	GetOrder(orderID string) (*lifi.LifiOrder, error)
}

type LifiEscrowData added in v0.5.0

type LifiEscrowData struct {
	ErrChn chan error `json:"-"`

	OrderID       string
	Coordinator   peer.ID
	LiquidityPool common.Address
	Caller        common.Address
	DepositTxHash string
	BorrowAmount  *big.Int
	BorrowToken   string
	Deadline      uint64
	Nonce         *big.Int
	Source        uint64
	Destination   uint64
}

type LifiEscrowMessageHandler added in v0.5.0

type LifiEscrowMessageHandler struct {
	// contains filtered or unexported fields
}

func NewLifiEscrowMessageHandler added in v0.5.0

func NewLifiEscrowMessageHandler(
	chainID uint64,
	mpcAddress common.Address,
	lifiAddresses map[uint64]common.Address,
	coordinator Coordinator,
	host host.Host,
	comm comm.Communication,
	fetcher signing.SaveDataFetcher,
	confirmationWatcher ConfirmationWatcher,
	tokenResolver token.TokenResolver,
	orderFetcher OrderFetcher,
	orderPricer pricing.OrderPricer,
	router router.OrderRouter,
	validator OrderValidator,
	sigChn chan any,
) *LifiEscrowMessageHandler

func (*LifiEscrowMessageHandler) HandleMessage added in v0.5.0

HandleMessage verifies the lifi escrow order on-chain and signs the order if it is valid

func (*LifiEscrowMessageHandler) Listen added in v0.5.0

func (h *LifiEscrowMessageHandler) Listen(ctx context.Context)

type LifiUnlockData added in v0.5.0

type LifiUnlockData struct {
	SigChn              chan interface{} `json:"-"`
	RepaymentAddressChn chan common.Hash `json:"-"`

	OrderID     string
	Settler     common.Address
	BorrowToken string

	Coordinator peer.ID
	Source      uint64
	Destination uint64
}

type LifiUnlockHandler added in v0.5.0

type LifiUnlockHandler struct {
	// contains filtered or unexported fields
}

func NewLifiUnlockHandler added in v0.5.0

func NewLifiUnlockHandler(
	chainID uint64,
	repayer common.Address,
	processors map[string]common.Address,
	api LifiAPI,
	tokenResolver TokenResolver,
	coordinator Coordinator,
	host host.Host,
	comm comm.Communication,
	fetcher signing.SaveDataFetcher,
) *LifiUnlockHandler

func (*LifiUnlockHandler) HandleMessage added in v0.5.0

func (h *LifiUnlockHandler) HandleMessage(m *message.Message) (*proposal.Proposal, error)

HandleMessage signs the unlock request to the address of the repayer.

func (*LifiUnlockHandler) Listen added in v0.5.0

func (h *LifiUnlockHandler) Listen(ctx context.Context)

type OrderFetcher added in v0.5.0

type OrderFetcher interface {
	Order(ctx context.Context, hash common.Hash, orderID common.Hash) (*lifi.LifiOrder, error)
}

type OrderValidator added in v0.5.0

type OrderValidator interface {
	Validate(order *lifi.AugmentedLifiOrder) error
}

type SprinterCreditData added in v1.0.0

type SprinterCreditData struct {
	ErrChn chan error `json:"-"`

	DepositID     string
	BorrowAmount  *big.Int
	Calldata      string
	Deadline      uint64
	LiquidityPool common.Address
	Caller        common.Address
	Nonce         *big.Int
	Coordinator   peer.ID
	Source        uint64
	Destination   uint64
	TokenOut      string
}

type SprinterCreditMessageHandler added in v1.0.0

type SprinterCreditMessageHandler struct {
	// contains filtered or unexported fields
}

func NewSprinterCreditMessageHandler added in v1.0.0

func NewSprinterCreditMessageHandler(
	chainID uint64,
	liquidators map[common.Address]common.Address,
	coordinator Coordinator,
	host host.Host,
	comm comm.Communication,
	fetcher signing.SaveDataFetcher,
	sigChn chan any,
) *SprinterCreditMessageHandler

func (*SprinterCreditMessageHandler) HandleMessage added in v1.0.0

HandleMessage signs the liquidation request if the transaction is going to the Liquidator contract.

func (*SprinterCreditMessageHandler) Listen added in v1.0.0

type TokenPricer

type TokenPricer interface {
	TokenPrice(symbol string) (float64, error)
}

type TokenResolver added in v1.3.0

type TokenResolver interface {
	Token(caipID order.ChainCAIP, address [32]byte) (token.Token, error)
}

type Watcher added in v0.2.0

type Watcher struct {
	// contains filtered or unexported fields
}

func NewWatcher added in v0.2.0

func NewWatcher(
	client EventFilterer,
	tokenPricer TokenPricer,
	tokenStore config.TokenStore,
	confirmations map[uint64]uint64,
	blocktime time.Duration,
) *Watcher

func (*Watcher) WaitForOrderConfirmations added in v0.5.0

func (w *Watcher) WaitForOrderConfirmations(
	ctx context.Context,
	chainID uint64,
	txHash common.Hash,
	orderValue float64,
) error

WaitForConfirmations blocks until the transaction hash has enough on-chain confirmations.

func (*Watcher) WaitForTokenConfirmations added in v0.5.0

func (w *Watcher) WaitForTokenConfirmations(
	ctx context.Context,
	chainID uint64,
	txHash common.Hash,
	token common.Address,
	amount *big.Int,
) error

WaitForTokenConfirmations blocks until the transaction hash has enough on-chain confirmations.

Directories

Path Synopsis
Package mock_message is a generated GoMock package.
Package mock_message is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL