app

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2025 License: GPL-3.0 Imports: 72 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_solver_app_solver_proto protoreflect.FileDescriptor

Functions

func Claimant added in v0.14.0

func Claimant(network netconf.ID, token libtokens.Token) (common.Address, bool)

Claimant returns the address that should claim the order/token, or false if it doesn't exist.

func Run

func Run(ctx context.Context, cfg Config) error

Run starts the solver service.

func WriteConfigTOML

func WriteConfigTOML(cfg Config, logCfg log.Config, path string) error

WriteConfigTOML writes the toml solver config to disk.

Types

type APIError added in v0.14.0

type APIError struct {
	Err        error
	StatusCode int
}

APIError wraps an error with a non-200 HTTP status code.

func (APIError) Error added in v0.14.0

func (e APIError) Error() string

type CallGotFormatter added in v0.13.0

type CallGotFormatter struct{}

CallGotFormatter formats the got value of a CallMatcher.

func (CallGotFormatter) Got added in v0.13.0

func (CallGotFormatter) Got(got any) string

type CallMatcher added in v0.13.0

type CallMatcher struct {
	Name string

	To common.Address

	// if omitted, matches any selector
	Selector []byte
}

CallMatcher is a gomock.Matcher for ethereum.CallMsg.

func (CallMatcher) Matches added in v0.13.0

func (m CallMatcher) Matches(x any) bool

func (CallMatcher) String added in v0.13.0

func (m CallMatcher) String() string

type Config

type Config struct {
	RPCEndpoints    xchain.RPCEndpoints
	Network         netconf.ID
	MonitoringAddr  string
	APIAddr         string
	SolverPrivKey   string
	DBDir           string
	Tracer          tracer.Config
	CoinGeckoAPIKey string
}

func DefaultConfig

func DefaultConfig() Config

type Cursor

