From 1d976d77aba0022169ea8f1043d1489200c31600 Mon Sep 17 00:00:00 2001 From: ponyjackal Date: Fri, 29 Mar 2024 09:13:00 -0700 Subject: [PATCH 1/4] feat: add degen chain --- src/helpers/constants.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/helpers/constants.ts b/src/helpers/constants.ts index 0ba84dab..b8136348 100644 --- a/src/helpers/constants.ts +++ b/src/helpers/constants.ts @@ -35,6 +35,7 @@ export const CHAIN_IDS = { zora: 7777777, zora_goerli: 999, zora_sepolia: 999999999, + degen: 666666666, }; export const FORKS = { From 06891ae84e02c3e5b27904971bf7754edf647ed4 Mon Sep 17 00:00:00 2001 From: ponyjackal Date: Fri, 29 Mar 2024 10:01:10 -0700 Subject: [PATCH 2/4] feat: add degen --- src/helpers/constants.ts | 5 +++++ src/helpers/utils.ts | 36 ++++++++++++++++++++---------------- src/types/asset.ts | 2 ++ src/types/context.ts | 4 ++-- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/helpers/constants.ts b/src/helpers/constants.ts index b8136348..52021e3f 100644 --- a/src/helpers/constants.ts +++ b/src/helpers/constants.ts @@ -38,6 +38,11 @@ export const CHAIN_IDS = { degen: 666666666, }; +export const NATIVE_TOKENS = { + 666666666: 'degen', + 1: 'eth', +}; + export const FORKS = { frontier: 0, // July 30, 2015: https://ethereum.org/en/history/#frontier frontier_thawing: 200000, // September 7, 2015: https://ethereum.org/en/history/#frontier-thawing diff --git a/src/helpers/utils.ts b/src/helpers/utils.ts index 20fbab04..983ceb93 100644 --- a/src/helpers/utils.ts +++ b/src/helpers/utils.ts @@ -14,7 +14,9 @@ import { AssetType, RawBlock, StdObj, + NativeTokenType, } from '../types'; +import { NATIVE_TOKENS } from './constants'; const VALID_CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.? '; @@ -127,23 +129,20 @@ function formatSection(section: ContextSummaryVariableType) { const varContext = section; const unit = varContext['unit']; - if (varContext?.type === AssetType.ETH) - return `${formatEther(BigInt(varContext?.value))}${unit ? ` ETH` : ''}`; - - if (varContext?.type === AssetType.ERC721) { - return `${varContext.token}${ - varContext['tokenId'] ? ` #${varContext['tokenId']}` : '' - }`; - } - - if (varContext?.type === 'erc1155') { - return `${varContext.value} ${varContext.token} #${varContext.tokenId}`; + switch (varContext?.type) { + case AssetType.ETH: + return `${formatEther(BigInt(varContext?.value))}${unit ? ` ETH` : ''}`; + case AssetType.ERC721: + return `${varContext.token}${ + varContext['tokenId'] ? ` #${varContext['tokenId']}` : '' + }`; + case AssetType.ERC1155: + return `${varContext.value} ${varContext.token} #${varContext.tokenId}`; + case AssetType.ERC20: + return `${varContext.value} ${varContext.token}`; + default: + return `${varContext.value}${unit ? ` ${unit}` : ''}`; } - - if (varContext?.type === 'erc20') - return `${varContext.value} ${varContext.token}`; - - return `${varContext.value}${unit ? ` ${unit}` : ''}`; } export const makeContextualize = ( @@ -322,3 +321,8 @@ export function decodeEVMAddress(addressString: string): string { const address = '0x' + buf.toString('hex', 12, 32); // grab the last 20 bytes return address.toLocaleLowerCase(); } + +export const formatNativeToken = (chainId: number): NativeTokenType => { + const nativeToken = NATIVE_TOKENS[chainId] ?? 'eth'; + return nativeToken; +}; diff --git a/src/types/asset.ts b/src/types/asset.ts index 2b2a0d86..8ac8a3a3 100644 --- a/src/types/asset.ts +++ b/src/types/asset.ts @@ -6,6 +6,8 @@ export enum AssetType { ERC1155 = 'erc1155', } +export type NativeTokenType = 'eth' | 'degen'; + export type ETHAsset = { type: AssetType.ETH; value: string; diff --git a/src/types/context.ts b/src/types/context.ts index 009725be..729aa02d 100644 --- a/src/types/context.ts +++ b/src/types/context.ts @@ -1,5 +1,5 @@ import { ContextAction } from './contextAction'; -import { AssetType } from './asset'; +import { AssetType, NativeTokenType } from './asset'; export type ContextStringType = { type: 'string'; @@ -62,7 +62,7 @@ export type ContextERC1155Type = { }; export type ContextETHType = { - type: AssetType.ETH; + type: NativeTokenType; value: string; indexed?: boolean; emphasis?: boolean; From d65fee67f07dc41381c3bb76b3b79849ca5c52cb Mon Sep 17 00:00:00 2001 From: ponyjackal Date: Fri, 29 Mar 2024 10:10:52 -0700 Subject: [PATCH 3/4] feat: update degen for native asset --- .../bridges/opStack/destination.ts | 3 ++- src/contextualizers/bridges/opStack/source.ts | 4 ++-- .../bridges/reservoir/destination.ts | 3 ++- .../heuristics/erc1155Mint/erc1155Mint.ts | 3 ++- .../erc1155Purchase/erc1155Purchase.ts | 3 ++- .../heuristics/erc1155Sale/erc1155Sale.ts | 3 ++- .../heuristics/erc20Mint/erc20Mint.ts | 3 ++- .../heuristics/erc721Mint/erc721Mint.ts | 3 ++- .../erc721Purchase/erc721Purchase.ts | 3 ++- .../heuristics/erc721Sale/erc721Sale.ts | 3 ++- .../heuristics/ethTransfer/ethTransfer.ts | 7 +++++-- .../protocol/basepaint/basepaint.ts | 7 +++++-- .../protocol/cryptopunks/cryptopunks.ts | 18 +++++++++++------- .../protocol/disperse/disperse.ts | 7 +++++-- .../protocol/farcaster/bundler.ts | 11 +++++++---- .../protocol/friendTech/friendTech.ts | 15 ++++++++++----- src/contextualizers/protocol/leeroy/leeroy.ts | 8 ++++---- .../protocol/nouns/auctionHouse.ts | 11 +++++++---- .../protocol/nounsBuilder/auction.ts | 11 ++++++++--- .../superchainFaucet/superchainFaucet.ts | 5 +++-- .../protocol/uniswapV2/uniswapV2Router.ts | 9 +++++++-- src/contextualizers/protocol/weth/weth.ts | 7 +++++-- .../protocol/zoraCreator/zoraCreator.ts | 6 +++--- 23 files changed, 100 insertions(+), 53 deletions(-) diff --git a/src/contextualizers/bridges/opStack/destination.ts b/src/contextualizers/bridges/opStack/destination.ts index 701124a3..2c64ddb0 100644 --- a/src/contextualizers/bridges/opStack/destination.ts +++ b/src/contextualizers/bridges/opStack/destination.ts @@ -1,3 +1,4 @@ +import { formatNativeToken } from '../../../helpers/utils'; import { Transaction, AssetType, @@ -41,7 +42,7 @@ export function generate(transaction: Transaction): Transaction { switch (assetTransfer.type) { case AssetType.ETH: asset = { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: assetTransfer.value, unit: 'wei', } as ContextETHType; diff --git a/src/contextualizers/bridges/opStack/source.ts b/src/contextualizers/bridges/opStack/source.ts index 1bebbdf8..da0abe5e 100644 --- a/src/contextualizers/bridges/opStack/source.ts +++ b/src/contextualizers/bridges/opStack/source.ts @@ -17,7 +17,7 @@ import { TRANSACTION_DEPOSITED_EVENT_ABI, TRANSACTION_DEPOSITED_EVENT_HASH, } from './constants'; -import { decodeLog } from '../../../helpers/utils'; +import { decodeLog, formatNativeToken } from '../../../helpers/utils'; export function contextualize(transaction: Transaction): Transaction { const isOpStack = detect(transaction); @@ -69,7 +69,7 @@ export function generate(transaction: Transaction): Transaction { switch (assetTransfer.type) { case AssetType.ETH: asset = { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: assetTransfer.value, unit: 'wei', } as ContextETHType; diff --git a/src/contextualizers/bridges/reservoir/destination.ts b/src/contextualizers/bridges/reservoir/destination.ts index b2bd1950..20d12b07 100644 --- a/src/contextualizers/bridges/reservoir/destination.ts +++ b/src/contextualizers/bridges/reservoir/destination.ts @@ -1,3 +1,4 @@ +import { formatNativeToken } from '../../../helpers/utils'; import { Transaction, AssetType, ETHAsset } from '../../../types'; import { BRIDGE_ZORA_ENERGY } from './constants'; @@ -70,7 +71,7 @@ export function generate(transaction: Transaction): Transaction { value: 'BRIDGED', }, asset: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: assetTransfer.value, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts b/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts index bd92f5c2..98a26561 100644 --- a/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts +++ b/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts @@ -5,6 +5,7 @@ import { ERC1155AssetTransfer, } from '../../../types'; import { KNOWN_ADDRESSES } from '../../../helpers/constants'; +import { formatNativeToken } from '../../../helpers/utils'; export function contextualize(transaction: Transaction): Transaction { const isTokenMint = detect(transaction); @@ -112,7 +113,7 @@ export function generate(transaction: Transaction): Transaction { }, minted: { type: 'contextAction', value: 'MINTED' }, price: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: price, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts b/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts index 00418252..98e29cf4 100644 --- a/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts +++ b/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts @@ -1,3 +1,4 @@ +import { formatNativeToken } from '../../../helpers/utils'; import { AssetType, ERC1155Asset, @@ -185,7 +186,7 @@ function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts b/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts index 37d068c1..e7726bc3 100644 --- a/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts +++ b/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts @@ -1,3 +1,4 @@ +import { formatNativeToken } from '../../../helpers/utils'; import { AssetType, ERC1155Asset, @@ -159,7 +160,7 @@ function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts b/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts index 405153c2..fb3cd2bc 100644 --- a/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts +++ b/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts @@ -5,6 +5,7 @@ import { ERC20AssetTransfer, } from '../../../types'; import { KNOWN_ADDRESSES, WETH_ADDRESSES } from '../../../helpers/constants'; +import { formatNativeToken } from '../../../helpers/utils'; export function contextualize(transaction: Transaction): Transaction { const isTokenMint = detect(transaction); @@ -115,7 +116,7 @@ export function generate(transaction: Transaction): Transaction { value: recipient, }, price: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: price, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts b/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts index 85295e7c..f38271b9 100644 --- a/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts +++ b/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts @@ -5,6 +5,7 @@ import { Transaction, } from '../../../types'; import { KNOWN_ADDRESSES } from '../../../helpers/constants'; +import { formatNativeToken } from '../../../helpers/utils'; export function contextualize(transaction: Transaction): Transaction { const isTokenMint = detect(transaction); @@ -100,7 +101,7 @@ export function generate(transaction: Transaction): Transaction { value: sender, }, price: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: price, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts b/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts index 4066fa14..d3ec96ef 100644 --- a/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts +++ b/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts @@ -1,3 +1,4 @@ +import { formatNativeToken } from '../../../helpers/utils'; import { AssetType, ERC20Asset, @@ -176,7 +177,7 @@ export function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts b/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts index 531aeb23..57be8437 100644 --- a/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts +++ b/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts @@ -1,3 +1,4 @@ +import { formatNativeToken } from '../../../helpers/utils'; import { AssetType, ERC20Asset, @@ -168,7 +169,7 @@ export function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts b/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts index 26d855b9..ea593edf 100644 --- a/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts +++ b/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts @@ -1,4 +1,5 @@ -import { AssetType, Transaction } from '../../../types'; +import { formatNativeToken } from '../../../helpers/utils'; +import { Transaction } from '../../../types'; export function contextualize(transaction: Transaction): Transaction { const isEthTransfer = detect(transaction); @@ -26,6 +27,8 @@ export function generate(transaction: Transaction): Transaction { return transaction; } + const chainId = transaction.chainId ?? 1; + transaction.context = { variables: { sender: { @@ -34,7 +37,7 @@ export function generate(transaction: Transaction): Transaction { }, amount: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/basepaint/basepaint.ts b/src/contextualizers/protocol/basepaint/basepaint.ts index 8213ffda..f200ce1b 100644 --- a/src/contextualizers/protocol/basepaint/basepaint.ts +++ b/src/contextualizers/protocol/basepaint/basepaint.ts @@ -7,7 +7,10 @@ import { Transaction, } from '../../../types'; import { BASEPAINT_CONTRACT, BRUSHES_CONTRACT, ABIs } from './constants'; -import { decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isBasepaint = detect(transaction); @@ -118,7 +121,7 @@ export const generate = (transaction: Transaction): Transaction => { value: transaction.from, }, amount: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value, unit: 'wei', }, diff --git a/src/contextualizers/protocol/cryptopunks/cryptopunks.ts b/src/contextualizers/protocol/cryptopunks/cryptopunks.ts index 67d98542..65855d24 100644 --- a/src/contextualizers/protocol/cryptopunks/cryptopunks.ts +++ b/src/contextualizers/protocol/cryptopunks/cryptopunks.ts @@ -6,7 +6,10 @@ import { Transaction, } from '../../../types'; import { CryptopunksContracts, CRYPTOPUNK_ABIS } from './constants'; -import { decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isENS = detect(transaction); @@ -60,6 +63,7 @@ export const generate = (transaction: Transaction): Transaction => { ) { return transaction; } + const chainId = transaction.chainId ?? 1; const decoded = decodeTransactionInput( transaction.input as Hex, @@ -128,7 +132,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: decoded.args[1].toString(), unit: 'wei', }; @@ -188,7 +192,7 @@ export const generate = (transaction: Transaction): Transaction => { if (!ethAssetTransfer) return transaction; const price: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: ethAssetTransfer.value, unit: 'wei', }; @@ -244,7 +248,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }; @@ -297,7 +301,7 @@ export const generate = (transaction: Transaction): Transaction => { const ethAssetTransfer = transaction .assetTransfers?.[0] as ETHAssetTransfer; const amount: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: ethAssetTransfer.value, unit: 'wei', }; @@ -351,7 +355,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }; @@ -526,7 +530,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: decoded.args[1].toString(), unit: 'wei', }; diff --git a/src/contextualizers/protocol/disperse/disperse.ts b/src/contextualizers/protocol/disperse/disperse.ts index 82121657..0970dc54 100644 --- a/src/contextualizers/protocol/disperse/disperse.ts +++ b/src/contextualizers/protocol/disperse/disperse.ts @@ -5,7 +5,10 @@ import { DISPERSE_CONTRACTS, TIP_FEE_RECEIVER, } from './constants'; -import { decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isEnjoy = detect(transaction); @@ -86,7 +89,7 @@ export const generate = (transaction: Transaction): Transaction => { value: tipTransfer.to, }, numOfEth: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: tipTransfer.value, unit: 'wei', }, diff --git a/src/contextualizers/protocol/farcaster/bundler.ts b/src/contextualizers/protocol/farcaster/bundler.ts index 8adbb4c4..52d4018f 100644 --- a/src/contextualizers/protocol/farcaster/bundler.ts +++ b/src/contextualizers/protocol/farcaster/bundler.ts @@ -1,12 +1,15 @@ import { Hex } from 'viem'; import { - AssetType, ContextSummaryVariableType, EventLogTopics, Transaction, } from '../../../types'; import { FarcasterContracts } from './constants'; -import { decodeTransactionInput, decodeLog } from '../../../helpers/utils'; +import { + decodeTransactionInput, + decodeLog, + formatNativeToken, +} from '../../../helpers/utils'; // Contextualizer for the Bundler contract: // https://github.com/farcasterxyz/contracts/blob/main/src/interfaces/IBundler.sol @@ -48,10 +51,10 @@ export const generate = (transaction: Transaction): Transaction => { case 'register': { const owner = decoded.args[0].to; const callerIsOwner = owner.toLowerCase() === caller.toLowerCase(); - + const chainId = transaction.chainId ?? 1; // Capture cost to register const cost: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }; diff --git a/src/contextualizers/protocol/friendTech/friendTech.ts b/src/contextualizers/protocol/friendTech/friendTech.ts index c211e348..5ca92df7 100644 --- a/src/contextualizers/protocol/friendTech/friendTech.ts +++ b/src/contextualizers/protocol/friendTech/friendTech.ts @@ -1,7 +1,11 @@ import { Hex } from 'viem'; -import { AssetType, EventLogTopics, Transaction } from '../../../types'; +import { EventLogTopics, Transaction } from '../../../types'; import { ABIs } from './constants'; -import { decodeTransactionInput, decodeLog } from '../../../helpers/utils'; +import { + decodeTransactionInput, + decodeLog, + formatNativeToken, +} from '../../../helpers/utils'; import { detect } from './detect'; export const contextualize = (transaction: Transaction): Transaction => { @@ -13,6 +17,7 @@ export const contextualize = (transaction: Transaction): Transaction => { // Contextualize for txs export const generate = (transaction: Transaction): Transaction => { + const chainId = transaction.chainId ?? 1; // Failed transaction if (!transaction.receipt?.status) { // buyShares(address sharesSubject, uint256 amount) @@ -28,7 +33,7 @@ export const generate = (transaction: Transaction): Transaction => { transaction.context = { variables: { price: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }, @@ -109,7 +114,7 @@ export const generate = (transaction: Transaction): Transaction => { transaction.context = { variables: { price: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: ethAmount, unit: 'wei', }, @@ -169,7 +174,7 @@ export const generate = (transaction: Transaction): Transaction => { transaction.context = { variables: { price: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: ethAmount, unit: 'wei', }, diff --git a/src/contextualizers/protocol/leeroy/leeroy.ts b/src/contextualizers/protocol/leeroy/leeroy.ts index 43a1a3eb..fae3d87f 100644 --- a/src/contextualizers/protocol/leeroy/leeroy.ts +++ b/src/contextualizers/protocol/leeroy/leeroy.ts @@ -1,12 +1,11 @@ import { Hex, toBytes } from 'viem'; import { - AssetType, ContextSummaryVariableType, ETHAsset, Transaction, } from '../../../types'; import { LeeroyContracts } from './constants'; -import { decodeFunction } from '../../../helpers/utils'; +import { decodeFunction, formatNativeToken } from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isLeeroy = detect(transaction); @@ -45,6 +44,7 @@ export const detect = (transaction: Transaction): boolean => { // Contextualize for mined txs export const generate = (transaction: Transaction): Transaction => { + const chainId = transaction.chainId ?? 1; switch (transaction.sigHash) { case '0x8ee93cf3': { // post(string) @@ -214,7 +214,7 @@ export const generate = (transaction: Transaction): Transaction => { value: transaction.from, }; const tipAmount: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }; @@ -232,7 +232,7 @@ export const generate = (transaction: Transaction): Transaction => { const asset = transaction.netAssetTransfers[transaction.to] .received[0] as ETHAsset; const leeroyTake: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: asset.value, unit: 'wei', }; diff --git a/src/contextualizers/protocol/nouns/auctionHouse.ts b/src/contextualizers/protocol/nouns/auctionHouse.ts index ce7c33c3..d742dbb8 100644 --- a/src/contextualizers/protocol/nouns/auctionHouse.ts +++ b/src/contextualizers/protocol/nouns/auctionHouse.ts @@ -1,7 +1,11 @@ import { Hex } from 'viem'; import { AssetType, EventLogTopics, Transaction } from '../../../types'; import { NounsContracts, ABIs } from './constants'; -import { decodeLog, decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeLog, + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isNouns = detect(transaction); @@ -45,14 +49,13 @@ export const generate = (transaction: Transaction): Transaction => { if (transaction.to !== NounsContracts.AuctionHouse) { return transaction; } - const decoded = decodeTransactionInput( transaction.input as Hex, ABIs.NounsAuctionHouse, ); - if (!decoded) return transaction; + const chainId = transaction.chainId ?? 1; switch (decoded.functionName) { case 'createBid': { transaction.context = { @@ -71,7 +74,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }, amount: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/nounsBuilder/auction.ts b/src/contextualizers/protocol/nounsBuilder/auction.ts index 286a8e01..310373ef 100644 --- a/src/contextualizers/protocol/nounsBuilder/auction.ts +++ b/src/contextualizers/protocol/nounsBuilder/auction.ts @@ -7,7 +7,11 @@ import { } from '../../../types'; import { ABIs, NOUNS_BUILDER_INSTANCES } from './constants'; import { NounsContracts } from '../nouns/constants'; -import { decodeLog, decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeLog, + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; const daoByAuctionAuctionHouseContract = (address: string) => { return NOUNS_BUILDER_INSTANCES.find((v) => v.auctionHouse === address); @@ -57,9 +61,10 @@ export const generate = (transaction: Transaction): Transaction => { transaction.input as Hex, ABIs.IAuction, ); - if (!decoded) return transaction; + const chainId = transaction.chainId ?? 1; + switch (decoded.functionName) { case 'createBid': { const variables: ContextVariable = { @@ -76,7 +81,7 @@ export const generate = (transaction: Transaction): Transaction => { value: decoded.args[0].toString(), }, amount: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts b/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts index c2fd7f84..dff5c159 100644 --- a/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts +++ b/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts @@ -1,4 +1,5 @@ -import { AssetType, ETHAssetTransfer, Transaction } from '../../../types'; +import { formatNativeToken } from '../../../helpers/utils'; +import { ETHAssetTransfer, Transaction } from '../../../types'; export function contextualize(transaction: Transaction): Transaction { const isSuperchainFaucetTransaction = detect(transaction); @@ -35,7 +36,7 @@ export function generate(transaction: Transaction): Transaction { value: ethTransfer.to, }, amount: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: ethTransfer.value, unit: 'wei', }, diff --git a/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts b/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts index d18497f2..c79f01ed 100644 --- a/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts +++ b/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts @@ -2,7 +2,10 @@ import { Hex } from 'viem'; import { AssetType, Transaction } from '../../../types'; import { ENJOY_CONTRACT_ADDRESS, UNISWAP_V2_ROUTERS } from './constants'; import { UNISWAP_V2_ROUTER_ABI } from './constants'; -import { decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isEnjoy = detect(transaction); @@ -48,6 +51,8 @@ export const generate = (transaction: Transaction): Transaction => { ); if (!decoded) return transaction; + const chainId = transaction.chainId ?? 1; + switch (decoded.functionName) { case 'addLiquidityETH': { transaction.context = { @@ -61,7 +66,7 @@ export const generate = (transaction: Transaction): Transaction => { value: 'ADDED_LIQUIDITY', }, numETH: { - type: AssetType.ETH, + type: formatNativeToken(chainId), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/weth/weth.ts b/src/contextualizers/protocol/weth/weth.ts index ae831c3a..ca9a7869 100644 --- a/src/contextualizers/protocol/weth/weth.ts +++ b/src/contextualizers/protocol/weth/weth.ts @@ -6,7 +6,10 @@ import { } from '../../../types'; import { WETH_ADDRESSES } from '../../../helpers/constants'; import { WETH_ABI } from './constants'; -import { decodeTransactionInput } from '../../../helpers/utils'; +import { + decodeTransactionInput, + formatNativeToken, +} from '../../../helpers/utils'; export const contextualize = (transaction: Transaction): Transaction => { const isWeth = detect(transaction); @@ -79,7 +82,7 @@ export const generate = (transaction: Transaction): Transaction => { value: transaction.from, }; const withdrawalAmount: ContextSummaryVariableType = { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: decode.args ? decode.args[0].toString() : '0', unit: 'wei', }; diff --git a/src/contextualizers/protocol/zoraCreator/zoraCreator.ts b/src/contextualizers/protocol/zoraCreator/zoraCreator.ts index c78cbc18..992dd698 100644 --- a/src/contextualizers/protocol/zoraCreator/zoraCreator.ts +++ b/src/contextualizers/protocol/zoraCreator/zoraCreator.ts @@ -12,7 +12,7 @@ import { PROTOCOL_REWARDS_CONTRACT, REWARDS_DEPOSIT_TOPIC, } from './constants'; -import { decodeLog } from '../../../helpers/utils'; +import { decodeLog, formatNativeToken } from '../../../helpers/utils'; import { KNOWN_ADDRESSES } from '../../../helpers/constants'; export const contextualize = (transaction: Transaction): Transaction => { @@ -96,13 +96,13 @@ export const generate = (transaction: Transaction): Transaction => { value: sender, }, price: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: price, unit: 'wei', }, minted: { type: 'contextAction', value: 'MINTED' }, numOfEth: { - type: AssetType.ETH, + type: formatNativeToken(transaction.chainId), value: decodedLog.args['mintReferralReward'].toString(), unit: 'wei', }, From 10bb0a6674ce1b35fb79ef073dd91444aa59ad1a Mon Sep 17 00:00:00 2001 From: ponyjackal Date: Mon, 1 Apr 2024 20:04:53 -0700 Subject: [PATCH 4/4] fix: transaction chainId --- src/contextualizers/bridges/opStack/destination.ts | 2 +- src/contextualizers/bridges/opStack/source.ts | 2 +- .../bridges/reservoir/destination.ts | 2 +- .../heuristics/erc1155Mint/erc1155Mint.ts | 2 +- .../heuristics/erc1155Purchase/erc1155Purchase.ts | 2 +- .../heuristics/erc1155Sale/erc1155Sale.ts | 2 +- .../heuristics/erc20Mint/erc20Mint.ts | 2 +- .../heuristics/erc721Mint/erc721Mint.ts | 2 +- .../heuristics/erc721Purchase/erc721Purchase.ts | 2 +- .../heuristics/erc721Sale/erc721Sale.ts | 2 +- .../heuristics/ethTransfer/ethTransfer.ts | 4 +--- src/contextualizers/protocol/basepaint/basepaint.ts | 2 +- .../protocol/cryptopunks/cryptopunks.ts | 13 ++++++------- src/contextualizers/protocol/disperse/disperse.ts | 2 +- src/contextualizers/protocol/farcaster/bundler.ts | 3 +-- .../protocol/friendTech/friendTech.ts | 7 +++---- src/contextualizers/protocol/leeroy/leeroy.ts | 5 ++--- src/contextualizers/protocol/nouns/auctionHouse.ts | 3 +-- .../protocol/nounsBuilder/auction.ts | 4 +--- .../protocol/superchainFaucet/superchainFaucet.ts | 2 +- .../protocol/uniswapV2/uniswapV2Router.ts | 4 +--- src/contextualizers/protocol/weth/weth.ts | 2 +- .../protocol/zoraCreator/zoraCreator.ts | 4 ++-- 23 files changed, 32 insertions(+), 43 deletions(-) diff --git a/src/contextualizers/bridges/opStack/destination.ts b/src/contextualizers/bridges/opStack/destination.ts index 2c64ddb0..8a0d5345 100644 --- a/src/contextualizers/bridges/opStack/destination.ts +++ b/src/contextualizers/bridges/opStack/destination.ts @@ -42,7 +42,7 @@ export function generate(transaction: Transaction): Transaction { switch (assetTransfer.type) { case AssetType.ETH: asset = { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: assetTransfer.value, unit: 'wei', } as ContextETHType; diff --git a/src/contextualizers/bridges/opStack/source.ts b/src/contextualizers/bridges/opStack/source.ts index da0abe5e..f346625a 100644 --- a/src/contextualizers/bridges/opStack/source.ts +++ b/src/contextualizers/bridges/opStack/source.ts @@ -69,7 +69,7 @@ export function generate(transaction: Transaction): Transaction { switch (assetTransfer.type) { case AssetType.ETH: asset = { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: assetTransfer.value, unit: 'wei', } as ContextETHType; diff --git a/src/contextualizers/bridges/reservoir/destination.ts b/src/contextualizers/bridges/reservoir/destination.ts index 20d12b07..04b5ec5e 100644 --- a/src/contextualizers/bridges/reservoir/destination.ts +++ b/src/contextualizers/bridges/reservoir/destination.ts @@ -71,7 +71,7 @@ export function generate(transaction: Transaction): Transaction { value: 'BRIDGED', }, asset: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: assetTransfer.value, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts b/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts index 98a26561..b782ca7a 100644 --- a/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts +++ b/src/contextualizers/heuristics/erc1155Mint/erc1155Mint.ts @@ -113,7 +113,7 @@ export function generate(transaction: Transaction): Transaction { }, minted: { type: 'contextAction', value: 'MINTED' }, price: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: price, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts b/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts index 98e29cf4..4f4c0f74 100644 --- a/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts +++ b/src/contextualizers/heuristics/erc1155Purchase/erc1155Purchase.ts @@ -186,7 +186,7 @@ function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts b/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts index e7726bc3..b3ec8f28 100644 --- a/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts +++ b/src/contextualizers/heuristics/erc1155Sale/erc1155Sale.ts @@ -160,7 +160,7 @@ function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts b/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts index fb3cd2bc..930adb2c 100644 --- a/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts +++ b/src/contextualizers/heuristics/erc20Mint/erc20Mint.ts @@ -116,7 +116,7 @@ export function generate(transaction: Transaction): Transaction { value: recipient, }, price: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: price, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts b/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts index f38271b9..186614b6 100644 --- a/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts +++ b/src/contextualizers/heuristics/erc721Mint/erc721Mint.ts @@ -101,7 +101,7 @@ export function generate(transaction: Transaction): Transaction { value: sender, }, price: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: price, unit: 'wei', }, diff --git a/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts b/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts index d3ec96ef..7195578c 100644 --- a/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts +++ b/src/contextualizers/heuristics/erc721Purchase/erc721Purchase.ts @@ -177,7 +177,7 @@ export function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts b/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts index 57be8437..f330d908 100644 --- a/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts +++ b/src/contextualizers/heuristics/erc721Sale/erc721Sale.ts @@ -169,7 +169,7 @@ export function generate(transaction: Transaction): Transaction { } : ethPayments.length > 0 ? { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: totalETHPayment.toString(), unit: 'wei', } diff --git a/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts b/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts index ea593edf..af8a9895 100644 --- a/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts +++ b/src/contextualizers/heuristics/ethTransfer/ethTransfer.ts @@ -27,8 +27,6 @@ export function generate(transaction: Transaction): Transaction { return transaction; } - const chainId = transaction.chainId ?? 1; - transaction.context = { variables: { sender: { @@ -37,7 +35,7 @@ export function generate(transaction: Transaction): Transaction { }, amount: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/basepaint/basepaint.ts b/src/contextualizers/protocol/basepaint/basepaint.ts index f200ce1b..489845c0 100644 --- a/src/contextualizers/protocol/basepaint/basepaint.ts +++ b/src/contextualizers/protocol/basepaint/basepaint.ts @@ -121,7 +121,7 @@ export const generate = (transaction: Transaction): Transaction => { value: transaction.from, }, amount: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value, unit: 'wei', }, diff --git a/src/contextualizers/protocol/cryptopunks/cryptopunks.ts b/src/contextualizers/protocol/cryptopunks/cryptopunks.ts index 65855d24..9baa6fdc 100644 --- a/src/contextualizers/protocol/cryptopunks/cryptopunks.ts +++ b/src/contextualizers/protocol/cryptopunks/cryptopunks.ts @@ -63,7 +63,6 @@ export const generate = (transaction: Transaction): Transaction => { ) { return transaction; } - const chainId = transaction.chainId ?? 1; const decoded = decodeTransactionInput( transaction.input as Hex, @@ -132,7 +131,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: decoded.args[1].toString(), unit: 'wei', }; @@ -192,7 +191,7 @@ export const generate = (transaction: Transaction): Transaction => { if (!ethAssetTransfer) return transaction; const price: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: ethAssetTransfer.value, unit: 'wei', }; @@ -248,7 +247,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }; @@ -301,7 +300,7 @@ export const generate = (transaction: Transaction): Transaction => { const ethAssetTransfer = transaction .assetTransfers?.[0] as ETHAssetTransfer; const amount: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: ethAssetTransfer.value, unit: 'wei', }; @@ -355,7 +354,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }; @@ -530,7 +529,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }; const price: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: decoded.args[1].toString(), unit: 'wei', }; diff --git a/src/contextualizers/protocol/disperse/disperse.ts b/src/contextualizers/protocol/disperse/disperse.ts index 0970dc54..4b777c12 100644 --- a/src/contextualizers/protocol/disperse/disperse.ts +++ b/src/contextualizers/protocol/disperse/disperse.ts @@ -89,7 +89,7 @@ export const generate = (transaction: Transaction): Transaction => { value: tipTransfer.to, }, numOfEth: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: tipTransfer.value, unit: 'wei', }, diff --git a/src/contextualizers/protocol/farcaster/bundler.ts b/src/contextualizers/protocol/farcaster/bundler.ts index 52d4018f..63179462 100644 --- a/src/contextualizers/protocol/farcaster/bundler.ts +++ b/src/contextualizers/protocol/farcaster/bundler.ts @@ -51,10 +51,9 @@ export const generate = (transaction: Transaction): Transaction => { case 'register': { const owner = decoded.args[0].to; const callerIsOwner = owner.toLowerCase() === caller.toLowerCase(); - const chainId = transaction.chainId ?? 1; // Capture cost to register const cost: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }; diff --git a/src/contextualizers/protocol/friendTech/friendTech.ts b/src/contextualizers/protocol/friendTech/friendTech.ts index 5ca92df7..007e629d 100644 --- a/src/contextualizers/protocol/friendTech/friendTech.ts +++ b/src/contextualizers/protocol/friendTech/friendTech.ts @@ -17,7 +17,6 @@ export const contextualize = (transaction: Transaction): Transaction => { // Contextualize for txs export const generate = (transaction: Transaction): Transaction => { - const chainId = transaction.chainId ?? 1; // Failed transaction if (!transaction.receipt?.status) { // buyShares(address sharesSubject, uint256 amount) @@ -33,7 +32,7 @@ export const generate = (transaction: Transaction): Transaction => { transaction.context = { variables: { price: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }, @@ -114,7 +113,7 @@ export const generate = (transaction: Transaction): Transaction => { transaction.context = { variables: { price: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: ethAmount, unit: 'wei', }, @@ -174,7 +173,7 @@ export const generate = (transaction: Transaction): Transaction => { transaction.context = { variables: { price: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: ethAmount, unit: 'wei', }, diff --git a/src/contextualizers/protocol/leeroy/leeroy.ts b/src/contextualizers/protocol/leeroy/leeroy.ts index fae3d87f..50c9c3ec 100644 --- a/src/contextualizers/protocol/leeroy/leeroy.ts +++ b/src/contextualizers/protocol/leeroy/leeroy.ts @@ -44,7 +44,6 @@ export const detect = (transaction: Transaction): boolean => { // Contextualize for mined txs export const generate = (transaction: Transaction): Transaction => { - const chainId = transaction.chainId ?? 1; switch (transaction.sigHash) { case '0x8ee93cf3': { // post(string) @@ -214,7 +213,7 @@ export const generate = (transaction: Transaction): Transaction => { value: transaction.from, }; const tipAmount: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }; @@ -232,7 +231,7 @@ export const generate = (transaction: Transaction): Transaction => { const asset = transaction.netAssetTransfers[transaction.to] .received[0] as ETHAsset; const leeroyTake: ContextSummaryVariableType = { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: asset.value, unit: 'wei', }; diff --git a/src/contextualizers/protocol/nouns/auctionHouse.ts b/src/contextualizers/protocol/nouns/auctionHouse.ts index d742dbb8..9ff7cdac 100644 --- a/src/contextualizers/protocol/nouns/auctionHouse.ts +++ b/src/contextualizers/protocol/nouns/auctionHouse.ts @@ -55,7 +55,6 @@ export const generate = (transaction: Transaction): Transaction => { ); if (!decoded) return transaction; - const chainId = transaction.chainId ?? 1; switch (decoded.functionName) { case 'createBid': { transaction.context = { @@ -74,7 +73,7 @@ export const generate = (transaction: Transaction): Transaction => { tokenId: decoded.args[0].toString(), }, amount: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/nounsBuilder/auction.ts b/src/contextualizers/protocol/nounsBuilder/auction.ts index 310373ef..e18a81ae 100644 --- a/src/contextualizers/protocol/nounsBuilder/auction.ts +++ b/src/contextualizers/protocol/nounsBuilder/auction.ts @@ -63,8 +63,6 @@ export const generate = (transaction: Transaction): Transaction => { ); if (!decoded) return transaction; - const chainId = transaction.chainId ?? 1; - switch (decoded.functionName) { case 'createBid': { const variables: ContextVariable = { @@ -81,7 +79,7 @@ export const generate = (transaction: Transaction): Transaction => { value: decoded.args[0].toString(), }, amount: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts b/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts index dff5c159..366b7808 100644 --- a/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts +++ b/src/contextualizers/protocol/superchainFaucet/superchainFaucet.ts @@ -36,7 +36,7 @@ export function generate(transaction: Transaction): Transaction { value: ethTransfer.to, }, amount: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: ethTransfer.value, unit: 'wei', }, diff --git a/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts b/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts index c79f01ed..12c73f80 100644 --- a/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts +++ b/src/contextualizers/protocol/uniswapV2/uniswapV2Router.ts @@ -51,8 +51,6 @@ export const generate = (transaction: Transaction): Transaction => { ); if (!decoded) return transaction; - const chainId = transaction.chainId ?? 1; - switch (decoded.functionName) { case 'addLiquidityETH': { transaction.context = { @@ -66,7 +64,7 @@ export const generate = (transaction: Transaction): Transaction => { value: 'ADDED_LIQUIDITY', }, numETH: { - type: formatNativeToken(chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: transaction.value.toString(), unit: 'wei', }, diff --git a/src/contextualizers/protocol/weth/weth.ts b/src/contextualizers/protocol/weth/weth.ts index ca9a7869..22b70c8b 100644 --- a/src/contextualizers/protocol/weth/weth.ts +++ b/src/contextualizers/protocol/weth/weth.ts @@ -82,7 +82,7 @@ export const generate = (transaction: Transaction): Transaction => { value: transaction.from, }; const withdrawalAmount: ContextSummaryVariableType = { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: decode.args ? decode.args[0].toString() : '0', unit: 'wei', }; diff --git a/src/contextualizers/protocol/zoraCreator/zoraCreator.ts b/src/contextualizers/protocol/zoraCreator/zoraCreator.ts index 992dd698..c7835808 100644 --- a/src/contextualizers/protocol/zoraCreator/zoraCreator.ts +++ b/src/contextualizers/protocol/zoraCreator/zoraCreator.ts @@ -96,13 +96,13 @@ export const generate = (transaction: Transaction): Transaction => { value: sender, }, price: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: price, unit: 'wei', }, minted: { type: 'contextAction', value: 'MINTED' }, numOfEth: { - type: formatNativeToken(transaction.chainId), + type: formatNativeToken(transaction.chainId ?? 1), value: decodedLog.args['mintReferralReward'].toString(), unit: 'wei', },