Documentation ¶
Index ¶
- Constants
- Variables
- func HandleManager(lc fx.Lifecycle, pm *Manager)
- type ChannelInfo
- type Manager
- func (pm *Manager) AddVoucher(ctx context.Context, ch address.Address, sv *paych.SignedVoucher, proof []byte, ...) (types.BigInt, error)
- func (pm *Manager) AllocateLane(ch address.Address) (uint64, error)
- func (pm *Manager) CheckVoucherSpendable(ctx context.Context, ch address.Address, sv *paych.SignedVoucher, ...) (bool, error)
- func (pm *Manager) CheckVoucherValid(ctx context.Context, ch address.Address, sv *paych.SignedVoucher) error
- func (pm *Manager) Collect(ctx context.Context, addr address.Address) (cid.Cid, error)
- func (pm *Manager) GetChannelInfo(addr address.Address) (*ChannelInfo, error)
- func (pm *Manager) GetPaych(ctx context.Context, from, to address.Address, amt types.BigInt) (address.Address, cid.Cid, error)
- func (pm *Manager) GetPaychWaitReady(ctx context.Context, mcid cid.Cid) (address.Address, error)
- func (pm *Manager) ListChannels() ([]address.Address, error)
- func (pm *Manager) ListVouchers(ctx context.Context, ch address.Address) ([]*VoucherInfo, error)
- func (pm *Manager) NextNonceForLane(ctx context.Context, ch address.Address, lane uint64) (uint64, error)
- func (pm *Manager) Settle(ctx context.Context, addr address.Address) (cid.Cid, error)
- func (pm *Manager) Start() error
- func (pm *Manager) Stop() error
- func (pm *Manager) TrackInboundChannel(ctx context.Context, ch address.Address) error
- func (pm *Manager) TrackOutboundChannel(ctx context.Context, ch address.Address) error
- type MsgInfo
- type PaychAPI
- type Store
- func (ps *Store) AllocateLane(ch address.Address) (uint64, error)
- func (ps *Store) ByAddress(addr address.Address) (*ChannelInfo, error)
- func (ps *Store) ByChannelID(channelID string) (*ChannelInfo, error)
- func (ps *Store) ByMessageCid(mcid cid.Cid) (*ChannelInfo, error)
- func (ps *Store) CreateChannel(from address.Address, to address.Address, createMsgCid cid.Cid, ...) (*ChannelInfo, error)
- func (ps *Store) GetMessage(mcid cid.Cid) (*MsgInfo, error)
- func (ps *Store) ListChannels() ([]address.Address, error)
- func (ps *Store) OutboundActiveByFromTo(from address.Address, to address.Address) (*ChannelInfo, error)
- func (ps *Store) RemoveChannel(channelID string) error
- func (ps *Store) SaveMessageResult(mcid cid.Cid, msgErr error) error
- func (ps *Store) SaveNewMessage(channelID string, mcid cid.Cid) error
- func (ps *Store) TrackChannel(ci *ChannelInfo) error
- func (ps *Store) VouchersForPaych(ch address.Address) ([]*VoucherInfo, error)
- func (ps *Store) WithPendingAddFunds() ([]ChannelInfo, error)
- type VoucherInfo
Constants ¶
const ( DirInbound = 1 DirOutbound = 2 )
Variables ¶
var ErrChannelNotTracked = errors.New("channel not tracked")
Functions ¶
func HandleManager ¶ added in v0.5.0
HandleManager is called by dependency injection to set up hooks
Types ¶
type ChannelInfo ¶
type ChannelInfo struct { // ChannelID is a uuid set at channel creation ChannelID string // Channel address - may be nil if the channel hasn't been created yet Channel *address.Address // Control is the address of the account that created the channel Control address.Address // Target is the address of the account on the other end of the channel Target address.Address // Direction indicates if the channel is inbound (this node is the Target) // or outbound (this node is the Control) Direction uint64 // Vouchers is a list of all vouchers sent on the channel Vouchers []*VoucherInfo // NextLane is the number of the next lane that should be used when the // client requests a new lane (eg to create a voucher for a new deal) NextLane uint64 // Amount added to the channel. // Note: This amount is only used by GetPaych to keep track of how much // has locally been added to the channel. It should reflect the channel's // Balance on chain as long as all operations occur on the same datastore. Amount types.BigInt // PendingAmount is the amount that we're awaiting confirmation of PendingAmount types.BigInt // CreateMsg is the CID of a pending create message (while waiting for confirmation) CreateMsg *cid.Cid // AddFundsMsg is the CID of a pending add funds message (while waiting for confirmation) AddFundsMsg *cid.Cid // Settling indicates whether the channel has entered into the settling state Settling bool }
ChannelInfo keeps track of information about a channel
func (*ChannelInfo) MarshalCBOR ¶
func (t *ChannelInfo) MarshalCBOR(w io.Writer) error
func (*ChannelInfo) UnmarshalCBOR ¶
func (t *ChannelInfo) UnmarshalCBOR(r io.Reader) error
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager(mctx helpers.MetricsCtx, lc fx.Lifecycle, sm *stmgr.StateManager, pchstore *Store, api PaychAPI) *Manager
func (*Manager) AddVoucher ¶
func (*Manager) AllocateLane ¶
func (*Manager) CheckVoucherSpendable ¶
func (pm *Manager) CheckVoucherSpendable(ctx context.Context, ch address.Address, sv *paych.SignedVoucher, secret []byte, proof []byte) (bool, error)
CheckVoucherSpendable checks if the given voucher is currently spendable
func (*Manager) CheckVoucherValid ¶
func (pm *Manager) CheckVoucherValid(ctx context.Context, ch address.Address, sv *paych.SignedVoucher) error
CheckVoucherValid checks if the given voucher is valid (is or could become spendable at some point)
func (*Manager) GetChannelInfo ¶
func (pm *Manager) GetChannelInfo(addr address.Address) (*ChannelInfo, error)
func (*Manager) GetPaychWaitReady ¶ added in v0.5.0
GetPaychWaitReady waits until the create channel / add funds message with the given message CID arrives. The returned channel address can safely be used against the Manager methods.
func (*Manager) ListChannels ¶
func (*Manager) ListVouchers ¶
func (pm *Manager) ListVouchers(ctx context.Context, ch address.Address) ([]*VoucherInfo, error)
func (*Manager) NextNonceForLane ¶
func (*Manager) Start ¶ added in v0.5.0
Start restarts tracking of any messages that were sent to chain.
func (*Manager) TrackInboundChannel ¶
type MsgInfo ¶ added in v0.5.0
type MsgInfo struct { // ChannelID links the message to a channel ChannelID string // MsgCid is the CID of the message MsgCid cid.Cid // Received indicates whether a response has been received Received bool // Err is the error received in the response Err string }
MsgInfo stores information about a create channel / add funds message that has been sent
type PaychAPI ¶ added in v0.5.0
PaychAPI is used by dependency injection to pass the consituent APIs to NewManager()
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
func NewStore ¶
func NewStore(ds dtypes.MetadataDS) *Store
func (*Store) AllocateLane ¶
AllocateLane allocates a new lane for the given channel
func (*Store) ByAddress ¶ added in v0.5.0
func (ps *Store) ByAddress(addr address.Address) (*ChannelInfo, error)
ByAddress gets the channel that matches the given address
func (*Store) ByChannelID ¶ added in v0.5.0
func (ps *Store) ByChannelID(channelID string) (*ChannelInfo, error)
ByChannelID gets channel info by channel ID
func (*Store) ByMessageCid ¶ added in v0.5.0
func (ps *Store) ByMessageCid(mcid cid.Cid) (*ChannelInfo, error)
ByMessageCid gets the channel associated with a message
func (*Store) CreateChannel ¶ added in v0.5.0
func (ps *Store) CreateChannel(from address.Address, to address.Address, createMsgCid cid.Cid, amt types.BigInt) (*ChannelInfo, error)
CreateChannel creates an outbound channel for the given from / to
func (*Store) GetMessage ¶ added in v0.5.0
GetMessage gets the message info for a given message CID
func (*Store) ListChannels ¶
ListChannels returns the addresses of all channels that have been created
func (*Store) OutboundActiveByFromTo ¶ added in v0.5.0
func (ps *Store) OutboundActiveByFromTo(from address.Address, to address.Address) (*ChannelInfo, error)
OutboundActiveByFromTo looks for outbound channels that have not been settled, with the given from / to addresses
func (*Store) RemoveChannel ¶ added in v0.5.0
RemoveChannel removes the channel with the given channel ID
func (*Store) SaveMessageResult ¶ added in v0.5.0
SaveMessageResult is called when the result of a message is received
func (*Store) SaveNewMessage ¶ added in v0.5.0
SaveNewMessage is called when a message is sent
func (*Store) TrackChannel ¶
func (ps *Store) TrackChannel(ci *ChannelInfo) error
TrackChannel stores a channel, returning an error if the channel was already being tracked
func (*Store) VouchersForPaych ¶
func (ps *Store) VouchersForPaych(ch address.Address) ([]*VoucherInfo, error)
VouchersForPaych gets the vouchers for the given channel
func (*Store) WithPendingAddFunds ¶ added in v0.5.0
func (ps *Store) WithPendingAddFunds() ([]ChannelInfo, error)
WithPendingAddFunds is used on startup to find channels for which a create channel or add funds message has been sent, but lotus shut down before the response was received.
type VoucherInfo ¶
type VoucherInfo struct { Voucher *paych.SignedVoucher Proof []byte }
func (*VoucherInfo) MarshalCBOR ¶
func (t *VoucherInfo) MarshalCBOR(w io.Writer) error
func (*VoucherInfo) UnmarshalCBOR ¶
func (t *VoucherInfo) UnmarshalCBOR(r io.Reader) error