📅  最后修改于: 2023-12-03 15:14:53.005000             🧑  作者: Mango
在 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
指定该操作的权限。