From 0f0c5a3050b959052ab3de3ebb864d20203551d4 Mon Sep 17 00:00:00 2001 From: Guten Ye Date: Sat, 23 Mar 2019 21:58:13 +0800 Subject: [PATCH] Add estimate_tx_weight --- monero_utils/MyMoneroCoreBridgeClass.js | 10 ++++++++++ src/index.cpp | 1 + tests/MyMoneroCoreCpp.node.js | 7 +++++++ 3 files changed, 18 insertions(+) diff --git a/monero_utils/MyMoneroCoreBridgeClass.js b/monero_utils/MyMoneroCoreBridgeClass.js index 870ca91..7b33827 100644 --- a/monero_utils/MyMoneroCoreBridgeClass.js +++ b/monero_utils/MyMoneroCoreBridgeClass.js @@ -227,6 +227,16 @@ class MyMoneroCoreBridgeClass extends MyMoneroCoreBridgeEssentialsClass } return ret.retVal; } + estimate_tx_weight(args) + { + const args_str = JSON.stringify(args); + const ret_string = this.Module.estimate_tx_weight(args_str); + const ret = JSON.parse(ret_string); + if (typeof ret.err_msg !== 'undefined' && ret.err_msg) { + throw ret.err_msg; + } + return parseInt(ret.retVal, 10); + } estimate_rct_tx_size(n_inputs, mixin, n_outputs, extra_size, bulletproof) { const args = diff --git a/src/index.cpp b/src/index.cpp index b695c5b..71009e5 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -292,6 +292,7 @@ EMSCRIPTEN_BINDINGS(my_module) // emscripten::function("estimated_tx_network_fee", &estimated_tx_network_fee); emscripten::function("estimate_fee", &estimate_fee); + emscripten::function("estimate_tx_weight", &estimate_tx_weight); emscripten::function("estimate_rct_tx_size", &estimate_rct_tx_size); // emscripten::function("generate_key_image", &generate_key_image); diff --git a/tests/MyMoneroCoreCpp.node.js b/tests/MyMoneroCoreCpp.node.js index 7a6b3f9..6f480ff 100644 --- a/tests/MyMoneroCoreCpp.node.js +++ b/tests/MyMoneroCoreCpp.node.js @@ -140,6 +140,13 @@ function tests(Module) console.timeEnd("estimate_fee") console.log("estimate_fee ret", ret_string) } + { + console.time("estimate_tx_weight") + const args = {"use_rct": "true", "n_inputs": "2", "mixin": "10", "n_outputs": "2","extra_size": "0", "bulletproof": "true"} + const ret_string = Module.estimate_tx_weight(JSON.stringify(args)) + console.timeEnd("estimate_tx_weight") + console.log("estimate_tx_weight ret", ret_string) + } { console.time("estimate_rct_tx_size") const args_str = '{"n_inputs":1,"mixin":10,"n_outputs":2,"extra_size":0,"bulletproof":true}'