From 8af9a295ba6529d3e6a919c8352f1ccc4af4130a Mon Sep 17 00:00:00 2001 From: "Jalil F." Date: Thu, 6 Feb 2025 13:46:22 -0500 Subject: [PATCH] Bugfix: Fix gauge (#280) * Separate CL pool Gauges. * Add transaction hash to all event entities. * Removing old Gauge contracts. --- config.yaml | 7 ++ schema.graphql | 82 ++++++++++++++++++- src/EventHandlers/ALM/Core.ts | 2 + src/EventHandlers/ALM/DeployFactory.ts | 2 + src/EventHandlers/ALM/LPWrapper.ts | 3 + src/EventHandlers/CLFactory.ts | 1 + src/EventHandlers/CLGauge.ts | 57 +++++++++++++ src/EventHandlers/CLPool.ts | 8 ++ src/EventHandlers/ERC20.ts | 1 + src/EventHandlers/Gauge.ts | 3 + src/EventHandlers/Pool.ts | 3 + src/EventHandlers/PoolFactory.ts | 1 + src/EventHandlers/SuperchainCLFactory.ts | 1 + src/EventHandlers/SuperchainPoolFactory.ts | 1 + src/EventHandlers/VeNFT.ts | 3 + .../Voter/SuperchainLeafVoter.ts | 4 + src/EventHandlers/Voter/Voter.ts | 8 +- src/EventHandlers/VotingReward.ts | 3 + test/Aggregators/VeNFTAggregator.test.ts | 3 + test/EventHandlers/VeNFT.test.ts | 3 + 20 files changed, 191 insertions(+), 5 deletions(-) create mode 100644 src/EventHandlers/CLGauge.ts diff --git a/config.yaml b/config.yaml index 02a2663..449522c 100644 --- a/config.yaml +++ b/config.yaml @@ -80,6 +80,13 @@ contracts: - event: Deposit(address indexed from, uint256 indexed tokenId, uint256 amount) - event: NotifyReward(address indexed from, address indexed reward, uint256 indexed epoch, uint256 amount) - event: Withdraw(address indexed from, uint256 indexed tokenId, uint256 amount) + - name: CLGauge + abi_file_path: abis/CLGauge.json + handler: src/EventHandlers/CLGauge.ts + events: + - event: NotifyReward + - event: Deposit + - event: Withdraw - name: Gauge abi_file_path: abis/Gauge.json handler: src/EventHandlers/Gauge.ts diff --git a/schema.graphql b/schema.graphql index 5dc6eab..bfa0332 100644 --- a/schema.graphql +++ b/schema.graphql @@ -116,6 +116,46 @@ type CLFactory_PoolCreated { pool: String! @index timestamp: Timestamp! blockNumber: Int! + transactionHash: String! + logIndex: Int! + chainId: Int! +} + +# Event for when a gauge is notified of a reward +type CLGauge_NotifyReward { + id: ID! + from: String! + amount: BigInt! @config(precision: 76) + sourceAddress: String! + timestamp: Timestamp! + blockNumber: Int! + transactionHash: String! + logIndex: Int! + chainId: Int! +} + +type CLGauge_Deposit { + id: ID! + tokenId: BigInt! @config(precision: 76) + user: String! + liquidityToStake: BigInt! @config(precision: 76) + sourceAddress: String! + timestamp: Timestamp! + blockNumber: Int! + transactionHash: String! + logIndex: Int! + chainId: Int! +} + +type CLGauge_Withdraw { + id: ID! + tokenId: BigInt! @config(precision: 76) + user: String! + liquidityToStake: BigInt! @config(precision: 76) + sourceAddress: String! + timestamp: Timestamp! + blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } @@ -128,6 +168,7 @@ type Gauge_NotifyReward { sourceAddress: String! timestamp: Timestamp! blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } @@ -141,6 +182,7 @@ type Gauge_Deposit { blockNumber: Int! logIndex: Int! chainId: Int! + transactionHash: String! } type Gauge_Withdraw { @@ -150,6 +192,7 @@ type Gauge_Withdraw { sourceAddress: String! timestamp: Timestamp! blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } @@ -165,6 +208,7 @@ type VotingReward_NotifyReward { sourceAddress: String! timestamp: Timestamp! blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } @@ -181,6 +225,7 @@ type Pool_Swap { sourceAddress: String! timestamp: Timestamp! blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } @@ -195,6 +240,7 @@ type Pool_Burn { amount1: BigInt! @config(precision: 76) timestamp: Timestamp! blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } @@ -219,17 +265,18 @@ type Pool_Sync { sourceAddress: String! timestamp: Timestamp! blockNumber: Int! + transactionHash: String! logIndex: Int! chainId: Int! } type NFPM_Transfer { id: ID! - transactionHash: String! from: String! to: String! tokenId: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -237,12 +284,12 @@ type NFPM_Transfer { type NFPM_IncreaseLiquidity { id: ID! - transactionHash: String! tokenId: BigInt! @config(precision: 76) liquidity: BigInt! @config(precision: 76) amount0: BigInt! @config(precision: 76) amount1: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -250,12 +297,12 @@ type NFPM_IncreaseLiquidity { type NFPM_DecreaseLiquidity { id: ID! - transactionHash: String! tokenId: BigInt! @config(precision: 76) liquidity: BigInt! @config(precision: 76) amount0: BigInt! @config(precision: 76) amount1: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -272,6 +319,7 @@ type VotingReward_Deposit { amount: BigInt! @config(precision: 76) sourceAddress: String! timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -284,6 +332,7 @@ type VotingReward_Withdraw { amount: BigInt! @config(precision: 76) sourceAddress: String! timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -297,6 +346,7 @@ type Voter_Voted { weight: BigInt! @config(precision: 76) totalWeight: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -310,6 +360,7 @@ type Voter_DistributeReward { amount: BigInt! @config(precision: 76) tokensDeposited: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -326,6 +377,7 @@ type Voter_GaugeCreated { gauge: String! creator: String! timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -336,6 +388,7 @@ type Voter_GaugeKilled { sender: String! gauge: String! timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -346,6 +399,7 @@ type PoolFactory_SetCustomFee { pool: String! fee: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -361,6 +415,7 @@ type CLPool_Burn { amount1: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -376,6 +431,7 @@ type CLPool_Collect { amount1: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -388,6 +444,7 @@ type CLPool_CollectFees { amount1: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -403,6 +460,7 @@ type CLPool_Flash { paid1: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -414,6 +472,7 @@ type CLPool_IncreaseObservationCardinalityNext { observationCardinalityNextNew: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -425,6 +484,7 @@ type CLPool_Initialize { tick: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -455,6 +515,7 @@ type CLPool_SetFeeProtocol { feeProtocol1New: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -471,6 +532,7 @@ type CLPool_Swap { tick: BigInt! @config(precision: 76) sourceAddress: String! @index timestamp: Timestamp! @index + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -483,6 +545,7 @@ type Voter_WhitelistToken { token: String! isWhitelisted: Boolean! timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -495,6 +558,7 @@ type SuperchainCLFactory_RootPoolCreated { tickSpacing: BigInt! @config(precision: 76) pool: String! @index timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! poolChainId: Int! @@ -508,6 +572,7 @@ type SuperchainPoolFactory_RootPoolCreated { stable: Boolean! pool: String! @index timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! poolChainId: Int! @@ -535,6 +600,7 @@ type VeNFT_Deposit { locktime: BigInt! @config(precision: 76) ts: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -547,6 +613,7 @@ type VeNFT_Withdraw { value: BigInt! @config(precision: 76) ts: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -558,6 +625,7 @@ type VeNFT_Transfer { to: String! tokenId: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! blockNumber: Int! logIndex: Int! chainId: Int! @@ -574,6 +642,7 @@ type ALMCore_Rebalance { ammPositionIdBefore: BigInt! @config(precision: 76) ammPositionIdAfter: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -589,6 +658,7 @@ type ALMCore_Rebalance_AmmPosition { tickUpper: BigInt! @config(precision: 24) liquidity: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -604,6 +674,7 @@ type ALMDeployFactory_StrategyCreated { width: BigInt! @config(precision: 24) maxLiquidityRatioDeviationX96: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -620,6 +691,7 @@ type ALMDeployFactory_StrategyCreated_AmmPosition { tickUpper: BigInt! @config(precision: 24) liquidity: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -635,6 +707,7 @@ type ALMLPWrapper_Deposit { lpAmount: BigInt! @config(precision: 76) totalSupply: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -650,6 +723,7 @@ type ALMLPWrapper_Withdraw { lpAmount: BigInt! @config(precision: 76) totalSupply: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -661,6 +735,7 @@ type ALMLPWrapper_Transfer { to: String! value: BigInt! @config(precision: 76) timestamp: Timestamp! + transactionHash: String! chainId: Int! blockNumber: Int! logIndex: Int! @@ -675,6 +750,7 @@ type ERC20_Transfer { chainId: Int! blockNumber: Int! logIndex: Int! + transactionHash: String! } type Dynamic_Fee_Swap_Module { diff --git a/src/EventHandlers/ALM/Core.ts b/src/EventHandlers/ALM/Core.ts index af31b14..76b569a 100644 --- a/src/EventHandlers/ALM/Core.ts +++ b/src/EventHandlers/ALM/Core.ts @@ -17,6 +17,7 @@ ALMCore.Rebalance.handler(async ({ event, context }) => { amount1, ammPositionIdBefore, ammPositionIdAfter, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, @@ -34,6 +35,7 @@ ALMCore.Rebalance.handler(async ({ event, context }) => { tickLower, tickUpper, liquidity, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, diff --git a/src/EventHandlers/ALM/DeployFactory.ts b/src/EventHandlers/ALM/DeployFactory.ts index 285b700..1da3c32 100644 --- a/src/EventHandlers/ALM/DeployFactory.ts +++ b/src/EventHandlers/ALM/DeployFactory.ts @@ -53,6 +53,7 @@ ALMDeployFactory.StrategyCreated.handler(async ({ event, context }) => { tickSpacing, width, maxLiquidityRatioDeviationX96, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, @@ -73,6 +74,7 @@ ALMDeployFactory.StrategyCreated.handler(async ({ event, context }) => { tickLower, tickUpper, liquidity, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, diff --git a/src/EventHandlers/ALM/LPWrapper.ts b/src/EventHandlers/ALM/LPWrapper.ts index 1814e80..bc8d332 100644 --- a/src/EventHandlers/ALM/LPWrapper.ts +++ b/src/EventHandlers/ALM/LPWrapper.ts @@ -25,6 +25,7 @@ ALMLPWrapper.Deposit.handler(async ({ event, context }) => { amount1, lpAmount, totalSupply, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, @@ -54,6 +55,7 @@ ALMLPWrapper.Withdraw.handler(async ({ event, context }) => { amount1, lpAmount, totalSupply, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, @@ -75,6 +77,7 @@ ALMLPWrapper.Transfer.handler(async ({ event, context }) => { from, to, value, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), chainId: event.chainId, blockNumber: event.block.number, diff --git a/src/EventHandlers/CLFactory.ts b/src/EventHandlers/CLFactory.ts index 0320c8b..aaab801 100644 --- a/src/EventHandlers/CLFactory.ts +++ b/src/EventHandlers/CLFactory.ts @@ -32,6 +32,7 @@ CLFactory.PoolCreated.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLFactory_PoolCreated.set(entity); diff --git a/src/EventHandlers/CLGauge.ts b/src/EventHandlers/CLGauge.ts new file mode 100644 index 0000000..8145618 --- /dev/null +++ b/src/EventHandlers/CLGauge.ts @@ -0,0 +1,57 @@ +import { + CLGauge, + CLGauge_NotifyReward, + CLGauge_Deposit, + CLGauge_Withdraw +} from "generated"; + +CLGauge.NotifyReward.handler(async ({ event, context }) => { + const entity: CLGauge_NotifyReward = { + id: `${event.chainId}_${event.block.number}_${event.logIndex}`, + from: event.params.from, + amount: event.params.amount, + timestamp: new Date(event.block.timestamp * 1000), + blockNumber: event.block.number, + logIndex: event.logIndex, + sourceAddress: event.srcAddress, + chainId: event.chainId, + transactionHash: event.transaction.hash + }; + + context.Gauge_NotifyReward.set(entity); +}); + +CLGauge.Deposit.handler(async ({ event, context }) => { + + const entity: CLGauge_Deposit = { + id: `${event.chainId}_${event.block.number}_${event.logIndex}`, + tokenId: event.params.tokenId, + user: event.params.user, + liquidityToStake: event.params.liquidityToStake, + timestamp: new Date(event.block.timestamp * 1000), + blockNumber: event.block.number, + logIndex: event.logIndex, + sourceAddress: event.srcAddress, + chainId: event.chainId, + transactionHash: event.transaction.hash + }; + + context.CLGauge_Deposit.set(entity); +}); + +CLGauge.Withdraw.handler(async ({ event, context }) => { + const entity: CLGauge_Withdraw = { + id: `${event.chainId}_${event.block.number}_${event.logIndex}`, + tokenId: event.params.tokenId, + user: event.params.user, + liquidityToStake: event.params.liquidityToStake, + timestamp: new Date(event.block.timestamp * 1000), + blockNumber: event.block.number, + logIndex: event.logIndex, + sourceAddress: event.srcAddress, + chainId: event.chainId, + transactionHash: event.transaction.hash + }; + + context.CLGauge_Withdraw.set(entity); +}); diff --git a/src/EventHandlers/CLPool.ts b/src/EventHandlers/CLPool.ts index 7f7abb5..a7e7502 100644 --- a/src/EventHandlers/CLPool.ts +++ b/src/EventHandlers/CLPool.ts @@ -201,6 +201,7 @@ CLPool.Burn.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_Burn.set(entity); @@ -240,6 +241,7 @@ CLPool.Collect.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_Collect.set(entity); @@ -303,6 +305,7 @@ CLPool.CollectFees.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_CollectFees.set(entity); @@ -361,6 +364,7 @@ CLPool.Flash.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_Flash.set(entity); @@ -377,6 +381,7 @@ CLPool.IncreaseObservationCardinalityNext.handler( blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_IncreaseObservationCardinalityNext.set(entity); @@ -393,6 +398,7 @@ CLPool.Initialize.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_Initialize.set(entity); @@ -475,6 +481,7 @@ CLPool.SetFeeProtocol.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_SetFeeProtocol.set(entity); @@ -513,6 +520,7 @@ CLPool.Swap.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.CLPool_Swap.set(entity); diff --git a/src/EventHandlers/ERC20.ts b/src/EventHandlers/ERC20.ts index f859c15..5db9bf1 100644 --- a/src/EventHandlers/ERC20.ts +++ b/src/EventHandlers/ERC20.ts @@ -10,6 +10,7 @@ ERC20.Transfer.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.ERC20_Transfer.set(entity); diff --git a/src/EventHandlers/Gauge.ts b/src/EventHandlers/Gauge.ts index c9dd0b0..bc31aab 100644 --- a/src/EventHandlers/Gauge.ts +++ b/src/EventHandlers/Gauge.ts @@ -15,6 +15,7 @@ Gauge.NotifyReward.handler(async ({ event, context }) => { logIndex: event.logIndex, sourceAddress: event.srcAddress, chainId: event.chainId, + transactionHash: event.transaction.hash }; console.log(entity); @@ -32,6 +33,7 @@ Gauge.Deposit.handler(async ({ event, context }) => { logIndex: event.logIndex, sourceAddress: event.srcAddress, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Gauge_Deposit.set(entity); @@ -47,6 +49,7 @@ Gauge.Withdraw.handler(async ({ event, context }) => { logIndex: event.logIndex, sourceAddress: event.srcAddress, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Gauge_Withdraw.set(entity); diff --git a/src/EventHandlers/Pool.ts b/src/EventHandlers/Pool.ts index 1b54d97..1606597 100644 --- a/src/EventHandlers/Pool.ts +++ b/src/EventHandlers/Pool.ts @@ -38,6 +38,7 @@ Pool.Burn.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Pool_Burn.set(entity); @@ -169,6 +170,7 @@ Pool.Swap.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Pool_Swap.set(entity); @@ -322,6 +324,7 @@ Pool.Sync.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Pool_Sync.set(entity); diff --git a/src/EventHandlers/PoolFactory.ts b/src/EventHandlers/PoolFactory.ts index 1ae69e5..ab99177 100644 --- a/src/EventHandlers/PoolFactory.ts +++ b/src/EventHandlers/PoolFactory.ts @@ -108,6 +108,7 @@ PoolFactory.SetCustomFee.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.PoolFactory_SetCustomFee.set(entity); diff --git a/src/EventHandlers/SuperchainCLFactory.ts b/src/EventHandlers/SuperchainCLFactory.ts index c914013..881e82b 100644 --- a/src/EventHandlers/SuperchainCLFactory.ts +++ b/src/EventHandlers/SuperchainCLFactory.ts @@ -13,6 +13,7 @@ SuperchainCLFactory.RootPoolCreated.handler(async ({ event, context }) => { tickSpacing: event.params.tickSpacing, blockNumber: event.block.number, logIndex: event.logIndex, + transactionHash: event.transaction.hash }; context.SuperchainCLFactory_RootPoolCreated.set(entity); diff --git a/src/EventHandlers/SuperchainPoolFactory.ts b/src/EventHandlers/SuperchainPoolFactory.ts index f81df86..594c012 100644 --- a/src/EventHandlers/SuperchainPoolFactory.ts +++ b/src/EventHandlers/SuperchainPoolFactory.ts @@ -37,6 +37,7 @@ SuperchainPoolFactory.RootPoolCreated.handlerWithLoader({ chainId: event.chainId, stable: event.params.stable, length: event.params.length, + transactionHash: event.transaction.hash }; if (loaderReturn) { diff --git a/src/EventHandlers/VeNFT.ts b/src/EventHandlers/VeNFT.ts index 800a7d4..00d80e1 100644 --- a/src/EventHandlers/VeNFT.ts +++ b/src/EventHandlers/VeNFT.ts @@ -32,6 +32,7 @@ VeNFT.Withdraw.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.VeNFT_Withdraw.set(entity_withdraw); @@ -65,6 +66,7 @@ VeNFT.Transfer.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.VeNFT_Transfer.set(entity_transfer); @@ -102,6 +104,7 @@ VeNFT.Deposit.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.VeNFT_Deposit.set(entity_deposit); diff --git a/src/EventHandlers/Voter/SuperchainLeafVoter.ts b/src/EventHandlers/Voter/SuperchainLeafVoter.ts index 642eefc..f840bc0 100644 --- a/src/EventHandlers/Voter/SuperchainLeafVoter.ts +++ b/src/EventHandlers/Voter/SuperchainLeafVoter.ts @@ -30,6 +30,7 @@ SuperchainLeafVoter.Voted.handler(async ({ event, context }) => { tokenId: event.params.tokenId, weight: event.params.weight, totalWeight: event.params.totalWeight, + transactionHash: event.transaction.hash, timestamp: new Date(event.block.timestamp * 1000), blockNumber: event.block.number, logIndex: event.logIndex, @@ -63,6 +64,7 @@ SuperchainLeafVoter.GaugeCreated.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Voter_GaugeCreated.set(entity); @@ -188,6 +190,7 @@ SuperchainLeafVoter.DistributeReward.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash, }; context.Voter_DistributeReward.set(entity); @@ -229,6 +232,7 @@ SuperchainLeafVoter.WhitelistToken.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash, }; context.Voter_WhitelistToken.set(entity); diff --git a/src/EventHandlers/Voter/Voter.ts b/src/EventHandlers/Voter/Voter.ts index 0640c0b..8020a85 100644 --- a/src/EventHandlers/Voter/Voter.ts +++ b/src/EventHandlers/Voter/Voter.ts @@ -31,6 +31,7 @@ Voter.Voted.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Voter_Voted.set(entity); @@ -40,7 +41,7 @@ Voter.GaugeCreated.contractRegister( ({ event, context }) => { context.addVotingReward(event.params.bribeVotingReward); context.addVotingReward(event.params.feeVotingReward); - context.addGauge(event.params.gauge); + context.addCLGauge(event.params.gauge); }, { preRegisterDynamicContracts: true } ); @@ -60,6 +61,7 @@ Voter.GaugeCreated.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Voter_GaugeCreated.set(entity); @@ -185,6 +187,7 @@ Voter.DistributeReward.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Voter_DistributeReward.set(entity); @@ -227,6 +230,7 @@ Voter.WhitelistToken.handlerWithLoader({ blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Voter_WhitelistToken.set(entity); @@ -275,8 +279,8 @@ Voter.GaugeKilled.handler(async ({ event, context }) => { blockNumber: event.block.number, logIndex: event.logIndex, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.Voter_GaugeKilled.set(entity); - }); diff --git a/src/EventHandlers/VotingReward.ts b/src/EventHandlers/VotingReward.ts index 30e851a..74221b3 100644 --- a/src/EventHandlers/VotingReward.ts +++ b/src/EventHandlers/VotingReward.ts @@ -53,6 +53,7 @@ VotingReward.NotifyReward.handlerWithLoader({ logIndex: event.logIndex, sourceAddress: event.srcAddress, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.VotingReward_NotifyReward.set(entity); @@ -126,6 +127,7 @@ VotingReward.Deposit.handler(async ({ event, context }) => { logIndex: event.logIndex, sourceAddress: event.srcAddress, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.VotingReward_Deposit.set(entity); @@ -142,6 +144,7 @@ VotingReward.Withdraw.handler(async ({ event, context }) => { logIndex: event.logIndex, sourceAddress: event.srcAddress, chainId: event.chainId, + transactionHash: event.transaction.hash }; context.VotingReward_Withdraw.set(entity); diff --git a/test/Aggregators/VeNFTAggregator.test.ts b/test/Aggregators/VeNFTAggregator.test.ts index 7bb3c24..f22b187 100644 --- a/test/Aggregators/VeNFTAggregator.test.ts +++ b/test/Aggregators/VeNFTAggregator.test.ts @@ -30,6 +30,7 @@ describe("VeNFTAggregator", () => { value: 100n, locktime: 100n, ts: 100n, + transactionHash: "0x1111111111111111111111111111111111111111", timestamp: new Date(), chainId: 10, tokenId: 1n, @@ -74,6 +75,7 @@ describe("VeNFTAggregator", () => { provider: "0x1111111111111111111111111111111111111111", value: 100n, ts: 100n, + transactionHash: "0x1111111111111111111111111111111111111111", timestamp: new Date(), blockNumber: 100, logIndex: 1, @@ -121,6 +123,7 @@ describe("VeNFTAggregator", () => { chainId: 10, blockNumber: 100, logIndex: 1, + transactionHash: "0x1111111111111111111111111111111111111111", }; describe("when the veNFT is not found", () => { let result: any; diff --git a/test/EventHandlers/VeNFT.test.ts b/test/EventHandlers/VeNFT.test.ts index fc7743c..ce3a446 100644 --- a/test/EventHandlers/VeNFT.test.ts +++ b/test/EventHandlers/VeNFT.test.ts @@ -62,6 +62,7 @@ describe("VeNFT Events", () => { expected.blockNumber = mockEvent.block.number; expected.logIndex = mockEvent.logIndex; expected.timestamp = new Date(mockEvent.block.timestamp * 1000); + expected.transactionHash = mockEvent.transaction.hash; }); afterEach(() => { stubVeNFTAggregator.restore(); @@ -120,6 +121,7 @@ describe("VeNFT Events", () => { expected.timestamp = new Date(mockEvent.block.timestamp * 1000); expected.blockNumber = mockEvent.block.number; expected.logIndex = mockEvent.logIndex; + expected.transactionHash = mockEvent.transaction.hash; }); afterEach(() => { stubVeNFTAggregator.restore(); @@ -184,6 +186,7 @@ describe("VeNFT Events", () => { expected.timestamp = new Date(mockEvent.block.timestamp * 1000); expected.blockNumber = mockEvent.block.number; expected.logIndex = mockEvent.logIndex; + expected.transactionHash = mockEvent.transaction.hash; }); afterEach(() => { stubVeNFTAggregator.restore();