title: Logging and tracing changes of mapping a struct
body: <p>I have a struct and use it in mapping.</p>
  <pre><code>struct Cotton{
      uint256 balance;
      string form;
      address producer;
      string certificate;
  }
  mapping(address=&gt;Cotton) public cotton;
  </code></pre>
  <p>I am able to access the last values of <em>cotton</em>. However, once there are many transactions I need to access the previous states of it as well.
  I have tried emitting an event yet it does not accept a struct as an input argument.
  Is there a way to retrieve all the changes on <em>cotton</em>?</p>