Package: preptools
P-Rep tools (preptools) TutorialThis document is intended to explain how to use preptools.This guide will walk through the basics of setting up the development environment and the usage of preptools CLI commands.Building from sourceFirst, clone this project. Then go to the project directory, create a virtualenv environment, and run the build script. Then install preptools with the .whl file.$python-mvenvvenv# Create a virtual environment.$sourcevenv/bin/activate# Enter the virtual environment.(venv)$./build.sh# run build script.(venv)$lsdist# check result wheel file.preptools-x.y.z-py3-none-any.whlInstallationThis chapter explains how to install P-Rep Tools on your system.RequirementsOS: MacOS or LinuxWindows is not supported.PythonMake a virtualenv for Python 3.7+Check your Python version$python3-VSetupInstall dependenciesSome native tools and libraries are needed to install preptools without any errors.$sudoapt-getinstall-ylibssl-devbuild-essentialautomakepkg-configlibtoollibffi-devlibgmp-devlibyaml-cpp-dev
$sudoapt-getinstall-ypython3.7-devlibsecp256k1-devpython3-pipInstall preptoolsInstall the preptools with the .whl file as below.(venv)$pipinstalldist/preptools-x.x.x-py3-none-any.whlInstall the preptools with pypi(venv)$pipinstallpreptoolsHow to use P-Rep toolsUsage(venv)$preptools--help
usage:preptools[-h]command...

P-Repmanagementcommandlineinterfacev1.3.2

