github.com/ontio/ontology@v1.14.4/vm/neovm/types/interop_value.go (about)

     1  /*
     2   * Copyright (C) 2018 The ontology Authors
     3   * This file is part of The ontology library.
     4   *
     5   * The ontology is free software: you can redistribute it and/or modify
     6   * it under the terms of the GNU Lesser General Public License as published by
     7   * the Free Software Foundation, either version 3 of the License, or
     8   * (at your option) any later version.
     9   *
    10   * The ontology is distributed in the hope that it will be useful,
    11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13   * GNU Lesser General Public License for more details.
    14   *
    15   * You should have received a copy of the GNU Lesser General Public License
    16   * along with The ontology.  If not, see <http://www.gnu.org/licenses/>.
    17   */
    18  
    19  package types
    20  
    21  import (
    22  	"bytes"
    23  
    24  	"github.com/ontio/ontology/vm/neovm/interfaces"
    25  )
    26  
    27  type InteropValue struct {
    28  	Data interfaces.Interop
    29  }
    30  
    31  func NewInteropValue(value interfaces.Interop) InteropValue {
    32  	return InteropValue{Data: value}
    33  }
    34  
    35  func (this *InteropValue) Equals(other InteropValue) bool {
    36  	// todo: both nil?
    37  	if this.Data == nil || other.Data == nil {
    38  		return false
    39  	}
    40  	return bytes.Equal(this.Data.ToArray(), other.Data.ToArray())
    41  }