/**
 * # Token Claim Airdrop
 * Messages used to implement a transaction to claim a pending airdrop.
 *
 * ### Keywords
 * The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 * "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
 * document are to be interpreted as described in
 * [RFC2119](https://www.ietf.org/rfc/rfc2119) and clarified in
 * [RFC8174](https://www.ietf.org/rfc/rfc8174).
 */
syntax = "proto3";

package proto;

// SPDX-License-Identifier: Apache-2.0
option java_package = "com.hederahashgraph.api.proto.java";
// <<<pbj.java_package = "com.hedera.hapi.node.token">>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;

import "services_basic_types.proto";

/**
 * Token claim airdrop<br/>
 * Complete one or more pending transfers on behalf of the
 * recipient(s) for an airdrop.
 *
 * The sender MUST have sufficient balance to fulfill the airdrop at the
 * time of claim. If the sender does not have sufficient balance, the
 * claim SHALL fail.<br/>
 * Each pending airdrop successfully claimed SHALL be removed from state and
 * SHALL NOT be available to claim again.<br/>
 * Each claim SHALL be represented in the transaction body and
 * SHALL NOT be restated in the record file.<br/>
 * All claims MUST succeed for this transaction to succeed.
 *
 * ### Block Stream Effects
 * The completed transfers SHALL be present in the transfer list.
 */
message TokenClaimAirdropTransactionBody {
    /**
     * A list of one or more pending airdrop identifiers.
     * <p>
     * This transaction MUST be signed by the account identified by
     * the `receiver_id` for each entry in this list.<br/>
     * This list MUST contain between 1 and 10 entries, inclusive.<br/>
     * This list MUST NOT have any duplicate entries.
     */
    repeated PendingAirdropId pending_airdrops = 1;
}
