Merge pull request #816 from filecoin-project/feat/api-cleanup
Move api struct to a seprate pkg
This commit is contained in:
		
						commit
						0de9991dcd
					
				| @ -10,6 +10,8 @@ import ( | |||||||
| 	"github.com/filecoin-project/lotus/build" | 	"github.com/filecoin-project/lotus/build" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | type Permission = string | ||||||
|  | 
 | ||||||
| type Common interface { | type Common interface { | ||||||
| 	// Auth
 | 	// Auth
 | ||||||
| 	AuthVerify(ctx context.Context, token string) ([]Permission, error) | 	AuthVerify(ctx context.Context, token string) ([]Permission, error) | ||||||
|  | |||||||
| @ -1,50 +1,50 @@ | |||||||
| package api | package apistruct | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 
 | 
 | ||||||
| 	"golang.org/x/xerrors" | 	"golang.org/x/xerrors" | ||||||
|  | 
 | ||||||
|  | 	"github.com/filecoin-project/lotus/api" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type permKey int | type permKey int | ||||||
| 
 | 
 | ||||||
| var permCtxKey permKey | var permCtxKey permKey | ||||||
| 
 | 
 | ||||||
| type Permission = string |  | ||||||
| 
 |  | ||||||
| const ( | const ( | ||||||
| 	// When changing these, update docs/API.md too
 | 	// When changing these, update docs/API.md too
 | ||||||
| 
 | 
 | ||||||
| 	PermRead  Permission = "read" // default
 | 	PermRead  api.Permission = "read" // default
 | ||||||
| 	PermWrite Permission = "write" | 	PermWrite api.Permission = "write" | ||||||
| 	PermSign  Permission = "sign"  // Use wallet keys for signing
 | 	PermSign  api.Permission = "sign"  // Use wallet keys for signing
 | ||||||
| 	PermAdmin Permission = "admin" // Manage permissions
 | 	PermAdmin api.Permission = "admin" // Manage permissions
 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var AllPermissions = []Permission{PermRead, PermWrite, PermSign, PermAdmin} | var AllPermissions = []api.Permission{PermRead, PermWrite, PermSign, PermAdmin} | ||||||
| var defaultPerms = []Permission{PermRead} | var defaultPerms = []api.Permission{PermRead} | ||||||
| 
 | 
 | ||||||
| func WithPerm(ctx context.Context, perms []Permission) context.Context { | func WithPerm(ctx context.Context, perms []api.Permission) context.Context { | ||||||
| 	return context.WithValue(ctx, permCtxKey, perms) | 	return context.WithValue(ctx, permCtxKey, perms) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func PermissionedStorMinerAPI(a StorageMiner) StorageMiner { | func PermissionedStorMinerAPI(a api.StorageMiner) api.StorageMiner { | ||||||
| 	var out StorageMinerStruct | 	var out StorageMinerStruct | ||||||
| 	permissionedAny(a, &out.Internal) | 	permissionedAny(a, &out.Internal) | ||||||
| 	permissionedAny(a, &out.CommonStruct.Internal) | 	permissionedAny(a, &out.CommonStruct.Internal) | ||||||
| 	return &out | 	return &out | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func PermissionedFullAPI(a FullNode) FullNode { | func PermissionedFullAPI(a api.FullNode) api.FullNode { | ||||||
| 	var out FullNodeStruct | 	var out FullNodeStruct | ||||||
| 	permissionedAny(a, &out.Internal) | 	permissionedAny(a, &out.Internal) | ||||||
| 	permissionedAny(a, &out.CommonStruct.Internal) | 	permissionedAny(a, &out.CommonStruct.Internal) | ||||||
| 	return &out | 	return &out | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func HasPerm(ctx context.Context, perm Permission) bool { | func HasPerm(ctx context.Context, perm api.Permission) bool { | ||||||
| 	callerPerms, ok := ctx.Value(permCtxKey).([]Permission) | 	callerPerms, ok := ctx.Value(permCtxKey).([]api.Permission) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		callerPerms = defaultPerms | 		callerPerms = defaultPerms | ||||||
| 	} | 	} | ||||||
| @ -63,7 +63,7 @@ func permissionedAny(in interface{}, out interface{}) { | |||||||
| 
 | 
 | ||||||
| 	for f := 0; f < rint.NumField(); f++ { | 	for f := 0; f < rint.NumField(); f++ { | ||||||
| 		field := rint.Type().Field(f) | 		field := rint.Type().Field(f) | ||||||
| 		requiredPerm := Permission(field.Tag.Get("perm")) | 		requiredPerm := api.Permission(field.Tag.Get("perm")) | ||||||
| 		if requiredPerm == "" { | 		if requiredPerm == "" { | ||||||
| 			panic("missing 'perm' tag on " + field.Name) // ok
 | 			panic("missing 'perm' tag on " + field.Name) // ok
 | ||||||
| 		} | 		} | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package api | package apistruct | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| @ -9,6 +9,7 @@ import ( | |||||||
| 	"github.com/libp2p/go-libp2p-core/network" | 	"github.com/libp2p/go-libp2p-core/network" | ||||||
| 	"github.com/libp2p/go-libp2p-core/peer" | 	"github.com/libp2p/go-libp2p-core/peer" | ||||||
| 
 | 
 | ||||||
|  | 	"github.com/filecoin-project/lotus/api" | ||||||
| 	"github.com/filecoin-project/lotus/chain/actors" | 	"github.com/filecoin-project/lotus/chain/actors" | ||||||
| 	"github.com/filecoin-project/lotus/chain/address" | 	"github.com/filecoin-project/lotus/chain/address" | ||||||
| 	"github.com/filecoin-project/lotus/chain/store" | 	"github.com/filecoin-project/lotus/chain/store" | ||||||
| @ -20,8 +21,8 @@ var _ = AllPermissions | |||||||
| 
 | 
 | ||||||
| type CommonStruct struct { | type CommonStruct struct { | ||||||
| 	Internal struct { | 	Internal struct { | ||||||
| 		AuthVerify func(ctx context.Context, token string) ([]Permission, error) `perm:"read"` | 		AuthVerify func(ctx context.Context, token string) ([]api.Permission, error) `perm:"read"` | ||||||
| 		AuthNew    func(ctx context.Context, perms []Permission) ([]byte, error) `perm:"admin"` | 		AuthNew    func(ctx context.Context, perms []api.Permission) ([]byte, error) `perm:"admin"` | ||||||
| 
 | 
 | ||||||
| 		NetConnectedness func(context.Context, peer.ID) (network.Connectedness, error) `perm:"read"` | 		NetConnectedness func(context.Context, peer.ID) (network.Connectedness, error) `perm:"read"` | ||||||
| 		NetPeers         func(context.Context) ([]peer.AddrInfo, error)                `perm:"read"` | 		NetPeers         func(context.Context) ([]peer.AddrInfo, error)                `perm:"read"` | ||||||
| @ -29,8 +30,8 @@ type CommonStruct struct { | |||||||
| 		NetAddrsListen   func(context.Context) (peer.AddrInfo, error)                  `perm:"read"` | 		NetAddrsListen   func(context.Context) (peer.AddrInfo, error)                  `perm:"read"` | ||||||
| 		NetDisconnect    func(context.Context, peer.ID) error                          `perm:"write"` | 		NetDisconnect    func(context.Context, peer.ID) error                          `perm:"write"` | ||||||
| 
 | 
 | ||||||
| 		ID      func(context.Context) (peer.ID, error) `perm:"read"` | 		ID      func(context.Context) (peer.ID, error)     `perm:"read"` | ||||||
| 		Version func(context.Context) (Version, error) `perm:"read"` | 		Version func(context.Context) (api.Version, error) `perm:"read"` | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -44,16 +45,16 @@ type FullNodeStruct struct { | |||||||
| 		ChainGetRandomness     func(context.Context, types.TipSetKey, int64) ([]byte, error)       `perm:"read"` | 		ChainGetRandomness     func(context.Context, types.TipSetKey, int64) ([]byte, error)       `perm:"read"` | ||||||
| 		ChainGetBlock          func(context.Context, cid.Cid) (*types.BlockHeader, error)          `perm:"read"` | 		ChainGetBlock          func(context.Context, cid.Cid) (*types.BlockHeader, error)          `perm:"read"` | ||||||
| 		ChainGetTipSet         func(context.Context, types.TipSetKey) (*types.TipSet, error)       `perm:"read"` | 		ChainGetTipSet         func(context.Context, types.TipSetKey) (*types.TipSet, error)       `perm:"read"` | ||||||
| 		ChainGetBlockMessages  func(context.Context, cid.Cid) (*BlockMessages, error)              `perm:"read"` | 		ChainGetBlockMessages  func(context.Context, cid.Cid) (*api.BlockMessages, error)          `perm:"read"` | ||||||
| 		ChainGetParentReceipts func(context.Context, cid.Cid) ([]*types.MessageReceipt, error)     `perm:"read"` | 		ChainGetParentReceipts func(context.Context, cid.Cid) ([]*types.MessageReceipt, error)     `perm:"read"` | ||||||
| 		ChainGetParentMessages func(context.Context, cid.Cid) ([]Message, error)                   `perm:"read"` | 		ChainGetParentMessages func(context.Context, cid.Cid) ([]api.Message, error)               `perm:"read"` | ||||||
| 		ChainGetTipSetByHeight func(context.Context, uint64, *types.TipSet) (*types.TipSet, error) `perm:"read"` | 		ChainGetTipSetByHeight func(context.Context, uint64, *types.TipSet) (*types.TipSet, error) `perm:"read"` | ||||||
| 		ChainReadObj           func(context.Context, cid.Cid) ([]byte, error)                      `perm:"read"` | 		ChainReadObj           func(context.Context, cid.Cid) ([]byte, error)                      `perm:"read"` | ||||||
| 		ChainSetHead           func(context.Context, *types.TipSet) error                          `perm:"admin"` | 		ChainSetHead           func(context.Context, *types.TipSet) error                          `perm:"admin"` | ||||||
| 		ChainGetGenesis        func(context.Context) (*types.TipSet, error)                        `perm:"read"` | 		ChainGetGenesis        func(context.Context) (*types.TipSet, error)                        `perm:"read"` | ||||||
| 		ChainTipSetWeight      func(context.Context, *types.TipSet) (types.BigInt, error)          `perm:"read"` | 		ChainTipSetWeight      func(context.Context, *types.TipSet) (types.BigInt, error)          `perm:"read"` | ||||||
| 
 | 
 | ||||||
| 		SyncState          func(context.Context) (*SyncState, error)                    `perm:"read"` | 		SyncState          func(context.Context) (*api.SyncState, error)                `perm:"read"` | ||||||
| 		SyncSubmitBlock    func(ctx context.Context, blk *types.BlockMsg) error         `perm:"write"` | 		SyncSubmitBlock    func(ctx context.Context, blk *types.BlockMsg) error         `perm:"write"` | ||||||
| 		SyncIncomingBlocks func(ctx context.Context) (<-chan *types.BlockHeader, error) `perm:"read"` | 		SyncIncomingBlocks func(ctx context.Context) (<-chan *types.BlockHeader, error) `perm:"read"` | ||||||
| 
 | 
 | ||||||
| @ -61,7 +62,7 @@ type FullNodeStruct struct { | |||||||
| 		MpoolPush        func(context.Context, *types.SignedMessage) error                    `perm:"write"` | 		MpoolPush        func(context.Context, *types.SignedMessage) error                    `perm:"write"` | ||||||
| 		MpoolPushMessage func(context.Context, *types.Message) (*types.SignedMessage, error)  `perm:"sign"` | 		MpoolPushMessage func(context.Context, *types.Message) (*types.SignedMessage, error)  `perm:"sign"` | ||||||
| 		MpoolGetNonce    func(context.Context, address.Address) (uint64, error)               `perm:"read"` | 		MpoolGetNonce    func(context.Context, address.Address) (uint64, error)               `perm:"read"` | ||||||
| 		MpoolSub         func(context.Context) (<-chan MpoolUpdate, error)                    `perm:"read"` | 		MpoolSub         func(context.Context) (<-chan api.MpoolUpdate, error)                `perm:"read"` | ||||||
| 
 | 
 | ||||||
| 		MinerCreateBlock func(context.Context, address.Address, *types.TipSet, *types.Ticket, *types.EPostProof, []*types.SignedMessage, uint64, uint64) (*types.BlockMsg, error) `perm:"write"` | 		MinerCreateBlock func(context.Context, address.Address, *types.TipSet, *types.Ticket, *types.EPostProof, []*types.SignedMessage, uint64, uint64) (*types.BlockMsg, error) `perm:"write"` | ||||||
| 
 | 
 | ||||||
| @ -77,28 +78,28 @@ type FullNodeStruct struct { | |||||||
| 		WalletImport         func(context.Context, *types.KeyInfo) (address.Address, error)                       `perm:"admin"` | 		WalletImport         func(context.Context, *types.KeyInfo) (address.Address, error)                       `perm:"admin"` | ||||||
| 
 | 
 | ||||||
| 		ClientImport      func(ctx context.Context, path string) (cid.Cid, error)                                                                     `perm:"admin"` | 		ClientImport      func(ctx context.Context, path string) (cid.Cid, error)                                                                     `perm:"admin"` | ||||||
| 		ClientListImports func(ctx context.Context) ([]Import, error)                                                                                 `perm:"write"` | 		ClientListImports func(ctx context.Context) ([]api.Import, error)                                                                             `perm:"write"` | ||||||
| 		ClientHasLocal    func(ctx context.Context, root cid.Cid) (bool, error)                                                                       `perm:"write"` | 		ClientHasLocal    func(ctx context.Context, root cid.Cid) (bool, error)                                                                       `perm:"write"` | ||||||
| 		ClientFindData    func(ctx context.Context, root cid.Cid) ([]QueryOffer, error)                                                               `perm:"read"` | 		ClientFindData    func(ctx context.Context, root cid.Cid) ([]api.QueryOffer, error)                                                           `perm:"read"` | ||||||
| 		ClientStartDeal   func(ctx context.Context, data cid.Cid, miner address.Address, price types.BigInt, blocksDuration uint64) (*cid.Cid, error) `perm:"admin"` | 		ClientStartDeal   func(ctx context.Context, data cid.Cid, miner address.Address, price types.BigInt, blocksDuration uint64) (*cid.Cid, error) `perm:"admin"` | ||||||
| 		ClientGetDealInfo func(context.Context, cid.Cid) (*DealInfo, error)                                                                           `perm:"read"` | 		ClientGetDealInfo func(context.Context, cid.Cid) (*api.DealInfo, error)                                                                       `perm:"read"` | ||||||
| 		ClientListDeals   func(ctx context.Context) ([]DealInfo, error)                                                                               `perm:"write"` | 		ClientListDeals   func(ctx context.Context) ([]api.DealInfo, error)                                                                           `perm:"write"` | ||||||
| 		ClientRetrieve    func(ctx context.Context, order RetrievalOrder, path string) error                                                          `perm:"admin"` | 		ClientRetrieve    func(ctx context.Context, order api.RetrievalOrder, path string) error                                                      `perm:"admin"` | ||||||
| 		ClientQueryAsk    func(ctx context.Context, p peer.ID, miner address.Address) (*types.SignedStorageAsk, error)                                `perm:"read"` | 		ClientQueryAsk    func(ctx context.Context, p peer.ID, miner address.Address) (*types.SignedStorageAsk, error)                                `perm:"read"` | ||||||
| 
 | 
 | ||||||
| 		StateMinerSectors             func(context.Context, address.Address, *types.TipSet) ([]*ChainSectorInfo, error)               `perm:"read"` | 		StateMinerSectors             func(context.Context, address.Address, *types.TipSet) ([]*api.ChainSectorInfo, error)           `perm:"read"` | ||||||
| 		StateMinerProvingSet          func(context.Context, address.Address, *types.TipSet) ([]*ChainSectorInfo, error)               `perm:"read"` | 		StateMinerProvingSet          func(context.Context, address.Address, *types.TipSet) ([]*api.ChainSectorInfo, error)           `perm:"read"` | ||||||
| 		StateMinerPower               func(context.Context, address.Address, *types.TipSet) (MinerPower, error)                       `perm:"read"` | 		StateMinerPower               func(context.Context, address.Address, *types.TipSet) (api.MinerPower, error)                   `perm:"read"` | ||||||
| 		StateMinerWorker              func(context.Context, address.Address, *types.TipSet) (address.Address, error)                  `perm:"read"` | 		StateMinerWorker              func(context.Context, address.Address, *types.TipSet) (address.Address, error)                  `perm:"read"` | ||||||
| 		StateMinerPeerID              func(ctx context.Context, m address.Address, ts *types.TipSet) (peer.ID, error)                 `perm:"read"` | 		StateMinerPeerID              func(ctx context.Context, m address.Address, ts *types.TipSet) (peer.ID, error)                 `perm:"read"` | ||||||
| 		StateMinerElectionPeriodStart func(ctx context.Context, actor address.Address, ts *types.TipSet) (uint64, error)              `perm:"read"` | 		StateMinerElectionPeriodStart func(ctx context.Context, actor address.Address, ts *types.TipSet) (uint64, error)              `perm:"read"` | ||||||
| 		StateMinerSectorSize          func(context.Context, address.Address, *types.TipSet) (uint64, error)                           `perm:"read"` | 		StateMinerSectorSize          func(context.Context, address.Address, *types.TipSet) (uint64, error)                           `perm:"read"` | ||||||
| 		StateCall                     func(context.Context, *types.Message, *types.TipSet) (*types.MessageReceipt, error)             `perm:"read"` | 		StateCall                     func(context.Context, *types.Message, *types.TipSet) (*types.MessageReceipt, error)             `perm:"read"` | ||||||
| 		StateReplay                   func(context.Context, *types.TipSet, cid.Cid) (*ReplayResults, error)                           `perm:"read"` | 		StateReplay                   func(context.Context, *types.TipSet, cid.Cid) (*api.ReplayResults, error)                       `perm:"read"` | ||||||
| 		StateGetActor                 func(context.Context, address.Address, *types.TipSet) (*types.Actor, error)                     `perm:"read"` | 		StateGetActor                 func(context.Context, address.Address, *types.TipSet) (*types.Actor, error)                     `perm:"read"` | ||||||
| 		StateReadState                func(context.Context, *types.Actor, *types.TipSet) (*ActorState, error)                         `perm:"read"` | 		StateReadState                func(context.Context, *types.Actor, *types.TipSet) (*api.ActorState, error)                     `perm:"read"` | ||||||
| 		StatePledgeCollateral         func(context.Context, *types.TipSet) (types.BigInt, error)                                      `perm:"read"` | 		StatePledgeCollateral         func(context.Context, *types.TipSet) (types.BigInt, error)                                      `perm:"read"` | ||||||
| 		StateWaitMsg                  func(context.Context, cid.Cid) (*MsgWait, error)                                                `perm:"read"` | 		StateWaitMsg                  func(context.Context, cid.Cid) (*api.MsgWait, error)                                            `perm:"read"` | ||||||
| 		StateListMiners               func(context.Context, *types.TipSet) ([]address.Address, error)                                 `perm:"read"` | 		StateListMiners               func(context.Context, *types.TipSet) ([]address.Address, error)                                 `perm:"read"` | ||||||
| 		StateListActors               func(context.Context, *types.TipSet) ([]address.Address, error)                                 `perm:"read"` | 		StateListActors               func(context.Context, *types.TipSet) ([]address.Address, error)                                 `perm:"read"` | ||||||
| 		StateMarketBalance            func(context.Context, address.Address, *types.TipSet) (actors.StorageParticipantBalance, error) `perm:"read"` | 		StateMarketBalance            func(context.Context, address.Address, *types.TipSet) (actors.StorageParticipantBalance, error) `perm:"read"` | ||||||
| @ -111,19 +112,19 @@ type FullNodeStruct struct { | |||||||
| 
 | 
 | ||||||
| 		MarketEnsureAvailable func(context.Context, address.Address, types.BigInt) error `perm:"sign"` | 		MarketEnsureAvailable func(context.Context, address.Address, types.BigInt) error `perm:"sign"` | ||||||
| 
 | 
 | ||||||
| 		PaychGet                   func(ctx context.Context, from, to address.Address, ensureFunds types.BigInt) (*ChannelInfo, error)      `perm:"sign"` | 		PaychGet                   func(ctx context.Context, from, to address.Address, ensureFunds types.BigInt) (*api.ChannelInfo, error)   `perm:"sign"` | ||||||
| 		PaychList                  func(context.Context) ([]address.Address, error)                                                         `perm:"read"` | 		PaychList                  func(context.Context) ([]address.Address, error)                                                          `perm:"read"` | ||||||
| 		PaychStatus                func(context.Context, address.Address) (*PaychStatus, error)                                             `perm:"read"` | 		PaychStatus                func(context.Context, address.Address) (*api.PaychStatus, error)                                          `perm:"read"` | ||||||
| 		PaychClose                 func(context.Context, address.Address) (cid.Cid, error)                                                  `perm:"sign"` | 		PaychClose                 func(context.Context, address.Address) (cid.Cid, error)                                                   `perm:"sign"` | ||||||
| 		PaychAllocateLane          func(context.Context, address.Address) (uint64, error)                                                   `perm:"sign"` | 		PaychAllocateLane          func(context.Context, address.Address) (uint64, error)                                                    `perm:"sign"` | ||||||
| 		PaychNewPayment            func(ctx context.Context, from, to address.Address, vouchers []VoucherSpec) (*PaymentInfo, error)        `perm:"sign"` | 		PaychNewPayment            func(ctx context.Context, from, to address.Address, vouchers []api.VoucherSpec) (*api.PaymentInfo, error) `perm:"sign"` | ||||||
| 		PaychVoucherCheck          func(context.Context, *types.SignedVoucher) error                                                        `perm:"read"` | 		PaychVoucherCheck          func(context.Context, *types.SignedVoucher) error                                                         `perm:"read"` | ||||||
| 		PaychVoucherCheckValid     func(context.Context, address.Address, *types.SignedVoucher) error                                       `perm:"read"` | 		PaychVoucherCheckValid     func(context.Context, address.Address, *types.SignedVoucher) error                                        `perm:"read"` | ||||||
| 		PaychVoucherCheckSpendable func(context.Context, address.Address, *types.SignedVoucher, []byte, []byte) (bool, error)               `perm:"read"` | 		PaychVoucherCheckSpendable func(context.Context, address.Address, *types.SignedVoucher, []byte, []byte) (bool, error)                `perm:"read"` | ||||||
| 		PaychVoucherAdd            func(context.Context, address.Address, *types.SignedVoucher, []byte, types.BigInt) (types.BigInt, error) `perm:"write"` | 		PaychVoucherAdd            func(context.Context, address.Address, *types.SignedVoucher, []byte, types.BigInt) (types.BigInt, error)  `perm:"write"` | ||||||
| 		PaychVoucherCreate         func(context.Context, address.Address, types.BigInt, uint64) (*types.SignedVoucher, error)               `perm:"sign"` | 		PaychVoucherCreate         func(context.Context, address.Address, types.BigInt, uint64) (*types.SignedVoucher, error)               `perm:"sign"` | ||||||
| 		PaychVoucherList           func(context.Context, address.Address) ([]*types.SignedVoucher, error)                                   `perm:"write"` | 		PaychVoucherList           func(context.Context, address.Address) ([]*types.SignedVoucher, error)                                   `perm:"write"` | ||||||
| 		PaychVoucherSubmit         func(context.Context, address.Address, *types.SignedVoucher) (cid.Cid, error)                            `perm:"sign"` | 		PaychVoucherSubmit         func(context.Context, address.Address, *types.SignedVoucher) (cid.Cid, error)                             `perm:"sign"` | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -136,10 +137,10 @@ type StorageMinerStruct struct { | |||||||
| 
 | 
 | ||||||
| 		PledgeSector func(context.Context) error `perm:"write"` | 		PledgeSector func(context.Context) error `perm:"write"` | ||||||
| 
 | 
 | ||||||
| 		SectorsStatus func(context.Context, uint64) (SectorInfo, error)     `perm:"read"` | 		SectorsStatus func(context.Context, uint64) (api.SectorInfo, error)     `perm:"read"` | ||||||
| 		SectorsList   func(context.Context) ([]uint64, error)               `perm:"read"` | 		SectorsList   func(context.Context) ([]uint64, error)                   `perm:"read"` | ||||||
| 		SectorsRefs   func(context.Context) (map[string][]SealedRef, error) `perm:"read"` | 		SectorsRefs   func(context.Context) (map[string][]api.SealedRef, error) `perm:"read"` | ||||||
| 		SectorsUpdate func(context.Context, uint64, SectorState) error      `perm:"write"` | 		SectorsUpdate func(context.Context, uint64, api.SectorState) error      `perm:"write"` | ||||||
| 
 | 
 | ||||||
| 		WorkerStats func(context.Context) (sectorbuilder.WorkerStats, error) `perm:"read"` | 		WorkerStats func(context.Context) (sectorbuilder.WorkerStats, error) `perm:"read"` | ||||||
| 
 | 
 | ||||||
| @ -148,11 +149,11 @@ type StorageMinerStruct struct { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *CommonStruct) AuthVerify(ctx context.Context, token string) ([]Permission, error) { | func (c *CommonStruct) AuthVerify(ctx context.Context, token string) ([]api.Permission, error) { | ||||||
| 	return c.Internal.AuthVerify(ctx, token) | 	return c.Internal.AuthVerify(ctx, token) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *CommonStruct) AuthNew(ctx context.Context, perms []Permission) ([]byte, error) { | func (c *CommonStruct) AuthNew(ctx context.Context, perms []api.Permission) ([]byte, error) { | ||||||
| 	return c.Internal.AuthNew(ctx, perms) | 	return c.Internal.AuthNew(ctx, perms) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -182,11 +183,11 @@ func (c *CommonStruct) ID(ctx context.Context) (peer.ID, error) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Version implements API.Version
 | // Version implements API.Version
 | ||||||
| func (c *CommonStruct) Version(ctx context.Context) (Version, error) { | func (c *CommonStruct) Version(ctx context.Context) (api.Version, error) { | ||||||
| 	return c.Internal.Version(ctx) | 	return c.Internal.Version(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ClientListImports(ctx context.Context) ([]Import, error) { | func (c *FullNodeStruct) ClientListImports(ctx context.Context) ([]api.Import, error) { | ||||||
| 	return c.Internal.ClientListImports(ctx) | 	return c.Internal.ClientListImports(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -198,22 +199,22 @@ func (c *FullNodeStruct) ClientHasLocal(ctx context.Context, root cid.Cid) (bool | |||||||
| 	return c.Internal.ClientHasLocal(ctx, root) | 	return c.Internal.ClientHasLocal(ctx, root) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ClientFindData(ctx context.Context, root cid.Cid) ([]QueryOffer, error) { | func (c *FullNodeStruct) ClientFindData(ctx context.Context, root cid.Cid) ([]api.QueryOffer, error) { | ||||||
| 	return c.Internal.ClientFindData(ctx, root) | 	return c.Internal.ClientFindData(ctx, root) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ClientStartDeal(ctx context.Context, data cid.Cid, miner address.Address, price types.BigInt, blocksDuration uint64) (*cid.Cid, error) { | func (c *FullNodeStruct) ClientStartDeal(ctx context.Context, data cid.Cid, miner address.Address, price types.BigInt, blocksDuration uint64) (*cid.Cid, error) { | ||||||
| 	return c.Internal.ClientStartDeal(ctx, data, miner, price, blocksDuration) | 	return c.Internal.ClientStartDeal(ctx, data, miner, price, blocksDuration) | ||||||
| } | } | ||||||
| func (c *FullNodeStruct) ClientGetDealInfo(ctx context.Context, deal cid.Cid) (*DealInfo, error) { | func (c *FullNodeStruct) ClientGetDealInfo(ctx context.Context, deal cid.Cid) (*api.DealInfo, error) { | ||||||
| 	return c.Internal.ClientGetDealInfo(ctx, deal) | 	return c.Internal.ClientGetDealInfo(ctx, deal) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ClientListDeals(ctx context.Context) ([]DealInfo, error) { | func (c *FullNodeStruct) ClientListDeals(ctx context.Context) ([]api.DealInfo, error) { | ||||||
| 	return c.Internal.ClientListDeals(ctx) | 	return c.Internal.ClientListDeals(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ClientRetrieve(ctx context.Context, order RetrievalOrder, path string) error { | func (c *FullNodeStruct) ClientRetrieve(ctx context.Context, order api.RetrievalOrder, path string) error { | ||||||
| 	return c.Internal.ClientRetrieve(ctx, order, path) | 	return c.Internal.ClientRetrieve(ctx, order, path) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -233,7 +234,7 @@ func (c *FullNodeStruct) MpoolPushMessage(ctx context.Context, msg *types.Messag | |||||||
| 	return c.Internal.MpoolPushMessage(ctx, msg) | 	return c.Internal.MpoolPushMessage(ctx, msg) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) MpoolSub(ctx context.Context) (<-chan MpoolUpdate, error) { | func (c *FullNodeStruct) MpoolSub(ctx context.Context) (<-chan api.MpoolUpdate, error) { | ||||||
| 	return c.Internal.MpoolSub(ctx) | 	return c.Internal.MpoolSub(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -305,7 +306,7 @@ func (c *FullNodeStruct) ChainGetTipSet(ctx context.Context, key types.TipSetKey | |||||||
| 	return c.Internal.ChainGetTipSet(ctx, key) | 	return c.Internal.ChainGetTipSet(ctx, key) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ChainGetBlockMessages(ctx context.Context, b cid.Cid) (*BlockMessages, error) { | func (c *FullNodeStruct) ChainGetBlockMessages(ctx context.Context, b cid.Cid) (*api.BlockMessages, error) { | ||||||
| 	return c.Internal.ChainGetBlockMessages(ctx, b) | 	return c.Internal.ChainGetBlockMessages(ctx, b) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -313,7 +314,7 @@ func (c *FullNodeStruct) ChainGetParentReceipts(ctx context.Context, b cid.Cid) | |||||||
| 	return c.Internal.ChainGetParentReceipts(ctx, b) | 	return c.Internal.ChainGetParentReceipts(ctx, b) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) ChainGetParentMessages(ctx context.Context, b cid.Cid) ([]Message, error) { | func (c *FullNodeStruct) ChainGetParentMessages(ctx context.Context, b cid.Cid) ([]api.Message, error) { | ||||||
| 	return c.Internal.ChainGetParentMessages(ctx, b) | 	return c.Internal.ChainGetParentMessages(ctx, b) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -337,7 +338,7 @@ func (c *FullNodeStruct) ChainTipSetWeight(ctx context.Context, ts *types.TipSet | |||||||
| 	return c.Internal.ChainTipSetWeight(ctx, ts) | 	return c.Internal.ChainTipSetWeight(ctx, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) SyncState(ctx context.Context) (*SyncState, error) { | func (c *FullNodeStruct) SyncState(ctx context.Context) (*api.SyncState, error) { | ||||||
| 	return c.Internal.SyncState(ctx) | 	return c.Internal.SyncState(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -349,15 +350,15 @@ func (c *FullNodeStruct) SyncIncomingBlocks(ctx context.Context) (<-chan *types. | |||||||
| 	return c.Internal.SyncIncomingBlocks(ctx) | 	return c.Internal.SyncIncomingBlocks(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) StateMinerSectors(ctx context.Context, addr address.Address, ts *types.TipSet) ([]*ChainSectorInfo, error) { | func (c *FullNodeStruct) StateMinerSectors(ctx context.Context, addr address.Address, ts *types.TipSet) ([]*api.ChainSectorInfo, error) { | ||||||
| 	return c.Internal.StateMinerSectors(ctx, addr, ts) | 	return c.Internal.StateMinerSectors(ctx, addr, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) StateMinerProvingSet(ctx context.Context, addr address.Address, ts *types.TipSet) ([]*ChainSectorInfo, error) { | func (c *FullNodeStruct) StateMinerProvingSet(ctx context.Context, addr address.Address, ts *types.TipSet) ([]*api.ChainSectorInfo, error) { | ||||||
| 	return c.Internal.StateMinerProvingSet(ctx, addr, ts) | 	return c.Internal.StateMinerProvingSet(ctx, addr, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) StateMinerPower(ctx context.Context, a address.Address, ts *types.TipSet) (MinerPower, error) { | func (c *FullNodeStruct) StateMinerPower(ctx context.Context, a address.Address, ts *types.TipSet) (api.MinerPower, error) { | ||||||
| 	return c.Internal.StateMinerPower(ctx, a, ts) | 	return c.Internal.StateMinerPower(ctx, a, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -381,7 +382,7 @@ func (c *FullNodeStruct) StateCall(ctx context.Context, msg *types.Message, ts * | |||||||
| 	return c.Internal.StateCall(ctx, msg, ts) | 	return c.Internal.StateCall(ctx, msg, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) StateReplay(ctx context.Context, ts *types.TipSet, mc cid.Cid) (*ReplayResults, error) { | func (c *FullNodeStruct) StateReplay(ctx context.Context, ts *types.TipSet, mc cid.Cid) (*api.ReplayResults, error) { | ||||||
| 	return c.Internal.StateReplay(ctx, ts, mc) | 	return c.Internal.StateReplay(ctx, ts, mc) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -389,7 +390,7 @@ func (c *FullNodeStruct) StateGetActor(ctx context.Context, actor address.Addres | |||||||
| 	return c.Internal.StateGetActor(ctx, actor, ts) | 	return c.Internal.StateGetActor(ctx, actor, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) StateReadState(ctx context.Context, act *types.Actor, ts *types.TipSet) (*ActorState, error) { | func (c *FullNodeStruct) StateReadState(ctx context.Context, act *types.Actor, ts *types.TipSet) (*api.ActorState, error) { | ||||||
| 	return c.Internal.StateReadState(ctx, act, ts) | 	return c.Internal.StateReadState(ctx, act, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -397,7 +398,7 @@ func (c *FullNodeStruct) StatePledgeCollateral(ctx context.Context, ts *types.Ti | |||||||
| 	return c.Internal.StatePledgeCollateral(ctx, ts) | 	return c.Internal.StatePledgeCollateral(ctx, ts) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) StateWaitMsg(ctx context.Context, msgc cid.Cid) (*MsgWait, error) { | func (c *FullNodeStruct) StateWaitMsg(ctx context.Context, msgc cid.Cid) (*api.MsgWait, error) { | ||||||
| 	return c.Internal.StateWaitMsg(ctx, msgc) | 	return c.Internal.StateWaitMsg(ctx, msgc) | ||||||
| } | } | ||||||
| func (c *FullNodeStruct) StateListMiners(ctx context.Context, ts *types.TipSet) ([]address.Address, error) { | func (c *FullNodeStruct) StateListMiners(ctx context.Context, ts *types.TipSet) ([]address.Address, error) { | ||||||
| @ -440,7 +441,7 @@ func (c *FullNodeStruct) MarketEnsureAvailable(ctx context.Context, addr address | |||||||
| 	return c.Internal.MarketEnsureAvailable(ctx, addr, amt) | 	return c.Internal.MarketEnsureAvailable(ctx, addr, amt) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) PaychGet(ctx context.Context, from, to address.Address, ensureFunds types.BigInt) (*ChannelInfo, error) { | func (c *FullNodeStruct) PaychGet(ctx context.Context, from, to address.Address, ensureFunds types.BigInt) (*api.ChannelInfo, error) { | ||||||
| 	return c.Internal.PaychGet(ctx, from, to, ensureFunds) | 	return c.Internal.PaychGet(ctx, from, to, ensureFunds) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -448,7 +449,7 @@ func (c *FullNodeStruct) PaychList(ctx context.Context) ([]address.Address, erro | |||||||
| 	return c.Internal.PaychList(ctx) | 	return c.Internal.PaychList(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) PaychStatus(ctx context.Context, pch address.Address) (*PaychStatus, error) { | func (c *FullNodeStruct) PaychStatus(ctx context.Context, pch address.Address) (*api.PaychStatus, error) { | ||||||
| 	return c.Internal.PaychStatus(ctx, pch) | 	return c.Internal.PaychStatus(ctx, pch) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -480,7 +481,7 @@ func (c *FullNodeStruct) PaychAllocateLane(ctx context.Context, ch address.Addre | |||||||
| 	return c.Internal.PaychAllocateLane(ctx, ch) | 	return c.Internal.PaychAllocateLane(ctx, ch) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *FullNodeStruct) PaychNewPayment(ctx context.Context, from, to address.Address, vouchers []VoucherSpec) (*PaymentInfo, error) { | func (c *FullNodeStruct) PaychNewPayment(ctx context.Context, from, to address.Address, vouchers []api.VoucherSpec) (*api.PaymentInfo, error) { | ||||||
| 	return c.Internal.PaychNewPayment(ctx, from, to, vouchers) | 	return c.Internal.PaychNewPayment(ctx, from, to, vouchers) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -501,7 +502,7 @@ func (c *StorageMinerStruct) PledgeSector(ctx context.Context) error { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Get the status of a given sector by ID
 | // Get the status of a given sector by ID
 | ||||||
| func (c *StorageMinerStruct) SectorsStatus(ctx context.Context, sid uint64) (SectorInfo, error) { | func (c *StorageMinerStruct) SectorsStatus(ctx context.Context, sid uint64) (api.SectorInfo, error) { | ||||||
| 	return c.Internal.SectorsStatus(ctx, sid) | 	return c.Internal.SectorsStatus(ctx, sid) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -510,11 +511,11 @@ func (c *StorageMinerStruct) SectorsList(ctx context.Context) ([]uint64, error) | |||||||
| 	return c.Internal.SectorsList(ctx) | 	return c.Internal.SectorsList(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) SectorsRefs(ctx context.Context) (map[string][]SealedRef, error) { | func (c *StorageMinerStruct) SectorsRefs(ctx context.Context) (map[string][]api.SealedRef, error) { | ||||||
| 	return c.Internal.SectorsRefs(ctx) | 	return c.Internal.SectorsRefs(ctx) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) SectorsUpdate(ctx context.Context, id uint64, state SectorState) error { | func (c *StorageMinerStruct) SectorsUpdate(ctx context.Context, id uint64, state api.SectorState) error { | ||||||
| 	return c.Internal.SectorsUpdate(ctx, id, state) | 	return c.Internal.SectorsUpdate(ctx, id, state) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -530,6 +531,6 @@ func (c *StorageMinerStruct) WorkerDone(ctx context.Context, task uint64, res se | |||||||
| 	return c.Internal.WorkerDone(ctx, task, res) | 	return c.Internal.WorkerDone(ctx, task, res) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var _ Common = &CommonStruct{} | var _ api.Common = &CommonStruct{} | ||||||
| var _ FullNode = &FullNodeStruct{} | var _ api.FullNode = &FullNodeStruct{} | ||||||
| var _ StorageMiner = &StorageMinerStruct{} | var _ api.StorageMiner = &StorageMinerStruct{} | ||||||
| @ -1,6 +1,7 @@ | |||||||
| package client | package client | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/lotus/api" | 	"github.com/filecoin-project/lotus/api" | ||||||
| @ -9,7 +10,7 @@ import ( | |||||||
| 
 | 
 | ||||||
| // NewCommonRPC creates a new http jsonrpc client.
 | // NewCommonRPC creates a new http jsonrpc client.
 | ||||||
| func NewCommonRPC(addr string, requestHeader http.Header) (api.Common, jsonrpc.ClientCloser, error) { | func NewCommonRPC(addr string, requestHeader http.Header) (api.Common, jsonrpc.ClientCloser, error) { | ||||||
| 	var res api.CommonStruct | 	var res apistruct.CommonStruct | ||||||
| 	closer, err := jsonrpc.NewMergeClient(addr, "Filecoin", | 	closer, err := jsonrpc.NewMergeClient(addr, "Filecoin", | ||||||
| 		[]interface{}{ | 		[]interface{}{ | ||||||
| 			&res.Internal, | 			&res.Internal, | ||||||
| @ -20,7 +21,7 @@ func NewCommonRPC(addr string, requestHeader http.Header) (api.Common, jsonrpc.C | |||||||
| 
 | 
 | ||||||
| // NewFullNodeRPC creates a new http jsonrpc client.
 | // NewFullNodeRPC creates a new http jsonrpc client.
 | ||||||
| func NewFullNodeRPC(addr string, requestHeader http.Header) (api.FullNode, jsonrpc.ClientCloser, error) { | func NewFullNodeRPC(addr string, requestHeader http.Header) (api.FullNode, jsonrpc.ClientCloser, error) { | ||||||
| 	var res api.FullNodeStruct | 	var res apistruct.FullNodeStruct | ||||||
| 	closer, err := jsonrpc.NewMergeClient(addr, "Filecoin", | 	closer, err := jsonrpc.NewMergeClient(addr, "Filecoin", | ||||||
| 		[]interface{}{ | 		[]interface{}{ | ||||||
| 			&res.CommonStruct.Internal, | 			&res.CommonStruct.Internal, | ||||||
| @ -32,7 +33,7 @@ func NewFullNodeRPC(addr string, requestHeader http.Header) (api.FullNode, jsonr | |||||||
| 
 | 
 | ||||||
| // NewStorageMinerRPC creates a new http jsonrpc client for storage miner
 | // NewStorageMinerRPC creates a new http jsonrpc client for storage miner
 | ||||||
| func NewStorageMinerRPC(addr string, requestHeader http.Header) (api.StorageMiner, jsonrpc.ClientCloser, error) { | func NewStorageMinerRPC(addr string, requestHeader http.Header) (api.StorageMiner, jsonrpc.ClientCloser, error) { | ||||||
| 	var res api.StorageMinerStruct | 	var res apistruct.StorageMinerStruct | ||||||
| 	closer, err := jsonrpc.NewMergeClient(addr, "Filecoin", | 	closer, err := jsonrpc.NewMergeClient(addr, "Filecoin", | ||||||
| 		[]interface{}{ | 		[]interface{}{ | ||||||
| 			&res.CommonStruct.Internal, | 			&res.CommonStruct.Internal, | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ import ( | |||||||
| 
 | 
 | ||||||
| 	"gopkg.in/urfave/cli.v2" | 	"gopkg.in/urfave/cli.v2" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/lotus/api" | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var authCmd = &cli.Command{ | var authCmd = &cli.Command{ | ||||||
| @ -42,18 +42,18 @@ var authCreateAdminToken = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| 		perm := cctx.String("perm") | 		perm := cctx.String("perm") | ||||||
| 		idx := 0 | 		idx := 0 | ||||||
| 		for i, p := range api.AllPermissions { | 		for i, p := range apistruct.AllPermissions { | ||||||
| 			if perm == p { | 			if perm == p { | ||||||
| 				idx = i + 1 | 				idx = i + 1 | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if idx == 0 { | 		if idx == 0 { | ||||||
| 			return fmt.Errorf("--perm flag has to be one of: %s", api.AllPermissions) | 			return fmt.Errorf("--perm flag has to be one of: %s", apistruct.AllPermissions) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// slice on [:idx] so for example: 'sign' gives you [read, write, sign]
 | 		// slice on [:idx] so for example: 'sign' gives you [read, write, sign]
 | ||||||
| 		token, err := napi.AuthNew(ctx, api.AllPermissions[:idx]) | 		token, err := napi.AuthNew(ctx, apistruct.AllPermissions[:idx]) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  | |||||||
| @ -15,6 +15,7 @@ import ( | |||||||
| 	"gopkg.in/urfave/cli.v2" | 	"gopkg.in/urfave/cli.v2" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/lotus/api" | 	"github.com/filecoin-project/lotus/api" | ||||||
|  | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| 	"github.com/filecoin-project/lotus/build" | 	"github.com/filecoin-project/lotus/build" | ||||||
| 	lcli "github.com/filecoin-project/lotus/cli" | 	lcli "github.com/filecoin-project/lotus/cli" | ||||||
| 	"github.com/filecoin-project/lotus/lib/auth" | 	"github.com/filecoin-project/lotus/lib/auth" | ||||||
| @ -131,7 +132,7 @@ var runCmd = &cli.Command{ | |||||||
| 		mux := mux.NewRouter() | 		mux := mux.NewRouter() | ||||||
| 
 | 
 | ||||||
| 		rpcServer := jsonrpc.NewServer() | 		rpcServer := jsonrpc.NewServer() | ||||||
| 		rpcServer.Register("Filecoin", api.PermissionedStorMinerAPI(minerapi)) | 		rpcServer.Register("Filecoin", apistruct.PermissionedStorMinerAPI(minerapi)) | ||||||
| 
 | 
 | ||||||
| 		mux.Handle("/rpc/v0", rpcServer) | 		mux.Handle("/rpc/v0", rpcServer) | ||||||
| 		mux.PathPrefix("/remote").HandlerFunc(minerapi.(*impl.StorageMinerAPI).ServeRemote) | 		mux.PathPrefix("/remote").HandlerFunc(minerapi.(*impl.StorageMinerAPI).ServeRemote) | ||||||
|  | |||||||
| @ -3,6 +3,7 @@ package main | |||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
|  | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	_ "net/http/pprof" | 	_ "net/http/pprof" | ||||||
| 	"os" | 	"os" | ||||||
| @ -26,7 +27,7 @@ var log = logging.Logger("main") | |||||||
| 
 | 
 | ||||||
| func serveRPC(a api.FullNode, stop node.StopFunc, addr multiaddr.Multiaddr) error { | func serveRPC(a api.FullNode, stop node.StopFunc, addr multiaddr.Multiaddr) error { | ||||||
| 	rpcServer := jsonrpc.NewServer() | 	rpcServer := jsonrpc.NewServer() | ||||||
| 	rpcServer.Register("Filecoin", api.PermissionedFullAPI(a)) | 	rpcServer.Register("Filecoin", apistruct.PermissionedFullAPI(a)) | ||||||
| 
 | 
 | ||||||
| 	ah := &auth.Handler{ | 	ah := &auth.Handler{ | ||||||
| 		Verify: a.AuthVerify, | 		Verify: a.AuthVerify, | ||||||
| @ -70,7 +71,7 @@ func handleImport(a *impl.FullNodeAPI) func(w http.ResponseWriter, r *http.Reque | |||||||
| 			w.WriteHeader(404) | 			w.WriteHeader(404) | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		if !api.HasPerm(r.Context(), api.PermWrite) { | 		if !apistruct.HasPerm(r.Context(), apistruct.PermWrite) { | ||||||
| 			w.WriteHeader(401) | 			w.WriteHeader(401) | ||||||
| 			json.NewEncoder(w).Encode(struct{ Error string }{"unauthorized: missing write permission"}) | 			json.NewEncoder(w).Encode(struct{ Error string }{"unauthorized: missing write permission"}) | ||||||
| 			return | 			return | ||||||
|  | |||||||
| @ -5,8 +5,10 @@ import ( | |||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/lotus/api" |  | ||||||
| 	logging "github.com/ipfs/go-log" | 	logging "github.com/ipfs/go-log" | ||||||
|  | 
 | ||||||
|  | 	"github.com/filecoin-project/lotus/api" | ||||||
|  | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var log = logging.Logger("auth") | var log = logging.Logger("auth") | ||||||
| @ -42,7 +44,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { | |||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		ctx = api.WithPerm(ctx, allow) | 		ctx = apistruct.WithPerm(ctx, allow) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	h.Next(w, r.WithContext(ctx)) | 	h.Next(w, r.WithContext(ctx)) | ||||||
|  | |||||||
| @ -2,7 +2,6 @@ package impl | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 
 |  | ||||||
| 	"github.com/gbrlsnchs/jwt/v3" | 	"github.com/gbrlsnchs/jwt/v3" | ||||||
| 	"github.com/libp2p/go-libp2p-core/host" | 	"github.com/libp2p/go-libp2p-core/host" | ||||||
| 	"github.com/libp2p/go-libp2p-core/network" | 	"github.com/libp2p/go-libp2p-core/network" | ||||||
|  | |||||||
| @ -3,6 +3,7 @@ package impl | |||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
|  | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| 	"io" | 	"io" | ||||||
| 	"mime" | 	"mime" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| @ -33,7 +34,7 @@ type StorageMinerAPI struct { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (sm *StorageMinerAPI) ServeRemote(w http.ResponseWriter, r *http.Request) { | func (sm *StorageMinerAPI) ServeRemote(w http.ResponseWriter, r *http.Request) { | ||||||
| 	if !api.HasPerm(r.Context(), api.PermAdmin) { | 	if !apistruct.HasPerm(r.Context(), apistruct.PermAdmin) { | ||||||
| 		w.WriteHeader(401) | 		w.WriteHeader(401) | ||||||
| 		json.NewEncoder(w).Encode(struct{ Error string }{"unauthorized: missing write permission"}) | 		json.NewEncoder(w).Encode(struct{ Error string }{"unauthorized: missing write permission"}) | ||||||
| 		return | 		return | ||||||
|  | |||||||
| @ -3,10 +3,10 @@ package modules | |||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"crypto/rand" | 	"crypto/rand" | ||||||
|  | 	"github.com/filecoin-project/lotus/api/apistruct" | ||||||
| 	"io" | 	"io" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/lotus/api" |  | ||||||
| 	"github.com/filecoin-project/lotus/build" | 	"github.com/filecoin-project/lotus/build" | ||||||
| 	"github.com/filecoin-project/lotus/chain/types" | 	"github.com/filecoin-project/lotus/chain/types" | ||||||
| 	"github.com/filecoin-project/lotus/lib/addrutil" | 	"github.com/filecoin-project/lotus/lib/addrutil" | ||||||
| @ -57,7 +57,7 @@ func APISecret(keystore types.KeyStore, lr repo.LockedRepo) (*dtypes.APIAlg, err | |||||||
| 
 | 
 | ||||||
| 		// TODO: make this configurable
 | 		// TODO: make this configurable
 | ||||||
| 		p := jwtPayload{ | 		p := jwtPayload{ | ||||||
| 			Allow: api.AllPermissions, | 			Allow: apistruct.AllPermissions, | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		cliToken, err := jwt.Sign(&p, jwt.NewHS256(key.PrivateKey)) | 		cliToken, err := jwt.Sign(&p, jwt.NewHS256(key.PrivateKey)) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user