Skip to content

Commit

Permalink
feat: new motion factories and creation forms added, obsolete forms r…
Browse files Browse the repository at this point in the history
…emoved
  • Loading branch information
manneredboor committed Jun 29, 2023
1 parent 16c30a4 commit 4a40c2c
Show file tree
Hide file tree
Showing 33 changed files with 327 additions and 1,132 deletions.
4 changes: 0 additions & 4 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,6 @@ CSP_REPORT_URI=

# subgraph urls
SUBGRAPH_MAINNET=https://api.thegraph.com/subgraphs/name/lidofinance/lido
SUBGRAPH_ROPSTEN=
SUBGRAPH_RINKEBY=
SUBGRAPH_GOERLI=https://api.thegraph.com/subgraphs/name/lidofinance/lido-testnet
SUBGRAPH_KOVAN=
SUBGRAPH_KINTSUGI=

WALLETCONNECT_PROJECT_ID=
111 changes: 24 additions & 87 deletions modules/blockChain/contractAddresses.ts
Original file line number Diff line number Diff line change
@@ -1,160 +1,97 @@
import { CHAINS } from '@lido-sdk/constants'
import type { ChainAddressMap } from './types'

export const NodeOperatorsRegistry = {
export const NodeOperatorsRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x7899EF901Ed9B331bAf7759c15D2e8728e8c2a2C',
[CHAINS.Goerli]: '0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

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

export const GovernanceToken = {
export const GovernanceToken: ChainAddressMap = {
[CHAINS.Mainnet]: '0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x06c6Ab60F0Ad054236d7d4Faf98A5D33e852E717',
[CHAINS.Goerli]: '0x56340274fB5a72af1A3C6609061c451De7961Bd4',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const RewardProgramRegistry = {
export const RewardProgramRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x3129c041b372ee93a5a8756dc4ec6f154d85bc9a',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x648C8Be548F43eca4e482C0801Ebccccfb944931',
[CHAINS.Goerli]: '0x28a08f61AE129d0d8BD4380Ae5647e7Add0527ca',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const ReferralPartnersRegistry = {
export const ReferralPartnersRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xfCaD241D9D2A2766979A2de208E8210eDf7b7D4F',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x4CB0c9987fd670069e4b24c653981E86b261A2ca',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const STETH = {
export const STETH: ChainAddressMap = {
[CHAINS.Mainnet]: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x06c6Ab60F0Ad054236d7d4Faf98A5D33e852E717',
[CHAINS.Goerli]: '0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const DAI = {
export const DAI: ChainAddressMap = {
[CHAINS.Mainnet]: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x11fE4B6AE13d2a6055C8D9cF65c55bac32B5d844',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const Finance = {
export const Finance: ChainAddressMap = {
[CHAINS.Mainnet]: '0xB9E5CBB9CA5b0d659238807E84D0176930753d86',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x72cd2b30020fb28de0dfa64d930a183eb732cf46',
[CHAINS.Goerli]: '0x75c7b1D23f1cad7Fb4D60281d7069E46440BC179',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const AllowedRecipientRegistry = {
export const AllowedRecipientRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xAa47c268e6b2D4ac7d7f7Ffb28A39484f5212c2A',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0xaDA19288575f611A6487365f0fE2A742a90BB2C6',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const AllowedRecipientReferralDaiRegistry = {
export const AllowedRecipientReferralDaiRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xa295C212B44a48D07746d70d32Aa6Ca9b09Fb846',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x8fB566b1e78e603a86b97ada5FcA858764dF4088',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const AllowedRecipientTrpLdoRegistry = {
export const AllowedRecipientTrpLdoRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x231Ac69A1A37649C6B06a71Ab32DdD92158C80b8',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x8C96a6522aEc036C4a384f8B7e05D93d6f3Dae39',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const LegoLDORegistry = {
export const LegoLDORegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x97615f72c3428A393d65A84A3ea6BBD9ad6C0D74',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x6342213719839c56fEe817539863aFB9821B03cb',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const LegoDAIRegistry = {
export const LegoDAIRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xb0FE4D300334461523D9d61AaD90D0494e1Abb43',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x5884f5849414D4317d175fEc144e2F87f699B082',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const RccDAIRegistry = {
export const RccDAIRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xDc1A0C7849150f466F07d48b38eAA6cE99079f80',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x1440E8aDbE3a42a9EDB4b30059df8F6c35205a15',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const PmlDAIRegistry = {
export const PmlDAIRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xDFfCD3BF14796a62a804c1B16F877Cf7120379dB',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0xAadfBd1ADE92d85c967f4aE096141F0F802F46Db',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const AtcDAIRegistry = {
export const AtcDAIRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xe07305F43B11F230EaA951002F6a55a16419B707',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0xedD3B813275e1A88c2283FAfa5bf5396938ef59e',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const gasFunderETHRegistry = {
export const gasFunderETHRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0xCf46c4c7f936dF6aE12091ADB9897E3F2363f16F',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const StethRewardProgramRegistry = {
export const StethRewardProgramRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x48c4929630099b217136b64089E8543dB0E5163a',
[CHAINS.Ropsten]: '0x0000000000000000000000000000000000000000',
[CHAINS.Rinkeby]: '0x0000000000000000000000000000000000000000',
[CHAINS.Goerli]: '0x78797efCca6C537BF92FA6b25cBb14A6f1c128A0',
[CHAINS.Kovan]: '0x0000000000000000000000000000000000000000',
[CHAINS.Kintsugi]: '0x0000000000000000000000000000000000000000',
}

export const StethGasSupplyRegistry: ChainAddressMap = {
[CHAINS.Mainnet]: '0x49d1363016aA899bba09ae972a1BF200dDf8C55F',
[CHAINS.Goerli]: '0xF08a5f00824D4554a1FBebaE726609418dc819fb',
}
20 changes: 20 additions & 0 deletions modules/blockChain/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -249,3 +249,23 @@ export const ContractStethRewardProgramTopUp = createContractHelpers({
factory: TopUpAllowedRecipientsAbi__factory,
address: EvmAddressesByType[MotionType.StethRewardProgramTopUp],
})

export const ContractStethGasSupplyRegistry = createContractHelpers({
factory: AllowedRecipientsRegistryAbi__factory,
address: CONTRACT_ADDRESSES.StethGasSupplyRegistry,
})

export const ContractStethGasSupplyAdd = createContractHelpers({
factory: AddAllowedRecipientAbi__factory,
address: EvmAddressesByType[MotionType.StethGasSupplyAdd],
})

export const ContractStethGasSupplyRemove = createContractHelpers({
factory: RemoveAllowedRecipientAbi__factory,
address: EvmAddressesByType[MotionType.StethGasSupplyRemove],
})

export const ContractStethGasSupplyTopUp = createContractHelpers({
factory: TopUpAllowedRecipientsAbi__factory,
address: EvmAddressesByType[MotionType.StethGasSupplyTopUp],
})
6 changes: 3 additions & 3 deletions modules/blockChain/hooks/useGnosisOpener.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import { useWeb3 } from 'modules/blockChain/hooks/useWeb3'
import { openWindow } from 'modules/shared/utils/openWindow'
import { getGnosisSafeLink } from '../utils/getGnosisSafeLink'

export function useGnosisOpener(address: string, linkAddition?: string) {
export function useGnosisOpener(address: string, txHash: string) {
const { chainId } = useWeb3()
return useCallback(() => {
const link = getGnosisSafeLink(chainId, `${address}${linkAddition || ''}`)
const link = getGnosisSafeLink(chainId, address, txHash)
openWindow(link)
}, [chainId, address, linkAddition])
}, [chainId, address, txHash])
}
3 changes: 3 additions & 0 deletions modules/blockChain/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { ContractTransaction } from '@ethersproject/contracts'
import type { CHAINS } from '@lido-sdk/constants'

export type SafeTx = {
safeTxHash: string
Expand All @@ -15,3 +16,5 @@ export type ResultTx =
}

export type TxStatus = 'empty' | 'pending' | 'failed' | 'success'

export type ChainAddressMap = Partial<Record<CHAINS, string>>
3 changes: 0 additions & 3 deletions modules/blockChain/utils/getBackendRpcUrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,4 @@ export const getBackendRpcUrl = (chainId: CHAINS) => {
export const backendRPC = {
[CHAINS.Mainnet]: getBackendRpcUrl(CHAINS.Mainnet),
[CHAINS.Goerli]: getBackendRpcUrl(CHAINS.Goerli),
[CHAINS.Kovan]: getBackendRpcUrl(CHAINS.Kovan),
[CHAINS.Rinkeby]: getBackendRpcUrl(CHAINS.Rinkeby),
[CHAINS.Ropsten]: getBackendRpcUrl(CHAINS.Ropsten),
}
14 changes: 8 additions & 6 deletions modules/blockChain/utils/getGnosisSafeLink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ const PREFIXES = {
[CHAINS.Goerli]: 'gor',
} as const

export const getGnosisSafeLink = (chainId: CHAINS, address: string) =>
`https://app.safe.global/transactions/history?safe=${get(
PREFIXES,
chainId,
'?',
)}:${address}`
export const getGnosisSafeLink = (
chainId: CHAINS,
address: string,
txHash: string,
) => {
const chain = get(PREFIXES, chainId, '?')
return `https://app.safe.global/transactions/tx?safe=${chain}:${address}&id=multisig_${address}_${txHash}`
}
10 changes: 3 additions & 7 deletions modules/motions/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,13 @@ import * as CONTRACT_ADDRESSES from 'modules/blockChain/contractAddresses'
export const MOTION_ATTENTION_PERIOD = 1 / 24

// https://snapshot.org/#/lido-snapshot.eth/proposal/0x75b331e650af1dc6bc98d4e705cfe19c74c55c02a53ad2ae85e207c6004ce847
export const TRANSITION_LIMITS = [
CHAINS.Mainnet,
CHAINS.Rinkeby,
CHAINS.Goerli,
].reduce(
export const TRANSITION_LIMITS = [CHAINS.Mainnet, CHAINS.Goerli].reduce(
(res, chain) => ({
...res,
[chain]: {
'0x0000000000000000000000000000000000000000': 1000,
[CONTRACT_ADDRESSES.STETH[chain]]: 1000,
[CONTRACT_ADDRESSES.GovernanceToken[chain]]: 5000000,
[CONTRACT_ADDRESSES.STETH[chain]!]: 1000,
[CONTRACT_ADDRESSES.GovernanceToken[chain]!]: 5000000,
},
}),
{} as Record<CHAINS, Record<string, number>>,
Expand Down
Loading

0 comments on commit 4a40c2c

Please sign in to comment.