Skip to content

Commit c1be303

Browse files
authored
Merge pull request #118 from sprintertech/chore-deploy-repayers-avx-bsc-linea
Deploy repayers to Avalanche, BSC, Linea
2 parents e09cc75 + 8edee92 commit c1be303

18 files changed

+337
-17
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ ARBITRUM_ONE_RPC=https://arbitrum-one.public.blastapi.io
3131
OP_MAINNET_RPC=https://optimism-mainnet.public.blastapi.io
3232
POLYGON_MAINNET_RPC=https://polygon-bor-rpc.publicnode.com
3333
UNICHAIN_RPC=https://mainnet.unichain.org
34+
AVALANCHE_RPC=https://avalanche-c-chain-rpc.publicnode.com
35+
BSC_RPC=https://bsc-mainnet.public.blastapi.io
36+
LINEA_RPC=https://linea-rpc.publicnode.com
3437

3538
# Etherscan now uses a single API key for all chains.
3639
ETHERSCAN_API_KEY=

contracts/interfaces/IRoute.sol

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ interface IRoute {
1616
ARBITRUM_SEPOLIA,
1717
BASE_SEPOLIA,
1818
POLYGON_AMOY,
19-
UNICHAIN
19+
UNICHAIN,
20+
BSC,
21+
LINEA
2022
}
2123

