Skip to content

Commit

Permalink
Fix getLog params
Browse files Browse the repository at this point in the history
  • Loading branch information
ajalalniya committed Sep 11, 2024
1 parent 1fcfeb9 commit 7f0e737
Showing 1 changed file with 56 additions and 16 deletions.
72 changes: 56 additions & 16 deletions src/adapters/crowdswap/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Chain } from "@defillama/sdk/build/general";
import { BridgeAdapter, PartialContractEventParams } from "../../helpers/bridgeAdapter.type";
import { constructTransferParams } from "../../helpers/eventParams";
import { getTxDataFromEVMEventLogs } from "../../helpers/processTransactions";


const gatewayAddresses = {
ethereum: "0x22715dfF101D33B2a14a4834f7C527902Bc42899",
bsc: "0x587AaA2150AD416bAD6b9919FDfF2D78BE11383B",
Expand All @@ -13,26 +13,66 @@ const gatewayAddresses = {
[chain: string]: string;
};

const nullAddress = "0x0000000000000000000000000000000000000000";

const constructParams = (chain: string) => {
let eventParams = [] as PartialContractEventParams[];
const addy = gatewayAddresses[chain];
let routerAddresses = {} as {
[chain: string]: string[];
};

const deposit = constructTransferParams(addy, true, {
excludeFrom: [addy, nullAddress],
excludeTo: [nullAddress],
includeTo: [addy],
});
const activeChains = ["ethereum", "bsc", "polygon", "optimism", "arbitrum"];

const withdraw = constructTransferParams(addy, false, {
excludeFrom: [nullAddress],
excludeTo: [nullAddress, addy],
includeFrom: [addy],
});
for(const chain of activeChains){
if(!routerAddresses[chain]){
routerAddresses[chain] = ["0x549D287218E5fc9D07A91Fe2e1337D5c21B808B2","0x30462a4863a3db9233006a87320a8e07c4a71a36"]
}
}


const constructParams = (chain: string) => {
let eventParams = [] as PartialContractEventParams[];
const routers = routerAddresses[chain];

eventParams.push(deposit, withdraw);
for (const router of Object.values(routers)) {
const deposit :PartialContractEventParams = {
target: router,
topic: "MessageSent(bytes32,uint256,uint256,uint256,address,address,uint64)",
abi: ["event MessageSent(bytes32 indexed messageId, uint256 sourceAmount, uint256 destinationAmount, uint256 destinationMinAmount, address sourceTokenAddress, address destinationTokenAddress, uint64 indexed destinationChainId)"],
isDeposit: true,
logKeys: {
blockNumber: "blockNumber",
txHash: "transactionHash",
},
argKeys: {
amount: "sourceAmount",
token: "sourceTokenAddress"
},
fixedEventData: {
to: gatewayAddresses[chain],
from: router,
},
};

const withdraw :PartialContractEventParams = {
target: router,
topic: "Sold(bytes32,address,uint256,uint256,address,uint256,uint256,address,uint256,uint256)",
abi: ["event Sold(bytes32 indexed messageId, address sourceTokenAddress, uint256 sourceAmount, uint256 usdValue, address crowdAddress, uint256 crowdAmount, uint256 crowdPrice, address tokenXAddress, uint256 tokenXAmount, uint256 tokenXPrice)"],
isDeposit: false, // event type
logKeys: {
blockNumber: "blockNumber",
txHash: "transactionHash",
},
argKeys: {
amount: "tokenXAmount",
token: "tokenXAddress",

},
fixedEventData: {
from: router,
to: gatewayAddresses[chain],
},
};

eventParams.push(deposit, withdraw);
}
return async (fromBlock: number, toBlock: number) =>
await getTxDataFromEVMEventLogs("crowdswap", chain as Chain, fromBlock, toBlock, eventParams);
};
Expand Down

0 comments on commit 7f0e737

Please sign in to comment.