import _m0 from "protobufjs/minimal"; import { AccountID, Key, TokenID } from "./basic_types"; import { Duration } from "./duration"; import { Timestamp } from "./timestamp"; export declare const protobufPackage = "proto"; /** * At consensus, updates an already created token to the given values. * * If no value is given for a field, that field is left unchanged. For an immutable tokens (that is, * a token without an admin key), only the expiry may be updated. Setting any other field in that * case will cause the transaction status to resolve to TOKEN_IS_IMMUTABLE. * * --- Signing Requirements --- * 1. Whether or not a token has an admin key, its expiry can be extended with only the transaction * payer's signature. * 2. Updating any other field of a mutable token requires the admin key's signature. * 3. If a new admin key is set, this new key must sign unless it is exactly an empty * KeyList. This special sentinel key removes the existing admin key and causes the * token to become immutable. (Other Key structures without a constituent * Ed25519 key will be rejected with INVALID_ADMIN_KEY.) * 4. If a new treasury is set, the new treasury account's key must sign the transaction. * * --- Nft Requirements --- * 1. If a non fungible token has a positive treasury balance, the operation will abort with * CURRENT_TREASURY_STILL_OWNS_NFTS. */ export interface TokenUpdateTransactionBody { /** The Token to be updated */ token: TokenID | undefined; /** * The new publicly visible token symbol. The token symbol is specified as a Unicode string. * Its UTF-8 encoding cannot exceed 100 bytes, and cannot contain the 0 byte (NUL). */ symbol: string; /** * The new publicly visible name of the token. The token name is specified as a Unicode string. * Its UTF-8 encoding cannot exceed 100 bytes, and cannot contain the 0 byte (NUL). */ name: string; /** * The new Treasury account of the Token. If the provided treasury account is not existing or * deleted, the response will be INVALID_TREASURY_ACCOUNT_FOR_TOKEN. If successful, the Token * balance held in the previous Treasury Account is transferred to the new one. */ treasury: AccountID | undefined; /** * The new admin key of the Token. If Token is immutable, transaction will resolve to * TOKEN_IS_IMMUTABlE. */ adminKey: Key | undefined; /** * The new KYC key of the Token. If Token does not have currently a KYC key, transaction will * resolve to TOKEN_HAS_NO_KYC_KEY. */ kycKey: Key | undefined; /** * The new Freeze key of the Token. If the Token does not have currently a Freeze key, * transaction will resolve to TOKEN_HAS_NO_FREEZE_KEY. */ freezeKey: Key | undefined; /** * The new Wipe key of the Token. If the Token does not have currently a Wipe key, transaction * will resolve to TOKEN_HAS_NO_WIPE_KEY. */ wipeKey: Key | undefined; /** * The new Supply key of the Token. If the Token does not have currently a Supply key, * transaction will resolve to TOKEN_HAS_NO_SUPPLY_KEY. */ supplyKey: Key | undefined; /** * The new account which will be automatically charged to renew the token's expiration, at * autoRenewPeriod interval. */ autoRenewAccount: AccountID | undefined; /** * The new interval at which the auto-renew account will be charged to extend the token's * expiry. */ autoRenewPeriod: Duration | undefined; /** * The new expiry time of the token. Expiry can be updated even if admin key is not set. If the * provided expiry is earlier than the current token expiry, transaction wil resolve to * INVALID_EXPIRATION_TIME */ expiry: Timestamp | undefined; /** If set, the new memo to be associated with the token (UTF-8 encoding max 100 bytes) */ memo: string | undefined; /** * If set, the new key to use to update the token's custom fee schedule; if the token does not * currently have this key, transaction will resolve to TOKEN_HAS_NO_FEE_SCHEDULE_KEY */ feeScheduleKey: Key | undefined; /** * The Key which can pause and unpause the Token. If the Token does not currently have a pause key, * transaction will resolve to TOKEN_HAS_NO_PAUSE_KEY */ pauseKey: Key | undefined; } export declare const TokenUpdateTransactionBody: { encode(message: TokenUpdateTransactionBody, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TokenUpdateTransactionBody; fromJSON(object: any): TokenUpdateTransactionBody; toJSON(message: TokenUpdateTransactionBody): unknown; create(base?: DeepPartial): TokenUpdateTransactionBody; fromPartial(object: DeepPartial): TokenUpdateTransactionBody; }; 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=token_update.d.ts.map