-
Notifications
You must be signed in to change notification settings - Fork 6
/
smartyield.go
88 lines (67 loc) · 1.58 KB
/
smartyield.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package smartyield
import (
"github.com/barnbridge/meminero/processor/storables/smartyield"
"github.com/barnbridge/meminero/types"
"github.com/barnbridge/meminero/utils"
)
type SmartYield struct {
Pools []smartyield.Pool
RewardPools []types.RewardPool
}
func New() *SmartYield {
return &SmartYield{}
}
func (sy *SmartYield) PoolByAddress(addr string) *smartyield.Pool {
addr = utils.NormalizeAddress(addr)
for _, p := range sy.Pools {
if addr == p.PoolAddress {
return &p
}
}
return nil
}
func (sy *SmartYield) PoolByControllerAddress(addr string) *smartyield.Pool {
addr = utils.NormalizeAddress(addr)
for _, p := range sy.Pools {
if addr == p.ControllerAddress {
return &p
}
}
return nil
}
func (sy *SmartYield) PoolByProviderAddress(addr string) *smartyield.Pool {
addr = utils.NormalizeAddress(addr)
for _, p := range sy.Pools {
if addr == p.ProviderAddress {
return &p
}
}
return nil
}
func (sy *SmartYield) IsERC721OfInterest(addr string) bool {
addr = utils.NormalizeAddress(addr)
for _, p := range sy.Pools {
if addr == p.SeniorBondAddress || addr == p.JuniorBondAddress {
return true
}
}
return false
}
func (sy *SmartYield) PoolBySeniorBondAddress(addr string) *smartyield.Pool {
addr = utils.NormalizeAddress(addr)
for _, p := range sy.Pools {
if addr == p.SeniorBondAddress {
return &p
}
}
return nil
}
func (sy *SmartYield) PoolByJuniorBondAddress(addr string) *smartyield.Pool {
addr = utils.NormalizeAddress(addr)
for _, p := range sy.Pools {
if addr == p.JuniorBondAddress {
return &p
}
}
return nil
}