(self, method, params)
| 170 | |
| 171 | # Helper routine that actually performs an JSON RPC call. |
| 172 | def callRPC (self, method, params): |
| 173 | data = {"method": method, "params": params, "id": self.queryid} |
| 174 | if self.nmctype == "namecoind": |
| 175 | resp = self.queryHTTP (json.dumps (data)) |
| 176 | elif self.nmctype == "nmcontrol": |
| 177 | resp = self.queryServer (json.dumps (data)) |
| 178 | else: |
| 179 | assert False |
| 180 | val = json.loads (resp) |
| 181 | |
| 182 | if val["id"] != self.queryid: |
| 183 | raise Exception ("ID mismatch in JSON RPC answer.") |
| 184 | |
| 185 | if self.nmctype == "namecoind": |
| 186 | self.queryid = self.queryid + 1 |
| 187 | |
| 188 | error = val["error"] |
| 189 | if error is None: |
| 190 | return val["result"] |
| 191 | |
| 192 | if isinstance(error, bool): |
| 193 | raise RPCError (val["result"]) |
| 194 | raise RPCError (error) |
| 195 | |
| 196 | # Query the server via HTTP. |
| 197 | def queryHTTP (self, data): |
no test coverage detected