feat: allow setting the base denom (#16257)
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
This commit is contained in:
co-authored by
Aleksandr Bezobchuk
parent
81ba019e5e
commit
995d2bc94b
@@ -47,6 +47,17 @@ func GetDenomUnit(denom string) (Dec, bool) {
|
||||
return unit, true
|
||||
}
|
||||
|
||||
// SetBaseDenom allow overwritting the base denom
|
||||
// if the denom has registered before, otherwise return error
|
||||
func SetBaseDenom(denom string) error {
|
||||
_, ok := denomUnits[denom]
|
||||
if !ok {
|
||||
return fmt.Errorf("denom %s not registered", denom)
|
||||
}
|
||||
baseDenom = denom
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetBaseDenom returns the denom of smallest unit registered
|
||||
func GetBaseDenom() (string, error) {
|
||||
if baseDenom == "" {
|
||||
|
||||
@@ -36,6 +36,13 @@ func (s *internalDenomTestSuite) TestRegisterDenom() {
|
||||
s.Require().False(ok)
|
||||
s.Require().Equal(math.LegacyZeroDec(), res)
|
||||
|
||||
err := SetBaseDenom(atom)
|
||||
s.Require().NoError(err)
|
||||
|
||||
res, ok = GetDenomUnit(atom)
|
||||
s.Require().True(ok)
|
||||
s.Require().Equal(atomUnit, res)
|
||||
|
||||
// reset registration
|
||||
baseDenom = ""
|
||||
denomUnits = map[string]Dec{}
|
||||
@@ -192,3 +199,12 @@ func (s *internalDenomTestSuite) TestDecOperationOrder() {
|
||||
baseDenom = ""
|
||||
denomUnits = map[string]Dec{}
|
||||
}
|
||||
|
||||
func (s *internalDenomTestSuite) TestSetBaseDenomError() {
|
||||
err := SetBaseDenom(atom)
|
||||
s.Require().Error(err)
|
||||
|
||||
// reset registration
|
||||
baseDenom = ""
|
||||
denomUnits = map[string]Dec{}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user