```\nfunction join(uint256 amount) external override joiningNotPaused {\n        uint256 fee = amount.mul(joiningFee).div(BASIS_PRECISION);\n        uint256 mintedAmount = mint(amount.sub(fee));\n        claimableFees = claimableFees.add(fee);\n\n        // TODO: tx.origin will be deprecated in a future ethereum upgrade\n        latestJoinBlock[tx.origin] = block.number;\n        token.safeTransferFrom(msg.sender, address(this), amount);\n\n        emit Joined(msg.sender, amount, mintedAmount);\n    }\n```\n