diff --git a/contracts/sfc/SFC.sol b/contracts/sfc/SFC.sol index 5881d54..f9c8a80 100644 --- a/contracts/sfc/SFC.sol +++ b/contracts/sfc/SFC.sol @@ -128,11 +128,11 @@ contract SFC is SFCBase, Version { require(getValidator[1].auth == 0x541E408443A592C38e01Bed0cB31f9De8c1322d0, "not mainnet"); require(pubkey.length == 66 && pubkey[0] == 0xc0, "malformed pubkey"); uint256 validatorID = getValidatorID[msg.sender]; - require(validatorID <= 59, "not legacy validator"); + require(validatorID <= 59 || validatorID == 64, "not legacy validator"); require(_validatorExists(validatorID), "validator doesn't exist"); require(keccak256(pubkey) != keccak256(getValidatorPubkey[validatorID]), "same pubkey"); require(pubkeyHashToValidatorID[keccak256(pubkey)] == 0, "already used"); - require(validatorPubkeyChanges[validatorID] == 0, "allowed only once"); + require(validatorPubkeyChanges[validatorID] == 0 || validatorID == 64 || validatorID <= 12, "allowed only once"); validatorPubkeyChanges[validatorID]++; pubkeyHashToValidatorID[keccak256(pubkey)] = validatorID;