api

package
v0.0.1-beta.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2020 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMustOverrideConfig returned when trying to push config for storing a Cid
	// without the override flag.
	ErrMustOverrideConfig = errors.New("cid already pinned, consider using override flag")
	// ErrReplacedCidNotFound returns when replacing a Cid that isn't stored.
	ErrReplacedCidNotFound = errors.New("provided replaced cid wasn't found")
	// ErrActiveInStorage returns when a Cid is trying to be removed but still defined as active
	// on Hot or Cold storage.
	ErrActiveInStorage = errors.New("can't remove Cid, disable from Hot and Cold storage")
	// ErrHotStorageDisabled returned when trying to fetch a Cid when disabled on Hot Storage.
	// To retrieve the data, is necessary to call unfreeze by enabling the Enabled flag in
	// the Hot Storage for that Cid.
	ErrHotStorageDisabled = errors.New("cid disabled in hot storage")
)
View Source
var (
	// ErrNotFound returned when instance configuration doesn't exist.
	ErrNotFound = errors.New("stored item not found")
)

Functions

This section is empty.

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API is an Api instance, which owns a Lotus Address and allows to Store and Retrieve Cids from Hot and Cold layers.

func Load

func Load(ds datastore.Datastore, iid ffs.APIID, sched *scheduler.Scheduler, wm ffs.WalletManager) (*API, error)

Load loads a saved Api instance from its ConfigStore.

func New

func New(ctx context.Context, ds datastore.Datastore, iid ffs.APIID, sch *scheduler.Scheduler, wm ffs.WalletManager, dc ffs.DefaultConfig) (*API, error)

New returns a new Api instance.

func (*API) Addrs

func (i *API) Addrs() []AddrInfo

Addrs returns the wallet addresses.

func (*API) Close

func (i *API) Close() error

Close terminates the running Api.

func (*API) DefaultConfig

func (i *API) DefaultConfig() ffs.DefaultConfig

DefaultConfig returns the DefaultConfig

func (*API) Get

func (i *API) Get(ctx context.Context, c cid.Cid) (io.Reader, error)

Get returns an io.Reader for reading a stored Cid from the Hot Storage.

func (*API) GetCidConfig

func (i *API) GetCidConfig(c cid.Cid) (ffs.CidConfig, error)

GetCidConfig returns the current CidConfig for a Cid.

func (*API) GetDefaultCidConfig

func (i *API) GetDefaultCidConfig(c cid.Cid) ffs.CidConfig

GetDefaultCidConfig returns the default instance Cid config, prepared for a particular Cid.

func (*API) ID

func (i *API) ID() ffs.APIID

ID returns the ID.

func (*API) Info

func (i *API) Info(ctx context.Context) (InstanceInfo, error)

Info returns instance information.

func (*API) NewAddr

func (i *API) NewAddr(ctx context.Context, name string, options ...NewAddressOption) (string, error)

NewAddr creates a new address managed by the FFS instance

func (*API) PushConfig

func (i *API) PushConfig(c cid.Cid, opts ...PushConfigOption) (ffs.JobID, error)

PushConfig push a new configuration for the Cid in the Hot and Cold layer. If WithOverride opt isn't set it errors with ErrMustOverrideConfig

func (*API) Remove

func (i *API) Remove(c cid.Cid) error

Remove removes a Cid from being tracked as an active storage. The Cid should have both Hot and Cold storage disabled, if that isn't the case it will return ErrActiveInStorage.

func (*API) Replace

func (i *API) Replace(c1 cid.Cid, c2 cid.Cid) (ffs.JobID, error)

Replace pushes a CidConfig of c2 equal to c1, and removes c1. This operation is more efficient than manually removing and adding in two separate operations. c1 and c2 must not be equal.

func (*API) SendFil

func (i *API) SendFil(ctx context.Context, from string, to string, amount *big.Int) error

SendFil sends fil from a managed address to any another address, returns immediately but funds are sent asynchronously

func (*API) SetDefaultConfig

func (i *API) SetDefaultConfig(c ffs.DefaultConfig) error

SetDefaultConfig sets a new default CidConfig.

func (*API) Show

func (i *API) Show(c cid.Cid) (ffs.CidInfo, error)

Show returns the information about a stored Cid. If no information is available, since the Cid was never stored, it returns ErrNotFound.

func (*API) WatchJobs

func (i *API) WatchJobs(ctx context.Context, c chan<- ffs.Job, jids ...ffs.JobID) error

WatchJobs subscribes to Job status changes. If jids is empty, it subscribes to all Job status changes corresonding to the instance. If jids is not empty, it immediately sends current state of those Jobs. If empty, it doesn't.

func (*API) WatchLogs

func (i *API) WatchLogs(ctx context.Context, ch chan<- ffs.LogEntry, c cid.Cid, opts ...GetLogsOption) error

WatchLogs pushes human-friendly messages about Cid executions. The method is blocking and will continue to send messages until the context is canceled.

type AddrInfo

type AddrInfo struct {
	Name string
	Addr string
	Type string
}

AddrInfo provides information about a wallet address

type BalanceInfo

type BalanceInfo struct {
	AddrInfo
	Balance uint64
}

BalanceInfo contains the balance for the associated wallet address.

type Config

type Config struct {
	ID            ffs.APIID
	Addrs         map[string]AddrInfo
	DefaultConfig ffs.DefaultConfig
}

Config has general information about a Api instance.

type GetLogsConfig

type GetLogsConfig struct {
	// contains filtered or unexported fields
}

GetLogsConfig contains configuration for a stream-log of human-friendly messages for a Cid execution.

type GetLogsOption

type GetLogsOption func(config *GetLogsConfig)

GetLogsOption is a function that changes GetLogsConfig.

func WithHistory

func WithHistory(enabled bool) GetLogsOption

WithHistory indicates that prior log history should be sent to the channel before getting realtime logs.

func WithJidFilter

func WithJidFilter(jid ffs.JobID) GetLogsOption

WithJidFilter filters only log messages of a Cid related to the Job with id jid.

type InstanceInfo

type InstanceInfo struct {
	ID            ffs.APIID
	DefaultConfig ffs.DefaultConfig
	Balances      []BalanceInfo
	Pins          []cid.Cid
}

InstanceInfo has general information about a running Api instance.

type NewAddressConfig

type NewAddressConfig struct {
	// contains filtered or unexported fields
}

NewAddressConfig contains options for creating a new wallet address

type NewAddressOption

type NewAddressOption func(config *NewAddressConfig)

NewAddressOption is a function that changes a NewAddressConfig

func WithAddressType

func WithAddressType(addressType string) NewAddressOption

WithAddressType specifies the type of address to create

func WithMakeDefault

func WithMakeDefault(makeDefault bool) NewAddressOption

WithMakeDefault specifies if the new address should become the default

type PushConfig

type PushConfig struct {
	Config         ffs.CidConfig
	OverrideConfig bool
}

PushConfig contains options for pushing a Cid configuration.

func (PushConfig) Validate

func (pc PushConfig) Validate() error

Validate validates a PushConfig.

type PushConfigOption

type PushConfigOption func(o *PushConfig) error

PushConfigOption mutates a push configuration.

func WithCidConfig

func WithCidConfig(c ffs.CidConfig) PushConfigOption

WithCidConfig overrides the Api default Cid configuration.

func WithOverride

func WithOverride(override bool) PushConfigOption

WithOverride allows a new push configuration to override an existing one. It's used as an extra security measure to avoid unwanted configuration changes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL