Skip to content

Commit 28d6b39

Browse files
alfetopitofhenneke
andauthored
feat: add lens and bnb (#538)
# Description Add lens+bnb info to the docs # Changes <!-- List of detailed changes (how the change is accomplished) --> - [ ] Add lens+bnb addresses to core contracts: https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/reference/contracts/core - [ ] Add lens+bnb addresses to periphery contracts: https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/reference/contracts/periphery - [ ] Add lens+bnb info for cow-amm-for-solvers: https://docs-git-feat-bnb-cowswap.vercel.app/cow-amm/tutorials/cow-amm-for-solvers - [ ] Add dd lens+bnb to signing schemes: https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/reference/core/signing-schemes - [ ] Add lens+bnb info to tutorials: [here](https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/tutorials/cow-swap/custom-links), [here](https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/tutorials/solvers/local_test) and [here](https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/tutorials/widget) - [ ] Add lens+bnb to governance tokens: https://docs-git-feat-bnb-cowswap.vercel.app/governance/token - [ ] Add temporary info for lens+bnb to solver rewards ~⚠️ Needs to be updated~ https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/reference/core/auctions/rewards#price-estimation-competition-rewards-cips-27-57 - [ ] Add temporary info for lens+bnb to solver competition rules ~⚠️ Needs to be updated~ https://docs-git-feat-bnb-cowswap.vercel.app/cow-protocol/reference/core/auctions/competition-rules#off-chain-protocol <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added Lens and BNB across docs: contract reference tables, deployment links, deadline blocks, rewards, signing-scheme examples, native/wrapped token lists, orderbook endpoints, and widget fee/recipient mappings. * Clarified solver/order semantics: surplus measurement differences, partiallyFillable requirements, and order/interaction wording. * Expanded governance docs with Lens/BNB rows and a dedicated vCOW section. * Minor editorial and formatting cleanups; no functional changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Felix Henneke <[email protected]>
1 parent db8b420 commit 28d6b39

File tree

11 files changed

+128
-104
lines changed

11 files changed

+128
-104
lines changed

docs/cow-amm/tutorials/cow-amm-deployer.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,22 @@ sidebar_position: 1
44

55
# Deploying a CoW AMM Using Balancer
66

7-
In this short tutorial, we describe how one can create and deploy their own Balancer CoW AMM.
7+
In this short tutorial, we describe how you can create and deploy their own Balancer CoW AMM.
88

99
**You may also deploy a CoW AMM through the Balancer UI using [this guide.](https://cow.fi/learn/how-to-create-a-lvr-protected-liquidity-pool-on-cowamm)**
1010

11-
1211
The proposed transactions and interactions can be executed through any smart contract or EOA transaction builder, Etherscan "Write Contract," from other UI mechanisms, or directly from the console.
1312

1413
The current factory contract addresses are the following:
14+
1515
- Ethereum Mainnet: [`0xf76c421bAb7df8548604E60deCCcE50477C10462`](https://etherscan.io/address/0xf76c421bAb7df8548604E60deCCcE50477C10462#code)
1616
- Gnosis Chain: [`0x703Bd8115E6F21a37BB5Df97f78614ca72Ad7624`](https://gnosisscan.io/address/0x703Bd8115E6F21a37BB5Df97f78614ca72Ad7624#code)
1717
- Arbitrum One: [`0xE0e2Ba143EE5268DA87D529949a2521115987302`](https://arbiscan.io/address/0xe0e2ba143ee5268da87d529949a2521115987302#code)
1818
- Base: [`0x03362f847B4fAbC12e1Ce98b6b59F94401E4588e`](https://basescan.org/address/0x03362f847b4fabc12e1ce98b6b59f94401e4588e#code)
1919
- Avalanche: N/A
2020
- Polygon: N/A
21+
- Lens: N/A
22+
- BNB: N/A
2123
- Sepolia Testnet: [`0x1E3D76AC2BB67a2D7e8395d3A624b30AA9056DF9`](https://sepolia.etherscan.io/address/0x1E3D76AC2BB67a2D7e8395d3A624b30AA9056DF9#code)
2224

2325
These contracts can be verified through [this](https://github.com/balancer/cow-amm) repository.
@@ -33,24 +35,21 @@ In case ABI of the factory contract is not fetched, the ABI from the Sepolia net
3335

3436
:::caution
3537

36-
One needs to taken the token's decimals into account in order to set the correct approval.
38+
One needs to take the token's decimals into account in order to set the correct approval.
3739
:::
3840

39-
4041
3. The next step is to bind the approved tokens to the pool, by using the `bind()` function of the newly created pool contract. We need to do one bind per token that will be added to the pool. Note that the `denorm` parameter should always be set to 1000000000000000000 (i.e., 10^18).
4142

42-
4343
4. We can then set the swap fee; this is the fee trades will pay if they trade permissionlessly (i.e., outside of the batch), and this is done by calling the `setSwapFee()` function of the pool contract. The fee parameter needs to be specified in wei, hence, a 10% fee would be 100000000000000000 (i.e., 10^17)
4444

4545
:::note
4646

47-
In order to guarantee full LVR protection, the fee should be set to 100%.
47+
In order to guarantee full LVR protection, the fee should be set to 100%.
4848
:::
4949

5050
:::caution
5151

5252
The fee parameter is an unsigned integer where 10^18 corresponds to 100% of fee. Note that 100% is actually not a valid value though, but one can set up to 99.99%.
5353
:::
5454

55-
5655
5. The final step is to finalize the pool by calling the `finalize()` function of the newly created pool contract.

docs/cow-amm/tutorials/cow-amm-for-solvers.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar_position: 3
77
## I'm a solver. How do I use CoW AMM liquidity?
88

99
CoW AMM orders already appear in the CoW Protocol orderbook, so you're already using its liquidity.
10-
However, CoW AMMs allow solvers to specify custom buy and sell amounts, as long as the order preserves or increase the constant product invariant of the token reserves.
10+
However, CoW AMMs allow solvers to specify custom buy and sell amounts, as long as the order preserves or increases the constant product invariant of the token reserves.
1111

1212
CoW AMMs can be treated as a liquidity source akin to Uniswap or Balancer weighted pools with uniform weights.
1313
Each CoW AMM is a pair that trades two tokens.
@@ -25,7 +25,7 @@ The AMM reserves are the balance of the two tokens traded by the AMM.
2525

2626
Integrating CoW AMM orders requires adding a JitOrder with the CoW AMM. This order should be described from the CoW AMM pool's perspective. So if a user wants to sell token A to buy token B and you would like to settle (part of) this order with a CoW AMM, then you would need to add a JitOrder from the CoW AMM's perspective to match (part of) this order. In other words, you would be adding a JitOrder for the CoW AMM to sell token B to buy token A. You can do this by calling the `orderFromBuyAmount` because the user’s amount is exactly how much you would want the pool to receive, asking for the amount of tokens in exchange.
2727

28-
[The source code for the helper contract can be found here.](https://github.com/balancer/cow-amm/blob/main/src/contracts/BCoWHelper.sol) The `orderFromBuyAmount` and 'orderFromSellAmount' methods return the order, preInteractions, postInteractions, and signature. This can be used to generate the order (JitOrder) with the CoW AMM and check the prices that the CoW AMM would provide for the order you would like to settle.
28+
[The source code for the helper contract can be found here.](https://github.com/balancer/cow-amm/blob/main/src/contracts/BCoWHelper.sol) The `orderFromBuyAmount` and 'orderFromSellAmount' methods return the order, preInteractions, postInteractions, and signature. This can be used to generate the order (JitOrder) and check prices.
2929

3030
This order generated by the BCoWHelper contract will contain the limit prices for which the CoW AMM is willing to trade. Trading at exactly these limit prices will not generate surplus for the CoW AMM, any price improvement from these limit prices will be surplus captured by the CoW AMM.
3131

@@ -36,12 +36,15 @@ Doing this will generate additional surplus in the solver competition (assuming
3636
Another way that a solver can use CoW AMM's is by using outside liquidity from the competition/auction to trade with the CoW AMM, thereby re-balancing the AMM and receiving an additional surplus for doing so if the prices of the CoW AMM is off relative to the outside world.
3737

3838
The helper contracts are deployed here:
39+
3940
- [Mainnet](https://etherscan.io/address/0x03362f847b4fabc12e1ce98b6b59f94401e4588e#code)
4041
- [Arbitrum](https://arbiscan.io/address/0xdb2aeab529c035469e190310def9957ef0398ba8#code)
4142
- [Gnosis](https://gnosisscan.io/address/0xdb2aeab529c035469e190310def9957ef0398ba8#code)
4243
- [Base](https://basescan.org/address/0x467665d4ae90e7a99c9c9af785791058426d6ea0#code)
4344
- Avalanche N/A
4445
- Polygon N/A
46+
- Lens N/A
47+
- BNB N/A
4548

4649
### Settling a custom order
4750

@@ -68,12 +71,14 @@ In that regard, CoW AMM orders behave exactly like normal trader orders.
6871
:::
6972

7073
You also need to compute:
74+
7175
- the order hash `hash` as defined in the library `GPv2Order`, and
7276
- the order signature
7377

7478
Example code that generates an order can be found in [the `order` function of the BCoWHelper contract](https://github.com/balancer/cow-amm/blob/04c915d1ef6150b5334f4b69c7af7ddd59e050e2/src/contracts/BCoWHelper.sol).
7579

7680
This order can be included in a batch as any other CoW Protocol orders with two extra conditions:
81+
7782
- One of the pre-interactions must set the commitment by calling `BCoWPool.commit(hash)`.
7883
- Must contain at most one order from the AMM in the same batch.
7984

@@ -83,15 +88,15 @@ Solvers using the non co-located driver should add a [`JitTrade`](https://github
8388

8489
:::
8590

86-
8791
### Surplus
8892

8993
The surplus for a CoW AMM order is measured the same way as other orders, by comparing the traded amounts to limit amounts.
9094

91-
When creating a CoW AMM order it is therefore encouraged to use the smallest possible limit amount which does not violate the invariant of the pool.
95+
When creating a CoW AMM order it is therefore encouraged to use the smallest possible limit amount which does not violate the invariant of the pool.
9296

9397
If we call `X` (resp. `Y`) the reserves of sell (resp. buy) token, and `x` (resp. `y`) the executed sell (resp. buy) amount, then the minimal buy amount is `x Y / (X - x)`
9498
and the order surplus with that choice for the limit amount is:
99+
95100
```
96101
x Y
97102
surplus = y - ----- .

docs/cow-protocol/reference/contracts/core/README.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ Take care when [signing](../core/signing-schemes), ensuring that the `EIP-712` d
4242

4343
| **Contracts** | **Address / Chains** |
4444
|---|---|
45-
| [`GPv2Settlement`](core/settlement)<br />Upgradeable: No ❎<br />[GitHub](https://github.com/cowprotocol/contracts/blob/main/src/contracts/GPv2Settlement.sol) | `0x9008D19f58AAbD9eD0D60971565AA8510560ab41`<br />- [Ethereum mainnet](https://etherscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br />- [Gnosis chain](https://gnosisscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Arbitrum one](https://arbiscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Base](https://basescan.org/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Avalanche](https://snowscan.xyz/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Polygon](https://polygonscan.com/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Sepolia](https://sepolia.etherscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code) |
46-
| [`GPv2AllowListAuthentication`](core/allowlist)<br />Upgradeable: Yes ⚠️<br />[GitHub](https://github.com/cowprotocol/contracts/blob/main/src/contracts/GPv2AllowListAuthentication.sol) | `0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE`<br />- [Ethereum mainnet](https://etherscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br />- [Gnosis chain](https://gnosisscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Arbitrum one](https://arbiscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Base](https://basescan.org/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Avalanche](https://snowscan.xyz/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Polygon](https://polygonscan.com/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Sepolia](https://sepolia.etherscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code) |
47-
| [`GPv2VaultRelayer`](core/vault-relayer)<br />Upgradeable: No ❎<br />[GitHub](https://github.com/cowprotocol/contracts/blob/main/src/contracts/GPv2VaultRelayer.sol) | `0xC92E8bdf79f0507f65a392b0ab4667716BFE0110`<br />- [Ethereum mainnet](https://etherscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br />- [Gnosis chain](https://gnosisscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Arbitrum one](https://arbiscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Base](https://basescan.org/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Avalanche](https://snowscan.xyz/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Polygon](https://polygonscan.com/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Sepolia](https://sepolia.etherscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code) |
45+
| [`GPv2Settlement`](core/settlement)<br />Upgradeable: No ❎<br />[GitHub](https://github.com/cowprotocol/contracts/blob/main/src/contracts/GPv2Settlement.sol) | `0x9008D19f58AAbD9eD0D60971565AA8510560ab41`<br />- [Ethereum mainnet](https://etherscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br />- [Gnosis chain](https://gnosisscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Arbitrum one](https://arbiscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Base](https://basescan.org/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Avalanche](https://snowscan.xyz/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Polygon](https://polygonscan.com/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Lens](https://explorer.lens.xyz/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41#contract)<br/>- [BNB](https://bscscan.com/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code)<br/>- [Sepolia](https://sepolia.etherscan.io/address/0x9008D19f58AAbD9eD0D60971565AA8510560ab41/#code) |
46+
| [`GPv2AllowListAuthentication`](core/allowlist)<br />Upgradeable: Yes ⚠️<br />[GitHub](https://github.com/cowprotocol/contracts/blob/main/src/contracts/GPv2AllowListAuthentication.sol) | `0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE`<br />- [Ethereum mainnet](https://etherscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br />- [Gnosis chain](https://gnosisscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Arbitrum one](https://arbiscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Base](https://basescan.org/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Avalanche](https://snowscan.xyz/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Polygon](https://polygonscan.com/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Lens](https://explorer.lens.xyz/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#contract)<br/>- [BNB](https://bscscan.com/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code)<br/>- [Sepolia](https://sepolia.etherscan.io/address/0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE/#code) |
47+
| [`GPv2VaultRelayer`](core/vault-relayer)<br />Upgradeable: No ❎<br />[GitHub](https://github.com/cowprotocol/contracts/blob/main/src/contracts/GPv2VaultRelayer.sol) | `0xC92E8bdf79f0507f65a392b0ab4667716BFE0110`<br />- [Ethereum mainnet](https://etherscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br />- [Gnosis chain](https://gnosisscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Arbitrum one](https://arbiscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Base](https://basescan.org/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Avalanche](https://snowscan.xyz/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Polygon](https://polygonscan.com/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Lens](https://explorer.lens.xyz/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110#contract)<br/>- [BNB](https://bscscan.com/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code)<br/>- [Sepolia](https://sepolia.etherscan.io/address/0xC92E8bdf79f0507f65a392b0ab4667716BFE0110/#code) |
4848

4949
<details close>
5050
<summary>Upgradeable allow-list</summary>

docs/cow-protocol/reference/contracts/periphery/README.mdx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ CoW Protocol contracts are generally deployed to the same addresses on their res
1919

2020
| Environment | Address | Networks |
2121
|-------------|---------|----------|
22-
| Production | `0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC` | [Mainnet](https://etherscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Gnosis chain](https://gnosisscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Arbitrum one](https://arbiscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Base](https://basescan.org/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Avalanche](https://snowscan.xyz/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Polygon](https://polygonscan.com/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Sepolia](https://sepolia.etherscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC) |
23-
| Staging | `0x04501b9b1D52e67f6862d157E00D13419D2D6E95` | [Mainnet](https://etherscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Gnosis chain](https://gnosisscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Arbitrum one](https://arbiscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Base](https://basescan.org/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Avalanche](https://snowscan.xyz/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Polygon](https://polygonscan.com/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Sepolia](https://sepolia.etherscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95) |
22+
| Production | `0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC` | [Mainnet](https://etherscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Gnosis chain](https://gnosisscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Arbitrum one](https://arbiscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Base](https://basescan.org/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Avalanche](https://snowscan.xyz/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Polygon](https://polygonscan.com/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Lens](https://explorer.lens.xyz/address/0x5A5b8aE7a0b4C0EAf453d10DCcfbA413f07ebdC2), [BNB](https://bscscan.com/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC), [Sepolia](https://sepolia.etherscan.io/address/0xbA3cB449bD2B4ADddBc894D8697F5170800EAdeC) |
23+
| Staging | `0x04501b9b1D52e67f6862d157E00D13419D2D6E95` | [Mainnet](https://etherscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Gnosis chain](https://gnosisscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Arbitrum one](https://arbiscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Base](https://basescan.org/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Avalanche](https://snowscan.xyz/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Polygon](https://polygonscan.com/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Lens](https://explorer.lens.xyz/address/0xFb337f8a725A142f65fb9ff4902d41cc901de222), [BNB](https://bscscan.com/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95), [Sepolia](https://sepolia.etherscan.io/address/0x04501b9b1D52e67f6862d157E00D13419D2D6E95) |
2424

2525
### HooksTrampoline
2626

@@ -47,9 +47,9 @@ You should not assume that the HooksTrampoline contract address will remain fixe
4747
[Arbitrum one](https://arbiscan.io/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
4848
[Avalanche](https://snowscan.xyz/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
4949
[Polygon](https://polygonscan.com/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
50-
[Binance](https://bscscan.com/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
50+
[Lens](https://explorer.lens.xyz/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
51+
[BNB](https://bscscan.com/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
5152
[Optimism](https://optimistic.etherscan.io/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006),
52-
[Lens](https://explorer.lens.xyz/address/0x60bf78233f48ec42ee3f101b9a05ec7878728006)
5353

5454
### ComposableCoW
5555

@@ -66,6 +66,8 @@ You should not assume that the HooksTrampoline contract address will remain fixe
6666
[Base](https://basescan.org/address/0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74),
6767
[Avalanche](https://snowscan.xyz/address/0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74),
6868
[Polygon](https://polygonscan.com/address/0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74),
69+
[Lens](https://explorer.lens.xyz/address/0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74),
70+
[BNB](https://bscscan.com/address/0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74),
6971
[Sepolia](https://sepolia.etherscan.io/address/0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74)
7072

7173
### CoWUidGenerator

0 commit comments

Comments
 (0)