actors: Drop refs to multisig_actor.go

This commit is contained in:
Łukasz Magiera 2020-02-06 20:49:21 +01:00
parent 604c234484
commit 1d0d429435
7 changed files with 33 additions and 153 deletions

View File

@ -1,128 +0,0 @@
package actors
import (
samsig "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
)
type MultiSigActor struct{}
type MultiSigActorState = samsig.MultiSigActorState
type MultiSigTransaction = samsig.MultiSigTransaction
type TxnID = samsig.TxnID
type musigMethods struct {
MultiSigConstructor uint64
Propose uint64
Approve uint64
Cancel uint64
ClearCompleted uint64
AddSigner uint64
RemoveSigner uint64
SwapSigner uint64
ChangeRequirement uint64
}
var MultiSigMethods = musigMethods{1, 2, 3, 4, 5, 6, 7, 8, 9}
type MultiSigConstructorParams = samsig.ConstructorParams
type MultiSigProposeParams = samsig.ProposeParams
type MultiSigTxID = samsig.TxnIDParams
type MultiSigAddSignerParam = samsig.AddSignerParams
type MultiSigRemoveSignerParam = samsig.RemoveSignerParams
type MultiSigSwapSignerParams = samsig.SwapSignerParams
type MultiSigChangeReqParams = samsig.ChangeNumApprovalsThresholdParams
/*
func (msa MultiSigActor) Exports() []interface{} {
return []interface{}{
1: msa.MultiSigConstructor,
2: msa.Propose,
3: msa.Approve,
4: msa.Cancel,
//5: msa.ClearCompleted,
6: msa.AddSigner,
7: msa.RemoveSigner,
8: msa.SwapSigner,
9: msa.ChangeRequirement,
}
}
func (MultiSigActor) MultiSigConstructor(act *types.Actor, vmctx types.VMContext,
params *MultiSigConstructorParams) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).Constructor(shim, params)
})
}
func (msa MultiSigActor) Propose(act *types.Actor, vmctx types.VMContext,
params *MultiSigProposeParams) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).Propose(shim, params)
})
}
func (msa MultiSigActor) Approve(act *types.Actor, vmctx types.VMContext,
params *MultiSigTxID) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).Approve(shim, params)
})
}
func (msa MultiSigActor) Cancel(act *types.Actor, vmctx types.VMContext,
params *MultiSigTxID) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).Cancel(shim, params)
})
}
func (msa MultiSigActor) AddSigner(act *types.Actor, vmctx types.VMContext,
params *MultiSigAddSignerParam) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).AddSigner(shim, params)
})
}
func (msa MultiSigActor) RemoveSigner(act *types.Actor, vmctx types.VMContext,
params *MultiSigRemoveSignerParam) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).RemoveSigner(shim, params)
})
}
func (msa MultiSigActor) SwapSigner(act *types.Actor, vmctx types.VMContext,
params *MultiSigSwapSignerParams) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).SwapSigner(shim, params)
})
}
func (msa MultiSigActor) ChangeRequirement(act *types.Actor, vmctx types.VMContext,
params *MultiSigChangeReqParams) ([]byte, ActorError) {
shim := &runtimeShim{vmctx: vmctx}
return shim.shimCall(func() interface{} {
return (&samsig.MultiSigActor{}).ChangeNumApprovalsThreshold(shim, params)
})
}
*/

View File

