diff --git a/dap_chain_common.h b/dap_chain_common.h
index c6935d4fbb5ba5614d1564add957166d88ff72c9..2b9101698964b3de24975b45d40faab2426e0ed2 100755
--- a/dap_chain_common.h
+++ b/dap_chain_common.h
@@ -63,6 +63,24 @@ typedef union dap_chain_node_addr{
     uint8_t raw[sizeof(uint64_t)];  // Access to selected octects
 } DAP_ALIGN_PACKED dap_chain_node_addr_t;
 
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+#define NODE_ADDR_FP_STR      "%04hX::%04hX::%04hX::%04hX"
+#define NODE_ADDR_FP_ARGS(a)  a->words[2],a->words[3],a->words[0],a->words[1]
+#define NODE_ADDR_FPS_ARGS(a)  &a->words[2],&a->words[3],&a->words[0],&a->words[1]
+#define NODE_ADDR_FP_ARGS_S(a)  a.words[2],a.words[3],a.words[0],a.words[1]
+#define NODE_ADDR_FPS_ARGS_S(a)  &a.words[2],&a.words[3],&a.words[0],&a.words[1]
+#else
+#define NODE_ADDR_FP_STR      "%04hX::%04hX::%04hX::%04hX"
+#define NODE_ADDR_FP_ARGS(a)  a->words[3],a->words[2],a->words[1],a->words[0]
+#define NODE_ADDR_FPS_ARGS(a)  &a->words[3],&a->words[2],&a->words[1],&a->words[0]
+#define NODE_ADDR_FP_ARGS_S(a)  a.words[3],a.words[2],a.words[1],a.words[0]
+#define NODE_ADDR_FPS_ARGS_S(a)  &a.words[3],&a.words[2],&a.words[1],&a.words[0]
+
+#endif
+
+inline static int dap_chain_node_addr_from_str( dap_chain_node_addr_t * a_addr, const char * a_addr_str){
+    return (int) sscanf(a_addr_str,NODE_ADDR_FP_STR,NODE_ADDR_FPS_ARGS(a_addr) )-4;
+}
 /**
   *
   *
diff --git a/dap_chain_ledger.c b/dap_chain_ledger.c
index 710a2cca0f14609449e161f35ea4e2ed5bef36fc..3c18424b199c84b5370d6120bb9456d3a9cb3894 100755
--- a/dap_chain_ledger.c
+++ b/dap_chain_ledger.c
@@ -1020,7 +1020,7 @@ uint64_t dap_chain_ledger_tx_cache_get_out_cond_value(dap_ledger_t *a_ledger, da
 {
     uint64_t l_ret_value = 0;
 
-    const dap_chain_datum_tx_t *l_tx_tmp;
+    dap_chain_datum_tx_t *l_tx_tmp;
     dap_chain_hash_fast_t l_tx_first_hash = { 0 }; // start hash
     //memcpy(&l_tx_first_hash, 0, sizeof(dap_chain_hash_fast_t));
     /* size_t l_pub_key_size = a_key_from->pub_key_data_size;
@@ -1032,8 +1032,8 @@ uint64_t dap_chain_ledger_tx_cache_get_out_cond_value(dap_ledger_t *a_ledger, da
 
         // Get out_cond item from transaction
         if(l_tx_tmp) {
-            const dap_chain_tx_out_cond_t *l_tx_out_cond = (const dap_chain_tx_out_cond_t*) dap_chain_datum_tx_item_get(
-                    (dap_chain_datum_tx_t*) l_tx_tmp, NULL, TX_ITEM_TYPE_OUT_COND, NULL);
+           dap_chain_tx_out_cond_t *l_tx_out_cond  =(dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(
+                     l_tx_tmp, NULL, TX_ITEM_TYPE_OUT_COND, NULL);
 
             // TODO check relations a_addr with cond_data and public key