
class RPC:
    # chain
    chain_getBlockCount = "getblockcount"
    chain_getBestBlockHash = "getbestblockhash"
    chain_getBlockHash = "getblockhash"
    chain_getBLock = "getblock"
    chain_getBlockStates = "getblockstates"
    chain_getBlockChainInfo = "getblockchaininfo"
    chain_getChainTips = "getchaintips"
    chain_getChainTxStats = "getchaintxstats"
    chain_getDifficulty = "getdifficulty"
    chain_getMemPoolAncestors = "getmempoolancestors"
    chain_getMemPoolDescendants = "getmempooldescendants"
    chain_getMemPoolEntry = "getmempoolentry"
    chain_getMemPoolInfo = "getmempoolinfo"
    chain_getRawMemPool = "getrawmempool"
    chain_getTxOut = "gettxout"
    chain_getTxOutProof = "gettxoutproof"
    chain_getTxOutSetInfo = "gettxoutsetinfo"
    chain_preciousBlock = "preciousblock"
    chain_pruneBlockChain = "pruneblockchain"
    chain_verifyChain = "verifychain"
    chain_verifyTxOutProof = "verifytxoutproof"

    # wallet
    wallet_bumpFee = "bumpfee"
    wallet_createWallet = "createwallet"
    wallet_dumpWallet = "dumpwallet"
    wallet_loadWallet = "loadwallet"
    wallet_importWallet = "importwallet"
    wallet_listWallets = "listwallets"
    wallet_encryptWallet = "encryptwallet"
    wallet_abandonTransaction = "abandontransaction"
    wallet_abortScan = "abortrescan"
    wallet_addMultiSigAddress = "addmultisigaddress"
    wallet_backupWallet = "backupwallet"
    wallet_dumpPrivateKey = "dumpprivkey"
    wallet_passPhrase = "walletpassphrase"
    wallet_getAddressByLabel = "getaddressesbylabel"
    wallet_getAddressInfo = "getaddressinfo"
    wallet_getBalance = "getbalance"
    wallet_getNewAddress = "getnewaddress"
    wallet_getRawChangeAddress = "getrawchangeaddress"
    wallet_getReceivedByAddress = "getreceivedbyaddress"
    wallet_getReceivedByLabel = "getreceivedbylabel"
    wallet_getTransaction = "gettransaction"
    wallet_getWalletInfo = "getwalletinfo"
    wallet_importAddress = "importaddress"
    wallet_importMulti = "importmulti"
    wallet_importPrivateKey = "importprivkey"
    wallet_importPrunedFunds = "importprunedfunds"
    wallet_importPublicKey = "importpubkey"
    wallet_keyPoolRefill = "keypoolrefill"
    wallet_listAddressGroupings = "listaddressgroupings"
    wallet_listLabels = "listlabels"
    wallet_listLockUnSpent = "listlockunspent"
    wallet_listReceivedByAddress = "listreceivedbyaddress"
    wallet_listReceivedByLabel = "listreceivedbylabel"
    wallet_listSinceBlock = "listsinceblock"
    wallet_listTransactions = "listtransactions"
    wallet_listUnspent = "listunspent"
    wallet_listWalletDir = "listwalletdir"
    wallet_lockUnspent = "lockunspent"
    wallet_removePrunedFunds = "removeprunedfunds"
    wallet_rescanBlockChain = "rescanblockchain"
    wallet_sendMany = "sendmany"
    wallet_sendToAddress = "sendtoaddress"
    wallet_setLabel = "setlabel"
    wallet_setTxFee = "settxfee"
    wallet_signMessage = "signmessage"
    wallet_signRawTransactionWithWallet = "signrawtransactionwithwallet"
    wallet_unloadWallet = "unloadwallet"
    wallet_walletCreateFundedPsbt = "walletcreatefundedpsbt"
    wallet_walletUnlock = "walletlock"
    wallet_passPhraseChange = "walletpassphrasechange"
    wallet_processPsbt = "walletprocesspsbt"

    # raw_transaction
    raw_getRawTransaction = "getrawtransaction"
    raw_decodeRawTransaction = "decoderawtransaction"
    raw_createRawTransaction = "createrawtransaction"
    raw_fundRawTransaction = "fundrawtransaction"
    raw_combineRawTransaction = "combinerawtransaction"
    raw_sendRawTransaction = "sendrawtransaction"
    raw_signRawTransaction = "signrawtransactionwithkey"
    raw_analyzePsbt = "analyzepsbt"
    raw_combinePsbt = "combinepsbt"
    raw_convertToPsbt = "converttopsbt"
    raw_createPsbt = "createpsbt"
    raw_decodePsbt = "decodepsbt"
    raw_finalizePsbt = "finalizepsbt"
    raw_joinPsbts = "joinpsbts"
    raw_utxoUpdatePsbt = "utxoupdatepsbt"


    # mine, generate blocks
    mine_generate = "generate"
    mine_generateToAddress = "generatetoaddress"

    # utils
    util_validateAddress = "validateaddress"