optionalarguments:-h,--helpshowthishelpmessageandexitAvailablecommands:commandregisterPRepRegisterP-Rep(WARNING:Aregistrationfeeof2000ICXisrequired)unregisterPRepUnregisterP-Rep(WARNING:UnregisteringP-Repdoesnotreturntheregistrationfee)setPRepUpdatetheP-RepinformationgetPRepGettheP-RepinformationgetPRepsGetstatusofallregisteredP-RepcandidatescancelProposalCancelProposalvoteProposalVoteProposalapplyProposalApplytheapprovednetworkproposalindicatedbyidtothenetworkmakeProposalMakecontentsofagivennetworkproposalregisterProposal2Registernetworkproposalsinanewformat(WARNING:Asubmissionfeeof100ICXisrequired)getProposalQueryaproposalinformationwithtransactionhashgetProposalsQuerymultiplenetworkproposals.setStakeSetstakevaluegetStakeGetstakevaluesetBondSetbondconfigurationgetBondGetbondconfigurationsetBonderListSetallowedbonderlistofP-RepgetBonderListGetallowedbonderlistofP-ReptxresultGettransactionresultbyhashtxbyhashGettransactionbyhashkeystoreCreatekeystorefileinthespecifiedpath.genconfCreateconfigfileinthespecifiedpath.Common optionsThis table explains common options used in most of the commands.shorthand, NamedefaultDescription-h, --helpshow this help message and exit-u, --urlhttp://127.0.0.1:9000/api/v3node url-n, --nid3network id-c, --config./preptools_config.jsonpreptools config file path-y, --yesDo not confirm if you want to send request-v, --verboseverbose mode flag-p, --passwordkeystore password-k, --keystorekeystore file path-s, --step-limitestimated stepstep limit to set. If not exists, preptools will estimate stepLimit properly.-m, --step-marginCan be used when step-limit option is not given. If step-margin is given,estimated step + step-marginwill be used as step-limit internally.P-Rep commandsThere are 3 commands to set up the P-Rep information:registerPRep,unregisterPRep, andsetPRep.Whenever the commands are called, they load the configuration frompreptools_config.json.In order to use other configuration file, please specify the file location with the-coption.registerPRepDescriptionRegisters P-Rep.There are two ways of registering a P-Rep.Using command line optionInput P-Rep information with --[OPT_NAME] OPT_VALUE.The order of priority is command line > jsonUsing json fileInput P-Rep information with --prep-json JSON_PATH.Usageusage:preptoolsregisterPRep[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT,-sSTEP_LIMIT][--name[NAME]][--countryCOUNTRY][--cityCITY][--emailEMAIL][--websiteWEBSITE][--detailsDETAILS][--p2p-endpointP2PENDPOINT][--node-addressNODEADDRESS][--prep-json[PREP_JSON]]optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon't want to ask send transaction.--verbose, -v         Verbose mode--password PASSWORD, -p PASSWORDkeystore password--keystore KEYSTORE, -k KEYSTOREkeystore file path--step-limit STEP_LIMIT, -s STEP_LIMITstep limit to set--name [NAME]         P-Rep name--country COUNTRY     P-Rep'scountry--cityCITYP-Rep's city--email EMAIL         P-Rep'semail--websiteWEBSITEP-Rep'shomepageurl--detailsDETAILSjsonurlincludingP-Repdetailedinformation--p2p-endpointP2PENDPOINTNetworkinfousedforconnectingamongP-Repnodes--node-addressNODEADDRESSPRepNodeKey--prep-json[PREP_JSON]jsonfilehavingP-RepinformationOptionsshorthand, NamedefaultDescription--nameP-Rep name--countryP-Rep's countrySeeISO 3166-1 alpha-3standard--cityP-Rep's cityex) Seoul, Tokyo, "New York"--emailP-Rep's emailex) "example@iconloop.com"--websiteP-Rep's homepage urlex) "https://node.example.com/"--detailsjson url including P-Rep detailed informationex) "https://node.example.com/json"--p2p-endpointDeprecatedNetwork info used for connection among P-Rep nodesex) “123.45.67.89:7100” or “node.example.com:7100”--node-addressPRep Node Key (default: Operator Key)--prep-jsonjson file having P-Rep informationExample(venv)$catregisterPRep.json{"name":"banana node","country":"USA","city":"New York","email":"banana@example.com","website":"https://icon.banana.com","details":"https://icon.banana.com/json","p2pEndpoint":"node.example.com:7100","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6"}(venv)$preptoolsregisterPRep-ktest_keystore--prep-jsonregisterPRep.json>Password:[Request]======================================================================{"from_":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6","to":"cx0000000000000000000000000000000000000000","value":2000000000000000000000,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"registerPRep","data_type":"call","params":{"name":"banana node","country":"USA","city":"New York","email":"banana@example.com","website":"https://icon.banana.com","details":"https://icon.banana.com/json","p2pEndpoint":"node.example.com:7100","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d400"}}>Continue?[Y/n]requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0xe667b8de967e4c5e2cc5f4fc2775766f87517935e0875a8c4d0b9c8c2ce01846","id":1234}(venv)$catregisterPRep.json{"email":"banana@example.com","website":"https://icon.banana.com","details":"https://icon.banana.com/json","p2pEndpoint":"node.example.com:7100","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d400"}(venv)$preptoolsregisterPRep-ktest_keystore--prep-jsonregisterPRep.json--name"kokoa node">Password:>country:USA>city:NewYork[Request]======================================================================{"from_":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6","to":"cx0000000000000000000000000000000000000000","value":2000000000000000000000,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"registerPRep","data_type":"call","params":{"email":"banana@example.com","website":"https://icon.banana.com","details":"https://icon.banana.com/json","p2pEndpoint":"node.example.com:7100","name":"kokoa node","country":"USA","city":"New York"}}>Continue?[Y/n]requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0xeb00ea0ad9ee155067f37015d2403067904649a76a35dd06197600e408d30e3e","id":1234}unregisterPRepDescriptionUnregisters a P-Rep.Usageusage:preptoolsunregisterPRep[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT,-sSTEP_LIMIT]optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--passwordPASSWORD,-pPASSWORDkeystorepassword--keystoreKEYSTORE,-kKEYSTOREkeystorefilepath--step-limitSTEP_LIMIT,-sSTEP_LIMITsteplimittosetExample(venv)$preptoolsunregisterPRep-ktest_keystore>Password:[Request]======================================================================{"from_":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6","to":"cx0000000000000000000000000000000000000000","value":0,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"unregisterPRep","data_type":"call","params":{}}>Continue?[Y/n]requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0x027038296f595aedd1bfa680de2e20c3fd133816f9c74807e440bf6c548fb9aa","id":1234}setPRepDescriptionChange enrolled P-Rep information.There are three ways of set P-Rep.Using command line optionYou can input P-Rep information with --[OPT_NAME] OPT_VALUE.The order of priority is command line > json.Using json fileYou can input P-Rep information with --prep-json JSON_PATH.Using interactive mode [--i]Activate interactive mode and input P-Rep info what you want.If you don't want to input, just enter.Usageusage:preptoolssetPRep[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT,-sSTEP_LIMIT][-i][--nameNAME][--countryCOUNTRY][--cityCITY][--emailEMAIL][--websiteWEBSITE][--detailsDETAILS][--p2p-endpointP2PENDPOINT][--node-addressNODEADDRESS][--prep-jsonPREP_JSON]optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon't want to ask send transaction.--verbose, -v         Verbose mode--password PASSWORD, -p PASSWORDkeystore password--keystore KEYSTORE, -k KEYSTOREkeystore file path--step-limit STEP_LIMIT, -s STEP_LIMITstep limit to set-i, --interactive     Activate interactive mode when prep fields are blank.--name NAME           PRep name--country COUNTRY     P-Rep'scountry--cityCITYP-Rep's city--email EMAIL         P-Rep'semail--websiteWEBSITEP-Rep'shomepageurl--detailsDETAILSjsonurlincludingP-Repdetailsinformation--p2p-endpointP2PENDPOINTNetworkinfousedforconnectingamongP-Repnodes--node-addressNODEADDRESSPRepNodeKey(Default:OwnAddress)--prep-jsonPREP_JSONjsonfileincludingP-RepinformationOptionsRefer toregisterPRep optionsExample(venv)$catsetPRep.json{"name":"kokoa node","country":"USA","website":"https://icon.kokoa.com","details":"https://icon.kokoa.com/json","p2pEndpoint":"node.example.com:7100","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d400"}(venv)$preptoolssetPRep-ktest_keystore--prep-jsonsetPRep.json>Password:[Request]======================================================================{"from_":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6","to":"cx0000000000000000000000000000000000000000","value":0,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"setPRep","data_type":"call","params":{"name":"kokoa node","country":"USA","website":"https://icon.kokoa.com","details":"https://icon.kokoa.com/json","p2pEndpoint":"node.example.com:7100","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d400"}}>Continue?[Y/n]requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0xc8456053128897a0941dab4c79428db91dda5a2899e3813698146ac25808c4c9","id":1234}(venv)$preptoolssetPRep-ktest_keystore--prep-jsonsetPRep.json-i
>Password:>city:NewYork>email:[Request]======================================================================{"from_":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6","to":"cx0000000000000000000000000000000000000000","value":0,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"setPRep","data_type":"call","params":{"name":"kokoa node","country":"USA","website":"https://icon.kokoa.com","details":"https://icon.kokoa.com/json","p2pEndpoint":"node.example.com:7100","city":"New York","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d400"}}>Continue?[Y/n]requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0xff0c4b603a2ae5ba50f658e0d0188210a5afeec559e44df29b55806342fa4563","id":1234}setBonderListDescriptionSets bonderList up to 10 addresses which can post the bondUsageusage:preptoolssetBonderList[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT]--bonder-listBONDERLIST

optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon't want to ask send transaction.--verbose, -v         Verbose mode--password PASSWORD, -p PASSWORDkeystore password--keystore KEYSTORE, -k KEYSTOREkeystore file path--step-limit STEP_LIMIT, -s STEP_LIMITstep limit to set--bonder-list BONDERLISTlist of address. separator is ','Example(venv)$preptoolssetBonderList--bonder-listhxf1ba1be02ff3a15c5b5c63f2bdba810fefb6f0b5,hx7101544346685b37c7bbb56c2c9b8ed56f2895e2,hxa101544346685b37c7bbb56c2c9b8ed56f2895e1[Request]======================================================================{"from_":"hx7101544346685b37c7bbb56c2c9b8ed56f2895e2","to":"cx0000000000000000000000000000000000000000","value":0,"step_limit":1342177280,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"setBonderList","data_type":"call","params":{"bonderList":["hxf1ba1be02ff3a15c5b5c63f2bdba810fefb6f0b5","hx7101544346685b37c7bbb56c2c9b8ed56f2895e2","hxa101544346685b37c7bbb56c2c9b8ed56f2895e1"]}}>Continue?[Y/n][Response]=====================================================================txHash:{'jsonrpc':'2.0','result':'0x3825c983b50e42477ba17382d18ddf6e82de59b0b9d2c4813a392d0d758193b7','id':1636530159}P-Rep information commandsCommands that show the P-Rep information.getPRepDescriptionQueries P-Rep informationUsageusage:preptoolsgetPRep[-h][--urlURL][--nidNID][--configCONFIG]address

positionalarguments:addressAddressofP-Repyouarelookingforoptionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepathExample(venv)$preptoolsgetPRephxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6[Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000000","method":"getPRep","params":{"address":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6"}}requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"status":"0x1","grade":"0x2","name":"kokoa node","country":"USA","city":"New York","stake":"0x0","delegated":"0x0","totalBlocks":"0x0","validatedBlocks":"0x0","irep":"0xa968163f0a57b400000","irepUpdateBlockHeight":"0x58f","lastGenerateBlockHeight":"-0x1","email":"rhkddnjs99@hotmail.com","website":"https://icon.kokoa.com","details":"https://icon.kokoa.com/json","p2pEndpoint":"node.example.com:7100","nodeAddress":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d400"},"id":1234}getBonderListDescriptionGets the list of bonders which can post the bondUsageusage:preptoolsgetBonderList[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose]address