@ -3,6 +3,8 @@ package actors_test
import ( import (
"testing" "testing"
"github.com/filecoin-project/specs-actors/actors/builtin"
samsig "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
cbor "github.com/ipfs/go-ipld-cbor" cbor "github.com/ipfs/go-ipld-cbor"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
@ -26,7 +28,7 @@ func TestMultiSigCreate(t *testing.T) {
h := NewHarness(t, opts...) h := NewHarness(t, opts...)
ret, _ := h.CreateActor(t, creatorAddr, actors.MultisigCodeCid, ret, _ := h.CreateActor(t, creatorAddr, actors.MultisigCodeCid,
&actors.MultiSigConstructorParams{ &samsig.ConstructorParams{
Signers: []address.Address{creatorAddr, sig1Addr, sig2Addr}, Signers: []address.Address{creatorAddr, sig1Addr, sig2Addr},
NumApprovalsThreshold: 2, NumApprovalsThreshold: 2,
}) })
@ -53,7 +55,7 @@ func TestMultiSigOps(t *testing.T) {
HarnessAddr(&outsideAddr, 100000), HarnessAddr(&outsideAddr, 100000),
HarnessActor(&multSigAddr, &creatorAddr, actors.MultisigCodeCid, HarnessActor(&multSigAddr, &creatorAddr, actors.MultisigCodeCid,
func() cbg.CBORMarshaler { func() cbg.CBORMarshaler {
return &actors.MultiSigConstructorParams{ return &samsig.ConstructorParams{
Signers: []address.Address{creatorAddr, sig1Addr, sig2Addr}, Signers: []address.Address{creatorAddr, sig1Addr, sig2Addr},
NumApprovalsThreshold: 2, NumApprovalsThreshold: 2,
} }
@ -73,22 +75,22 @@ func TestMultiSigOps(t *testing.T) {
{ {
// Transfer funds outside of multsig // Transfer funds outside of multsig
const sendVal = 1000 const sendVal = 1000
ret, _ := h.Invoke(t, creatorAddr, multSigAddr, actors.MultiSigMethods.Propose, ret, _ := h.Invoke(t, creatorAddr, multSigAddr, uint64(builtin.MethodsMultisig.Propose),
&actors.MultiSigProposeParams{ &samsig.ProposeParams{
To: outsideAddr, To: outsideAddr,
Value: big.NewInt(sendVal), Value: big.NewInt(sendVal),
}) })
ApplyOK(t, ret) ApplyOK(t, ret)
var txIDParam actors.MultiSigTxID var txIDParam samsig.TxnIDParams
err := cbor.DecodeInto(ret.Return, &txIDParam.ID) err := cbor.DecodeInto(ret.Return, &txIDParam.ID)
assert.NoError(t, err, "decoding txid") assert.NoError(t, err, "decoding txid")
ret, _ = h.Invoke(t, outsideAddr, multSigAddr, actors.MultiSigMethods.Approve, ret, _ = h.Invoke(t, outsideAddr, multSigAddr, uint64(builtin.MethodsMultisig.Approve),
&txIDParam) &txIDParam)
assert.Equal(t, uint8(18), ret.ExitCode, "outsideAddr should not approve") assert.Equal(t, uint8(18), ret.ExitCode, "outsideAddr should not approve")
h.AssertBalanceChange(t, multSigAddr, 0) h.AssertBalanceChange(t, multSigAddr, 0)
ret2, _ := h.Invoke(t, sig1Addr, multSigAddr, actors.MultiSigMethods.Approve, ret2, _ := h.Invoke(t, sig1Addr, multSigAddr, uint64(builtin.MethodsMultisig.Approve),
&txIDParam) &txIDParam)
ApplyOK(t, ret2) ApplyOK(t, ret2)

View File

@ -22,7 +22,7 @@ type Message struct {
GasPrice BigInt GasPrice BigInt
GasLimit BigInt GasLimit BigInt
Method uint64 Method uint64 // TODO: decide
Params []byte Params []byte
} }

View File

@ -12,17 +12,20 @@ import (
"text/tabwriter" "text/tabwriter"
"github.com/filecoin-project/go-address" "github.com/filecoin-project/go-address"
"github.com/filecoin-project/lotus/api"
"github.com/filecoin-project/lotus/api/apibstore"
actors "github.com/filecoin-project/lotus/chain/actors"
types "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/specs-actors/actors/abi" "github.com/filecoin-project/specs-actors/actors/abi"
"github.com/filecoin-project/specs-actors/actors/builtin"
samsig "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
cid "github.com/ipfs/go-cid" cid "github.com/ipfs/go-cid"
"github.com/ipfs/go-hamt-ipld" "github.com/ipfs/go-hamt-ipld"
cbor "github.com/ipfs/go-ipld-cbor" cbor "github.com/ipfs/go-ipld-cbor"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
"golang.org/x/xerrors" "golang.org/x/xerrors"
"gopkg.in/urfave/cli.v2" "gopkg.in/urfave/cli.v2"
"github.com/filecoin-project/lotus/api"
"github.com/filecoin-project/lotus/api/apibstore"
actors "github.com/filecoin-project/lotus/chain/actors"
types "github.com/filecoin-project/lotus/chain/types"
) )
var multisigCmd = &cli.Command{ var multisigCmd = &cli.Command{
@ -90,7 +93,7 @@ var msigCreateCmd = &cli.Command{
} }
// Set up constructor parameters for multisig // Set up constructor parameters for multisig
msigParams := &actors.MultiSigConstructorParams{ msigParams := &samsig.ConstructorParams{
Signers: addrs, Signers: addrs,
NumApprovalsThreshold: required, NumApprovalsThreshold: required,
} }
@ -183,7 +186,7 @@ var msigInspectCmd = &cli.Command{
return err return err
} }
var mstate actors.MultiSigActorState var mstate samsig.MultiSigActorState
if err := mstate.UnmarshalCBOR(bytes.NewReader(obj)); err != nil { if err := mstate.UnmarshalCBOR(bytes.NewReader(obj)); err != nil {
return err return err
} }
@ -223,7 +226,7 @@ var msigInspectCmd = &cli.Command{
}, },
} }
func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (map[int64]*actors.MultiSigTransaction, error) { func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (map[int64]*samsig.MultiSigTransaction, error) {
bs := apibstore.NewAPIBlockstore(lapi) bs := apibstore.NewAPIBlockstore(lapi)
cst := cbor.NewCborStore(bs) cst := cbor.NewCborStore(bs)
@ -232,10 +235,10 @@ func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (
return nil, err return nil, err
} }
txs := make(map[int64]*actors.MultiSigTransaction) txs := make(map[int64]*samsig.MultiSigTransaction)
err = nd.ForEach(ctx, func(k string, val interface{}) error { err = nd.ForEach(ctx, func(k string, val interface{}) error {
d := val.(*cbg.Deferred) d := val.(*cbg.Deferred)
var tx actors.MultiSigTransaction var tx samsig.MultiSigTransaction
if err := tx.UnmarshalCBOR(bytes.NewReader(d.Raw)); err != nil { if err := tx.UnmarshalCBOR(bytes.NewReader(d.Raw)); err != nil {
return err return err
} }
@ -252,7 +255,7 @@ func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (
return txs, nil return txs, nil
} }
func state(tx *actors.MultiSigTransaction) string { func state(tx *samsig.MultiSigTransaction) string {
/* // TODO(why): I strongly disagree with not having these... but i need to move forward /* // TODO(why): I strongly disagree with not having these... but i need to move forward
if tx.Complete { if tx.Complete {
return "done" return "done"
@ -315,7 +318,7 @@ var msigProposeCmd = &cli.Command{
params = p params = p
} }
enc, err := actors.SerializeParams(&actors.MultiSigProposeParams{ enc, err := actors.SerializeParams(&samsig.ProposeParams{
To: dest, To: dest,
Value: abi.TokenAmount(types.BigInt(value)), Value: abi.TokenAmount(types.BigInt(value)),
Method: abi.MethodNum(method), Method: abi.MethodNum(method),
@ -344,7 +347,7 @@ var msigProposeCmd = &cli.Command{
To: msig, To: msig,
From: from, From: from,
Value: types.NewInt(0), Value: types.NewInt(0),
Method: actors.MultiSigMethods.Propose, Method: uint64(builtin.MethodsMultisig.Propose),
Params: enc, Params: enc,
GasLimit: types.NewInt(100000), GasLimit: types.NewInt(100000),
GasPrice: types.NewInt(1), GasPrice: types.NewInt(1),
@ -403,8 +406,8 @@ var msigApproveCmd = &cli.Command{
return err return err
} }
enc, err := actors.SerializeParams(&actors.MultiSigTxID{ enc, err := actors.SerializeParams(&samsig.TxnIDParams{
ID: actors.TxnID(txid), ID: samsig.TxnID(txid),
}) })
if err != nil { if err != nil {
return err return err
@ -429,7 +432,7 @@ var msigApproveCmd = &cli.Command{
To: msig, To: msig,
From: from, From: from,
Value: types.NewInt(0), Value: types.NewInt(0),
Method: actors.MultiSigMethods.Approve, Method: uint64(builtin.MethodsMultisig.Approve),
Params: enc, Params: enc,
GasLimit: types.NewInt(100000), GasLimit: types.NewInt(100000),
GasPrice: types.NewInt(1), GasPrice: types.NewInt(1),

2
go.mod
View File

@ -21,7 +21,7 @@ require (
github.com/filecoin-project/go-paramfetch v0.0.1 github.com/filecoin-project/go-paramfetch v0.0.1
github.com/filecoin-project/go-sectorbuilder v0.0.2-0.20200203173614-42d67726bb62 github.com/filecoin-project/go-sectorbuilder v0.0.2-0.20200203173614-42d67726bb62
github.com/filecoin-project/go-statestore v0.1.0 github.com/filecoin-project/go-statestore v0.1.0
github.com/filecoin-project/specs-actors v0.0.0-20200204204849-b1474eeb2fb5 github.com/filecoin-project/specs-actors v0.0.0-20200206185502-20fc70907293
github.com/gbrlsnchs/jwt/v3 v3.0.0-beta.1 github.com/gbrlsnchs/jwt/v3 v3.0.0-beta.1
github.com/go-ole/go-ole v1.2.4 // indirect github.com/go-ole/go-ole v1.2.4 // indirect
github.com/gorilla/mux v1.7.3 github.com/gorilla/mux v1.7.3

2
go.sum
View File

@ -125,6 +125,8 @@ github.com/filecoin-project/go-statestore v0.1.0 h1:t56reH59843TwXHkMcwyuayStBIi
github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZOinUJB4WARkRfNl10O7kTnI= github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZOinUJB4WARkRfNl10O7kTnI=
github.com/filecoin-project/specs-actors v0.0.0-20200204204849-b1474eeb2fb5 h1:rDyP5UTPFxdfS7D5I0XLdaQZZoNGYTic1X9ptKmRSlM= github.com/filecoin-project/specs-actors v0.0.0-20200204204849-b1474eeb2fb5 h1:rDyP5UTPFxdfS7D5I0XLdaQZZoNGYTic1X9ptKmRSlM=
github.com/filecoin-project/specs-actors v0.0.0-20200204204849-b1474eeb2fb5/go.mod h1:9vrrnLVhF2Zz6R3VBI7lKxQYRvPpsc1FTUyNqCvuYME= github.com/filecoin-project/specs-actors v0.0.0-20200204204849-b1474eeb2fb5/go.mod h1:9vrrnLVhF2Zz6R3VBI7lKxQYRvPpsc1FTUyNqCvuYME=
github.com/filecoin-project/specs-actors v0.0.0-20200206185502-20fc70907293 h1:k/xtj90OknHTVOJikJ9mnf81UN2BaflS3R83OUg3BJM=
github.com/filecoin-project/specs-actors v0.0.0-20200206185502-20fc70907293/go.mod h1:gx4vDpIVf3AfF23iyVn9PNQhKy7wGQDrhxNyCHDzG8I=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/gbrlsnchs/jwt/v3 v3.0.0-beta.1 h1:EzDjxMg43q1tA2c0MV3tNbaontnHLplHyFF6M5KiVP0= github.com/gbrlsnchs/jwt/v3 v3.0.0-beta.1 h1:EzDjxMg43q1tA2c0MV3tNbaontnHLplHyFF6M5KiVP0=

View File

@ -7,6 +7,7 @@ import (
"strconv" "strconv"
"github.com/filecoin-project/go-amt-ipld/v2" "github.com/filecoin-project/go-amt-ipld/v2"
samsig "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
cid "github.com/ipfs/go-cid" cid "github.com/ipfs/go-cid"
"github.com/ipfs/go-hamt-ipld" "github.com/ipfs/go-hamt-ipld"
@ -416,7 +417,7 @@ func (a *StateAPI) MsigGetAvailableBalance(ctx context.Context, addr address.Add
ts = a.Chain.GetHeaviestTipSet() ts = a.Chain.GetHeaviestTipSet()
} }
var st actors.MultiSigActorState var st samsig.MultiSigActorState
act, err := a.StateManager.LoadActorState(ctx, addr, &st, ts) act, err := a.StateManager.LoadActorState(ctx, addr, &st, ts)
if err != nil { if err != nil {
return types.EmptyInt, xerrors.Errorf("failed to load multisig actor state: %w", err) return types.EmptyInt, xerrors.Errorf("failed to load multisig actor state: %w", err)