Skip to content

Commit

Permalink
fix core.ConfigI to allow to update the "order" and "version" fields
Browse files Browse the repository at this point in the history
Signed-off-by: Masanori Yoshida <[email protected]>
  • Loading branch information
siburu committed Jul 24, 2024
1 parent 68f0bee commit 70cba96
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 26 deletions.
34 changes: 18 additions & 16 deletions config/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,33 @@ func initCoreConfig(c *Config) {
core.SetCoreConfig(config)
}

func (c CoreConfig) UpdateConfigID(pathName string, chainID string, configID core.ConfigIDType, id string) error {
func (c CoreConfig) UpdatePathConfig(pathName string, chainID string, key core.PathConfigKey, value string) error {
configPath, err := c.config.Paths.Get(pathName)
if err != nil {
return err
}

var pathEnd *core.PathEnd
if chainID == configPath.Src.ChainID {
pathEnd = configPath.Src
}
if chainID == configPath.Dst.ChainID {
} else if chainID == configPath.Dst.ChainID {
pathEnd = configPath.Dst
}
if pathEnd == nil {
} else {
return fmt.Errorf("pathEnd is nil")
}
switch configID {
case core.ConfigIDClient:
pathEnd.ClientID = id
case core.ConfigIDConnection:
pathEnd.ConnectionID = id
case core.ConfigIDChannel:
pathEnd.ChannelID = id
}
if err := c.config.OverWriteConfig(); err != nil {
return err

switch key {
case core.PathConfigClientID:
pathEnd.ClientID = value
case core.PathConfigConnectionID:
pathEnd.ConnectionID = value
case core.PathConfigChannelID:
pathEnd.ChannelID = value
case core.PathConfigOrder:
pathEnd.Order = value
case core.PathConfigVersion:
pathEnd.Version = value
}
return nil

return c.config.OverWriteConfig()
}
22 changes: 12 additions & 10 deletions core/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,18 @@ import (

var config ConfigI

type ConfigIDType string
type PathConfigKey string

const (
ConfigIDClient ConfigIDType = "client"
ConfigIDConnection ConfigIDType = "connection"
ConfigIDChannel ConfigIDType = "channel"
PathConfigClientID PathConfigKey = "client-id"
PathConfigConnectionID PathConfigKey = "connection-id"
PathConfigChannelID PathConfigKey = "channel-id"
PathConfigOrder PathConfigKey = "order"
PathConfigVersion PathConfigKey = "version"
)

type ConfigI interface {
UpdateConfigID(pathName string, chainID string, configID ConfigIDType, id string) error
UpdatePathConfig(pathName string, chainID string, key PathConfigKey, value string) error
}

func SetCoreConfig(c ConfigI) {
Expand Down Expand Up @@ -157,20 +159,20 @@ func SyncChainConfigFromEvents(pathName string, msgIDs []MsgID, chain *ProvableC

for _, event := range msgRes.Events() {
var id string
var configID ConfigIDType
var configID PathConfigKey
switch event := event.(type) {
case *EventGenerateClientIdentifier:
configID = ConfigIDClient
configID = PathConfigClientID
id = event.ID
case *EventGenerateConnectionIdentifier:
configID = ConfigIDConnection
configID = PathConfigConnectionID
id = event.ID
case *EventGenerateChannelIdentifier:
configID = ConfigIDChannel
configID = PathConfigChannelID
id = event.ID
}
if id != "" {
if err := config.UpdateConfigID(pathName, chain.ChainID(), configID, id); err != nil {
if err := config.UpdatePathConfig(pathName, chain.ChainID(), configID, id); err != nil {
return err
}
}
Expand Down

0 comments on commit 70cba96

Please sign in to comment.