/*
Copyright IBM Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0
*/

syntax = "proto3";

option go_package = "github.com/hyperledger/fabric/protos/token";
option java_package = "org.hyperledger.fabric.protos.token";

package protos;

import "google/protobuf/timestamp.proto";
import "token/transaction.proto";

// TokenExpectation represent the belief that someone should achieve in terms of a token action
message TokenExpectation {
    oneof Expectation {
        // PlainExpectation describes a plain token expectation
        PlainExpectation plain_expectation = 1;
    }
}

// PlainExpectation represent the plain expectation where no confidentiality is provided.
message PlainExpectation {
    oneof payload {
        // ImportExpectation describes an token import expectation
        PlainTokenExpectation import_expectation = 1;
        // TransferExpectation describes a token transfer expectation
        PlainTokenExpectation transfer_expectation = 2;
    }
}

// PlainTokenExpectation represents the expecation that
// certain outputs will be matched
message PlainTokenExpectation {
    // Outputs contains the expected outputs
    repeated PlainOutput outputs = 1;
}
