Documentation ¶
Index ¶
- Constants
- Variables
- func StoreEmptyArray(s Store, bitwidth int) (cid.Cid, error)
- func StoreEmptyMap(s Store, bitwidth int) (cid.Cid, error)
- func StoreEmptyMultimap(store Store, outerBitwidth, innerBitwidth int) (cid.Cid, error)
- type Array
- func (a *Array) AppendContinuous(value cbor.Marshaler) error
- func (a *Array) BatchDelete(ix []uint64, strict bool) error
- func (a *Array) Delete(i uint64) error
- func (a *Array) ForEach(out cbor.Unmarshaler, fn func(i int64) error) error
- func (a *Array) Get(k uint64, out cbor.Unmarshaler) (bool, error)
- func (a *Array) Length() uint64
- func (a *Array) Pop(k uint64, out cbor.Unmarshaler) (bool, error)
- func (a *Array) Root() (cid.Cid, error)
- func (a *Array) Set(i uint64, value cbor.Marshaler) error
- func (a *Array) TryDelete(i uint64) (bool, error)
- type BalanceTable
- func (t *BalanceTable) Add(key addr.Address, value abi.TokenAmount) error
- func (t *BalanceTable) Get(key addr.Address) (abi.TokenAmount, error)
- func (t *BalanceTable) MustSubtract(key addr.Address, req abi.TokenAmount) error
- func (t *BalanceTable) Root() (cid.Cid, error)
- func (t *BalanceTable) SubtractWithMinimum(key addr.Address, req abi.TokenAmount, floor abi.TokenAmount) (abi.TokenAmount, error)
- func (t *BalanceTable) Total() (abi.TokenAmount, error)
- type Map
- func (m *Map) CollectKeys() (out []string, err error)
- func (m *Map) Delete(k abi.Keyer) error
- func (m *Map) ForEach(out cbor.Unmarshaler, fn func(key string) error) error
- func (m *Map) Get(k abi.Keyer, out cbor.Unmarshaler) (bool, error)
- func (m *Map) Has(k abi.Keyer) (bool, error)
- func (m *Map) Pop(k abi.Keyer, out cbor.Unmarshaler) (bool, error)
- func (m *Map) Put(k abi.Keyer, v cbor.Marshaler) error
- func (m *Map) PutIfAbsent(k abi.Keyer, v cbor.Marshaler) (bool, error)
- func (m *Map) Root() (cid.Cid, error)
- func (m *Map) TryDelete(k abi.Keyer) (bool, error)
- type Multimap
- func (mm *Multimap) Add(key abi.Keyer, value cbor.Marshaler) error
- func (mm *Multimap) ForAll(fn func(k string, arr *Array) error) error
- func (mm *Multimap) ForEach(key abi.Keyer, out cbor.Unmarshaler, fn func(i int64) error) error
- func (mm *Multimap) Get(key abi.Keyer) (*Array, bool, error)
- func (mm *Multimap) RemoveAll(key abi.Keyer) error
- func (mm *Multimap) Root() (cid.Cid, error)
- type Set
- func (h *Set) CollectKeys() (out []string, err error)
- func (h *Set) Delete(k abi.Keyer) error
- func (h *Set) ForEach(cb func(k string) error) error
- func (h *Set) Has(k abi.Keyer) (bool, error)
- func (h *Set) Put(k abi.Keyer) error
- func (h *Set) Root() (cid.Cid, error)
- func (h *Set) TryDelete(k abi.Keyer) (bool, error)
- type Store
Constants ¶
const BalanceTableBitwidth = 6
Bitwidth of balance table HAMTs, determined empirically from mutation patterns and projections of mainnet data
Variables ¶
var DefaultAmtOptions = []amt.Option{}
var DefaultHamtOptions = []hamt.Option{ hamt.UseHashFunction(func(input []byte) []byte { res := sha256.Sum256(input) return res[:] }), }
DefaultHamtOptions specifies default options used to construct Filecoin HAMTs. Specific HAMT instances may specify additional options, especially the bitwidth.
Functions ¶
func StoreEmptyArray ¶
Writes a new empty array to the store, returning its CID.
func StoreEmptyMap ¶
Creates and stores a new empty map, returning its CID.
Types ¶
type Array ¶
type Array struct {
// contains filtered or unexported fields
}
Array stores a sparse sequence of values in an AMT.
func MakeEmptyArray ¶
Creates a new array backed by an empty AMT.
func (*Array) AppendContinuous ¶
Appends a value to the end of the array. Assumes continuous array. If the array isn't continuous use Set and a separate counter
func (*Array) ForEach ¶
Iterates all entries in the array, deserializing each value in turn into `out` and then calling a function. Iteration halts if the function returns an error. If the output parameter is nil, deserialization is skipped.
func (*Array) Get ¶
Get retrieves array element into the 'out' unmarshaler, returning a boolean
indicating whether the element was found in the array
func (*Array) Pop ¶
Retrieves an array value into the 'out' unmarshaler (if non-nil), and removes the entry. Returns a boolean indicating whether the element was previously in the array.
type BalanceTable ¶
type BalanceTable Map
A specialization of a map of addresses to (positive) token amounts. Absent keys implicitly have a balance of zero.
func AsBalanceTable ¶
func AsBalanceTable(s Store, r cid.Cid) (*BalanceTable, error)
Interprets a store as balance table with root `r`.
func (*BalanceTable) Add ¶
func (t *BalanceTable) Add(key addr.Address, value abi.TokenAmount) error
Adds an amount to a balance, requiring the resulting balance to be non-negative.
func (*BalanceTable) Get ¶
func (t *BalanceTable) Get(key addr.Address) (abi.TokenAmount, error)
Gets the balance for a key, which is zero if they key has never been added to.
func (*BalanceTable) MustSubtract ¶
func (t *BalanceTable) MustSubtract(key addr.Address, req abi.TokenAmount) error
MustSubtract subtracts the given amount from the account's balance. Returns an error if the account has insufficient balance
func (*BalanceTable) Root ¶
func (t *BalanceTable) Root() (cid.Cid, error)
Returns the root cid of underlying HAMT.
func (*BalanceTable) SubtractWithMinimum ¶
func (t *BalanceTable) SubtractWithMinimum(key addr.Address, req abi.TokenAmount, floor abi.TokenAmount) (abi.TokenAmount, error)
Subtracts up to the specified amount from a balance, without reducing the balance below some minimum. Returns the amount subtracted.
func (*BalanceTable) Total ¶
func (t *BalanceTable) Total() (abi.TokenAmount, error)
Returns the total balance held by this BalanceTable
type Map ¶
type Map struct {
// contains filtered or unexported fields
}
Map stores key-value pairs in a HAMT.
func AsMap ¶
AsMap interprets a store as a HAMT-based map with root `r`. The HAMT is interpreted with branching factor 2^bitwidth. We could drop this parameter if https://github.com/filecoin-project/go-hamt-ipld/issues/79 is implemented.
func MakeEmptyMap ¶
Creates a new map backed by an empty HAMT.
func (*Map) CollectKeys ¶
Collects all the keys from the map into a slice of strings.
func (*Map) ForEach ¶
Iterates all entries in the map, deserializing each value in turn into `out` and then calling a function with the corresponding key. Iteration halts if the function returns an error. If the output parameter is nil, deserialization is skipped.
func (*Map) Get ¶
Get retrieves the value at `k` into `out`, if the `k` is present and `out` is non-nil. Returns whether the key was found.
func (*Map) Pop ¶
Retrieves the value for `k` into the 'out' unmarshaler (if non-nil), and removes the entry. Returns a boolean indicating whether the element was previously in the map.
func (*Map) PutIfAbsent ¶ added in v3.0.2
Sets key key `k` to value `v` iff the key is not already present.
type Multimap ¶
type Multimap struct {
// contains filtered or unexported fields
}
Multimap stores multiple values per key in a HAMT of AMTs. The order of insertion of values for each key is retained.
func AsMultimap ¶
Interprets a store as a HAMT-based map of AMTs with root `r`. The outer map is interpreted with a branching factor of 2^bitwidth.
func MakeEmptyMultimap ¶
Creates a new map backed by an empty HAMT and flushes it to the store. The outer map has a branching factor of 2^bitwidth.
func (*Multimap) ForEach ¶
Iterates all entries for a key in the order they were inserted, deserializing each value in turn into `out` and then calling a function. Iteration halts if the function returns an error. If the output parameter is nil, deserialization is skipped.
type Set ¶
type Set struct {
// contains filtered or unexported fields
}
Set interprets a Map as a set, storing keys (with empty values) in a HAMT.
func AsSet ¶
AsSet interprets a store as a HAMT-based set with root `r`. The HAMT is interpreted with branching factor 2^bitwidth.
func MakeEmptySet ¶
NewSet creates a new HAMT with root `r` and store `s`. The HAMT has branching factor 2^bitwidth.
func (*Set) CollectKeys ¶
Collects all the keys from the set into a slice of strings.
func (*Set) ForEach ¶
ForEach iterates over all values in the set, calling the callback for each value. Returning error from the callback stops the iteration.
type Store ¶
func WrapBlockStore ¶
func WrapBlockStore(ctx context.Context, bs ipldcbor.IpldBlockstore) Store
Adapts a block store as an ADT store.