Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.

Commit

Permalink
Merge pull request #1242 from irisnet/develop
Browse files Browse the repository at this point in the history
R4R:merge develop into master
  • Loading branch information
kaifei Hu authored Dec 13, 2019
2 parents 19776af + a321897 commit 8c2bd40
Show file tree
Hide file tree
Showing 66 changed files with 1,385 additions and 573 deletions.
4 changes: 4 additions & 0 deletions backend/conf/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ const (
KeyCronTimeTxNumByDay = "CronTimeTxNumByDay"
KeyCronTimeValidators = "CronTimeValidators"
KeyCronTimeValidatorIcons = "CronTimeValidatorIcons"
KeyCronTimeProposalVoters = "CronTimeProposalVoters"
KeyCronTimeValidatorStaticInfo = "CronTimeValidatorStaticInfo"

EnvironmentDevelop = "dev"
Expand Down Expand Up @@ -84,6 +85,7 @@ func init() {
CronTimeTxNumByDay: getEnvInt(KeyCronTimeTxNumByDay, DefaultEnvironment),
CronTimeValidators: getEnvInt(KeyCronTimeValidators, DefaultEnvironment),
CronTimeValidatorIcons: getEnvInt(KeyCronTimeValidatorIcons, DefaultEnvironment),
CronTimeProposalVoters: getEnvInt(KeyCronTimeProposalVoters, DefaultEnvironment),
CronTimeValidatorStaticInfo: getEnvInt(KeyCronTimeValidatorStaticInfo, DefaultEnvironment),
}
config.Server = server
Expand Down Expand Up @@ -135,6 +137,7 @@ func loadDefault() {
KeyCronTimeGovParams: "3600",
KeyCronTimeTxNumByDay: "43200",
KeyCronTimeValidators: "60",
KeyCronTimeProposalVoters: "60",
KeyCronTimeValidatorIcons: "43200",
KeyCronTimeValidatorStaticInfo: "300",
}
Expand Down Expand Up @@ -172,6 +175,7 @@ type serverConf struct {
CronTimeValidators int
CronTimeValidatorStaticInfo int
CronTimeValidatorIcons int
CronTimeProposalVoters int
}

type hubConf struct {
Expand Down
24 changes: 19 additions & 5 deletions backend/lcd/bank.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,24 @@ func GetTokenStatsSupply() (Coin, error) {
Denom: utils.CoinTypeIris,
}, nil
}

func GetTokenInitSupply() Coin {
return Coin{
Amount: conf.IniSupply,
Denom: utils.CoinTypeIris,
func GetCommunityTax() (Coin, error) {
url := fmt.Sprintf(UrlAccount, conf.Get().Hub.LcdUrl, CommunityTaxAddr)
resBytes, err := utils.Get(url)
if err != nil {
return Coin{}, err
}
acc := Account01411{}
if err := json.Unmarshal(resBytes, &acc); err != nil {
logger.Error("get account error", logger.String("err", err.Error()))
return Coin{}, err
}

return GetTokens(acc.Value.Coins), nil
}

//func GetTokenInitSupply() Coin {
// return Coin{
// Amount: conf.IniSupply,
// Denom: utils.CoinTypeIris,
// }
//}
9 changes: 9 additions & 0 deletions backend/lcd/bank_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,13 @@ func TestGetTokens(t *testing.T) {
res := []*Coin{{Denom: utils.CoinTypeAtto, Amount: "925050600000000000000000"}, {Denom: "kai-min", Amount: "800"}}
coin := GetTokens(res)
t.Log(coin)
}

func TestGetCommunityTax(t *testing.T) {
res, err := GetCommunityTax()
if err != nil {
t.Fatal(err)
}
t.Log(res)

}
20 changes: 20 additions & 0 deletions backend/lcd/gov.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ type RangeDescription struct {
InitialValue string
}

type Voterinfo struct {
Voter string `json:"voter"`
ProposalId string `json:"proposal_id"`
Option string `json:"option"`
}


func GetAuthKeyWithRangeMap() map[string]RangeDescription {
result := map[string]RangeDescription{}
result[GovModuleAuthGasPriceThreshold] = RangeDescription{Range: "0,1000000000000000000", Description: "Minimum of gas price"}
Expand Down Expand Up @@ -202,3 +209,16 @@ func GetAllGovModuleParam() (map[string]interface{}, error) {
}
return result, nil
}

func GetProposalVoters(proposalid uint64) (result []Voterinfo, err error) {
url := fmt.Sprintf(UrlProposalVoters, conf.Get().Hub.LcdUrl, proposalid)
resBytes, err := utils.Get(url)
if err != nil {
return result, err
}

if err := json.Unmarshal(resBytes, &result); err != nil {
return result, err
}
return result, nil
}
11 changes: 11 additions & 0 deletions backend/lcd/gov_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"testing"

"github.com/irisnet/explorer/backend/lcd"
"encoding/json"
)

func getModuleList() []string {
Expand Down Expand Up @@ -102,3 +103,13 @@ func TestGetAllGovModuleParam(t *testing.T) {
t.Logf("total: %v \n", len(paramMap))
printMap(paramMap, t)
}

func TestGetProposalVoters(t *testing.T) {
data, err := lcd.GetProposalVoters(21)
if err != nil {
t.Errorf("query all gov porposal voter err: %v \n", err)
}
t.Log("len:", len(data))
bytesmsg, _ := json.Marshal(data)
t.Log(string(bytesmsg))
}
2 changes: 1 addition & 1 deletion backend/lcd/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ type (
}

Value struct {
Coins []Coin `json:"coins"`
Coins []*Coin `json:"coins"`
Address string `json:"address"`
PublicKey PublicKey `json:"public_key"`
AccountNum string `json:"account_number"`
Expand Down
35 changes: 19 additions & 16 deletions backend/lcd/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@ import (
)

const (
UrlAccount = "%s/bank/accounts/%s"
UrlBankTokenStats = "%s/bank/token-stats"
UrlValidator = "%s/stake/validators/%s"
UrlValidators = "%s/stake/validators?page=%d&size=%d"
UrlDelegationByVal = "%s/stake/validators/%s/delegations"
UrlDelegationsByDelegator = "%s/stake/delegators/%s/delegations"
UrlUnbondingDelegationByDelegator = "%s/stake/delegators/%s/unbonding-delegations"
UrlDelegationsByValidator = "%s/stake/validators/%s/delegations"
UrlUnbondingDelegationByValidator = "%s/stake/validators/%s/unbonding-delegations"
UrlRedelegationsByValidator = "%s/stake/validators/%s/redelegations"
UrlSignInfo = "%s/slashing/validators/%s/signing-info"
UrlNodeInfo = "%s/node-info"
UrlGenesis = "%s/genesis"
UrlWithdrawAddress = "%s/distribution/%s/withdraw-address"
UrlAccount = "%s/bank/accounts/%s"
UrlBankTokenStats = "%s/bank/token-stats"
UrlValidator = "%s/stake/validators/%s"
UrlValidators = "%s/stake/validators?page=%d&size=%d"
UrlDelegationByVal = "%s/stake/validators/%s/delegations"
UrlDelegationsByDelegator = "%s/stake/delegators/%s/delegations"
UrlUnbondingDelegationByDelegator = "%s/stake/delegators/%s/unbonding-delegations"
UrlDelegationsByValidator = "%s/stake/validators/%s/delegations"
UrlUnbondingDelegationByValidator = "%s/stake/validators/%s/unbonding-delegations"
UrlRedelegationsByValidator = "%s/stake/validators/%s/redelegations"
UrlSignInfo = "%s/slashing/validators/%s/signing-info"
UrlNodeInfo = "%s/node-info"
UrlGenesis = "%s/genesis"
UrlWithdrawAddress = "%s/distribution/%s/withdraw-address"
UrlBlockLatest = "%s/blocks/latest"
UrlBlock = "%s/blocks/%d"
UrlValidatorSet = "%s/validatorsets/%d"
Expand All @@ -38,6 +38,8 @@ const (
UrlAssetTokens = "%s/asset/tokens"
UrlAssetGateways = "%s/asset/gateways"
UrlHtlcInfo = "%s/htlc/htlcs/%s"
UrlProposalVoters = "%s/gov/proposals/%v/votes"
CommunityTaxAddr = "iaa18rtw90hxz4jsgydcusakz6q245jh59kfma3e5h"
)

type AccountVo struct {
Expand Down Expand Up @@ -72,6 +74,7 @@ type ValidatorVo struct {
}

type ValidatorsVoRespond []ValidatorVo

func (v ValidatorVo) String() string {
return fmt.Sprintf(`
OperatorAddress :%v
Expand Down Expand Up @@ -472,7 +475,7 @@ type DelegationVo struct {
DelegatorAddr string `json:"delegator_addr"`
ValidatorAddr string `json:"validator_addr"`
Shares string `json:"shares"`
Height int64 `json:"height,string"`
Height int64 `json:"height,string"`
}

type ValidatorDelegations []DelegationVo
Expand Down Expand Up @@ -522,7 +525,7 @@ type UnbondingDelegations struct {
ValidatorAddr string `json:"validator_addr"`
InitialBalance string `json:"initial_balance"`
Balance string `json:"balance"`
CreationHeight int64 `json:"creation_height,string"`
CreationHeight int64 `json:"creation_height,string"`
MinTime string `json:"min_time"`
}

Expand Down
14 changes: 13 additions & 1 deletion backend/orm/document/proposal.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func (_ Proposal) QueryIdTitleStatusVotedTxhashByValidatorAcc(validatorAcc strin
return cnt, data, err
}

func (_ Proposal) GetProposalsByStatus(status, sorts []string) ([]Proposal, error) {
func (_ Proposal) GetProposalsByStatus(status, sorts []string, is_selecter bool) ([]Proposal, error) {
var (
proposals []Proposal
query = orm.NewQuery()
Expand All @@ -236,6 +236,9 @@ func (_ Proposal) GetProposalsByStatus(status, sorts []string) ([]Proposal, erro
Proposal_Field_TotalDeposit: 1,
Proposal_Field_DepositEndTime: 1,
}
if !is_selecter {
selector = bson.M{}
}

condition := bson.M{
"status": bson.M{
Expand All @@ -255,3 +258,12 @@ func (_ Proposal) GetProposalsByStatus(status, sorts []string) ([]Proposal, erro

return proposals, err
}

// update document by primary key
func (_ Proposal) UpdateByPk(proposal Proposal) error {
db := orm.GetDatabase()
defer db.Session.Close()

c := db.C(CollectionNmProposal)
return c.Update(proposal.PkKvPair(), proposal)
}
91 changes: 52 additions & 39 deletions backend/orm/document/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,25 @@ const (
TxStatusSuccess = "success"
TxStatusFail = "fail"

Tx_Field_Time = "time"
Tx_Field_Height = "height"
Tx_Field_Hash = "tx_hash"
Tx_Field_From = "from"
Tx_Field_To = "to"
Tx_Field_Signers = "signers"
Tx_Field_Amount = "amount"
Tx_Field_Type = "type"
Tx_Field_Fee = "fee"
Tx_Field_Memo = "memo"
Tx_Field_Status = "status"
Tx_Field_Code = "code"
Tx_Field_Log = "log"
Tx_Field_GasUsed = "gas_used"
Tx_Field_GasPrice = "gas_price"
Tx_Field_ActualFee = "actual_fee"
Tx_Field_ProposalId = "proposal_id"
Tx_Field_Tags = "tags"
Tx_Field_Msgs = "msgs"
Tx_Field_Time = "time"
Tx_Field_Height = "height"
Tx_Field_Hash = "tx_hash"
Tx_Field_From = "from"
Tx_Field_To = "to"
Tx_Field_Signers = "signers"
Tx_Field_Amount = "amount"
Tx_Field_Type = "type"
Tx_Field_Fee = "fee"
Tx_Field_Memo = "memo"
Tx_Field_Status = "status"
Tx_Field_Code = "code"
Tx_Field_Log = "log"
Tx_Field_GasUsed = "gas_used"
Tx_Field_GasPrice = "gas_price"
Tx_Field_ActualFee = "actual_fee"
Tx_Field_ProposalId = "proposal_id"
Tx_Field_Tags = "tags"
Tx_Field_Msgs = "msgs"

Tx_Field_Msgs_UdInfo = "msgs.msg.ud_info.source"
Tx_Field_Msgs_Moniker = "msgs.msg.moniker"
Expand Down Expand Up @@ -82,26 +82,26 @@ type ActualFee struct {
}

type CommonTx struct {
Time time.Time `bson:"time"`
Height int64 `bson:"height"`
TxHash string `bson:"tx_hash"`
From string `bson:"from"`
To string `bson:"to"`
Amount Coins `bson:"amount"`
Type string `bson:"type"`
Fee Fee `bson:"fee"`
Memo string `bson:"memo"`
Status string `bson:"status"`
Code uint32 `bson:"code"`
Log string `bson:"log"`
GasUsed int64 `bson:"gas_used"`
GasWanted int64 `bson:"gas_wanted"`
GasPrice float64 `bson:"gas_price"`
ActualFee ActualFee `bson:"actual_fee"`
ProposalId uint64 `bson:"proposal_id"`
Tags map[string]string `bson:"tags"`
Msgs []MsgItem `bson:"msgs"`
Signers []Signer `bson:"signers"`
Time time.Time `bson:"time"`
Height int64 `bson:"height"`
TxHash string `bson:"tx_hash"`
From string `bson:"from"`
To string `bson:"to"`
Amount Coins `bson:"amount"`
Type string `bson:"type"`
Fee Fee `bson:"fee"`
Memo string `bson:"memo"`
Status string `bson:"status"`
Code uint32 `bson:"code"`
Log string `bson:"log"`
GasUsed int64 `bson:"gas_used"`
GasWanted int64 `bson:"gas_wanted"`
GasPrice float64 `bson:"gas_price"`
ActualFee ActualFee `bson:"actual_fee"`
ProposalId uint64 `bson:"proposal_id"`
Tags map[string]string `bson:"tags"`
Msgs []MsgItem `bson:"msgs"`
Signers []Signer `bson:"signers"`
}

func (tx CommonTx) String() string {
Expand Down Expand Up @@ -178,6 +178,19 @@ func (_ CommonTx) QueryHashActualFeeType() ([]CommonTx, error) {
return txs, err
}

func (_ CommonTx) QueryHashTimeByProposalIdVoters(proposalid int64, voters []string) ([]CommonTx, error) {

var selector = bson.M{Tx_Field_Time: 1, Tx_Field_Hash: 1, Tx_Field_From: 1, Tx_Field_ProposalId: 1}
var query = bson.M{Tx_Field_Type: types.TxTypeVote, Tx_Field_Status: TxStatusSuccess, Tx_Field_ProposalId: proposalid}
if len(voters) > 0 {
query[Tx_Field_From] = bson.M{"$in": voters}
}
var txs []CommonTx

err := queryAll(CollectionNmCommonTx, selector, query, desc(Tx_Field_Time), 0, &txs)
return txs, err
}

func (_ CommonTx) QueryTxByHash(hash string) (CommonTx, error) {
dbm := getDb()
defer dbm.Session.Close()
Expand Down
10 changes: 10 additions & 0 deletions backend/orm/document/tx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,13 @@ func TestCommonTx_QueryTxTransferGatewayOwner(t *testing.T) {
bytedata, _ := json.Marshal(ret)
t.Log(string(bytedata))
}

func TestCommonTx_QueryHashTimeByProposalIdVoters(t *testing.T) {
txList, err := CommonTx{}.QueryHashTimeByProposalIdVoters(44, nil)
if err != nil {
t.Error(err)
}
t.Log(len(txList))
bytedata, _ := json.Marshal(txList)
t.Log(string(bytedata))
}
16 changes: 8 additions & 8 deletions backend/orm/document/validator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ func TestValidatorGetCandidatesTopN(t *testing.T) {

}

func TestValidator_QueryValidatorMonikerByAddrArr(t *testing.T) {
valaddr := []string{"iva1r2pq5y674llvd654tr9lm7s68wnumd0pf04v99"}
data, err := Validator{}.QueryValidatorMonikerByAddrArr(valaddr)
if err != nil {
t.Fatal(err)
}
t.Log(data)
}
//func TestValidator_QueryValidatorMonikerByAddrArr(t *testing.T) {
// valaddr := []string{"iva1r2pq5y674llvd654tr9lm7s68wnumd0pf04v99"}
// data, err := Validator{}.QueryValidatorMonikerByAddrArr(valaddr)
// if err != nil {
// t.Fatal(err)
// }
// t.Log(data)
//}

func TestValidator_UpdateByPk(t *testing.T) {
validatorModel := Validator{}
Expand Down
Loading

0 comments on commit 8c2bd40

Please sign in to comment.