From aa47ced4898176b07acf73f2fe689ade962ca81c Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Mon, 22 May 2023 17:24:47 +0300 Subject: [PATCH 1/4] chainport --- src/adapters/chainport/index.ts | 49 +++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/src/adapters/chainport/index.ts b/src/adapters/chainport/index.ts index b9a1aa0b..5a74b924 100644 --- a/src/adapters/chainport/index.ts +++ b/src/adapters/chainport/index.ts @@ -13,12 +13,30 @@ this function called in any other contracts. It's only called by 'Gameverse', ig */ const contractAddresses = { - ethereum: "0x763A0CA93AF05adE98A52dc1E5B936b89bF8b89a", - polygon: "0xF9ac9365A23D837F97078DaD50638a12c9E256C8", - fantom: "0x241663B6Ae912f2A5dFFDCb7a3550Bf60c0A5df5", - avax: "0x241663B6Ae912f2A5dFFDCb7a3550Bf60c0A5df5", - bsc: "0x5C80AE9c3396CA4394F9D8E6786Ed9aa74489afE", - aurora: "0xFB19ADD1db30A140915Da55222Ab5f968b32B900" + ethereum: { + "main_chain": "0x763a0ca93af05ade98a52dc1e5b936b89bf8b89a", + "side_chain": "0xd02c8a355599fee7e4f1d1d71f7a01c0108e353c" + }, + polygon: { + "main_chain": "0xc07cd7fcda887119bff8e1eed2256ad433bee125", + "side_chain": "0xf9ac9365a23d837f97078dad50638a12c9e256c8" + }, + fantom: { + "main_chain": "0xc30da5144d1b9f47ff86345fee14fe2da94c7203", + "side_chain": "0x241663b6ae912f2a5dffdcb7a3550bf60c0a5df5" + }, + avax: { + "main_chain": "0x927f5f422bafd00df2ae817945b6e8694ad2f852", + "side_chain": "0x241663b6ae912f2a5dffdcb7a3550bf60c0a5df5" + }, + bsc: { + "main_chain": "0x2cd90158baae285010a5ed7c549c2e5b4c0715f4", + "side_chain": "0x5c80ae9c3396ca4394f9d8e6786ed9aa74489afe" + }, + aurora: { + "main_chain": null, + "side_chain": "0xfb19add1db30a140915da55222ab5f968b32b900" + } } as { [chain: string]: any }; const burnDepositParams: PartialContractEventParams = { @@ -90,31 +108,32 @@ const withdrawalParams: PartialContractEventParams = { const constructParams = (chain: string) => { let eventParams = [] as any; - const chainAddress = contractAddresses[chain]; + const main_chain_address = contractAddresses[chain]["main_chain"]; + const side_chain_address = contractAddresses[chain]["side_chain"]; if (chain === "ethereum") { - const finalDepositParams = constructTransferParams(chainAddress, true); - const finalWithdrawalParams = constructTransferParams(chainAddress, false); + const finalDepositParams = constructTransferParams(main_chain_address, true); + const finalWithdrawalParams = constructTransferParams(main_chain_address, false); eventParams.push(finalDepositParams, finalWithdrawalParams); } else { const finalBurnDepositParams = { ...burnDepositParams, - target: chainAddress, + target: side_chain_address, fixedEventData: { - to: chainAddress, + to: side_chain_address, }, }; const finalTransferDepositParams = { ...transferDepositParams, - target: chainAddress, + target: side_chain_address, fixedEventData: { - to: chainAddress, + to: side_chain_address, }, }; const finalWithdrawalParams = { ...withdrawalParams, - target: chainAddress, + target: main_chain_address, fixedEventData: { - from: chainAddress, + from: main_chain_address, }, }; eventParams.push(finalBurnDepositParams, finalTransferDepositParams, finalWithdrawalParams); From 94b14007db45eb628de66ddc832750b9adb278cf Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Wed, 21 Jun 2023 18:11:15 +0300 Subject: [PATCH 2/4] update --- src/adapters/chainport/index.ts | 196 ++++++++++++++++++++++++++------ src/data/bridgeNetworkData.ts | 24 ++-- 2 files changed, 172 insertions(+), 48 deletions(-) diff --git a/src/adapters/chainport/index.ts b/src/adapters/chainport/index.ts index 5a74b924..d10176cc 100644 --- a/src/adapters/chainport/index.ts +++ b/src/adapters/chainport/index.ts @@ -1,7 +1,6 @@ import { BridgeAdapter, PartialContractEventParams } from "../../helpers/bridgeAdapter.type"; import { Chain } from "@defillama/sdk/build/general"; import { getTxDataFromEVMEventLogs } from "../../helpers/processTransactions"; -import { constructTransferParams } from "../../helpers/eventParams"; /* Appears that native tokens cannot be bridged. @@ -39,7 +38,54 @@ const contractAddresses = { } } as { [chain: string]: any }; -const burnDepositParams: PartialContractEventParams = { + +const depositParams: PartialContractEventParams = { + target: "", + topic: "TokensDeposited(address,address,uint256, uint256)", + abi: ["event TokensDeposited(address tokenAddress, address issuer, uint256 amount, uint256 networkId)"], + logKeys: { + blockNumber: "blockNumber", + txHash: "transactionHash", + }, + argKeys: { + token: "tokenAddress", + from: "issuer", + to: "issuer", + amount: "amount" + }, + txKeys: { + from: "from", + }, + fixedEventData: { + to: "", + }, + isDeposit: true, +}; + +const claimParams: PartialContractEventParams = { + target: "", + topic: "TokensDeposited(address,address, uint256)", + abi: ["event TokensClaimed(address tokenAddress, address issuer, uint256 amount)"], + logKeys: { + blockNumber: "blockNumber", + txHash: "transactionHash", + }, + argKeys: { + token: "tokenAddress", + from: "issuer", + to: "issuer", + amount: "amount" + }, + txKeys: { + from: "from", + }, + fixedEventData: { + to: "", + }, + isDeposit: false, +}; + +const burnParams: PartialContractEventParams = { target: "", topic: "TokensBurned(address,address,uint256)", abi: ["event TokensBurned(address tokenAddress, address issuer, uint256 amount)"], @@ -49,7 +95,9 @@ const burnDepositParams: PartialContractEventParams = { }, argKeys: { token: "tokenAddress", - amount: "amount", + from: "issuer", + to: "issuer", + amount: "amount" }, txKeys: { from: "from", @@ -57,10 +105,10 @@ const burnDepositParams: PartialContractEventParams = { fixedEventData: { to: "", }, - isDeposit: true, + isDeposit: false, }; -const transferDepositParams: PartialContractEventParams = { +const transferParams: PartialContractEventParams = { target: "", topic: "TokensTransferred(address,address,uint256,uint256)", abi: ["event TokensTransferred(address bridgeTokenAddress, address issuer, uint256 amount, uint256 networkId)"], @@ -69,8 +117,57 @@ const transferDepositParams: PartialContractEventParams = { txHash: "transactionHash", }, argKeys: { - token: "bridgeTokenAddress", - amount: "amount", + token: "tokenAddress", + from: "issuer", + to: "issuer", + amount: "amount" + }, + txKeys: { + from: "from", + }, + fixedEventData: { + to: "", + }, + isDeposit: false, +}; + +const nonEvmTransferParams: PartialContractEventParams = { + target: "", + topic: "NonEVMTokensTransferred(address,address,string,uint256,uint256)", + abi: ["event NonEVMTokensTransferred(address bridgeTokenAddress, address issuer, string receiverAddress, uint256 amount, uint256 networkId)"], + logKeys: { + blockNumber: "blockNumber", + txHash: "transactionHash", + }, + argKeys: { + token: "tokenAddress", + from: "issuer", + to: "receiverAddress", + amount: "amount" + }, + txKeys: { + from: "from", + }, + fixedEventData: { + to: "", + }, + isDeposit: false, +}; + + +const nonEvmDepositParams: PartialContractEventParams = { + target: "", + topic: "NonEVMTokensDeposited(address,address,string,uint256,uint256)", + abi: ["event NonEVMTokensDeposited(address bridgeTokenAddress, address issuer, string receiverAddress, uint256 amount, uint256 networkId)"], + logKeys: { + blockNumber: "blockNumber", + txHash: "transactionHash", + }, + argKeys: { + token: "tokenAddress", + from: "issuer", + to: "receiverAddress", + amount: "amount" }, txKeys: { from: "from", @@ -81,7 +178,8 @@ const transferDepositParams: PartialContractEventParams = { isDeposit: true, }; -const withdrawalParams: PartialContractEventParams = { + +const tokensMintedParams: PartialContractEventParams = { target: "", topic: "TokensMinted(address,address,uint256)", abi: ["event TokensMinted(address tokenAddress, address issuer, uint256 amount)"], @@ -91,7 +189,9 @@ const withdrawalParams: PartialContractEventParams = { }, argKeys: { token: "tokenAddress", - amount: "amount", + from: "issuer", + to: "issuer", + amount: "amount" }, inputDataExtraction: { inputDataABI: ["address", "address", "uint256", "uint256"], @@ -110,34 +210,58 @@ const constructParams = (chain: string) => { let eventParams = [] as any; const main_chain_address = contractAddresses[chain]["main_chain"]; const side_chain_address = contractAddresses[chain]["side_chain"]; - if (chain === "ethereum") { - const finalDepositParams = constructTransferParams(main_chain_address, true); - const finalWithdrawalParams = constructTransferParams(main_chain_address, false); - eventParams.push(finalDepositParams, finalWithdrawalParams); - } else { - const finalBurnDepositParams = { - ...burnDepositParams, - target: side_chain_address, - fixedEventData: { - to: side_chain_address, - }, - }; - const finalTransferDepositParams = { - ...transferDepositParams, - target: side_chain_address, - fixedEventData: { - to: side_chain_address, - }, - }; - const finalWithdrawalParams = { - ...withdrawalParams, - target: main_chain_address, - fixedEventData: { - from: main_chain_address, - }, - }; - eventParams.push(finalBurnDepositParams, finalTransferDepositParams, finalWithdrawalParams); + + const finalClaimParams = { + ...claimParams, + target: main_chain_address, + fixedEventData: { + to: main_chain_address, + }, + }; + const finalDepositParams = { + ...depositParams, + target: main_chain_address, + fixedEventData: { + to: main_chain_address, + }, + }; + const finalBurnParams = { + ...burnParams, + target: side_chain_address, + fixedEventData: { + to: side_chain_address, + }, + }; + const finalTransferParams = { + ...transferParams, + target: side_chain_address, + fixedEventData: { + to: side_chain_address, + }, + }; + const finalNonEvmTransferParams = { + ...nonEvmTransferParams, + target: side_chain_address, + fixedEventData: { + to: side_chain_address, + }, + } + const finalNonEvmDepositParams = { + ...nonEvmDepositParams, + target: main_chain_address, + fixedEventData: { + to: main_chain_address, + }, } + const finalTokensMintedParams = { + ...tokensMintedParams, + target: side_chain_address, + fixedEventData: { + from: side_chain_address, + }, + }; + eventParams.push(finalDepositParams, finalClaimParams, finalBurnParams, finalTransferParams, finalTokensMintedParams, finalNonEvmTransferParams, finalNonEvmDepositParams); + return async (fromBlock: number, toBlock: number) => getTxDataFromEVMEventLogs("chainport", chain as Chain, fromBlock, toBlock, eventParams); }; diff --git a/src/data/bridgeNetworkData.ts b/src/data/bridgeNetworkData.ts index 8484654d..b6e67308 100644 --- a/src/data/bridgeNetworkData.ts +++ b/src/data/bridgeNetworkData.ts @@ -108,18 +108,18 @@ export default [ // gnosis: "xdai", // }, // }, - // { - // id: 8, - // displayName: "ChainPort", - // bridgeDbName: "chainport", - // iconLink: "icons:chainport", - // largeTxThreshold: 10000, - // url: "", - // chains: ["Ethereum", "Polygon", "Fantom", "Avalanche", "Aurora", "BSC"], - // chainMapping: { - // avalanche: "avax", - // }, - // }, + { + id: 8, + displayName: "ChainPort", + bridgeDbName: "chainport", + iconLink: "icons:chainport", + largeTxThreshold: 10000, + url: "", + chains: ["Ethereum", "Polygon", "Fantom", "Avalanche", "Aurora", "BSC"], + chainMapping: { + avalanche: "avax", + }, + }, { id: 9, displayName: "Portal by Wormhole", From 676165a95773f116d9f2c337002f6d5bb0466687 Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Wed, 21 Jun 2023 18:25:12 +0300 Subject: [PATCH 3/4] fix --- src/adapters/symbiosis/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/adapters/symbiosis/index.ts b/src/adapters/symbiosis/index.ts index 3b1597c4..131def52 100644 --- a/src/adapters/symbiosis/index.ts +++ b/src/adapters/symbiosis/index.ts @@ -1,3 +1,4 @@ +import { Chain } from "@defillama/sdk/build/general"; import { BridgeAdapter, PartialContractEventParams } from "../../helpers/bridgeAdapter.type"; import { getTxDataFromEVMEventLogs } from "../../helpers/processTransactions"; @@ -116,7 +117,7 @@ const constructParams = (chain: SupportedChains) => { } return async (fromBlock: number, toBlock: number) => - getTxDataFromEVMEventLogs("symbiosis", chain, fromBlock, toBlock, eventParams); + getTxDataFromEVMEventLogs("symbiosis", chain as Chain, fromBlock, toBlock, eventParams); }; const adapter: BridgeAdapter = { From 505b544c079cdc8b1555242d326a4a30d164607e Mon Sep 17 00:00:00 2001 From: vrtnd Date: Fri, 4 Aug 2023 14:46:12 +0300 Subject: [PATCH 4/4] chainport --- src/adapters/chainport/index.ts | 2 +- src/utils/adapter.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/adapters/chainport/index.ts b/src/adapters/chainport/index.ts index d10176cc..ef001f04 100644 --- a/src/adapters/chainport/index.ts +++ b/src/adapters/chainport/index.ts @@ -117,7 +117,7 @@ const transferParams: PartialContractEventParams = { txHash: "transactionHash", }, argKeys: { - token: "tokenAddress", + token: "bridgeTokenAddress", from: "issuer", to: "issuer", amount: "amount" diff --git a/src/utils/adapter.ts b/src/utils/adapter.ts index 311ebfb4..c8dd03fd 100644 --- a/src/utils/adapter.ts +++ b/src/utils/adapter.ts @@ -497,9 +497,10 @@ export const runAdapterHistorical = async ( } } } + if (!from || !to) return; if ( - from.toLowerCase() === "0x0000000000000000000000000000000000000000" || - to.toLowerCase() === "0x0000000000000000000000000000000000000000" + from?.toLowerCase() === "0x0000000000000000000000000000000000000000" || + to?.toLowerCase() === "0x0000000000000000000000000000000000000000" ) return; await insertTransactionRow(