package users

import "std"

type AddressOrName string

func (aon AddressOrName) IsName() bool {
	return aon != "" && aon[0] == '@'
}

func (aon AddressOrName) GetName() (string, bool) {
	if len(aon) >= 2 && aon[0] == '@' {
		return string(aon[1:]), true
	}
	return "", false
}

func (aon AddressOrName) Resolve() std.Address {
	name, isName := aon.GetName()
	if isName {
		user := GetUserByName(name)
		return user.address
	} else {
		return std.Address(aon) // TODO check validity
	}
}