mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
This commit adds the required code to persist loop in swaps. It also introduces the file loop.go to which shared code is moved. Sharing of contract serialization/deserialization code has been reverted. The prepay fields do not apply to loop in, but were part of the shared contract struct. Without also adding a migration, it wouldn't be possible to keep the shared code. In general it is probably more flexible to keep the contract serialization code separated between in and out swaps.
38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package loopdb
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/lightningnetwork/lnd/lntypes"
|
|
)
|
|
|
|
// SwapStore is the primary database interface used by the loopd system. It
|
|
// houses information for all pending completed/failed swaps.
|
|
type SwapStore interface {
|
|
// FetchLoopOutSwaps returns all swaps currently in the store.
|
|
FetchLoopOutSwaps() ([]*LoopOut, error)
|
|
|
|
// CreateLoopOut adds an initiated swap to the store.
|
|
CreateLoopOut(hash lntypes.Hash, swap *LoopOutContract) error
|
|
|
|
// UpdateLoopOut stores a new event for a target loop out swap. This
|
|
// appends to the event log for a particular swap as it goes through
|
|
// the various stages in its lifetime.
|
|
UpdateLoopOut(hash lntypes.Hash, time time.Time, state SwapState) error
|
|
|
|
// FetchLoopInSwaps returns all swaps currently in the store.
|
|
FetchLoopInSwaps() ([]*LoopIn, error)
|
|
|
|
// CreateLoopIn adds an initiated swap to the store.
|
|
CreateLoopIn(hash lntypes.Hash, swap *LoopInContract) error
|
|
|
|
// UpdateLoopIn stores a new event for a target loop in swap. This
|
|
// appends to the event log for a particular swap as it goes through
|
|
// the various stages in its lifetime.
|
|
UpdateLoopIn(hash lntypes.Hash, time time.Time, state SwapState) error
|
|
|
|
// Close closes the underlying database.
|
|
Close() error
|
|
}
|
|
|
|
// TODO(roasbeef): back up method in interface?
|