backend

package
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2023 License: LGPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

Package backend provides the portion of top-level swapd instance management that is shared by both the maker and the taker.

Package backend is a generated GoMock package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend interface {
	XMRClient() monero.WalletClient
	ETHClient() extethclient.EthClient
	NetSender

	RecoveryDB() RecoveryDB

	// NewTxSender creates a new transaction sender, called per-swap
	NewTxSender(asset ethcommon.Address, erc20Contract *contracts.IERC20) (txsender.Sender, error)

	// helpers
	NewSwapCreator(addr ethcommon.Address) (*contracts.SwapCreator, error)
	HandleRelayClaimRequest(remotePeer peer.ID, request *message.RelayClaimRequest) (*message.RelayClaimResponse, error)
	GetRelayerAddressHash() (types.Hash, error)
	HasOngoingSwapAsTaker(peer.ID) error
	SubmitClaimToRelayer(
		peer.ID,
		*types.Hash,
		*contracts.SwapCreatorRelaySwap,
		[32]byte,
	) (*message.RelayClaimResponse, error) // Only used by Taker

	// getters
	Ctx() context.Context
	Env() common.Environment
	SwapManager() swap.Manager
	SwapCreator() *contracts.SwapCreator
	SwapCreatorAddr() ethcommon.Address
	SwapTimeout() time.Duration
	XMRDepositAddress(offerID *types.Hash) *mcrypto.Address

	// setters
	SetSwapTimeout(timeout time.Duration)
	SetXMRDepositAddress(*mcrypto.Address, types.Hash)
	ClearXMRDepositAddress(types.Hash)

	// transfer helpers
	TransferXMR(to *mcrypto.Address, amount *coins.PiconeroAmount) (string, error)
	SweepXMR(to *mcrypto.Address) ([]string, error)
	TransferETH(to ethcommon.Address, amount *coins.WeiAmount, gasLimit *uint64) (*ethtypes.Receipt, error)
	SweepETH(to ethcommon.Address) (*ethtypes.Receipt, error)
}

Backend provides an interface for both the XMRTaker and XMRMaker into the Monero/Ethereum chains. It also interfaces with the network layer.

func NewBackend

func NewBackend(cfg *Config) (Backend, error)

NewBackend returns a new Backend

type Config

type Config struct {
	Ctx             context.Context
	MoneroClient    monero.WalletClient
	EthereumClient  extethclient.EthClient
	Environment     common.Environment
	SwapCreatorAddr ethcommon.Address
	SwapManager     swap.Manager
	RecoveryDB      RecoveryDB
	Net             NetSender
}

Config is the config for the Backend

type MockRecoveryDB

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

MockRecoveryDB is a mock of RecoveryDB interface.

func NewMockRecoveryDB

func NewMockRecoveryDB(ctrl *gomock.Controller) *MockRecoveryDB

NewMockRecoveryDB creates a new mock instance.

func (*MockRecoveryDB) DeleteSwap

func (m *MockRecoveryDB) DeleteSwap(arg0 common.Hash) error

DeleteSwap mocks base method.

func (*MockRecoveryDB) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockRecoveryDB) GetContractSwapInfo

func (m *MockRecoveryDB) GetContractSwapInfo(arg0 common.Hash) (*db.EthereumSwapInfo, error)

GetContractSwapInfo mocks base method.

func (*MockRecoveryDB) GetCounterpartySwapKeys

func (m *MockRecoveryDB) GetCounterpartySwapKeys(arg0 common.Hash) (*mcrypto.PublicKey, *mcrypto.PrivateViewKey, error)

GetCounterpartySwapKeys mocks base method.

func (*MockRecoveryDB) GetCounterpartySwapPrivateKey

func (m *MockRecoveryDB) GetCounterpartySwapPrivateKey(arg0 common.Hash) (*mcrypto.PrivateSpendKey, error)

GetCounterpartySwapPrivateKey mocks base method.

func (*MockRecoveryDB) GetNewSwapTxHash added in v0.3.0

func (m *MockRecoveryDB) GetNewSwapTxHash(arg0 common.Hash) (common.Hash, error)

