From 3b71051a837b71b1a02fca4d3096e41efbce8538 Mon Sep 17 00:00:00 2001 From: Alexander Belokon Date: Sun, 1 Dec 2024 15:54:47 +0100 Subject: [PATCH 1/2] refactor: rename `SDVTTargetValidatorLimitsUpdate` to `SDVTTargetValidatorLimitsUpdateV2` --- .../UpdateTargetValidatorLimitsV1.abi.json | 80 +++++++++++++++++++ ...=> UpdateTargetValidatorLimitsV2.abi.json} | 0 modules/blockChain/contracts.ts | 6 +- modules/motions/evmAddresses.ts | 6 +- modules/motions/hooks/useContractEvmScript.ts | 4 +- modules/motions/types.ts | 2 +- .../DescSDVTTargetValidatorLimitsUpdateV1.tsx | 45 +++++++++++ ...DescSDVTTargetValidatorLimitsUpdateV2.tsx} | 8 +- .../MotionDescription/MotionDescription.tsx | 6 +- ...tNewSDVTTargetValidatorLimitsUpdateV2.tsx} | 6 +- .../ui/MotionFormStartNew/Parts/index.ts | 6 +- .../motions/utils/getMotionTypeDisplayName.ts | 2 +- 12 files changed, 147 insertions(+), 24 deletions(-) create mode 100644 abi/dvt/UpdateTargetValidatorLimitsV1.abi.json rename abi/dvt/{UpdateTargetValidatorLimits.abi.json => UpdateTargetValidatorLimitsV2.abi.json} (100%) create mode 100644 modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx rename modules/motions/ui/MotionDescription/{DescSDVTTargetValidatorLimitsUpdate.tsx => DescSDVTTargetValidatorLimitsUpdateV2.tsx} (87%) rename modules/motions/ui/MotionFormStartNew/Parts/{StartNewSDVTTargetValidatorLimitsUpdate.tsx => StartNewSDVTTargetValidatorLimitsUpdateV2.tsx} (98%) diff --git a/abi/dvt/UpdateTargetValidatorLimitsV1.abi.json b/abi/dvt/UpdateTargetValidatorLimitsV1.abi.json new file mode 100644 index 00000000..fd83e5b1 --- /dev/null +++ b/abi/dvt/UpdateTargetValidatorLimitsV1.abi.json @@ -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" + } +] diff --git a/abi/dvt/UpdateTargetValidatorLimits.abi.json b/abi/dvt/UpdateTargetValidatorLimitsV2.abi.json similarity index 100% rename from abi/dvt/UpdateTargetValidatorLimits.abi.json rename to abi/dvt/UpdateTargetValidatorLimitsV2.abi.json diff --git a/modules/blockChain/contracts.ts b/modules/blockChain/contracts.ts index 15dac7cc..241cf3bf 100644 --- a/modules/blockChain/contracts.ts +++ b/modules/blockChain/contracts.ts @@ -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({ diff --git a/modules/motions/evmAddresses.ts b/modules/motions/evmAddresses.ts index 1fbeaffd..5ba477b1 100644 --- a/modules/motions/evmAddresses.ts +++ b/modules/motions/evmAddresses.ts @@ -57,7 +57,7 @@ export const EvmAddressesByChain: EvmAddresses = { '0x8B82C1546D47330335a48406cc3a50Da732672E7', [MotionType.SDVTVettedValidatorsLimitsSet]: '0xD75778b855886Fc5e1eA7D6bFADA9EB68b35C19D', - [MotionType.SDVTTargetValidatorLimitsUpdate]: + [MotionType.SDVTTargetValidatorLimitsUpdateV2]: '0x161a4552a625844c822954c5acbac928ee0f399b', [MotionType.SDVTNodeOperatorRewardAddressesSet]: '0x589e298964b9181D9938B84bB034C3BB9024E2C0', @@ -143,8 +143,6 @@ export const EvmAddressesByChain: EvmAddresses = { '0x2b956B578D0f44E0BD484d1A63c8A164BBEf6B58', [MotionType.SDVTVettedValidatorsLimitsSet]: '0x7f5395AC6Ff3967CEd48e6a99029747B48239b31', - [MotionType.SDVTTargetValidatorLimitsUpdate]: - '0x3F65d94E804bfEF570A13FC6923855865098EEB6', [MotionType.SDVTNodeOperatorRewardAddressesSet]: '0x85350e579C71a78810305f860380a3315b3e6Ed9', [MotionType.SDVTNodeOperatorNamesSet]: @@ -219,7 +217,7 @@ export const EvmAddressesByChain: EvmAddresses = { '0x88d247cdf4ff4A4AAA8B3DD9dd22D1b89219FB3B', [MotionType.SDVTVettedValidatorsLimitsSet]: '0x30Cb36DBb0596aD9Cf5159BD2c4B1456c18e47E8', - [MotionType.SDVTTargetValidatorLimitsUpdate]: + [MotionType.SDVTTargetValidatorLimitsUpdateV2]: '0x431a156BEba95803a95452441C1959c4479710e1', [MotionType.SDVTNodeOperatorRewardAddressesSet]: '0x6Bfc576018C7f3D2a9180974E5c8e6CFa021f617', diff --git a/modules/motions/hooks/useContractEvmScript.ts b/modules/motions/hooks/useContractEvmScript.ts index f15a0990..f05ee980 100644 --- a/modules/motions/hooks/useContractEvmScript.ts +++ b/modules/motions/hooks/useContractEvmScript.ts @@ -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]: diff --git a/modules/motions/types.ts b/modules/motions/types.ts index 95d8d787..067d3da4 100644 --- a/modules/motions/types.ts +++ b/modules/motions/types.ts @@ -26,7 +26,7 @@ export const MotionTypeForms = { SDVTNodeOperatorsActivate: 'SDVTNodeOperatorsActivate', SDVTNodeOperatorsDeactivate: 'SDVTNodeOperatorsDeactivate', SDVTVettedValidatorsLimitsSet: 'SDVTVettedValidatorsLimitsSet', - SDVTTargetValidatorLimitsUpdate: 'SDVTTargetValidatorLimitsUpdate', + SDVTTargetValidatorLimitsUpdateV2: 'SDVTTargetValidatorLimitsUpdateV2', SDVTNodeOperatorRewardAddressesSet: 'SDVTNodeOperatorRewardAddressesSet', SDVTNodeOperatorNamesSet: 'SDVTNodeOperatorNamesSet', SDVTNodeOperatorManagerChange: 'SDVTNodeOperatorManagerChange', diff --git a/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx b/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx new file mode 100644 index 00000000..e7c10e74 --- /dev/null +++ b/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx @@ -0,0 +1,45 @@ +import { UpdateTargetValidatorLimitsV1Abi } from 'generated' +import { NestProps } from './types' +import { useSDVTNodeOperatorsList } from 'modules/motions/hooks/useSDVTNodeOperatorsList' + +// UpdateTargetValidatorLimitsV1 +export function DescSDVTTargetValidatorLimitsUpdate({ + callData, + isOnChain, +}: NestProps) { + 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 ( +
+ Disable target validator limit for Node Operator{' '} + {nodeOperatorName} (id: {nodeOperatorId}) + {index === callData.length - 1 ? '.' : '; '} +
+ ) + } + + return ( +
+ Set target validator limit for Node Operator{' '} + {nodeOperatorName} (id: {nodeOperatorId}){' '} + {nodeOperator && isOnChain + ? `from ${nodeOperator.targetValidatorsCount} ` + : ''} + {`to ${item.targetLimit}`} + {index === callData.length - 1 ? '.' : '; '} +
+ ) + })} + + ) +} diff --git a/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdate.tsx b/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV2.tsx similarity index 87% rename from modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdate.tsx rename to modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV2.tsx index 6450e05f..a64448e1 100644 --- a/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdate.tsx +++ b/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV2.tsx @@ -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) { +}: NestProps) { const { data: nodeOperatorsList } = useSDVTNodeOperatorsList({ withSummary: true, }) diff --git a/modules/motions/ui/MotionDescription/MotionDescription.tsx b/modules/motions/ui/MotionDescription/MotionDescription.tsx index e05ed59c..d9c1247f 100644 --- a/modules/motions/ui/MotionDescription/MotionDescription.tsx +++ b/modules/motions/ui/MotionDescription/MotionDescription.tsx @@ -37,7 +37,7 @@ import { DescWrap } from './MotionDescriptionStyle' import { DescSDVTNodeOperatorsDeactivate } from './DescSDVTNodeOperatorsDeactivate' import { DescSDVTNodeOperatorsActivate } from './DescSDVTNodeOperatorsActivate' import { DescSDVTVettedValidatorsLimitsSet } from './DescSDVTVettedValidatorsLimitsSet' -import { DescSDVTTargetValidatorLimitsUpdate } from './DescSDVTTargetValidatorLimitsUpdate' +import { DescSDVTTargetValidatorLimitsUpdateV2 } from './DescSDVTTargetValidatorLimitsUpdateV2' import { DescSDVTNodeOperatorRewardAddressesSet } from './DescSDVTNodeOperatorRewardAddressesSet' import { DescSDVTNodeOperatorNamesSet } from './DescSDVTNodeOperatorNamesSet' import { DescSDVTNodeOperatorsAdd } from './DescSDVTNodeOperatorsAdd' @@ -222,8 +222,8 @@ const MOTION_DESCRIPTIONS = { [MotionType.SDVTNodeOperatorRewardAddressesSet]: DescSDVTNodeOperatorRewardAddressesSet, [MotionType.SDVTNodeOperatorNamesSet]: DescSDVTNodeOperatorNamesSet, - [MotionType.SDVTTargetValidatorLimitsUpdate]: - DescSDVTTargetValidatorLimitsUpdate, + [MotionType.SDVTTargetValidatorLimitsUpdateV2]: + DescSDVTTargetValidatorLimitsUpdateV2, [MotionType.SDVTNodeOperatorManagerChange]: DescSDVTNodeOperatorManagersChange, [MotionType.SandboxNodeOperatorIncreaseLimit]: ( diff --git a/modules/motions/ui/MotionFormStartNew/Parts/StartNewSDVTTargetValidatorLimitsUpdate.tsx b/modules/motions/ui/MotionFormStartNew/Parts/StartNewSDVTTargetValidatorLimitsUpdateV2.tsx similarity index 98% rename from modules/motions/ui/MotionFormStartNew/Parts/StartNewSDVTTargetValidatorLimitsUpdate.tsx rename to modules/motions/ui/MotionFormStartNew/Parts/StartNewSDVTTargetValidatorLimitsUpdateV2.tsx index 93b4f81b..f61802dd 100644 --- a/modules/motions/ui/MotionFormStartNew/Parts/StartNewSDVTTargetValidatorLimitsUpdate.tsx +++ b/modules/motions/ui/MotionFormStartNew/Parts/StartNewSDVTTargetValidatorLimitsUpdateV2.tsx @@ -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' @@ -40,7 +40,7 @@ const TARGET_LIMIT_MODES: Partial> = { } 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), @@ -84,7 +84,7 @@ export const formParts = createMotionFormPart({ initialLoading: isNodeOperatorsDataLoading, } = useSDVTNodeOperatorsList({ withSummary: true }) - const trustedCaller = ContractSDVTTargetValidatorLimitsUpdate.useSwrWeb3( + const trustedCaller = ContractSDVTTargetValidatorLimitsUpdateV2.useSwrWeb3( 'trustedCaller', [], ) diff --git a/modules/motions/ui/MotionFormStartNew/Parts/index.ts b/modules/motions/ui/MotionFormStartNew/Parts/index.ts index 92892303..7da7dfe4 100644 --- a/modules/motions/ui/MotionFormStartNew/Parts/index.ts +++ b/modules/motions/ui/MotionFormStartNew/Parts/index.ts @@ -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' @@ -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]: diff --git a/modules/motions/utils/getMotionTypeDisplayName.ts b/modules/motions/utils/getMotionTypeDisplayName.ts index bb206c0b..8e738d48 100644 --- a/modules/motions/utils/getMotionTypeDisplayName.ts +++ b/modules/motions/utils/getMotionTypeDisplayName.ts @@ -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', From b9fe4ce630669a0144105349f45d65fe0f620df0 Mon Sep 17 00:00:00 2001 From: Alexander Belokon Date: Sun, 1 Dec 2024 16:03:47 +0100 Subject: [PATCH 2/2] feat: add factory `SDVTTargetValidatorLimitsUpdateV1` for a backward compatibility --- modules/blockChain/contracts.ts | 8 ++++++++ modules/motions/evmAddresses.ts | 12 ++++++++---- modules/motions/hooks/useContractEvmScript.ts | 2 ++ modules/motions/types.ts | 1 + .../DescSDVTTargetValidatorLimitsUpdateV1.tsx | 2 +- .../ui/MotionDescription/MotionDescription.tsx | 3 +++ modules/motions/utils/getMotionTypeDisplayName.ts | 2 ++ 7 files changed, 25 insertions(+), 5 deletions(-) diff --git a/modules/blockChain/contracts.ts b/modules/blockChain/contracts.ts index 241cf3bf..d14e8cee 100644 --- a/modules/blockChain/contracts.ts +++ b/modules/blockChain/contracts.ts @@ -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], +}) diff --git a/modules/motions/evmAddresses.ts b/modules/motions/evmAddresses.ts index 5ba477b1..d6c8873f 100644 --- a/modules/motions/evmAddresses.ts +++ b/modules/motions/evmAddresses.ts @@ -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 @@ -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 @@ -266,6 +268,8 @@ export const EvmAddressesByChain: EvmAddresses = { [MotionType.AllowedRecipientRemoveReferralDai]: '', [MotionType.AllowedRecipientTopUpReferralDai]: '', [MotionType.LegoDAITopUp]: '0xBCcfe42cc3EF530db9888dC8F82B1B4A4DfB9DB4', + [MotionType.SDVTTargetValidatorLimitsUpdateV1]: + '0xC91a676A69Eb49be9ECa1954fE6fc861AE07A9A2', }, } diff --git a/modules/motions/hooks/useContractEvmScript.ts b/modules/motions/hooks/useContractEvmScript.ts index f05ee980..69b693ba 100644 --- a/modules/motions/hooks/useContractEvmScript.ts +++ b/modules/motions/hooks/useContractEvmScript.ts @@ -82,6 +82,8 @@ export const EVM_CONTRACTS = { CONTRACTS.ContractCSMSettleElStealingPenalty, [MotionType.AllianceOpsStablesTopUp]: CONTRACTS.ContractEvmAllianceOpsStablesTopUp, + [MotionType.SDVTTargetValidatorLimitsUpdateV1]: + CONTRACTS.ContractSDVTTargetValidatorLimitsUpdateV1, } as const export function useContractEvmScript( diff --git a/modules/motions/types.ts b/modules/motions/types.ts index 067d3da4..1a6494e7 100644 --- a/modules/motions/types.ts +++ b/modules/motions/types.ts @@ -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 diff --git a/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx b/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx index e7c10e74..794de11d 100644 --- a/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx +++ b/modules/motions/ui/MotionDescription/DescSDVTTargetValidatorLimitsUpdateV1.tsx @@ -3,7 +3,7 @@ import { NestProps } from './types' import { useSDVTNodeOperatorsList } from 'modules/motions/hooks/useSDVTNodeOperatorsList' // UpdateTargetValidatorLimitsV1 -export function DescSDVTTargetValidatorLimitsUpdate({ +export function DescSDVTTargetValidatorLimitsUpdateV1({ callData, isOnChain, }: NestProps) { diff --git a/modules/motions/ui/MotionDescription/MotionDescription.tsx b/modules/motions/ui/MotionDescription/MotionDescription.tsx index d9c1247f..43c795de 100644 --- a/modules/motions/ui/MotionDescription/MotionDescription.tsx +++ b/modules/motions/ui/MotionDescription/MotionDescription.tsx @@ -37,6 +37,7 @@ import { DescWrap } from './MotionDescriptionStyle' import { DescSDVTNodeOperatorsDeactivate } from './DescSDVTNodeOperatorsDeactivate' import { DescSDVTNodeOperatorsActivate } from './DescSDVTNodeOperatorsActivate' import { DescSDVTVettedValidatorsLimitsSet } from './DescSDVTVettedValidatorsLimitsSet' +import { DescSDVTTargetValidatorLimitsUpdateV1 } from './DescSDVTTargetValidatorLimitsUpdateV1' import { DescSDVTTargetValidatorLimitsUpdateV2 } from './DescSDVTTargetValidatorLimitsUpdateV2' import { DescSDVTNodeOperatorRewardAddressesSet } from './DescSDVTNodeOperatorRewardAddressesSet' import { DescSDVTNodeOperatorNamesSet } from './DescSDVTNodeOperatorNamesSet' @@ -224,6 +225,8 @@ const MOTION_DESCRIPTIONS = { [MotionType.SDVTNodeOperatorNamesSet]: DescSDVTNodeOperatorNamesSet, [MotionType.SDVTTargetValidatorLimitsUpdateV2]: DescSDVTTargetValidatorLimitsUpdateV2, + [MotionType.SDVTTargetValidatorLimitsUpdateV1]: + DescSDVTTargetValidatorLimitsUpdateV1, [MotionType.SDVTNodeOperatorManagerChange]: DescSDVTNodeOperatorManagersChange, [MotionType.SandboxNodeOperatorIncreaseLimit]: ( diff --git a/modules/motions/utils/getMotionTypeDisplayName.ts b/modules/motions/utils/getMotionTypeDisplayName.ts index 8e738d48..5b4643bd 100644 --- a/modules/motions/utils/getMotionTypeDisplayName.ts +++ b/modules/motions/utils/getMotionTypeDisplayName.ts @@ -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(