osmosis

Prop 526: Allow Squid contracts to be uploaded

Passing this proposal gives the address osmo1ae2z8svz9nvklt94mvrskr7kdwy0qrlrsehe6f the ability to upload CosmWasm contracts to Osmosis without seeking further governance approval for each upload. This address is administered by Squid core contributors.

About Squid

Squid allows any token to be swapped between blockchains, and unlocks access to apps across chains in a single click. Use Squid to build seamless user experiences that tap into cross-chain liquidity and scale to reach anyone with a crypto wallet, no matter what chain they’re on. Squid is closely partnered with Axelar and is helping many teams in the Cosmos with routing, both acquiring tokens from the EVM world and with IBC path unwinding.

Details

Squid will be supporting swaps between any token in the EVM world and any token in the Cosmos world by routing volume through Osmosis’ pools. This is achieved through Axelar’s GMP. Deploying this contract on Osmosis will allow the users of Squid to swap on Osmosis as part of a route, and execute the rest of their route after the swap occurs.

Squid will also be using this contract to support swapping any token between any chain in the Cosmos. Everything will be executed entirely via IBC, utilizing the ICS20 memo field, the packet-forward-middleware and ibc-hooks.

While this proposal gives authority for osmo1ae2z8svz9nvklt94mvrskr7kdwy0qrlrsehe6f to permissionlessly upload CosmWasm contracts to Osmosis, governance only signals approval for contracts relating to the function of Squid’s swap, transfer and cross-chain routing functions.

Squid has been testing on Testnet. We are satisfied with the functionality and intend to deploy to mainnet and continue testing thoroughly before exposing our backend APIs to the public. This contract is does not hold core logic and relies upon a client-generated payload to perform swaps.

Mechanism

The Squid contract to be deployed on Osmosis is responsible for handling two things:

  • Receive swap path and minimum output amount and execute it. Path is a sequence of pools that will be used to go from token A to token B, the same way as in the Uniswap V2 router.
  • In case of a successful swap execute specified after swap action which can be either bank send or contract call or ibc transfer.

Since the only responsibility of this contract is to perform swaps it is stateless and does not require any ownership or pausable functions. The contract also handles fallback scenarios for IBC transfers, in case of packet failure or timeout contract will transfer swapped funds to the specified fallback_address.

Contract information

The release for the contract is available at - https://github.com/0xsquid/cosmos-contracts/releases/tag/1.0.0 The git commit Id - https://github.com/0xsquid/cosmos-contracts/commit/987ea7e669e98e3b24f38348b8a8089b5734c3a4 The code can be found at - https://github.com/0xsquid/cosmos-contracts/tree/1.0.0/contracts/osmosis Compiler Version - cosmwasm/workspace-optimizer:0.12.11 Checksum - 343584b16d6a73357a553cf02a78280d4c979a0404a37020579abd427efbf5b5 osmosis.wasm

Contact

Twitter: https://twitter.com/squidrouter Discord: https://discord.gg/squidrouter Website: https://squidrouter.com

Commonwealth Thread: https://commonwealth.im/osmosis/discussion/11572-allow-squid-contracts-to-be-uploaded