package paych import ( "fmt" "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/types" ) func Message(version actors.Version, from address.Address) MessageBuilder { switch version { case actors.Version0: return message0{from} case actors.Version2: return message2{from} default: panic(fmt.Sprintf("unsupported actors version: %d", version)) } } type MessageBuilder interface { Create(to address.Address, initialAmount abi.TokenAmount) (*types.Message, error) Update(paych address.Address, voucher *SignedVoucher, secret []byte) (*types.Message, error) Settle(paych address.Address) (*types.Message, error) Collect(paych address.Address) (*types.Message, error) }