Wallet
The implementation of Hierarchical Deterministic (HD) wallets generator for Ethereum blockchain.
- class swap.providers.ethereum.wallet.Wallet(network: str = 'mainnet', provider: str = 'http', token: Optional[str] = None)
Ethereum Wallet class.
- Parameters
network (str) – Ethereum network, defaults to
mainnet
.provider (str) – Ethereum network provider, defaults to
http
.token (str) – Infura API endpoint token, defaults to
4414fea5f7454211956b1627621450b4
.
- Returns
Wallet – Ethereum wallet instance.
Note
Ethereum has only five networks,
mainnet
,ropsten
,kovan
,rinkeby
andtestnet
.- from_entropy(entropy: str, language: str = 'english', passphrase: Optional[str] = None) swap.providers.ethereum.wallet.Wallet
Master from Entropy.
- Parameters
entropy (str) – Ethereum wallet entropy.
language (str) – Ethereum wallet language, default to
english
.passphrase (str) – Ethereum wallet passphrase, default to
None
.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_mnemonic(mnemonic: str, language: Optional[str] = None, passphrase: Optional[str] = None) swap.providers.ethereum.wallet.Wallet
Master from Mnemonic.
- Parameters
mnemonic (str) – Ethereum wallet mnemonic.
language (str) – Ethereum wallet language, default to
english
.passphrase (str) – Ethereum wallet passphrase, default to
None
.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.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.ethereum.wallet.Wallet object at 0x040DA268>
- from_seed(seed: str) swap.providers.ethereum.wallet.Wallet
Master from Seed.
- Parameters
seed (str) – Ethereum wallet seed.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_seed(seed="1cfd5df8a523d53a36cee369a93fac4e9efab5e4e138d479da2fb6df730697574409d572fe8325ec22e8ed25dea7495f498c3f5235fe6ae6d47b989267b6777c") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_xprivate_key(xprivate_key: str, strict: bool = True) swap.providers.ethereum.wallet.Wallet
Master from Root XPrivate Key.
- Parameters
xprivate_key (str) – Ethereum root xprivate key.
strict (bool) – Strict for must be root xprivate key, default to
True
.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_xprivate_key(xprivate_key="xprv9s21ZrQH143K3Y3pdbkbjreZQ9RVmqTLhRgf86uZyCJk2ou36YdUJt5frjwihGWmV1fQEDioiGZXWXUbHLy3kQf5xmhvhp8dZ2tfn6tgGUj") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_xpublic_key(xpublic_key: str, strict: bool = True) swap.providers.ethereum.wallet.Wallet
Master from Root XPublic Key.
- Parameters
xpublic_key (str) – Ethereum root xpublic key.
strict (bool) – Strict for must be root xprivate key, default to
True
.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_xpublic_key(xpublic_key="xpub661MyMwAqRbcG28HjdHc6zbHxBFzBJBC4ecFvVKBXXqiucEBe5wirgQ9hzY2WQMjnurVjJbTjMWRskHi7jnSRkJdj4oRu4Vdh7Ln1F83mLJ") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_wif(wif: str) swap.providers.ethereum.wallet.Wallet
Master from Wallet Important Format (WIF).
- Parameters
wif (str) – Ethereum wallet important format.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_wif(wif="L4AfqFc8aoBWYNTKU6PkiFbP9kbXRfVHXZWde6SpAdTewwJMc5VZ") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_private_key(private_key) swap.providers.ethereum.wallet.Wallet
Master from Private Key.
- Parameters
private_key (str) – Ethereum private key.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_private_key(private_key="cf4c2fb2b88a556c211d5fe79335dcee6dd11403bbbc5b47a530e9cf56ee3aee") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_path(path: str) swap.providers.ethereum.wallet.Wallet
Drive Ethereum wallet from path.
- Parameters
path (str) – Ethereum wallet path.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- from_index(index: int, hardened: bool = False) swap.providers.ethereum.wallet.Wallet
Drive Ethereum wallet from index.
- Parameters
index (int) – Ethereum wallet index.
hardened (bool) – Use hardened index, default to
False
.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_index(44, harden=True) >>> wallet.from_index(60, harden=True) >>> wallet.from_index(0, harden=True) >>> wallet.from_index(0) >>> wallet.from_index(0) <swap.providers.ethereum.wallet.Wallet object at 0x040DA268>
- clean_derivation() swap.providers.ethereum.wallet.Wallet
Clean derivation Ethereum wallet.
- Returns
Wallet – Ethereum wallet instance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path("m/44'/60'/0'/0/0") >>> wallet.path() "m/44'/60'/0'/0/0" >>> wallet.clean_derivation() <swap.providers.ethereum.wallet.Wallet object at 0x040DA268> >>> wallet.path() None
- strength() Optional[int]
Get Ethereum wallet strength.
- Returns
int – Ethereum wallet strength.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.strength() 128
- entropy() Optional[str]
Get Ethereum wallet entropy.
- Returns
str – Ethereum wallet entropy.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.entropy() "ed0802d701a033776811601dd6c5c4a9"
- mnemonic() Optional[str]
Get Ethereum wallet mnemonic.
- Returns
str – Ethereum wallet mnemonic.
>>> from swap.providers.ethereum.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 Ethereum wallet passphrase.
- Returns
str – Ethereum wallet passphrase.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9", passphrase="meherett") >>> wallet.passphrase() "meherett"
- language() Optional[str]
Get Ethereum wallet language.
- Returns
str – Ethereum wallet language.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.language() "english"
- seed() Optional[str]
Get Ethereum wallet seed.
- Returns
str – Ethereum wallet seed.
>>> from swap.providers.ethereum.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 Ethereum wallet root xprivate key.
- Parameters
encoded (bool) – Encoded root xprivate key, default to
True
.- Returns
str – Ethereum wallet root xprivate key.
>>> from swap.providers.ethereum.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 Ethereum wallet root xpublic key.
- Parameters
encoded (bool) – Encoded root xprivate key, default to
True
.- Returns
str – Ethereum wallet root xpublic key.
>>> from swap.providers.ethereum.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 Ethereum wallet xprivate key.
- Parameters
encoded (bool) – Encoded xprivate key, default to
True
.- Returns
str – Ethereum wallet xprivate key.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.xprivate_key() "xprvA3xrxQQVw6Kvc786WAccK4H7dLHhnb9XRsMUMqU3bJoZf5bWxtd5VePTNnn854tEbvV57ggjqkGHXc2u4Jx2veJzXRS1mBuokqz1aXL6tDW"
- xpublic_key(encoded: bool = True) Optional[str]
Get Ethereum wallet xpublic key.
- Parameters
encoded (bool) – Encoded xprivate key, default to
True
.- Returns
str – Ethereum wallet xpublic key.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.xpublic_key() "xpub6GxDMuwPmTtDpbCZcC9cgCDrBN8CC3sNo6H5ADsf9eLYXsvfWRwL3ShwE5u4gxbPPcZj1yjSDrvvLxsHEPdjtFHHk81N2bskE2U7k9pmj9q"
- uncompressed() str
Get Ethereum wallet uncompressed public key.
- Returns
str – Ethereum wallet uncompressed public key.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.uncompressed() "e270f9d51cad2977c0a28182b9320bb5edc3c70e6d84ff5837f8d407ed9d676d447e195e1aff5494d1a0c8dc310c74692e053c2f27ab50c1ee7767a6b8a7be75"
- compressed() str
Get Ethereum wallet compressed public key.
- Returns
str – Ethereum wallet compressed public key.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.compressed() "03e270f9d51cad2977c0a28182b9320bb5edc3c70e6d84ff5837f8d407ed9d676d"
- chain_code() str
Get Ethereum wallet chain code.
- Returns
str – Ethereum wallet chain code.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.chain_code() "9e5c492fa0a5c5cc649922c34ac3468a08473f3b61f59bba61b52cce364d6b0c"
- private_key() str
Get Ethereum wallet private key.
- Returns
str – Ethereum wallet private key.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.private_key() "cf4c2fb2b88a556c211d5fe79335dcee6dd11403bbbc5b47a530e9cf56ee3aee"
- public_key() str
Get Ethereum wallet public key.
- Returns
str – Ethereum wallet public key.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path("m/44'/60'/0'/0/0") >>> wallet.public_key() "03e270f9d51cad2977c0a28182b9320bb5edc3c70e6d84ff5837f8d407ed9d676d"
- path() Optional[str]
Get Ethereum wallet path.
- Returns
str – Ethereum wallet path.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.path() "m/44'/60'/0'/0/0"
- address() str
Get Ethereum wallet address.
- Returns
str – Ethereum wallet address.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.address() "0x69e04fe16c9A6A83076B3c2dc4b4Bc21b5d9A20C"
- wif() str
Get Ethereum wallet important format (WIF).
- Returns
str – Ethereum wallet important format.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.wif() "L4AfqFc8aoBWYNTKU6PkiFbP9kbXRfVHXZWde6SpAdTewwJMc5VZ"
- hash(private_key: Optional[str] = None) str
Get Ethereum wallet public key/address hash.
- Returns
str – Ethereum wallet public key/address hash.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.hash() "184847379abdde6617e8438fd4ff0d8fdf512cc2"
- balance(unit: str = 'Wei') Union[Wei, int, float]
Get Ethereum wallet balance.
- Parameters
unit (str) – Ethereum unit, default to
Wei
.- Returns
Wei, int, float – Ethereum wallet balance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.balance(unit="Ether") 96.96263982
- erc20_balance(token_address: str) Tuple[int, str, str, int, str]
Get Ethereum wallet ERC20 balance.
- Parameters
token_address (str) – Ethereum ERC20 token address.
- Returns
tuple – Ethereum wallet ERC20 balance.
>>> from swap.providers.ethereum.wallet import Wallet >>> wallet: Wallet = Wallet(network="testnet") >>> wallet.from_entropy(entropy="ed0802d701a033776811601dd6c5c4a9") >>> wallet.from_path(path="m/44'/60'/0'/0/0") >>> wallet.erc20_balance(token_address="0xDaB6844e863bdfEE6AaFf888D2D34Bf1B7c37861") (99999999999999999999999999998, 18)