This commit is contained in:
aozhiwei 2024-09-23 13:39:24 +08:00
parent f226723df0
commit 7af39b16e1
5 changed files with 71 additions and 66 deletions

View File

@ -40,6 +40,7 @@ const (
CONTRACT_NAME_GameItemMall = "GameItemMall"
CONTRACT_NAME_StakedEsCecRouter = "stakedEsCecRouter"
CONTRACT_NAME_EsCec = "esCEC"
CONTRACT_NAME_Vester = "vester"
)
const (

View File

@ -0,0 +1,70 @@
package task
import (
"q5"
"f5"
"main/mt"
"main/constant"
"jccommon"
"fmt"
)
/*
Deposit amount his_amount 衰减,最后的存覆盖之前的
Withdraw 所有
按时间排序处理事件的先后顺序
通过Vester.sol的remainingEsToken方法获取, 如果要本地计算的话, 那就取每次Deposit事件的时间和amount, 加上先前的转换的余额, 再按total * (now - deposit_time) / (365 * 24 * 2600)
*/
type vesterDeposit struct {
}
func (this *vesterDeposit) init() {
mt.Table.Contract.Traverse(func (ele *mt.Contract) bool {
if ele.GetName() == jccommon.CONTRACT_NAME_Vester {
go this.process(ele.GetNetId(), ele.GetAddress())
}
return true
})
}
func (this *vesterDeposit) unInit() {
}
func (this *vesterDeposit) process(netId int32, contractAddress string) {
key := fmt.Sprintf("vesterDeposit.lastIdx.%d.%s", netId, contractAddress)
if dbLastIdxStr, err := jccommon.GetDbParam(constant.BCEVENT_DB, key); err == nil {
f5.GetGoStyleDb().IncrementLoad(
constant.BCEVENT_DB,
"vesterDeposit." + q5.ToString(netId) + "." + contractAddress,
"t_blockchain_event",
q5.ToInt64(dbLastIdxStr),
func (lastIdx int64, maxIdx int64) (string, []string) {
sql := fmt.Sprintf(`
SELECT * FROM t_blockchain_event
WHERE idx > %d AND idx <= %d AND net_id = %d AND contract_address = ? AND event_name IN (?, ?)
ORDER BY idx LIMIT 1000
`,
lastIdx,
maxIdx,
netId)
params := []string{
contractAddress,
"Deposit",
}
return sql, params
},
func (newLastIdx int64) {
jccommon.SaveDbParam(constant.BCEVENT_DB, key, q5.ToString(newLastIdx))
},
this.saveToDb)
} else {
panic(fmt.Sprintf("vesterDeposit getDBParam error %s", err))
}
}
func (this* vesterDeposit) saveToDb(ds *f5.DataSet) bool {
return true
}

View File

@ -1,22 +0,0 @@
package task
import (
"main/mt"
)
type vesterClaim struct {
}
func (this *vesterClaim) init() {
mt.Table.Contract.Traverse(func (ele *mt.Contract) bool {
/*
if ele.GetName() == jccommon.CONTRACT_NAME_StakedEsCecRouter {
go this.process(ele.GetNetId(), ele.GetAddress())
}*/
return true
})
}
func (this *vesterClaim) unInit() {
}

View File

@ -1,22 +0,0 @@
package task
import (
"main/mt"
)
type vesterDeposit struct {
}
func (this *vesterDeposit) init() {
mt.Table.Contract.Traverse(func (ele *mt.Contract) bool {
/*
if ele.GetName() == jccommon.CONTRACT_NAME_StakedEsCecRouter {
go this.process(ele.GetNetId(), ele.GetAddress())
}*/
return true
})
}
func (this *vesterDeposit) unInit() {
}

View File

@ -1,22 +0,0 @@
package task
import (
"main/mt"
)
type vesterWithdraw struct {
}
func (this *vesterWithdraw) init() {
mt.Table.Contract.Traverse(func (ele *mt.Contract) bool {
/*
if ele.GetName() == jccommon.CONTRACT_NAME_StakedEsCecRouter {
go this.process(ele.GetNetId(), ele.GetAddress())
}*/
return true
})
}
func (this *vesterWithdraw) unInit() {
}