neowolves/contract/passtorage.go

47 lines
1.1 KiB
Go

package main
import (
"github.com/nspcc-dev/neo-go/pkg/interop"
"github.com/nspcc-dev/neo-go/pkg/interop/storage"
)
func CreateUser(login string, password interop.Hash256) {
ctx := storage.GetContext()
storedValue := storage.Get(ctx, login).(interop.Hash256)
if storedValue != nil {
panic("This user already exists")
} else {
storage.Put(ctx, login, password)
}
}
func CheckUser(login string, givenPassword interop.Hash256) {
password := GetUser(login)
if !password.Equals(givenPassword) {
panic("Password hashes does not match")
}
}
func GetUser(login string) interop.Hash256 {
ctx := storage.GetReadOnlyContext()
password := storage.Get(ctx, login).(interop.Hash256)
if password == nil {
panic("The user does not exist")
}
return password
}
func DeleteUser(login string) {
ctx := storage.GetContext()
storage.Delete(ctx, login)
}
func UpdateUser(login string, password interop.Hash256) {
ctx := storage.GetContext()
storedValue := storage.Get(ctx, login).(interop.Hash256)
if storedValue == nil {
panic("This user does not exist")
} else {
storage.Put(ctx, login, password)
}
}