This repository has been archived by the owner on Sep 3, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
/
database.go
126 lines (107 loc) · 3.09 KB
/
database.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package main
import (
"fmt"
"time"
"github.com/asdine/storm"
"github.com/kristjank/ark-go/cmd/model"
"github.com/kristjank/ark-go/core"
log "github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
func beginTx() storm.Node {
dbtx, err := arkpooldb.Begin(true)
if err != nil {
log.Error(err.Error())
}
return dbtx
}
func commitTx(dbtx storm.Node) {
err := dbtx.Commit()
if err != nil {
log.Error(err.Error())
}
}
func rollbackTx(dbtx storm.Node) {
err := dbtx.Rollback()
if err != nil {
log.Error(err.Error())
}
}
func save2db(dbtx storm.Node, ve core.DelegateDataProfit, tx *core.Transaction, relID int) {
dbData := model.PaymentLogRecord{}
dbData.Address = ve.Address
dbData.VoteWeight = ve.VoteWeight
dbData.VoteWeightShare = ve.VoteWeightShare
dbData.EarnedAmount100 = ve.EarnedAmount100
dbData.EarnedAmountXX = ve.EarnedAmountXX
dbData.VoteDuration = ve.VoteDuration
dbData.Transaction = *tx
dbData.PaymentRecordID = relID
dbData.CreatedAt = time.Now()
err := dbtx.Save(&dbData)
if err != nil {
log.Error(err.Error())
}
}
func savebonus2db(dbtx storm.Node, address string, tx *core.Transaction, relID int) {
dbData := model.PaymentLogRecord{}
dbData.Address = address
dbData.Transaction = *tx
dbData.PaymentRecordID = relID
dbData.CreatedAt = time.Now()
err := dbtx.Save(&dbData)
if err != nil {
log.Error(err.Error())
}
}
func listPaymentsDetailsFromDB() {
var results []model.PaymentLogRecord
err := arkpooldb.All(&results)
if err != nil {
log.Error(err.Error())
return
}
for _, element := range results {
fmt.Println(element)
}
}
func listPaymentsDB() {
var results []model.PaymentRecord
err := arkpooldb.All(&results)
if err != nil {
log.Error(err.Error())
return
}
for _, element := range results {
fmt.Println(element)
}
}
func createPaymentRecord() model.PaymentRecord {
delegateAddress := viper.GetString("delegate.address")
delegatePubKey := viper.GetString("delegate.pubkey")
if viper.GetString("client.network") == "DEVNET" {
delegateAddress = viper.GetString("delegate.Daddress")
delegatePubKey = viper.GetString("delegate.Dpubkey")
}
payRec := model.PaymentRecord{
ShareRatio: viper.GetFloat64("voters.shareratio"),
CostsRatio: viper.GetFloat64("costs.shareratio"),
PersonalRatio: viper.GetFloat64("personal.shareratio"),
ReserveRatio: viper.GetFloat64("reserve.shareratio"),
CreatedAt: time.Now().UTC(),
FeeDeduction: viper.GetBool("voters.deductTxFees"),
Fidelity: viper.GetBool("voters.fidelity"),
FidelityLimit: viper.GetInt("voters.fidelityLimit"),
MinAmount: viper.GetFloat64("voters.minamount"),
Network: viper.GetString("client.network"),
Blocklist: viper.GetString("voters.blocklist"),
Whitelist: viper.GetString("voters.whitelist"),
CapBalance: viper.GetBool("voters.capBalance"),
BalanceCapAmount: viper.GetFloat64("voters.balanceCapAmount"),
BlockBalanceCap: viper.GetBool("voters.blockBalanceCap"),
Delegate: delegateAddress,
DelegatePubKey: delegatePubKey,
ArkGoPoolVersion: ArkGoPoolVersion,
}
return payRec
}