Skip to content

Commit b168d93

Browse files
authored
Merge pull request #96 from celer-network/update-celer-cctp
Add Celer CCTP
2 parents 4eaa785 + 5b22696 commit b168d93

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

src/adapters/celer/index.ts

+60
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ import { constructTransferParams } from "../../helpers/eventParams";
1010
0x7510792A3B1969F9307F3845CE88e39578f2bAE1 is OriginalTokenVaultV2
1111
0x16365b45EB269B5B5dACB34B4a15399Ec79b95eB is PeggedTokenBridge
1212
0x52E4f244f380f8fA51816c8a10A63105dd4De084 is PeggedTokenBridgeV2
13+
0x6065a982f04f759b7d2d042d2864e569fad84214 is CircleBridgeProxy
1314
1415
***Polygon***
1516
0x88DCDC47D2f83a99CF0000FDF667A468bB958a78 is Celer Network: cBridge (pool-based)
1617
0xc1a2D967DfAa6A10f3461bc21864C23C1DD51EeA is OriginalTokenVault
1718
0x4C882ec256823eE773B25b414d36F92ef58a7c0C is OriginalTokenVaultV2
1819
0x4d58FDC7d0Ee9b674F49a0ADE11F26C3c9426F7A is PeggedTokenBridge
1920
0xb51541df05DE07be38dcfc4a80c05389A54502BB is PeggedTokenBridgeV2
21+
0xB876cc05c3C3C8ECBA65dAc4CF69CaF871F2e0DD is CircleBridgeProxy
2022
2123
***Fantom***
2224
0x374B8a9f3eC5eB2D97ECA84Ea27aCa45aa1C57EF is Celer Network: cBridge (pool-based)
@@ -30,6 +32,7 @@ import { constructTransferParams } from "../../helpers/eventParams";
3032
0xb51541df05DE07be38dcfc4a80c05389A54502BB is OriginalTokenVaultV2
3133
0x88DCDC47D2f83a99CF0000FDF667A468bB958a78 is PeggedTokenBridge
3234
0xb774C6f82d1d5dBD36894762330809e512feD195 is PeggedTokenBridgeV2
35+
0x9744ae566c64B6B6f7F9A4dD50f7496Df6Fef990 is CircleBridgeProxy
3336
3437
***BSC***
3538
0xdd90E5E87A2081Dcf0391920868eBc2FFB81a1aF is Celer Network: cBridge 2.0 (pool-based)
@@ -43,11 +46,13 @@ import { constructTransferParams } from "../../helpers/eventParams";
4346
0xFe31bFc4f7C9b69246a6dc0087D91a91Cb040f76 is OriginalTokenVault
4447
0xEA4B1b0aa3C110c55f650d28159Ce4AD43a4a58b is OriginalTokenVaultV2
4548
0xbdd2739AE69A054895Be33A22b2D2ed71a1DE778 is PeggedTokenBridge
49+
0x054B95b60BFFACe948Fa4548DA8eE2e212fb7C0a is CircleBridgeProxy
4650
4751
***Optimism***
4852
0x9D39Fc627A6d9d9F8C831c16995b209548cc3401 is Celer Network: cBridge (pool-based)
4953
0xbCfeF6Bb4597e724D720735d32A9249E0640aA11 is OriginalTokenVault
5054
0x61f85fF2a2f4289Be4bb9B72Fc7010B3142B5f41 is PeggedTokenBridge
55+
0x697aC93c9263346c5Ad0412F9356D5789a3AA687 is CircleBridgeProxy
5156
5257
***Gnosis***
5358
0x3795C36e7D12A8c252A20C5a7B455f7c57b60283 is Celer Network: cBridge 2.0 (pool-based)
@@ -78,6 +83,9 @@ import { constructTransferParams } from "../../helpers/eventParams";
7883
7984
***Scroll***
8085
0x9B36f165baB9ebe611d491180418d8De4b8f3a1f is Celer Network: cBridge 2.0 (pool-based)
86+
87+
***Base***
88+
0x243b40e96c6bF21511E53d85c86F6Ec982f9a879 is CircleBridgeProxy
8189
*/
8290

