bitcoin_remote/
convert_param.rs

1crate::ix!();
2
3//-------------------------------------------[.cpp/bitcoin/src/rpc/client.h]
4//-------------------------------------------[.cpp/bitcoin/src/rpc/client.cpp]
5
6pub struct RPCConvertParam {
7
8    /**
9      | method whose params want conversion
10      |
11      */
12    method_name: &'static str,
13
14    /**
15      | 0-based idx of param to convert
16      |
17      */
18    param_idx:   i32,
19
20    /**
21      | parameter name
22      |
23      */
24    param_name:  &'static str,
25}
26
27/**
28  | Specify a (method, idx, name) here if
29  | the argument is a non-string RPC argument
30  | and needs to be converted from JSON.
31  | 
32  | -----------
33  | @note
34  | 
35  | Parameter indexes start from 0.
36  |
37  */
38pub const vRPCConvertParams: &[RPCConvertParam] = &[
39    RPCConvertParam { method_name: "setmocktime"                  , param_idx:   0  , param_name:  "timestamp"             , } , 
40    RPCConvertParam { method_name: "mockscheduler"                , param_idx:   0  , param_name:  "delta_time"            , } , 
41    RPCConvertParam { method_name: "utxoupdatepsbt"               , param_idx:   1  , param_name:  "descriptors"           , } , 
42    RPCConvertParam { method_name: "generatetoaddress"            , param_idx:   0  , param_name:  "nblocks"               , } , 
43    RPCConvertParam { method_name: "generatetoaddress"            , param_idx:   2  , param_name:  "maxtries"              , } , 
44    RPCConvertParam { method_name: "generatetodescriptor"         , param_idx:   0  , param_name:  "num_blocks"            , } , 
45    RPCConvertParam { method_name: "generatetodescriptor"         , param_idx:   2  , param_name:  "maxtries"              , } , 
46    RPCConvertParam { method_name: "generateblock"                , param_idx:   1  , param_name:  "transactions"          , } , 
47    RPCConvertParam { method_name: "getnetworkhashps"             , param_idx:   0  , param_name:  "nblocks"               , } , 
48    RPCConvertParam { method_name: "getnetworkhashps"             , param_idx:   1  , param_name:  "height"                , } , 
49    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   1  , param_name:  "amount"                , } , 
50    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   4  , param_name:  "subtractfeefromamount" , } , 
51    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   5  , param_name:  "replaceable"           , } , 
52    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   6  , param_name:  "conf_target"           , } , 
53    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   8  , param_name:  "avoid_reuse"           , } , 
54    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   9  , param_name:  "fee_rate"              , } , 
55    RPCConvertParam { method_name: "sendtoaddress"                , param_idx:   10 , param_name:  "verbose"               , } , 
56    RPCConvertParam { method_name: "settxfee"                     , param_idx:   0  , param_name:  "amount"                , } , 
57    RPCConvertParam { method_name: "sethdseed"                    , param_idx:   0  , param_name:  "newkeypool"            , } , 
58    RPCConvertParam { method_name: "getreceivedbyaddress"         , param_idx:   1  , param_name:  "minconf"               , } , 
59    RPCConvertParam { method_name: "getreceivedbylabel"           , param_idx:   1  , param_name:  "minconf"               , } , 
60    RPCConvertParam { method_name: "listreceivedbyaddress"        , param_idx:   0  , param_name:  "minconf"               , } , 
61    RPCConvertParam { method_name: "listreceivedbyaddress"        , param_idx:   1  , param_name:  "include_empty"         , } , 
62    RPCConvertParam { method_name: "listreceivedbyaddress"        , param_idx:   2  , param_name:  "include_watchonly"     , } , 
63    RPCConvertParam { method_name: "listreceivedbylabel"          , param_idx:   0  , param_name:  "minconf"               , } , 
64    RPCConvertParam { method_name: "listreceivedbylabel"          , param_idx:   1  , param_name:  "include_empty"         , } , 
65    RPCConvertParam { method_name: "listreceivedbylabel"          , param_idx:   2  , param_name:  "include_watchonly"     , } , 
66    RPCConvertParam { method_name: "getbalance"                   , param_idx:   1  , param_name:  "minconf"               , } , 
67    RPCConvertParam { method_name: "getbalance"                   , param_idx:   2  , param_name:  "include_watchonly"     , } , 
68    RPCConvertParam { method_name: "getbalance"                   , param_idx:   3  , param_name:  "avoid_reuse"           , } , 
69    RPCConvertParam { method_name: "getblockhash"                 , param_idx:   0  , param_name:  "height"                , } , 
70    RPCConvertParam { method_name: "waitforblockheight"           , param_idx:   0  , param_name:  "height"                , } , 
71    RPCConvertParam { method_name: "waitforblockheight"           , param_idx:   1  , param_name:  "timeout"               , } , 
72    RPCConvertParam { method_name: "waitforblock"                 , param_idx:   1  , param_name:  "timeout"               , } , 
73    RPCConvertParam { method_name: "waitfornewblock"              , param_idx:   0  , param_name:  "timeout"               , } , 
74    RPCConvertParam { method_name: "listtransactions"             , param_idx:   1  , param_name:  "count"                 , } , 
75    RPCConvertParam { method_name: "listtransactions"             , param_idx:   2  , param_name:  "skip"                  , } , 
76    RPCConvertParam { method_name: "listtransactions"             , param_idx:   3  , param_name:  "include_watchonly"     , } , 
77    RPCConvertParam { method_name: "walletpassphrase"             , param_idx:   1  , param_name:  "timeout"               , } , 
78    RPCConvertParam { method_name: "getblocktemplate"             , param_idx:   0  , param_name:  "template_request"      , } , 
79    RPCConvertParam { method_name: "listsinceblock"               , param_idx:   1  , param_name:  "target_confirmations"  , } , 
80    RPCConvertParam { method_name: "listsinceblock"               , param_idx:   2  , param_name:  "include_watchonly"     , } , 
81    RPCConvertParam { method_name: "listsinceblock"               , param_idx:   3  , param_name:  "include_removed"       , } , 
82    RPCConvertParam { method_name: "sendmany"                     , param_idx:   1  , param_name:  "amounts"               , } , 
83    RPCConvertParam { method_name: "sendmany"                     , param_idx:   2  , param_name:  "minconf"               , } , 
84    RPCConvertParam { method_name: "sendmany"                     , param_idx:   4  , param_name:  "subtractfeefrom"       , } , 
85    RPCConvertParam { method_name: "sendmany"                     , param_idx:   5  , param_name:  "replaceable"           , } , 
86    RPCConvertParam { method_name: "sendmany"                     , param_idx:   6  , param_name:  "conf_target"           , } , 
87    RPCConvertParam { method_name: "sendmany"                     , param_idx:   8  , param_name:  "fee_rate"              , } , 
88    RPCConvertParam { method_name: "sendmany"                     , param_idx:   9  , param_name:  "verbose"               , } , 
89    RPCConvertParam { method_name: "deriveaddresses"              , param_idx:   1  , param_name:  "range"                 , } , 
90    RPCConvertParam { method_name: "scantxoutset"                 , param_idx:   1  , param_name:  "scanobjects"           , } , 
91    RPCConvertParam { method_name: "addmultisigaddress"           , param_idx:   0  , param_name:  "nrequired"             , } , 
92    RPCConvertParam { method_name: "addmultisigaddress"           , param_idx:   1  , param_name:  "keys"                  , } , 
93    RPCConvertParam { method_name: "createmultisig"               , param_idx:   0  , param_name:  "nrequired"             , } , 
94    RPCConvertParam { method_name: "createmultisig"               , param_idx:   1  , param_name:  "keys"                  , } , 
95    RPCConvertParam { method_name: "listunspent"                  , param_idx:   0  , param_name:  "minconf"               , } , 
96    RPCConvertParam { method_name: "listunspent"                  , param_idx:   1  , param_name:  "maxconf"               , } , 
97    RPCConvertParam { method_name: "listunspent"                  , param_idx:   2  , param_name:  "addresses"             , } , 
98    RPCConvertParam { method_name: "listunspent"                  , param_idx:   3  , param_name:  "include_unsafe"        , } , 
99    RPCConvertParam { method_name: "listunspent"                  , param_idx:   4  , param_name:  "query_options"         , } , 
100    RPCConvertParam { method_name: "getblock"                     , param_idx:   1  , param_name:  "verbosity"             , } , 
101    RPCConvertParam { method_name: "getblock"                     , param_idx:   1  , param_name:  "verbose"               , } , 
102    RPCConvertParam { method_name: "getblockheader"               , param_idx:   1  , param_name:  "verbose"               , } , 
103    RPCConvertParam { method_name: "getchaintxstats"              , param_idx:   0  , param_name:  "nblocks"               , } , 
104    RPCConvertParam { method_name: "gettransaction"               , param_idx:   1  , param_name:  "include_watchonly"     , } , 
105    RPCConvertParam { method_name: "gettransaction"               , param_idx:   2  , param_name:  "verbose"               , } , 
106    RPCConvertParam { method_name: "getrawtransaction"            , param_idx:   1  , param_name:  "verbose"               , } , 
107    RPCConvertParam { method_name: "createrawtransaction"         , param_idx:   0  , param_name:  "inputs"                , } , 
108    RPCConvertParam { method_name: "createrawtransaction"         , param_idx:   1  , param_name:  "outputs"               , } , 
109    RPCConvertParam { method_name: "createrawtransaction"         , param_idx:   2  , param_name:  "locktime"              , } , 
110    RPCConvertParam { method_name: "createrawtransaction"         , param_idx:   3  , param_name:  "replaceable"           , } , 
111    RPCConvertParam { method_name: "decoderawtransaction"         , param_idx:   1  , param_name:  "iswitness"             , } , 
112    RPCConvertParam { method_name: "signrawtransactionwithkey"    , param_idx:   1  , param_name:  "privkeys"              , } , 
113    RPCConvertParam { method_name: "signrawtransactionwithkey"    , param_idx:   2  , param_name:  "prevtxs"               , } , 
114    RPCConvertParam { method_name: "signrawtransactionwithwallet" , param_idx:   1  , param_name:  "prevtxs"               , } , 
115    RPCConvertParam { method_name: "sendrawtransaction"           , param_idx:   1  , param_name:  "maxfeerate"            , } , 
116    RPCConvertParam { method_name: "testmempoolaccept"            , param_idx:   0  , param_name:  "rawtxs"                , } , 
117    RPCConvertParam { method_name: "testmempoolaccept"            , param_idx:   1  , param_name:  "maxfeerate"            , } , 
118    RPCConvertParam { method_name: "combinerawtransaction"        , param_idx:   0  , param_name:  "txs"                   , } , 
119    RPCConvertParam { method_name: "fundrawtransaction"           , param_idx:   1  , param_name:  "options"               , } , 
120    RPCConvertParam { method_name: "fundrawtransaction"           , param_idx:   2  , param_name:  "iswitness"             , } , 
121    RPCConvertParam { method_name: "walletcreatefundedpsbt"       , param_idx:   0  , param_name:  "inputs"                , } , 
122    RPCConvertParam { method_name: "walletcreatefundedpsbt"       , param_idx:   1  , param_name:  "outputs"               , } , 
123    RPCConvertParam { method_name: "walletcreatefundedpsbt"       , param_idx:   2  , param_name:  "locktime"              , } , 
124    RPCConvertParam { method_name: "walletcreatefundedpsbt"       , param_idx:   3  , param_name:  "options"               , } , 
125    RPCConvertParam { method_name: "walletcreatefundedpsbt"       , param_idx:   4  , param_name:  "bip32derivs"           , } , 
126    RPCConvertParam { method_name: "walletprocesspsbt"            , param_idx:   1  , param_name:  "sign"                  , } , 
127    RPCConvertParam { method_name: "walletprocesspsbt"            , param_idx:   3  , param_name:  "bip32derivs"           , } , 
128    RPCConvertParam { method_name: "createpsbt"                   , param_idx:   0  , param_name:  "inputs"                , } , 
129    RPCConvertParam { method_name: "createpsbt"                   , param_idx:   1  , param_name:  "outputs"               , } , 
130    RPCConvertParam { method_name: "createpsbt"                   , param_idx:   2  , param_name:  "locktime"              , } , 
131    RPCConvertParam { method_name: "createpsbt"                   , param_idx:   3  , param_name:  "replaceable"           , } , 
132    RPCConvertParam { method_name: "combinepsbt"                  , param_idx:   0  , param_name:  "txs"                   , } , 
133    RPCConvertParam { method_name: "joinpsbts"                    , param_idx:   0  , param_name:  "txs"                   , } , 
134    RPCConvertParam { method_name: "finalizepsbt"                 , param_idx:   1  , param_name:  "extract"               , } , 
135    RPCConvertParam { method_name: "converttopsbt"                , param_idx:   1  , param_name:  "permitsigdata"         , } , 
136    RPCConvertParam { method_name: "converttopsbt"                , param_idx:   2  , param_name:  "iswitness"             , } , 
137    RPCConvertParam { method_name: "gettxout"                     , param_idx:   1  , param_name:  "n"                     , } , 
138    RPCConvertParam { method_name: "gettxout"                     , param_idx:   2  , param_name:  "include_mempool"       , } , 
139    RPCConvertParam { method_name: "gettxoutproof"                , param_idx:   0  , param_name:  "txids"                 , } , 
140    RPCConvertParam { method_name: "gettxoutsetinfo"              , param_idx:   1  , param_name:  "hash_or_height"        , } , 
141    RPCConvertParam { method_name: "gettxoutsetinfo"              , param_idx:   2  , param_name:  "use_index"             , } , 
142    RPCConvertParam { method_name: "lockunspent"                  , param_idx:   0  , param_name:  "unlock"                , } , 
143    RPCConvertParam { method_name: "lockunspent"                  , param_idx:   1  , param_name:  "transactions"          , } , 
144    RPCConvertParam { method_name: "lockunspent"                  , param_idx:   2  , param_name:  "persistent"            , } , 
145    RPCConvertParam { method_name: "send"                         , param_idx:   0  , param_name:  "outputs"               , } , 
146    RPCConvertParam { method_name: "send"                         , param_idx:   1  , param_name:  "conf_target"           , } , 
147    RPCConvertParam { method_name: "send"                         , param_idx:   3  , param_name:  "fee_rate"              , } , 
148    RPCConvertParam { method_name: "send"                         , param_idx:   4  , param_name:  "options"               , } , 
149    RPCConvertParam { method_name: "importprivkey"                , param_idx:   2  , param_name:  "rescan"                , } , 
150    RPCConvertParam { method_name: "importaddress"                , param_idx:   2  , param_name:  "rescan"                , } , 
151    RPCConvertParam { method_name: "importaddress"                , param_idx:   3  , param_name:  "p2sh"                  , } , 
152    RPCConvertParam { method_name: "importpubkey"                 , param_idx:   2  , param_name:  "rescan"                , } , 
153    RPCConvertParam { method_name: "importmulti"                  , param_idx:   0  , param_name:  "requests"              , } , 
154    RPCConvertParam { method_name: "importmulti"                  , param_idx:   1  , param_name:  "options"               , } , 
155    RPCConvertParam { method_name: "importdescriptors"            , param_idx:   0  , param_name:  "requests"              , } , 
156    RPCConvertParam { method_name: "listdescriptors"              , param_idx:   0  , param_name:  "private"               , } , 
157    RPCConvertParam { method_name: "verifychain"                  , param_idx:   0  , param_name:  "checklevel"            , } , 
158    RPCConvertParam { method_name: "verifychain"                  , param_idx:   1  , param_name:  "nblocks"               , } , 
159    RPCConvertParam { method_name: "getblockstats"                , param_idx:   0  , param_name:  "hash_or_height"        , } , 
160    RPCConvertParam { method_name: "getblockstats"                , param_idx:   1  , param_name:  "stats"                 , } , 
161    RPCConvertParam { method_name: "pruneblockchain"              , param_idx:   0  , param_name:  "height"                , } , 
162    RPCConvertParam { method_name: "keypoolrefill"                , param_idx:   0  , param_name:  "newsize"               , } , 
163    RPCConvertParam { method_name: "getrawmempool"                , param_idx:   0  , param_name:  "verbose"               , } , 
164    RPCConvertParam { method_name: "getrawmempool"                , param_idx:   1  , param_name:  "mempool_sequence"      , } , 
165    RPCConvertParam { method_name: "estimatesmartfee"             , param_idx:   0  , param_name:  "conf_target"           , } , 
166    RPCConvertParam { method_name: "estimaterawfee"               , param_idx:   0  , param_name:  "conf_target"           , } , 
167    RPCConvertParam { method_name: "estimaterawfee"               , param_idx:   1  , param_name:  "threshold"             , } , 
168    RPCConvertParam { method_name: "prioritisetransaction"        , param_idx:   1  , param_name:  "dummy"                 , } , 
169    RPCConvertParam { method_name: "prioritisetransaction"        , param_idx:   2  , param_name:  "fee_delta"             , } , 
170    RPCConvertParam { method_name: "setban"                       , param_idx:   2  , param_name:  "bantime"               , } , 
171    RPCConvertParam { method_name: "setban"                       , param_idx:   3  , param_name:  "absolute"              , } , 
172    RPCConvertParam { method_name: "setnetworkactive"             , param_idx:   0  , param_name:  "state"                 , } , 
173    RPCConvertParam { method_name: "setwalletflag"                , param_idx:   1  , param_name:  "value"                 , } , 
174    RPCConvertParam { method_name: "getmempoolancestors"          , param_idx:   1  , param_name:  "verbose"               , } , 
175    RPCConvertParam { method_name: "getmempooldescendants"        , param_idx:   1  , param_name:  "verbose"               , } , 
176    RPCConvertParam { method_name: "bumpfee"                      , param_idx:   1  , param_name:  "options"               , } , 
177    RPCConvertParam { method_name: "psbtbumpfee"                  , param_idx:   1  , param_name:  "options"               , } , 
178    RPCConvertParam { method_name: "logging"                      , param_idx:   0  , param_name:  "include"               , } , 
179    RPCConvertParam { method_name: "logging"                      , param_idx:   1  , param_name:  "exclude"               , } , 
180    RPCConvertParam { method_name: "disconnectnode"               , param_idx:   1  , param_name:  "nodeid"                , } , 
181    RPCConvertParam { method_name: "upgradewallet"                , param_idx:   0  , param_name:  "version"               , } , 
182
183    // Echo with conversion (For testing only)
184    RPCConvertParam { method_name: "echojson"                     , param_idx:   0  , param_name:  "arg0"                  , } , 
185    RPCConvertParam { method_name: "echojson"                     , param_idx:   1  , param_name:  "arg1"                  , } , 
186    RPCConvertParam { method_name: "echojson"                     , param_idx:   2  , param_name:  "arg2"                  , } , 
187    RPCConvertParam { method_name: "echojson"                     , param_idx:   3  , param_name:  "arg3"                  , } , 
188    RPCConvertParam { method_name: "echojson"                     , param_idx:   4  , param_name:  "arg4"                  , } , 
189    RPCConvertParam { method_name: "echojson"                     , param_idx:   5  , param_name:  "arg5"                  , } , 
190    RPCConvertParam { method_name: "echojson"                     , param_idx:   6  , param_name:  "arg6"                  , } , 
191    RPCConvertParam { method_name: "echojson"                     , param_idx:   7  , param_name:  "arg7"                  , } , 
192    RPCConvertParam { method_name: "echojson"                     , param_idx:   8  , param_name:  "arg8"                  , } , 
193    RPCConvertParam { method_name: "echojson"                     , param_idx:   9  , param_name:  "arg9"                  , } , 
194    RPCConvertParam { method_name: "rescanblockchain"             , param_idx:   0  , param_name:  "start_height"          , } , 
195    RPCConvertParam { method_name: "rescanblockchain"             , param_idx:   1  , param_name:  "stop_height"           , } , 
196    RPCConvertParam { method_name: "createwallet"                 , param_idx:   1  , param_name:  "disable_private_keys"  , } , 
197    RPCConvertParam { method_name: "createwallet"                 , param_idx:   2  , param_name:  "blank"                 , } , 
198    RPCConvertParam { method_name: "createwallet"                 , param_idx:   4  , param_name:  "avoid_reuse"           , } , 
199    RPCConvertParam { method_name: "createwallet"                 , param_idx:   5  , param_name:  "descriptors"           , } , 
200    RPCConvertParam { method_name: "createwallet"                 , param_idx:   6  , param_name:  "load_on_startup"       , } , 
201    RPCConvertParam { method_name: "createwallet"                 , param_idx:   7  , param_name:  "external_signer"       , } , 
202    RPCConvertParam { method_name: "restorewallet"                , param_idx:   2  , param_name:  "load_on_startup"       , } , 
203    RPCConvertParam { method_name: "loadwallet"                   , param_idx:   1  , param_name:  "load_on_startup"       , } , 
204    RPCConvertParam { method_name: "unloadwallet"                 , param_idx:   1  , param_name:  "load_on_startup"       , } , 
205    RPCConvertParam { method_name: "getnodeaddresses"             , param_idx:   0  , param_name:  "count"                 , } , 
206    RPCConvertParam { method_name: "addpeeraddress"               , param_idx:   1  , param_name:  "port"                  , } , 
207    RPCConvertParam { method_name: "addpeeraddress"               , param_idx:   2  , param_name:  "tried"                 , } , 
208    RPCConvertParam { method_name: "stop"                         , param_idx:   0  , param_name:  "wait"                  , }
209];
210