mirror of https://github.com/poanetwork/gecko.git
37 lines
841 B
Go
37 lines
841 B
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package avm
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/ava-labs/gecko/vms/components/verify"
|
|
)
|
|
|
|
var (
|
|
errNilCredential = errors.New("nil credential is not valid")
|
|
errNilFxCredential = errors.New("nil feature extension credential is not valid")
|
|
)
|
|
|
|
// Credential ...
|
|
type Credential struct {
|
|
Cred verify.Verifiable `serialize:"true"`
|
|
}
|
|
|
|
// Credential returns the feature extension credential that this Credential is
|
|
// using.
|
|
func (cred *Credential) Credential() verify.Verifiable { return cred.Cred }
|
|
|
|
// Verify implements the verify.Verifiable interface
|
|
func (cred *Credential) Verify() error {
|
|
switch {
|
|
case cred == nil:
|
|
return errNilCredential
|
|
case cred.Cred == nil:
|
|
return errNilFxCredential
|
|
default:
|
|
return cred.Cred.Verify()
|
|
}
|
|
}
|