Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 42 additions & 2 deletions argparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,12 @@ void print_help()
printf("\t\tCancel a poll by its ID. Only the poll creator can cancel it. Requires seed and node ip/port.\n");
printf("\t-qutilgetfee\n");
printf("\t\tShow current QUTIL fees.\n");

printf("\t-getbalancesmany <FILE>\n");
printf("\t\tQuery Qubic balances via QUTIL GetBalances16 in batches of 16 (one 60-char identity per line; any count).\n");
printf("\t-qutiltransfersharestomanyv1 <ISSUER_ID> <ASSET_NAME> <FILE>\n");
printf("\t\tTransfer shares of an asset to up to 24 recipients in one tick. Fee: 2500 QU (fixed; does not depend on how many lines are in the file). <FILE> is like -qutilsendtomanyv1 (identity and amount per line). Valid seed and node ip/port are required.\n");
printf("\t-qutiltransferrights <ASSET_NAME> <ISSUER_ID> <NEW_MANAGING_CONTRACT> <NUM_SHARES>\n");
printf("\t\tTransfer asset management rights of shares from Qutil to another contract. <NEW_MANAGING_CONTRACT> can be given as name or index. You need to own/possess the shares to do this (seed required).\n");
printf("\n[BLOCKCHAIN/PROTOCOL COMMANDS]\n");
printf("\t-gettickdata <TICK_NUMBER> <OUTPUT_FILE_NAME>\n");
printf("\t\tGet tick data and write it to a file. Use -readtickdata to examine the file. valid node ip/port are required.\n");
Expand Down Expand Up @@ -1626,7 +1631,42 @@ void parseArgument(int argc, char** argv)
i += 1;
CHECK_OVER_PARAMETERS
break;
}
}
if (strcmp(argv[i], "-getbalancesmany") == 0)
{
CHECK_NUMBER_OF_PARAMETERS(1)
g_cmd = QUTIL_GET_BALANCES_MANY;
g_qutil_getBalancesManyFile = argv[i + 1];
i += 2;
CHECK_OVER_PARAMETERS
break;
}
if (strcmp(argv[i], "-qutiltransfersharestomanyv1") == 0
|| strcmp(argv[i], "-qutiltransfersharetomanyv1") == 0)
{
CHECK_NUMBER_OF_PARAMETERS(3)
g_cmd = QUTIL_TRANSFER_SHARES_TO_MANY_V1;
g_paramString1 = argv[i + 1];
g_paramString2 = argv[i + 2];
g_qutil_transferSharePayoutListFile = argv[i + 3];
i += 4;
CHECK_OVER_PARAMETERS
break;
}
if (strcmp(argv[i], "-qutiltransferrights") == 0
|| strcmp(argv[i], "-qutiltransfersharesmanagementrights") == 0
|| strcmp(argv[i], "-qutiltransfersharemanagementrights") == 0)
{
CHECK_NUMBER_OF_PARAMETERS(4)
g_cmd = QUTIL_TRANSFER_SHARES_MANAGEMENT_RIGHTS;
g_qx_assetName = argv[i + 1];
g_qx_issuer = argv[i + 2];
g_contractIndex = getContractIndex(argv[i + 3], g_enableTestContracts);
g_qx_numberOfShare = charToNumber(argv[i + 4]);
i += 5;
CHECK_OVER_PARAMETERS
break;
}

/****************************
***** GQMPROP COMMANDS *****
Expand Down
2 changes: 2 additions & 0 deletions global.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ uint32_t g_quottery_pickedOption = 0;

// qutil
char* g_qutil_sendToManyV1PayoutListFile = nullptr;
char* g_qutil_transferSharePayoutListFile = nullptr;
char* g_qutil_getBalancesManyFile = nullptr;
int64_t g_qutil_sendToManyBenchmarkDestinationCount = 0;
int64_t g_qutil_sendToManyBenchmarkNumTransfersEach = 0;

Expand Down
23 changes: 23 additions & 0 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,29 @@ int run(int argc, char* argv[])
sanityCheckNode(g_nodeIp, g_nodePort);
qutilPrintFees(g_nodeIp, g_nodePort);
break;
case QUTIL_GET_BALANCES_MANY:
sanityCheckNode(g_nodeIp, g_nodePort);
sanityFileExist(g_qutil_getBalancesManyFile);
qutilGetBalancesMany(g_nodeIp, g_nodePort, g_qutil_getBalancesManyFile);
break;
case QUTIL_TRANSFER_SHARES_TO_MANY_V1:
sanityCheckNode(g_nodeIp, g_nodePort);
sanityCheckSeed(g_seed);
sanityCheckIdentity(g_paramString1);
sanityCheckValidAssetName(g_paramString2);
sanityFileExist(g_qutil_transferSharePayoutListFile);
qutilTransferSharesToManyV1(g_nodeIp, g_nodePort, g_seed, g_paramString1, g_paramString2,
g_qutil_transferSharePayoutListFile, g_offsetScheduledTick);
break;
case QUTIL_TRANSFER_SHARES_MANAGEMENT_RIGHTS:
sanityCheckNode(g_nodeIp, g_nodePort);
sanityCheckSeed(g_seed);
sanityCheckValidAssetName(g_qx_assetName);
sanityCheckIdentity(g_qx_issuer);
sanityCheckNumberOfUnit(g_qx_numberOfShare);
qutilTransferSharesManagementRights(g_nodeIp, g_nodePort, g_seed, g_qx_assetName, g_qx_issuer,
g_contractIndex, g_qx_numberOfShare, g_offsetScheduledTick);
break;
case GQMPROP_SET_PROPOSAL:
sanityCheckNode(g_nodeIp, g_nodePort);
sanityCheckSeed(g_seed);
Expand Down
Loading
Loading