/** * @typedef {import("./ContractStateChange.js").default} ContractStateChange */ /** * @namespace proto * @typedef {import("@hashgraph/proto").proto.IContractFunctionResult} HashgraphProto.proto.IContractFunctionResult * @typedef {import("@hashgraph/proto").proto.IContractID} HashgraphProto.proto.IContractID */ /** * The result returned by a call to a smart contract function. This is part of the response to * a ContractCallLocal query, and is in the record for a ContractCall or ContractCreateInstance * transaction. The ContractCreateInstance transaction record has the results of the call to * the constructor. */ export default class ContractFunctionResult { /** * @param {HashgraphProto.proto.IContractFunctionResult} result * @param {boolean} _createResult * @returns {ContractFunctionResult} */ static _fromProtobuf(result: HashgraphProto.proto.IContractFunctionResult, _createResult: boolean): ContractFunctionResult; /** * Constructor isn't part of the stable API * * @param {object} result * @param {boolean} result._createResult * @param {?ContractId} result.contractId * @param {?string} result.errorMessage * @param {Uint8Array} result.bloom * @param {Long} result.gasUsed * @param {ContractLogInfo[]} result.logs * @param {ContractId[]} result.createdContractIds * @param {Uint8Array | null} result.evmAddress * @param {Uint8Array} result.bytes * @param {Long} result.gas * @param {Long} result.amount * @param {Uint8Array} result.functionParameters * @param {?AccountId} result.senderAccountId * @param {ContractStateChange[]} result.stateChanges */ constructor(result: { _createResult: boolean; contractId: ContractId | null; errorMessage: string | null; bloom: Uint8Array; gasUsed: Long; logs: ContractLogInfo[]; createdContractIds: ContractId[]; evmAddress: Uint8Array | null; bytes: Uint8Array; gas: Long; amount: Long; functionParameters: Uint8Array; senderAccountId: AccountId | null; stateChanges: ContractStateChange[]; }); /** * Determines if this result came from `record.contractCreateResult` if true * or `record.contractCallResult` if false */ _createResult: boolean; /** * The smart contract instance whose function was called. */ contractId: ContractId | null; bytes: Uint8Array; /** * Message In case there was an error during smart contract execution. */ errorMessage: string | null; /** * Bloom filter for record */ bloom: Uint8Array; /** * Units of gas used to execute contract. */ gasUsed: Long.Long; /** * The log info for events returned by the function. */ logs: ContractLogInfo[]; /** * @deprecated the list of smart contracts that were created by the function call. * * The created ids will now _also_ be externalized through internal transaction * records, where each record has its alias field populated with the new contract's * EVM address. (This is needed for contracts created with CREATE2, since * there is no longer a simple relationship between the new contract's 0.0.X id * and its Solidity address.) */ createdContractIds: ContractId[]; evmAddress: Uint8Array | null; /** * @deprecated - Use mirror node for contract traceability instead */ stateChanges: import("./ContractStateChange.js").default[]; /** * The amount of gas available for the call, aka the gasLimit. */ gas: Long.Long; /** * Number of tinybars sent (the function must be payable if this is nonzero). */ amount: Long.Long; /** * The parameters passed into the contract call. */ functionParameters: Uint8Array; /** * The account that is the "sender." If not present it is the accountId from the transactionId. * * This field should only be populated when the paired TransactionBody in the record stream is not a * ContractCreateTransactionBody or a ContractCallTransactionBody. */ senderAccountId: AccountId | null; /** * @returns {Uint8Array} */ asBytes(): Uint8Array; /** * @param {number} [index] * @returns {string} */ getString(index?: number | undefined): string; /** * @private * @param {number} [index] * @returns {Uint8Array} */ private getBytes; /** * @param {number} [index] * @returns {Uint8Array} */ getBytes32(index?: number | undefined): Uint8Array; /** * @param {number} [index] * @returns {boolean} */ getBool(index?: number | undefined): boolean; /** * @param {number} [index] * @returns {number} */ getInt8(index?: number | undefined): number; /** * @param {number} [index] * @returns {number} */ getUint8(index?: number | undefined): number; /** * @param {number} [index] * @returns {number} */ getInt32(index?: number | undefined): number; /** * @param {number} [index] * @returns {number} */ getUint32(index?: number | undefined): number; /** * @param {number} [index] * @returns {BigNumber} */ getInt40(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint40(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt48(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint48(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt56(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint56(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt64(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint64(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt72(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint72(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt80(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint80(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt88(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint88(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt96(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint96(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt104(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint104(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt112(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint112(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt120(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint120(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt128(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint128(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt136(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint136(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt144(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint144(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt152(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint152(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt160(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint160(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt168(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint168(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt176(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint176(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt184(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint184(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt192(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint192(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt200(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint200(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt208(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint208(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt216(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint216(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt224(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint224(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt232(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint232(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt240(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint240(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt248(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint248(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getInt256(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {BigNumber} */ getUint256(index?: number | undefined): BigNumber; /** * @param {number} [index] * @returns {string} */ getAddress(index?: number | undefined): string; /** * @param {number} [index] * @returns {Uint8Array} */ _getBytes32(index?: number | undefined): Uint8Array; /** * @returns {HashgraphProto.proto.IContractFunctionResult} */ _toProtobuf(): HashgraphProto.proto.IContractFunctionResult; } export type ContractStateChange = import("./ContractStateChange.js").default; export namespace HashgraphProto { namespace proto { type IContractFunctionResult = import("@hashgraph/proto").proto.IContractFunctionResult; type IContractID = import("@hashgraph/proto").proto.IContractID; } } import ContractId from "./ContractId.js"; import Long from "long"; import ContractLogInfo from "./ContractLogInfo.js"; import AccountId from "../account/AccountId.js"; import BigNumber from "bignumber.js";