bcabe7b3b5
Method numbers never change anyways. At worst, we'll deprecate old methods and have to explicitly import them from the correct actors version to use them.
33 lines
925 B
Go
33 lines
925 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"
|
|
|
|
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
|
|
)
|
|
|
|
var Methods = builtin2.MethodsPaych
|
|
|
|
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)
|
|
}
|