import _m0 from "protobufjs/minimal"; import { AccountID, ContractID, FileID, Key } from "./basic_types"; import { Duration } from "./duration"; import { Timestamp } from "./timestamp"; export declare const protobufPackage = "proto"; /** * At consensus, updates the fields of a smart contract to the given values. * * If no value is given for a field, that field is left unchanged on the contract. For an immutable * smart contract (that is, a contract created without an adminKey), only the expirationTime may be * updated; setting any other field in this case will cause the transaction status to resolve to * MODIFYING_IMMUTABLE_CONTRACT. * * --- Signing Requirements --- * 1. Whether or not a contract has an admin key, its expiry can be extended with only the * transaction payer's signature. * 2. Updating any other field of a mutable contract requires the admin key's signature. * 3. If the update transaction includes a new admin key, this new key must also sign unless * it is exactly an empty KeyList. This special sentinel key removes the existing admin * key and causes the contract to become immutable. (Other Key structures without a * constituent Ed25519 key will be rejected with INVALID_ADMIN_KEY.) * 4. If the update transaction sets the AccountID auto_renew_account_id wrapper field to anything * other than the sentinel 0.0.0 value, then the key of the referenced account must sign. */ export interface ContractUpdateTransactionBody { /** The id of the contract to be updated */ contractID: ContractID | undefined; /** * The new expiry of the contract, no earlier than the current expiry (resolves to * EXPIRATION_REDUCTION_NOT_ALLOWED otherwise) */ expirationTime: Timestamp | undefined; /** The new key to control updates to the contract */ adminKey: Key | undefined; /** * [Deprecated] The new id of the account to which the contract is proxy staked * * @deprecated */ proxyAccountID: AccountID | undefined; /** If an auto-renew account is in use, the lifetime to be added by each auto-renewal. */ autoRenewPeriod: Duration | undefined; /** * This field is unused and will have no impact on the specified smart contract. * * @deprecated */ fileID: FileID | undefined; memoField?: { $case: "memo"; memo: string; } | { $case: "memoWrapper"; memoWrapper: string | undefined; } | undefined; /** * If set, the new maximum number of tokens that this contract can be * automatically associated with (i.e., receive air-drops from). */ maxAutomaticTokenAssociations: number | undefined; /** * If set to the sentinel 0.0.0 AccountID, this field removes the contract's auto-renew * account. Otherwise it updates the contract's auto-renew account to the referenced account. */ autoRenewAccountId: AccountID | undefined; stakedId?: { $case: "stakedAccountId"; stakedAccountId: AccountID; } | { $case: "stakedNodeId"; stakedNodeId: number; } | undefined; /** If true, the contract declines receiving a staking reward. */ declineReward: boolean | undefined; } export declare const ContractUpdateTransactionBody: { encode(message: ContractUpdateTransactionBody, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ContractUpdateTransactionBody; fromJSON(object: any): ContractUpdateTransactionBody; toJSON(message: ContractUpdateTransactionBody): unknown; create(base?: DeepPartial): ContractUpdateTransactionBody; fromPartial(object: DeepPartial): ContractUpdateTransactionBody; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends { $case: string; } ? { [K in keyof Omit]?: DeepPartial; } & { $case: T["$case"]; } : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; export {}; //# sourceMappingURL=contract_update.d.ts.map