positionalarguments:addressAddressofP-Repyouarelookingforoptionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemodeExample(venv)$preptoolsgetBonderListhx7101544346685b37c7bbb56c2c9b8ed56f2895e2[Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000000","method":"getBonderList","params":{"address":"hx7101544346685b37c7bbb56c2c9b8ed56f2895e2"}}[Response]====================================================================={"jsonrpc":"2.0","result":{"bonderList":["hxf1ba1be02ff3a15c5b5c63f2bdba810fefb6f0b5","hx7101544346685b37c7bbb56c2c9b8ed56f2895e2","hxa101544346685b37c7bbb56c2c9b8ed56f2895e1"]},"id":1636530914}getPRepsDescriptionGets live status of all registered P-Rep candidatesUsageusage:preptoolsgetPReps[-h][--urlURL][--nidNID][--configCONFIG][--start-rankingSTART_RANKING][--end-rankingEND_RANKING][--block-heightBLOCK_HEIGHT]optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--start-rankingSTART_RANKINGGetP-Replistwhichstartsfromstartranking--end-rankingEND_RANKINGGetP-Replistwhichendswithendranking,inclusive--block-heightBLOCK_HEIGHTBlockheightwhichrankingformedOptionsshorthand, NamedefaultDescription--start-rankingGet P-Rep list which starts from start rankingminimum ranking is 1.--end-rankingGet P-Rep list which ends with end ranking, inclusive--block-heightBlock height when ranking formedExample(venv)$preptoolsgetPReps[Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000000","method":"getPReps","params":null}requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"blockHeight":"0x1e3f3","startRanking":"0x0","totalDelegated":"0x0","totalStake":"0x0","preps":[{"name":"Banana node","country":"USA","city":"New York","grade":"0x0","address":"hx8f21e5c54f006b6a5d5fe65486908592151a7c57","irep":"0xc350","irepUpdateBlockHeight":"0x1200","lastGenerateBlockHeight":"-0x1","stake":"0x21e19e0c9bab2400000","delegated":"0x204fce5e3e25026110000000","totalBlocks":"0x2710","validatedBlocks":"0x2328"},...]},"id":1234}(venv)$preptoolsgetPReps--start-ranking"0x1"--end-ranking"0x8"--block-height"0x1234"[Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000000","method":"getPReps","params":{"startRanking":"0x1","endRanking":"0x8","blockHeight":"0x1234"}}requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"blockHeight":"0x1e452","startRanking":"0x0","totalDelegated":"0x0","totalStake":"0x0","preps":[{"name":"Banana node","country":"USA","city":"New York","grade":"0x0","address":"hx8f21e5c54f006b6a5d5fe65486908592151a7c57","irep":"0xc350","irepUpdateBlockHeight":"0x1200","lastGenerateBlockHeight":"-0x1","stake":"0x21e19e0c9bab2400000","delegated":"0x204fce5e3e25026110000000","totalBlocks":"0x2710","validatedBlocks":"0x2328"},...]},"id":1234}Network Proposal commandsThese commands are designed for network proposal handling.Whenever the commands are called, they load the configuration frompreptools_config.jsonby default.In order to use other configuration file, please specify the file location with the-coption.registerProposal2The command is used to register network protocols in a new format supported by governance-2.x.x score.CAUTION: a proposer must pay a fee of100 ICXto submit a proposal to blockchain.For more detail on the new protocol specification, refer togovernance2 score registerProposal format.The new proposal format will make main P-Reps possible handle multiple proposals with a transaction.Usage(venv)$preptoolsregisterProposal2-h[14:37:44]usage:preptoolsregisterProposal2[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT][--step-marginSTEP_MARGIN][title][desc]proposals[proposals...]positionalarguments:titleProposaltitledescProposaldescriptionproposalsProposalcontentsingovernance2scoreformatorfilepathwith'@'prefix,whichincludesproposalcontents

optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon't want to ask send transaction.--verbose, -v         Verbose mode--password PASSWORD, -p PASSWORDkeystore password--keystore KEYSTORE, -k KEYSTOREkeystore file path--step-limit STEP_LIMIT, -s STEP_LIMITstep limit to set--step-margin STEP_MARGIN, -m STEP_MARGINCan be used when step-limit option is not given. Setstep-limit value to estimated Step + this value(step-margin)(venv) $ preptools registerProposal2 -c preptools_config.json -k prep_keys0 -p qwer1234% "proposal title" "proposal description" '{"name":"text","value":{"text":"text proposal sample"}'@step_price_proposal.json@reward_fund.json@step_costs.json(venv)$catstep_price_proposal.json{"name":"stepPrice","value":{"stepPrice":"0x2e90edd00"}}(venv)$catreward_fund.json{"name":"rewardFund","value":{"iglobal":"0x1e8480"}}(venv)$catstep_costs.json{"name":"stepCosts","value":{"get":"0x19","getBase":"0xc8","input":"0xc8"}}makeProposalThis command is used to make a variety of network proposal contents easily.Note that it does not have any connection to blockchain while making the content of a specific network proposal.The created proposal content is used as a parameter ofregisterProposal2command.Usage(venv)$preptoolsmakeProposal-h
usage:preptoolsmakeProposal[-h]proposal...

optionalarguments:-h,--helpshowthishelpmessageandexitAvailableproposals:proposaltexttextnetworkproposalrevisionrevisionnetworkproposalmaliciousScoremaliciousScorenetworkproposalprepDisqualificationprepDisqualificationnetworkproposalstepPricestepPricenetworkproposalstepCostsstepCostsnetworkproposalrewardFundrewardFundnetworkproposalforMonthlyRewardFundSettingrewardFundsAllocationrewardFundsAllocationnetworkproposaltodeterminetheallocationofthemonthlyrewardfundnetworkScoreDesignationnetworkScoreDesignationnetworkproposalnetworkScoreUpdatenetworkScoreUpdatenetworkproposalaccumulatedValidationFailureSlashingRateaccumulatedValidationFailureSlashingRatenetworkproposalmissedNetworkProposalVoteSlashingRatemissedNetworkProposalVoteSlashingRatenetworkproposalcallcallnetworkproposalExample(venv)$preptoolsmakeProposalcall-h
usage:preptoolsmakeProposalcall[-h][-oOUTPUT][--paramsPARAMS[PARAMS...]]tomethod

positionalarguments:toSCOREaddressmethodmethodnametocall

optionalarguments:-h,--helpshowthishelpmessageandexit-oOUTPUT,--outputOUTPUTfilepathtosaveproposalcontents--paramsPARAMS[PARAMS...]Argumentsinformationtobepassedtomethod(TYPE@VALUE[@FIELDS],FIELDSrequiredifparameterisstructor[]struct)(venv)$preptoolsmakeProposalcallcx0000000000000000000000000000000000000000openBTPNetwork\--paramsstr@ethstr@sepoliaAddress@cxf1b0808f09138fffdb890772315aeabb37072a8a{"name":"call","value":{"to":"cx0000000000000000000000000000000000000000","method":"openBTPNetwork","params":[{"type":"str","value":"eth"},{"type":"str","value":"sepolia"},{"type":"Address","value":"cxf1b0808f09138fffdb890772315aeabb37072a8a"}]}}voteProposalDescriptionVotes for Network-proposal.Refer tovoteProposal request formatfor details.Usageusage:preptoolsvoteProposal[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT,-sSTEP_LIMIT]--idID--voteVOTE

optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--passwordPASSWORD,-pPASSWORDkeystorepassword--keystoreKEYSTORE,-kKEYSTOREkeystorefilepath--step-limitSTEP_LIMIT,-sSTEP_LIMITsteplimittoset--idIDhashofregisterProposalTX--voteVOTE0:disagree,1:agreeExample(venv)$preptoolsvoteProposal-kprep_keys1--id0x515d0c7470e56358a6085ca93d305c4c28d004c10d110b26570dadc34bf2e492--vote0>Password:[Request]======================================================================{"from_":"hx85d62b91d70bc2390b636a8d64136a413e671e3a","to":"cx0000000000000000000000000000000000000001","value":0,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"voteProposal","data_type":"call","params":{"id":"0x515d0c7470e56358a6085ca93d305c4c28d004c10d110b26570dadc34bf2e492","vote":0}}>Continue?[Y/n]Y
requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0x22ca6eb228586ed2a00924f18bc57f1819214bf0d5c5d305b03d72a931360cc8","id":1234}cancelProposalDescriptionCancels network proposal within the voting period.Refer tocancelProposal request formatfor details.Usageusage:preptoolscancelProposal[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT,-sSTEP_LIMIT]--id[ID]optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--passwordPASSWORD,-pPASSWORDkeystorepassword--keystoreKEYSTORE,-kKEYSTOREkeystorefilepath--step-limitSTEP_LIMIT,-sSTEP_LIMITsteplimittoset--id[ID]hashofregisterProposalTXExample(venv)$preptoolscancelProposal-kprep_keys0--id0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4
>Password:[Request]======================================================================{"from_":"hxb74e29fba1809a105fdec433040a4e713bbe91fe","to":"cx0000000000000000000000000000000000000001","value":0,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"cancelProposal","data_type":"call","params":{"id":"0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4"}}>Continue?[Y/n]Y
requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0x344887e8b9b30e523991e44602eee51857fd7a55e5437b34a7e8d0f2ede8c019","id":1234}applyProposalDescriptionApplies an approved network proposal to the network.It should be executed within the voting period, otherwise the proposal will be expired and cannot be applied anymore.Refer toapplyProposal request formatfor details.Usage(venv)$preptoolsapplyProposal-h[12:07:48]usage:preptoolsapplyProposal[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT][--step-marginSTEP_MARGIN]id

positionalarguments:idhashofregisterProposalTX

optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--passwordPASSWORD,-pPASSWORDkeystorepassword--keystoreKEYSTORE,-kKEYSTOREkeystorefilepath--step-limitSTEP_LIMIT,-sSTEP_LIMITsteplimittoset--step-marginSTEP_MARGIN,-mSTEP_MARGINCanbeusedwhenstep-limitoptionisnotgiven.Setstep-limitvaluetoestimatedStep+thisvalue(step-margin)Example(venv)$preptoolsapplyProposal-kprep_keys00x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4
>Password:[Request]======================================================================{"from_":"hxb74e29fba1809a105fdec433040a4e713bbe91fe","to":"cx0000000000000000000000000000000000000001","value":0,"step_limit":268435456,"nid":3,"nonce":null,"version":3,"timestamp":null,"method":"applyProposal","data_type":"call","params":{"id":"0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4"}}>Continue?[Y/n]Y
requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":"0x344887e8b9b30e523991e44602eee51857fd7a55e5437b34a7e8d0f2ede8c019","id":1234}Querying Network Proposal commandsThere are 2 commands for network proposal querying:getProposalandgetProposals.Whenever the commands are called, they load the configuration frompreptools_config.json.In order to use other configuration file, please specify the file location with the-coption.getProposalDescriptionQuerying network proposal information with given proposal-idRefer togetProposal request format.Usageusage:preptoolsgetProposal[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose]transaction_hash

positionalarguments:transaction_hashhashofregisterProposaltransaction

optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemodeExample(venv)$preptoolsgetProposal0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4[Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000001","method":"getProposal","params":{"id":"0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4"}}requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"id":"0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4","proposer":"hxb74e29fba1809a105fdec433040a4e713bbe91fe","proposerName":"nodehxb74e29fba1809a105fdec433040a4e713bbe91fe","status":"0x0","startBlockHeight":"0x2c","endBlockHeight":"0x2f","contents":{"title":"pro0","description":"first proposal","type":"0x4","value":{"value":"1234"}},"vote":{"agree":{"list":[],"amount":"0x0"},"disagree":{"list":[],"amount":"0x0"},"noVote":{"list":["hxb74e29fba1809a105fdec433040a4e713bbe91fe","hx85d62b91d70bc2390b636a8d64136a413e671e3a","hxd891096dd01c1af790c29d55022a35357684643c","hx44ae89b457ccfb1bacbe35d278933ba887373b1b","hxf2c6b56e6dfcfe7c3b9fbd3d1ca1d08973b8d363","hxe54bdf4b25affa59c8963f1e4a6c45183aee167f","hx02ccb9e378a35e11a65b5c60e796fded98383b37","hx064c3d9b4982aae0253b9a8b3dd106823c107c25","hxcd294f136f39232d97081f2dfa22886c76f45afb","hxd685153db2a09347115cf0d8d1c5f9ab174bd802","hx383b555e0301b77b1c326815bccaaaf382ecd238","hxb0bfb180fb60ac68a0d3dbcadf509af07dd1f501","hxa5861173d2bd05dd9bfc5c5d74faa654f8d37c7b","hxee194a44eb4d06fb7c8a9515f74eb41735046be2","hx6e220a1b6c0fc12b2d3cc6122fccf2e9ec3d1406","hxa46f74425c0e588be8c93bbabf1be2c67da12066","hx81c5db07cd6c1c569e0a5abebdb7b108157d80b5","hx46ca63475e630e7c3a8c3f8c0e2981b675f32919","hxffa3675581c0209c2adcc598767c77d43f999a33","hx9259b69bbdea01f32e97d91401ada24d12965ae3","hx282c3778a572d4d0d1eb8e65ab53daaedea3f68e","hx25b84c8fe8bfabda4fb30523a1923a79cc304af5"],"amount":"0x10658da4dff32a862400000"}}},"id":1234}getProposalsDescriptionQueries multiple network proposalsProposals are listed starting with the most recently registered.Refer togetProposals request formatUsageusage:preptoolsgetProposals[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--type[TYPE]][--status[STATUS]]optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--type[TYPE]typeofnetworkproposaltofilter--status[STATUS]statusofnetworkproposaltofilterOptionsshorthand, NamedefaultDescription--typeTypeof network proposal to filter--statusStatusof network proposal to filter--start0Refer togetProposals/Parameters--size10Number of proposals to query. Refer togetProposals/ParametersExample(venv)$preptoolsgetProposals[Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000001","method":"getProposals","params":null}requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"proposals":[{"id":"0x02221f9346f9c9b3322ea33e67a1ca0fbe9491e0ea3aefb5154a43e2ea829fa4","proposer":"hxb74e29fba1809a105fdec433040a4e713bbe91fe","proposerName":"nodehxb74e29fba1809a105fdec433040a4e713bbe91fe","status":"0x0","startBlockHeight":"0x2c","endBlockHeight":"0x2f","contents":{"title":"pro0","description":"first proposal","type":"0x4","value":{"value":"1234"}},"vote":{"agree":{"count":"0x0","amount":"0x0"},"disagree":{"count":"0x0","amount":"0x0"},"noVote":{"count":"0x16","amount":"0x10658da4dff32a862400000"}}},{"id":"0x515d0c7470e56358a6085ca93d305c4c28d004c10d110b26570dadc34bf2e492","proposer":"hxb74e29fba1809a105fdec433040a4e713bbe91fe","proposerName":"nodehxb74e29fba1809a105fdec433040a4e713bbe91fe","status":"0x0","startBlockHeight":"0x2c","endBlockHeight":"0x2f","contents":{"title":"pro1","description":"second proposal","type":"0x4","value":{"value":"1234"}},"vote":{"agree":{"count":"0x0","amount":"0x0"},"disagree":{"count":"0x1","amount":"0xbecc41ad16b07a7600000"},"noVote":{"count":"0x15","amount":"0xfa6c16332dc7a0bae00000"}}}]},"id":1234}Bond commandsThere are 2 commands to bond:setStakeandsetBond.Whenever the commands are called, they load the configuration frompreptools_config.json.In order to use other configuration file, please specify the file location with the-coption.setStakeDescriptionSets stake value of the accountUsageusage:preptoolssetStake[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT]value

