62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package repo
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 
 | |
| 	"github.com/ipfs/go-datastore"
 | |
| 	"github.com/multiformats/go-multiaddr"
 | |
| 
 | |
| 	"github.com/filecoin-project/lotus/extern/sector-storage/fsutil"
 | |
| 	"github.com/filecoin-project/lotus/extern/sector-storage/stores"
 | |
| 
 | |
| 	"github.com/filecoin-project/lotus/chain/types"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	ErrNoAPIEndpoint     = errors.New("API not running (no endpoint)")
 | |
| 	ErrNoAPIToken        = errors.New("API token not set")
 | |
| 	ErrRepoAlreadyLocked = errors.New("repo is already locked (lotus daemon already running)")
 | |
| 	ErrClosedRepo        = errors.New("repo is no longer open")
 | |
| )
 | |
| 
 | |
| type Repo interface {
 | |
| 	// APIEndpoint returns multiaddress for communication with Lotus API
 | |
| 	APIEndpoint() (multiaddr.Multiaddr, error)
 | |
| 
 | |
| 	// APIToken returns JWT API Token for use in operations that require auth
 | |
| 	APIToken() ([]byte, error)
 | |
| 
 | |
| 	// Lock locks the repo for exclusive use.
 | |
| 	Lock(RepoType) (LockedRepo, error)
 | |
| }
 | |
| 
 | |
| type LockedRepo interface {
 | |
| 	// Close closes repo and removes lock.
 | |
| 	Close() error
 | |
| 
 | |
| 	// Returns datastore defined in this repo.
 | |
| 	Datastore(namespace string) (datastore.Batching, error)
 | |
| 
 | |
| 	// Returns config in this repo
 | |
| 	Config() (interface{}, error)
 | |
| 	SetConfig(func(interface{})) error
 | |
| 
 | |
| 	GetStorage() (stores.StorageConfig, error)
 | |
| 	SetStorage(func(*stores.StorageConfig)) error
 | |
| 	Stat(path string) (fsutil.FsStat, error)
 | |
| 	DiskUsage(path string) (int64, error)
 | |
| 
 | |
| 	// SetAPIEndpoint sets the endpoint of the current API
 | |
| 	// so it can be read by API clients
 | |
| 	SetAPIEndpoint(multiaddr.Multiaddr) error
 | |
| 
 | |
| 	// SetAPIToken sets JWT API Token for CLI
 | |
| 	SetAPIToken([]byte) error
 | |
| 
 | |
| 	// KeyStore returns store of private keys for Filecoin transactions
 | |
| 	KeyStore() (types.KeyStore, error)
 | |
| 
 | |
| 	// Path returns absolute path of the repo
 | |
| 	Path() string
 | |
| }
 |