In my use case, I want to build a local currency system with solidity. The core concept of local currency is that the currency can only be used in the specific region. It aims to encourage spending within a local community, especially with locally owned businesses.
So my question is that how can I restrict the token only be transferred within the region. It means that the function 'transfer(address, amount)' will be reverted when the user calls the function outside the region.