簡體   English   中英

如何使用 ilog 記錄數組的大小

[英]how to log size of array with ilog

我有這段代碼,只想記錄數組的大小:

auto owner = abi_data["owner"].as<chain::authority>();
auto arrSize = std::size(owner.keys);
ilog(arrSize);

但是有一個錯誤:

error: no matching constructor for initialization of 'fc::log_message'

我該如何解決?

我了解 c ++ 方法非常具體。 因此,我將擴展我的問題,從而摸索出路。

如何從auto owner那里獲取公鑰字符串。

我試過了:

   std::string k = owner.keys[0].key
   error: no viable conversion from 'eosio::chain::public_key_type' (aka 'fc::crypto::public_key') to 'std::string'

我不明白我應該如何轉換所有這些以進行正確的工作並獲得正確的公鑰並替換硬編碼old_account_name

完整代碼:

else if (action.name == N(newaccount)) {

               auto new_account_name = abi_data["newact"].as<chain::name>().to_string();
               auto creator = abi_data["creator"].as<chain::name>().to_string();
               std::string old_account_name = "EOS7ea3Dj15nUkKz3diU7BmE5FV5aNKsBKL6WScwEaKzNwDp41SSU";
               auto owner = abi_data["owner"].as<chain::authority>();
               auto active = abi_data["active"].as<chain::authority>();
               ilog("new_account_name: " + new_account_name + " ,creator: " + creator);

               *m_session << "UPDATE user_address SET address = :nan WHERE crypto_currency_asset_id = :ai AND address = :oan",
                  soci::use(new_account_name, "nan"),
                  soci::use(old_account_name, "oan"),
                  soci::use(asset_id, "ai");
            }

固定的!

auto arrSize = sizeof(owner.keys)/sizeof(owner.keys[0]);
auto ownerPK = static_cast<std::string>(owner.keys[0].key);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM