Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 20 additions & 18 deletions build/tools/contracts/uniswap-contracts.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Uniswap Contracts
description: Uniswap v4 and v3 contract addresses on Celo Mainnet and the Celo Sepolia Testnet
description: Uniswap v4 contract addresses on Celo Mainnet and Celo Sepolia, and v3 addresses on Celo Mainnet
id: uniswap-contracts
---

<Info>
The latest versions of Uniswap v4 and v3 contracts are deployed at the addresses listed below, on both Celo mainnet and the Celo Sepolia testnet. Integrators should no longer assume that they are deployed to the same addresses across chains and be extremely careful to confirm mappings below.
The latest versions of Uniswap v4 and v3 contracts are deployed at the addresses listed below. Uniswap v4 is on both Celo mainnet and the Celo Sepolia testnet; Uniswap v3 addresses are listed for Celo mainnet only. Integrators should no longer assume that they are deployed to the same addresses across chains and be extremely careful to confirm mappings below.
</Info>

## Uniswap V4 Contracts
Expand All @@ -30,19 +30,21 @@ Two test routers (`PoolSwapTest` at [0x42592B9fFA3be9351cf06EC499e28b88a4A99f50]

## Uniswap V3 Contracts

| Contract | CELO Address | Alfajores Address |
| ---------------------------------- | ------------------------------------------ |--------------------------------------------|
| UniswapV3Factory | [0xAfE208a311B21f13EF87E33A90049fC17A7acDEc](https://celoscan.io/address/0xAfE208a311B21f13EF87E33A90049fC17A7acDEc) | [0x229Fd76DA9062C1a10eb4193768E192bdEA99572](https://alfajores.celoscan.io/address/0x229Fd76DA9062C1a10eb4193768E192bdEA99572) |
| Multicall2 | [0x633987602DE5C4F337e3DbF265303A1080324204](https://celoscan.io/address/0x633987602DE5C4F337e3DbF265303A1080324204) | [0x692A12C7C167c44e54c3d381CA3EE91F058Dc404](https://alfajores.celoscan.io/address/0x692A12C7C167c44e54c3d381CA3EE91F058Dc404) |
| ProxyAdmin | [0xc1b262Dd7643D4B7cA9e51631bBd900a564BF49A](https://celoscan.io/address/0xc1b262Dd7643D4B7cA9e51631bBd900a564BF49A) | [0xE4d1eBb97Fe5fabFaBbB8C004C424EE12dE8A07d](https://alfajores.celoscan.io/address/0xE4d1eBb97Fe5fabFaBbB8C004C424EE12dE8A07d) |
| TickLens | [0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D](https://celoscan.io/address/0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D) | [0xFdACaEfB0f85C9BE9d319023453cC85C812d7e1E](https://alfajores.celoscan.io/address/0xFdACaEfB0f85C9BE9d319023453cC85C812d7e1E) |
| NFTDescriptor | [0xa9Fd765d85938D278cb0b108DbE4BF7186831186](https://celoscan.io/address/0xa9Fd765d85938D278cb0b108DbE4BF7186831186) | [0xE3da4F834D45b27AF95600e6546991dC3B50adAC](https://alfajores.celoscan.io/address/0xE3da4F834D45b27AF95600e6546991dC3B50adAC) |
| NonfungibleTokenPositionDescriptor | [0x644023b316bB65175C347DE903B60a756F6dd554](https://celoscan.io/address/0x644023b316bB65175C347DE903B60a756F6dd554) | [0xB00B8C3aB078EB0f7DeC6cE19c1a1da5bf4f8d7e](https://alfajores.celoscan.io/address/0xB00B8C3aB078EB0f7DeC6cE19c1a1da5bf4f8d7e) |
| TransparentUpgradeableProxy | [0x505B43c452AA4443e0a6B84bb37771494633Fde9](https://celoscan.io/address/0x505B43c452AA4443e0a6B84bb37771494633Fde9) | [0x9ddD6325FBE93A715B422883cED853CD843f217C](https://alfajores.celoscan.io/address/0x9ddD6325FBE93A715B422883cED853CD843f217C) |
| NonfungiblePositionManager | [0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A](https://celoscan.io/address/0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A) | [0x0eC9d3C06Bc0A472A80085244d897bb604548824](https://alfajores.celoscan.io/address/0x0eC9d3C06Bc0A472A80085244d897bb604548824) |
| V3Migrator | [0x3cFd4d48EDfDCC53D3f173F596f621064614C582](https://celoscan.io/address/0x3cFd4d48EDfDCC53D3f173F596f621064614C582) | [0x245d3F47F55c532dbE9340368855Be631B162cfd](https://alfajores.celoscan.io/address/0x245d3F47F55c532dbE9340368855Be631B162cfd) |
| QuoterV2 | [0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8](https://celoscan.io/address/0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8) | [0x3c1FCF8D6f3A579E98F4AE75EB0adA6de70f5673](https://alfajores.celoscan.io/address/0x3c1FCF8D6f3A579E98F4AE75EB0adA6de70f5673) |
| SwapRouter02 | [0x5615CDAb10dc425a742d643d949a7F474C01abc4](https://celoscan.io/address/0x5615CDAb10dc425a742d643d949a7F474C01abc4) | [0x8C456F41A3883bA0ba99f810F7A2Da54D9Ea3EF0](https://alfajores.celoscan.io/address/0x8C456F41A3883bA0ba99f810F7A2Da54D9Ea3EF0) |
| Permit2 | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://celoscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://alfajores.celoscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) |
| UniversalRouter | [0x643770E279d5D0733F21d6DC03A8efbABf3255B4](https://celoscan.io/address/0x643770E279d5D0733F21d6DC03A8efbABf3255B4) | [0x84904B9E85F76a421223565be7b596d7d9A8b8Ce](https://alfajores.celoscan.io/address/0x84904B9E85F76a421223565be7b596d7d9A8b8Ce) |
| v3StakerAddress | [0x6586FB35393abF7Ff454977a9b3c912d218791C6](https://celoscan.io/address/0x6586FB35393abF7Ff454977a9b3c912d218791C6) | [0x8AC47D3e65a3e6aD14596ee7d18ad1d1aA53208F](https://alfajores.celoscan.io/address/0x8AC47D3e65a3e6aD14596ee7d18ad1d1aA53208F) |
Uniswap v3 has no published Celo Sepolia deployment. To test against Uniswap on Celo Sepolia, use the v4 contracts above.

| Contract | CELO Address |
| ---------------------------------- | ------------------------------------------ |
| UniswapV3Factory | [0xAfE208a311B21f13EF87E33A90049fC17A7acDEc](https://celoscan.io/address/0xAfE208a311B21f13EF87E33A90049fC17A7acDEc) |
| Multicall2 | [0x633987602DE5C4F337e3DbF265303A1080324204](https://celoscan.io/address/0x633987602DE5C4F337e3DbF265303A1080324204) |
| ProxyAdmin | [0xc1b262Dd7643D4B7cA9e51631bBd900a564BF49A](https://celoscan.io/address/0xc1b262Dd7643D4B7cA9e51631bBd900a564BF49A) |
| TickLens | [0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D](https://celoscan.io/address/0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D) |
| NFTDescriptor | [0xa9Fd765d85938D278cb0b108DbE4BF7186831186](https://celoscan.io/address/0xa9Fd765d85938D278cb0b108DbE4BF7186831186) |
| NonfungibleTokenPositionDescriptor | [0x644023b316bB65175C347DE903B60a756F6dd554](https://celoscan.io/address/0x644023b316bB65175C347DE903B60a756F6dd554) |
| TransparentUpgradeableProxy | [0x505B43c452AA4443e0a6B84bb37771494633Fde9](https://celoscan.io/address/0x505B43c452AA4443e0a6B84bb37771494633Fde9) |
| NonfungiblePositionManager | [0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A](https://celoscan.io/address/0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A) |
| V3Migrator | [0x3cFd4d48EDfDCC53D3f173F596f621064614C582](https://celoscan.io/address/0x3cFd4d48EDfDCC53D3f173F596f621064614C582) |
| QuoterV2 | [0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8](https://celoscan.io/address/0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8) |
| SwapRouter02 | [0x5615CDAb10dc425a742d643d949a7F474C01abc4](https://celoscan.io/address/0x5615CDAb10dc425a742d643d949a7F474C01abc4) |
| Permit2 | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://celoscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) |
| UniversalRouter | [0x643770E279d5D0733F21d6DC03A8efbABf3255B4](https://celoscan.io/address/0x643770E279d5D0733F21d6DC03A8efbABf3255B4) |
| v3StakerAddress | [0x6586FB35393abF7Ff454977a9b3c912d218791C6](https://celoscan.io/address/0x6586FB35393abF7Ff454977a9b3c912d218791C6) |
33 changes: 23 additions & 10 deletions build/tools/libraries-sdks/contractkit/odis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,32 @@ const serviceContext: ServiceContext = {

The ODIS endpoint URL for each environment can be found here:

| Environment | Key |
| ----------------- | -------------------------------------------------------------------- |
| Alfajores Staging | https://us-central1-celo-phone-number-privacy-stg.cloudfunctions.net |
| Alfajores | https://us-central1-celo-phone-number-privacy.cloudfunctions.net |
| Mainnet | https://us-central1-celo-pgpnp-mainnet.cloudfunctions.net |
| Environment | URL |
| ------------ | ---------------------------------------------------------------- |
| Mainnet | https://odis-combiner-mainnet.rc1-europe-west1.celo-testnet.org |
| Celo Sepolia | https://odis-combiner.celo-sepolia.celo-testnet.org |

The ODIS public key for each environment can be found here:

| Environment | Key |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Alfajores Staging | 7FsWGsFnmVvRfMDpzz95Np76wf/1sPaK0Og9yiB+P8QbjiC8FV67NBans9hzZEkBaQMhiapzgMR6CkZIZPvgwQboAxl65JWRZecGe5V3XO4sdKeNemdAZ2TzQuWkuZoA |
| Alfajores | kPoRxWdEdZ/Nd3uQnp3FJFs54zuiS+ksqvOm9x8vY6KHPG8jrfqysvIRU0wtqYsBKA7SoAsICMBv8C/Fb2ZpDOqhSqvr/sZbZoHmQfvbqrzbtDIPvUIrHgRS0ydJCMsA |
| Mainnet | FvreHfLmhBjwxHxsxeyrcOLtSonC9j7K3WrS4QapYsQH6LdaDTaNGmnlQMfFY04Bp/K4wAvqQwO9/bqPVCKf8Ze8OZo8Frmog4JY4xAiwrsqOXxug11+htjEe1pj4uMA |
| Environment | Key |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| Mainnet | FvreHfLmhBjwxHxsxeyrcOLtSonC9j7K3WrS4QapYsQH6LdaDTaNGmnlQMfFY04Bp/K4wAvqQwO9/bqPVCKf8Ze8OZo8Frmog4JY4xAiwrsqOXxug11+htjEe1pj4uMA |
| Celo Sepolia | kPoRxWdEdZ/Nd3uQnp3FJFs54zuiS+ksqvOm9x8vY6KHPG8jrfqysvIRU0wtqYsBKA7SoAsICMBv8C/Fb2ZpDOqhSqvr/sZbZoHmQfvbqrzbtDIPvUIrHgRS0ydJCMsA |

`@celo/identity` 6.0.0-beta.0 and later ship both as ready-made contexts. The beta needs `viem` installed alongside it:

```bash
npm install @celo/identity@6.0.0-beta.0 viem
```

```ts
import { OdisUtils } from "@celo/identity";

const { getServiceContext, OdisContextName } = OdisUtils.Query;
const serviceContext = getServiceContext(OdisContextName.CELO_SEPOLIA); // or OdisContextName.MAINNET
```

Version 5.1.2 has no Celo Sepolia context, so build the `ServiceContext` from the values above.

## Query phone number identifier

Expand Down
2 changes: 1 addition & 1 deletion build/tools/libraries-sdks/contractkit/setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ You will need Node.js v18.x.

## Initializing the Kit

To start working with ContractKit you need a `kit` instance and a valid net to connect with. In this example will use `alfajores` (you can read more about it [here](/learn/network/overview))
To start working with ContractKit you need a `kit` instance and a valid net to connect with. In this example will use Celo Sepolia (you can read more about it [here](/learn/network/overview))

```ts
import Web3 from "web3";
Expand Down
14 changes: 9 additions & 5 deletions build/tools/libraries-sdks/portal/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -169,14 +169,18 @@ const portal = new Portal({
gatewayConfig: {
["eip155:1"]: "https://api.portalhq.io/rpc/v1/eip155/1",
["eip155:42220"]: "https://api.portalhq.io/rpc/v1/eip155/42220", // Celo Mainnet
["eip155:44787"]: "https://api.portalhq.io/rpc/v1/eip155/44787", // Celo Alfajores
["eip155:11142220"]: "https://api.portalhq.io/rpc/v1/eip155/11142220", // Celo Sepolia
},
});
```

</Tab>
</Tabs>

<Warning>
Portal's [chain list](https://docs.portalhq.io/resources/blockchain-support) does not yet name Celo Sepolia (`eip155:11142220`). Confirm support with Portal before relying on the Celo Sepolia examples on this page.
</Warning>

### Creating an MPC Wallet

To create a new MPC wallet, use the `portal.createWallet()` function. This will generate distributed MPC key shares, storing the user's signing share in the device's secure keychain.
Expand Down Expand Up @@ -228,7 +232,7 @@ After creating a wallet, you can fund it with test tokens using `portal.receiveT
<Tab title="Web">

```javascript
const chainId = "eip155:44787"; // Celo Alfajores
const chainId = "eip155:11142220"; // Celo Sepolia
const params = {
amount: "0.01", // You will receive 0.01 CELO
token: "NATIVE", // Token, use "NATIVE" for the chain's native token
Expand All @@ -242,7 +246,7 @@ console.log(`✅ Transaction hash: ${response.data.txHash}`);
<Tab title="iOS">

```swift
let chainId = "eip155:44787" // Celo Alfajores
let chainId = "eip155:11142220" // Celo Sepolia
let params = FundParams(
amount: "0.01", // You will receive 0.01 CELO
token: "NATIVE" // Token, use "NATIVE" for the chain's native token
Expand All @@ -256,7 +260,7 @@ print("✅ Transaction hash: \(response.data.txHash)")
<Tab title="Android">

```kotlin
val chainId = "eip155:44787" // Celo Alfajores
val chainId = "eip155:11142220" // Celo Sepolia
val params = FundParams(
amount = "0.01", // You will receive 0.01 CELO
token = "NATIVE" // Token, use "NATIVE" for the chain's native token
Expand All @@ -270,7 +274,7 @@ println("✅ Transaction hash: ${response.data.txHash}")
<Tab title="React Native">

```javascript
const chainId = "eip155:44787"; // Celo Alfajores
const chainId = "eip155:11142220"; // Celo Sepolia
const params = {
amount: "0.01", // You will receive 0.01 CELO
token: "NATIVE", // Token, use "NATIVE" for the chain's native token
Expand Down
Loading
Loading