diff --git a/i18n/ar.json b/i18n/ar.json
index 08a92e880c2c299974154319a0ca2469f0ec65b6..7642155607a0a9e21b703cecea792452e9362a0f 100644
--- a/i18n/ar.json
+++ b/i18n/ar.json
@@ -391,6 +391,8 @@
"transactionPage.refBlockPrefix": "بادئة البلوك المرجعية",
"transactionPage.expiration": "الانتهاء",
"transactionPage.transactionNumber": "رقم المعاملة",
+ "transactionPage.transactionSize": "حجم المعاملة",
+ "transactionPage.bytes": "بايت",
"pageTitle.informationAboutTitle": "معلومات حول العنوان",
"pageTitle.hiveWitnesses": "شهود Hive",
"pageTitle.hiveBlocks": "بلوكات Hive",
diff --git a/i18n/de.json b/i18n/de.json
index 64789ee13acd5ab508f292be56d054b39860da7b..f03630aa894478546b734259ca34340e5d2f429a 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -384,6 +384,8 @@
"transactionPage.refBlockPrefix": "Ref-Block-Präfix",
"transactionPage.expiration": "Ablauf",
"transactionPage.transactionNumber": "Transaktionsnummer",
+ "transactionPage.transactionSize": "Transaktionsgröße",
+ "transactionPage.bytes": "Bytes",
"pageTitle.informationAboutTitle": "Informationen über den Titel",
"pageTitle.hiveWitnesses": "Hive-Zeugen",
"pageTitle.hiveBlocks": "Hive-Blöcke",
diff --git a/i18n/en.json b/i18n/en.json
index a45b7b907bfab0445220a66abdde4a66e39d6d22..fe40b848191db6210b35f874de09a13bd63c45be 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -93,6 +93,7 @@
"transactionStatisticsFullChartDialog.title": "Transaction Statistics Chart",
"transactionStatisticsFullChartDialog.granularity": "Granularity",
"transactionStatisticsFullChartDialog.selectGranularity": "Select Granularity",
+
"searchRanges.last": "Last *",
"searchRanges.from": "From *",
"searchRanges.to": "To",
@@ -146,6 +147,7 @@
"syncInfo.lastSyncedBlock": "Last Synced Block At",
"syncInfo.connecting": "Connecting",
"searchBar.placeholder": "User, Block, Trx #",
+
"witnesses.title": "Witnesses",
"witnesses.votes": "Votes",
"witnesses.voters": "Voters",
@@ -381,6 +383,8 @@
"transactionPage.refBlockPrefix": "Ref Block Prefix",
"transactionPage.expiration": "Expiration",
"transactionPage.transactionNumber": "Transaction Number",
+ "transactionPage.transactionSize": "Transaction Size",
+ "transactionPage.bytes": "Bytes",
"pageTitle.informationAboutTitle": "Information about the title",
"pageTitle.hiveWitnesses": "Hive Witnesses",
"pageTitle.hiveBlocks": "Hive Blocks",
diff --git a/i18n/es.json b/i18n/es.json
index 51d703ccd588fe4c7d987d19728540853461f875..4f901e83f629a794e3ba2ca43e4fd72a81c3425f 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -382,6 +382,8 @@
"transactionPage.refBlockPrefix": "Prefijo del Bloque de Ref.",
"transactionPage.expiration": "Expiración",
"transactionPage.transactionNumber": "Número de Transacción",
+ "transactionPage.transactionSize": "Tamaño de Transacción",
+ "transactionPage.bytes": "Octeto",
"pageTitle.informationAboutTitle": "Información sobre el título",
"pageTitle.hiveWitnesses": "Testigos de Hive",
"pageTitle.hiveBlocks": "Bloques de Hive",
diff --git a/i18n/fr.json b/i18n/fr.json
index 42f2bf3e44e36fee421f36b1a1f4d0892ed92ed9..6fe2b8b4ee09ce4242456e83084ccd012dd3dd89 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -383,6 +383,8 @@
"transactionPage.refBlockPrefix": "Préfixe Bloc Réf.",
"transactionPage.expiration": "Expiration",
"transactionPage.transactionNumber": "Numéro de Transaction",
+ "transactionPage.transactionSize": "Taille de la transaction",
+ "transactionPage.bytes": "Octets",
"pageTitle.informationAboutTitle": "Informations sur le titre",
"pageTitle.hiveWitnesses": "Témoins Hive",
"pageTitle.hiveBlocks": "Blocs Hive",
diff --git a/i18n/it.json b/i18n/it.json
index b8c0a42ac15ab55f35bf18241d4a455f85a7e3db..5c69528d37c831fdf555d8563134355f0e7aca2d 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -383,6 +383,8 @@
"transactionPage.refBlockPrefix": "Prefisso Blocco Rif.",
"transactionPage.expiration": "Scadenza",
"transactionPage.transactionNumber": "Numero Transazione",
+ "transactionPage.transactionSize": "Dimensione della transazione",
+ "transactionPage.bytes": "Bytes",
"pageTitle.informationAboutTitle": "Informazioni sul titolo",
"pageTitle.hiveWitnesses": "Testimoni Hive",
"pageTitle.hiveBlocks": "Blocchi Hive",
diff --git a/i18n/ja.json b/i18n/ja.json
index da86d0065d1e28b1fedaee60f43a033ee0b1a0bf..58e2f1423158f8ddd090d15067161e6872a24e52 100644
--- a/i18n/ja.json
+++ b/i18n/ja.json
@@ -384,6 +384,8 @@
"transactionPage.refBlockPrefix": "参照ブロックプレフィックス",
"transactionPage.expiration": "有効期限",
"transactionPage.transactionNumber": "トランザクション番号",
+ "transactionPage.transactionSize": "トランザクションサイズ",
+ "transactionPage.bytes": "バイト",
"pageTitle.informationAboutTitle": "タイトルに関する情報",
"pageTitle.hiveWitnesses": "Hive証人",
"pageTitle.hiveBlocks": "Hiveブロック",
diff --git a/i18n/ko.json b/i18n/ko.json
index 37b951f8ceb1c709fe87657a80d6a35ee8d2c2b8..eaee1ef31a2881d844794cb8c839795f538a5e99 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -383,6 +383,8 @@
"transactionPage.refBlockPrefix": "참조 블록 접두사",
"transactionPage.expiration": "만료",
"transactionPage.transactionNumber": "트랜잭션 번호",
+ "transactionPage.transactionSize": "트랜잭션 크기",
+ "transactionPage.bytes": "바이트",
"pageTitle.informationAboutTitle": "제목에 대한 정보",
"pageTitle.hiveWitnesses": "Hive 증인",
"pageTitle.hiveBlocks": "Hive 블록",
diff --git a/i18n/pl.json b/i18n/pl.json
index 727f6929c165391c780c92bcc413d96bf02d3b6b..4d0221fb0ca46697fbf741ac15d1eae34836f152 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -384,6 +384,8 @@
"transactionPage.refBlockPrefix": "Prefiks Bloku Ref.",
"transactionPage.expiration": "Wygaśnięcie",
"transactionPage.transactionNumber": "Numer Transakcji",
+ "transactionPage.transactionSize": "Rozmiar transakcji",
+ "transactionPage.bytes": "Bajt",
"pageTitle.informationAboutTitle": "Informacje o tytule",
"pageTitle.hiveWitnesses": "Świadkowie Hive",
"pageTitle.hiveBlocks": "Bloki Hive",
diff --git a/i18n/pt.json b/i18n/pt.json
index 7e3a6e2077e90fb64912c22b1c055f963f699ef1..a67baca71351482dda840b0463e26d7cc7aa6df3 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -384,6 +384,8 @@
"transactionPage.refBlockPrefix": "Prefixo Bloco Ref.",
"transactionPage.expiration": "Expiração",
"transactionPage.transactionNumber": "Número da Transação",
+ "transactionPage.transactionSize": "Tamanho da transação",
+ "transactionPage.bytes": "Bytes",
"pageTitle.informationAboutTitle": "Informações sobre o título",
"pageTitle.hiveWitnesses": "Testemunhas do Hive",
"pageTitle.hiveBlocks": "Blocos do Hive",
diff --git a/i18n/ro.json b/i18n/ro.json
index 6d63d351949d778b1629b41ccae05c4616bdcbde..53e544a3ada25b3fe5dc1da164e9c2d0fe038ccb 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -383,6 +383,8 @@
"transactionPage.refBlockPrefix": "Prefix Bloc Ref.",
"transactionPage.expiration": "Expirare",
"transactionPage.transactionNumber": "Număr Tranzacție",
+ "transactionPage.transactionSize": "Dimensiunea tranzacției",
+ "transactionPage.bytes": "Octet",
"pageTitle.informationAboutTitle": "Informații despre titlu",
"pageTitle.hiveWitnesses": "Martori Hive",
"pageTitle.hiveBlocks": "Blocuri Hive",
diff --git a/i18n/zh.json b/i18n/zh.json
index 69c1bb939462a2dfba361854e0873d4b19c1314c..59202f364cbb824393a0a13a410904ff1e91bfe5 100644
--- a/i18n/zh.json
+++ b/i18n/zh.json
@@ -384,6 +384,8 @@
"transactionPage.refBlockPrefix": "引用区块前缀",
"transactionPage.expiration": "过期",
"transactionPage.transactionNumber": "交易号",
+ "transactionPage.transactionSize": "交易大小",
+ "transactionPage.bytes": "字节",
"pageTitle.informationAboutTitle": "关于标题的信息",
"pageTitle.hiveWitnesses": "Hive见证人",
"pageTitle.hiveBlocks": "Hive区块",
diff --git a/package-lock.json b/package-lock.json
index 84d1a2ac3dffb077ed6a462793df66472e41a212..30de42e17c76421707c515c7e0f67a4a67992a36 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -227,14 +227,6 @@
"react-dom": "^16 || ^17 || ^18"
}
},
- "node_modules/@hiveio/beekeeper": {
- "version": "1.27.11-stable.250508111822",
- "resolved": "https://gitlab.syncad.com/api/v4/projects/198/packages/npm/@hiveio/beekeeper/-/@hiveio/beekeeper-1.27.11-stable.250508111822.tgz",
- "integrity": "sha1-VzR+ETHeiK6+rKn2+0fbtSj+W0Q=",
- "engines": {
- "node": "^20.11 || >= 21.2"
- }
- },
"node_modules/@hiveio/healthchecker-component": {
"version": "1.0.0-stable.250604102752",
"resolved": "https://gitlab.syncad.com/api/v4/projects/520/packages/npm/@hiveio/healthchecker-component/-/@hiveio/healthchecker-component-1.0.0-stable.250604102752.tgz",
@@ -246,11 +238,10 @@
}
},
"node_modules/@hiveio/wax": {
- "version": "1.27.6-rc7-stable.250512112737",
- "resolved": "https://gitlab.syncad.com/api/v4/projects/419/packages/npm/@hiveio/wax/-/@hiveio/wax-1.27.6-rc7-stable.250512112737.tgz",
- "integrity": "sha1-6b1XeiJkFbQ5/ujb7On6VVnuXV4=",
+ "version": "1.27.6-rc9-stable.250711121639",
+ "resolved": "https://gitlab.syncad.com/api/v4/projects/419/packages/npm/@hiveio/wax/-/@hiveio/wax-1.27.6-rc9-stable.250711121639.tgz",
+ "integrity": "sha1-XjqwfAkpDfaPexgho3Vla0CHTXY=",
"dependencies": {
- "@hiveio/beekeeper": "1.27.11-stable.250508111822",
"events": "^3.3.0",
"long": "^5.2.3"
},
@@ -3301,7 +3292,6 @@
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "dev": true,
"dependencies": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
@@ -5954,8 +5944,7 @@
"node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
- "dev": true
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
"node_modules/node-abi": {
"version": "3.51.0",
@@ -6227,7 +6216,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
"integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -7053,7 +7041,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
"bin": {
"semver": "bin/semver"
}
@@ -7146,7 +7133,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
- "dev": true,
"dependencies": {
"shebang-regex": "^1.0.0"
},
@@ -7158,7 +7144,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
"integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -8018,7 +8003,6 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
@@ -8257,11 +8241,6 @@
"client-only": "^0.0.1"
}
},
- "@hiveio/beekeeper": {
- "version": "1.27.11-stable.250508111822",
- "resolved": "https://gitlab.syncad.com/api/v4/projects/198/packages/npm/@hiveio/beekeeper/-/@hiveio/beekeeper-1.27.11-stable.250508111822.tgz",
- "integrity": "sha1-VzR+ETHeiK6+rKn2+0fbtSj+W0Q="
- },
"@hiveio/healthchecker-component": {
"version": "1.0.0-stable.250604102752",
"resolved": "https://gitlab.syncad.com/api/v4/projects/520/packages/npm/@hiveio/healthchecker-component/-/@hiveio/healthchecker-component-1.0.0-stable.250604102752.tgz",
@@ -8269,11 +8248,10 @@
"requires": {}
},
"@hiveio/wax": {
- "version": "1.27.6-rc7-stable.250512112737",
- "resolved": "https://gitlab.syncad.com/api/v4/projects/419/packages/npm/@hiveio/wax/-/@hiveio/wax-1.27.6-rc7-stable.250512112737.tgz",
- "integrity": "sha1-6b1XeiJkFbQ5/ujb7On6VVnuXV4=",
+ "version": "1.27.6-rc9-stable.250711121639",
+ "resolved": "https://gitlab.syncad.com/api/v4/projects/419/packages/npm/@hiveio/wax/-/@hiveio/wax-1.27.6-rc9-stable.250711121639.tgz",
+ "integrity": "sha1-XjqwfAkpDfaPexgho3Vla0CHTXY=",
"requires": {
- "@hiveio/beekeeper": "1.27.11-stable.250508111822",
"events": "^3.3.0",
"long": "^5.2.3"
}
@@ -9973,11 +9951,11 @@
}
}
},
+ "cross-fetch": {
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "dev": true,
"requires": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
@@ -11826,8 +11804,7 @@
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
- "dev": true
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
"node-abi": {
"version": "3.51.0",
@@ -12016,8 +11993,7 @@
"path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
- "dev": true
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
},
"path-parse": {
"version": "1.0.7",
@@ -12536,8 +12512,7 @@
"semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
},
"set-function-length": {
"version": "1.2.2",
@@ -12607,7 +12582,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
- "dev": true,
"requires": {
"shebang-regex": "^1.0.0"
}
@@ -12615,8 +12589,7 @@
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
- "dev": true
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
},
"shelljs": {
"version": "0.8.5",
@@ -13198,7 +13171,6 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
"requires": {
"isexe": "^2.0.0"
}
diff --git a/package.json b/package.json
index 675a2354a4ae98ed441e2b3dd40076a1f3f1bdee..3beeed7da938e774abd611719c5b1727c7ffbca7 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "0.2.0",
"private": true,
"scripts": {
- "dev": "node helpers/versions.js && react-env -- next dev --turbopack",
+ "dev": "node helpers/versions.js && react-env -- next dev ",
"copy:public": "shx cp -R public/ .next/standalone/",
"copy:static": "shx cp -R .next/static/ .next/standalone/.next",
"build": "node helpers/versions.js && next build",
diff --git a/pages/transaction/[transactionId].tsx b/pages/transaction/[transactionId].tsx
index 7d65ea1937bb97bf07e2335522b1d0ca2c52a5bc..bbf5778af4e3942955ffbf2708db50b21fb2a65b 100644
--- a/pages/transaction/[transactionId].tsx
+++ b/pages/transaction/[transactionId].tsx
@@ -1,9 +1,10 @@
-import { useState } from "react";
+'use client';
import { useRouter } from "next/router";
import Link from "next/link";
import Head from "next/head";
-
import Hive from "@/types/Hive";
+import React, { useEffect, useState } from "react";
+import { getTransactionSizeFromJson } from "@/utils/TransactionSize";
import { useUserSettingsContext } from "@/contexts/UserSettingsContext";
import { convertTransactionResponseToTableOperations } from "@/lib/utils";
import { formatAndDelocalizeTime } from "@/utils/TimeUtils";
@@ -69,8 +70,24 @@ export default function Transaction() {
if (trxError) {
return ;
}
+ // Calculate transaction size in bytes
+
+const [transactionSize, setTransactionSize] = useState(0);
- return (
+// Fetch and calculate transaction size when trxData is available
+useEffect(() => {
+ if (trxData?.transaction_json) {
+ (async () => {
+ try {
+ const size = await getTransactionSizeFromJson(trxData.transaction_json);
+ setTransactionSize(size);
+ } catch (err) {
+ console.error("Error calculating transaction size:", err);
+ }
+ })();
+ }
+}, [trxData]);
+return(
<>
{trxData?.transaction_id?.slice(0, 10)} - Hive Explorer
@@ -188,6 +205,12 @@ export default function Transaction() {
dataTestId="transaction-number"
hasBorder
/>
+
>
- );
+ );
}
diff --git a/utils/TransactionSize.ts b/utils/TransactionSize.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5d0b44ab3e261db55ad654f3edd07c0ac39c77e2
--- /dev/null
+++ b/utils/TransactionSize.ts
@@ -0,0 +1,35 @@
+import { createHiveChain, type ITransaction } from "@hiveio/wax/vite";
+
+const CHAIN_ID =
+ "beeab0de00000000000000000000000000000000000000000000000000000000"; // Hive mainnet
+const API_ENDPOINT = "https://api.hive.blog";
+
+let chain: any = null;
+
+async function getChain() {
+ if (!chain) {
+ chain = await createHiveChain({ chainId: CHAIN_ID, apiEndpoint: API_ENDPOINT });
+ }
+ return chain;
+}
+
+/**
+ * transaction size in bytes using Wax library
+ * @param trxJson Hive transaction JSON
+ * @returns number of bytes
+ */
+export async function getTransactionSizeFromJson(trxJson: any): Promise {
+ const hiveChain = await getChain();
+
+ // Create transaction object from JSON
+ const tx: ITransaction & {
+ binaryViewMetadata: { binary: Uint8Array };
+ } = hiveChain.createTransactionFromJson(trxJson);
+
+ //full binary serialization
+ const binary: Uint8Array = tx.binaryViewMetadata.binary;
+
+
+
+ return binary.length;
+}