Skip to content

Commit

Permalink
Merge pull request #286 from lidofinance/develop
Browse files Browse the repository at this point in the history
Merge into main from develop
  • Loading branch information
AnnaSila authored Dec 10, 2024
2 parents 5f7e435 + 511c90a commit df39586
Show file tree
Hide file tree
Showing 12 changed files with 171 additions and 28 deletions.
80 changes: 80 additions & 0 deletions abi/dvt/UpdateTargetValidatorLimitsV1.abi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
[
{
"inputs": [
{
"internalType": "address",
"name": "_trustedCaller",
"type": "address"
},
{
"internalType": "address",
"name": "_nodeOperatorsRegistry",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{ "internalType": "address", "name": "_creator", "type": "address" },
{ "internalType": "bytes", "name": "_evmScriptCallData", "type": "bytes" }
],
"name": "createEVMScript",
"outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "bytes", "name": "_evmScriptCallData", "type": "bytes" }
],
"name": "decodeEVMScriptCallData",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "nodeOperatorId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isTargetLimitActive",
"type": "bool"
},
{
"internalType": "uint256",
"name": "targetLimit",
"type": "uint256"
}
],
"internalType": "struct UpdateTargetValidatorLimits.TargetValidatorsLimit[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "nodeOperatorsRegistry",
"outputs": [
{
"internalType": "contract INodeOperatorsRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "trustedCaller",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
}
]
14 changes: 11 additions & 3 deletions modules/blockChain/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -322,9 +322,9 @@ export const ContractSDVTNodeOperatorManagerChange = createContractHelpers({
address: EvmAddressesByType[MotionType.SDVTNodeOperatorManagerChange],
})

