Documentation ¶
Index ¶
- Variables
- func New(cfg Config) func(api v1api.FullNode, fundsDB *db.FundsDB) *FundManager
- type Config
- type FundManager
- func (m *FundManager) AddressDealCollateral() address.Address
- func (m *FundManager) AddressPublishMsg() address.Address
- func (m *FundManager) BalanceDealCollateral(ctx context.Context) (abi.TokenAmount, error)
- func (m *FundManager) BalanceMarket(ctx context.Context) (storagemarket.Balance, error)
- func (m *FundManager) BalancePublishMsg(ctx context.Context) (abi.TokenAmount, error)
- func (m *FundManager) MoveFundsToEscrow(ctx context.Context, amt abi.TokenAmount) (cid.Cid, error)
- func (m *FundManager) TagFunds(ctx context.Context, dealUuid uuid.UUID, proposal market.DealProposal) (*TagFundsResp, error)
- func (m *FundManager) TotalTagged(ctx context.Context) (*db.TotalTagged, error)
- func (m *FundManager) UntagFunds(ctx context.Context, dealUuid uuid.UUID) (collat, pub abi.TokenAmount, err error)
- type TagFundsResp
Constants ¶
This section is empty.
Variables ¶
var ErrInsufficientFunds = errors.New("insufficient funds")
Functions ¶
Types ¶
type Config ¶
type Config struct { // Whether to enable fund tagging Enabled bool // The address of the storage miner, used as the target address when // moving funds to escrow StorageMiner address.Address // Wallet used as source of deal collateral when moving funds to // escrow CollatWallet address.Address // Wallet used to send the publish message (and pay gas fees) PubMsgWallet address.Address // How much to reserve for each publish message PubMsgBalMin abi.TokenAmount }
type FundManager ¶
type FundManager struct {
// contains filtered or unexported fields
}
func (*FundManager) AddressDealCollateral ¶
func (m *FundManager) AddressDealCollateral() address.Address
func (*FundManager) AddressPublishMsg ¶
func (m *FundManager) AddressPublishMsg() address.Address
func (*FundManager) BalanceDealCollateral ¶
func (m *FundManager) BalanceDealCollateral(ctx context.Context) (abi.TokenAmount, error)
BalanceDealCollateral returns the amount of funds in the wallet used for collateral for deal making
func (*FundManager) BalanceMarket ¶
func (m *FundManager) BalanceMarket(ctx context.Context) (storagemarket.Balance, error)
BalanceMarket returns available and locked amounts in escrow (on chain with the Storage Market Actor)
func (*FundManager) BalancePublishMsg ¶
func (m *FundManager) BalancePublishMsg(ctx context.Context) (abi.TokenAmount, error)
BalancePublishMsg returns the amount of funds in the wallet used to send publish storage deals messages
func (*FundManager) MoveFundsToEscrow ¶
func (m *FundManager) MoveFundsToEscrow(ctx context.Context, amt abi.TokenAmount) (cid.Cid, error)
MoveFundsToEscrow moves funds from the deal collateral wallet into escrow with the storage market actor
func (*FundManager) TagFunds ¶
func (m *FundManager) TagFunds(ctx context.Context, dealUuid uuid.UUID, proposal market.DealProposal) (*TagFundsResp, error)
TagFunds tags funds for deal collateral and for the publish storage deals message, so those funds cannot be used for other deals. It returns ErrInsufficientFunds if there are not enough funds available in the respective wallets to cover either of these operations.
func (*FundManager) TotalTagged ¶
func (m *FundManager) TotalTagged(ctx context.Context) (*db.TotalTagged, error)
TotalTagged returns the total funds tagged for specific deals for collateral and publish storage deals message
func (*FundManager) UntagFunds ¶
func (m *FundManager) UntagFunds(ctx context.Context, dealUuid uuid.UUID) (collat, pub abi.TokenAmount, err error)
UntagFunds untags funds that were associated (tagged) with a deal. It's called when it's no longer necessary to prevent the funds from being used for a different deal (eg because the deal failed / was published)
type TagFundsResp ¶
type TagFundsResp struct { // The amount of deal collateral tagged for this deal Collateral abi.TokenAmount // The amount of publish message funds tagged for this deal PublishMessage abi.TokenAmount // The total amount of deal collateral tagged for all deals so far TotalCollateral abi.TokenAmount // The total amount of funds tagged for all publish messages so far TotalPublishMessage abi.TokenAmount // The total available funds for deal collateral AvailableCollateral abi.TokenAmount // The total available funds for deal publishing AvailablePublishMessage abi.TokenAmount }