Developer Interface¶
Keys¶
- bitcash.Key¶
alias of
PrivateKey
- class bitcash.PrivateKey(wif=None, network='main')¶
This class represents a BitcoinCash private key.
Key
is an alias.- Parameters:
wif (
str
) – A private key serialized to the Wallet Import Format. If the argument is not supplied, a new private key will be created. The WIF compression flag will be adhered to, but the version byte is disregarded. Compression will be used by all new keys.- Raises:
TypeError – If
wif
is not astr
.
- property address¶
The public address you share with others to receive funds.
- balance_as(currency)¶
Returns your balance as a formatted string in a particular currency.
- Parameters:
currency (
str
) – One of the Supported Currencies.- Return type:
str
- property cashtoken_address¶
The public address you share with others to receive cashtokens.
- create_transaction(outputs, fee=None, leftover=None, combine=True, message=None, unspents=None, custom_pushdata=False)¶
Creates a signed P2PKH transaction.
- Parameters:
outputs (
list
oftuple
) – A sequence of outputs you wish to send in the form(destination, amount, currency)
. The amount can be either an int, float, or string as long as it is a valid input todecimal.Decimal
. The currency must be supported. To send CashToken, the list of output is made in the form(destination, amount, currency, category_id, nft_capability, nft_commitment, token_amount)
. The category_id is hex of tx-id asstr
. The nft_capability is the capability of non-fungible token in (“none”, “mutable”, “minting”). The nft_commitment is the commitment of the non-fungible token inbytes
. The CashToken property nft_capability, nft_commitment, or the token_amount can be None if not to be sent. If category_id is tx-id of unspent with tx-index 0, then tx is treated as a genesis tx.fee (
int
) – The number of satoshi per byte to pay to miners. By default Bitcash will poll https://bitcoincashfees.earn.com and use a fee that will allow your transaction to be confirmed as soon as possible.leftover (
str
) – The destination that will receive any change from the transaction. By default Bitcash will send any change to the same address you sent from.combine (
bool
) – Whether or not Bitcash should use all available UTXOs to make future transactions smaller and therefore reduce fees. By default Bitcash will consolidate UTXOs.message (
str
) – A message to include in the transaction. This will be stored in the blockchain forever. Due to size limits, each message will be stored in chunks of 220 bytes.unspents (
list
ofUnspent
) – The UTXOs to use as the inputs. By default Bitcash will communicate with the blockchain itself.
- Returns:
The signed transaction as hex.
- Return type:
str
- classmethod from_bytes(bytestr)¶
- Parameters:
bytestr (
bytes
) – A private key previously encoded as hex.- Return type:
- classmethod from_der(der)¶
- Parameters:
der (
bytes
) – A private key previously encoded as DER.- Return type:
- classmethod from_hex(hexed)¶
- Parameters:
hexed (
str
) – A private key previously encoded as hex.- Return type:
- classmethod from_int(num)¶
- Parameters:
num (
int
) – A private key in raw integer form.- Return type:
- classmethod from_pem(pem)¶
- Parameters:
pem (
bytes
) – A private key previously encoded as PEM.- Return type:
- get_balance(currency='satoshi')¶
Fetches the current balance by calling
get_balance()
and returns it usingbalance_as()
.- Parameters:
currency (
str
) – One of the Supported Currencies.- Return type:
str
- get_cashtokenbalance()¶
Fetches the current cashtoken balance by calling
get_balance()
and returns it as a token dictionary.- Return type:
dict
- get_transactions()¶
Fetches transaction history.
- Return type:
list
ofstr
transaction IDs
- is_compressed()¶
Returns whether or not this private key corresponds to a compressed public key.
- Return type:
bool
- classmethod prepare_transaction(address, outputs, compressed=True, fee=None, leftover=None, combine=True, message=None, unspents=None)¶
Prepares a P2PKH transaction for offline signing.
- Parameters:
address (
str
) – The address the funds will be sent from.outputs (
list
oftuple
) – A sequence of outputs you wish to send in the form(destination, amount, currency)
. The amount can be either an int, float, or string as long as it is a valid input todecimal.Decimal
. The currency must be supported. To send CashToken, the list of output is made in the form(destination, amount, currency, category_id, nft_capability, nft_commitment, token_amount)
. The category_id is hex of tx-id asstr
. The nft_capability is the capability of non-fungible token in (“none”, “mutable”, “minting”). The nft_commitment is the commitment of the non-fungible token inbytes
. The CashToken property nft_capability, nft_commitment, or the token_amount can be None if not to be sent. If category_id is tx-id of unspent with tx-index 0, then tx is treated as a genesis tx.compressed (
bool
) – Whether or not theaddress
corresponds to a compressed public key. This influences the fee.fee (
int
) –The number of satoshi per byte to pay to miners. By default Bitcash will poll https://bitcoincashfees.earn.com and use a fee that will allow your transaction to be confirmed as soon as possible.
leftover (
str
) – The destination that will receive any change from the transaction. By default Bitcash will send any change to the same address you sent from.combine (
bool
) – Whether or not Bitcash should use all available UTXOs to make future transactions smaller and therefore reduce fees. By default Bitcash will consolidate UTXOs.message (
str
) – A message to include in the transaction. This will be stored in the blockchain forever. Due to size limits, each message will be stored in chunks of 220 bytes.unspents (
list
ofUnspent
) – The UTXOs to use as the inputs. By default Bitcash will communicate with the blockchain itself.
- Returns:
JSON storing data required to create an offline transaction.
- Return type:
str
- property public_key¶
The public point serialized to bytes.
- property public_point¶
The public point (x, y).
- property scriptcode¶
- send(outputs, fee=None, leftover=None, combine=True, message=None, unspents=None)¶
Creates a signed P2PKH transaction and attempts to broadcast it on the blockchain. This accepts the same arguments as
create_transaction()
.- Parameters:
outputs (
list
oftuple
) – A sequence of outputs you wish to send in the form(destination, amount, currency)
. The amount can be either an int, float, or string as long as it is a valid input todecimal.Decimal
. The currency must be supported. To send CashToken, the list of output is made in the form(destination, amount, currency, category_id, nft_capability, nft_commitment, token_amount)
. The category_id is hex of tx-id asstr
. The nft_capability is the capability of non-fungible token in (“none”, “mutable”, “minting”). The nft_commitment is the commitment of the non-fungible token inbytes
. The CashToken property nft_capability, nft_commitment, or the token_amount can be None if not to be sent. If category_id is tx-id of unspent with tx-index 0, then tx is treated as a genesis tx.fee (
int
) –The number of satoshi per byte to pay to miners. By default Bitcash will poll https://bitcoincashfees.earn.com and use a fee that will allow your transaction to be confirmed as soon as possible.
leftover (
str
) – The destination that will receive any change from the transaction. By default Bitcash will send any change to the same address you sent from.combine (
bool
) – Whether or not Bitcash should use all available UTXOs to make future transactions smaller and therefore reduce fees. By default Bitcash will consolidate UTXOs.message (
str
) – A message to include in the transaction. This will be stored in the blockchain forever. Due to size limits, each message will be stored in chunks of 220 bytes.unspents (
list
ofUnspent
) – The UTXOs to use as the inputs. By default Bitcash will communicate with the blockchain itself.
- Returns:
The transaction ID.
- Return type:
str
- sign(data)¶
Signs some data which can be verified later by others using the public key.
- Parameters:
data (
bytes
) – The message to sign.- Returns:
A signature compliant with BIP-62.
- Return type:
bytes
- sign_transaction(tx_data)¶
Creates a signed P2PKH transaction using previously prepared transaction data.
- Parameters:
tx_data (
str
) – Output ofprepare_transaction()
.- Returns:
The signed transaction as hex.
- Return type:
str
- to_bytes()¶
- Return type:
bytes
- to_der()¶
- Return type:
bytes
- to_hex()¶
- Return type:
str
- to_int()¶
- Return type:
int
- to_pem()¶
- Return type:
bytes
- to_wif()¶
- verify(signature, data)¶
Verifies some data was signed by this private key.
- Parameters:
signature (
bytes
) – The signature to verify.data (
bytes
) – The data that was supposedly signed.
- Return type:
bool
- class bitcash.PrivateKeyTestnet(wif=None, network='test')¶
This class represents a testnet BitcoinCash private key. Note: coins on the test network have no monetary value!
- Parameters:
wif (
str
) – A private key serialized to the Wallet Import Format. If the argument is not supplied, a new private key will be created. The WIF compression flag will be adhered to, but the version byte is disregarded. Compression will be used by all new keys.- Raises:
TypeError – If
wif
is not astr
.
- property address¶
The public address you share with others to receive funds.
- balance_as(currency)¶
Returns your balance as a formatted string in a particular currency.
- Parameters:
currency (
str
) – One of the Supported Currencies.- Return type:
str
- property cashtoken_address¶
The public address you share with others to receive cashtokens.
- create_transaction(outputs, fee=None, leftover=None, combine=True, message=None, unspents=None, custom_pushdata=False)¶
Creates a signed P2PKH transaction.
- Parameters:
outputs (
list
oftuple
) – A sequence of outputs you wish to send in the form(destination, amount, currency)
. The amount can be either an int, float, or string as long as it is a valid input todecimal.Decimal
. The currency must be supported. To send CashToken, the list of output is made in the form(destination, amount, currency, category_id, nft_capability, nft_commitment, token_amount)
. The category_id is hex of tx-id asstr
. The nft_capability is the capability of non-fungible token in (“none”, “mutable”, “minting”). The nft_commitment is the commitment of the non-fungible token inbytes
. The CashToken property nft_capability, nft_commitment, or the token_amount can be None if not to be sent. If category_id is tx-id of unspent with tx-index 0, then tx is treated as a genesis tx.fee (
int
) –The number of satoshi per byte to pay to miners. By default Bitcash will poll https://bitcoincashfees.earn.com and use a fee that will allow your transaction to be confirmed as soon as possible.
leftover (
str
) – The destination that will receive any change from the transaction. By default Bitcash will send any change to the same address you sent from.combine (
bool
) – Whether or not Bitcash should use all available UTXOs to make future transactions smaller and therefore reduce fees. By default Bitcash will consolidate UTXOs.message (
str
) – A message to include in the transaction. This will be stored in the blockchain forever. Due to size limits, each message will be stored in chunks of 220 bytes.unspents (
list
ofUnspent
) – The UTXOs to use as the inputs. By default Bitcash will communicate with the blockchain itself.
- Returns:
The signed transaction as hex.
- Return type:
str
- classmethod from_bytes(bytestr)¶
- Parameters:
bytestr (
bytes
) – A private key previously encoded as hex.- Return type:
- classmethod from_der(der)¶
- Parameters:
der (
bytes
) – A private key previously encoded as DER.- Return type:
- classmethod from_hex(hexed)¶
- Parameters:
hexed (
str
) – A private key previously encoded as hex.- Return type:
- classmethod from_int(num)¶
- Parameters:
num (
int
) – A private key in raw integer form.- Return type:
- classmethod from_pem(pem)¶
- Parameters:
pem (
bytes
) – A private key previously encoded as PEM.- Return type:
- get_balance(currency='satoshi')¶
Fetches the current balance by calling
get_balance()
and returns it usingbalance_as()
.- Parameters:
currency (
str
) – One of the Supported Currencies.- Return type:
str
- get_cashtokenbalance()¶
Fetches the current cashtoken balance by calling
get_balance()
and returns it as a token dictionary.- Return type:
dict
- get_transactions()¶
Fetches transaction history.
- Return type:
list
ofstr
transaction IDs
- is_compressed()¶
Returns whether or not this private key corresponds to a compressed public key.
- Return type:
bool
- classmethod prepare_transaction(address, outputs, compressed=True, fee=None, leftover=None, combine=True, message=None, unspents=None)¶
Prepares a P2PKH transaction for offline signing.
- Parameters:
address (
str
) – The address the funds will be sent from.outputs (
list
oftuple
) – A sequence of outputs you wish to send in the form(destination, amount, currency)
. The amount can be either an int, float, or string as long as it is a valid input todecimal.Decimal
. The currency must be supported. To send CashToken, the list of output is made in the form(destination, amount, currency, category_id, nft_capability, nft_commitment, token_amount)
. The category_id is hex of tx-id asstr
. The nft_capability is the capability of non-fungible token in (“none”, “mutable”, “minting”). The nft_commitment is the commitment of the non-fungible token inbytes
. The CashToken property nft_capability, nft_commitment, or the token_amount can be None if not to be sent. If category_id is tx-id of unspent with tx-index 0, then tx is treated as a genesis tx.compressed (
bool
) – Whether or not theaddress
corresponds to a compressed public key. This influences the fee.fee (
int
) –The number of satoshi per byte to pay to miners. By default Bitcash will poll https://bitcoincashfees.earn.com and use a fee that will allow your transaction to be confirmed as soon as possible.
leftover (
str
) – The destination that will receive any change from the transaction. By default Bitcash will send any change to the same address you sent from.combine (
bool
) – Whether or not Bitcash should use all available UTXOs to make future transactions smaller and therefore reduce fees. By default Bitcash will consolidate UTXOs.message (
str
) – A message to include in the transaction. This will be stored in the blockchain forever. Due to size limits, each message will be stored in chunks of 220 bytes.unspents (
list
ofUnspent
) – The UTXOs to use as the inputs. By default Bitcash will communicate with the blockchain itself.
- Returns:
JSON storing data required to create an offline transaction.
- Return type:
str
- property public_key¶
The public point serialized to bytes.
- property public_point¶
The public point (x, y).
- property scriptcode¶
- send(outputs, fee=None, leftover=None, combine=True, message=None, unspents=None)¶
Creates a signed P2PKH transaction and attempts to broadcast it on the blockchain. This accepts the same arguments as
create_transaction()
.- Parameters:
outputs (
list
oftuple
) – A sequence of outputs you wish to send in the form(destination, amount, currency)
. The amount can be either an int, float, or string as long as it is a valid input todecimal.Decimal
. The currency must be supported. To send CashToken, the list of output is made in the form(destination, amount, currency, category_id, nft_capability, nft_commitment, token_amount)
. The category_id is hex of tx-id asstr
. The nft_capability is the capability of non-fungible token in (“none”, “mutable”, “minting”). The nft_commitment is the commitment of the non-fungible token inbytes
. The CashToken property nft_capability, nft_commitment, or the token_amount can be None if not to be sent. If category_id is tx-id of unspent with tx-index 0, then tx is treated as a genesis tx.fee (
int
) –The number of satoshi per byte to pay to miners. By default Bitcash will poll https://bitcoincashfees.earn.com and use a fee that will allow your transaction to be confirmed as soon as possible.
leftover (
str
) – The destination that will receive any change from the transaction. By default Bitcash will send any change to the same address you sent from.combine (
bool
) – Whether or not Bitcash should use all available UTXOs to make future transactions smaller and therefore reduce fees. By default Bitcash will consolidate UTXOs.message (
str
) – A message to include in the transaction. This will be stored in the blockchain forever. Due to size limits, each message will be stored in chunks of 220 bytes.unspents (
list
ofUnspent
) – The UTXOs to use as the inputs. By default Bitcash will communicate with the blockchain itself.
- Returns:
The transaction ID.
- Return type:
str
- sign(data)¶
Signs some data which can be verified later by others using the public key.
- Parameters:
data (
bytes
) – The message to sign.- Returns:
A signature compliant with BIP-62.
- Return type:
bytes
- sign_transaction(tx_data)¶
Creates a signed P2PKH transaction using previously prepared transaction data.
- Parameters:
tx_data (
str
) – Output ofprepare_transaction()
.- Returns:
The signed transaction as hex.
- Return type:
str
- to_bytes()¶
- Return type:
bytes
- to_der()¶
- Return type:
bytes
- to_hex()¶
- Return type:
str
- to_int()¶
- Return type:
int
- to_pem()¶
- Return type:
bytes
- to_wif()¶
- verify(signature, data)¶
Verifies some data was signed by this private key.
- Parameters:
signature (
bytes
) – The signature to verify.data (
bytes
) – The data that was supposedly signed.
- Return type:
bool
- class bitcash.wallet.BaseKey(wif=None, regtest=False)¶
This class represents a point on the elliptic curve secp256k1 and provides all necessary cryptographic functionality. You shouldn’t use this class directly.
- Parameters:
wif (
str
) – A private key serialized to the Wallet Import Format. If the argument is not supplied, a new private key will be created. The WIF compression flag will be adhered to, but the version byte is disregarded. Compression will be used by all new keys.- Raises:
TypeError – If
wif
is not astr
.
- is_compressed()¶
Returns whether or not this private key corresponds to a compressed public key.
- Return type:
bool
- property public_key¶
The public point serialized to bytes.
- property public_point¶
The public point (x, y).
- sign(data)¶
Signs some data which can be verified later by others using the public key.
- Parameters:
data (
bytes
) – The message to sign.- Returns:
A signature compliant with BIP-62.
- Return type:
bytes
- to_bytes()¶
- Return type:
bytes
- to_der()¶
- Return type:
bytes
- to_hex()¶
- Return type:
str
- to_int()¶
- Return type:
int
- to_pem()¶
- Return type:
bytes
- verify(signature, data)¶
Verifies some data was signed by this private key.
- Parameters:
signature (
bytes
) – The signature to verify.data (
bytes
) – The data that was supposedly signed.
- Return type:
bool
CashAddress¶
- class bitcash.cashaddress.Address(version, payload)¶
Class to handle CashAddr.
- Parameters:
version (
str
) – Version of CashAddrpayload (
list
ofint
) – Payload of CashAddr as int list of the bytearray
- cash_address()¶
Generate CashAddr of the Address
- Return type:
str
- classmethod from_script(scriptcode)¶
Generate Address from a locking script
- Parameters:
scriptcode (
bytes
) – The locking script- Returns:
Instance of :class:~bitcash.cashaddress.Address
- static from_string(address)¶
Generate Address from a cashadress string
- Parameters:
scriptcode (
str
) – The cashaddress string- Returns:
Instance of :class:~bitcash.cashaddress.Address
- property scriptcode¶
Generate the locking script of the Address
- Return type:
bytes
- bitcash.cashaddress.generate_cashaddress(address, params=None)¶
Generates cashaddress uri from address and params
- Parameters:
address (str) – cashaddress
params (dict) – dictionary of parameters to be attached
- Returns:
cashaddress uri
- Return type:
str
>>> generate_cashaddress( "bitcoincash:qzfyvx77v2pmgc0vulwlfkl3uzjgh5gnmqk5hhyaa6", { "amount": 0.1, } ) "bitcoincash:qzfyvx77v2pmgc0vulwlfkl3uzjgh5gnmqk5hhyaa6?amount=0.1" >>> generate_cashaddress( "bitcoincash:", {"message": "Satoshi Nakamoto"} ) "bitcoincash:?message=Satoshi%20Nakamoto"
- bitcash.cashaddress.parse_cashaddress(data)¶
Parse CashAddress address URI, with params attached
- Parameters:
data (str) – Cashaddress uri to be parsed
- Returns:
cashaddress address, and parameters
- Return type:
(str, dict)
>>> parse_cashaddress( 'bchtest:qzvsaasdvw6mt9j2rs3gyps673gj86flev3z0s40ln?' 'amount=0.1337&label=Satoshi-Nakamoto&message=Donation%20xyz' ) (<bitcash.cashaddress.Address>, {'amount': '0.1337', 'label': 'Satoshi-Nakamoto', 'message': 'Donation xyz' } ) >>> parse_cashaddress( 'bchtest:?label=Satoshi-Nakamoto&message=Donation%20xyz' ) (None, {'label': 'Satoshi-Nakamoto', 'message': 'Donation xyz' } )
CashTokens¶
- bitcash.cashtoken.verify_cashtoken_output_data(category_id=None, nft_capability=None, nft_commitment=None, token_amount=None)¶
Verifies cashtoken data for an output
- Parameters:
category_id (
str
) – Category hex of the cashtokennft_capability (
str
) – Capability of the non-fungible tokennft_commitment (
bytes
) – Commitment bytes of the non-fungible tokentoken_amount (
int
) – Fungible token amount of the cashtoken
- Returns:
None
- bitcash.cashtoken.parse_cashtoken_prefix(script)¶
Parses cashtoken prefix
- Parameters:
script (
bytes
) – Token prefix with OP_TOKENPREFIX- Returns:
Tuple of category_id, nft_capability, nft_commitment, token_amount
- Return type:
tuple
- bitcash.cashtoken.generate_cashtoken_prefix(category_id=None, nft_capability=None, nft_commitment=None, token_amount=None)¶
Generates cashtoken prefix from cashtoken data
- Parameters:
category_id (
str
) – Category hex of the cashtokennft_capability (
str
) – Capability of the non-fungible tokennft_commitment (
bytes
) – Commitment bytes of the non-fungible tokentoken_amount (
int
) – Fungible token amount of the cashtoken
- Returns:
Cahstoken prefix
- Return type:
bytes
- bitcash.format.cashtokenaddress_to_address(address)¶
Converts cashtoken signalling cashaddress to regular cashaddress
- Parameters:
address (
str
) – Cashtoken signalling cashaddress- Returns:
Cashaddress
- Return type:
str
Network¶
- class bitcash.network.NetworkAPI¶
- IGNORED_ERRORS = (<class 'requests.exceptions.RequestException'>, <class 'requests.exceptions.HTTPError'>, <class 'requests.exceptions.ConnectionError'>, <class 'requests.exceptions.ProxyError'>, <class 'requests.exceptions.SSLError'>, <class 'requests.exceptions.Timeout'>, <class 'requests.exceptions.ConnectTimeout'>, <class 'requests.exceptions.ReadTimeout'>, <class 'requests.exceptions.TooManyRedirects'>, <class 'requests.exceptions.ChunkedEncodingError'>, <class 'requests.exceptions.ContentDecodingError'>, <class 'requests.exceptions.StreamConsumedError'>)¶
- classmethod broadcast_tx(tx_hex, network='mainnet')¶
Broadcasts a transaction to the blockchain.
- Parameters:
tx_hex (
str
) – A signed transaction in hex form.- Raises:
ConnectionError – If all API services fail.
- classmethod get_balance(address, network='mainnet')¶
Gets the balance of an address in satoshi.
- Parameters:
address (
str
) – The address in question.- Raises:
ConnectionError – If all API services fail.
- Return type:
int
- classmethod get_raw_transaction(txid, network='mainnet')¶
Gets the raw, unparsed transaction details.
- Parameters:
txid (
str
) – The transaction id in question.- Raises:
ConnectionError – If all API services fail.
- Return type:
Transaction
- classmethod get_transaction(txid, network='mainnet')¶
Gets the full transaction details.
- Parameters:
txid (
str
) – The transaction id in question.- Raises:
ConnectionError – If all API services fail.
- Return type:
Transaction
- classmethod get_transactions(address, network='mainnet')¶
Gets the ID of all transactions related to an address.
- Parameters:
address (
str
) – The address in question.- Raises:
ConnectionError – If all API services fail.
- Return type:
list
ofstr
- classmethod get_tx_amount(txid, txindex, network='mainnet')¶
Gets the amount of a given transaction output.
- Parameters:
txid (
str
) – The transaction id in question.txindex (
int
) – The transaction index in question.
- Raises:
ConnectionError – If all API services fail.
- Return type:
Decimal
- class bitcash.network.meta.Unspent(amount, confirmations, script, txid, txindex, category_id=None, nft_capability=None, nft_commitment=None, token_amount=None)¶
Represents an unspent transaction output (UTXO) with CashToken
- Parameters:
amount (
int
) – Amount in satoshiconfirmations (
int
) – Number of confirmations of the UTXOscript (
str
) – locking bytecode hex of the UTXO, with no cashtoken prefixtxid (
str
) – txid hex of the transaction of UTXOtxindex (
int
) – transaction output index of UTXOcategory_id (
str
) – category_id of cashtoken attached to the UTXOnft_capability (
str
) – nft_capability of the cashtoken attachednft_commitment (
bytes
) – nft_commitment of the cashtoken attachedtoken_amount (
int
) – fungible token amount of the cashtoken attached
- NFT_CAPABILITY = ['none', 'mutable', 'minting']¶
- amount¶
- category_id¶
- confirmations¶
- classmethod from_dict(d)¶
- property has_amount¶
- property has_cashtoken¶
- property has_nft¶
- nft_capability¶
- nft_commitment¶
- script¶
- to_dict()¶
- token_amount¶
- txid¶
- txindex¶
Exchange Rates¶
- bitcash.network.currency_to_satoshi(amount, currency)¶
Converts a given amount of currency to the equivalent number of satoshi. The amount can be either an int, float, or string as long as it is a valid input to
decimal.Decimal
.- Parameters:
amount – The quantity of currency.
currency (
str
) – One of the Supported Currencies.
- Return type:
int
- bitcash.network.currency_to_satoshi_cached(amount, currency)¶
Converts a given amount of currency to the equivalent number of satoshi. The amount can be either an int, float, or string as long as it is a valid input to
decimal.Decimal
. Results are cached using a decorator for 60 seconds by default. See Cache Times.- Parameters:
amount – The quantity of currency.
currency (
str
) – One of the Supported Currencies.
- Return type:
int
- bitcash.network.satoshi_to_currency(num, currency)¶
Converts a given number of satoshi to another currency as a formatted string rounded down to the proper number of decimal places.
- Parameters:
num (
int
) – The number of satoshi.currency (
str
) – One of the Supported Currencies.
- Return type:
str
- bitcash.network.satoshi_to_currency_cached(num, currency)¶
Converts a given number of satoshi to another currency as a formatted string rounded down to the proper number of decimal places. Results are cached using a decorator for 60 seconds by default. See Cache Times.
- Parameters:
num (
int
) – The number of satoshi.currency (
str
) – One of the Supported Currencies.
- Return type:
str
- class bitcash.network.rates.RatesAPI¶
Each method converts exactly 1 unit of the currency to the equivalent number of satoshi.
- ARS_RATES = [<bound method BitpayRates.ars_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- AUD_RATES = [<bound method BitpayRates.aud_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- BOB_RATES = [<bound method BitpayRates.bob_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- BRL_RATES = [<bound method BitpayRates.brl_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- CAD_RATES = [<bound method BitpayRates.cad_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- CHF_RATES = [<bound method BitpayRates.chf_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- CLP_RATES = [<bound method BitpayRates.clp_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- CNY_RATES = [<bound method BitpayRates.cny_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- COP_RATES = [<bound method BitpayRates.cop_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- CUP_RATES = [<bound method BitpayRates.cup_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- DKK_RATES = [<bound method BitpayRates.dkk_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- DOP_RATES = [<bound method BitpayRates.dop_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- EUR_RATES = [<bound method BitpayRates.eur_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- GBP_RATES = [<bound method BitpayRates.gbp_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- HKD_RATES = [<bound method BitpayRates.hkd_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- IGNORED_ERRORS = (<class 'requests.exceptions.ConnectionError'>, <class 'requests.exceptions.HTTPError'>, <class 'requests.exceptions.Timeout'>)¶
- ISK_RATES = [<bound method BitpayRates.isk_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- JPY_RATES = [<bound method BitpayRates.jpy_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- KRW_RATES = [<bound method BitpayRates.krw_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- MXN_RATES = [<bound method BitpayRates.mxn_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- NZD_RATES = [<bound method BitpayRates.nzd_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- PEN_RATES = [<bound method BitpayRates.pen_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- PLN_RATES = [<bound method BitpayRates.pln_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- RUB_RATES = [<bound method BitpayRates.rub_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- SEK_RATES = [<bound method BitpayRates.sek_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- SGD_RATES = [<bound method BitpayRates.sgd_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- THB_RATES = [<bound method BitpayRates.thb_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- TWD_RATES = [<bound method BitpayRates.twd_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- USD_RATES = [<bound method BitpayRates.usd_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>, <bound method CoinbaseRates.usd_to_satoshi of <class 'bitcash.network.rates.CoinbaseRates'>>]¶
- UYU_RATES = [<bound method BitpayRates.uyu_to_satoshi of <class 'bitcash.network.rates.BitpayRates'>>]¶
- classmethod ars_to_satoshi()¶
- classmethod aud_to_satoshi()¶
- classmethod bob_to_satoshi()¶
- classmethod brl_to_satoshi()¶
- classmethod cad_to_satoshi()¶
- classmethod chf_to_satoshi()¶
- classmethod clp_to_satoshi()¶
- classmethod cny_to_satoshi()¶
- classmethod cop_to_satoshi()¶
- classmethod cup_to_satoshi()¶
- classmethod dkk_to_satoshi()¶
- classmethod dop_to_satoshi()¶
- classmethod eur_to_satoshi()¶
- classmethod gbp_to_satoshi()¶
- classmethod hkd_to_satoshi()¶
- classmethod isk_to_satoshi()¶
- classmethod jpy_to_satoshi()¶
- classmethod krw_to_satoshi()¶
- classmethod mxn_to_satoshi()¶
- classmethod nzd_to_satoshi()¶
- classmethod pen_to_satoshi()¶
- classmethod pln_to_satoshi()¶
- classmethod rub_to_satoshi()¶
- classmethod sek_to_satoshi()¶
- classmethod sgd_to_satoshi()¶
- classmethod thb_to_satoshi()¶
- classmethod twd_to_satoshi()¶
- classmethod usd_to_satoshi()¶
- classmethod uyu_to_satoshi()¶
- class bitcash.network.rates.BitpayRates¶
API Documentation: https://bitpay.com/api/rates#rest-api-resources-rates
- SINGLE_RATE = 'https://bitpay.com/rates/BCH/'¶
- classmethod ars_to_satoshi()¶
- classmethod aud_to_satoshi()¶
- classmethod bob_to_satoshi()¶
- classmethod brl_to_satoshi()¶
- classmethod cad_to_satoshi()¶
- classmethod chf_to_satoshi()¶
- classmethod clp_to_satoshi()¶
- classmethod cny_to_satoshi()¶
- classmethod cop_to_satoshi()¶
- classmethod cup_to_satoshi()¶
- classmethod currency_to_satoshi(currency)¶
- classmethod dkk_to_satoshi()¶
- classmethod dop_to_satoshi()¶
- classmethod eur_to_satoshi()¶
- classmethod gbp_to_satoshi()¶
- classmethod hkd_to_satoshi()¶
- classmethod isk_to_satoshi()¶
- classmethod jpy_to_satoshi()¶
- classmethod krw_to_satoshi()¶
- classmethod mxn_to_satoshi()¶
- classmethod nzd_to_satoshi()¶
- classmethod pen_to_satoshi()¶
- classmethod pln_to_satoshi()¶
- classmethod rub_to_satoshi()¶
- classmethod sek_to_satoshi()¶
- classmethod sgd_to_satoshi()¶
- classmethod thb_to_satoshi()¶
- classmethod twd_to_satoshi()¶
- classmethod usd_to_satoshi()¶
- classmethod uyu_to_satoshi()¶
Utilities¶
- bitcash.verify_sig(signature, data, public_key)¶
Verifies some data was signed by the owner of a public key.
- Parameters:
signature (
bytes
) – The signature to verify.data (
bytes
) – The data that was supposedly signed.public_key (
bytes
) – The public key.
- Returns:
True
if all checks pass,False
otherwise.
Exceptions¶
- exception bitcash.exceptions.InsufficientFunds¶