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,