diff --git a/src/main/java/org/qortal/block/BlockChain.java b/src/main/java/org/qortal/block/BlockChain.java index c5fbffd3..c856ec31 100644 --- a/src/main/java/org/qortal/block/BlockChain.java +++ b/src/main/java/org/qortal/block/BlockChain.java @@ -83,7 +83,8 @@ public class BlockChain { unconfirmableRewardSharesHeight, disableTransferPrivsTimestamp, enableTransferPrivsTimestamp, - cancelSellNameValidationTimestamp + cancelSellNameValidationTimestamp, + disableRewardshareHeight } // Custom transaction fees @@ -400,7 +401,6 @@ public class BlockChain { return this.onlineAccountsModulusV2Timestamp; } - /* Block reward batching */ public long getBlockRewardBatchStartHeight() { return this.blockRewardBatchStartHeight; @@ -617,6 +617,9 @@ public class BlockChain { return this.featureTriggers.get(FeatureTrigger.cancelSellNameValidationTimestamp.name()).longValue(); } + public int getDisableRewardshareHeight() { + return this.featureTriggers.get(FeatureTrigger.disableRewardshareHeight.name()).intValue(); + } // More complex getters for aspects that change by height or timestamp public long getRewardAtHeight(int ourHeight) { diff --git a/src/main/java/org/qortal/transaction/RewardShareTransaction.java b/src/main/java/org/qortal/transaction/RewardShareTransaction.java index b2261181..e9abcb71 100644 --- a/src/main/java/org/qortal/transaction/RewardShareTransaction.java +++ b/src/main/java/org/qortal/transaction/RewardShareTransaction.java @@ -98,6 +98,13 @@ public class RewardShareTransaction extends Transaction { @Override public ValidationResult isValid() throws DataException { + final int disableRs = BlockChain.getInstance().getDisableRewardshareHeight(); + int blockchainHeight = this.repository.getBlockRepository().getBlockchainHeight(); + + // Check if reward share is disabled. + if (blockchainHeight >= disableRs) + return ValidationResult.GENERAL_TEMPORARY_DISABLED; + // Check reward share given to recipient. Negative is potentially OK to end a current reward-share. Zero also fine. if (this.rewardShareTransactionData.getSharePercent() > MAX_SHARE) return ValidationResult.INVALID_REWARD_SHARE_PERCENT; diff --git a/src/main/java/org/qortal/transaction/Transaction.java b/src/main/java/org/qortal/transaction/Transaction.java index 5e5b9fba..eb774252 100644 --- a/src/main/java/org/qortal/transaction/Transaction.java +++ b/src/main/java/org/qortal/transaction/Transaction.java @@ -249,6 +249,7 @@ public abstract class Transaction { ACCOUNT_NOT_TRANSFERABLE(99), TRANSFER_PRIVS_DISABLED(100), TEMPORARY_DISABLED(101), + GENERAL_TEMPORARY_DISABLED(102), INVALID_BUT_OK(999), NOT_YET_RELEASED(1000), NOT_SUPPORTED(1001); diff --git a/src/main/resources/blockchain.json b/src/main/resources/blockchain.json index 6b8ca469..ea80ace6 100644 --- a/src/main/resources/blockchain.json +++ b/src/main/resources/blockchain.json @@ -104,7 +104,8 @@ "unconfirmableRewardSharesHeight": 1575500, "disableTransferPrivsTimestamp": 1706745000000, "enableTransferPrivsTimestamp": 1709251200000, - "cancelSellNameValidationTimestamp": 1676986362069 + "cancelSellNameValidationTimestamp": 1676986362069, + "disableRewardshareHeight": 9999990 }, "checkpoints": [ { "height": 1136300, "signature": "3BbwawEF2uN8Ni5ofpJXkukoU8ctAPxYoFB7whq9pKfBnjfZcpfEJT4R95NvBDoTP8WDyWvsUvbfHbcr9qSZuYpSKZjUQTvdFf6eqznHGEwhZApWfvXu6zjGCxYCp65F4jsVYYJjkzbjmkCg5WAwN5voudngA23kMK6PpTNygapCzXt" } diff --git a/src/main/resources/i18n/TransactionValidity_de.properties b/src/main/resources/i18n/TransactionValidity_de.properties index a2019670..122d95b3 100644 --- a/src/main/resources/i18n/TransactionValidity_de.properties +++ b/src/main/resources/i18n/TransactionValidity_de.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = die Gruppen-ID der Transaktion stimmt nicht überein TRANSFER_PRIVS_DISABLED = Übertragungsberechtigungen deaktiviert TEMPORARY_DISABLED = Namensregistrierung vorübergehend deaktiviert + +GENERAL_TEMPORARY_DISABLED = Vorübergehend deaktiviert diff --git a/src/main/resources/i18n/TransactionValidity_en.properties b/src/main/resources/i18n/TransactionValidity_en.properties index a93db3da..aa25af9d 100644 --- a/src/main/resources/i18n/TransactionValidity_en.properties +++ b/src/main/resources/i18n/TransactionValidity_en.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = transaction's group ID does not match TRANSFER_PRIVS_DISABLED = transfer privileges disabled TEMPORARY_DISABLED = Name registration temporary disabled + +GENERAL_TEMPORARY_DISABLED = Temporary disabled diff --git a/src/main/resources/i18n/TransactionValidity_es.properties b/src/main/resources/i18n/TransactionValidity_es.properties index 8ac7ccf4..2984f229 100644 --- a/src/main/resources/i18n/TransactionValidity_es.properties +++ b/src/main/resources/i18n/TransactionValidity_es.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = el ID de grupo de la transacción no coincide TRANSFER_PRIVS_DISABLED = privilegios de transferencia deshabilitados TEMPORARY_DISABLED = Registro de nombre temporalmente deshabilitado + +GENERAL_TEMPORARY_DISABLED = Temporalmente deshabilitado diff --git a/src/main/resources/i18n/TransactionValidity_fi.properties b/src/main/resources/i18n/TransactionValidity_fi.properties index a7bc9c0a..36235a7b 100644 --- a/src/main/resources/i18n/TransactionValidity_fi.properties +++ b/src/main/resources/i18n/TransactionValidity_fi.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = transaktion ryhmä-ID:n vastaavuusvirhe TRANSFER_PRIVS_DISABLED = siirtooikeudet poistettu käytöstä TEMPORARY_DISABLED = Nimen rekisteröinti tilapäisesti poistettu käytöstä + +GENERAL_TEMPORARY_DISABLED = Tilapäisesti poistettu käytöstä diff --git a/src/main/resources/i18n/TransactionValidity_fr.properties b/src/main/resources/i18n/TransactionValidity_fr.properties index 55ae9082..22413941 100644 --- a/src/main/resources/i18n/TransactionValidity_fr.properties +++ b/src/main/resources/i18n/TransactionValidity_fr.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = l'identifiant du groupe de transaction ne correspond pas TRANSFER_PRIVS_DISABLED = privilèges de transfert désactivés TEMPORARY_DISABLED = Enregistrement du nom temporairement désactivé + +GENERAL_TEMPORARY_DISABLED = Temporairement désactivé diff --git a/src/main/resources/i18n/TransactionValidity_he.properties b/src/main/resources/i18n/TransactionValidity_he.properties index 2f9338f0..3bc149b2 100644 --- a/src/main/resources/i18n/TransactionValidity_he.properties +++ b/src/main/resources/i18n/TransactionValidity_he.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = מזהה הקבוצה של העסקה אינו תואם TRANSFER_PRIVS_DISABLED = הרשאות העברה מושבתות TEMPORARY_DISABLED = רישום שמות מושבת זמנית + +GENERAL_TEMPORARY_DISABLED = נכה זמנית diff --git a/src/main/resources/i18n/TransactionValidity_hu.properties b/src/main/resources/i18n/TransactionValidity_hu.properties index 2dbd9fd0..bfc905ca 100644 --- a/src/main/resources/i18n/TransactionValidity_hu.properties +++ b/src/main/resources/i18n/TransactionValidity_hu.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = a tranzakció csoportazonosítója nem egyezik TRANSFER_PRIVS_DISABLED = átviteli jogosultságok letiltva TEMPORARY_DISABLED = A névregisztráció ideiglenesen le van tiltva + +GENERAL_TEMPORARY_DISABLED = Ideiglenesen letiltva diff --git a/src/main/resources/i18n/TransactionValidity_it.properties b/src/main/resources/i18n/TransactionValidity_it.properties index a520d5ae..ebaa7caa 100644 --- a/src/main/resources/i18n/TransactionValidity_it.properties +++ b/src/main/resources/i18n/TransactionValidity_it.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = identificazione di gruppo della transazione non corrispon TRANSFER_PRIVS_DISABLED = privilegi di trasferimento disabilitati TEMPORARY_DISABLED = Registrazione del nome temporaneamente disabilitata + +GENERAL_TEMPORARY_DISABLED = Temporaneamente disabilitata diff --git a/src/main/resources/i18n/TransactionValidity_jp.properties b/src/main/resources/i18n/TransactionValidity_jp.properties index 3827635c..f5acb35d 100644 --- a/src/main/resources/i18n/TransactionValidity_jp.properties +++ b/src/main/resources/i18n/TransactionValidity_jp.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = トランザクションのグループIDが一致しま TRANSFER_PRIVS_DISABLED = 転送権限が無効になっています TEMPORARY_DISABLED = 名前の登録が一時的に無効になっています + +GENERAL_TEMPORARY_DISABLED = 一時的に無効になっています diff --git a/src/main/resources/i18n/TransactionValidity_ko.properties b/src/main/resources/i18n/TransactionValidity_ko.properties index 2667471c..5f1118c5 100644 --- a/src/main/resources/i18n/TransactionValidity_ko.properties +++ b/src/main/resources/i18n/TransactionValidity_ko.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = 트랜잭션의 그룹 ID가 일치하지 않습니다 TRANSFER_PRIVS_DISABLED = 권한 이전이 비활성화되었습니다. TEMPORARY_DISABLED = 이름 등록이 일시적으로 비활성화되었습니다. + +GENERAL_TEMPORARY_DISABLED = 일시적인 장애 diff --git a/src/main/resources/i18n/TransactionValidity_nl.properties b/src/main/resources/i18n/TransactionValidity_nl.properties index 4f0dd8b7..7ee466d1 100644 --- a/src/main/resources/i18n/TransactionValidity_nl.properties +++ b/src/main/resources/i18n/TransactionValidity_nl.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = groep-ID komt niet overeen TRANSFER_PRIVS_DISABLED = overdrachtsrechten uitgeschakeld TEMPORARY_DISABLED = Naamregistratie tijdelijk uitgeschakeld + +GENERAL_TEMPORARY_DISABLED = Tijdelijk uitgeschakeld diff --git a/src/main/resources/i18n/TransactionValidity_pl.properties b/src/main/resources/i18n/TransactionValidity_pl.properties index 50944674..b441c128 100644 --- a/src/main/resources/i18n/TransactionValidity_pl.properties +++ b/src/main/resources/i18n/TransactionValidity_pl.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = niezgodność ID grupy transakcji TRANSFER_PRIVS_DISABLED = uprawnienia do przenoszenia wyłączone TEMPORARY_DISABLED = Rejestracja nazwy tymczasowo wyłączona + +GENERAL_TEMPORARY_DISABLED = Tymczasowo wyłączona diff --git a/src/main/resources/i18n/TransactionValidity_ro.properties b/src/main/resources/i18n/TransactionValidity_ro.properties index 4c149a62..197f3864 100644 --- a/src/main/resources/i18n/TransactionValidity_ro.properties +++ b/src/main/resources/i18n/TransactionValidity_ro.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = ID-ul de grup al tranzactiei nu se potriveste TRANSFER_PRIVS_DISABLED = privilegii de transfer dezactivate TEMPORARY_DISABLED = Înregistrarea numelui a fost temporar dezactivată + +GENERAL_TEMPORARY_DISABLED = Temporar dezactivată diff --git a/src/main/resources/i18n/TransactionValidity_ru.properties b/src/main/resources/i18n/TransactionValidity_ru.properties index 79307d7d..4e81b82f 100644 --- a/src/main/resources/i18n/TransactionValidity_ru.properties +++ b/src/main/resources/i18n/TransactionValidity_ru.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = не соответствие идентификатор TRANSFER_PRIVS_DISABLED = права на передачу отключены TEMPORARY_DISABLED = Регистрация имени временно отключена + +GENERAL_TEMPORARY_DISABLED = Временно отключен diff --git a/src/main/resources/i18n/TransactionValidity_sv.properties b/src/main/resources/i18n/TransactionValidity_sv.properties index d4688310..e815d282 100644 --- a/src/main/resources/i18n/TransactionValidity_sv.properties +++ b/src/main/resources/i18n/TransactionValidity_sv.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = transaktionens grupp-ID matchar inte TRANSFER_PRIVS_DISABLED = överföringsprivilegier inaktiverade TEMPORARY_DISABLED = Namnregistrering tillfälligt inaktiverad + +GENERAL_TEMPORARY_DISABLED = Tillfälligt inaktiverad diff --git a/src/main/resources/i18n/TransactionValidity_zh_CN.properties b/src/main/resources/i18n/TransactionValidity_zh_CN.properties index cd16bf64..afa95f8b 100644 --- a/src/main/resources/i18n/TransactionValidity_zh_CN.properties +++ b/src/main/resources/i18n/TransactionValidity_zh_CN.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = 群组ID交易不吻合 TRANSFER_PRIVS_DISABLED = 传输权限已禁用 TEMPORARY_DISABLED = 名称注册暂时禁用 + +GENERAL_TEMPORARY_DISABLED = 暂时残障 diff --git a/src/main/resources/i18n/TransactionValidity_zh_TW.properties b/src/main/resources/i18n/TransactionValidity_zh_TW.properties index d039a8e7..3110bf25 100644 --- a/src/main/resources/i18n/TransactionValidity_zh_TW.properties +++ b/src/main/resources/i18n/TransactionValidity_zh_TW.properties @@ -197,3 +197,5 @@ TX_GROUP_ID_MISMATCH = 群組ID交易不吻合 TRANSFER_PRIVS_DISABLED = 傳輸權限已停用 TEMPORARY_DISABLED = 名稱註冊暫時停用 + +GENERAL_TEMPORARY_DISABLED = 暫時殘障 diff --git a/testnet/testchain.json b/testnet/testchain.json index e901397f..0e88d269 100644 --- a/testnet/testchain.json +++ b/testnet/testchain.json @@ -101,7 +101,8 @@ "unconfirmableRewardSharesHeight": 9999999, "disableTransferPrivsTimestamp": 9999999999990, "enableTransferPrivsTimestamp": 9999999999999, - "cancelSellNameValidationTimestamp": 9999999999999 + "cancelSellNameValidationTimestamp": 9999999999999, + "disableRewardshareHeight": 9999990 }, "genesisInfo": { "version": 4,