from __future__ import annotations
from typing import Final
from evmos.constants import NOT_MODIFY
from evmos.eip712.base import MsgInterface
MSG_EDIT_VALIDATOR_TYPES: Final = {
'TypeDescription': [
{'name': 'moniker', 'type': 'string'},
{'name': 'identity', 'type': 'string'},
{'name': 'website', 'type': 'string'},
{'name': 'security_contact', 'type': 'string'},
{'name': 'details', 'type': 'string'},
],
'MsgValue': [
{'name': 'description', 'type': 'TypeDescription'},
{'name': 'validator_address', 'type': 'string'},
{'name': 'commission_rate', 'type': 'string'},
{'name': 'min_self_delegation', 'type': 'string'},
],
}
"""Types for validator editing message."""
[docs]def create_msg_edit_validator(
*,
moniker: str | None,
identity: str | None,
website: str | None,
security_contact: str | None,
details: str | None,
validator_address: str,
commission_rate: int | str | None = None,
min_self_delegation: int | str | None = None,
) -> MsgInterface:
"""Create validator editing message."""
return {
'type': 'cosmos-sdk/MsgEditValidator',
'value': {
'description': {
'moniker': moniker or NOT_MODIFY,
'identity': identity or NOT_MODIFY,
'website': website or NOT_MODIFY,
'security_contact': security_contact or NOT_MODIFY,
'details': details or NOT_MODIFY,
},
'validator_address': validator_address,
'commission_rate': str(commission_rate or '<nil>'),
'min_self_delegation': str(min_self_delegation or '<nil>'),
},
}