utils.go 680 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
package hardhat

import "strings"

type QualifiedName struct {
	SourceName   string
	ContractName string
}

func ParseFullyQualifiedName(name string) QualifiedName {
	names := strings.Split(name, ":")
	if len(names) == 1 {
		return QualifiedName{
			SourceName:   "",
			ContractName: names[0],
		}
	}

	contractName := names[len(names)-1]
	sourceName := strings.Join(names[0:len(names)-1], ":")

	return QualifiedName{
		ContractName: contractName,
		SourceName:   sourceName,
	}
}

func GetFullyQualifiedName(sourceName, contractName string) string {
	return sourceName + ":" + contractName
}

func IsFullyQualifiedName(name string) bool {
	return strings.Contains(name, ":")
}