core: add nativenames.IsValid

This commit is contained in:
Anna Shaleva 2021-03-12 13:04:41 +03:00
parent 9cb38a4b1b
commit 85a8644517
2 changed files with 34 additions and 0 deletions

View file

@ -14,3 +14,18 @@ const (
CryptoLib = "CryptoLib" CryptoLib = "CryptoLib"
StdLib = "StdLib" StdLib = "StdLib"
) )
// IsValid checks that name is a valid native contract's name.
func IsValid(name string) bool {
return name == Management ||
name == Ledger ||
name == Neo ||
name == Gas ||
name == Policy ||
name == Oracle ||
name == Designation ||
name == Notary ||
name == NameService ||
name == CryptoLib ||
name == StdLib
}

View file

@ -0,0 +1,19 @@
package native
import (
"fmt"
"testing"
"github.com/nspcc-dev/neo-go/pkg/core/native/nativenames"
"github.com/stretchr/testify/require"
)
func TestNativenamesIsValid(t *testing.T) {
// test that all native names has been added to IsValid
contracts := NewContracts(true)
for _, c := range contracts.Contracts {
require.True(t, nativenames.IsValid(c.Metadata().Name), fmt.Errorf("add %s to nativenames.IsValid(...)", c))
}
require.False(t, nativenames.IsValid("unkonwn"))
}