diff options
author | Russell Yanofsky <russ@yanofsky.org> | 2017-08-14 23:32:38 -0400 |
---|---|---|
committer | Russell Yanofsky <russ@yanofsky.org> | 2017-08-14 23:32:38 -0400 |
commit | fd5d71ec4b931a44b524012bf550a61025b9fb3b (patch) | |
tree | a0547682a58067bd66c65f0167b540033c34ae5f | |
parent | e067673f4ea7a74b7251282b48ea9ca57416533a (diff) |
Update developer notes after params.size() cleanup
-rw-r--r-- | doc/developer-notes.md | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/doc/developer-notes.md b/doc/developer-notes.md index d783a7a8ae..e999ad3d34 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -570,16 +570,14 @@ A few guidelines for introducing and reviewing new RPC interfaces: is specified as-is in BIP22. - Missing arguments and 'null' should be treated the same: as default values. If there is no - default value, both cases should fail in the same way. + default value, both cases should fail in the same way. The easiest way to follow this + guideline is detect unspecified arguments with `params[x].isNull()` instead of + `params.size() <= x`. The former returns true if the argument is either null or missing, + while the latter returns true if is missing, and false if it is null. - *Rationale*: Avoids surprises when switching to name-based arguments. Missing name-based arguments are passed as 'null'. - - *Exception*: Many legacy exceptions to this exist, one of the worst ones is - `getbalance` which follows a completely different code path based on the - number of arguments. We are still in the process of cleaning these up. Do not introduce - new ones. - - Try not to overload methods on argument type. E.g. don't make `getblock(true)` and `getblock("hash")` do different things. |