Vanna Inference is provided through a standard Interface that any smart contract can use.
/// @title Infer Call/// @notice This contract is used to run on-chain inference./// This custom contract will set on 0x000000000000000000000000000000000000011a.interface VannaInference {functioninferCall(stringmemory model,stringmemory input) externalreturns (stringmemory);functioninferCallZK(stringmemory model,stringmemory input) externalreturns (stringmemory);}
Below is a smart contract that utilizes the VannaInference interface to run inference on-chain.
contract InferenceExecution {string value;functioninfer(stringcalldata modelName,stringcalldata inputData ) public { value =VannaInference(address(0x11a).inferCall(modelName, inputData); }functionzkInfer(stringcalldata modelName,stringcalldata inputData ) public { value =ArbInference(address(0x11a)).inferCallZK(modelName, inputData); }functiongetValue() publicviewreturns (stringmemory) {return value; }}