swapprotocol

package
v0.0.0-...-9fdd194 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: Apache-2.0, MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNegotiateRate  = errors.New("exchange rates mismatch")
	ErrGetBeneficiary = errors.New("get beneficiary err")
)

Functions

This section is empty.

Types

type Interface

type Interface interface {
	// EmitCheque sends a signed cheque to a peer.
	EmitCheque(ctx context.Context, peer string, amount *big.Int, contractId string, token common.Address, issue IssueFunc) (balance *big.Int, err error)
}

Interface is the main interface to send messages over swap protocol.

type IssueFunc

type IssueFunc func(ctx context.Context, beneficiary common.Address, amount *big.Int, token common.Address, sendChequeFunc vault.SendChequeFunc) (*big.Int, error)

type SendChequeFunc

type SendChequeFunc vault.SendChequeFunc

type Service

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

Service is the main implementation of the swap protocol.

var SwapProtocol *Service

func New

func New(beneficiary common.Address, priceOracle priceoracle.Service) *Service

New creates a new swap protocol Service.

func (*Service) EmitCheque

func (s *Service) EmitCheque(ctx context.Context, peer string, amount *big.Int, contractId string, token common.Address, issue IssueFunc) (balance *big.Int, err error)

InitiateCheque attempts to send a cheque to a peer.

func (*Service) GetChainID

func (s *Service) GetChainID() int64

func (*Service) Handler

func (s *Service) Handler(ctx context.Context, requestPid string, encodedCheque string, amountCheck *big.Int, token common.Address) (err error)

func (*Service) SetSwap

func (s *Service) SetSwap(swap Swap)

SetSwap sets the swap to notify.

type Swap

type Swap interface {
	// ReceiveCheque is called by the swap protocol if a cheque is received.
	ReceiveCheque(ctx context.Context, peer string, cheque *vault.SignedCheque, realAmount *big.Int, token common.Address) error
	GetChainid() int64
	PutBeneficiary(peer string, beneficiary common.Address) (common.Address, error)
	Beneficiary(peer string) (beneficiary common.Address, known bool, err error)
}

Swap is the interface the settlement layer should implement to receive cheques.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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