java.lang.Object
net.finmath.smartcontracts.representablestate.xml.EvmXmlRenderer
All Implemented Interfaces:
ContractStateXmlRenderer

public class EvmXmlRenderer extends Object implements ContractStateXmlRenderer
Reference implementation of an XML renderer for IXMLRepresentableState and IXMLRepresentableStatePart Supported XML Schemata:
  • Core scalar profile
  • State-part callbacks with the renderer-provided $partId argument
  • Multi-binding attributes (evmstate:calls)
  • Array binding profile for scalar and tuple arrays via evmstate:item-element + evmstate:item-field
  • External template includes profile via XInclude (xi:include) with evmstate:integrity verification
  • ERC-4804/6860 web3:// and w3:// XInclude resources (address-based, same-chain)
Supported Contract Templates
  • XML-Complete state: stateXmlTemplate()
  • Partial state: statePartXmlTemplate(uint256 partId)
Author:
Christian Fries
  • Constructor Details

    • EvmXmlRenderer

      public EvmXmlRenderer(String rpcUrl)
      Instantiate a renderer connected to a given chain's RPC URL. XInclude processing is enabled with default options.
      Parameters:
      rpcUrl - The RPC URL of the chain.
    • EvmXmlRenderer

      public EvmXmlRenderer(String rpcUrl, EvmXmlRenderer.XIncludeOptions xincludeOptions)
      Instantiate a renderer connected to a given chain's RPC URL, with explicit XInclude options.
      Parameters:
      rpcUrl - The RPC URL of the chain.
      xincludeOptions - Options controlling XInclude expansion and fetching. If null, defaults are used.
  • Method Details

    • render

      public String render(String contractAddress) throws Exception
      Description copied from interface: ContractStateXmlRenderer
      Extract the XML from a given contract address, executing the required calls to populate the bindings.
      Specified by:
      render in interface ContractStateXmlRenderer
      Parameters:
      contractAddress - A given contract address as hex 0x1234567...
      Returns:
      The XML representing the current contract state.
      Throws:
      Exception - An exception.
    • render

      public String render(String contractAddress, BigInteger blockNumber) throws Exception
      Description copied from interface: ContractStateXmlRenderer
      Extract the XML from a given contract address, executing the required calls to populate the bindings.
      Specified by:
      render in interface ContractStateXmlRenderer
      Parameters:
      contractAddress - A given contract address as hex 0x1234567...
      blockNumber - The block number to fix for receiving the template and the state values.
      Returns:
      The XML representing the current contract state.
      Throws:
      Exception - An exception.
    • renderPart

      public String renderPart(String contractAddress, BigInteger partId) throws Exception
      Description copied from interface: ContractStateXmlRenderer
      Extract the XML from a given contract address, executing the required calls to populate the bindings.
      Specified by:
      renderPart in interface ContractStateXmlRenderer
      Parameters:
      contractAddress - A given contract address as hex 0x1234567...
      partId - State-part identifier. Must not be null; the on-chain type is uint256.
      Returns:
      The XML representing the current contract state.
      Throws:
      Exception - An exception.
    • render

      public String render(String contractAddress, BigInteger blockNumber, BigInteger partId) throws Exception
      Description copied from interface: ContractStateXmlRenderer
      Extract the XML representing the state (either xml-complete or partial) from a given contract address at a given block, executing the required calls to populate the bindings.
      Specified by:
      render in interface ContractStateXmlRenderer
      Parameters:
      contractAddress - A given contract address as hex 0x1234567...
      blockNumber - The block number to fix for receiving the template and the state values.
      partId - If null, use the complete-state template; otherwise use the state-part template. The on-chain type is uint256.
      Returns:
      The XML representing the current contract state.
      Throws:
      Exception - An exception.