title: solidity: call contract function from another contract with the same msg.sender
body: <p>I have a function that needs to call the transfer method on another contract.
  I want the transfer method to be called from the address of the original caller and not the contract.
  Is it possible?</p>
  <p>This is the code:</p>
  <pre><code>function buyGameBundle(string calldata id) external nonReentrant {
      structGameBundles  memory currentItem = _gameBundles[id];
      require(currentItem.exists == true, &quot;bundle does not exists&quot;);
      require(currentItem.totalSupply &gt; 0, &quot;there are no more bundles left&quot;);
      if (currentItem.cost &gt; 0) {
          erc20.transfer(_feesAccount, currentItem.cost);
      }
      currentItem.totalSupply = currentItem.totalSupply.sub(1);
      _gameBundles[id] = currentItem;
      emit BuyGameBundle(_msgSender(), id, currentItem.cost);
  }
  </code></pre>