title: Cannot use u128 to represent money/price in smart contract model
body: <pre><code>import { context, u128, storage, logging, PersistentUnorderedMap } from &quot;near-sdk-as&quot;;
  @nearBindgen
  export class MyItem{
    id: u64;
    type: u32;
    price: u128; // This is causing the deserialization error
  }
  </code></pre>
  <p>When including this fragment of code in my smart contract, compiling, deploying to testnet and calling <em>any</em> method on it, I receive: <strong>&quot;Error happened while deserializing the module&quot;</strong></p>
  <p>When I change <code>price:u128</code> to <code>price:u64</code>, it all starts to work, no more error.</p>
  <p>What is the best way to represent monetary value of something (for example NFT) in a smart contract model? Is u128 the wrong type? If I should use some other type - how do I convert it to u128 before transferring it?</p>