move common from message param into message builder constructor
This commit is contained in:
parent
5253c0d959
commit
2e9915ac28
@ -9,20 +9,20 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Message(version actors.Version) MessageBuilder {
|
func Message(version actors.Version, from address.Address) MessageBuilder {
|
||||||
switch version {
|
switch version {
|
||||||
case actors.Version0:
|
case actors.Version0:
|
||||||
return message0{}
|
return message0{from}
|
||||||
case actors.Version2:
|
case actors.Version2:
|
||||||
return message2{}
|
return message2{from}
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("unsupported actors version: %d", version))
|
panic(fmt.Sprintf("unsupported actors version: %d", version))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type MessageBuilder interface {
|
type MessageBuilder interface {
|
||||||
Create(from, to address.Address, initialAmount abi.TokenAmount) (*types.Message, error)
|
Create(to address.Address, initialAmount abi.TokenAmount) (*types.Message, error)
|
||||||
Update(from, paych address.Address, voucher *SignedVoucher, secret []byte) (*types.Message, error)
|
Update(paych address.Address, voucher *SignedVoucher, secret []byte) (*types.Message, error)
|
||||||
Settle(from, paych address.Address) (*types.Message, error)
|
Settle(paych address.Address) (*types.Message, error)
|
||||||
Collect(from, paych address.Address) (*types.Message, error)
|
Collect(paych address.Address) (*types.Message, error)
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,10 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type message0 struct{}
|
type message0 struct{ from address.Address }
|
||||||
|
|
||||||
func (message0) Create(from, to address.Address, initialAmount abi.TokenAmount) (*types.Message, error) {
|
func (m message0) Create(to address.Address, initialAmount abi.TokenAmount) (*types.Message, error) {
|
||||||
params, aerr := actors.SerializeParams(&paych0.ConstructorParams{From: from, To: to})
|
params, aerr := actors.SerializeParams(&paych0.ConstructorParams{From: m.from, To: to})
|
||||||
if aerr != nil {
|
if aerr != nil {
|
||||||
return nil, aerr
|
return nil, aerr
|
||||||
}
|
}
|
||||||
@ -30,14 +30,14 @@ func (message0) Create(from, to address.Address, initialAmount abi.TokenAmount)
|
|||||||
|
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: init_.Address,
|
To: init_.Address,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: initialAmount,
|
Value: initialAmount,
|
||||||
Method: builtin0.MethodsInit.Exec,
|
Method: builtin0.MethodsInit.Exec,
|
||||||
Params: enc,
|
Params: enc,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (message0) Update(from, paych address.Address, sv *SignedVoucher, secret []byte) (*types.Message, error) {
|
func (m message0) Update(paych address.Address, sv *SignedVoucher, secret []byte) (*types.Message, error) {
|
||||||
params, aerr := actors.SerializeParams(&paych0.UpdateChannelStateParams{
|
params, aerr := actors.SerializeParams(&paych0.UpdateChannelStateParams{
|
||||||
Sv: *sv,
|
Sv: *sv,
|
||||||
Secret: secret,
|
Secret: secret,
|
||||||
@ -48,26 +48,26 @@ func (message0) Update(from, paych address.Address, sv *SignedVoucher, secret []
|
|||||||
|
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: paych,
|
To: paych,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: abi.NewTokenAmount(0),
|
Value: abi.NewTokenAmount(0),
|
||||||
Method: builtin0.MethodsPaych.UpdateChannelState,
|
Method: builtin0.MethodsPaych.UpdateChannelState,
|
||||||
Params: params,
|
Params: params,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (message0) Settle(from, paych address.Address) (*types.Message, error) {
|
func (m message0) Settle(paych address.Address) (*types.Message, error) {
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: paych,
|
To: paych,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: abi.NewTokenAmount(0),
|
Value: abi.NewTokenAmount(0),
|
||||||
Method: builtin0.MethodsPaych.Settle,
|
Method: builtin0.MethodsPaych.Settle,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (message0) Collect(from, paych address.Address) (*types.Message, error) {
|
func (m message0) Collect(paych address.Address) (*types.Message, error) {
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: paych,
|
To: paych,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: abi.NewTokenAmount(0),
|
Value: abi.NewTokenAmount(0),
|
||||||
Method: builtin0.MethodsPaych.Collect,
|
Method: builtin0.MethodsPaych.Collect,
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -13,10 +13,10 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type message2 struct{}
|
type message2 struct{ from address.Address }
|
||||||
|
|
||||||
func (message2) Create(from, to address.Address, initialAmount abi.TokenAmount) (*types.Message, error) {
|
func (m message2) Create(to address.Address, initialAmount abi.TokenAmount) (*types.Message, error) {
|
||||||
params, aerr := actors.SerializeParams(&paych2.ConstructorParams{From: from, To: to})
|
params, aerr := actors.SerializeParams(&paych2.ConstructorParams{From: m.from, To: to})
|
||||||
if aerr != nil {
|
if aerr != nil {
|
||||||
return nil, aerr
|
return nil, aerr
|
||||||
}
|
}
|
||||||
@ -30,14 +30,14 @@ func (message2) Create(from, to address.Address, initialAmount abi.TokenAmount)
|
|||||||
|
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: init_.Address,
|
To: init_.Address,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: initialAmount,
|
Value: initialAmount,
|
||||||
Method: builtin2.MethodsInit.Exec,
|
Method: builtin2.MethodsInit.Exec,
|
||||||
Params: enc,
|
Params: enc,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (message2) Update(from, paych address.Address, sv *SignedVoucher, secret []byte) (*types.Message, error) {
|
func (m message2) Update(paych address.Address, sv *SignedVoucher, secret []byte) (*types.Message, error) {
|
||||||
params, aerr := actors.SerializeParams(&paych2.UpdateChannelStateParams{
|
params, aerr := actors.SerializeParams(&paych2.UpdateChannelStateParams{
|
||||||
Sv: *sv,
|
Sv: *sv,
|
||||||
Secret: secret,
|
Secret: secret,
|
||||||
@ -48,26 +48,26 @@ func (message2) Update(from, paych address.Address, sv *SignedVoucher, secret []
|
|||||||
|
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: paych,
|
To: paych,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: abi.NewTokenAmount(0),
|
Value: abi.NewTokenAmount(0),
|
||||||
Method: builtin2.MethodsPaych.UpdateChannelState,
|
Method: builtin2.MethodsPaych.UpdateChannelState,
|
||||||
Params: params,
|
Params: params,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (message2) Settle(from, paych address.Address) (*types.Message, error) {
|
func (m message2) Settle(paych address.Address) (*types.Message, error) {
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: paych,
|
To: paych,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: abi.NewTokenAmount(0),
|
Value: abi.NewTokenAmount(0),
|
||||||
Method: builtin2.MethodsPaych.Settle,
|
Method: builtin2.MethodsPaych.Settle,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (message2) Collect(from, paych address.Address) (*types.Message, error) {
|
func (m message2) Collect(paych address.Address) (*types.Message, error) {
|
||||||
return &types.Message{
|
return &types.Message{
|
||||||
To: paych,
|
To: paych,
|
||||||
From: from,
|
From: m.from,
|
||||||
Value: abi.NewTokenAmount(0),
|
Value: abi.NewTokenAmount(0),
|
||||||
Method: builtin2.MethodsPaych.Collect,
|
Method: builtin2.MethodsPaych.Collect,
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -82,13 +82,13 @@ func newChannelAccessor(pm *Manager, from address.Address, to address.Address) *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ca *channelAccessor) messageBuilder(ctx context.Context) (paych.MessageBuilder, error) {
|
func (ca *channelAccessor) messageBuilder(ctx context.Context, from address.Address) (paych.MessageBuilder, error) {
|
||||||
nwVersion, err := ca.api.StateNetworkVersion(ctx, types.EmptyTSK)
|
nwVersion, err := ca.api.StateNetworkVersion(ctx, types.EmptyTSK)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return paych.Message(actors.VersionForNetwork(nwVersion)), nil
|
return paych.Message(actors.VersionForNetwork(nwVersion), from), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ca *channelAccessor) getChannelInfo(addr address.Address) (*ChannelInfo, error) {
|
func (ca *channelAccessor) getChannelInfo(addr address.Address) (*ChannelInfo, error) {
|
||||||
@ -301,12 +301,12 @@ func (ca *channelAccessor) checkVoucherSpendable(ctx context.Context, ch address
|
|||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
mb, err := ca.messageBuilder(ctx)
|
mb, err := ca.messageBuilder(ctx, recipient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mes, err := mb.Update(recipient, ch, sv, secret)
|
mes, err := mb.Update(ch, sv, secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
@ -418,12 +418,12 @@ func (ca *channelAccessor) submitVoucher(ctx context.Context, ch address.Address
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mb, err := ca.messageBuilder(ctx)
|
mb, err := ca.messageBuilder(ctx, ci.Control)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
|
||||||
msg, err := mb.Update(ci.Control, ch, sv, secret)
|
msg, err := mb.Update(ch, sv, secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
@ -574,11 +574,11 @@ func (ca *channelAccessor) settle(ctx context.Context, ch address.Address) (cid.
|
|||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mb, err := ca.messageBuilder(ctx)
|
mb, err := ca.messageBuilder(ctx, ci.Control)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
msg, err := mb.Settle(ci.Control, ch)
|
msg, err := mb.Settle(ch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
@ -605,12 +605,12 @@ func (ca *channelAccessor) collect(ctx context.Context, ch address.Address) (cid
|
|||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mb, err := ca.messageBuilder(ctx)
|
mb, err := ca.messageBuilder(ctx, ci.Control)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
|
||||||
msg, err := mb.Collect(ci.Control, ch)
|
msg, err := mb.Collect(ch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
@ -384,11 +384,11 @@ func (ca *channelAccessor) processTask(ctx context.Context, amt types.BigInt) *p
|
|||||||
|
|
||||||
// createPaych sends a message to create the channel and returns the message cid
|
// createPaych sends a message to create the channel and returns the message cid
|
||||||
func (ca *channelAccessor) createPaych(ctx context.Context, amt types.BigInt) (cid.Cid, error) {
|
func (ca *channelAccessor) createPaych(ctx context.Context, amt types.BigInt) (cid.Cid, error) {
|
||||||
mb, err := ca.messageBuilder(ctx)
|
mb, err := ca.messageBuilder(ctx, ca.from)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
msg, err := mb.Create(ca.from, ca.to, amt)
|
msg, err := mb.Create(ca.to, amt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user