diff --git a/i18n/ar.json b/i18n/ar.json
index a891d88a9de4123d2c5017b3ee0852a8905caae7..6e7f777a0d8e6dfa66f9f7bb80cac18968c30267 100644
--- a/i18n/ar.json
+++ b/i18n/ar.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(بروكسي)",
"common.page": "صفحة",
- "common.and": "و",
- "common.bytes": " بايت",
"currentBlockCard.currentBlock": "البلوك الحالي",
"currentBlockCard.secsAgo": "ثانية مضت",
"currentBlockCard.transactions": "المعاملات",
@@ -561,15 +559,7 @@
"formatter.formatAccountCreateWithDelegationOperation.createdAccount": "أنشأ حسابًا جديدًا:",
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "مع تفويض:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "ورسوم:",
- "formatter.formatWitnessSetPropertiesOperation.action": "قام بتحديث خصائص الشاهد",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " قام بتحديث سعر الصرف إلى ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " قام بتغيير مفتاح توقيع الكتل إلى ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " قام بتعيين رسوم إنشاء الحساب إلى ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " قام بتعيين الحد الأقصى لحجم الكتلة إلى ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " قام بتعيين سعر الفائدة على HBD إلى ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " قام بتحديث رابط الشاهد إلى ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " قام بتعيين ميزانية دعم الحساب إلى ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " قام بتعيين اضمحلال دعم الحساب إلى ",
+ "formatter.formatWitnessSetPropertiesOperation.action": "حدث خصائص الشاهد",
"formatter.formatAccountUpdate2Operation.action": "حدث حسابًا",
"formatter.formatCreateProposalOperation.createdProposalFor": "أنشأ اقتراحًا لـ",
"formatter.formatCreateProposalOperation.dailyToReceiver": "يوميًا إلى",
diff --git a/i18n/de.json b/i18n/de.json
index e92edfb1aeddf51b864dda60082197a5dabde511..b7c3a6c98d0b44ee0d22c83b2fb2057612cc2e22 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(Proxy)",
"common.page": "Seite",
- "common.and": "und",
- "common.bytes": " Bytes",
"currentBlockCard.currentBlock": "Aktueller Block",
"currentBlockCard.secsAgo": "Sekunden zuvor",
"currentBlockCard.transactions": "Transaktionen",
@@ -554,15 +552,7 @@
"formatter.formatAccountCreateWithDelegationOperation.createdAccount": "erstellte neues Konto:",
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "mit Delegation:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "und Gebühr:",
- "formatter.formatWitnessSetPropertiesOperation.action": "Zeugeneigenschaften aktualisiert",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " hat den Preiskurs aktualisiert auf ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " hat den Signierschlüssel geändert zu ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " hat die Gebühr für die Kontoerstellung festgelegt auf ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " hat die maximale Blockgröße festgelegt auf ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " hat den HBD-Zinssatz festgelegt auf ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " hat die Zeugen-URL aktualisiert auf ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " hat das Kontosubventionsbudget festgelegt auf ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " hat den Kontosubventionsverfall festgelegt auf ",
+ "formatter.formatWitnessSetPropertiesOperation.action": "aktualisierte Zeugen-Eigenschaften",
"formatter.formatAccountUpdate2Operation.action": "aktualisierte ein Konto",
"formatter.formatCreateProposalOperation.createdProposalFor": "erstellte einen Vorschlag für",
"formatter.formatCreateProposalOperation.dailyToReceiver": "täglich an",
diff --git a/i18n/en.json b/i18n/en.json
index ee92daca6e4616034114ecc86e4ddf82138afbfb..8505839b719fde78abe969b0e75cbc027a28e81d 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "page",
- "common.and" : "and",
- "common.bytes": " bytes",
"currentBlockCard.currentBlock": "Current Block",
"currentBlockCard.secsAgo": "secs ago",
"currentBlockCard.transactions": "Transactions",
@@ -552,14 +550,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "with delegation:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "and fee:",
"formatter.formatWitnessSetPropertiesOperation.action": "updated witness properties",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " updated the price feed to ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " rotated the block signing key to ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " set the account creation fee to ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " set the maximum block size to ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " set the HBD interest rate to ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " updated their witness URL to ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " set the account subsidy budget to ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " set the account subsidy decay to ",
"formatter.formatAccountUpdate2Operation.action": "updated an account",
"formatter.formatCreateProposalOperation.createdProposalFor": "created a proposal for",
"formatter.formatCreateProposalOperation.dailyToReceiver": "daily to",
diff --git a/i18n/es.json b/i18n/es.json
index 619b032ac2af7aa46f6cc56a4b531a362e19e819..5de4a9caf94f37ab4bc8a4ebfac20b92d44c949c 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "página",
- "common.and": "y",
- "common.bytes": " bytes",
"currentBlockCard.currentBlock": "Bloque Actual",
"currentBlockCard.secsAgo": "hace segundos",
"currentBlockCard.transactions": "Transacciones",
@@ -553,14 +551,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "con delegación:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "y tarifa:",
"formatter.formatWitnessSetPropertiesOperation.action": "actualizó las propiedades del testigo",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " actualizó la tasa de cambio a ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " cambió la clave de firma de bloques a ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " estableció la tarifa de creación de cuenta en ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " estableció el tamaño máximo de bloque en ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " estableció la tasa de interés de HBD en ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " actualizó la URL del testigo a ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " estableció el presupuesto de subsidio de cuenta en ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " estableció la disminución del subsidio de cuenta en ",
"formatter.formatAccountUpdate2Operation.action": "actualizó una cuenta",
"formatter.formatCreateProposalOperation.createdProposalFor": "creó una propuesta por",
"formatter.formatCreateProposalOperation.dailyToReceiver": "diarios para",
diff --git a/i18n/fr.json b/i18n/fr.json
index 82b5e68af664ae2942f9266bf4235b6d9dd9975d..172607bcfc0d7ca31e27337d77f8fdbb75eacc1e 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "page",
- "common.and": "et",
- "common.bytes": " octets",
"currentBlockCard.currentBlock": "Bloc Actuel",
"currentBlockCard.secsAgo": "secondes plus tôt",
"currentBlockCard.transactions": "Transactions",
@@ -554,14 +552,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "avec délégation :",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "et frais :",
"formatter.formatWitnessSetPropertiesOperation.action": "a mis à jour les propriétés du témoin",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " a mis à jour le fil de prix à ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " a changé la clé de signature de bloc pour ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " a défini les frais de création de compte à ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " a défini la taille maximale des blocs à ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " a défini le taux d'intérêt HBD à ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " a mis à jour son URL de témoin pour ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " a défini le budget de subvention de compte à ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " a défini la décroissance de la subvention de compte à ",
"formatter.formatAccountUpdate2Operation.action": "a mis à jour un compte",
"formatter.formatCreateProposalOperation.createdProposalFor": "a créé une proposition pour",
"formatter.formatCreateProposalOperation.dailyToReceiver": "quotidiens à",
diff --git a/i18n/it.json b/i18n/it.json
index 647f548737e87483e7245c63ce510b05835c5e2c..38564dbcd7d2d0bb821c018848122104cabe67ba 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "pagina",
- "common.and": "e",
- "common.bytes": " byte",
"currentBlockCard.currentBlock": "Blocco Corrente",
"currentBlockCard.secsAgo": "secondi fa",
"currentBlockCard.transactions": "Transazioni",
@@ -554,14 +552,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "con delega:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "e commissione:",
"formatter.formatWitnessSetPropertiesOperation.action": "ha aggiornato le proprietà del testimone",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " ha aggiornato il feed del prezzo a ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " ha cambiato la chiave di firma del blocco in ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " ha impostato la commissione di creazione dell'account a ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " ha impostato la dimensione massima del blocco a ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " ha impostato il tasso di interesse HBD al ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " ha aggiornato l'URL del testimone a ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " ha impostato il budget di sussidio dell'account a ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " ha impostato il decadimento del sussidio dell'account a ",
"formatter.formatAccountUpdate2Operation.action": "ha aggiornato un account",
"formatter.formatCreateProposalOperation.createdProposalFor": "ha creato una proposta per",
"formatter.formatCreateProposalOperation.dailyToReceiver": "giornalieri a",
diff --git a/i18n/ja.json b/i18n/ja.json
index 5295f4c2d4518c41e5b9fdbfab7f3a8c73e05aed..68d18bc16427928cc9069fb3a04b65669e298fe2 100644
--- a/i18n/ja.json
+++ b/i18n/ja.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(プロキシ)",
"common.page": "ページ",
- "common.and": "、",
- "common.bytes": " バイトに設定",
"currentBlockCard.currentBlock": "現在のブロック",
"currentBlockCard.secsAgo": "秒前",
"currentBlockCard.transactions": "トランザクション",
@@ -554,15 +552,7 @@
"formatter.formatAccountCreateWithDelegationOperation.createdAccount": "が新しいアカウントを作成しました:",
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "、委任付き:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "、手数料:",
- "formatter.formatWitnessSetPropertiesOperation.action": "がウィットネスのプロパティを更新しました",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " が価格フィードを ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " がブロック署名キーを ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " がアカウント作成手数料を ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " が最大ブロックサイズを ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " がHBD金利を ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " がウィットネスURLを ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " がアカウント補助金バジェットを ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " がアカウント補助金の減衰を ",
+ "formatter.formatWitnessSetPropertiesOperation.action": "が証人プロパティを更新しました",
"formatter.formatAccountUpdate2Operation.action": "がアカウントを更新しました",
"formatter.formatCreateProposalOperation.createdProposalFor": "の提案を作成しました",
"formatter.formatCreateProposalOperation.dailyToReceiver": "を毎日",
diff --git a/i18n/ko.json b/i18n/ko.json
index 26dcedf528129c773872e8b400b8ffd39b198a76..6754868f527aab81ad6e12f099085a0173cde86d 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(프록시)",
"common.page": "페이지",
- "common.and": " 그리고 ",
- "common.bytes": " 바이트로 설정",
"currentBlockCard.currentBlock": "현재 블록",
"currentBlockCard.secsAgo": "초 전",
"currentBlockCard.transactions": "트랜잭션",
@@ -554,14 +552,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": ", 위임 포함:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": ", 수수료:",
"formatter.formatWitnessSetPropertiesOperation.action": "님이 증인 속성을 업데이트했습니다",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": "님이 가격 피드를 ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": "님이 블록 서명 키를 ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": "님이 계정 생성 수수료를 ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": "님이 최대 블록 크기를 ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": "님이 HBD 이자율을 ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": "님이 증인 URL을 ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": "님이 계정 보조금 예산을 ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": "님이 계정 보조금 감소율을 ",
"formatter.formatAccountUpdate2Operation.action": "님이 계정을 업데이트했습니다",
"formatter.formatCreateProposalOperation.createdProposalFor": "에 대한 제안을 생성했습니다",
"formatter.formatCreateProposalOperation.dailyToReceiver": "를 매일",
diff --git a/i18n/pl.json b/i18n/pl.json
index 0688ae60c46ee3a7e1a6c630c66561bd077b0929..06a646945604773e3b28339f23773860a4208bb5 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "strona",
- "common.and": "i",
- "common.bytes": " bajtów" ,
"currentBlockCard.currentBlock": "Bieżący Blok",
"currentBlockCard.secsAgo": "sekund temu",
"currentBlockCard.transactions": "Transakcje",
@@ -555,14 +553,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "z delegacją:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "i opłatą:",
"formatter.formatWitnessSetPropertiesOperation.action": "zaktualizował właściwości świadka",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " zaktualizował kurs wymiany na ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " zmienił klucz do podpisywania bloków na ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " ustawił opłatę za utworzenie konta na ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " ustawił maksymalny rozmiar bloku na ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " ustawił stopę procentową HBD na ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " zaktualizował adres URL świadka na ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " ustawił budżet dotacji na konta na ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " ustawił zanik dotacji na konta na ",
"formatter.formatAccountUpdate2Operation.action": "zaktualizował konto",
"formatter.formatCreateProposalOperation.createdProposalFor": "utworzył propozycję na",
"formatter.formatCreateProposalOperation.dailyToReceiver": "dziennie do",
diff --git a/i18n/pt.json b/i18n/pt.json
index f1ee68ce0e194d6c29bf38c6b1ef95a28ba9ac09..3a22790aef6e72601dd1187e447cf0038cd7b0b0 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "página",
- "common.and": "e",
- "common.bytes": " bytes",
"currentBlockCard.currentBlock": "Bloco Atual",
"currentBlockCard.secsAgo": "segundos atrás",
"currentBlockCard.transactions": "Transações",
@@ -555,14 +553,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "com delegação:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "e taxa:",
"formatter.formatWitnessSetPropertiesOperation.action": "atualizou as propriedades da testemunha",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " atualizou a taxa de câmbio para ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " rotacionou a chave de assinatura de bloco para ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " definiu a taxa de criação de conta para ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " definiu o tamanho máximo do bloco para ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " definiu a taxa de juros do HBD para ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " atualizou a URL da testemunha para ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " definiu o orçamento de subsídio de conta para ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " definiu a decadência do subsídio de conta para ",
"formatter.formatAccountUpdate2Operation.action": "atualizou uma conta",
"formatter.formatCreateProposalOperation.createdProposalFor": "criou uma proposta para",
"formatter.formatCreateProposalOperation.dailyToReceiver": "diários para",
diff --git a/i18n/ro.json b/i18n/ro.json
index 81aae2efdb81f822d5b7bdb02cd847a0799835db..e619ee4a021e3358d3ebdb40103972d99be63a4b 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(proxy)",
"common.page": "pagină",
- "common.and": "și",
- "common.bytes": " octeți",
"currentBlockCard.currentBlock": "Blocul Curent",
"currentBlockCard.secsAgo": "secunde în urmă",
"currentBlockCard.transactions": "Tranzacții",
@@ -554,14 +552,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "cu delegație:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "și taxă:",
"formatter.formatWitnessSetPropertiesOperation.action": "a actualizat proprietățile martorului",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " a actualizat cursul de schimb la ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " a rotit cheia de semnare a blocului la ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " a setat taxa de creare a contului la ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " a setat dimensiunea maximă a blocului la ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " a setat rata dobânzii HBD la ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " a actualizat URL-ul martorului la ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " a setat bugetul de subvenționare a contului la ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " a setat decăderea subvenției contului la ",
"formatter.formatAccountUpdate2Operation.action": "a actualizat un cont",
"formatter.formatCreateProposalOperation.createdProposalFor": "a creat o propunere pentru",
"formatter.formatCreateProposalOperation.dailyToReceiver": "zilnic către",
diff --git a/i18n/zh.json b/i18n/zh.json
index ce60b14d41ed4fe0cf7399847135a10e0da401a2..cf064877b43ad634a0d245144711ca6efe8fce57 100644
--- a/i18n/zh.json
+++ b/i18n/zh.json
@@ -32,8 +32,6 @@
"common.hp": "HP",
"common.proxySuffix": "(代理)",
"common.page": "页",
- "common.and": "并",
- "common.bytes": " 字节",
"currentBlockCard.currentBlock": "当前区块",
"currentBlockCard.secsAgo": "秒前",
"currentBlockCard.transactions": "交易",
@@ -555,14 +553,6 @@
"formatter.formatAccountCreateWithDelegationOperation.withDelegation": "附带代理:",
"formatter.formatAccountCreateWithDelegationOperation.andFee": "和费用:",
"formatter.formatWitnessSetPropertiesOperation.action": "更新了见证人属性",
- "formatter.formatWitnessSetPropertiesOperation.updatedPriceTo": " 更新了价格种子为 ",
- "formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo": " 轮换了出块签名密钥为 ",
- "formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee": " 设置了账户创建费用为 ",
- "formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize": " 设置了最大区块大小为 ",
- "formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate": " 设置了HBD利率为 ",
- "formatter.formatWitnessSetPropertiesOperation.setUrl": " 更新了见证人网址为 ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget": " 设置了账户补贴预算为 ",
- "formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay": " 设置了账户补贴衰减为 ",
"formatter.formatAccountUpdate2Operation.action": "更新了账户",
"formatter.formatCreateProposalOperation.createdProposalFor": "创建了提案为",
"formatter.formatCreateProposalOperation.dailyToReceiver": "每日给",
diff --git a/lib/Formatter.tsx b/lib/Formatter.tsx
index 799360c986ebd577c6d1c0b0262dc92a64a99ec2..3d95fc00e4658a64c912e0ea5692a78131e26ab4 100644
--- a/lib/Formatter.tsx
+++ b/lib/Formatter.tsx
@@ -92,7 +92,6 @@ import Link from "next/link";
import { formatAndDelocalizeTime } from "@/utils/TimeUtils";
import ConvertedHiveTooltip from "@/components/ConvertedHiveTooltip";
import TranslatedFormatterOperation from "@/components/TranslatedFormatterOperation";
-import { FileText, KeyRound, LinkIcon } from "lucide-react";
class OperationsFormatter implements IWaxCustomFormatter {
public constructor(
@@ -181,106 +180,6 @@ class OperationsFormatter implements IWaxCustomFormatter {
});
}
- /**
- * Decodes a hex-encoded serialized price object (e.g., hbd_exchange_rate).
- * @returns An object with base and quote strings, or null on failure.
- */
- private decodePriceFeed(hexValue: string): { base: string; quote: string } | null {
- if (typeof hexValue !== 'string' || hexValue.length !== 64) return null;
- try {
- const buffer = Buffer.from(hexValue, 'hex');
- const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
- const baseAmount = dataView.getBigInt64(0, true);
- const basePrecision = dataView.getUint8(8);
- const baseSymbolRaw = buffer.toString('ascii', 9, 16).replace(/\0/g, '');
- const baseSymbol = baseSymbolRaw === 'SBD' ? 'HBD' : baseSymbolRaw;
- const baseValue = Number(baseAmount) / Math.pow(10, basePrecision);
- const quoteAmount = dataView.getBigInt64(16, true);
- const quotePrecision = dataView.getUint8(24);
- const quoteSymbolRaw = buffer.toString('ascii', 25, 32).replace(/\0/g, '');
- const quoteSymbol = quoteSymbolRaw === 'STEEM' ? 'HIVE' : quoteSymbolRaw;
- const quoteValue = Number(quoteAmount) / Math.pow(10, quotePrecision);
- return { base: `${baseValue.toFixed(basePrecision)} ${baseSymbol}`, quote: `${quoteValue.toFixed(quotePrecision)} ${quoteSymbol}` };
- } catch (e) { return null; }
- }
-
- /**
- * Decodes a hex-encoded serialized asset string (e.g., account_creation_fee).
- * @returns A formatted string like "3.000 HIVE", or null on failure.
- */
- private decodeAsset(hexValue: string): string | null {
- if (typeof hexValue !== 'string' || hexValue.length !== 32) return null;
- try {
- const buffer = Buffer.from(hexValue, 'hex');
- const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
- const amount = dataView.getBigInt64(0, true);
- const precision = dataView.getUint8(8);
- const symbolRaw = buffer.toString('ascii', 9, 16).replace(/\0/g, '');
- const symbol = symbolRaw === 'STEEM' ? 'HIVE' : symbolRaw;
- const value = Number(amount) / Math.pow(10, precision);
- return `${value.toFixed(precision)} ${symbol}`;
- } catch (e) { return null; }
- }
-
- /**
- * Decodes a 16-bit interest rate from hex or number.
- * @returns The rate in basis points (e.g., 2000 for 20%), or null on failure.
- */
- private decodeInterestRate(value: string | number): number | null {
- if (typeof value === 'number') return value;
- if (typeof value === 'string' && value.length === 4 && /^[0-9a-fA-F]+$/.test(value)) {
- try {
- const buffer = Buffer.from(value, 'hex');
- return buffer.readUInt16LE(0);
- } catch (e) { return null; }
- }
- return null;
- }
-
- /**
- * Decodes a 32-bit integer from hex or number (for block size, subsidies).
- * @returns The decoded number, or null on failure.
- */
- private decodeInt32(value: string | number): number | null {
- if (typeof value === 'number') return value;
- if (typeof value === 'string' && /^[0-9a-fA-F]+$/.test(value)) {
- try {
- const buffer = Buffer.from(value, 'hex');
- return buffer.readUInt32LE(0);
- } catch (e) { return null; }
- }
- return null;
- }
-
- /**
- * Decodes a URL that might be plain text or hex-encoded.
- * @returns The decoded URL string, or null on failure.
- */
- private decodeUrl(value: string): string | null {
- if (!value) return null;
- if (/^[0-9a-fA-F]+$/.test(value) && value.length > 20) {
- try {
- const buffer = Buffer.from(value, 'hex');
- // Some clients add a length prefix byte, try to handle it
- try {
- const len = buffer.readUInt8(0);
- if (len === buffer.length - 1) {
- return buffer.toString('utf8', 1);
- }
- } catch (e) { /* fall through if parsing length fails */ }
- return buffer.toString('utf8');
- } catch (e) { return value; } // Fallback to original string on error
- }
- return value; // Assume it's a plain text URL
- }
-
- private generateLink(link: string): React.JSX.Element {
- return (
-
- {link}
-
- );
- }
private getOperationMemo(
memo: string | undefined
@@ -1390,141 +1289,18 @@ formatSetWithdrawVestingRouteOperation({
};
}
+ // Leave it with simple message, props are too complicated to handle now
@WaxFormattable({
- matchProperty: "type",
- matchValue: "witness_set_properties_operation",
+ matchProperty: "type",
+ matchValue: "witness_set_properties_operation",
})
formatWitnessSetPropertiesOperation({
source: { value: op },
target,
}: IFormatFunctionArguments<{ value: witness_set_properties }>) {
-
- const propsMap = Object.fromEntries(op.props as unknown as [string, any][]);
- const actionElements: React.ReactElement[] = [];
-
- // Case: HBD Exchange Rate
- const parsedPrice = propsMap.hbd_exchange_rate ? this.decodePriceFeed(propsMap.hbd_exchange_rate) : null;
- if (parsedPrice) {
- const priceString = `${parsedPrice.base} / ${parsedPrice.quote}`;
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.updatedPriceTo")}
- {priceString}
-
- );
- }
-
- // Case: Account Creation Fee
- const fee = propsMap.account_creation_fee ? this.decodeAsset(propsMap.account_creation_fee) : null;
- if (fee) {
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.setAccountCreationFee")}
- {fee}
-
- );
- }
-
- // Case: Maximum Block Size (Handles number OR hex)
- const blockSize = this.decodeInt32(propsMap.maximum_block_size);
- if (blockSize !== null) {
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.setMaxBlockSize")}
- {blockSize.toLocaleString()}
- {this.i18n.t("common.bytes")}
-
- );
- }
-
- // Case: HBD Interest Rate (Handles number OR hex)
- const interestRateBasisPoints = propsMap.hbd_interest_rate ? this.decodeInterestRate(propsMap.hbd_interest_rate) : null;
- if (interestRateBasisPoints !== null) {
- const ratePercent = (interestRateBasisPoints / 100).toLocaleString();
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.setHbdInterestRate")}
- {ratePercent}
- {"%"}
-
- );
- }
-
- // Case: Account Subsidy Budget
- const subsidyBudget = this.decodeInt32(propsMap.account_subsidy_budget);
- if (subsidyBudget !== null) {
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.setSubsidyBudget")}
- {subsidyBudget.toLocaleString()}
-
- );
- }
-
- // Case: Account Subsidy Decay
- const subsidyDecay = this.decodeInt32(propsMap.account_subsidy_decay);
- if (subsidyDecay !== null) {
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.setSubsidyDecay")}
- {subsidyDecay.toLocaleString()}
-
- );
- }
-
- // Case: URL (Handles string OR hex)
- const url = this.decodeUrl(propsMap.url);
- if (url) {
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.setUrl")}
- {this.generateLink(url)}
- {' '}
-
- );
- }
-
- // Case: Signing Key (Handles `key` and legacy `new_signing_key`)
- const newKey = propsMap.new_signing_key;
- if (newKey && newKey !==propsMap.key) {
- actionElements.push(
-
- {this.i18n.t("formatter.formatWitnessSetPropertiesOperation.rotatedKeyTo")}
-
- {' '}{newKey}
-
-
- );
- }
-
- // Join all the generated action phrases with punctuation.
- const joinedActions = actionElements.flatMap((action, index) => {
- if (actionElements.length === 1) {
- return [{action}];
- }
- if (index < actionElements.length - 2) {
- return [
- {action},,
-
- ];
- }
- if (index === actionElements.length - 2) {
- return [
- {action},
- this.i18n.t("common.and")
- ];
- }
- return [{action}];
- });
-
-
- // Build the final message.
const message = this.generateReactLink([
this.getAccountLink(op.owner),
- ...(joinedActions.length > 0 ?
- joinedActions :
- [" ", this.i18n.t("formatter.formatWitnessSetPropertiesOperation.action")]
- )
+ this.i18n.t("formatter.formatWitnessSetPropertiesOperation.action"),
]);
return {
...target,