Skip to content

Commit

Permalink
Merge pull request #220 from lidofinance/develop
Browse files Browse the repository at this point in the history
Develop -> Main
  • Loading branch information
AnnaSila authored Nov 25, 2024
2 parents 17d7c8f + 4c5de93 commit f1049f9
Show file tree
Hide file tree
Showing 49 changed files with 584 additions and 328 deletions.
1 change: 0 additions & 1 deletion .env.sample
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# EL_RPC_URLS_{CHAIN_ID} list or URLs delimeted by commas, first entry is primary, else are fallbacks
EL_RPC_URLS_1=
EL_RPC_URLS_5=
EL_RPC_URLS_17000=

# etherscan api key
Expand Down
29 changes: 0 additions & 29 deletions .github/workflows/ci-dev-goerli.yml

This file was deleted.

9 changes: 0 additions & 9 deletions modules/blockChain/chains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,6 @@ import { CHAINS } from '@lido-sdk/constants'

export const ChainNames = {
[CHAINS.Mainnet]: 'Mainnet',
[CHAINS.Ropsten]: 'Ropsten',
[CHAINS.Rinkeby]: 'Rinkeby',
[CHAINS.Goerli]: 'Goerli',
[CHAINS.Kovan]: 'Kovan',
[CHAINS.Kintsugi]: 'Kintsugi',
[CHAINS.Kiln]: 'Kiln',
[CHAINS.Moonbeam]: 'Moonbeam',
[CHAINS.Moonriver]: 'Moonriver',
[CHAINS.Moonbase]: 'Moonbase',
[CHAINS.Holesky]: 'Holesky',
} as const

Expand Down
32 changes: 0 additions & 32 deletions modules/blockChain/contractAddresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,51 @@ import { ChainAddressMap } from './types'

export const AragonVoting: ChainAddressMap = {
[CHAINS.Mainnet]: '0x2e59A20f205bB85a89C53f1936454680651E618e',
[CHAINS.Goerli]: '0xbc0B67b4553f4CF52a913DE9A6eD0057E2E758Db',
[CHAINS.Holesky]: '0xdA7d2573Df555002503F29aA4003e398d28cc00f',
}

export const GovernanceToken: ChainAddressMap = {
[CHAINS.Mainnet]: '0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32',
[CHAINS.Goerli]: '0x56340274fB5a72af1A3C6609061c451De7961Bd4',
[CHAINS.Holesky]: '0x14ae7daeecdf57034f3E9db8564e46Dba8D97344',
}

export const TokenManager: ChainAddressMap = {
[CHAINS.Mainnet]: '0xf73a1260d222f447210581ddf212d915c09a3249',
[CHAINS.Goerli]: '0xDfe76d11b365f5e0023343A367f0b311701B3bc1',
[CHAINS.Holesky]: '0xFaa1692c6eea8eeF534e7819749aD93a1420379A',
}

export const AragonFinance: ChainAddressMap = {
[CHAINS.Mainnet]: '0xb9e5cbb9ca5b0d659238807e84d0176930753d86',
[CHAINS.Goerli]: '0x75c7b1D23f1cad7Fb4D60281d7069E46440BC179',
[CHAINS.Holesky]: '0xf0F281E5d7FBc54EAFcE0dA225CDbde04173AB16',
}

export const NodeOperatorsRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5',
[CHAINS.Goerli]: '0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320',
[CHAINS.Holesky]: '0x595F64Ddc3856a3b5Ff4f4CC1d1fb4B46cFd2bAC',
}

export const AragonAgent: ChainAddressMap = {
[CHAINS.Mainnet]: '0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c',
[CHAINS.Goerli]: '0x4333218072D5d7008546737786663c38B4D561A4',
[CHAINS.Holesky]: '0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d',
}

export const AragonACL: ChainAddressMap = {
[CHAINS.Mainnet]: '0x9895F0F17cc1d1891b6f18ee0b483B6f221b37Bb',
[CHAINS.Goerli]: '0xb3cf58412a00282934d3c3e73f49347567516e98',
[CHAINS.Holesky]: '0xfd1E42595CeC3E83239bf8dFc535250e7F48E0bC',
}

export const VotingRepo: ChainAddressMap = {
[CHAINS.Mainnet]: '0x4Ee3118E3858E8D7164A634825BfE0F73d99C792',
[CHAINS.Goerli]: '0x14de4f901ce0b81f4efca594ad7b70935c276806',
[CHAINS.Holesky]: '0x2997EA0D07D79038D83Cb04b3BB9A2Bc512E3fDA',
}

export const LidoDAO: ChainAddressMap = {
[CHAINS.Mainnet]: '0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc',
[CHAINS.Goerli]: '0x1dD91b354Ebd706aB3Ac7c727455C7BAA164945A',
[CHAINS.Holesky]: '0x3b03f75Ec541Ca11a223bB58621A3146246E1644',
}

