Skip to content

Commit

Permalink
Merge branch 'main' into feat/side-nav-menu
Browse files Browse the repository at this point in the history
  • Loading branch information
limsohee1002 committed Nov 14, 2024
2 parents 35ac703 + 59d45bb commit c2c9897
Show file tree
Hide file tree
Showing 153 changed files with 3,045 additions and 731 deletions.
15 changes: 15 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: 'en-US'
early_access: false
reviews:
profile: 'chill'
request_changes_workflow: false
high_level_summary: true
poem: true
review_status: true
collapse_walkthrough: false
auto_review:
enabled: true
drafts: false
chat:
auto_reply: true
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
### Description

<!--- Summarize the changes that can be found in this PR and how your reviewers should test these changes. -->

### Type(s) of changes

<!--- Put an `x` in all the boxes that apply. -->

- [ ] Bug fix
- [ ] New feature
- [ ] Update to an existing feature

### Motivation for PR

<!--- If it addresses an open issue, please link to the issue here, otherwise, briefly describe the issue. -->

### How Has This Been Tested?

<!--- Please note how you have tested your changes. Browsers, accessibility, devices, unit tests, etc. -->

### Applicable screenshots

<!--- When appropriate, upload screenshots. -->

### Follow-up PR

<!--- When appropriate, please note what your reviewers can expect in a follow up PR. -->
10 changes: 5 additions & 5 deletions docs/contracts/uniswapx/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ UniswapX introduces a new participant in the Uniswap ecosystem, the _Filler_. Th

Anyone can fill orders on UniswapX, get started by reading our [Filler Integration Guide](/contracts/uniswapx/guides/createfiller).

## Parametizing UniswapX Orders
The UniswapX protocol does not explicitly parameterize the pricing of orders like the Exclusive Dutch Order, rather order parameterization is left to be configured by the order constructor.
## Parametizing UniswapX Orders on Mainnet
The UniswapX protocol on Mainnet does not explicitly parameterize the pricing of orders like the Exclusive Dutch Order, rather order parameterization is left to be configured by the order constructor.

In the current Uniswap Labs interface implementation of UniswapX, some fillers may choose to help parameterize orders by participating as quoters. These fillers can *only* win a quote if they guarantee improved swapper execution over Uniswap v3 or v2 liquidity pools. Fillers who win a quote will receive execution priority for a limited period of time to fill orders they submitted wining quotes for.
In the current Uniswap Labs interface implementation of UniswapX, some fillers may choose to help parameterize orders on Mainnet by participating as quoters. These fillers can *only* win a quote if they guarantee improved swapper execution over Uniswap v3 or v2 liquidity pools. Fillers who win a quote will receive execution priority for a limited period of time to fill orders they submitted wining quotes for.

To ensure a smooth swapping experience for traders during the beta period, the set of Quoters will be vetted by Uniswap Labs following UniswapX’s launch, with plans to make the quoting system fully permissionless in the near future.
To ensure a smooth swapping experience for traders, the set of Quoters will be vetted by Uniswap Labs following UniswapX’s launch, with plans to make the quoting system fully permissionless in the near future.

If you are interested in participating as a Quoter during the beta period, please reach out [here](mailto:[email protected]).
If you are interested in participating as a Quoter, please reach out [here](mailto:[email protected]).

