📜  eosio 检查帐户是否存在 - C++ (1)

📅  最后修改于: 2023-12-03 15:14:53.005000             🧑  作者: Mango

EOSIO 检查帐户是否存在 - C++

在 EOSIO 中,可以使用 is_account 函数来检查帐户是否存在。

该函数的定义如下:

bool is_account( name account );

其中,account 参数为要检查的帐户名称。如果帐户存在,则返回 true,否则返回 false

下面是一个简单的示例。假设要检查帐户名为 myaccount123 是否存在:

#include <eosio/eosio.hpp>

using namespace eosio;

class [[eosio::contract("mycontract")]] mycontract : public contract {
public:
  using contract::contract;

  [[eosio::action]]
  void checkaccount(name account) {
    if (is_account(account)) {
      print("Account ", account, " exists");
    } else {
      print("Account ", account, " does not exist");
    }
  }
};

在上面的示例中,checkaccount 是一个 EOSIO 合约的操作。它接受一个参数 account,表示要检查的帐户名称。

在函数体内,使用 is_account 函数来检查帐户是否存在。如果帐户存在,则输出一条消息表示帐户存在;否则输出一条消息表示帐户不存在。

要调用该操作,可以使用 EOSIO 的命令行界面或任何支持 EOSIO RPC 的客户端。下面是一个使用 cleos 命令行工具调用该操作的示例:

cleos push action mycontract checkaccount '["myaccount123"]' -p myaccount123@active

在上面的示例中,mycontract 指定要调用的合约帐户,checkaccount 是要调用的操作,["myaccount123"] 是该操作的参数,-p myaccount123@active 指定该操作的权限。