/** Copyright 2013 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * Authors: Mike Hearn, Matt Corallo
 */
 
/* Notes:
 * - Endianness: All byte arrays that represent numbers (such as hashes and private keys) are Big Endian
 * - To regenerate after editing, run mvn clean package -DupdateProtobuf
 */

package paymentchannels;

option java_package = "org.bitcoinj.protocols.channels";
option java_outer_classname = "ServerState";


// A set of StoredPaymentChannel's
message StoredServerPaymentChannels {
    repeated StoredServerPaymentChannel channels = 1;
}

// A server-side payment channel in serialized form, which can be reloaded later if the server restarts
message StoredServerPaymentChannel {
	required uint64 bestValueToMe = 1;
	optional bytes bestValueSignature = 2;
	required uint64 refundTransactionUnlockTimeSecs = 3;
	required bytes contractTransaction = 4;
	optional bytes clientOutput = 5;
	required bytes myKey = 6;
	optional uint32 majorVersion = 7 [default = 1];
	// Protocol version 2 only - the P2SH hash doesn't contain the required key
	optional bytes clientKey = 8;
}