2224
enum Provider {

contracts/utils/AdapterHelper.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ abstract contract AdapterHelper is IRoute {
2424
} else
2525
if (destinationDomain == Domain.POLYGON_MAINNET) {
2626
return 137;
27+
} else
28+
if (destinationDomain == Domain.BSC) {
29+
return 56;
30+
} else
31+
if (destinationDomain == Domain.LINEA) {
32+
return 59144;
2733
} else {
2834
revert UnsupportedDomain();
2935
}

contracts/utils/CCTPAdapter.sol

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ abstract contract CCTPAdapter is AdapterHelper {
1818
address cctpTokenMessenger,
1919
address cctpMessageTransmitter
2020
) {
21-
require(cctpTokenMessenger != address(0), ZeroAddress());
22-
require(cctpMessageTransmitter != address(0), ZeroAddress());
21+
// No check for address(0) to allow deployment on chains where CCTP V1 is not available
2322
CCTP_TOKEN_MESSENGER = ICCTPTokenMessenger(cctpTokenMessenger);
2423
CCTP_MESSAGE_TRANSMITTER = ICCTPMessageTransmitter(cctpMessageTransmitter);
2524
}

contracts/utils/StargateAdapter.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ abstract contract StargateAdapter is AdapterHelper {
5555
} else
5656
if (destinationDomain == Domain.UNICHAIN) {
5757
return 30320;
58+
} else
59+
if (destinationDomain == Domain.BSC) {
60+
return 30102;
61+
} else
62+
if (destinationDomain == Domain.LINEA) {
63+
return 30183;
5864
} else {
5965
revert UnsupportedDomain();
6066
}

deployments/deploy-avalanche.log

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
Deployment ID: MVP
2+
Deploying Repayer
3+
Using config for: AVALANCHE
4+
Repayer: 0x36364Acc7B9c67692CA215af09A41CBd10439511
5+
RepayerProxyAdmin: 0x2B5D04eF6b3279bCdA4B219b02FAF627dA1664CB
6+
RepayerRoutes:
7+
┌─────────┬──────────────────────────────────────────────┬────────────────┬─────────────┬───────────────────┐
8+
│ (index) │ Pool │ Domain │ Provider │ SupportsAllTokens │
9+
├─────────┼──────────────────────────────────────────────┼────────────────┼─────────────┼───────────────────┤
10+
│ 0 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'CCTP' │ true │
11+
│ 1 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'EVERCLEAR' │ true │
12+
│ 2 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'STARGATE' │ true │
13+
│ 3 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'CCTP' │ true │
14+
│ 4 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'EVERCLEAR' │ true │
15+
│ 5 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'STARGATE' │ true │
16+
│ 6 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'CCTP' │ true │
17+
│ 7 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'EVERCLEAR' │ true │
18+
│ 8 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'STARGATE' │ true │
19+
│ 9 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'CCTP' │ false │
20+
│ 10 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'CCTP' │ false │
21+
│ 11 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'CCTP' │ false │
22+
│ 12 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'CCTP' │ false │
23+
│ 13 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'CCTP' │ true │
24+
│ 14 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'EVERCLEAR' │ true │
25+
│ 15 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'STARGATE' │ true │
26+
│ 16 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'UNICHAIN' │ 'CCTP' │ true │
27+
│ 17 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'UNICHAIN' │ 'EVERCLEAR' │ true │
28+
│ 18 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'UNICHAIN' │ 'STARGATE' │ true │
29+
│ 19 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'CCTP' │ true │
30+
│ 20 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'EVERCLEAR' │ true │
31+
│ 21 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'STARGATE' │ true │
32+
└─────────┴──────────────────────────────────────────────┴────────────────┴─────────────┴───────────────────┘

deployments/deploy-bsc.log

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Deployment ID: MVP
2+
Deploying Repayer
3+
Using config for: BSC
4+
Repayer: 0x36364Acc7B9c67692CA215af09A41CBd10439511
5+
RepayerProxyAdmin: 0x2B5D04eF6b3279bCdA4B219b02FAF627dA1664CB
6+
RepayerRoutes:
7+
┌─────────┬──────────────────────────────────────────────┬────────────────┬─────────────┬───────────────────┐
8+
│ (index) │ Pool │ Domain │ Provider │ SupportsAllTokens │
9+
├─────────┼──────────────────────────────────────────────┼────────────────┼─────────────┼───────────────────┤
10+
│ 0 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'ACROSS' │ true │
11+
│ 1 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'EVERCLEAR' │ true │
12+
│ 2 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'STARGATE' │ true │
13+
│ 3 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'ACROSS' │ true │
14+
│ 4 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'EVERCLEAR' │ true │
15+
│ 5 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'STARGATE' │ true │
16+
│ 6 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'ACROSS' │ true │
17+
│ 7 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'EVERCLEAR' │ true │
18+
│ 8 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'STARGATE' │ true │
19+
│ 9 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'ACROSS' │ false │
20+
│ 10 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'EVERCLEAR' │ false │
21+
│ 11 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'STARGATE' │ false │
22+
│ 12 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'ACROSS' │ false │
23+
│ 13 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'EVERCLEAR' │ false │
24+
│ 14 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'STARGATE' │ false │
25+
│ 15 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'ACROSS' │ false │
26+
│ 16 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'EVERCLEAR' │ false │
27+
│ 17 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'STARGATE' │ false │
28+
│ 18 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'ACROSS' │ false │
29+
│ 19 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'EVERCLEAR' │ false │
30+
│ 20 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'STARGATE' │ false │
31+
│ 21 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'ACROSS' │ true │
32+
│ 22 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'EVERCLEAR' │ true │
33+
│ 23 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'STARGATE' │ true │
34+
│ 24 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'EVERCLEAR' │ true │
35+
│ 25 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'STARGATE' │ true │
36+
└─────────┴──────────────────────────────────────────────┴────────────────┴─────────────┴───────────────────┘

deployments/deploy-linea.log

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Deployment ID: MVP
2+
Deploying Repayer
3+
Using config for: LINEA
4+
Repayer: 0x36364Acc7B9c67692CA215af09A41CBd10439511
5+
RepayerProxyAdmin: 0x2B5D04eF6b3279bCdA4B219b02FAF627dA1664CB
6+
RepayerRoutes:
7+
┌─────────┬──────────────────────────────────────────────┬────────────────┬─────────────┬───────────────────┐
8+
│ (index) │ Pool │ Domain │ Provider │ SupportsAllTokens │
9+
├─────────┼──────────────────────────────────────────────┼────────────────┼─────────────┼───────────────────┤
10+
│ 0 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'ACROSS' │ true │
11+
│ 1 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'EVERCLEAR' │ true │
12+
│ 2 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'ARBITRUM_ONE' │ 'STARGATE' │ true │
13+
│ 3 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'ACROSS' │ true │
14+
│ 4 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'EVERCLEAR' │ true │
15+
│ 5 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'BASE' │ 'STARGATE' │ true │
16+
│ 6 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'ACROSS' │ true │
17+
│ 7 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'EVERCLEAR' │ true │
18+
│ 8 │ '0x7C255279c098fdF6c3116D2BecD9978002c09f4b' │ 'OP_MAINNET' │ 'STARGATE' │ true │
19+
│ 9 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'ACROSS' │ false │
20+
│ 10 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'EVERCLEAR' │ false │
21+
│ 11 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ARBITRUM_ONE' │ 'STARGATE' │ false │
22+
│ 12 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'ACROSS' │ false │
23+
│ 13 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'EVERCLEAR' │ false │
24+
│ 14 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'BASE' │ 'STARGATE' │ false │
25+
│ 15 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'ACROSS' │ false │
26+
│ 16 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'EVERCLEAR' │ false │
27+
│ 17 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'ETHEREUM' │ 'STARGATE' │ false │
28+
│ 18 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'ACROSS' │ false │
29+
│ 19 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'EVERCLEAR' │ false │
30+
│ 20 │ '0xB58Bb9643884abbbad64FA7eBc874c5481E5c032' │ 'OP_MAINNET' │ 'STARGATE' │ false │
31+
│ 21 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'ACROSS' │ true │
32+
│ 22 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'EVERCLEAR' │ true │
33+
│ 23 │ '0x2781650E1d76b56b3BCD9836e4d16E04c86d3D07' │ 'ETHEREUM' │ 'STARGATE' │ true │
34+
│ 24 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'EVERCLEAR' │ true │
35+
│ 25 │ '0x5E8da448f3F7290cA355BbF7EF9F323ab8fDE422' │ 'ETHEREUM' │ 'STARGATE' │ true │
36+
└─────────┴──────────────────────────────────────────────┴────────────────┴─────────────┴───────────────────┘

deployments/deployments.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,24 @@ eip155:130:
6262
USDC: "0x078D782b760474a361dDA0AF3839290b0EF57AD6"
6363
Rebalancer: "0xA85Cf46c150db2600b1D03E437bedD5513869888"
6464
Repayer: "0x36364Acc7B9c67692CA215af09A41CBd10439511"
65+
66+
eip155:43114:
67+
deployment id: MVP
68+
name: AVALANCHE
69+
env: prod
70+
USDC: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"
71+
Repayer: "0x36364Acc7B9c67692CA215af09A41CBd10439511"
72+
73+
eip155:56:
74+
deployment id: MVP
75+
name: BSC
76+
env: prod
77+
USDC: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"
78+
Repayer: "0x36364Acc7B9c67692CA215af09A41CBd10439511"
79+
80+
eip155:59144:
81+
deployment id: MVP
82+
name: LINEA
83+
env: prod
84+
USDC: "0x176211869cA2b568f2A7D4EE941E073a821EE1ff"
85+
Repayer: "0x36364Acc7B9c67692CA215af09A41CBd10439511"

hardhat.config.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,11 @@ const config: HardhatUserConfig = {
560560
localhost: {
561561
url: "http://127.0.0.1:8545/",
562562
},
563+
[Network.AVALANCHE]: {
564+
chainId: networkConfig.AVALANCHE.ChainId,
565+
url: process.env.AVALANCHE_RPC || "https://avalanche-c-chain-rpc.publicnode.com",
566+
accounts,
567+
},
563568
[Network.BASE_SEPOLIA]: {
564569
chainId: networkConfig.BASE_SEPOLIA.ChainId,
565570
url: process.env.BASE_SEPOLIA_RPC || "https://sepolia.base.org",
@@ -610,6 +615,16 @@ const config: HardhatUserConfig = {
610615
url: process.env.UNICHAIN_RPC || "https://mainnet.unichain.org",
611616
accounts,
612617
},
618+
[Network.BSC]: {
619+
chainId: networkConfig.BSC.ChainId,
620+
url: process.env.BSC_RPC || "https://bsc-mainnet.public.blastapi.io",
621+
accounts,
622+
},
623+
[Network.LINEA]: {
624+
chainId: networkConfig.LINEA.ChainId,
625+
url: process.env.LINEA_RPC || "https://linea-rpc.publicnode.com",
626+
accounts,
627+
},
613628
hardhat: {
614629
forking: {
615630
url: isSet(process.env.DRY_RUN) || isSet(process.env.FORK_TEST)
@@ -647,6 +662,14 @@ const config: HardhatUserConfig = {
647662
browserURL: "https://uniscan.xyz"
648663
},
649664
},
665+
{
666+
network: "linea",
667+
chainId: networkConfig.LINEA.ChainId,
668+
urls: {
669+
apiURL: "https://api.etherscan.io/v2/api",
670+
browserURL: "https://lineascan.build/"
671+
},
672+
},
650673
],
651674
},
652675
warnings: {

0 commit comments

Comments
 (0)