Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/rpcdump.cpp
Show First 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | if (request.fHelp || request.params.size() < 1 || | ||||
"your wallet. Requires a new wallet backup.\n" | "your wallet. Requires a new wallet backup.\n" | ||||
"Hint: use importmulti to import more than one private key.\n" | "Hint: use importmulti to import more than one private key.\n" | ||||
"\nNote: This call can take minutes to complete if rescan is true, " | "\nNote: This call can take minutes to complete if rescan is true, " | ||||
"during that time, other rpc calls\n" | "during that time, other rpc calls\n" | ||||
"may report that the imported key exists but related transactions " | "may report that the imported key exists but related transactions " | ||||
"are still missing, leading to temporarily incorrect/bogus " | "are still missing, leading to temporarily incorrect/bogus " | ||||
"balances and unspent outputs until rescan completes.\n", | "balances and unspent outputs until rescan completes.\n", | ||||
{ | { | ||||
{"privkey", RPCArg::Type::STR, /* opt */ false, | {"privkey", RPCArg::Type::STR, RPCArg::Optional::NO, | ||||
/* default_val */ "", "The private key (see dumpprivkey)"}, | "The private key (see dumpprivkey)"}, | ||||
{"label", RPCArg::Type::STR, /* opt */ true, | {"label", RPCArg::Type::STR, /* default */ | ||||
/* default_val */ | |||||
"current label if address exists, otherwise \"\"", | "current label if address exists, otherwise \"\"", | ||||
"An optional label"}, | "An optional label"}, | ||||
{"rescan", RPCArg::Type::BOOL, /* opt */ true, | {"rescan", RPCArg::Type::BOOL, /* default */ "true", | ||||
/* default_val */ "true", | |||||
"Rescan the wallet for transactions"}, | "Rescan the wallet for transactions"}, | ||||
}, | }, | ||||
RPCResults{}, | RPCResults{}, | ||||
RPCExamples{ | RPCExamples{ | ||||
"\nDump a private key\n" + | "\nDump a private key\n" + | ||||
HelpExampleCli("dumpprivkey", "\"myaddress\"") + | HelpExampleCli("dumpprivkey", "\"myaddress\"") + | ||||
"\nImport the private key with rescan\n" + | "\nImport the private key with rescan\n" + | ||||
HelpExampleCli("importprivkey", "\"mykey\"") + | HelpExampleCli("importprivkey", "\"mykey\"") + | ||||
▲ Show 20 Lines • Show All 186 Lines • ▼ Show 20 Lines | if (request.fHelp || request.params.size() < 1 || | ||||
"incorrect/bogus balances and unspent outputs until rescan " | "incorrect/bogus balances and unspent outputs until rescan " | ||||
"completes.\n" | "completes.\n" | ||||
"If you have the full public key, you should call importpubkey " | "If you have the full public key, you should call importpubkey " | ||||
"instead of this.\n" | "instead of this.\n" | ||||
"\nNote: If you import a non-standard raw script in hex form, " | "\nNote: If you import a non-standard raw script in hex form, " | ||||
"outputs sending to it will be treated\n" | "outputs sending to it will be treated\n" | ||||
"as change, and not show up in many RPCs.\n", | "as change, and not show up in many RPCs.\n", | ||||
{ | { | ||||
{"address", RPCArg::Type::STR, /* opt */ false, | {"address", RPCArg::Type::STR, RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"The Bitcoin address (or hex-encoded script)"}, | "The Bitcoin address (or hex-encoded script)"}, | ||||
{"label", RPCArg::Type::STR, /* opt */ true, | {"label", RPCArg::Type::STR, /* default */ "\"\"", | ||||
/* default_val */ "\"\"", "An optional label"}, | "An optional label"}, | ||||
{"rescan", RPCArg::Type::BOOL, /* opt */ true, | {"rescan", RPCArg::Type::BOOL, /* default */ "true", | ||||
/* default_val */ "true", | |||||
"Rescan the wallet for transactions"}, | "Rescan the wallet for transactions"}, | ||||
{"p2sh", RPCArg::Type::BOOL, /* opt */ true, | {"p2sh", RPCArg::Type::BOOL, /* default */ "false", | ||||
/* default_val */ "false", | |||||
"Add the P2SH version of the script as well"}, | "Add the P2SH version of the script as well"}, | ||||
}, | }, | ||||
RPCResults{}, | RPCResults{}, | ||||
RPCExamples{"\nImport an address with rescan\n" + | RPCExamples{"\nImport an address with rescan\n" + | ||||
HelpExampleCli("importaddress", "\"myaddress\"") + | HelpExampleCli("importaddress", "\"myaddress\"") + | ||||
"\nImport using a label without rescan\n" + | "\nImport using a label without rescan\n" + | ||||
HelpExampleCli("importaddress", | HelpExampleCli("importaddress", | ||||
"\"myaddress\" \"testing\" false") + | "\"myaddress\" \"testing\" false") + | ||||
▲ Show 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | if (request.fHelp || request.params.size() != 2) { | ||||
"importprunedfunds", | "importprunedfunds", | ||||
"\nImports funds without rescan. Corresponding address or script " | "\nImports funds without rescan. Corresponding address or script " | ||||
"must previously be included in wallet. Aimed towards pruned " | "must previously be included in wallet. Aimed towards pruned " | ||||
"wallets. The end-user is responsible to import additional " | "wallets. The end-user is responsible to import additional " | ||||
"transactions that subsequently spend the imported outputs or " | "transactions that subsequently spend the imported outputs or " | ||||
"rescan after the point in the blockchain the transaction is " | "rescan after the point in the blockchain the transaction is " | ||||
"included.\n", | "included.\n", | ||||
{ | { | ||||
{"rawtransaction", RPCArg::Type::STR_HEX, /* opt */ false, | {"rawtransaction", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"A raw transaction in hex funding an already-existing " | "A raw transaction in hex funding an already-existing " | ||||
"address in wallet"}, | "address in wallet"}, | ||||
{"txoutproof", RPCArg::Type::STR_HEX, /* opt */ false, | {"txoutproof", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"The hex output from gettxoutproof that contains the " | "The hex output from gettxoutproof that contains the " | ||||
"transaction"}, | "transaction"}, | ||||
}, | }, | ||||
RPCResults{}, | RPCResults{}, | ||||
RPCExamples{""}, | RPCExamples{""}, | ||||
} | } | ||||
.ToString()); | .ToString()); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | UniValue removeprunedfunds(const Config &config, | ||||
if (request.fHelp || request.params.size() != 1) { | if (request.fHelp || request.params.size() != 1) { | ||||
throw std::runtime_error(RPCHelpMan{ | throw std::runtime_error(RPCHelpMan{ | ||||
"removeprunedfunds", | "removeprunedfunds", | ||||
"\nDeletes the specified transaction from the wallet. Meant " | "\nDeletes the specified transaction from the wallet. Meant " | ||||
"for use with pruned wallets and as a companion to " | "for use with pruned wallets and as a companion to " | ||||
"importprunedfunds. This will affect wallet balances.\n", | "importprunedfunds. This will affect wallet balances.\n", | ||||
{ | { | ||||
{"txid", RPCArg::Type::STR_HEX, /* opt */ false, | {"txid", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"The hex-encoded id of the transaction you are deleting"}, | "The hex-encoded id of the transaction you are deleting"}, | ||||
}, | }, | ||||
RPCResults{}, | RPCResults{}, | ||||
RPCExamples{ | RPCExamples{ | ||||
HelpExampleCli("removeprunedfunds", | HelpExampleCli("removeprunedfunds", | ||||
"\"a8d0c0184dde994a09ec054286f1" | "\"a8d0c0184dde994a09ec054286f1" | ||||
"ce581bebf46446a512166eae762873" | "ce581bebf46446a512166eae762873" | ||||
"4ea0a5\"") + | "4ea0a5\"") + | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | if (request.fHelp || request.params.size() < 1 || | ||||
"Requires a new wallet backup.\n" | "Requires a new wallet backup.\n" | ||||
"\nNote: This call can take minutes to complete if rescan is true, " | "\nNote: This call can take minutes to complete if rescan is true, " | ||||
"during that time, other rpc calls\n" | "during that time, other rpc calls\n" | ||||
"may report that the imported pubkey exists but related " | "may report that the imported pubkey exists but related " | ||||
"transactions are still missing, leading to temporarily " | "transactions are still missing, leading to temporarily " | ||||
"incorrect/bogus balances and unspent outputs until rescan " | "incorrect/bogus balances and unspent outputs until rescan " | ||||
"completes.\n", | "completes.\n", | ||||
{ | { | ||||
{"pubkey", RPCArg::Type::STR, /* opt */ false, | {"pubkey", RPCArg::Type::STR, RPCArg::Optional::NO, | ||||
/* default_val */ "", "The hex-encoded public key"}, | "The hex-encoded public key"}, | ||||
{"label", RPCArg::Type::STR, /* opt */ true, | {"label", RPCArg::Type::STR, /* default */ "\"\"", | ||||
/* default_val */ "\"\"", "An optional label"}, | "An optional label"}, | ||||
{"rescan", RPCArg::Type::BOOL, /* opt */ true, | {"rescan", RPCArg::Type::BOOL, /* default */ "true", | ||||
/* default_val */ "true", | |||||
"Rescan the wallet for transactions"}, | "Rescan the wallet for transactions"}, | ||||
}, | }, | ||||
RPCResults{}, | RPCResults{}, | ||||
RPCExamples{"\nImport a public key with rescan\n" + | RPCExamples{"\nImport a public key with rescan\n" + | ||||
HelpExampleCli("importpubkey", "\"mypubkey\"") + | HelpExampleCli("importpubkey", "\"mypubkey\"") + | ||||
"\nImport using a label without rescan\n" + | "\nImport using a label without rescan\n" + | ||||
HelpExampleCli("importpubkey", | HelpExampleCli("importpubkey", | ||||
"\"mypubkey\" \"testing\" false") + | "\"mypubkey\" \"testing\" false") + | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | UniValue importwallet(const Config &config, const JSONRPCRequest &request) { | ||||
} | } | ||||
if (request.fHelp || request.params.size() != 1) { | if (request.fHelp || request.params.size() != 1) { | ||||
throw std::runtime_error(RPCHelpMan{ | throw std::runtime_error(RPCHelpMan{ | ||||
"importwallet", | "importwallet", | ||||
"\nImports keys from a wallet dump file (see dumpwallet). " | "\nImports keys from a wallet dump file (see dumpwallet). " | ||||
"Requires a new wallet backup to include imported keys.\n", | "Requires a new wallet backup to include imported keys.\n", | ||||
{ | { | ||||
{"filename", RPCArg::Type::STR, /* opt */ false, | {"filename", RPCArg::Type::STR, RPCArg::Optional::NO, | ||||
/* default_val */ "", "The wallet file"}, | "The wallet file"}, | ||||
}, | }, | ||||
RPCResults{}, | RPCResults{}, | ||||
RPCExamples{"\nDump the wallet\n" + | RPCExamples{"\nDump the wallet\n" + | ||||
HelpExampleCli("dumpwallet", "\"test\"") + | HelpExampleCli("dumpwallet", "\"test\"") + | ||||
"\nImport the wallet\n" + | "\nImport the wallet\n" + | ||||
HelpExampleCli("importwallet", "\"test\"") + | HelpExampleCli("importwallet", "\"test\"") + | ||||
"\nImport using the json rpc call\n" + | "\nImport using the json rpc call\n" + | ||||
HelpExampleRpc("importwallet", "\"test\"")}, | HelpExampleRpc("importwallet", "\"test\"")}, | ||||
▲ Show 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | UniValue dumpprivkey(const Config &config, const JSONRPCRequest &request) { | ||||
} | } | ||||
if (request.fHelp || request.params.size() != 1) { | if (request.fHelp || request.params.size() != 1) { | ||||
throw std::runtime_error(RPCHelpMan{ | throw std::runtime_error(RPCHelpMan{ | ||||
"dumpprivkey", | "dumpprivkey", | ||||
"\nReveals the private key corresponding to 'address'.\n" | "\nReveals the private key corresponding to 'address'.\n" | ||||
"Then the importprivkey can be used with this output\n", | "Then the importprivkey can be used with this output\n", | ||||
{ | { | ||||
{"address", RPCArg::Type::STR, /* opt */ false, | {"address", RPCArg::Type::STR, RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"The bitcoin address for the private key"}, | "The bitcoin address for the private key"}, | ||||
}, | }, | ||||
RPCResult{"\"key\" (string) The private key\n"}, | RPCResult{"\"key\" (string) The private key\n"}, | ||||
RPCExamples{HelpExampleCli("dumpprivkey", "\"myaddress\"") + | RPCExamples{HelpExampleCli("dumpprivkey", "\"myaddress\"") + | ||||
HelpExampleCli("importprivkey", "\"mykey\"") + | HelpExampleCli("importprivkey", "\"mykey\"") + | ||||
HelpExampleRpc("dumpprivkey", "\"myaddress\"")}, | HelpExampleRpc("dumpprivkey", "\"myaddress\"")}, | ||||
} | } | ||||
.ToString()); | .ToString()); | ||||
Show All 40 Lines | if (request.fHelp || request.params.size() != 1) { | ||||
"corresponding addresses may not be added automatically " | "corresponding addresses may not be added automatically " | ||||
"by importwallet.\n" | "by importwallet.\n" | ||||
"Note that if your wallet contains keys which are not " | "Note that if your wallet contains keys which are not " | ||||
"derived from your HD seed (e.g. imported keys), these " | "derived from your HD seed (e.g. imported keys), these " | ||||
"are not covered by\n" | "are not covered by\n" | ||||
"only backing up the seed itself, and must be backed up " | "only backing up the seed itself, and must be backed up " | ||||
"too (e.g. ensure you back up the whole dumpfile).\n", | "too (e.g. ensure you back up the whole dumpfile).\n", | ||||
{ | { | ||||
{"filename", RPCArg::Type::STR, /* opt */ false, | {"filename", RPCArg::Type::STR, RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"The filename with path (either absolute or relative to " | "The filename with path (either absolute or relative to " | ||||
"bitcoind)"}, | "bitcoind)"}, | ||||
}, | }, | ||||
RPCResult{ | RPCResult{ | ||||
"{ (json object)\n" | "{ (json object)\n" | ||||
" \"filename\" : { (string) The filename with full " | " \"filename\" : { (string) The filename with full " | ||||
"absolute path\n" | "absolute path\n" | ||||
"}\n"}, | "}\n"}, | ||||
▲ Show 20 Lines • Show All 660 Lines • ▼ Show 20 Lines | if (mainRequest.fHelp || mainRequest.params.size() < 1 || | ||||
throw std::runtime_error(RPCHelpMan{ | throw std::runtime_error(RPCHelpMan{ | ||||
"importmulti", | "importmulti", | ||||
"\nImport addresses/scripts (with private or public keys, redeem " | "\nImport addresses/scripts (with private or public keys, redeem " | ||||
"script (P2SH)), rescanning all addresses in one-shot-only (rescan " | "script (P2SH)), rescanning all addresses in one-shot-only (rescan " | ||||
"can be disabled via options). Requires a new wallet backup.\n", | "can be disabled via options). Requires a new wallet backup.\n", | ||||
{ | { | ||||
{"requests", | {"requests", | ||||
RPCArg::Type::ARR, | RPCArg::Type::ARR, | ||||
/* opt */ false, | RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"Data to be imported", | "Data to be imported", | ||||
{ | { | ||||
{ | { | ||||
"", | "", | ||||
RPCArg::Type::OBJ, | RPCArg::Type::OBJ, | ||||
/* opt */ false, | RPCArg::Optional::OMITTED, | ||||
/* default_val */ "", | |||||
"", | "", | ||||
{ | { | ||||
{"desc", RPCArg::Type::STR, /* opt */ true, | {"desc", RPCArg::Type::STR, | ||||
/* default_val */ "", | RPCArg::Optional::OMITTED, | ||||
"Descriptor to import. If using descriptor, do " | "Descriptor to import. If using descriptor, do " | ||||
"not also provide address/scriptPubKey, scripts, " | "not also provide address/scriptPubKey, scripts, " | ||||
"or pubkeys"}, | "or pubkeys"}, | ||||
{"scriptPubKey", | {"scriptPubKey", | ||||
RPCArg::Type::STR, | RPCArg::Type::STR, | ||||
/* opt */ false, | RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"Type of scriptPubKey (string for script, json " | "Type of scriptPubKey (string for script, json " | ||||
"for address). Should not be provided if using a " | "for address). Should not be provided if using a " | ||||
"descriptor", | "descriptor", | ||||
/* oneline_description */ "", | /* oneline_description */ "", | ||||
{"\"<script>\" | { \"address\":\"<address>\" }", | {"\"<script>\" | { \"address\":\"<address>\" }", | ||||
"string / json"}}, | "string / json"}}, | ||||
{"timestamp", | {"timestamp", | ||||
RPCArg::Type::NUM, | RPCArg::Type::NUM, | ||||
/* opt */ false, | RPCArg::Optional::NO, | ||||
/* default_val */ "", | |||||
"Creation time of the key in seconds since " | "Creation time of the key in seconds since " | ||||
"epoch (Jan 1 1970 GMT),\n" | "epoch (Jan 1 1970 GMT),\n" | ||||
" " | " " | ||||
" or the string \"now\" to " | " or the string \"now\" to " | ||||
"substitute the current synced blockchain " | "substitute the current synced blockchain " | ||||
"time. The timestamp of the oldest\n" | "time. The timestamp of the oldest\n" | ||||
" " | " " | ||||
" key will determine how " | " key will determine how " | ||||
"far back blockchain rescans need to begin " | "far back blockchain rescans need to begin " | ||||
"for missing wallet transactions.\n" | "for missing wallet transactions.\n" | ||||
" " | " " | ||||
" \"now\" can be specified " | " \"now\" can be specified " | ||||
"to bypass scanning, for keys which are " | "to bypass scanning, for keys which are " | ||||
"known to never have been used, and\n" | "known to never have been used, and\n" | ||||
" " | " " | ||||
" 0 can be specified to " | " 0 can be specified to " | ||||
"scan the entire blockchain. Blocks up to 2 " | "scan the entire blockchain. Blocks up to 2 " | ||||
"hours before the earliest key\n" | "hours before the earliest key\n" | ||||
" " | " " | ||||
" creation time of all keys " | " creation time of all keys " | ||||
"being imported by the importmulti call will " | "being imported by the importmulti call will " | ||||
"be scanned.", | "be scanned.", | ||||
/* oneline_description */ "", | /* oneline_description */ "", | ||||
{"timestamp | \"now\"", "integer / string"}}, | {"timestamp | \"now\"", "integer / string"}}, | ||||
{"redeemscript", RPCArg::Type::STR, /* opt */ true, | {"redeemscript", RPCArg::Type::STR, | ||||
/* default_val */ "omitted", | RPCArg::Optional::OMITTED, | ||||
"Allowed only if the scriptPubKey is a P2SH " | "Allowed only if the scriptPubKey is a P2SH " | ||||
"address/scriptPubKey"}, | "address/scriptPubKey"}, | ||||
{"pubkeys", | {"pubkeys", | ||||
RPCArg::Type::ARR, | RPCArg::Type::ARR, | ||||
/* opt */ true, | /* default */ "empty array", | ||||
/* default_val */ "empty array", | |||||
"Array of strings giving pubkeys to import. They " | "Array of strings giving pubkeys to import. They " | ||||
"must occur in P2PKH scripts. They are not " | "must occur in P2PKH scripts. They are not " | ||||
"required when the private key is also provided " | "required when the private key is also provided " | ||||
"(see the \"keys\" argument).", | "(see the \"keys\" argument).", | ||||
{ | { | ||||
{"pubKey", RPCArg::Type::STR, /* opt */ false, | {"pubKey", RPCArg::Type::STR, | ||||
/* default_val */ "", ""}, | RPCArg::Optional::OMITTED, ""}, | ||||
}}, | }}, | ||||
{"keys", | {"keys", | ||||
RPCArg::Type::ARR, | RPCArg::Type::ARR, | ||||
/* opt */ true, | /* default */ "empty array", | ||||
/* default_val */ "empty array", | |||||
"Array of strings giving private keys to import. " | "Array of strings giving private keys to import. " | ||||
"The corresponding public keys must occur in the " | "The corresponding public keys must occur in the " | ||||
"output or redeemscript.", | "output or redeemscript.", | ||||
{ | { | ||||
{"key", RPCArg::Type::STR, | {"key", RPCArg::Type::STR, | ||||
/* opt */ false, /* default_val */ "", ""}, | RPCArg::Optional::OMITTED, ""}, | ||||
}}, | }}, | ||||
{"range", | {"range", | ||||
RPCArg::Type::OBJ, | RPCArg::Type::OBJ, | ||||
/* opt */ true, | RPCArg::Optional::OMITTED, | ||||
/* default_val */ "", | |||||
"If a ranged descriptor is used, this specifies " | "If a ranged descriptor is used, this specifies " | ||||
"the start and end of the range to import", | "the start and end of the range to import", | ||||
{ | { | ||||
{"start", RPCArg::Type::NUM, /* opt */ true, | {"start", RPCArg::Type::NUM, | ||||
/* default_val */ "0", | /* default */ "0", | ||||
"Start of the range to import"}, | "Start of the range to import"}, | ||||
{"end", RPCArg::Type::NUM, /* opt */ false, | {"end", RPCArg::Type::NUM, | ||||
/* default_val */ "", | RPCArg::Optional::NO, | ||||
"End of the range to import (inclusive)"}, | "End of the range to import (inclusive)"}, | ||||
}}, | }}, | ||||
{"internal", RPCArg::Type::BOOL, | {"internal", RPCArg::Type::BOOL, | ||||
/* opt */ true, /* default_val */ "false", | /* default */ "false", | ||||
"Stating whether matching outputs should be " | "Stating whether matching outputs should be " | ||||
"treated as not incoming payments (also known as " | "treated as not incoming payments (also known as " | ||||
"change)"}, | "change)"}, | ||||
{"watchonly", RPCArg::Type::BOOL, | {"watchonly", RPCArg::Type::BOOL, | ||||
/* opt */ true, /* default_val */ "false", | /* default */ "false", | ||||
"Stating whether matching outputs should be " | "Stating whether matching outputs should be " | ||||
"considered watched even when not all private " | "considered watched even when not all private " | ||||
"keys are provided."}, | "keys are provided."}, | ||||
{"label", RPCArg::Type::STR, /* opt */ true, | {"label", RPCArg::Type::STR, /* default */ "''", | ||||
/* default_val */ "''", | |||||
"Label to assign to the address, only " | "Label to assign to the address, only " | ||||
"allowed with internal=false"}, | "allowed with internal=false"}, | ||||
}, | }, | ||||
}, | }, | ||||
}, | }, | ||||
"\"requests\""}, | "\"requests\""}, | ||||
{"options", | {"options", | ||||
RPCArg::Type::OBJ, | RPCArg::Type::OBJ, | ||||
/* opt */ true, | RPCArg::Optional::OMITTED_NAMED_ARG, | ||||
/* default_val */ "null", | |||||
"", | "", | ||||
{ | { | ||||
{"rescan", RPCArg::Type::BOOL, /* opt */ true, | {"rescan", RPCArg::Type::BOOL, /* default */ "true", | ||||
/* default_val */ "true", | |||||
"Stating if should rescan the blockchain after all " | "Stating if should rescan the blockchain after all " | ||||
"imports"}, | "imports"}, | ||||
}, | }, | ||||
"\"options\""}, | "\"options\""}, | ||||
}, | }, | ||||
RPCResult{"\nResponse is an array with the same size as the input " | RPCResult{"\nResponse is an array with the same size as the input " | ||||
"that has the execution result :\n" | "that has the execution result :\n" | ||||
" [{\"success\": true}, {\"success\": true, " | " [{\"success\": true}, {\"success\": true, " | ||||
▲ Show 20 Lines • Show All 167 Lines • Show Last 20 Lines |