osmosis

Prop 479: Upload Cross-Chain Swap Contract v2

Passing this proposal will upload an updated version of the Crosschain Swaps contract to the Osmosis chain.

## Details
The Crosschain Swaps contract enables trades on Osmosis to be carried out remotely from another chain connected to Osmosis by IBC.

The original upload contained an issue that was only discovered during implementation on mainnet and requires a new version to be uploaded to properly integrate the full Crosschain swaps process.

The contract receives a token transfer from chain A, interacts with the Swap Router contract to exchange the received token for a different token and then forwards it to a destination address specified in the original transaction.

On receipt of tokens from Chain A, the contract parses a memo field, enabled by IBC v3.4.0 in Osmosis v13. This contains information set by the sender identifying the instance of the Crosschain Swaps contract to interact with and the intention.

This Crosschain Swaps instance is linked to an instance of the SwapRouter contract uploaded in Proposal 411 and carries out the exchange using liquidity on Osmosis.

The resultant tokens are then forwarded to the address originally specified in the memo, be that a return to the address on Chain A or forwarding to an address on Chain C.

Full Documentation: https://github.com/osmosis-labs/osmosis/tree/main/cosmwasm/contracts/crosschain-swaps

## Git Commit ID
https://github.com/osmosis-labs/osmosis/commit/928280b61d15fcfd71f068390f520034c3d49a54

## Version of Compiler used
cosmwasm/workspace-optimizer:0.12.10

## Checksum
e7cfd4ec2cf594de9d15863c6e324025045de39236186c03483af7c9e06d4949

Commonwealth Thread: https://commonwealth.im/osmosis/discussion/10592-upload-crosschain-swaps-contract-v2