GetNewSwapTxHash mocks base method.

func (*MockRecoveryDB) GetSwapPrivateKey

func (m *MockRecoveryDB) GetSwapPrivateKey(arg0 common.Hash) (*mcrypto.PrivateSpendKey, error)

GetSwapPrivateKey mocks base method.

func (*MockRecoveryDB) GetSwapRelayerInfo

func (m *MockRecoveryDB) GetSwapRelayerInfo(arg0 common.Hash) (*types.OfferExtra, error)

GetSwapRelayerInfo mocks base method.

func (*MockRecoveryDB) PutContractSwapInfo

func (m *MockRecoveryDB) PutContractSwapInfo(arg0 common.Hash, arg1 *db.EthereumSwapInfo) error

PutContractSwapInfo mocks base method.

func (*MockRecoveryDB) PutCounterpartySwapKeys

func (m *MockRecoveryDB) PutCounterpartySwapKeys(arg0 common.Hash, arg1 *mcrypto.PublicKey, arg2 *mcrypto.PrivateViewKey) error

PutCounterpartySwapKeys mocks base method.

func (*MockRecoveryDB) PutCounterpartySwapPrivateKey

func (m *MockRecoveryDB) PutCounterpartySwapPrivateKey(arg0 common.Hash, arg1 *mcrypto.PrivateSpendKey) error

PutCounterpartySwapPrivateKey mocks base method.

func (*MockRecoveryDB) PutNewSwapTxHash added in v0.3.0

func (m *MockRecoveryDB) PutNewSwapTxHash(arg0, arg1 common.Hash) error

PutNewSwapTxHash mocks base method.

func (*MockRecoveryDB) PutSwapPrivateKey

func (m *MockRecoveryDB) PutSwapPrivateKey(arg0 common.Hash, arg1 *mcrypto.PrivateSpendKey) error

PutSwapPrivateKey mocks base method.

func (*MockRecoveryDB) PutSwapRelayerInfo

func (m *MockRecoveryDB) PutSwapRelayerInfo(arg0 common.Hash, arg1 *types.OfferExtra) error

PutSwapRelayerInfo mocks base method.

type MockRecoveryDBMockRecorder

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

MockRecoveryDBMockRecorder is the mock recorder for MockRecoveryDB.

func (*MockRecoveryDBMockRecorder) DeleteSwap

func (mr *MockRecoveryDBMockRecorder) DeleteSwap(arg0 interface{}) *gomock.Call

DeleteSwap indicates an expected call of DeleteSwap.

func (*MockRecoveryDBMockRecorder) GetContractSwapInfo

func (mr *MockRecoveryDBMockRecorder) GetContractSwapInfo(arg0 interface{}) *gomock.Call

GetContractSwapInfo indicates an expected call of GetContractSwapInfo.

func (*MockRecoveryDBMockRecorder) GetCounterpartySwapKeys

func (mr *MockRecoveryDBMockRecorder) GetCounterpartySwapKeys(arg0 interface{}) *gomock.Call

GetCounterpartySwapKeys indicates an expected call of GetCounterpartySwapKeys.

func (*MockRecoveryDBMockRecorder) GetCounterpartySwapPrivateKey

func (mr *MockRecoveryDBMockRecorder) GetCounterpartySwapPrivateKey(arg0 interface{}) *gomock.Call

GetCounterpartySwapPrivateKey indicates an expected call of GetCounterpartySwapPrivateKey.

func (*MockRecoveryDBMockRecorder) GetNewSwapTxHash added in v0.3.0

func (mr *MockRecoveryDBMockRecorder) GetNewSwapTxHash(arg0 interface{}) *gomock.Call

GetNewSwapTxHash indicates an expected call of GetNewSwapTxHash.

func (*MockRecoveryDBMockRecorder) GetSwapPrivateKey

func (mr *MockRecoveryDBMockRecorder) GetSwapPrivateKey(arg0 interface{}) *gomock.Call

GetSwapPrivateKey indicates an expected call of GetSwapPrivateKey.

func (*MockRecoveryDBMockRecorder) GetSwapRelayerInfo

