title: NEAR Protocol Fungible Tokens logic NEP-21
body: <p>I have questions about:
  <a href="https://github.com/near/near-sdk-rs/blob/master/examples/fungible-token/src/lib.rs" rel="nofollow noreferrer">fungible Token example</a> and <a href="https://github.com/near/NEPs/pull/21" rel="nofollow noreferrer">NEP-21</a> itself.</p>
  <ol>
  <li>It's a possible situation when <code>escrow allowances &gt; 0</code>, but <code>account balance = 0</code>.
  Is it legal flow and why?</li>
  <li>It never checks <code>account_id</code> exists or not. Why? Is it secure?</li>
  <li>Anyone can call: <code>inc_allowance/dec_allowance</code>?</li>
  </ol>
  <p>And for <code>let owner_id = env::predecessor_account_id();</code> will be created new account, new escrow allowance automatically (if not exist). Is that logic correct and why?</p>
  <ol start="4">
  <li><code>get_account</code> always created a new account. It looks redundant.</li>
  </ol>
  <p>For example:</p>
  <pre><code>fn get_account(&amp;self, owner_id: &amp;AccountId) -&gt; Account {
      assert!(env::is_valid_account_id(owner_id.as_bytes()), &quot;Owner's account ID is invalid&quot;);
      let account_hash = env::sha256(owner_id.as_bytes());
      self.accounts.get(&amp;account_hash).unwrap_or_else(|| Account::new(account_hash))
  }
  </code></pre>
  <p>Will create &quot;always&quot; new account for new <code>owner_id</code>. And it's possible then that account will never be used. So is it really practical to silently &quot;create&quot; an account with <code>get_account</code>?</p>
  <ol start="5">
  <li><code>transfer_from</code> is never check <code>owner_id</code> as the real owner of the account. Is there logic to protect transferring only by real owners?</li>
  <li>Why fungible token doesn't have a name/title?</li>
  <li>Do the <strong>NEAR Protocol</strong> have some standard or logic for Fungible Tokens exchange?</li>
  </ol>