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

shgraph.hapi.0.54.1.source-code.contract_delete.proto Maven / Gradle / Ivy

There is a newer version: 0.54.0
Show 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.api.proto.java";
// <<>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;

import "basic_types.proto";

/**
 * At consensus, marks a contract as deleted and transfers its remaining hBars, if any, to a
 * designated receiver. After a contract is deleted, it can no longer be called.
 * 
 * If the target contract is immutable (that is, was created without an admin key), then this
 * transaction resolves to MODIFYING_IMMUTABLE_CONTRACT.
 * 
 * --- Signing Requirements ---
 * 1. The admin key of the target contract must sign.
 * 2. If the transfer account or contract has receiverSigRequired, its associated key must also sign
 */
message ContractDeleteTransactionBody {
    /**
     * The id of the contract to be deleted
     */
    ContractID contractID = 1;

    oneof obtainers {
        /**
         * The id of an account to receive any remaining hBars from the deleted contract
         */
		AccountID transferAccountID = 2;

        /**
         * The id of a contract to receive any remaining hBars from the deleted contract
         */
	    ContractID transferContractID = 3;
    }

    /**
     * If set to true, means this is a "synthetic" system transaction being used to 
     * alert mirror nodes that the contract is being permanently removed from the ledger.
     * IMPORTANT: User transactions cannot set this field to true, as permanent
     * removal is always managed by the ledger itself. Any ContractDeleteTransactionBody
     * submitted to HAPI with permanent_removal=true will be rejected with precheck status
     * PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION.
     */
    bool permanent_removal = 4;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy