feat: add SetValidatorAddress() and GetValidatorAddress() to config

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2024-09-25 10:48:54 +02:00
parent dacd261df4
commit 18dd943f38
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A
6 changed files with 48 additions and 14 deletions

View File

@ -3,6 +3,10 @@ package config
import (
"encoding/json"
"sync"
"github.com/planetmint/planetmint-go/lib"
"github.com/planetmint/planetmint-go/lib/trustwallet"
"github.com/rddl-network/go-utils/logger"
)
const DefaultConfigTemplate = `
@ -11,7 +15,7 @@ const DefaultConfigTemplate = `
###############################################################################
[planetmint]
validator-address = "{{ .PlmntConfig.ValidatorAddress }}"
validator-address = "{{ .PlmntConfig.validatorAddress }}"
mqtt-domain = "{{ .PlmntConfig.MqttDomain }}"
mqtt-port = {{ .PlmntConfig.MqttPort }}
mqtt-user = "{{ .PlmntConfig.MqttUser }}"
@ -24,7 +28,6 @@ certs-path = "{{ .PlmntConfig.CertsPath }}"
// Config defines Planetmint's top level configuration
type Config struct {
ValidatorAddress string `json:"validator-address" mapstructure:"validator-address"`
MqttDomain string `json:"mqtt-domain" mapstructure:"mqtt-domain"`
MqttPort int `json:"mqtt-port" mapstructure:"mqtt-port"`
MqttUser string `json:"mqtt-user" mapstructure:"mqtt-user"`
@ -33,6 +36,7 @@ type Config struct {
MqttTLS bool `json:"mqtt-tls" mapstructure:"mqtt-tls"`
IssuerHost string `json:"issuer-host" mapstructure:"issuer-host"`
CertsPath string `json:"certs-path" mapstructure:"certs-path"`
validatorAddress string `json:"validator-address" mapstructure:"validator-address"`
}
// cosmos-sdk wide global singleton
@ -44,7 +48,6 @@ var (
// DefaultConfig returns planetmint's default configuration.
func DefaultConfig() *Config {
return &Config{
ValidatorAddress: "plmnt1w5dww335zhh98pzv783hqre355ck3u4w4hjxcx",
MqttDomain: "testnet-mqtt.rddl.io",
MqttPort: 1886,
MqttUser: "user",
@ -53,6 +56,7 @@ func DefaultConfig() *Config {
MqttTLS: true,
IssuerHost: "https://testnet-issuer.rddl.io",
CertsPath: "./certs/",
validatorAddress: "plmnt1w5dww335zhh98pzv783hqre355ck3u4w4hjxcx",
}
}
@ -75,3 +79,29 @@ func (config *Config) SetPlanetmintConfig(planetmintconfig interface{}) {
panic(err)
}
}
func (config *Config) SetValidatorAddress(validatorAddress string) *Config {
config.validatorAddress = validatorAddress
return config
}
func (config *Config) GetValidatorAddress() string {
libConfig := lib.GetConfig()
if libConfig.GetSerialPort() == "" {
return config.validatorAddress
}
connector, err := trustwallet.NewTrustWalletConnector(libConfig.GetSerialPort())
if err != nil {
logger.GetLogger(logger.ERROR).Error("msg", err.Error())
return ""
}
keys, err := connector.GetPlanetmintKeys()
if err != nil {
logger.GetLogger(logger.ERROR).Error("msg", err.Error())
return ""
}
return keys.PlanetmintAddress
}

View File

@ -125,3 +125,7 @@ func (config *Config) SetSerialPort(port string) *Config {
config.serialPort = port
return config
}
func (config *Config) GetSerialPort() string {
return config.serialPort
}

View File

@ -68,7 +68,7 @@ func (mms *MqttMonitor) setNumDBElements(numElements int64) {
func getClientID() string {
conf := config.GetConfig()
return "monitor-" + conf.ValidatorAddress
return "monitor-" + conf.GetValidatorAddress()
}
func (mms *MqttMonitor) lazyLoadMonitorMQTTClient() util.MQTTClientI {

View File

@ -596,7 +596,7 @@ func New(l Logger, baseDir string, cfg Config) (*Network, error) {
l.Log("started validator", idx)
if idx == 0 {
conf := config.GetConfig()
conf.ValidatorAddress = network.Validators[0].Address.String()
conf.SetValidatorAddress(network.Validators[0].Address.String())
// set missing validator client context values for sending txs
var output bytes.Buffer
network.Validators[0].ClientCtx.BroadcastMode = "sync"

View File

@ -51,7 +51,7 @@ func buildSignBroadcastTx(goCtx context.Context, loggingContext string, sendingV
func SendInitReissuance(goCtx context.Context, proposerAddress string, txUnsigned string, blockHeight int64,
firstIncludedPop int64, lastIncludedPop int64) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := daotypes.NewMsgReissueRDDLProposal(sendingValidatorAddress, proposerAddress, txUnsigned, blockHeight,
firstIncludedPop, lastIncludedPop)
loggingContext := "reissuance proposal"
@ -59,14 +59,14 @@ func SendInitReissuance(goCtx context.Context, proposerAddress string, txUnsigne
}
func SendReissuanceResult(goCtx context.Context, proposerAddress string, txID string, blockHeight int64) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := daotypes.NewMsgReissueRDDLResult(sendingValidatorAddress, proposerAddress, txID, blockHeight)
loggingContext := "reissuance result"
buildSignBroadcastTx(goCtx, loggingContext, sendingValidatorAddress, msg)
}
func SendDistributionRequest(goCtx context.Context, distribution daotypes.DistributionOrder) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := daotypes.NewMsgDistributionRequest(sendingValidatorAddress, &distribution)
loggingContext := "distribution request"
buildSignBroadcastTx(goCtx, loggingContext, sendingValidatorAddress, msg)
@ -74,35 +74,35 @@ func SendDistributionRequest(goCtx context.Context, distribution daotypes.Distri
func SendDistributionResult(goCtx context.Context, lastPoP int64, daoTxID string, invTxID string,
popTxID string, earlyInvestorTxID string, strategicTxID string) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := daotypes.NewMsgDistributionResult(sendingValidatorAddress, lastPoP, daoTxID, invTxID, popTxID, earlyInvestorTxID, strategicTxID)
loggingContext := "distribution result"
buildSignBroadcastTx(goCtx, loggingContext, sendingValidatorAddress, msg)
}
func SendLiquidAssetRegistration(goCtx context.Context, notarizedAsset machinetypes.LiquidAsset) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := machinetypes.NewMsgNotarizeLiquidAsset(sendingValidatorAddress, &notarizedAsset)
loggingContext := "notarize liquid asset"
buildSignBroadcastTx(goCtx, loggingContext, sendingValidatorAddress, msg)
}
func SendInitPoP(goCtx context.Context, proposer string, challenger string, challengee string, blockHeight int64) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := daotypes.NewMsgInitPop(sendingValidatorAddress, proposer, challenger, challengee, blockHeight)
loggingContext := "PoP"
buildSignBroadcastTx(goCtx, loggingContext, sendingValidatorAddress, msg)
}
func SendUpdateRedeemClaim(goCtx context.Context, beneficiary string, id uint64, txID string) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
msg := daotypes.NewMsgUpdateRedeemClaim(sendingValidatorAddress, beneficiary, txID, id)
loggingContext := "redeem claim"
buildSignBroadcastTx(goCtx, loggingContext, sendingValidatorAddress, msg)
}
func SendTokens(goCtx context.Context, beneficiary sdk.AccAddress, amount uint64, denominator string) {
sendingValidatorAddress := config.GetConfig().ValidatorAddress
sendingValidatorAddress := config.GetConfig().GetValidatorAddress()
coin := sdk.NewCoin(denominator, sdk.NewIntFromUint64(amount))
coins := sdk.NewCoins(coin)

View File

@ -49,7 +49,7 @@ func LazyLoadMQTTClient() {
}
opts := mqtt.NewClientOptions().AddBroker(uri)
opts.SetClientID(conf.ValidatorAddress)
opts.SetClientID(conf.GetValidatorAddress())
opts.SetUsername(conf.MqttUser)
opts.SetPassword(conf.MqttPassword)
if conf.MqttTLS {