export const EasyTrack: ChainAddressMap = {
[CHAINS.Mainnet]: '0xF0211b7660680B49De1A7E9f25C65660F0a13Fea',
[CHAINS.Goerli]: '0xAf072C8D368E4DD4A9d4fF6A76693887d6ae92Af',
[CHAINS.Holesky]: '0x1763b9ED3586B08AE796c7787811a2E1bc16163a',
}

Expand All @@ -67,131 +57,109 @@ export const TokenRecovererForManagerContracts: ChainAddressMap = {

export const LidoAppRepo: ChainAddressMap = {
[CHAINS.Mainnet]: '0xF5Dc67E54FC96F993CD06073f71ca732C1E654B1',
[CHAINS.Goerli]: '0xE9eDe497d2417fd980D8B5338232666641B9B9aC',
[CHAINS.Holesky]: '0xA37fb4C41e7D30af5172618a863BBB0f9042c604',
}

export const NodeOperatorsRegistryRepo: ChainAddressMap = {
[CHAINS.Mainnet]: '0x0D97E876ad14DB2b183CFeEB8aa1A5C788eB1831',
[CHAINS.Goerli]: '0x5F867429616b380f1Ca7a7283Ff18C53a0033073',
[CHAINS.Holesky]: '0x4E8970d148CB38460bE9b6ddaab20aE2A74879AF',
}

export const Steth: ChainAddressMap = {
[CHAINS.Mainnet]: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',
[CHAINS.Goerli]: '0x1643e812ae58766192cf7d2cf9567df2c37e9b7f',
[CHAINS.Holesky]: '0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034',
}

export const OracleRepo: ChainAddressMap = {
[CHAINS.Mainnet]: '0xF9339DE629973c60c4d2b76749c81E6F40960E3A',
[CHAINS.Goerli]: '0x9234e37Adeb44022A078557D9943b72AB89bF36a',
[CHAINS.Holesky]: '0xB3d74c319C0C792522705fFD3097f873eEc71764',
}

export const LegacyOracle: ChainAddressMap = {
[CHAINS.Mainnet]: '0x442af784A788A5bd6F42A01Ebe9F287a871243fb',
[CHAINS.Goerli]: '0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB',
[CHAINS.Holesky]: '0x072f72BE3AcFE2c52715829F2CD9061A6C8fF019',
}

export const CompositePostRebaseBeaconReceiver: ChainAddressMap = {
[CHAINS.Mainnet]: '0x55a7E1cbD678d9EbD50c7d69Dc75203B0dBdD431',
[CHAINS.Goerli]: '0x5d2113f7691ac6Df5E3f41Fb938429ACEAD2C94f',
}

export const DepositSecurityModule: ChainAddressMap = {
[CHAINS.Mainnet]: '0x710b3303fb508a84f10793c1106e32be873c24cd',
[CHAINS.Goerli]: '0x7dc1c1ff64078f73c98338e2f17d1996ffbb2ede',
[CHAINS.Holesky]: '0x045dd46212A178428c088573A7d102B9d89a022A',
}

export const WithdrawalVault: ChainAddressMap = {
[CHAINS.Mainnet]: '0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f',
[CHAINS.Goerli]: '0xdc62f9e8C34be08501Cdef4EBDE0a280f576D762',
[CHAINS.Holesky]: '0xF0179dEC45a37423EAD4FaD5fCb136197872EAd9',
}

export const ShapellaUpgradeTemplate: ChainAddressMap = {
[CHAINS.Mainnet]: '0xa818ff9ec93122bf9401ab4340c42de638cd600a',
[CHAINS.Goerli]: '0xD2fEf3d3544ddf64028784aC3f166413A2A61393',
}

export const StakingRouter: ChainAddressMap = {
[CHAINS.Mainnet]: '0xFdDf38947aFB03C621C71b06C9C70bce73f12999',
[CHAINS.Goerli]: '0xa3dbd317e53d363176359e10948ba0b1c0a4c820',
[CHAINS.Holesky]: '0xd6EbF043D30A7fe46D1Db32BA90a0A51207FE229',
}

export const LidoLocator: ChainAddressMap = {
[CHAINS.Mainnet]: '0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb',
[CHAINS.Goerli]: '0x1eDf09b5023DC86737b59dE68a8130De878984f5',
[CHAINS.Holesky]: '0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8',
}

export const WithdrawalQueueERC721: ChainAddressMap = {
[CHAINS.Mainnet]: '0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1',
[CHAINS.Goerli]: '0xcf117961421ca9e546cd7f50bc73abcdb3039533',
[CHAINS.Holesky]: '0xc7cc160b58F8Bb0baC94b80847E2CF2800565C50',
}

export const OracleReportSanityChecker: ChainAddressMap = {
[CHAINS.Mainnet]: '0x9305c1Dbfe22c12c66339184C0025d7006f0f1cC',
[CHAINS.Goerli]: '0xbf74600040F91D3560d5757280727FB00c64Fd2E',
[CHAINS.Holesky]: '0xF0d576c7d934bBeCc68FE15F1c5DAF98ea2B78bb',
}

export const OracleDaemonConfig: ChainAddressMap = {
[CHAINS.Mainnet]: '0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09',
[CHAINS.Goerli]: '0xE9CC5bD91543cdc9788454EE5063E2CD76B5206d',
[CHAINS.Holesky]: '0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7',
}

export const HashConsensusAccountingOracle: ChainAddressMap = {
[CHAINS.Mainnet]: '0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288',
[CHAINS.Goerli]: '0x8d87A8BCF8d4e542fd396D1c50223301c164417b',
[CHAINS.Holesky]: '0xa067FC95c22D51c3bC35fd4BE37414Ee8cc890d2',
}

export const HashConsensusValidatorsExitBus: ChainAddressMap = {
[CHAINS.Mainnet]: '0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a',
[CHAINS.Goerli]: '0x8374B4aC337D7e367Ea1eF54bB29880C3f036A51',
[CHAINS.Holesky]: '0xe77Cf1A027d7C10Ee6bb7Ede5E922a181FF40E8f',
}

export const TRPVestingEscrowFactory: ChainAddressMap = {
[CHAINS.Mainnet]: '0xDA1DF6442aFD2EC36aBEa91029794B9b2156ADD0',
[CHAINS.Goerli]: '0x8D20FD1Ac547e035BF01089cFb92459054F82Ff7',
[CHAINS.Holesky]: '0x586f0b51d46ac8ac6058702d99cd066ae514e96b',
}

export const AccountingOracle: ChainAddressMap = {
[CHAINS.Mainnet]: '0x852deD011285fe67063a08005c71a85690503Cee',
[CHAINS.Goerli]: '0x76f358A842defa0E179a8970767CFf668Fc134d6',
[CHAINS.Holesky]: '0x4E97A3972ce8511D87F334dA17a2C332542a5246',
}

export const ValidatorsExitBusOracle: ChainAddressMap = {
[CHAINS.Mainnet]: '0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e',
[CHAINS.Goerli]: '0xb75A55EFab5A8f5224Ae93B34B25741EDd3da98b',
[CHAINS.Holesky]: '0xffDDF7025410412deaa05E3E1cE68FE53208afcb',
}

export const MEVBoostRelayAllowedList: ChainAddressMap = {
[CHAINS.Mainnet]: '0xF95f069F9AD107938F6ba802a3da87892298610E',
[CHAINS.Goerli]: '0xeabE95AC5f3D64aE16AcBB668Ed0efcd81B721Bc',
[CHAINS.Holesky]: '0x2d86C5855581194a386941806E38cA119E50aEA3',
}

export const ExecutionLayerRewardsVault: ChainAddressMap = {
[CHAINS.Mainnet]: '0x388C818CA8B9251b393131C08a736A67ccB19297',
[CHAINS.Goerli]: '0x94750381bE1AbA0504C666ee1DB118F68f0780D4',
[CHAINS.Holesky]: '0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8',
}

export const Burner: ChainAddressMap = {
[CHAINS.Mainnet]: '0xD15a672319Cf0352560eE76d9e89eAB0889046D3',
[CHAINS.Goerli]: '0x20c61C07C2E2FAb04BF5b4E12ce45a459a18f3B1',
[CHAINS.Holesky]: '0x4E46BD7147ccf666E1d73A3A456fC7a68de82eCA',
}

Expand Down
13 changes: 1 addition & 12 deletions modules/blockChain/utils/getGnosisSafeLink.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,9 @@
import get from 'lodash/get'
import { CHAINS } from '@lido-sdk/constants'

const PREFIXES = {
[CHAINS.Mainnet]: 'eth',
[CHAINS.Goerli]: 'gor',
[CHAINS.Holesky]: 'holesky',
} as const

export const getGnosisSafeLink = (chainId: CHAINS, address: string) => {
if (chainId === CHAINS.Holesky) {
return `https://holesky-safe.protofire.io/transactions/queue?safe=holesky:${address}`
}

return `https://app.safe.global/transactions/queue?safe=${get(
PREFIXES,
chainId,
'?',
)}:${address}`
return `https://app.safe.global/transactions/queue?safe=eth:${address}`
}
30 changes: 30 additions & 0 deletions modules/delegation/hooks/useDelegateFromPublicListUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { UseFormReturn } from 'react-hook-form'
import { DelegationFormInput } from '../types'
import { useDelegateFromPublicList } from '../providers/DelegateFromPublicListContext'
import { useEffect } from 'react'
import { isValidAddress } from 'modules/shared/utils/addressValidation'

export const useDelegateFromPublicListUpdate = (
formObject: UseFormReturn<DelegationFormInput>,
) => {
const { selectedPublicDelegate, onPublicDelegateReset } =
useDelegateFromPublicList()

const { getValues, setValue, setFocus } = formObject

useEffect(() => {
const currentValue = getValues('delegateAddress')
if (
selectedPublicDelegate &&
isValidAddress(selectedPublicDelegate) &&
currentValue?.toLowerCase() !== selectedPublicDelegate.toLowerCase()
) {
setValue('delegateAddress', selectedPublicDelegate, {
shouldValidate: true,
})
setFocus('delegateAddress')
onPublicDelegateReset()
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [selectedPublicDelegate])
}
29 changes: 29 additions & 0 deletions modules/delegation/hooks/useDelegateFromQueryUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { UseFormReturn } from 'react-hook-form'
import { DelegationFormInput } from '../types'
import { useRouter } from 'next/router'
import { useEffect } from 'react'
import { isValidAddress } from 'modules/shared/utils/addressValidation'

export const useDelegateFromQueryUpdate = (
formObject: UseFormReturn<DelegationFormInput>,
) => {
const { query } = useRouter()

const { getValues, setValue, setFocus } = formObject

useEffect(() => {
const currentValue = getValues('delegateAddress')
const queryAddress = query.delegateAddress as string | undefined
if (
queryAddress &&
isValidAddress(queryAddress) &&
currentValue?.toLowerCase() !== queryAddress.toLowerCase()
) {
setValue('delegateAddress', queryAddress, {
shouldValidate: true,
})
setFocus('delegateAddress')
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [query.delegateAddress])
}
8 changes: 3 additions & 5 deletions modules/delegation/hooks/useDelegateVoteInfo.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import { useMemo } from 'react'
import type {
AttemptCastVoteAsDelegateEventObject,
CastVoteEventObject,
} from 'generated/AragonVotingAbi'
import type { AttemptCastVoteAsDelegateEventObject } from 'generated/AragonVotingAbi'
import { CastVoteEvent } from 'modules/votes/types'

interface Props {
walletAddress: string | null | undefined
eventsVoted: CastVoteEventObject[] | undefined
eventsVoted: CastVoteEvent[] | undefined
eventsDelegatesVoted: AttemptCastVoteAsDelegateEventObject[] | undefined
}

Expand Down
18 changes: 17 additions & 1 deletion modules/delegation/hooks/useDelegationInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { constants } from 'ethers'
import { ContractSnapshot, ContractVoting } from 'modules/blockChain/contracts'
import { useWeb3 } from 'modules/blockChain/hooks/useWeb3'
import { SNAPSHOT_LIDO_SPACE_NAME } from '../constants'
import { getPublicDelegateByAddress } from '../utils/getPublicDelegateName'
import { DelegationInfo, PublicDelegate } from '../types'

export const useDelegationInfo = () => {
const { walletAddress, chainId } = useWeb3()
Expand All @@ -12,25 +14,39 @@ export const useDelegationInfo = () => {

return useLidoSWRImmutable(
walletAddress ? ['swr:useDelegationInfo', chainId, walletAddress] : null,
async (_key: string, _chainId: CHAINS, _walletAddress: string) => {
async (
_key: string,
_chainId: CHAINS,
_walletAddress: string,
): Promise<DelegationInfo> => {
let aragonDelegateAddress: string | null = (
await voting.getDelegate(_walletAddress)
).toLowerCase()
let aragonPublicDelegate: PublicDelegate | null = null
if (aragonDelegateAddress === constants.AddressZero) {
aragonDelegateAddress = null
} else {
aragonPublicDelegate = getPublicDelegateByAddress(aragonDelegateAddress)
}

let snapshotDelegateAddress: string | null = null
snapshotDelegateAddress = (
await snapshot.delegation(_walletAddress, SNAPSHOT_LIDO_SPACE_NAME)
).toLowerCase()
let snapshotPublicDelegate: PublicDelegate | null = null
if (snapshotDelegateAddress === constants.AddressZero) {
snapshotDelegateAddress = null
} else {
snapshotPublicDelegate = getPublicDelegateByAddress(
snapshotDelegateAddress,
)
}

return {
aragonDelegateAddress,
aragonPublicDelegate,
snapshotDelegateAddress,
snapshotPublicDelegate,
}
},
)
Expand Down
Loading

0 comments on commit f1049f9

Please sign in to comment.