37 lines
1019 B
Go
37 lines
1019 B
Go
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"
|
|
|
|
builtin4 "github.com/filecoin-project/specs-actors/v4/actors/builtin"
|
|
)
|
|
|
|
var Methods = builtin4.MethodsPaych
|
|
|
|
func Message(version actors.Version, from address.Address) MessageBuilder {
|
|
switch version {
|
|
case actors.Version0:
|
|
return message0{from}
|
|
case actors.Version2:
|
|
return message2{from}
|
|
case actors.Version3:
|
|
return message3{from}
|
|
case actors.Version4:
|
|
return message4{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)
|
|
}
|