Documentation ¶
Index ¶
Constants ¶
View Source
const LaneStatesAmtBitwidth = 3
View Source
const SettleDelay = builtin.EpochsInHour * 12
Variables ¶
View Source
var Methods = map[uint64]builtin.MethodMeta{ 1: {"Constructor", *new(func(*ConstructorParams) *abi.EmptyValue)}, 2: {"UpdateChannelState", *new(func(*UpdateChannelStateParams) *abi.EmptyValue)}, 3: {"Settle", *new(func(*abi.EmptyValue) *abi.EmptyValue)}, 4: {"Collect", *new(func(*abi.EmptyValue) *abi.EmptyValue)}, }
Functions ¶
This section is empty.
Types ¶
type ConstructorParams ¶
func (*ConstructorParams) MarshalCBOR ¶
func (t *ConstructorParams) MarshalCBOR(w io.Writer) error
func (*ConstructorParams) UnmarshalCBOR ¶
func (t *ConstructorParams) UnmarshalCBOR(r io.Reader) error
type LaneState ¶
The Lane state tracks the latest (highest) voucher nonce used to merge the lane as well as the amount it has already redeemed.
type ModVerifyParams ¶
type ModVerifyParams struct { // Actor on which to invoke the method. Actor addr.Address // Method to invoke. Method abi.MethodNum // Pre-serialized method parameters. Data []byte }
Modular Verification method
func (*ModVerifyParams) MarshalCBOR ¶
func (t *ModVerifyParams) MarshalCBOR(w io.Writer) error
func (*ModVerifyParams) UnmarshalCBOR ¶
func (t *ModVerifyParams) UnmarshalCBOR(r io.Reader) error
type SignedVoucher ¶
type SignedVoucher struct { // ChannelAddr is the address of the payment channel this signed voucher is valid for ChannelAddr addr.Address // TimeLockMin sets a min epoch before which the voucher cannot be redeemed TimeLockMin abi.ChainEpoch // TimeLockMax sets a max epoch beyond which the voucher cannot be redeemed // TimeLockMax set to 0 means no timeout TimeLockMax abi.ChainEpoch // (optional) The SecretHash is used by `To` to validate SecretHash []byte // (optional) Extra can be specified by `From` to add a verification method to the voucher. Extra *ModVerifyParams // Specifies which lane the Voucher merges into (will be created if does not exist) Lane uint64 // Nonce is set by `From` to prevent redemption of stale vouchers on a lane Nonce uint64 // Amount voucher can be redeemed for Amount big.Int // (optional) MinSettleHeight can extend channel MinSettleHeight if needed MinSettleHeight abi.ChainEpoch // (optional) Set of lanes to be merged into `Lane` Merges []Merge // Sender's signature over the voucher Signature *crypto.Signature }
A voucher is sent by `From` to `To` off-chain in order to enable `To` to redeem payments on-chain in the future
func (*SignedVoucher) MarshalCBOR ¶
func (t *SignedVoucher) MarshalCBOR(w io.Writer) error
func (*SignedVoucher) SigningBytes ¶
func (t *SignedVoucher) SigningBytes() ([]byte, error)
func (*SignedVoucher) UnmarshalCBOR ¶
func (t *SignedVoucher) UnmarshalCBOR(r io.Reader) error
type State ¶
type State struct { // Channel owner, who has funded the actor From addr.Address // Recipient of payouts from channel To addr.Address // Amount successfully redeemed through the payment channel, paid out on `Collect()` ToSend abi.TokenAmount // Height at which the channel can be `Collected` SettlingAt abi.ChainEpoch // Height before which the channel `ToSend` cannot be collected MinSettleHeight abi.ChainEpoch // Collections of lane states for the channel, maintained in ID order. LaneStates cid.Cid // AMT<LaneState> }
A given payment channel actor is established by From to enable off-chain microtransactions to To to be reconciled and tallied on chain.
type StateSummary ¶ added in v0.9.3
type StateSummary struct {
Redeemed abi.TokenAmount
}
func CheckStateInvariants ¶ added in v0.9.3
func CheckStateInvariants(st *State, store adt.Store, balance abi.TokenAmount) (*StateSummary, *builtin.MessageAccumulator)
Checks internal invariants of paych state.
type UpdateChannelStateParams ¶
type UpdateChannelStateParams struct { Sv SignedVoucher Secret []byte }
func (*UpdateChannelStateParams) MarshalCBOR ¶
func (t *UpdateChannelStateParams) MarshalCBOR(w io.Writer) error
func (*UpdateChannelStateParams) UnmarshalCBOR ¶
func (t *UpdateChannelStateParams) UnmarshalCBOR(r io.Reader) error
Click to show internal directories.
Click to hide internal directories.