8391
const contractAddresses = {
@@ -87,13 +95,15 @@ const contractAddresses = {
8795
vaultV2: ["0x7510792A3B1969F9307F3845CE88e39578f2bAE1"],
8896
peggedV1: ["0x16365b45EB269B5B5dACB34B4a15399Ec79b95eB"],
8997
peggedV2: ["0x52E4f244f380f8fA51816c8a10A63105dd4De084"],
98+
celerCCTP: ["0x6065a982f04f759b7d2d042d2864e569fad84214"],
9099
},
91100
polygon: {
92101
poolV1: ["0x88DCDC47D2f83a99CF0000FDF667A468bB958a78"],
93102
vaultV1: ["0xc1a2D967DfAa6A10f3461bc21864C23C1DD51EeA"],
94103
vaultV2: ["0x4C882ec256823eE773B25b414d36F92ef58a7c0C"],
95104
peggedV1: ["0x4d58FDC7d0Ee9b674F49a0ADE11F26C3c9426F7A"],
96105
peggedV2: ["0xb51541df05DE07be38dcfc4a80c05389A54502BB"],
106+
celerCCTP: ["0xB876cc05c3C3C8ECBA65dAc4CF69CaF871F2e0DD"],
97107
},
98108
fantom: {
99109
poolV1: ["0x374B8a9f3eC5eB2D97ECA84Ea27aCa45aa1C57EF"],
@@ -107,6 +117,7 @@ const contractAddresses = {
107117
vaultV2: ["0xb51541df05DE07be38dcfc4a80c05389A54502BB"],
108118
peggedV1: ["0x88DCDC47D2f83a99CF0000FDF667A468bB958a78"],
109119
peggedV2: ["0xb774C6f82d1d5dBD36894762330809e512feD195"],
120+
celerCCTP: ["0x9744ae566c64B6B6f7F9A4dD50f7496Df6Fef990"],
110121
},
111122
bsc: {
112123
poolV1: ["0xdd90E5E87A2081Dcf0391920868eBc2FFB81a1aF"],
@@ -120,11 +131,13 @@ const contractAddresses = {
120131
vaultV1: ["0xFe31bFc4f7C9b69246a6dc0087D91a91Cb040f76"],
121132
vaultV2: ["0xEA4B1b0aa3C110c55f650d28159Ce4AD43a4a58b"],
122133
peggedV1: ["0xbdd2739AE69A054895Be33A22b2D2ed71a1DE778"],
134+
celerCCTP: ["0x054B95b60BFFACe948Fa4548DA8eE2e212fb7C0a"],
123135
},
124136
optimism: {
125137
poolV1: ["0x9D39Fc627A6d9d9F8C831c16995b209548cc3401"],
126138
vaultV1: ["0xbCfeF6Bb4597e724D720735d32A9249E0640aA11"],
127139
peggedV1: ["0x61f85fF2a2f4289Be4bb9B72Fc7010B3142B5f41"],
140+
celerCCTP: ["0x697aC93c9263346c5Ad0412F9356D5789a3AA687"],
128141
},
129142
xdai: {
130143
poolV2: ["0x3795C36e7D12A8c252A20C5a7B455f7c57b60283"],
@@ -155,6 +168,9 @@ const contractAddresses = {
155168
},
156169
scroll: {
157170
poolV2: ["0x9B36f165baB9ebe611d491180418d8De4b8f3a1f"],
171+
},
172+
base: {
173+
celerCCTP: ["0x243b40e96c6bF21511E53d85c86F6Ec982f9a879"],
158174
}
159175
} as {
160176
[chain: string]: {
@@ -164,6 +180,7 @@ const contractAddresses = {
164180
vaultV2?: string[];
165181
peggedV1?: string[];
166182
peggedV2?: string[];
183+
celerCCTP?: string[];
167184
};
168185
};
169186

@@ -354,6 +371,36 @@ const peggedV2DepositParams: PartialContractEventParams = {
354371
isDeposit: true,
355372
};
356373

374+
// CCTP Deposit
375+
const cctpDepositParams: PartialContractEventParams = {
376+
target: "",
377+
topic: "Deposited(address,bytes32,uint64,uint256,uint256,uint256,uint64)",
378+
abi: [
379+
"event Deposited(address sender, bytes32 recipient, uint64 dstChid, uint256 amount, uint256 txFee, uint256 percFee, uint64 nonce)",
380+
],
381+
logKeys: {
382+
blockNumber: "blockNumber",
383+
txHash: "transactionHash",
384+
},
385+
argKeys: {
386+
amount: "amount",
387+
from: "sender",
388+
},
389+
fixedEventData: {
390+
to: "",
391+
},
392+
inputDataExtraction: {
393+
inputDataABI: [
394+
"function depositForBurn(uint256 _amount, uint64 _dstChid, bytes32 _mintRecipient, address _burnToken)",
395+
],
396+
inputDataFnName: "depositForBurn",
397+
inputDataKeys: {
398+
token: "_burnToken",
399+
},
400+
},
401+
isDeposit: true,
402+
};
403+
357404
// TODO: needs refactoring, obviously
358405
const constructParams = (chain: string) => {
359406
let eventParams = [] as any;
@@ -472,6 +519,18 @@ const constructParams = (chain: string) => {
472519
eventParams.push(finalPeggedWithdrawalParams, finalPeggedV2DepositParams);
473520
});
474521
}
522+
if (chainAddresses.celerCCTP) {
523+
chainAddresses.celerCCTP.map((address: string) => {
524+
const finalCCTPDepositParams = {
525+
...cctpDepositParams,
526+
target: address,
527+
fixedEventData: {
528+
to: address,
529+
},
530+
};
531+
eventParams.push(finalCCTPDepositParams);
532+
});
533+
}
475534
return async (fromBlock: number, toBlock: number) =>
476535
getTxDataFromEVMEventLogs("celer", chain as Chain, fromBlock, toBlock, eventParams);
477536
};
@@ -492,6 +551,7 @@ const adapter: BridgeAdapter = {
492551
polygon_zkevm: constructParams("polygon_zkevm"),
493552
linea: constructParams("linea"),
494553
scroll: constructParams("scroll"),
554+
base: constructParams("base"),
495555
};
496556

497557
export default adapter;

0 commit comments

Comments
 (0)