forked from onepeerlabs/bee-lite
/
batch.go
39 lines (32 loc) · 1004 Bytes
/
batch.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package beelite
import (
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethersphere/bee/pkg/postage"
)
func (bl *Beelite) GetAllBatches() []*postage.StampIssuer {
return bl.post.StampIssuers()
}
func (bl *Beelite) GetUsableBatches() []*postage.StampIssuer {
usableIssuers := []*postage.StampIssuer{}
stampIssuers := bl.post.StampIssuers()
for _, v := range stampIssuers {
exists, err := bl.batchStore.Exists(v.ID())
if err != nil {
bl.logger.Debug("batch exists: %w", err)
continue
}
issuer, _, err := bl.post.GetStampIssuer(v.ID())
if err != nil {
bl.logger.Debug("stamp issuer: %w", err)
continue
}
if usable := exists && bl.post.IssuerUsable(issuer); usable {
usableIssuers = append(usableIssuers, v)
}
}
return usableIssuers
}
func (bl *Beelite) BuyStamp(amount *big.Int, depth uint64, label string, immutable bool) (common.Hash, []byte, error) {
return bl.postageContract.CreateBatch(bl.ctx, amount, uint8(depth), immutable, label)
}