func (mr *MockRecoveryDBMockRecorder) GetSwapRelayerInfo(arg0 interface{}) *gomock.Call

GetSwapRelayerInfo indicates an expected call of GetSwapRelayerInfo.

func (*MockRecoveryDBMockRecorder) PutContractSwapInfo

func (mr *MockRecoveryDBMockRecorder) PutContractSwapInfo(arg0, arg1 interface{}) *gomock.Call

PutContractSwapInfo indicates an expected call of PutContractSwapInfo.

func (*MockRecoveryDBMockRecorder) PutCounterpartySwapKeys

func (mr *MockRecoveryDBMockRecorder) PutCounterpartySwapKeys(arg0, arg1, arg2 interface{}) *gomock.Call

PutCounterpartySwapKeys indicates an expected call of PutCounterpartySwapKeys.

func (*MockRecoveryDBMockRecorder) PutCounterpartySwapPrivateKey

func (mr *MockRecoveryDBMockRecorder) PutCounterpartySwapPrivateKey(arg0, arg1 interface{}) *gomock.Call

PutCounterpartySwapPrivateKey indicates an expected call of PutCounterpartySwapPrivateKey.

func (*MockRecoveryDBMockRecorder) PutNewSwapTxHash added in v0.3.0

func (mr *MockRecoveryDBMockRecorder) PutNewSwapTxHash(arg0, arg1 interface{}) *gomock.Call

PutNewSwapTxHash indicates an expected call of PutNewSwapTxHash.

func (*MockRecoveryDBMockRecorder) PutSwapPrivateKey

func (mr *MockRecoveryDBMockRecorder) PutSwapPrivateKey(arg0, arg1 interface{}) *gomock.Call

PutSwapPrivateKey indicates an expected call of PutSwapPrivateKey.

func (*MockRecoveryDBMockRecorder) PutSwapRelayerInfo

func (mr *MockRecoveryDBMockRecorder) PutSwapRelayerInfo(arg0, arg1 interface{}) *gomock.Call

PutSwapRelayerInfo indicates an expected call of PutSwapRelayerInfo.

type NetSender

type NetSender interface {
	SendSwapMessage(common.Message, types.Hash) error
	DeleteOngoingSwap(offerID types.Hash)
	CloseProtocolStream(id types.Hash)
	DiscoverRelayers() ([]peer.ID, error)                                                        // Only used by Maker
	QueryRelayerAddress(peer.ID) (types.Hash, error)                                             // only used by taker
	SubmitRelayRequest(peer.ID, *message.RelayClaimRequest) (*message.RelayClaimResponse, error) // only used by taker
}

NetSender consists of Host methods invoked by the Maker/Taker

type RecoveryDB

type RecoveryDB interface {
	PutContractSwapInfo(id types.Hash, info *db.EthereumSwapInfo) error
	GetContractSwapInfo(id types.Hash) (*db.EthereumSwapInfo, error)
	PutSwapPrivateKey(id types.Hash, keys *mcrypto.PrivateSpendKey) error
	GetSwapPrivateKey(id types.Hash) (*mcrypto.PrivateSpendKey, error)
	PutCounterpartySwapPrivateKey(id types.Hash, keys *mcrypto.PrivateSpendKey) error
	GetCounterpartySwapPrivateKey(id types.Hash) (*mcrypto.PrivateSpendKey, error)
	PutSwapRelayerInfo(id types.Hash, info *types.OfferExtra) error
	GetSwapRelayerInfo(id types.Hash) (*types.OfferExtra, error)
	PutCounterpartySwapKeys(id types.Hash, sk *mcrypto.PublicKey, vk *mcrypto.PrivateViewKey) error
	GetCounterpartySwapKeys(id types.Hash) (*mcrypto.PublicKey, *mcrypto.PrivateViewKey, error)
	PutNewSwapTxHash(id types.Hash, txHash types.Hash) error
	GetNewSwapTxHash(id types.Hash) (types.Hash, error)
	DeleteSwap(id types.Hash) error
}

RecoveryDB is implemented by *db.RecoveryDB

Jump to

Keyboard shortcuts

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