Documentation Index
Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
Use this file to discover all available pages before exploring further.
ContractResult
Union type representing the outcome of a contract call: success with return data or failure with revert reason.
Type
type ContractResultType =
| { success: true; data: ReturnDataType }
| { success: false; revertReason: RevertReasonType };
Construction
import * as ContractResult from '@tevm/voltaire/primitives/ContractResult';
import * as ReturnData from '@tevm/voltaire/primitives/ReturnData';
import * as RevertReason from '@tevm/voltaire/primitives/RevertReason';
// Success result
const success = ContractResult.success(ReturnData.fromHex("0x..."));
// Failure result
const failure = ContractResult.failure(revertReason);
// From flag and data
const result = ContractResult.from(true, "0x...");
Methods
success(data) - Create successful result
failure(reason) - Create failed result
from(isSuccess, data) - Create from success flag
isSuccess(result) - Type guard for success
isFailure(result) - Type guard for failure
unwrap(result) - Get data or throw ContractRevertError
unwrapOr(result, default) - Get data or default
Example
import * as ContractResult from '@tevm/voltaire/primitives/ContractResult';
const result = ContractResult.from(success, returnData);
if (ContractResult.isSuccess(result)) {
console.log("Success:", result.data);
} else {
console.log("Revert:", result.revertReason);
}
// Unwrap with error handling
try {
const data = ContractResult.unwrap(result);
console.log("Data:", data);
} catch (error) {
if (error instanceof ContractResult.ContractRevertError) {
console.log("Revert reason:", error.revertReason);
}
}
// Unwrap with default
const data = ContractResult.unwrapOr(result, ReturnData.fromHex("0x"));