MCPcopy Create free account
hub / github.com/WaykiChain/WaykiChain / listcontractassets

Function listcontractassets

src/rpc/rpctx.cpp:1229–1274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1227}
1228
1229Value listcontractassets(const Array& params, bool fHelp) {
1230 if (fHelp || params.size() != 1) {
1231 throw runtime_error("listcontractassets regid\n"
1232 "\nreturn Array containing address, asset information.\n"
1233 "\nArguments: regid: Contract RegId\n"
1234 "\nResult:\n"
1235 "\nExamples:\n"
1236 + HelpExampleCli("listcontractassets", "1-1")
1237 + "\nAs json rpc call\n"
1238 + HelpExampleRpc("listcontractassets", "1-1"));
1239 }
1240
1241 if (!CRegID::IsSimpleRegIdStr(params[0].get_str()))
1242 throw runtime_error("in listcontractassets :regid is invalid!\n");
1243
1244 CRegID script(params[0].get_str());
1245
1246 Array retArray;
1247 assert(pWalletMain != nullptr);
1248 {
1249 set<CKeyID> setKeyId;
1250 pWalletMain->GetKeys(setKeyId);
1251 if (setKeyId.size() == 0)
1252 return retArray;
1253
1254 CContractDBCache contractScriptTemp(*pCdMan->pContractCache);
1255
1256 for (const auto &keyid : setKeyId) {
1257
1258 string key = keyid.ToAddress();
1259
1260 std::shared_ptr<CAppUserAccount> tem = std::make_shared<CAppUserAccount>();
1261 if (!contractScriptTemp.GetContractAccount(script, key, *tem.get())) {
1262 tem = std::make_shared<CAppUserAccount>(key);
1263 }
1264 tem.get()->AutoMergeFreezeToFree(chainActive.Height());
1265
1266 Object obj;
1267 obj.push_back(Pair("addr", key));
1268 obj.push_back(Pair("asset", (double) tem.get()->GetBcoins() / (double) COIN));
1269 retArray.push_back(obj);
1270 }
1271 }
1272
1273 return retArray;
1274}
1275
1276
1277Value gethash(const Array& params, bool fHelp) {

Callers

nothing calls this directly

Calls 12

HelpExampleCliFunction · 0.85
HelpExampleRpcFunction · 0.85
PairClass · 0.85
ToAddressMethod · 0.80
GetContractAccountMethod · 0.80
AutoMergeFreezeToFreeMethod · 0.80
HeightMethod · 0.80
push_backMethod · 0.80
GetBcoinsMethod · 0.80
sizeMethod · 0.45
GetKeysMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected