mirror of
https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
synced 2025-06-08 16:36:32 +00:00
edited walletinfo section
This commit is contained in:
parent
e590faac97
commit
e5abbb8458
@ -11,9 +11,9 @@ You can check this by running:
|
|||||||
|
|
||||||
`$ python3 --version`
|
`$ python3 --version`
|
||||||
|
|
||||||
If it returns a version number (e.g., `3.7.3` or `3.8.3`) then you have python3 installed. Continue on to ["Setting Up BitcoinRPC"](17_4_Accessing_Bitcoind_with_Python.md#setting-up-bitcoinrpc).
|
If it returns a version number (e.g., `3.7.3` or `3.8.3`) then you have python3 installed.
|
||||||
|
|
||||||
However, if you somehow do not have Python installed, you'll need build it from source as follows:
|
However, if you somehow do not have Python installed, you'll need build it from source as follows. Please see ["Building Python from Source"](17_4_Accessing_Bitcoind_with_Python.md#synopsis-building-python-from-source) before continuing.
|
||||||
|
|
||||||
### Setting Up BitcoinRPC
|
### Setting Up BitcoinRPC
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ print("---------------------------------------------------------------\n")
|
|||||||
|
|
||||||
You can retrieve [the src code](src/17_4_getinfo.py) and run it with `python3`:
|
You can retrieve [the src code](src/17_4_getinfo.py) and run it with `python3`:
|
||||||
```
|
```
|
||||||
$ python3 blockinfo.py
|
$ python3 getinfo.py
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Block Count: 1831106
|
Block Count: 1831106
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
@ -156,11 +156,9 @@ First 10 transactions:
|
|||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
```
|
```
|
||||||
|
|
||||||
---ETH---
|
## Looking Up Funds
|
||||||
|
|
||||||
### Get Wallet Info
|
You can similarly retrieve your wallet's information with the `getwalletinfo` RP:
|
||||||
|
|
||||||
Let's get details of our wallet:
|
|
||||||
|
|
||||||
```py
|
```py
|
||||||
wallet_info = rpc_client.getwalletinfo()
|
wallet_info = rpc_client.getwalletinfo()
|
||||||
@ -192,31 +190,23 @@ Wallet Info:
|
|||||||
'walletname': '',
|
'walletname': '',
|
||||||
'walletversion': 169900}
|
'walletversion': 169900}
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Other informational commands such as `getblockchaininfo`, `getnetworkinfo`, `getpeerinfo`, and `getblockchaininfo` will work similarly.
|
||||||
|
|
||||||
Try out other commands like `getblockchaininfo`, `getnetworkinfo`, `getpeerinfo`, `getblockchaininfo`, etc.
|
Other commands can give you specific information on select elements within your wallet.
|
||||||
|
|
||||||
|
### Retrieving an Array
|
||||||
|
|
||||||
```
|
The `listtransactions` RPC allows you to look at the most recent 10 transactions on your system (or some arbitrary set of transactions using the `count` and `skip` arguments). It shows how an RPC command can return an easy-to-manipulate array:
|
||||||
|
|
||||||
## Exploring an Address
|
|
||||||
|
|
||||||
How about getting a list of all the transactions of your address? Type the following and see the transaction history of your address:
|
|
||||||
|
|
||||||
```py
|
```py
|
||||||
track_address = "<your address>"
|
|
||||||
tx_list = rpc_client.listtransactions()
|
tx_list = rpc_client.listtransactions()
|
||||||
address_tx_list = []
|
pprint(tx_list)
|
||||||
for tx in tx_list:
|
|
||||||
if tx['address'] == track_address:
|
|
||||||
address_tx_list.append(tx)
|
|
||||||
pprint(address_tx_list)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Exploring a UTXO
|
### Exploring a UTXO
|
||||||
|
|
||||||
To get details of a UTXO, we first need to get its `hex` id, which we can then decode using `decoderawtransaction`.
|
You can similarly use `listunspent` to get an array of UTXOs on your system:
|
||||||
|
|
||||||
```py
|
```py
|
||||||
print("Exploring UTXOs")
|
print("Exploring UTXOs")
|
||||||
@ -226,12 +216,21 @@ print("Utxos: ")
|
|||||||
print("-----")
|
print("-----")
|
||||||
pprint(utxos)
|
pprint(utxos)
|
||||||
print("------------------------------------------\n")
|
print("------------------------------------------\n")
|
||||||
|
```
|
||||||
|
|
||||||
|
In order to manipulate an array like the one returned from `listtransactions` or `listunpsent`, you just grab the appropriate item from the appropriate element of the array:
|
||||||
|
```
|
||||||
## Select a UTXO - first one selected here
|
## Select a UTXO - first one selected here
|
||||||
utxo_txid = utxos[0]['txid']
|
utxo_txid = utxos[0]['txid']
|
||||||
## Get UTXO Hex
|
```
|
||||||
|
|
||||||
|
For `listunspent`, you get a `txid`. You can retrieve information about it with `gettransaction`, then decode that with `decoderawtransaction`:
|
||||||
|
|
||||||
|
```
|
||||||
utxo_hex = rpc_client.gettransaction(utxo_txid)['hex']
|
utxo_hex = rpc_client.gettransaction(utxo_txid)['hex']
|
||||||
## Get tx Details
|
|
||||||
utxo_tx_details = rpc_client.decoderawtransaction(utxo_hex)
|
utxo_tx_details = rpc_client.decoderawtransaction(utxo_hex)
|
||||||
|
|
||||||
print("Details of Utxo with txid:", utxo_txid)
|
print("Details of Utxo with txid:", utxo_txid)
|
||||||
print("---------------------------------------------------------------")
|
print("---------------------------------------------------------------")
|
||||||
print("UTXO Details:")
|
print("UTXO Details:")
|
||||||
@ -240,6 +239,101 @@ pprint(utxo_tx_details)
|
|||||||
print("---------------------------------------------------------------\n")
|
print("---------------------------------------------------------------\n")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This code is available at [walletinfo.py](src/17_4_walletinfo.py).
|
||||||
|
|
||||||
|
```
|
||||||
|
$ python3 walletinfo.py
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Wallet Info:
|
||||||
|
-----------
|
||||||
|
{'avoid_reuse': False,
|
||||||
|
'balance': Decimal('0.01031734'),
|
||||||
|
'hdseedid': 'da5a1b058deb9e51ecffef1b0ddc069a5dfb2c5f',
|
||||||
|
'immature_balance': Decimal('0E-8'),
|
||||||
|
'keypoololdest': 1596567843,
|
||||||
|
'keypoolsize': 1000,
|
||||||
|
'keypoolsize_hd_internal': 999,
|
||||||
|
'paytxfee': Decimal('0E-8'),
|
||||||
|
'private_keys_enabled': True,
|
||||||
|
'scanning': False,
|
||||||
|
'txcount': 6,
|
||||||
|
'unconfirmed_balance': Decimal('0E-8'),
|
||||||
|
'walletname': '',
|
||||||
|
'walletversion': 169900}
|
||||||
|
---------------------------------------------------------------
|
||||||
|
|
||||||
|
Utxos:
|
||||||
|
-----
|
||||||
|
[{'address': 'mv9cjEnS2o1EygBMdrz99LzhM8KeEMoXDg',
|
||||||
|
'amount': Decimal('0.00001000'),
|
||||||
|
'confirmations': 1180,
|
||||||
|
'desc': "pkh([ce0c7e14/0'/0'/25']02d0541b9211aecd25913f7fdecfc1b469215fa326d52067b1b3f7efbd12316472)#n06pq9q5",
|
||||||
|
'label': '-addresstype',
|
||||||
|
'safe': True,
|
||||||
|
'scriptPubKey': '76a914a080d1a10f5e7a02d0a291f118982ed19e8cfcd788ac',
|
||||||
|
'solvable': True,
|
||||||
|
'spendable': True,
|
||||||
|
'txid': '84207ffec658ae29ad1fdd330d8a13613303c3cf281ce628fadeb7636ffb535e',
|
||||||
|
'vout': 0},
|
||||||
|
{'address': 'tb1qrcf8c29966tvqxhwrtd2se3rj6jeqtll3r46a4',
|
||||||
|
'amount': Decimal('0.01029734'),
|
||||||
|
'confirmations': 1180,
|
||||||
|
'desc': "wpkh([ce0c7e14/0'/1'/26']02c581259ba7e6aef6d7ea23adb08f7c7f10c4c678f2e097a4074639e7685d4805)#j3pctfhf",
|
||||||
|
'safe': True,
|
||||||
|
'scriptPubKey': '00141e127c28a5d696c01aee1adaa8662396a5902fff',
|
||||||
|
'solvable': True,
|
||||||
|
'spendable': True,
|
||||||
|
'txid': '84207ffec658ae29ad1fdd330d8a13613303c3cf281ce628fadeb7636ffb535e',
|
||||||
|
'vout': 1},
|
||||||
|
{'address': 'mzDxbtYY3LBBBJ6HhaBAtnHv6c51BRBTLE',
|
||||||
|
'amount': Decimal('0.00001000'),
|
||||||
|
'confirmations': 1181,
|
||||||
|
'desc': "pkh([ce0c7e14/0'/0'/23']0377bdd176f985b4af2f6bdbb22c2925b6007b6c07ba171f75e65990c002615e98)#3y6ef6vu",
|
||||||
|
'label': '-addresstype',
|
||||||
|
'safe': True,
|
||||||
|
'scriptPubKey': '76a914cd339342b06042bb986a45e73d56db46acc1e01488ac',
|
||||||
|
'solvable': True,
|
||||||
|
'spendable': True,
|
||||||
|
'txid': '1679bee019c61608340b79810377be2798efd4d2ec3ace0f00a1967af70666b9',
|
||||||
|
'vout': 1}]
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
Details of Utxo with txid: 84207ffec658ae29ad1fdd330d8a13613303c3cf281ce628fadeb7636ffb535e
|
||||||
|
---------------------------------------------------------------
|
||||||
|
UTXO Details:
|
||||||
|
------------
|
||||||
|
{'hash': '0c6c27f58f122329bbc53a91f290b35ce23bd2708706b21a04cdc387dc8e2fd9',
|
||||||
|
'locktime': 1831103,
|
||||||
|
'size': 225,
|
||||||
|
'txid': '84207ffec658ae29ad1fdd330d8a13613303c3cf281ce628fadeb7636ffb535e',
|
||||||
|
'version': 2,
|
||||||
|
'vin': [{'scriptSig': {'asm': '', 'hex': ''},
|
||||||
|
'sequence': 4294967294,
|
||||||
|
'txid': '1679bee019c61608340b79810377be2798efd4d2ec3ace0f00a1967af70666b9',
|
||||||
|
'txinwitness': ['3044022014b3e2359fb46d8cbc4cd30fa991b455edfa4b419a4c64a53fcdfc79e3ca89db022010cefc3268bc252d55f1982c426328b709b47d02332def9e2efb3b12de2cf0d301',
|
||||||
|
'0351b470e87b44e8e9607acf09b8d4543c51c93c17dc741176319e60202091f2be'],
|
||||||
|
'vout': 0}],
|
||||||
|
'vout': [{'n': 0,
|
||||||
|
'scriptPubKey': {'addresses': ['mv9cjEnS2o1EygBMdrz99LzhM8KeEMoXDg'],
|
||||||
|
'asm': 'OP_DUP OP_HASH160 '
|
||||||
|
'a080d1a10f5e7a02d0a291f118982ed19e8cfcd7 '
|
||||||
|
'OP_EQUALVERIFY OP_CHECKSIG',
|
||||||
|
'hex': '76a914a080d1a10f5e7a02d0a291f118982ed19e8cfcd788ac',
|
||||||
|
'reqSigs': 1,
|
||||||
|
'type': 'pubkeyhash'},
|
||||||
|
'value': Decimal('0.00001000')},
|
||||||
|
{'n': 1,
|
||||||
|
'scriptPubKey': {'addresses': ['tb1qrcf8c29966tvqxhwrtd2se3rj6jeqtll3r46a4'],
|
||||||
|
'asm': '0 1e127c28a5d696c01aee1adaa8662396a5902fff',
|
||||||
|
'hex': '00141e127c28a5d696c01aee1adaa8662396a5902fff',
|
||||||
|
'reqSigs': 1,
|
||||||
|
'type': 'witness_v0_keyhash'},
|
||||||
|
'value': Decimal('0.01029734')}],
|
||||||
|
'vsize': 144,
|
||||||
|
'weight': 573}
|
||||||
|
---------------------------------------------------------------
|
||||||
|
```
|
||||||
|
|
||||||
## Sending Transactions
|
## Sending Transactions
|
||||||
|
|
||||||
Now that we have established comfort between our python and bitcoind interface, lets create and broadcast a transaction. For the purposes of this course, we will send test bitcoins to an address generated by us in our testnet wallet. Here's how we will do it:
|
Now that we have established comfort between our python and bitcoind interface, lets create and broadcast a transaction. For the purposes of this course, we will send test bitcoins to an address generated by us in our testnet wallet. Here's how we will do it:
|
||||||
@ -398,7 +492,7 @@ All the source code for this chapter is available in the [src](./src/18_4_access
|
|||||||
|
|
||||||
## Synopsis: Building Python from Source
|
## Synopsis: Building Python from Source
|
||||||
|
|
||||||
Skip to ["Setting Up BitcoinRPC"](17_4_Accessing_Bitcoind_with_Python.md#setting-up-bitcoinrpc) if you already have Python 3 running. Otherwise:
|
If you need to install Python 3 from source, follow these instructions, then continue with ["Creating a BitcoinRPC Project"](17_4_Accessing_Bitcoind_with_Python.md#creating-a-bitcoinrpc-project).
|
||||||
|
|
||||||
### 1. Install Dependencies
|
### 1. Install Dependencies
|
||||||
```sh
|
```sh
|
||||||
|
Loading…
x
Reference in New Issue
Block a user