From 95a53a1431989aa5972c2d620b9f64386986d88a Mon Sep 17 00:00:00 2001 From: Atatakai Date: Fri, 7 Feb 2025 12:24:56 +0400 Subject: [PATCH 1/2] fix: set up correct activity checkers for all contracts --- frontend/config/activityCheckers.ts | 126 +++++++++++++++------- frontend/config/stakingPrograms/base.ts | 18 +--- frontend/config/stakingPrograms/celo.ts | 6 +- frontend/config/stakingPrograms/gnosis.ts | 28 +++-- frontend/config/stakingPrograms/mode.ts | 12 +-- 5 files changed, 119 insertions(+), 71 deletions(-) diff --git a/frontend/config/activityCheckers.ts b/frontend/config/activityCheckers.ts index 01fd43d33..5334ac0e0 100644 --- a/frontend/config/activityCheckers.ts +++ b/frontend/config/activityCheckers.ts @@ -4,60 +4,108 @@ import { MECH_ACTIVITY_CHECKER_ABI } from '@/abis/mechActivityChecker'; import { MEME_ACTIVITY_CHECKER_ABI } from '@/abis/memeActivityChecker'; import { REQUESTER_ACTIVITY_CHECKER_ABI } from '@/abis/requesterActivityChecker'; import { STAKING_ACTIVITY_CHECKER_ABI } from '@/abis/stakingActivityChecker'; -import { EvmChainId } from '@/enums/Chain'; +import { StakingProgramId } from '@/enums/StakingProgram'; +import { Address } from '@/types/Address'; -import { MechType } from './mechs'; +export const getMechActivityCheckerContract = ( + address: Address, +): MulticallContract => { + return new MulticallContract(address, MECH_ACTIVITY_CHECKER_ABI); +}; -export enum ActivityCheckerType { - MechActivityChecker = MechType.Agent, - RequesterActivityChecker = MechType.Marketplace, - Staking = 'StakingActivityChecker', - MemeActivityChecker = 'MemeActivityChecker', -} +export const getRequesterActivityCheckerContract = ( + address: Address, +): MulticallContract => { + return new MulticallContract(address, REQUESTER_ACTIVITY_CHECKER_ABI); +}; -type ActivityCheckers = { - [activityCheckerType: string]: MulticallContract; +export const getStakingActivityCheckerContract = ( + address: Address, +): MulticallContract => { + return new MulticallContract(address, STAKING_ACTIVITY_CHECKER_ABI); }; -const GNOSIS_ACTIVITY_CHECKERS: ActivityCheckers = { - [ActivityCheckerType.MechActivityChecker]: new MulticallContract( +export const getMemeActivityCheckerContract = ( + address: Address, +): MulticallContract => { + return new MulticallContract(address, MEME_ACTIVITY_CHECKER_ABI); +}; + +export const GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS: Record< + string, + MulticallContract +> = { + [StakingProgramId.PearlAlpha]: getMechActivityCheckerContract( + '0x155547857680A6D51bebC5603397488988DEb1c8', + ), + [StakingProgramId.PearlBeta]: getMechActivityCheckerContract( + '0x155547857680A6D51bebC5603397488988DEb1c8', + ), + [StakingProgramId.PearlBeta2]: getMechActivityCheckerContract( + '0x155547857680A6D51bebC5603397488988DEb1c8', + ), + [StakingProgramId.PearlBeta3]: getMechActivityCheckerContract( + '0x155547857680A6D51bebC5603397488988DEb1c8', + ), + [StakingProgramId.PearlBeta4]: getMechActivityCheckerContract( + '0x155547857680A6D51bebC5603397488988DEb1c8', + ), + [StakingProgramId.PearlBeta5]: getMechActivityCheckerContract( '0x155547857680A6D51bebC5603397488988DEb1c8', - MECH_ACTIVITY_CHECKER_ABI, ), - [ActivityCheckerType.RequesterActivityChecker]: new MulticallContract( - '0x7Ec96996Cd146B91779f01419db42E67463817a0', - REQUESTER_ACTIVITY_CHECKER_ABI, + [StakingProgramId.PearlBeta6]: getRequesterActivityCheckerContract( + '0xfE1D36820546cE5F3A58405950dC2F5ccDf7975C', ), + [StakingProgramId.PearlBetaMechMarketplace]: + getRequesterActivityCheckerContract( + '0x7Ec96996Cd146B91779f01419db42E67463817a0', + ), } as const; -const BASE_ACTIVITY_CHECKERS: ActivityCheckers = { - [ActivityCheckerType.MemeActivityChecker]: new MulticallContract( +export const BASE_STAKING_PROGRAMS_ACTIVITY_CHECKERS: Record< + string, + MulticallContract +> = { + [StakingProgramId.MemeBaseAlpha2]: getMemeActivityCheckerContract( '0x026AB1c5ea14E61f67d245685D9561c0c2Cb39Ba', - MEME_ACTIVITY_CHECKER_ABI, ), -} as const; + [StakingProgramId.MemeBaseBeta]: getMemeActivityCheckerContract( + '0x008F52AF7009e262967caa7Cb79468F92AFEADF9', + ), + [StakingProgramId.MemeBaseBeta2]: getMemeActivityCheckerContract( + '0x026AB1c5ea14E61f67d245685D9561c0c2Cb39Ba', + ), + [StakingProgramId.MemeBaseBeta3]: getMemeActivityCheckerContract( + '0x026AB1c5ea14E61f67d245685D9561c0c2Cb39Ba', + ), +}; -const MODE_ACTIVITY_CHECKERS: ActivityCheckers = { - [ActivityCheckerType.Staking]: new MulticallContract( +export const MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS: Record< + string, + MulticallContract +> = { + [StakingProgramId.ModiusAlpha]: getStakingActivityCheckerContract( '0x07bc3C23DbebEfBF866Ca7dD9fAA3b7356116164', - STAKING_ACTIVITY_CHECKER_ABI, ), -} as const; + [StakingProgramId.OptimusAlpha]: getStakingActivityCheckerContract( + '0x07bc3C23DbebEfBF866Ca7dD9fAA3b7356116164', + ), + [StakingProgramId.ModiusAlpha2]: getStakingActivityCheckerContract( + '0x07bc3C23DbebEfBF866Ca7dD9fAA3b7356116164', + ), + [StakingProgramId.ModiusAlpha3]: getStakingActivityCheckerContract( + '0x07bc3C23DbebEfBF866Ca7dD9fAA3b7356116164', + ), + [StakingProgramId.ModiusAlpha4]: getStakingActivityCheckerContract( + '0x07bc3C23DbebEfBF866Ca7dD9fAA3b7356116164', + ), +}; -const CELO_ACTIVITY_CHECKERS: ActivityCheckers = { - [ActivityCheckerType.MemeActivityChecker]: new MulticallContract( +export const CELO_STAKING_PROGRAMS_ACTIVITY_CHECKERS: Record< + string, + MulticallContract +> = { + [StakingProgramId.MemeCeloAlpha2]: getMemeActivityCheckerContract( '0x3FD8C757dE190bcc82cF69Df3Cd9Ab15bCec1426', - MEME_ACTIVITY_CHECKER_ABI, ), -} as const; - -export const ACTIVITY_CHECKERS: { - [chainId in EvmChainId]: { - [activityCheckerType: string]: MulticallContract; - }; -} = { - [EvmChainId.Gnosis]: GNOSIS_ACTIVITY_CHECKERS, - [EvmChainId.Base]: BASE_ACTIVITY_CHECKERS, - [EvmChainId.Mode]: MODE_ACTIVITY_CHECKERS, - [EvmChainId.Celo]: CELO_ACTIVITY_CHECKERS, -} as const; +}; diff --git a/frontend/config/stakingPrograms/base.ts b/frontend/config/stakingPrograms/base.ts index b8fa40a3b..91de1f23d 100644 --- a/frontend/config/stakingPrograms/base.ts +++ b/frontend/config/stakingPrograms/base.ts @@ -7,7 +7,7 @@ import { StakingProgramId } from '@/enums/StakingProgram'; import { TokenSymbol } from '@/enums/Token'; import { Address } from '@/types/Address'; -import { ACTIVITY_CHECKERS, ActivityCheckerType } from '../activityCheckers'; +import { BASE_STAKING_PROGRAMS_ACTIVITY_CHECKERS } from '../activityCheckers'; import { StakingProgramMap } from '.'; export const BASE_STAKING_PROGRAMS_CONTRACT_ADDRESSES: Record = @@ -31,9 +31,7 @@ export const BASE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 100, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Base][ - ActivityCheckerType.MemeActivityChecker - ], + BASE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.MemeBaseAlpha2], contract: new MulticallContract( BASE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.MemeBaseAlpha2], STAKING_TOKEN_PROXY_ABI, @@ -47,9 +45,7 @@ export const BASE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 100, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Base][ - ActivityCheckerType.MemeActivityChecker - ], + BASE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.MemeBaseBeta], contract: new MulticallContract( BASE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.MemeBaseBeta], STAKING_TOKEN_PROXY_ABI, @@ -63,9 +59,7 @@ export const BASE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 1000, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Base][ - ActivityCheckerType.MemeActivityChecker - ], + BASE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.MemeBaseBeta2], contract: new MulticallContract( BASE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.MemeBaseBeta2], STAKING_TOKEN_PROXY_ABI, @@ -79,9 +73,7 @@ export const BASE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 5000, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Base][ - ActivityCheckerType.MemeActivityChecker - ], + BASE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.MemeBaseBeta3], contract: new MulticallContract( BASE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.MemeBaseBeta3], STAKING_TOKEN_PROXY_ABI, diff --git a/frontend/config/stakingPrograms/celo.ts b/frontend/config/stakingPrograms/celo.ts index 2bd1361e8..87810d04e 100644 --- a/frontend/config/stakingPrograms/celo.ts +++ b/frontend/config/stakingPrograms/celo.ts @@ -7,7 +7,7 @@ import { StakingProgramId } from '@/enums/StakingProgram'; import { TokenSymbol } from '@/enums/Token'; import { Address } from '@/types/Address'; -import { ACTIVITY_CHECKERS, ActivityCheckerType } from '../activityCheckers'; +import { CELO_STAKING_PROGRAMS_ACTIVITY_CHECKERS } from '../activityCheckers'; import { StakingProgramMap } from '.'; export const CELO_STAKING_PROGRAMS_CONTRACT_ADDRESSES: Record = @@ -25,9 +25,7 @@ export const CELO_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 100, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Celo][ - ActivityCheckerType.MemeActivityChecker - ], + CELO_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.MemeCeloAlpha2], contract: new MulticallContract( CELO_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.MemeCeloAlpha2], STAKING_TOKEN_PROXY_ABI, diff --git a/frontend/config/stakingPrograms/gnosis.ts b/frontend/config/stakingPrograms/gnosis.ts index 8aaffe6bd..1d956d09b 100644 --- a/frontend/config/stakingPrograms/gnosis.ts +++ b/frontend/config/stakingPrograms/gnosis.ts @@ -7,7 +7,7 @@ import { StakingProgramId } from '@/enums/StakingProgram'; import { TokenSymbol } from '@/enums/Token'; import { Address } from '@/types/Address'; -import { ACTIVITY_CHECKERS } from '../activityCheckers'; +import { GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS } from '../activityCheckers'; import { MECHS, MechType } from '../mechs'; import { StakingProgramMap } from '.'; @@ -37,7 +37,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlAlpha], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlAlpha], STAKING_TOKEN_PROXY_ABI, @@ -52,7 +53,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlBeta], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlBeta], STAKING_TOKEN_PROXY_ABI, @@ -67,7 +69,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlBeta2], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlBeta2], STAKING_TOKEN_PROXY_ABI, @@ -82,7 +85,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlBeta3], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlBeta3], STAKING_TOKEN_PROXY_ABI, @@ -97,7 +101,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlBeta4], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlBeta4], STAKING_TOKEN_PROXY_ABI, @@ -112,7 +117,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlBeta5], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlBeta5], STAKING_TOKEN_PROXY_ABI, @@ -127,7 +133,8 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Agent, mech: MECHS[EvmChainId.Gnosis][MechType.Agent].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Agent], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.PearlBeta6], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.PearlBeta6], STAKING_TOKEN_PROXY_ABI, @@ -142,7 +149,10 @@ export const GNOSIS_STAKING_PROGRAMS: StakingProgramMap = { }, mechType: MechType.Marketplace, mech: MECHS[EvmChainId.Gnosis][MechType.Marketplace].contract, - activityChecker: ACTIVITY_CHECKERS[EvmChainId.Gnosis][MechType.Marketplace], + activityChecker: + GNOSIS_STAKING_PROGRAMS_ACTIVITY_CHECKERS[ + StakingProgramId.PearlBetaMechMarketplace + ], contract: new MulticallContract( GNOSIS_STAKING_PROGRAMS_CONTRACT_ADDRESSES[ StakingProgramId.PearlBetaMechMarketplace diff --git a/frontend/config/stakingPrograms/mode.ts b/frontend/config/stakingPrograms/mode.ts index f742348ab..0c265887f 100644 --- a/frontend/config/stakingPrograms/mode.ts +++ b/frontend/config/stakingPrograms/mode.ts @@ -7,7 +7,7 @@ import { StakingProgramId } from '@/enums/StakingProgram'; import { TokenSymbol } from '@/enums/Token'; import { Address } from '@/types/Address'; -import { ACTIVITY_CHECKERS, ActivityCheckerType } from '../activityCheckers'; +import { MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS } from '../activityCheckers'; import { StakingProgramMap } from '.'; export const MODE_STAKING_PROGRAMS_CONTRACT_ADDRESSES: Record = @@ -34,7 +34,7 @@ export const MODE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 40, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Mode][ActivityCheckerType.Staking], + MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.ModiusAlpha], contract: new MulticallContract( MODE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.ModiusAlpha], STAKING_TOKEN_PROXY_ABI, @@ -48,7 +48,7 @@ export const MODE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 100, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Mode][ActivityCheckerType.Staking], + MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.ModiusAlpha2], contract: new MulticallContract( MODE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.ModiusAlpha2], STAKING_TOKEN_PROXY_ABI, @@ -62,7 +62,7 @@ export const MODE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 1000, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Mode][ActivityCheckerType.Staking], + MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.ModiusAlpha3], contract: new MulticallContract( MODE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.ModiusAlpha3], STAKING_TOKEN_PROXY_ABI, @@ -76,7 +76,7 @@ export const MODE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 5000, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Mode][ActivityCheckerType.Staking], + MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.ModiusAlpha4], contract: new MulticallContract( MODE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.ModiusAlpha4], STAKING_TOKEN_PROXY_ABI, @@ -91,7 +91,7 @@ export const MODE_STAKING_PROGRAMS: StakingProgramMap = { [TokenSymbol.OLAS]: 40, }, activityChecker: - ACTIVITY_CHECKERS[EvmChainId.Mode][ActivityCheckerType.Staking], + MODE_STAKING_PROGRAMS_ACTIVITY_CHECKERS[StakingProgramId.OptimusAlpha], contract: new MulticallContract( MODE_STAKING_PROGRAMS_CONTRACT_ADDRESSES[StakingProgramId.OptimusAlpha], STAKING_TOKEN_PROXY_ABI, From 72fe20f63b9a7d00432063210dd2aa1dc9bf35e1 Mon Sep 17 00:00:00 2001 From: Atatakai Date: Fri, 7 Feb 2025 12:56:06 +0400 Subject: [PATCH 2/2] chore: update subgraph links --- frontend/config/agents.ts | 2 +- frontend/constants/urls.ts | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/config/agents.ts b/frontend/config/agents.ts index 2baf79d3f..c89970ac4 100644 --- a/frontend/config/agents.ts +++ b/frontend/config/agents.ts @@ -50,7 +50,7 @@ export const AGENT_CONFIG: { 'Autonomously posts to Twitter, creates and trades memecoins, and interacts with other agents. Agent is operating on Base chain.', }, [AgentType.Modius]: { - isAgentEnabled: false, + isAgentEnabled: true, isComingSoon: false, requiresSetup: true, name: 'Modius agent', diff --git a/frontend/constants/urls.ts b/frontend/constants/urls.ts index db533a02d..1d7f2b5af 100644 --- a/frontend/constants/urls.ts +++ b/frontend/constants/urls.ts @@ -26,12 +26,13 @@ export const DOWNLOAD_URL: Url = 'https://olas.network/operate#download'; // thegraph export const REWARDS_HISTORY_SUBGRAPH_URLS_BY_EVM_CHAIN = { [EvmChainId.Gnosis]: - 'https://api.studio.thegraph.com/query/81371/gnosis-pearl-rewards-history/version/latest', + 'https://gateway.thegraph.com/api/5c035877a4af18d178c96afe55ed41ae/subgraphs/id/F3iqL2iw5UTrP1qbb4S694pGEkBwzoxXp1TRikB2K4e', [EvmChainId.Base]: - 'https://api.studio.thegraph.com/query/67875/olas-base-staking-rewards-history/version/latest', + 'https://api.studio.thegraph.com/query/67875/olas-base-staking/version/latest', [EvmChainId.Mode]: - 'https://api.studio.thegraph.com/query/67875/olas-mode-staking-rewards-history/version/latest', - [EvmChainId.Celo]: '', // TODO: celo + 'https://api.studio.thegraph.com/query/67875/olas-mode-staking/version/latest', + [EvmChainId.Celo]: + 'https://api.studio.thegraph.com/query/67875/olas-celo-staking/version/latest', }; // discord