positionalarguments:valueStakevalue

optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--passwordPASSWORD,-pPASSWORDkeystorepassword--keystoreKEYSTORE,-kKEYSTOREkeystorefilepath--step-limitSTEP_LIMIT,-sSTEP_LIMITsteplimittosetExample(venv)$preptoolssetStake10000[Request]======================================================================{"from_":"hxcad9055c936192554141a0f5f4bb554a97f4d8e1","to":"cx0000000000000000000000000000000000000000","value":0,"step_limit":1342177280,"nid":7,"nonce":null,"version":3,"timestamp":null,"method":"setStake","data_type":"call","params":{"value":10000}}>Continue?[Y/n]y[Response]=====================================================================txHash:{'jsonrpc':'2.0','result':'0xfab066b43f06596fd1bea3ab6effb154fdab3abcff21e4d75a70a62dbbc86053','id':1637130230}setBondDescriptionSets bond configuration of the accountUsageusage:preptoolssetBond[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose][--passwordPASSWORD][--keystoreKEYSTORE][--step-limitSTEP_LIMIT]bond[bond...]positionalarguments:bondBondconfigurations.PREP_ADDRESS,VALUE(Max:100)optionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemode--passwordPASSWORD,-pPASSWORDkeystorepassword--keystoreKEYSTORE,-kKEYSTOREkeystorefilepath--step-limitSTEP_LIMIT,-sSTEP_LIMITsteplimittosetExample(venv)$preptoolssetBondhx4ffe89ff27a21276a3c7e23eef2ced3d3072d7c9,500hx7ded18f4c3d1740137684d8109cf8444f89053e5,500[Request]======================================================================{"from_":"hxcad9055c936192554141a0f5f4bb554a97f4d8e1","to":"cx0000000000000000000000000000000000000000","value":0,"step_limit":1342177280,"nid":7,"nonce":null,"version":3,"timestamp":null,"method":"setBond","data_type":"call","params":{"bonds":[{"address":"hx4ffe89ff27a21276a3c7e23eef2ced3d3072d7c9","value":"0x1f4"},{"address":"hx7ded18f4c3d1740137684d8109cf8444f89053e5","value":"0x1f4"}]}}>Continue?[Y/n][Response]=====================================================================txHash:{'jsonrpc':'2.0','result':'0xd2bb1dfbf03a68adaa36a35a8544e90035b93e293fa60611aa0f815420895e9b','id':1637130338}Querying bond commandsgetStakeDescriptionGet stake value of the accountUsageusage:preptoolsgetStake[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose]address

