Skip to main content

xchainpy/xchain-litecoin

Litecoin Module for XChainPy Clients

Modules

  • client - Custom client for communicating with bitcoinlib , sochain api
  • models - Model wrapper for litecoin and sochain required types
  • util - Utitilies for using bitcoinlib and sochain

Following dependencies have to be installed into your project

bip_utils, bitcoinlib , xchainpy_client , xchainpy_crypto , xchainpy_util , http3

Service Providers

This package uses the following service providers:

Function Service Notes
Balances Sochain https://sochain.com/api#get-balance
Transaction history Sochain https://sochain.com/api#get-display-data-address, https://sochain.com/api#get-tx
Transaction details by hash Sochain https://sochain.com/api#get-tx
Transaction fees Bitgo https://app.bitgo.com/docs/#operation/v2.tx.getfeeestimate
Explorer Bitaps https://ltc.bitaps.com
Transaction broadcast Sochain https://sochain.com/api/#send-transaction

Sochain API rate limits: https://sochain.com/api#rate-limits (300 requests/minute)

Bitgo API rate limits: https://app.bitgo.com/docs/#section/Rate-Limiting (10 requests/second)

Litecoin Client module

Initialize a client

from xchainpy_client.models.types import Network
from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams

# Note: This phrase is created by https://iancoleman.io/bip39/ and will never been used in a real-world
phrase = 'atom green various power must another rent imitate gadget creek fat then'
client = Client(LitecoinClientParams(phrase=phrase, network=Network.Testnet))

# if you want to change phrase after initialize the client
client.set_phrase('caution pear excite vicious exotic slow elite marble attend science strategy rude')

# if you want to change network after initialize the client
client.purge_client()
client.set_network(Network.Mainnet)

# when you are done with the client, call this
client.purge_client()

Address methods

from xchainpy_client.models.types import Network
from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams

phrase = 'atom green various power must another rent imitate gadget creek fat then'
client = Client(LitecoinClientParams(phrase=phrase, network=Network.Testnet))

address = client.get_address()
is_valid = client.validate_address(client.network, address) # bool
print(address)
print(is_valid)

# change index
address = client.get_address(1)
is_valid = client.validate_address(client.network, address) # bool
print(address)
print(is_valid)

Fees

from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams

client = Client(LitecoinClientParams())

# Get feeRate estimations
fee_rates = await client.get_fee_rates()

# Get fee estimations
fees = await client.get_fees()

# Get fee estimations with memo
memo = 'SWAP:THOR.RUNE'
fees_with_memo = await client.get_fees(memo)


print(f'''fee rates: 
average: {fee_rates.average}
fast: {fee_rates.fast}
fastest: {fee_rates.fastest}\n''')

print(f'''fees: 
average: {fees.average}
fast: {fees.fast}
fastest: {fees.fastest}\n''')

print(f'''fees with memo: 
average: {fees_with_memo.average}
fast: {fees_with_memo.fast}
fastest: {fees_with_memo.fastest}\n''')

Balance

from xchainpy_client.models.types import Network
from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams

phrase = 'atom green various power must another rent imitate gadget creek fat then'
client = Client(LitecoinClientParams(phrase=phrase, network=Network.Testnet))

address = client.get_address()

balance = await client.get_balance(address=address)
balance = balance[0]

print(f'asset: {balance.asset}, amount: {balance.amount}')

Transactions and Transaction_data

from xchainpy_client.models.tx_types import TxHistoryParams
from xchainpy_client.models.types import Network
from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams

phrase = 'atom green various power must another rent imitate gadget creek fat then'
client = Client(LitecoinClientParams(phrase=phrase, network=Network.Testnet))

address = client.get_address()

params = TxHistoryParams(address=address, limit=1)
transactions = await client.get_transactions(params)
# type of transactions is xchainpy_client.models.tx_types.TxPage

t = transactions.txs[0]
print(t.asset)
print(t.tx_from[0].amount)
print(t.tx_from[0].address)
print(t.tx_to[0].amount)
print(t.tx_to[0].address)
print(t.tx_date)
print(t.tx_type)
print(t.tx_hash)

transaction = await client.get_transaction_data(t.tx_hash)
# transaction object is equal by t object

Transfer

from xchainpy_client.models.types import Network
from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams, LitecoinTxParams

phrase = 'atom green various power must another rent imitate gadget creek fat then'
client = Client(LitecoinClientParams(phrase=phrase, network=Network.Testnet))

address = client.get_address()

params = LitecoinTxParams(amount=0.0000001, recipient=address, memo='memo')
tx_hash = await client.transfer(params)

print(tx_hash)

Explorer url

from xchainpy_client.models.types import Network
from xchainpy_litecoin.client import Client
from xchainpy_litecoin.models.client_types import LitecoinClientParams

client = Client(LitecoinClientParams())

print(client.get_explorer_url())
print(client.get_explorer_address_url('testAddressHere'))
print(client.get_explorer_tx_url('testTxHere'))

client.purge_client()
client.set_network(Network.Mainnet)

print(client.get_explorer_url())
print(client.get_explorer_address_url('testAddressHere'))
print(client.get_explorer_tx_url('testTxHere'))

Tests

These packages needed to run tests:

  • pytest pip install pytest
  • pytest-asyncio pip install pytest-asyncio

How to run test ?

$ python -m pytest xchainpy/xchainpy_litecoin/tests

Metadata

Release files for xchainpy-litecoin 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xchainpy-litecoin 0.2.1
File Size Uploaded Provenance Actions
xchainpy_litecoin-0.2.1.tar.gz 11.9 kB Without provenance Details for xchainpy_litecoin-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for xchainpy-litecoin 0.2.1
File Interpreter ABI Platform Actions
xchainpy_litecoin-0.2.1-py3-none-any.whl Python 3 none any Details for xchainpy_litecoin-0.2.1-py3-none-any.whl

Total release size: 24.4 kB

Release files / xchainpy_litecoin-0.2.1.tar.gz

Download URL xchainpy_litecoin-0.2.1.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e77e5adf2e717242e79eaa97242e18ec8c23c97101e9db7f2e37821f078e2b54
BLAKE2b-256 checksum
How to use checksums
4a701d73ba5d3355e8db80d7be180406478a5f226379688881b88c97bb8d04ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

Release files / xchainpy_litecoin-0.2.1-py3-none-any.whl

Download URL xchainpy_litecoin-0.2.1-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79ac49e4bac6d37f40c4bfcc99a05a51befcc5edfa63bdada29eb4588aae476a
BLAKE2b-256 checksum
How to use checksums
2870f227ed4ebb59fba85ec5ec274a1e2afc57343b10f66adeb8b19b29a9d13b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

Security for xchainpy-litecoin 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page