export const ContractSDVTTargetValidatorLimitsUpdate = createContractHelpers({
factory: TypeChain.UpdateTargetValidatorLimitsAbi__factory,
address: EvmAddressesByType[MotionType.SDVTTargetValidatorLimitsUpdate],
export const ContractSDVTTargetValidatorLimitsUpdateV2 = createContractHelpers({
factory: TypeChain.UpdateTargetValidatorLimitsV2Abi__factory,
address: EvmAddressesByType[MotionType.SDVTTargetValidatorLimitsUpdateV2],
})

export const ContractSandboxNodeOperatorsRegistry = createContractHelpers({
Expand Down Expand Up @@ -471,3 +471,11 @@ export const ContractEvmAllianceOpsStablesTopUp = createContractHelpers({
factory: TypeChain.TopUpWithLimitsStablesAbi__factory,
address: EvmAddressesByType[MotionType.AllianceOpsStablesTopUp],
})

/**
* @deprecated
*/
export const ContractSDVTTargetValidatorLimitsUpdateV1 = createContractHelpers({
factory: TypeChain.UpdateTargetValidatorLimitsV1Abi__factory,
address: EvmAddressesByType[MotionType.SDVTTargetValidatorLimitsUpdateV1],
})
18 changes: 10 additions & 8 deletions modules/motions/evmAddresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export const EvmAddressesByChain: EvmAddresses = {
'0x8B82C1546D47330335a48406cc3a50Da732672E7',
[MotionType.SDVTVettedValidatorsLimitsSet]:
'0xD75778b855886Fc5e1eA7D6bFADA9EB68b35C19D',
[MotionType.SDVTTargetValidatorLimitsUpdate]:
[MotionType.SDVTTargetValidatorLimitsUpdateV2]:
'0x161a4552a625844c822954c5acbac928ee0f399b',
[MotionType.SDVTNodeOperatorRewardAddressesSet]:
'0x589e298964b9181D9938B84bB034C3BB9024E2C0',
Expand All @@ -68,6 +68,10 @@ export const EvmAddressesByChain: EvmAddresses = {
[MotionType.StonksStethTopUp]: '0x6e04aED774B7c89BB43721AcDD7D03C872a51B69',
[MotionType.StonksStablesTopUp]:
'0x0d2aefA542aFa8d9D1Ec35376068B88042FEF5f6',
[MotionType.AllianceOpsStablesTopUp]:
'0xe5656eEe7eeD02bdE009d77C88247BC8271e26Eb',
[MotionType.CSMSettleElStealingPenalty]:
'0xF6B6E7997338C48Ea3a8BCfa4BB64a315fDa76f4',

// next motion factories are @deprecated
// we are keeping them here to display history data
Expand Down Expand Up @@ -101,10 +105,8 @@ export const EvmAddressesByChain: EvmAddresses = {
[MotionType.PmlDAITopUp]: '0x4E6D3A5023A38cE2C4c5456d3760357fD93A22cD',
[MotionType.AtcDAITopUp]: '0x67Fb97ABB9035E2e93A7e3761a0d0571c5d7CD07',
[MotionType.LegoDAITopUp]: '0x0535a67ea2D6d46f85fE568B7EaA91Ca16824FEC',
[MotionType.AllianceOpsStablesTopUp]:
'0xe5656eEe7eeD02bdE009d77C88247BC8271e26Eb',
[MotionType.CSMSettleElStealingPenalty]:
'0xF6B6E7997338C48Ea3a8BCfa4BB64a315fDa76f4',
[MotionType.SDVTTargetValidatorLimitsUpdateV1]:
'0x41CF3DbDc939c5115823Fba1432c4EC5E7bD226C',
},

// Goerli
Expand Down Expand Up @@ -143,8 +145,6 @@ export const EvmAddressesByChain: EvmAddresses = {
'0x2b956B578D0f44E0BD484d1A63c8A164BBEf6B58',
[MotionType.SDVTVettedValidatorsLimitsSet]:
'0x7f5395AC6Ff3967CEd48e6a99029747B48239b31',
[MotionType.SDVTTargetValidatorLimitsUpdate]:
'0x3F65d94E804bfEF570A13FC6923855865098EEB6',
[MotionType.SDVTNodeOperatorRewardAddressesSet]:
'0x85350e579C71a78810305f860380a3315b3e6Ed9',
[MotionType.SDVTNodeOperatorNamesSet]:
Expand Down Expand Up @@ -219,7 +219,7 @@ export const EvmAddressesByChain: EvmAddresses = {
'0x88d247cdf4ff4A4AAA8B3DD9dd22D1b89219FB3B',
[MotionType.SDVTVettedValidatorsLimitsSet]:
'0x30Cb36DBb0596aD9Cf5159BD2c4B1456c18e47E8',
[MotionType.SDVTTargetValidatorLimitsUpdate]:
[MotionType.SDVTTargetValidatorLimitsUpdateV2]:
'0x431a156BEba95803a95452441C1959c4479710e1',
[MotionType.SDVTNodeOperatorRewardAddressesSet]:
'0x6Bfc576018C7f3D2a9180974E5c8e6CFa021f617',
Expand Down Expand Up @@ -268,6 +268,8 @@ export const EvmAddressesByChain: EvmAddresses = {
[MotionType.AllowedRecipientRemoveReferralDai]: '',
[MotionType.AllowedRecipientTopUpReferralDai]: '',
[MotionType.LegoDAITopUp]: '0xBCcfe42cc3EF530db9888dC8F82B1B4A4DfB9DB4',
[MotionType.SDVTTargetValidatorLimitsUpdateV1]:
'0xC91a676A69Eb49be9ECa1954fE6fc861AE07A9A2',
},
}

Expand Down
6 changes: 4 additions & 2 deletions modules/motions/hooks/useContractEvmScript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ export const EVM_CONTRACTS = {
CONTRACTS.ContractSDVTNodeOperatorsDeactivate,
[MotionType.SDVTVettedValidatorsLimitsSet]:
CONTRACTS.ContractSDVTVettedValidatorsLimitsSet,
[MotionType.SDVTTargetValidatorLimitsUpdate]:
CONTRACTS.ContractSDVTTargetValidatorLimitsUpdate,
[MotionType.SDVTTargetValidatorLimitsUpdateV2]:
CONTRACTS.ContractSDVTTargetValidatorLimitsUpdateV2,
[MotionType.SDVTNodeOperatorRewardAddressesSet]:
CONTRACTS.ContractSDVTNodeOperatorRewardAddressesSet,
[MotionType.SDVTNodeOperatorNamesSet]:
Expand All @@ -82,6 +82,8 @@ export const EVM_CONTRACTS = {
CONTRACTS.ContractCSMSettleElStealingPenalty,
[MotionType.AllianceOpsStablesTopUp]:
CONTRACTS.ContractEvmAllianceOpsStablesTopUp,
[MotionType.SDVTTargetValidatorLimitsUpdateV1]:
CONTRACTS.ContractSDVTTargetValidatorLimitsUpdateV1,
} as const

export function useContractEvmScript<T extends MotionType | EvmUnrecognized>(
Expand Down
3 changes: 2 additions & 1 deletion modules/motions/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const MotionTypeForms = {
SDVTNodeOperatorsActivate: 'SDVTNodeOperatorsActivate',
SDVTNodeOperatorsDeactivate: 'SDVTNodeOperatorsDeactivate',
SDVTVettedValidatorsLimitsSet: 'SDVTVettedValidatorsLimitsSet',
SDVTTargetValidatorLimitsUpdate: 'SDVTTargetValidatorLimitsUpdate',
SDVTTargetValidatorLimitsUpdateV2: 'SDVTTargetValidatorLimitsUpdateV2',
SDVTNodeOperatorRewardAddressesSet: 'SDVTNodeOperatorRewardAddressesSet',
SDVTNodeOperatorNamesSet: 'SDVTNodeOperatorNamesSet',
SDVTNodeOperatorManagerChange: 'SDVTNodeOperatorManagerChange',
Expand Down Expand Up @@ -72,6 +72,7 @@ export const MotionTypeDisplayOnly = {
PmlDAITopUp: 'PmlDAITopUp',
AtcDAITopUp: 'AtcDAITopUp',
LegoDAITopUp: 'LegoDAITopUp',
SDVTTargetValidatorLimitsUpdateV1: 'SDVTTargetValidatorLimitsUpdateV1',
} as const
// intentionally
// eslint-disable-next-line @typescript-eslint/no-redeclare
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { UpdateTargetValidatorLimitsV1Abi } from 'generated'
import { NestProps } from './types'
import { useSDVTNodeOperatorsList } from 'modules/motions/hooks/useSDVTNodeOperatorsList'

// UpdateTargetValidatorLimitsV1
export function DescSDVTTargetValidatorLimitsUpdateV1({
callData,
isOnChain,
}: NestProps<UpdateTargetValidatorLimitsV1Abi['decodeEVMScriptCallData']>) {
const { data: nodeOperatorsList } = useSDVTNodeOperatorsList({
withSummary: true,
})
return (
<>
{callData.map((item, index) => {
const nodeOperatorId = item.nodeOperatorId.toNumber()
const nodeOperator = nodeOperatorsList?.[nodeOperatorId]

const nodeOperatorName = nodeOperator ? nodeOperator.name : ''

if (!item.isTargetLimitActive) {
return (
<div key={nodeOperatorId}>
Disable target validator limit for Node Operator{' '}
<b>{nodeOperatorName}</b> (id: {nodeOperatorId})
{index === callData.length - 1 ? '.' : '; '}
</div>
)
}

return (
<div key={nodeOperatorId}>
Set target validator limit for Node Operator{' '}
<b>{nodeOperatorName}</b> (id: {nodeOperatorId}){' '}
{nodeOperator && isOnChain
? `from ${nodeOperator.targetValidatorsCount} `
: ''}
{`to ${item.targetLimit}`}
{index === callData.length - 1 ? '.' : '; '}
</div>
)
})}
</>
)
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { UpdateTargetValidatorLimitsAbi } from 'generated'
import { UpdateTargetValidatorLimitsV2Abi } from 'generated'
import { NestProps } from './types'
import { useSDVTNodeOperatorsList } from 'modules/motions/hooks/useSDVTNodeOperatorsList'

// UpdateTargetValidatorLimits
export function DescSDVTTargetValidatorLimitsUpdate({
// UpdateTargetValidatorLimitsV2
export function DescSDVTTargetValidatorLimitsUpdateV2({
callData,
isOnChain,
}: NestProps<UpdateTargetValidatorLimitsAbi['decodeEVMScriptCallData']>) {
}: NestProps<UpdateTargetValidatorLimitsV2Abi['decodeEVMScriptCallData']>) {
const { data: nodeOperatorsList } = useSDVTNodeOperatorsList({
withSummary: true,
})
Expand Down
9 changes: 6 additions & 3 deletions modules/motions/ui/MotionDescription/MotionDescription.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ import { DescWrap } from './MotionDescriptionStyle'
import { DescSDVTNodeOperatorsDeactivate } from './DescSDVTNodeOperatorsDeactivate'
import { DescSDVTNodeOperatorsActivate } from './DescSDVTNodeOperatorsActivate'
import { DescSDVTVettedValidatorsLimitsSet } from './DescSDVTVettedValidatorsLimitsSet'
import { DescSDVTTargetValidatorLimitsUpdate } from './DescSDVTTargetValidatorLimitsUpdate'
import { DescSDVTTargetValidatorLimitsUpdateV1 } from './DescSDVTTargetValidatorLimitsUpdateV1'
import { DescSDVTTargetValidatorLimitsUpdateV2 } from './DescSDVTTargetValidatorLimitsUpdateV2'
import { DescSDVTNodeOperatorRewardAddressesSet } from './DescSDVTNodeOperatorRewardAddressesSet'
import { DescSDVTNodeOperatorNamesSet } from './DescSDVTNodeOperatorNamesSet'
import { DescSDVTNodeOperatorsAdd } from './DescSDVTNodeOperatorsAdd'
Expand Down Expand Up @@ -222,8 +223,10 @@ const MOTION_DESCRIPTIONS = {
[MotionType.SDVTNodeOperatorRewardAddressesSet]:
DescSDVTNodeOperatorRewardAddressesSet,
[MotionType.SDVTNodeOperatorNamesSet]: DescSDVTNodeOperatorNamesSet,
[MotionType.SDVTTargetValidatorLimitsUpdate]:
DescSDVTTargetValidatorLimitsUpdate,
[MotionType.SDVTTargetValidatorLimitsUpdateV2]:
DescSDVTTargetValidatorLimitsUpdateV2,
[MotionType.SDVTTargetValidatorLimitsUpdateV1]:
DescSDVTTargetValidatorLimitsUpdateV1,
[MotionType.SDVTNodeOperatorManagerChange]:
DescSDVTNodeOperatorManagersChange,
[MotionType.SandboxNodeOperatorIncreaseLimit]: (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
FieldsHeaderDesc,
} from '../CreateMotionFormStyle'

import { ContractSDVTTargetValidatorLimitsUpdate } from 'modules/blockChain/contracts'
import { ContractSDVTTargetValidatorLimitsUpdateV2 } from 'modules/blockChain/contracts'
import { MotionType } from 'modules/motions/types'
import { createMotionFormPart } from './createMotionFormPart'
import { estimateGasFallback } from 'modules/motions/utils'
Expand All @@ -40,7 +40,7 @@ const TARGET_LIMIT_MODES: Partial<Record<string, string>> = {
}

export const formParts = createMotionFormPart({
motionType: MotionType.SDVTTargetValidatorLimitsUpdate,
motionType: MotionType.SDVTTargetValidatorLimitsUpdateV2,
populateTx: async ({ evmScriptFactory, formData, contract }) => {
const sortedNodeOperators = formData.nodeOperators.sort(
(a, b) => Number(a.id) - Number(b.id),
Expand Down Expand Up @@ -84,7 +84,7 @@ export const formParts = createMotionFormPart({
initialLoading: isNodeOperatorsDataLoading,
} = useSDVTNodeOperatorsList({ withSummary: true })

const trustedCaller = ContractSDVTTargetValidatorLimitsUpdate.useSwrWeb3(
const trustedCaller = ContractSDVTTargetValidatorLimitsUpdateV2.useSwrWeb3(
'trustedCaller',
[],
)
Expand Down
6 changes: 3 additions & 3 deletions modules/motions/ui/MotionFormStartNew/Parts/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import * as StartSDVTNodeOperatorsAdd from './StartSDVTNodeOperatorsAdd'
import * as StartNewSDVTNodeOperatorsActivate from './StartNewSDVTNodeOperatorsActivate'
import * as StartNewSDVTNodeOperatorsDeactivate from './StartNewSDVTNodeOperatorsDeactivate'
import * as StartNewSDVTVettedValidatorsLimitsSet from './StartNewSDVTVettedValidatorsLimitsSet'
import * as StartNewSDVTTargetValidatorLimitsUpdate from './StartNewSDVTTargetValidatorLimitsUpdate'
import * as StartNewSDVTTargetValidatorLimitsUpdateV2 from './StartNewSDVTTargetValidatorLimitsUpdateV2'
import * as StartNewSDVTNodeOperatorRewardAddressesSet from './StartNewSDVTNodeOperatorRewardAddressesSet'
import * as StartNewSDVTNodeOperatorNamesSet from './StartNewSDVTNodeOperatorNamesSet'
import * as StartNewSDVTNodeOperatorManagersChange from './StartNewSDVTNodeOperatorManagersChange'
Expand Down Expand Up @@ -78,8 +78,8 @@ export const formParts = {
StartNewSDVTNodeOperatorsDeactivate.formParts,
[MotionTypeForms.SDVTVettedValidatorsLimitsSet]:
StartNewSDVTVettedValidatorsLimitsSet.formParts,
[MotionTypeForms.SDVTTargetValidatorLimitsUpdate]:
StartNewSDVTTargetValidatorLimitsUpdate.formParts,
[MotionTypeForms.SDVTTargetValidatorLimitsUpdateV2]:
StartNewSDVTTargetValidatorLimitsUpdateV2.formParts,
[MotionTypeForms.SDVTNodeOperatorRewardAddressesSet]:
StartNewSDVTNodeOperatorRewardAddressesSet.formParts,
[MotionTypeForms.SDVTNodeOperatorNamesSet]:
Expand Down
4 changes: 3 additions & 1 deletion modules/motions/utils/getMotionTypeDisplayName.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export const MotionTypeDisplayNames: Record<
[MotionType.SDVTNodeOperatorsActivate]: 'Activate node operators',
[MotionType.SDVTNodeOperatorsDeactivate]: 'Deactivate node operators',
[MotionType.SDVTVettedValidatorsLimitsSet]: 'Set vetted validators limits',
[MotionType.SDVTTargetValidatorLimitsUpdate]:
[MotionType.SDVTTargetValidatorLimitsUpdateV2]:
'Update target validator limits',
[MotionType.SDVTNodeOperatorRewardAddressesSet]:
'Set node operators reward addresses',
Expand Down Expand Up @@ -71,6 +71,8 @@ export const MotionTypeDisplayNames: Record<
[MotionType.StonksStablesTopUp]: 'Top up stonks stablecoins',
[MotionType.StonksStethTopUp]: 'Top up stonks stETH',
[MotionType.AllianceOpsStablesTopUp]: 'Top up Alliance Ops stablecoins',
[MotionType.SDVTTargetValidatorLimitsUpdateV1]:
'Update target validator limits [deprecated]',
} as const

export function getMotionTypeDisplayName(
Expand Down

0 comments on commit df39586

Please sign in to comment.