type Cursor struct {
	ChainId     uint64 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	ConfLevel   uint32 `protobuf:"varint,2,opt,name=conf_level,json=confLevel,proto3" json:"conf_level,omitempty"`
	BlockHeight uint64 `protobuf:"varint,3,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
	// contains filtered or unexported fields
}

func (*Cursor) Descriptor deprecated

func (*Cursor) Descriptor() ([]byte, []int)

Deprecated: Use Cursor.ProtoReflect.Descriptor instead.

func (*Cursor) GetBlockHeight

func (x *Cursor) GetBlockHeight() uint64

func (*Cursor) GetChainId

func (x *Cursor) GetChainId() uint64

func (*Cursor) GetConfLevel

func (x *Cursor) GetConfLevel() uint32

func (*Cursor) ProtoMessage

func (*Cursor) ProtoMessage()

func (*Cursor) ProtoReflect

func (x *Cursor) ProtoReflect() protoreflect.Message

func (*Cursor) Reset

func (x *Cursor) Reset()

func (*Cursor) String

func (x *Cursor) String() string

type CursorChainIdConfLevelIndexKey

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

func (CursorChainIdConfLevelIndexKey) WithChainId

func (CursorChainIdConfLevelIndexKey) WithChainIdConfLevel

func (this CursorChainIdConfLevelIndexKey) WithChainIdConfLevel(chain_id uint64, conf_level uint32) CursorChainIdConfLevelIndexKey

type CursorIndexKey

type CursorIndexKey interface {
	// contains filtered or unexported methods
}

type CursorIterator

type CursorIterator struct {
	ormtable.Iterator
}

func (CursorIterator) Value

func (i CursorIterator) Value() (*Cursor, error)

type CursorPrimaryKey

type CursorPrimaryKey = CursorChainIdConfLevelIndexKey

primary key starting index..

type CursorTable

type CursorTable interface {
	Insert(ctx context.Context, cursor *Cursor) error
	Update(ctx context.Context, cursor *Cursor) error
	Save(ctx context.Context, cursor *Cursor) error
	Delete(ctx context.Context, cursor *Cursor) error
	Has(ctx context.Context, chain_id uint64, conf_level uint32) (found bool, err error)
	// Get returns nil and an error which responds true to ormerrors.IsNotFound() if the record was not found.
	Get(ctx context.Context, chain_id uint64, conf_level uint32) (*Cursor, error)
	List(ctx context.Context, prefixKey CursorIndexKey, opts ...ormlist.Option) (CursorIterator, error)
	ListRange(ctx context.Context, from, to CursorIndexKey, opts ...ormlist.Option) (CursorIterator, error)
	DeleteBy(ctx context.Context, prefixKey CursorIndexKey) error
	DeleteRange(ctx context.Context, from, to CursorIndexKey) error
	// contains filtered or unexported methods
}

func NewCursorTable

func NewCursorTable(db ormtable.Schema) (CursorTable, error)

type FillOriginData added in v0.13.0

type FillOriginData = solvernet.FillOriginData

type FilledData added in v0.14.0

type FilledData struct {
	MinReceived []bindings.IERC7683Output
}

FilledData contains order data that is only available for filled orders.

type Handler added in v0.14.0

type Handler struct {
	// Endpoint is the http endpoint path.
	Endpoint string
	// ZeroReq returns a zero struct pointer of the request type used for marshaling incoming requests.
	ZeroReq func() any
	// HandleFunc is the function that handles the request and returns a response.
	// The request will be a pointer (same at type returned by ZeroReq).
	// The response must be a struct and optional error.
	HandleFunc func(context.Context, any) (any, error)

	// SkipInstrument skips the handler instrumentation.
	SkipInstrument bool
}

type MockClients added in v0.13.0

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

func (MockClients) Client added in v0.13.0

func (m MockClients) Client(t *testing.T, chainID uint64) *mock.MockClient

Client returns a mock client for the given chainID.

func (MockClients) Finish added in v0.13.0

func (m MockClients) Finish(t *testing.T)

Finish finishes all mock controllers.

type Order added in v0.13.0

type Order struct {
	ID            OrderID
	Offset        uint64
	SourceChainID uint64
	Status        solvernet.OrderStatus
	UpdatedBy     common.Address
	// contains filtered or unexported fields
}

func (Order) MinReceived added in v0.13.0

func (o Order) MinReceived() ([]bindings.IERC7683Output, error)

func (Order) PendingData added in v0.14.0

func (o Order) PendingData() (PendingData, error)

type OrderData added in v0.13.0

type OrderData = bindings.SolverNetOrderData

type OrderID added in v0.13.0

type OrderID = solvernet.OrderID

type OrderResolved added in v0.13.0

type OrderResolved = solvernet.OrderResolved

type OrderState added in v0.13.0

type OrderState = solvernet.OrderState

type PendingData added in v0.14.0

type PendingData struct {
	MinReceived        []bindings.IERC7683Output
	DestinationSettler common.Address
	DestinationChainID uint64

	FillInstruction bindings.IERC7683FillInstruction
	FillOriginData  []byte
	MaxSpent        []bindings.IERC7683Output
}

PendingData contains order data that is only available for pending orders.

func (PendingData) ParsedFillOriginData added in v0.14.0

func (d PendingData) ParsedFillOriginData() (FillOriginData, error)

type RejectionError added in v0.13.0

type RejectionError struct {
	Reason types.RejectReason // Succinct human-readable reason for rejection.
	Err    error              // Internal detailed reject condition
}

RejectionError implement error, but represents a logical (expected) rejection, not an unexpected system error. We combine rejections with errors for detailed internal structured errors.

func (*RejectionError) Error added in v0.13.0

func (r *RejectionError) Error() string

Error implements error.

type SolverStore

type SolverStore interface {
	CursorTable() CursorTable
	// contains filtered or unexported methods
}

func NewSolverStore

func NewSolverStore(db ormtable.Schema) (SolverStore, error)

type TokenAmt added in v0.14.0

type TokenAmt struct {
	Token  stokens.Token
	Amount *big.Int
}

TokenAmt represents a token and an amount. It differs from types.AddrAmt in that it contains fully resolved token type, not just the token address.

func QuoteDeposit added in v0.14.0

func QuoteDeposit(depositTkn stokens.Token, expense TokenAmt) (TokenAmt, error)

QuoteDeposit returns the source chain deposit required to cover `expense`.

Jump to

Keyboard shortcuts

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