Wallet
The implementation of Hierarchical Deterministic (HD) wallets generator for XinFin blockchain.
- class swap.providers.xinfin.wallet.Wallet(network: str = 'mainnet', provider: str = 'http')
XinFin Wallet class.
- Parameters
network (str) – XinFin network, defaults to
mainnet
.provider (str) – XinFin network provider, defaults to
http
.
- Returns
Wallet – XinFin wallet instance.
Note
XinFin has only two networks,
mainnet
,apothem
andtestnet
.- from_entropy(entropy: str, language: str = 'english', passphrase: Optional[str] = None) swap.providers.xinfin.wallet.Wallet
Master from Entropy.
- Parameters
entropy (str) – XinFin wallet entropy.
language (str) – XinFin wallet language, default to
english
.passphrase (str) – XinFin wallet passphrase, default to
None
.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_mnemonic(mnemonic: str, language: Optional[str] = None, passphrase: Optional[str] = None) swap.providers.xinfin.wallet.Wallet
Master from Mnemonic.
- Parameters
mnemonic (str) – XinFin wallet mnemonic.
language (str) – XinFin wallet language, default to
english
.passphrase (str) – XinFin wallet passphrase, default to
None
.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_mnemonic(mnemonic="unfair divorce remind addict add roof park clown build renew illness fault") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_seed(seed: str) swap.providers.xinfin.wallet.Wallet
Master from Seed.
- Parameters
seed (str) – XinFin wallet seed.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_seed(seed="1cfd5df8a523d53a36cee369a93fac4e9efab5e4e138d479da2fb6df730697574409d572fe8325ec22e8ed25dea7495f498c3f5235fe6ae6d47b989267b6777c") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_xprivate_key(xprivate_key: str, strict: bool = True) swap.providers.xinfin.wallet.Wallet
Master from Root XPrivate Key.
- Parameters
xprivate_key (str) – XinFin root xprivate key.
strict (bool) – Strict for must be root xprivate key, default to
True
.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_xprivate_key(xprivate_key="xprv9s21ZrQH143K3Y3pdbkbjreZQ9RVmqTLhRgf86uZyCJk2ou36YdUJt5frjwihGWmV1fQEDioiGZXWXUbHLy3kQf5xmhvhp8dZ2tfn6tgGUj") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_xpublic_key(xpublic_key: str, strict: bool = True) swap.providers.xinfin.wallet.Wallet
Master from Root XPublic Key.
- Parameters
xpublic_key (str) – XinFin root xpublic key.
strict (bool) – Strict for must be root xprivate key, default to
True
.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_xpublic_key(xpublic_key="xpub661MyMwAqRbcG28HjdHc6zbHxBFzBJBC4ecFvVKBXXqiucEBe5wirgQ9hzY2WQMjnurVjJbTjMWRskHi7jnSRkJdj4oRu4Vdh7Ln1F83mLJ") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_wif(wif: str) swap.providers.xinfin.wallet.Wallet
Master from Wallet Important Format (WIF).
- Parameters
wif (str) – XinFin wallet important format.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_wif(wif="L1rYHjuxQtgTeU4qMUP6qnGqW9nstFt5drQktRuFGFSuGcCpZoJq") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_private_key(private_key) swap.providers.xinfin.wallet.Wallet
Master from Private Key.
- Parameters
private_key (str) – XinFin private key.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_private_key(private_key="8a4bc8131e99a5d1064cdbca6949aa2ec16152967b19f2cee3096daefd5ca857") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_path(path: str) swap.providers.xinfin.wallet.Wallet
Drive XinFin wallet from path.
- Parameters
path (str) – XinFin derivation path.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- from_index(index: int, hardened: bool = False) swap.providers.xinfin.wallet.Wallet
Drive XinFin wallet from index.
- Parameters
index (int) – XinFin derivation index.
hardened (bool) – Use hardened index, default to
False
.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_index(44, harden=True) >>> wallet.from_index(550, harden=True) >>> wallet.from_index(0, harden=True) >>> wallet.from_index(0) >>> wallet.from_index(0) <swap.providers.xinfin.wallet.Wallet object at 0x040DA268>
- clean_derivation() swap.providers.xinfin.wallet.Wallet
Clean derivation XinFin wallet.
- Returns
Wallet – XinFin wallet instance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path("m/44'/550'/0'/0/0") >>> wallet.path() "m/44'/550'/0'/0/0" >>> wallet.clean_derivation() <swap.providers.xinfin.wallet.Wallet object at 0x040DA268> >>> wallet.path() None
- strength() Optional[int]
Get XinFin wallet strength.
- Returns
int – XinFin wallet strength.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.strength() 128
- entropy() Optional[str]
Get XinFin wallet entropy.
- Returns
str – XinFin wallet entropy.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.entropy() "ed0802d701a033776811601dd6c5c4a9"
- mnemonic() Optional[str]
Get XinFin wallet mnemonic.
- Returns
str – XinFin wallet mnemonic.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.mnemonic() "unfair divorce remind addict add roof park clown build renew illness fault"
- passphrase() Optional[str]
Get XinFin wallet passphrase.
- Returns
str – XinFin wallet passphrase.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9", passphrase="meherett") >>> wallet.passphrase() "meherett"
- language() Optional[str]
Get XinFin wallet language.
- Returns
str – XinFin wallet language.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.language() "english"
- seed() Optional[str]
Get XinFin wallet seed.
- Returns
str – XinFin wallet seed.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.seed() "1cfd5df8a523d53a36cee369a93fac4e9efab5e4e138d479da2fb6df730697574409d572fe8325ec22e8ed25dea7495f498c3f5235fe6ae6d47b989267b6777c"
- root_xprivate_key(encoded: bool = True) Optional[str]
Get XinFin wallet root xprivate key.
- Parameters
encoded (bool) – Encoded root xprivate key, default to
True
.- Returns
str – XinFin wallet root xprivate key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.root_xprivate_key() "xprv9s21ZrQH143K3Y3pdbkbjreZQ9RVmqTLhRgf86uZyCJk2ou36YdUJt5frjwihGWmV1fQEDioiGZXWXUbHLy3kQf5xmhvhp8dZ2tfn6tgGUj"
- root_xpublic_key(encoded: bool = True) Optional[str]
Get XinFin wallet root xpublic key.
- Parameters
encoded (bool) – Encoded root xprivate key, default to
True
.- Returns
str – XinFin wallet root xpublic key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.root_xpublic_key() "xpub661MyMwAqRbcG28HjdHc6zbHxBFzBJBC4ecFvVKBXXqiucEBe5wirgQ9hzY2WQMjnurVjJbTjMWRskHi7jnSRkJdj4oRu4Vdh7Ln1F83mLJ"
- xprivate_key(encoded=True) Optional[str]
Get XinFin wallet xprivate key.
- Parameters
encoded (bool) – Encoded xprivate key, default to True.
- Returns
str – XinFin wallet xprivate key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.xprivate_key() "xprvA3QFrUVTkKpfRhqjgPq897uDFAYtt9VhMdDuZVbPboVf9uPMcMmr7W8sTsrd8nFCsVGSBCpGC3jreRpu8Zs1xsG5U98GZL24AqXYNPuo1rg"
- xpublic_key(encoded: bool = True) Optional[str]
Get XinFin wallet xpublic key.
- Parameters
encoded (bool) – Encoded xprivate key, default to
True
.- Returns
str – XinFin wallet xpublic key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.xpublic_key() "xpub6GPcFz2MahNxeBvCnRN8WFqwoCPPHcDYir9WMt11A92e2hiW9u66fJTMKAB81ns7kpAT3vsKi4QHWVSNt7V6crGXc8ie3yjn1GvD1inKxEw"
- uncompressed() str
Get XinFin wallet uncompressed public key.
- Returns
str – XinFin wallet uncompressed public key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.uncompressed() "33fbc2f498d145a1827ee894a2ed5f14928523712047ad9fffc59cdda7d314e6707f731cc5b9a5018878fdfd503a8502c6d714a2cef1161603a002845b83310f"
- compressed() str
Get XinFin wallet compressed public key.
- Returns
str – XinFin wallet compressed public key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.compressed() "0333fbc2f498d145a1827ee894a2ed5f14928523712047ad9fffc59cdda7d314e6"
- chain_code() str
Get XinFin wallet chain code.
- Returns
str – XinFin wallet chain code.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.chain_code() "ba8572f00241c17616903b07fed8ddcc1442677fa54ccd38e85049eee2310246"
- private_key() str
Get XinFin wallet private key.
- Returns
str – XinFin wallet private key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.private_key() "8a4bc8131e99a5d1064cdbca6949aa2ec16152967b19f2cee3096daefd5ca857"
- public_key() str
Get XinFin wallet public key.
- Returns
str – XinFin wallet public key.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path("m/44'/550'/0'/0/0") >>> wallet.public_key() "0333fbc2f498d145a1827ee894a2ed5f14928523712047ad9fffc59cdda7d314e6"
- path() Optional[str]
Get XinFin wallet path.
- Returns
str – XinFin wallet path.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.path() "m/44'/550'/0'/0/0"
- address() str
Get XinFin wallet address.
- Returns
str – XinFin wallet address.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.address() "xdc2224caA2235DF8Da3D2016d2AB1137D2d548A232"
- wif() str
Get XinFin wallet important format (WIF).
- Returns
str – XinFin wallet important format.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.wif() "L1rYHjuxQtgTeU4qMUP6qnGqW9nstFt5drQktRuFGFSuGcCpZoJq"
- hash(private_key: Optional[str] = None) str
Get XinFin wallet public key/address hash.
- Returns
str – XinFin wallet public key/address hash.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.hash() "dc8f505fccd7cb6f6ba93fd3795174f97efb43ae"
- balance(unit: str = 'Wei') Union[Wei, int, float]
Get XinFin wallet balance.
- Parameters
unit (str) – XinFin unit, default to
Wei
.- Returns
Wei, int, float – XinFin wallet balance.
>>> from swap.providers.xinfin.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/550'/0'/0/0") >>> wallet.balance(unit="XDC") 96.96263982
- xrc20_balance(token_address: str) Tuple[int, str, str, int, str]
Get XinFin HTLC XRC20 balance.
- Parameters
token_address (str) – XinFin XRC20 token address.
- Returns
tuple – XinFin HTLC XRC20 balance and decimal.
>>> from swap.providers.xinfin.htlc import HTLC >>> htlc: HTLC = HTLC(contract_address="0x94c4B5f13392AcD2A6E59C9A180758fB386631C3", network="testnet", erc20=True) >>> htlc.xrc20_balance(token_address="0xDaB6844e863bdfEE6AaFf888D2D34Bf1B7c37861") (99999999999999999999999999998, 18)