# UniswapX Protocol Architecture

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Contract addresses for the [`Uniswap V2 Factory`](https://github.com/Uniswap/v2-
| Network | Factory Contract Address | V2Router02 Contract Address |
| ---------------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
| Mainnet | `0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f` | `0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D` |
| Sepolia | `0xF62c03E08ada871A0bEb309762E260a7a6a880E6` | `0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3` |
| Arbitrum | `0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9` | `0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24` |
| Avalanche | `0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C` | `0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24` |
| BNB Chain | `0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6` | `0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24` |
Expand All @@ -18,3 +19,4 @@ Contract addresses for the [`Uniswap V2 Factory`](https://github.com/Uniswap/v2-
| Polygon | `0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C` | `0xedf6066a2b290C185783862C7F4776A2C8077AD1` |
| Blast | `0x5C346464d33F90bABaf70dB6388507CC889C1070` | `0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035` |
| Zora | `0x0F797dC7efaEA995bB916f268D919d0a1950eE3C` | `0xa00F34A632630EFd15223B1968358bA4845bEEC7` |
| WorldChain | `0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f` | `0x541aB7c31A119441eF3575F6973277DE0eF460bd` |
54 changes: 54 additions & 0 deletions docs/contracts/v3/reference/deployments/WorldChain-Deployments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
id: WorldChain-deployments
title: WorldChain Deployment Addresses
---

# Uniswap Contract Deployments

The latest version of `@uniswap/v3-core`, `@uniswap/v3-periphery`, and `@uniswap/swap-router-contracts` are deployed at the addresses listed below. Integrators should **no longer assume that they are deployed to the same addresses across chains** and be extremely careful to confirm mappings below.

| Contract | WorldChain |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- |
| [UniswapV3Factory](https://github.com/Uniswap/uniswap-v3-core/blob/v1.0.0/contracts/UniswapV3Factory.sol) | `0x7a5028BDa40e7B173C278C5342087826455ea25a` |
| [Multicall2](https://worldchain-mainnet.explorer.alchemy.com/address/0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9) | `0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9` |
| [ProxyAdmin](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.1-solc-0.7-2/contracts/proxy/ProxyAdmin.sol) | `0x8B52DaCB7B5d9A959CDcD5419061c0eDD1296c29` |
| [TickLens](https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/lens/TickLens.sol) | `0xE61df0CaC9d85876aCE5E3037005D80943570623` |
| [NFTDescriptor](https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/libraries/NFTDescriptor.sol) | `0x38c68A1D60C47973EcE5bc1725B65D8Bec438192` |
| [NonfungibleTokenPositionDescriptor](https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/NonfungibleTokenPositionDescriptor.sol) | `0x70410a302c4a5c52C659b780941c947Abd437FeB` |
| [TransparentUpgradeableProxy](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.1-solc-0.7-2/contracts/proxy/TransparentUpgradeableProxy.sol) | `0xe6FcB4952b2d3Fab6DA4BC165831f5575e093feC` |
| [NonfungiblePositionManager](https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/NonfungiblePositionManager.sol) | `0xec12a9F9a09f50550686363766Cc153D03c27b5e` |
| [V3Migrator](https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/V3Migrator.sol) | `0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3` |
| [QuoterV2](https://github.com/Uniswap/v3-periphery/blob/main/contracts/lens/QuoterV2.sol) | `0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c` |
| [SwapRouter02](https://github.com/Uniswap/swap-router-contracts/blob/main/contracts/SwapRouter02.sol) | `0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6` |
| [Permit2](https://github.com/Uniswap/permit2) | `0x000000000022D473030F116dDEE9F6B43aC78BA3` |
| [UniversalRouter](https://github.com/Uniswap/universal-router) | `0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D` |


These addresses are final and were deployed from these npm package versions:

- [`@uniswap/[email protected]`](https://github.com/Uniswap/uniswap-v3-core/tree/v1.0.0)
- [`@uniswap/[email protected]`](https://github.com/Uniswap/uniswap-v3-periphery/tree/v1.0.0)
- [`@uniswap/[email protected]`](https://github.com/Uniswap/swap-router-contracts/tree/v1.1.0)


# Universal Router

The `UniversalRouter` contract is the current preferred entrypoint for ERC20 and NFT swaps, replacing, among other contracts, `SwapRouter02`. An up-to-date list of [deploy addresses by chain is hosted on Github](https://github.com/Uniswap/sdks/blob/main/sdks/universal-router-sdk/src/utils/constants.ts).

# Uniswap Pool Deployments

Every Uniswap pool is a unique instance of the `UniswapV3Pool` contract and is deployed at its own unique address. The contract source code of the pool will be auto-verified on etherscan. For example, here is the [ETH/USDC 0.3% pool](https://etherscan.io/address/0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8) on Ethereum mainnet.

You can look up the address of an existing pool on [Uniswap Info](https://info.uniswap.org/#/) or by calling the [`getPool`](../reference/core/interfaces/IUniswapV3Factory.md#getpool) function on the `UniswapV3Factory` contract.

```solidity
getPool("0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", 3000)
```

# Wrapped Native Token Addresses

The Uniswap Protocol supports trading of ERC20 tokens. In order to swap a native asset like ETH (or MATIC on Polygon), the Uniswap protocol wraps these assets in an ERC20 wrapped native token contract. The protocol uses the following WETH9 addresses on Ethereum and WMATIC addresses on Polygon.

| Network | ChainId | Wrapped Native Token | Address |
| ------------------- | -------- | -------------------- | -------------------------------------------- |
| WorldChain | `480` | WETH | `0x4200000000000000000000000000000000000006` |
1 change: 1 addition & 0 deletions docs/contracts/v3/reference/deployments/deployments.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Please do not assume contracts are deployed to the same addresses across chains,
- [`Blast`](./Blast-Deployments.md)
- [`ZKsync`](./ZKsync-Deployments.md)
- [`Zora`](./Zora-Deployments.md)
- [`WorldChain`](./WorldChain-Deployments.md)

These addresses are final and were deployed from these npm package versions:

Expand Down
4 changes: 2 additions & 2 deletions docs/contracts/v4/concepts/04-hooks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ The liquidity modification hooks are extremely granular for security purposes.

The introduction of hooks in Uniswap V4 opens up a world of possibilities for developers to innovate and build new DeFi protocols. Some potential use cases include:

- Customized AMMs with different pricing curves that xy = k.
- Customized AMMs with different pricing curves than xy = k.
- Yield farming and liquidity mining protocols that incentivize liquidity provision.
- Derivative and synthetic asset platforms built on top of Uniswap V4 liquidity.
- Lending hooks integrated with Uniswap V4 pools.

As a hook developer you can easily bootstrap the codebase of an entirely new DeFi protocol through hook designs, which subsequently drives down your audit costs and allows you to develop faster. However, it's important to note that just because you made a hook, that does not mean you will get liquidity routed to your hook from the Uniswap frontend.
As a hook developer you can easily bootstrap the codebase of an entirely new DeFi protocol through hook designs, which subsequently drives down your audit costs and allows you to develop faster. However, it's important to note that just because you made a hook, that does not mean you will get liquidity routed to your hook from the Uniswap frontend.
2 changes: 1 addition & 1 deletion docs/contracts/v4/concepts/05-subscribers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Subscribers
---

Subscribers, new in Uniswap v4, allow for liquidity-position owners to opt-in to a contract that receives _notifcations_.
Subscribers, new in Uniswap v4, allow for liquidity-position owners to opt-in to a contract that receives _notifications_.
The new design is intended to support _liquidity mining_, additional rewards given to in-range liquidity providers. Through notification logic, position owners do not need
to risk their liquidity position and its underlying assets. In Uniswap v3, _liquidity mining_ was supported by fully transferring the
liquidity position to an external contract; this old design would give the external contract full ownership and control of the liquidity position.
Expand Down
13 changes: 13 additions & 0 deletions docs/contracts/v4/concepts/08-integrated-routing-uniswap-x.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Integrated Routing with UniswapX
---

The [Uniswap Interface](https://app.uniswap.org) will be ramping up support for hooks in it's standard routing system progressively over time. Hook builders looking to get immediate access to flow from the interface can do so by running a UniswapX filler for their hooked pools.

At a high level, hook builders' filler implementations will need to do the following:

1. (On Mainnet) Subscribe to the UniswapX RFQ system and submit fillable bids from orders they receive
2. Listen to the public feed for orders they won or that are open to be filled publicly
3. Execute those orders against pools that use their hooks

Developers should check [UniswapX Documentation](/contracts/uniswapx/overview) to get started.
Loading

0 comments on commit c2c9897

Please sign in to comment.