TokenBridge contract on Starknet:
IMintableToken interface represents any mintable/burnable token, and will allow our contract to perform these operations without
regard for the actual token it’s working with.
Let’s immediately create the mock token implementation that we’ll use with the contract:
TokenBridge contract on Ethereum:
Note: Bridging tokens from Ethereum to Starknet usually takes a couple of minutes, and the #[l1_handler] function is automatically
invoked by the Sequencer, minting tokens to our Starknet wallet address. On the other hand, for bridging transactions to be
successfully sent from Starknet to Ethereum can take a couple of hours, and will require us to manually consume the withdrawal in
order for the tokens to be sent to our Ethereum wallet address.