jellyfishsdk: DeFi Blockchain RPC Implementations

This tracks all the RPC methods and categories being implemented in jellyfish-api-core. Will list all the methods here, and strike out those that are not applicable.

Feel free to update this and tag yourself if you want to work on a feature. You will need to reference DeFiCh/ain code base, https://github.com/DeFiCh/ain/tree/master/src/rpc to be exact.

This is purely for documenting all features of DeFi Blockchain. 
Everything that is required has already been completed.

src/rpc

blockchain.cpp

  • getblockchaininfo #89
  • getchaintxstats #1051
  • getblockstats #256
  • getbestblockhash #256
  • getblockcount #91
  • getblock #91
  • getblockhash #91
  • getblockheader #163
  • getchaintips #205
  • getdifficulty #285
  • getmempoolancestors
  • getmempooldescendants #1796
  • getmempoolentry
  • getmempoolinfo #364
  • clearmempool #1801
  • getrawmempool #112
  • gettxout #94
  • gettxoutsetinfo
  • pruneblockchain
  • savemempool
  • verifychain #952
  • preciousblock
  • scantxoutset
  • getblockfilter
  • invalidateblock #1904
  • reconsiderblock #1904
  • waitfornewblock #807
  • waitforblock #1805
  • waitforblockheight #807
  • syncwithvalidationinterfacequeue

mining.ccp

  • getnetworkhashps #41
  • getmintinginfo #41 deprecated
  • getmininginfo #229
  • prioritisetransaction
  • getblocktemplate - cedric
  • submitblock #1980
  • submitheader
  • generatetoaddress (regtest only)
  • estimatesmartfee #254
  • estimaterawfee deprecated

misc.cpp

  • getmemoryinfo (utils only)
  • logging (utils only)
  • validateaddress #112
  • createmultisig #1977
  • deriveaddresses #1974
  • getdescriptorinfo (utils only)
  • verifymessage #1905
  • signmessagewithprivkey #1905
  • setmocktime (testing only)
  • setmockcheckpoint (testing only)
  • echo (testing only)
  • echojson (testing only)

net.cpp

  • getconnectioncount #176
  • ping
  • getpeerinfo #938
  • addnode
  • disconnectnode
  • getaddednodeinfo
  • getnettotals - #1843
  • getnetworkinfo #180
  • setban
  • listbanned
  • clearbanned
  • setnetworkactive
  • getnodeaddresses

rawtransaction.cpp

  • getrawtransaction #385
  • createrawtransaction #127
  • decoderawtransaction #1963
  • decodescript - shana
  • sendrawtransaction #127
  • combinerawtransaction
  • signrawtransactionwithkey #127
  • testmempoolaccept #127
  • decodepsbt
  • combinepsbt
  • finalizepsbt
  • createpsbt
  • converttopsbt
  • utxoupdatepsbt
  • analyzepsbt
  • joinpsbts
  • gettxoutproof
  • verifytxoutproof

server.cpp - COMPLETED

src/spv

spv_rpc.cpp

  • spv_sendrawtx
  • spv_createanchor
  • spv_createanchortemplate
  • spv_estimateanchorcost
  • spv_rescan
  • spv_syncstatus
  • spv_gettxconfirmations
  • spv_splitutxo
  • spv_listanchors #618
  • spv_listanchorauths #618
  • spv_listanchorrewardconfirms #620
  • spv_listanchorrewards #620
  • spv_listanchorsunrewarded #620
  • spv_listanchorspending #618
  • spv_setlastheight #618
  • spv_getfeerate

src/wallet

rpcwallet.cpp

  • fundrawtransaction
  • abandontransaction
  • abortrescan
  • addmultisigaddress
  • backupwallet
  • bumpfee
  • createwallet #112
  • dumpprivkey #306
  • dumpwallet
  • encryptwallet
  • getaddressesbylabel
  • getaddressinfo #112
  • getbalance #41
  • getnewaddress #112
  • getrawchangeaddress
  • getreceivedbyaddress
  • getreceivedbylabel
  • gettransaction #342
  • getunconfirmedbalance #354
  • getbalances #362
  • getwalletinfo #112
  • importaddress
  • importmulti
  • importprivkey #306
  • importprunedfunds
  • importpubkey
  • importwallet
  • keypoolrefill
  • listaddressgroupings #112
  • listlabels
  • listlockunspent
  • listreceivedbyaddress
  • listreceivedbylabel
  • listsinceblock
  • listtransactions
  • listunspent #94
  • listwalletdir
  • listwallets #953
  • loadwallet #1931
  • lockunspent
  • removeprunedfunds
  • rescanblockchain
  • sendmany #269
  • sendtoaddress #112
  • sethdseed
  • setlabel
  • settxfee
  • setwalletflag #112
  • signmessage #1934
  • signrawtransactionwithwallet
  • unloadwallet
  • walletcreatefundedpsbt
  • walletlock
  • walletpassphrase
  • walletpassphrasechange
  • walletprocesspsbt

src/masternode

mn_rpc.cpp - COMPLETED

rpc_accounts.cpp - COMPLETED

  • listaccounts #162
  • getaccount #162
  • gettokenbalances #162
  • utxostoaccount #215
  • accounttoaccount #284
  • accounttoutxos #289
  • listaccounthistory #162
  • accounthistorycount #265
  • listcommunitybalances #368
  • sendtokenstoaddress #323
  • listburnhistory #444
  • getburninfo #540

rpc_masternodes.cpp - COMPLETED

  • createmasternode #372
  • resignmasternode #419
  • updatemasternode #1847
  • listmasternodes #372
  • getmasternode #372
  • getmasternodeblocks #861
  • listcriminalproofs deprecated
  • getanchorteams #923
  • getactivemasternodecount #648
  • listanchors #921
  • isappliedcustomtx #957

rpc_poolpair.cpp - COMPLETED

rpc_tokens.cpp - COMPLETED

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 16 (16 by maintainers)

Commits related to this issue

Most upvoted comments

Working on net.cpp

getconnectioncount getpeerinfo getnetworkinfo

Please priotize in this order:

  1. rpc_accounts.cpp
  2. rpc_tokens.cpp
  3. rpc_accounts.cpp

@jingyi2811 mentioned that it’s hard to test multi node setup (e.g. getpeerinfo) without https://github.com/DeFiCh/jellyfish/issues/40 implemented. Hence some RPC implementations are blocked by that.

Working rpc_accounts.cpp

  1. listaccounts
  2. getaccount
  3. gettokenbalances
  4. listaccounthistory

Working on rpc_poolpair.cpp (improving tests)

  1. listPoolPairs
  2. getPoolPair
  3. listPoolShares
  4. createPoolPair
  5. addPoolLiquidity

Working on rpc_tokens.cpp (improving tests)

  1. listokens
  2. gettoken
  3. createtoken
  4. updatetoken

Working on blockhain.cpp

  1. gettxxout

Working on blockchain.cpp

  1. getblock
  2. getblockhash
  3. getblockcount