positionalarguments:addressAddressofyouarelookingforoptionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemodeExample(venv)$preptoolsgetStakehxcad9055c936192554141a0f5f4bb554a97f4d8e1*[master][Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000000","method":"getStake","params":{"address":"hxcad9055c936192554141a0f5f4bb554a97f4d8e1"}}[Response]====================================================================={"jsonrpc":"2.0","result":{"stake":"0x2710","unstakes":[]},"id":1637130254}getBondDescriptionGets bond configuration of the accountUsageusage:preptoolsgetBond[-h][--urlURL][--nidNID][--configCONFIG][--yes][--verbose]address

positionalarguments:addressAddressofyouarelookingforoptionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepath--yes,-yDon'twanttoasksendtransaction.--verbose,-vVerbosemodeExample(venv)$preptoolsgetBondhxcad9055c936192554141a0f5f4bb554a97f4d8e1*[master][Request]======================================================================{"from_":"hx1234567890123456789012345678901234567890","to":"cx0000000000000000000000000000000000000000","method":"getBond","params":{"address":"hxcad9055c936192554141a0f5f4bb554a97f4d8e1"}}[Response]====================================================================={"jsonrpc":"2.0","result":{"bonds":[{"address":"hx4ffe89ff27a21276a3c7e23eef2ced3d3072d7c9","value":"0x1f4"},{"address":"hx7ded18f4c3d1740137684d8109cf8444f89053e5","value":"0x1f4"}],"unbonds":[]},"id":1637131982}Preptools Common commandsCommands that generate configuration file and keystore file. There are two commandskeystoreandgenconf.keystoreDescriptionCreates a keystore file in the given path.Usageusage:preptoolskeystore[-h][-pPASSWORD]path

positionalarguments:pathPathofkeystorefile.

optionalarguments:-h,--helpshowthishelpmessageandexit-pPASSWORD,--passwordPASSWORDKeystorefile'spasswordExample(venv)$preptoolskeystorekeystore_file
Inputyourkeystorepassword:
Retypeyourkeystorepassword:
MadefilesuccessfullygenconfDescriptionGenerates P-Rep tools config file.Usageusage:preptoolsgenconf[-h][--pathPATH]optionalarguments:-h,--helpshowthishelpmessageandexit--pathPATHPathofconfiguefile.default(./preptools_config.json)Example(venv)$preptoolsgenconf
Made./preptools_config.jsonsuccessfully(venv)$cat./preptools_config.json{"url":"http://127.0.0.1:9000/api/v3","nid":3,"keystore":null}Preptools Other commandsCommands that are related to transaction. There are two commandstxresultandtxbyhash.txresultDescriptionGets transaction result by transaction hash.Usageusage:preptoolstxresult[-h][--urlURL][--nidNID][--configCONFIG][tx_hash]positionalarguments:tx_hashEnterthetransactionhashoptionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepathExample(venv)$preptoolstxresult0xc8456053128897a0941dab4c79428db91dda5a2899e3813698146ac25808c4c9
requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"txHash":"0xc8456053128897a0941dab4c79428db91dda5a2899e3813698146ac25808c4c9","blockHeight":"0x1d980","blockHash":"0xa7354fb9427308239e56482916dd4e31988ce1f207091cdf81c656f89a066c5f","txIndex":"0x0","to":"cx0000000000000000000000000000000000000000","stepUsed":"0x21340","stepPrice":"0x2540be400","cumulativeStepUsed":"0x21340","eventLogs":[{"scoreAddress":"cx0000000000000000000000000000000000000000","indexed":["PRepSet(Address)"],"data":["hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6"]}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000080000000000000000000000000000000000000000000000000000000000020000000000000008000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1"},"id":1234}txbyhashDescriptionGets transaction by transaction hashUsageusage:preptoolstxbyhash[-h][--urlURL][--nidNID][--configCONFIG][tx_hash]positionalarguments:tx_hashEnterthetransactionhashoptionalarguments:-h,--helpshowthishelpmessageandexit--urlURL,-uURLnodeurldefault(http://127.0.0.1:9000/api/v3)--nidNID,-nNIDnetworkIddefault(3)ex)mainnet(1),testnet(2)--configCONFIG,-cCONFIGpreptoolsconfigfilepathExample(venv)$preptoolstxbyhash0xc8456053128897a0941dab4c79428db91dda5a2899e3813698146ac25808c4c9
requestsuccess.[Response]====================================================================={"jsonrpc":"2.0","result":{"version":"0x3","from":"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6","to":"cx0000000000000000000000000000000000000000","stepLimit":"0x10000000","timestamp":"0x58fa97a48ad43","nid":"0x3","value":"0x0","dataType":"call","data":{"method":"setPRep","params":{"name":"kokoa node","country":"USA","website":"https://icon.kokoa.com","details":"https://icon.kokoa.com/json","p2pEndpoint":"node.example.com:7100"}},"signature":"4krblW9KtQr6KNIJOVa22B3JFDQD6vaxepDSjMET91oua3Qeiq3UFMIHiucWiIrKGt3zaSo2K+mVW7Ge5rOtPwE=","txHash":"0xc8456053128897a0941dab4c79428db91dda5a2899e3813698146ac25808c4c9","txIndex":"0x0","blockHeight":"0x1d980","blockHash":"0xa7354fb9427308239e56482916dd4e31988ce1f207091cdf81c656f89a066c5f"},"id":1234}Configuration Filespreptools_config.jsonFor every P-Rep tools CLI commands exceptgenconfandkeystore, this file is used to configure the default parameters and initial settings.In this configuration file, you can define default options values for some CLI commands.{"uri":"http://127.0.0.1:9000/api/v3","nid":3,"keyStore":null}FieldData  typeDescriptionuristringURI to send the request.nidintNetwork ID. 3 is reserved for P-Rep tools.keyStorestringKeystore file path.JSON Standard for Public Representative Detailed InformationThis is the JSON standard for detailed information about the P-Rep. P-Rep can submit the url of detailed information via theregisterPRepandsetPRepaction on the ICON Blockchain. We strongly recommend that you register this information.{"representative":{"logo":{"logo_256":"https://icon.foundation/img/img-256.png","logo_1024":"https://icon.foundation/img/img-1024.png","logo_svg":"https://icon.foundation/img/img-logo.svg"},"media":{"steemit":"","twitter":"","youtube":"","facebook":"","github":"","reddit":"","keybase":"","telegram":"","wechat":""}},"server":{"location":{"country":"","city":""},"server_type":"","api_endpoint":""}}representative: Basic information of Public Representativelogo: Logo images of P-Replogo_256: image 256x256pxlogo_1024: image 1024x1024pxlogo_sgv: image svgmedia: URL and username of social mediasteemit: Steemit URLtwitter: Twitter URLyoutube: Youtube URLFacebook: Facebook URLgithub: Github URLreddit: Raddit URLkeybase: Usernametelegram: Usernamewechat: Usernameserver: Server information of Public Representativelocation: Server locationname: Node location in human-readable format [City, State]country: Node country code [XX]server_type: Type of server ‘cloud, on-premise, hybrid’api_endpoint: HTTP endpointhttp://host:portHow to useCreate a JSON file and upload it to your domain server. When you call theregisterPReporsetPRepfunction, input the url of this file into thedetailsfield.ReferencesICON Chain SCORE APIGovernance-2.x SCOREICON SDK PYTHONLicenseThis project follows the Apache 2.0 License. Please refer toLICENSEfor details.