feat: allow setting the base denom (#16257)

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
This commit is contained in:
emidev98
2023-05-23 17:12:24 +00:00
committed by GitHub
co-authored by Aleksandr Bezobchuk
parent 81ba019e5e
commit 995d2bc94b
3 changed files with 28 additions and 0 deletions
+11
View File
@@ -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 == "" {
+16
View File
@@ -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{}
}