0

When I run the script

from bitcoin.core import COIN, b2lx
import bitcoin.wallet
import bitcoin.rpc

rpc = bitcoin.rpc.Proxy()
addr = bitcoin.wallet.CBitcoinAddress('mfrMeTKojpEXFXpcQiRr7zA3Bff4UBgZTx')

txid = rpc.sendtoaddress(addr, 0.001 * COIN)
print(b2lx(txid))

I get the following ERROR

CannotSendRequest                         Traceback (most recent call last)
<ipython-input-23-904d1d3102d7> in <module>()
----> 1 txid = rpc.sendtoaddress(addr, 0.001 * COIN)

/home/remote_user/unix_practice/python-bitcoinlib/bitcoin/rpc.py in sendtoaddress(self, addr, amount)
    557         addr = str(addr)
    558         amount = float(amount)/COIN
--> 559         r = self._call('sendtoaddress', addr, amount)
    560         return lx(r)
    561 

/home/remote_user/unix_practice/python-bitcoinlib/bitcoin/rpc.py in _call(self, service_name, *args)
    150                              'User-Agent': DEFAULT_USER_AGENT,
    151                              'Authorization': self.__auth_header,
--> 152                              'Content-type': 'application/json'})
    153 
    154         response = self._get_response()

/usr/lib64/python2.7/httplib.pyc in request(self, method, url, body, headers)
    971     def request(self, method, url, body=None, headers={}):
    972         """Send a complete request to the server."""
--> 973         self._send_request(method, url, body, headers)
    974 
    975     def _set_content_length(self, body):

/usr/lib64/python2.7/httplib.pyc in _send_request(self, method, url, body, headers)
    999             skips['skip_accept_encoding'] = 1
   1000 
-> 1001         self.putrequest(method, url, **skips)
   1002 
   1003         if body is not None and 'content-length' not in header_names:

/usr/lib64/python2.7/httplib.pyc in putrequest(self, method, url, skip_host, skip_accept_encoding)
    869             self.__state = _CS_REQ_STARTED
    870         else:
--> 871             raise CannotSendRequest()
    872 
    873         # Save the method we use, we need it later in the response phase

CannotSendRequest:

Any idea how to resolve this? I used the code from

Sample Post

  • 1
    If you find an answer especially helpful in solving your problem, you should click the checkmark button next to it to indicate so. Please don't post answers to thank other users, accepting the answer is sufficient. – Murch Aug 9 '16 at 22:44
1

The issue was that addr is being provided an invalid address - a Main Net address does not work on Test Net, and vice versa. (From the edit revisions history, the code sample you provided was using bitcoin.wallet.CBitcoinAddress('1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T') which would provide a Main Net address)

Replace the address being supplied in the addr variable with a legitimate Test Net address, and it should work.

  • The code works. Thanks to @Thoamas Ward for pointing out the mistake – user2065276 Aug 9 '16 at 14:34
  • @ThomasWard Can you explain what does this command do? I am not able to find documentation that explains it well addr = bitcoin.wallet.CBitcoinAddress('mfrMeTKojpEXFXpcQiRr7zA3Bff4UBgZTx') – user2065276 Aug 9 '16 at 15:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.