making a little history!
To date, Uniswap has four deployments: Ethereum, Abritrum, Optimism, and Polygon. In addition to these deployments, there are proposals to deploy Uniswap on Harmony, Celo, and more chains expected soon. The protocol should continue to deploy to new markets, but as the protocol continues to grow, it is vital the protocol learns to manage each of the deployments. With each new chain, there is new infrastructure that needs to be adapted to so that UNI on Ethereum can govern all of these deployments.
GFX Labs has been researching the various deployments and has prepared the first Uniswap cross-chain proposal to demonstrate how mainnet UNI can manage deployments on other chains.
Polygon has a messaging mechanism between Ethereum and Polygon called the Fx-Portal. The portal functions via three contracts: FxRoot, State Sender, & FxChild. Messages can be sent from Ethereum to Polygon by calling the sendMessageToChild(address, bytes) at the FxRoot contract on Ethereum, which calls the State Sender contract. The validators monitor the State Sender contract and relay messages to the FxChild on Polygon. Upon successful relay to the FxChild, the message is executed on Polygon by the validators.
The owner of the Uniswap v3 contracts on Polygon is the Ethereum Proxy contract. The proxy contract will only process transactions that originate from the Timelock contract on Ethereum and are delivered by the FxChild. Every governance proposal targeting a change on Polygon should set the FxRoot on Ethereum as the target and send the message (parameter change) via the contract. The message passed through the FxRoot must contain the target(s) contract on Polygon, the function(s) to call, the call data(s), similar to the proposal system.
For the pilot of cross-chain governance, we are implementing the 1 basis point/1 tick fee tier on Polygon. The 1bp pools on Ethereum have been incredibly successful and increased Uniswap’s market share significantly since GFX Labs’ successful proposal in November 2021.
Because governance has already approved it on Ethereum, the content of this proposal should not be controversial and puts the focus on the research and implementation.
GFX Labs has already tested the governance proposal on Goerli & Mumbai.
To build the proposal–Uniswap Governor Alpha: propose()
_receiver (address) is the [EthereumProxy contract](https://mumbai.polygonscan.com/address/0x8a1b966ac46f42275860f905dbc75efbfdc12374#code) which is the owner of the [Uniswap Factory contract on Polyon](https://mumbai.polygonscan.com/address/0x1f98431c8ad98523631ae4a59f267346ea31f984).
_data (bytes) is an encoded message where the abi is address[] targets, bytes[] datas, uint256[] values
1. Targets: [[Uniswap Factory contract on Polygon](https://mumbai.polygonscan.com/address/0x1f98431c8ad98523631ae4a59f267346ea31f984)]
2. Datas: [Uniswap Factory contract–enableFeeAmount(100,1)]
3. Values: [0]
making a little history!