All Downloads are FREE. Search and download functionalities are using the official Maven repository.

shgraph.hapi.0.54.0.source-code.token_service.proto Maven / Gradle / Ivy

The newest version!
syntax = "proto3";

package proto;

/*-
 * ‌
 * Hedera Network Services Protobuf
 * ​
 * Copyright (C) 2018 - 2021 Hedera Hashgraph, LLC
 * ​
 * 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.
 * ‍
 */

option java_package = "com.hederahashgraph.service.proto.java";
// <<>> This comment is special code for setting PBJ Compiler java package

import "query.proto";
import "response.proto";
import "transaction_response.proto";
import "transaction.proto";

/**
 * Transactions and queries for the Token Service
 */
service TokenService {
    /**
     * Creates a new Token by submitting the transaction
     */
    rpc createToken (Transaction) returns (TransactionResponse);

    /**
     * Updates the account by submitting the transaction
     */
    rpc updateToken (Transaction) returns (TransactionResponse);

    /**
     * Mints an amount of the token to the defined treasury account
     */
    rpc mintToken (Transaction) returns (TransactionResponse);

    /**
     * Burns an amount of the token from the defined treasury account
     */
    rpc burnToken (Transaction) returns (TransactionResponse);

    /**
     * Deletes a Token
     */
    rpc deleteToken (Transaction) returns (TransactionResponse);

    /**
     * Wipes the provided amount of tokens from the specified Account ID
     */
    rpc wipeTokenAccount (Transaction) returns (TransactionResponse);

    /**
     * Freezes the transfer of tokens to or from the specified Account ID
     */
    rpc freezeTokenAccount (Transaction) returns (TransactionResponse);

    /**
     * Unfreezes the transfer of tokens to or from the specified Account ID
     */
    rpc unfreezeTokenAccount (Transaction) returns (TransactionResponse);

    /**
     * Flags the provided Account ID as having gone through KYC
     */
    rpc grantKycToTokenAccount (Transaction) returns (TransactionResponse);

    /**
     * Removes the KYC flag of the provided Account ID
     */
    rpc revokeKycFromTokenAccount (Transaction) returns (TransactionResponse);

    /**
     * Associates tokens to an account
     */
    rpc associateTokens (Transaction) returns (TransactionResponse);

    /**
     * Dissociates tokens from an account
     */
    rpc dissociateTokens (Transaction) returns (TransactionResponse);

    /**
     * Updates the custom fee schedule on a token
     */
    rpc updateTokenFeeSchedule (Transaction) returns (TransactionResponse);

    /**
     * Retrieves the metadata of a token
     */
    rpc getTokenInfo (Query) returns (Response);

    /**
     * (DEPRECATED) Gets info on NFTs N through M on the list of NFTs associated with a given account
     */
    rpc getAccountNftInfos (Query) returns (Response) {
         option deprecated = true;
    };

    /**
     * Retrieves the metadata of an NFT by TokenID and serial number
     */
    rpc getTokenNftInfo (Query) returns (Response);

    /**
     * (DEPRECATED) Gets info on NFTs N through M on the list of NFTs associated with a given Token of type NON_FUNGIBLE
     */
    rpc getTokenNftInfos (Query) returns (Response) {
         option deprecated = true;
    };

    // Pause the token
    rpc pauseToken (Transaction) returns (TransactionResponse);

    //  Unpause the token
    rpc unpauseToken (Transaction) returns (TransactionResponse);

    /**
     * Updates the NFTs in a collection by TokenID and serial number
     */
    rpc updateNfts (Transaction) returns (TransactionResponse);

    /**
     * Reject one or more tokens.
* This transaction SHALL transfer the full balance of one or more tokens from the requesting * account to the treasury for each token. This transfer SHALL NOT charge any custom fee or * royalty defined for the token(s) to be rejected.
*

Effects on success

*
    *
  • If the rejected token is fungible/common, the requesting account SHALL have a balance * of 0 for the rejected token. The treasury balance SHALL increase by the amount that * the requesting account decreased.
  • *
  • If the rejected token is non-fungible/unique the requesting account SHALL NOT hold * the specific serialized token that is rejected. The treasury account SHALL hold each * specific serialized token that was rejected.
  • * */ rpc rejectToken (Transaction) returns (TransactionResponse); /** * Airdrop one or more tokens to one or more accounts.
    * This distributes tokens from the balance of one or more sending account(s) to the balance * of one or more recipient accounts. Accounts will receive the tokens in one of four ways. *
      *
    • An account already associated to the token to be distributed SHALL receive the * airdropped tokens immediately to the recipient account balance.
    • *
    • An account with available automatic association slots SHALL be automatically * associated to the token, and SHALL immediately receive the airdropped tokens to the * recipient account balance.
    • *
    • An account with "receiver signature required" set SHALL have a "Pending Airdrop" * created and MUST claim that airdrop with a `claimAirdrop` transaction.
    • *
    • An account with no available automatic association slots SHALL have a * "Pending Airdrop" created and MUST claim that airdrop with a `claimAirdrop` * transaction.
    • *
    * Any airdrop that completes immediately SHALL be irreversible. Any airdrop that results in a * "Pending Airdrop" MAY be canceled via a `cancelAirdrop` transaction.
    * All transfer fees (including custom fees and royalties), as well as the rent cost for the * first auto-renewal period for any automatic-association slot occupied by the airdropped * tokens, SHALL be charged to the account submitting this transaction. */ rpc airdropTokens (Transaction) returns (TransactionResponse); /** * Cancel one or more pending airdrops. *

    * This transaction MUST be signed by _each_ account *sending* an airdrop to be canceled. */ rpc cancelAirdrop (Transaction) returns (TransactionResponse); /** * Claim one or more pending airdrops. *

    * This transaction MUST be signed by _each_ account **receiving** an * airdrop to be claimed.
    * If a "Sender" lacks sufficient balance to fulfill the airdrop at the * time the claim is made, that claim SHALL fail. */ rpc claimAirdrop (Transaction) returns (TransactionResponse); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy