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
  • 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
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 - If null, the xml-complete template stateXmlTemplate is used, if non-null the partial templates statePartXmlTempate is used
      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, the xml-complete template stateXmlTemplate is used, if non-null the partial templates statePartXmlTempate is used.
      Returns:
      The XML representing the current contract state.
      Throws:
      Exception - An exception.