PyXDC

PyXDC

Python library with tools for XinFin blockchain.

Installing PyXDC

The easiest way to install pyxdc is via pip:

$ pip install pyxdc

If you want to run the latest version of the code, you can install from git:

$ pip install git+git://github.com/meherett/pyxdc.git

For the versions available, see the tags on this repository.

Development

We welcome pull requests. To get started, just fork this github repository, clone it locally, and run:

$ pip install -e . -r requirements.txt

Wallet

class pyxdc.wallet.Wallet(provider: Union[web3.providers.rpc.HTTPProvider, web3.providers.websocket.WebsocketProvider] = <web3.providers.rpc.HTTPProvider object>, use_default_path: bool = False)

XinFin Wallet.

Parameters
  • provider (HTTPProvider, WebsocketProvider) – XinFin provider, default to HTTP_PROVIDER.

  • use_default_path (bool) – Use default derivation path, defaults to False.

Returns

Wallet – Wallet instance.

from_entropy(entropy: str, language: str = 'english', passphrase: Optional[str] = None)pyxdc.wallet.Wallet

Master from Entropy hex string.

Parameters
  • entropy (str) – Entropy hex string.

  • language (str) – Mnemonic language, default to english.

  • passphrase (str) – Mnemonic passphrase or password, default to None.

Returns

Wallet – Wallet instance.

>>> from pyxdc import WEBSOCKET_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=WEBSOCKET_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e", language="english", passphrase=None)
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_mnemonic(mnemonic: str, language: Optional[str] = None, passphrase: Optional[str] = None)pyxdc.wallet.Wallet

Master from Mnemonic words.

Parameters
  • mnemonic (str) – Mnemonic words.

  • language (str) – Mnemonic language, default to None.

  • passphrase (str) – Mnemonic passphrase or password, default to None.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_mnemonic(mnemonic="rent host ill marble fortune deputy pink absorb stand thought neck planet away found robust", passphrase=None)
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_seed(seed: str)pyxdc.wallet.Wallet

Master from Seed hex string.

Parameters

seed (str) – Seed hex string.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_seed(seed="09d6f96646d69b3842eecb8f05737972c6c0314d60c203657ae2dad5e8dd88797019ad9938292307de2f4a74018d8797324abab779432eb428aea1855694156b")
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_root_xprivate_key(root_xprivate_key: str)pyxdc.wallet.Wallet

Master from Root XPrivate Key.

Parameters

root_xprivate_key (str) – Root xprivate key.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_root_xprivate_key(root_xprivate_key="xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz")
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_xprivate_key(xprivate_key: str)pyxdc.wallet.Wallet

Master from XPrivate Key.

Parameters

xprivate_key (str) – XPrivate key.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_xprivate_key(xprivate_key="xprvA2oDuneWodkNiecDi8VoBCvu7TSfnDmGqr5oKzkkLWvmE9dm1TQzYcp9HZQLqYTep1T3yykxZgiUSJDZYrvnnL1txNUd3o2y1A1t5xz3d8H")
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_wif(wif: str)pyxdc.wallet.Wallet

Master from Wallet Important Format (WIF).

Parameters

wif (str) – Wallet important format.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_wif(wif="KySR2sF6eTQyYRr3SW12jm5KPycKmgQ9SGUJ7oBQPf1SnvuvJTat")
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_private_key(private_key: str)pyxdc.wallet.Wallet

Master from Private Key.

Parameters

private_key (str) – Private key.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_private_key(private_key="4235d9ffc246d488d527177b654e7dd5c02f5c5abc2e2054038d6825224a24de")
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_path(path: str)pyxdc.wallet.Wallet

Derivation from Path.

Parameters

path (str) – Derivation path.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_root_xprivate_key(root_xprivate_key="xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz")
>>> wallet.from_path(path="m/44'/550'/'0/0/0")
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
from_index(index: int, hardened: bool = False)pyxdc.wallet.Wallet

Derivation from Index.

Parameters
  • index (int) – Derivation index.

  • hardened (bool) – Hardened address, default to False.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_root_xprivate_key(root_xprivate_key="xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz")
>>> wallet.from_index(index=44, hardened=True)
>>> wallet.from_index(index=550, hardened=True)
>>> wallet.from_index(index=0, hardened=True)
>>> wallet.from_index(index=0)
>>> wallet.from_index(index=0)
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
root_xprivate_key(encoded: bool = True)Optional[str]

Get Root XPrivate Key.

Parameters

encoded (bool) – Encoded root xprivate key, default to True.

Returns

str – Root XPrivate Key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/'0/0/0")
>>> wallet.root_xprivate_key()
"xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz"
root_xpublic_key(encoded: bool = True)Optional[str]

Get Root XPublic Key.

Parameters

encoded (bool) – Encoded root xpublic key, default to True.

Returns

str – Root XPublic Key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/'0/0/0")
>>> wallet.root_xpublic_key()
"xpub661MyMwAqRbcGCEJcvCiXitgL4Ypa53B2kCofr36SJeQRfVv7hAFQfFio7Qn9R25GrPZZKvvjERGLPBTDWxhyBnkfKpHoQarBxgpqXgtq6X"
xprivate_key(encoded=True)Optional[str]

Get XPrivate Key.

Parameters

encoded (bool) – Encoded xprivate key, default to True.

Returns

str – Root XPrivate Key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.xprivate_key()
"xprvA2oDuneWodkNiecDi8VoBCvu7TSfnDmGqr5oKzkkLWvmE9dm1TQzYcp9HZQLqYTep1T3yykxZgiUSJDZYrvnnL1txNUd3o2y1A1t5xz3d8H"
xpublic_key(encoded: bool = True)Optional[str]

Get XPublic Key.

Parameters

encoded (bool) – Encoded xpublic key, default to True.

Returns

str – XPublic Key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.xpublic_key()
"xpub6FnaKJBQe1Jfw8ggpA2oYLsdfVHABgV8D51Q8PAMtrTk6wxuYzjF6R8d8sX2mAkeqHnGLSuqcGDtsLFtmk8pSSkPeTbRsRBA3LpMSS1c3LE"
clean_derivation()pyxdc.wallet.Wallet

Clean derivation Path or Indexes.

Returns

Wallet – Wallet instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_root_xprivate_key(root_xprivate_key="xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz")
>>> wallet.from_path(path="m/44'/550'/'0/0/0")
>>> wallet.path()
"m/44'/550'/'0/0/0"
>>> wallet.clean_derivation()
<pyxdc.wallet.Wallet object at 0x000001E8BFB98D60>
>>> wallet.path()
None
uncompressed()str

Get Uncommpresed Public Key.

Returns

str – Uncommpresed public key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.uncompressed()
"d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc850af47d43f0d7e156dca7e9ab885a507fc8ccd36e69090f037243daf299db401d"
compressed()str

Get Commpresed Public Key.

Returns

str – Commpresed public key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.compressed()
"03d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc85"
private_key()str

Get Private Key.

Returns

str – Private key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.private_key()
"4235d9ffc246d488d527177b654e7dd5c02f5c5abc2e2054038d6825224a24de"
public_key(private_key: Optional[str] = None)str

Get Public Key.

Returns

str – Public key.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.public_key()
"03d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc85"
strength()Optional[int]

Get Entropy strength.

Returns

int – Entropy strength.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.strength()
160
entropy()Optional[str]

Get Entropy hex string.

Returns

str – Entropy hex string.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.entropy()
"b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e"
mnemonic()Optional[str]

Get Mnemonic words.

Returns

str – Mnemonic words.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.mnemonic()
"venture fitness paper little blush april rigid where find volcano fetch crack label polar dash"
passphrase()Optional[str]

Get Entopy/Mnemonic passphrase.

Returns

str – Entopy/Mnemonic passphrase.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e", passphrase="meherett")
>>> wallet.passphrase()
"meherett"
language()Optional[str]

Get Mnemonic language.

Returns

str – Mnemonic language.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.language()
"english"
seed()Optional[str]

Get Seed hex string.

Returns

str – Seed hex string.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.seed()
"09d6f96646d69b3842eecb8f05737972c6c0314d60c203657ae2dad5e8dd88797019ad9938292307de2f4a74018d8797324abab779432eb428aea1855694156b"
path()Optional[str]

Get Derivation path.

Returns

str – Drivation path.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.path()
"m/44'/550'/0'/0/0"
chain_code()Optional[str]

Get Chain code.

Returns

str – Chain code.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.chain_code()
"fb40b46da06b4940be76a38e1962aa34f362c47ccb16707b5e21e71514a98d93"
static semantic()Optional[str]

Get Extended semantic.

Returns

str – Extended semantic.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.semantic()
"p2pkh"
hash(private_key: Optional[str] = None)

Get Public Key Hash.

Returns

str – Identifier/Hash.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.hash()
"197a8b4ad8fbbe118487e065cc8595bf67845aeb"
finger_print()str

Get Finger print.

Returns

str – Finger print.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.finger_print()
"197a8b4a"
address(prefix: str = 'xdc')str

Get Address.

Returns

str – XinFin Address.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.address()
"xdc9Cd6fD3519b259B251d881361CAae6BABdC5910b"
wif()str

Get Wallet Important Format.

Returns

str – Wallet Important Format.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.wif()
"KySR2sF6eTQyYRr3SW12jm5KPycKmgQ9SGUJ7oBQPf1SnvuvJTat"
balance(unit: str = 'Wei')Union[int, float]

Get XinFin wallet balance.

Parameters

unit (str) – XinFIn unit, default to Wei.

Returns

int, float – XinFin balance (XDC, Gwei, Wei).

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.balance()
2450000000
sign(message: Optional[str] = None, message_hash: Optional[str] = None)str

Sign message data by private key.

Parameters
  • message (str.) – Message data, default to None.

  • message_hash (str.) – Message data hash, default to None.

Returns

str – Signed message data (signature).

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> message = "1246b84985e1ab5f83f4ec2bdf271114666fd3d9e24d12981a3c861b9ed523c6"
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.sign(message=message)
"9c3a1322cab0e70147c85e47bdc3ce7d719130b70857bb7ac633e9bd7a76f3b8d76eddd83f1a5d229a34491b7e26aaae21a091920b12ce81c618cbb1f5accf4a"
verify(signature: str, message: Optional[str] = None, message_hash: Optional[str] = None)bool

Verify signature by public key.

Parameters
  • signature (str.) – Signed message data.

  • message (str.) – Message data, default to None.

  • message_hash (str.) – Message data hash, default to None.

Returns

bool – Verified signature (True/False).

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> message = "1246b84985e1ab5f83f4ec2bdf271114666fd3d9e24d12981a3c861b9ed523c6"
>>> signature = "9c3a1322cab0e70147c85e47bdc3ce7d719130b70857bb7ac633e9bd7a76f3b8d76eddd83f1a5d229a34491b7e26aaae21a091920b12ce81c618cbb1f5accf4a"
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.verify(message=message, signature=signature)
True
dumps()dict

Get All Wallet imformations.

Returns

dict – All Wallet imformations.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.wallet import Wallet
>>> wallet: Wallet = Wallet(provider=HTTP_PROVIDER)
>>> wallet.from_entropy(entropy="b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e")
>>> wallet.from_path(path="m/44'/550'/0'/0/0")
>>> wallet.dumps()
{'strength': 160, 'entropy': 'b64dc1c3c3d5b876a94006d49c1e4ed2f106b86e', 'mnemonic': 'rent host ill marble fortune deputy pink absorb stand thought neck planet away found robust', 'language': 'english', 'passphrase': None, 'seed': '09d6f96646d69b3842eecb8f05737972c6c0314d60c203657ae2dad5e8dd88797019ad9938292307de2f4a74018d8797324abab779432eb428aea1855694156b', 'root_xprivate_key': 'xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz', 'root_xpublic_key': 'xpub661MyMwAqRbcGCEJcvCiXitgL4Ypa53B2kCofr36SJeQRfVv7hAFQfFio7Qn9R25GrPZZKvvjERGLPBTDWxhyBnkfKpHoQarBxgpqXgtq6X', 'xprivate_key': 'xprvA2oDuneWodkNiecDi8VoBCvu7TSfnDmGqr5oKzkkLWvmE9dm1TQzYcp9HZQLqYTep1T3yykxZgiUSJDZYrvnnL1txNUd3o2y1A1t5xz3d8H', 'xpublic_key': 'xpub6FnaKJBQe1Jfw8ggpA2oYLsdfVHABgV8D51Q8PAMtrTk6wxuYzjF6R8d8sX2mAkeqHnGLSuqcGDtsLFtmk8pSSkPeTbRsRBA3LpMSS1c3LE', 'uncompressed': 'd8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc850af47d43f0d7e156dca7e9ab885a507fc8ccd36e69090f037243daf299db401d', 'compressed': '03d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc85', 'chain_code': 'fb40b46da06b4940be76a38e1962aa34f362c47ccb16707b5e21e71514a98d93', 'private_key': '4235d9ffc246d488d527177b654e7dd5c02f5c5abc2e2054038d6825224a24de', 'public_key': '03d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc85', 'wif': 'KySR2sF6eTQyYRr3SW12jm5KPycKmgQ9SGUJ7oBQPf1SnvuvJTat', 'finger_print': '197a8b4a', 'semantic': 'p2pkh', 'path': "m/44'/550'/0'/0/0", 'hash': '197a8b4ad8fbbe118487e065cc8595bf67845aeb', 'address': 'xdc9Cd6fD3519b259B251d881361CAae6BABdC5910b'}

RPC

pyxdc.rpc.get_balance(address: str, provider: Union[web3.providers.rpc.HTTPProvider, web3.providers.websocket.WebsocketProvider] = <web3.providers.rpc.HTTPProvider object>, unit: str = 'Wei')Union[int, float]

Get XinFin balance.

Parameters
  • address (str) – XinFin address.

  • provider (HTTPProvider, WebsocketProvider) – XinFin provider, default to HTTP_PROVIDER.

  • unit (str) – XinFIn unit, default to Wei.

Returns

int, float – XinFin balance (XDC, Gwei, Wei).

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.rpc import get_balance
>>> get_balance(address="xdc70c1eb09363603a3b6391deb2daa6d2561a62f52", provider=HTTP_PROVIDER)
71560900
pyxdc.rpc.get_transaction(transaction_hash: str, headers: dict = {'Accept': 'application/json', 'Content-Type': 'application/json; charset=utf-8', 'User-Agent': 'PyXDC User-Agent v0.1.0'}, timeout: int = 60)dict

Get XinFin transaction detail.

Parameters
  • transaction_hash (str) – XinFin transaction hash.

  • headers (dict) – Request headers, default to common headers.

  • timeout (int) – Request timeout, default to 15.

Returns

dict – XinFin transaction detail.

>>> from pyxdc.rpc import get_transaction
>>> get_transaction(transaction_hash="0xa4d57071427e3310b3e2fb16e7712f8d8aaaafb31ce5fcd6534fc50848905948")
{'hash': '0xa4d57071427e3310b3e2fb16e7712f8d8aaaafb31ce5fcd6534fc50848905948', 'nonce': 0, 'blockHash': '0xb33a804ae10713bf549db8ec749f7d650347613ac784db1a8d17e0cb03741bf0', 'blockNumber': 1, 'transactionIndex': 0, 'from': '0x96cA14396341480E3b6384D1d1397d1f7f5a0AB7', 'to': None, 'value': 0, 'gas': 367400, 'gasPrice': 250000000, 'input': '0x608060405234801561001057600080fd5b506040518060400160405280600581526020017f48656c6c6f0000000000000000000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610166565b82805461006e90610105565b90600052602060002090601f01602090048101928261009057600085556100d7565b82601f106100a957805160ff19168380011785556100d7565b828001600101855582156100d7579182015b828111156100d65782518255916020019190600101906100bb565b5b5090506100e491906100e8565b5090565b5b808211156101015760008160009055506001016100e9565b5090565b6000600282049050600182168061011d57607f821691505b6020821081141561013157610130610137565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61053b806101756000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610062578063ef690cc014610080575b600080fd5b610060600480360381019061005b91906102e3565b61009e565b005b61006a6100b8565b604051610077919061035d565b60405180910390f35b61008861014a565b604051610095919061035d565b60405180910390f35b80600090805190602001906100b49291906101d8565b5050565b6060600080546100c790610433565b80601f01602080910402602001604051908101604052809291908181526020018280546100f390610433565b80156101405780601f1061011557610100808354040283529160200191610140565b820191906000526020600020905b81548152906001019060200180831161012357829003601f168201915b5050505050905090565b6000805461015790610433565b80601f016020809104026020016040519081016040528092919081815260200182805461018390610433565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081565b8280546101e490610433565b90600052602060002090601f016020900481019282610206576000855561024d565b82601f1061021f57805160ff191683800117855561024d565b8280016001018555821561024d579182015b8281111561024c578251825591602001919060010190610231565b5b50905061025a919061025e565b5090565b5b8082111561027757600081600090555060010161025f565b5090565b600061028e610289846103a4565b61037f565b9050828152602081018484840111156102a657600080fd5b6102b18482856103f1565b509392505050565b600082601f8301126102ca57600080fd5b81356102da84826020860161027b565b91505092915050565b6000602082840312156102f557600080fd5b600082013567ffffffffffffffff81111561030f57600080fd5b61031b848285016102b9565b91505092915050565b600061032f826103d5565b61033981856103e0565b9350610349818560208601610400565b610352816104f4565b840191505092915050565b600060208201905081810360008301526103778184610324565b905092915050565b600061038961039a565b90506103958282610465565b919050565b6000604051905090565b600067ffffffffffffffff8211156103bf576103be6104c5565b5b6103c8826104f4565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b82818337600083830152505050565b60005b8381101561041e578082015181840152602081019050610403565b8381111561042d576000848401525b50505050565b6000600282049050600182168061044b57607f821691505b6020821081141561045f5761045e610496565b5b50919050565b61046e826104f4565b810181811067ffffffffffffffff8211171561048d5761048c6104c5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f830116905091905056fea264697066735822122002786b5114bea14354170503b8bffe80a17bb5e4610cb41deca549935965f30864736f6c63430008030033', 'v': 28, 'r': '0xa593dcfd7f7b17f8b22907e9c4b03721312a4d00dfd99f8f7267ccd5eb7d4613', 's': '0x70cd172ae92de7a046dfe28de1db8657f8c3b3ed00c060392fb1d5080646927b'}
pyxdc.rpc.submit_transaction_raw(transaction_raw: str, provider: Union[web3.providers.rpc.HTTPProvider, web3.providers.websocket.WebsocketProvider] = <web3.providers.rpc.HTTPProvider object>)str

Submit XinFin transaction raw.

Parameters
  • transaction_raw (str) – XinFin transaction raw.

  • provider (HTTPProvider, WebsocketProvider) – XinFin provider, default to HTTP_PROVIDER.

Returns

str – XinFin submitted transaction hash.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.rpc import submit_transaction_raw
>>> submit_transaction_raw(transaction_raw="0xf86c02840ee6b280825208943e0a9b2ee8f8341a1aead3e7531d75f1e395f24b8901236efcbcbb340000801ba03084982e4a9dd897d3cc1b2c8cc2d1b106b9d302eb23f6fae7d0e57e53e043f8a0116f13f9ab385f6b53e7821b3335ced924a1ceb88303347cd0af4aa75e6bfb73", provider=HTTP_PROVIDER)
"0x04b3bfb804f2b3329555c6f3a17a794b3f099b6435a9cf58c78609ed93853907"

Transaction

class pyxdc.transaction.Transaction(provider: Union[web3.providers.rpc.HTTPProvider, web3.providers.websocket.WebsocketProvider] = <web3.providers.rpc.HTTPProvider object>)

XinFin Transaction.

Parameters

provider (HTTPProvider, WebsocketProvider) – XinFin provider, default to HTTP_PROVIDER.

Returns

Transaction – XinFin transaction instance.

fee(unit: str = 'Wei')Union[int, float]

Get XinFin transaction fee/gas.

Parameters

unit (str) – XinFIn unit, default to Wei.

Returns

int, float – XinFin transaction fee/gas.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.transaction import NormalTransaction
>>> transaction: NormalTransaction = NormalTransaction(provider=HTTP_PROVIDER)
>>> transaction.build_transaction(...)
>>> transaction.fee()
367400
hash()str

Get XinFin transaction hash.

Returns

str – XinFin transaction hash.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.transaction import NormalTransaction
>>> transaction: NormalTransaction = NormalTransaction(provider=HTTP_PROVIDER)
>>> transaction.build_transaction(...)
>>> transaction.hash()
"2993414225f65390220730d0c1a356c14e91bca76db112d37366df93e364a492"
json()dict

Get XinFin transaction json format.

Returns

dict – XinFin transaction json format.

>>> from pyxdc import WEBSOCKET_PROVIDER
>>> from pyxdc.transaction import ContractTransaction
>>> transaction: ContractTransaction = ContractTransaction(provider=WEBSOCKET_PROVIDER)
>>> transaction.build_transaction(...)
>>> transaction.json()
{'gas': 134320, 'gasPrice': 20000000000, 'chainId': 1337, 'from': '0x053929E43A1eF27E3822E7fb193527edE04C415B', 'nonce': 15, 'value': 100, 'to': '0x9f77B9f27e8Bc8ad0b58FBf99aeA28feEC7eC50b', 'data': '0x335ef5bd00000000000000000000000031aa61a5d8756c84ebdf0f34e01cab90514f2a573a26da82ead15a80533a02696656b14b5dbfd84eb14790f2e1be5e9e45820eeb000000000000000000000000000000000000000000000000000000005ea55961'}
raw()str

Get XinFin transaction raw.

Returns

str – XinFin transaction raw.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.transaction import ContractTransaction
>>> transaction: ContractTransaction = ContractTransaction(provider=HTTP_PROVIDER)
>>> transaction.build_transaction(...)
>>> transaction.raw()
"f8cc0f8504a817c80083020cb0949f77b9f27e8bc8ad0b58fbf99aea28feec7ec50b64b864335ef5bd00000000000000000000000031aa61a5d8756c84ebdf0f34e01cab90514f2a573a26da82ead15a80533a02696656b14b5dbfd84eb14790f2e1be5e9e45820eeb000000000000000000000000000000000000000000000000000000005ea55961820a95a08bae7e0a7481d11518f7771fedc6f25ab5cc85bc24a0767573ce60e52a090c8da04d6efaafedc5096ecc998cdbca5b3ea4fc6b009b44a8041b8c71be5520c3a356"

ContractTransaction

class pyxdc.transaction.ContractTransaction(provider: Union[web3.providers.rpc.HTTPProvider, web3.providers.websocket.WebsocketProvider] = <web3.providers.rpc.HTTPProvider object>)

XinFin Contract Transaction.

Parameters

provider (HTTPProvider, WebsocketProvider) – XinFin provider, default to HTTP_PROVIDER.

Returns

ContractTransaction – XinFin contract transaction instance.

build_transaction(address: str, abi: list, bytecode: str, value: int = 0, gas: Optional[int] = None, estimate_gas: bool = True, gas_price: int = 250000000, *args, **kwargs)pyxdc.transaction.ContractTransaction

Build XinFin contract transaction.

Parameters
  • address (str) – XinFin from address.

  • abi (list) – XinFin smart contact abi.

  • bytecode (str) – XinFin smart contact bytecode.

  • value (int) – XinFin Wei value, defaults to 0.

  • gas (int) – XinFin transaction fee/gas, defaults to None.

  • estimate_gas (bool) – XinFin transaction estimate fee/gas, defaults to True.

  • gas_price (int) – XinFin gas price, defaults to 0.25 Gwei.

Returns

ContractTransaction – XinFin contract transaction instance.

>>> from pyxdc import WEBSOCKET_PROVIDER
>>> from pyxdc.transaction import ContractTransaction
>>> contract_transaction: ContractTransaction = ContractTransaction(provider=WEBSOCKET_PROVIDER)
>>> contract_transaction.build_transaction(address="xdc571ae1504e92fa40f85359efdb188c704a224eac", abi=[...], bytecode="...", value=0, estimate_gas=True)
<pyxdc.transaction.ContractTransaction object at 0x0409DAF0>
sign_transaction(private_key: Optional[str] = None, root_xprivate_key: Optional[str] = None, path: str = "m/44'/550'/0'/0/0")pyxdc.transaction.ContractTransaction

Sign XinFin contract transaction.

Parameters
  • private_key (str) – XinFin private key, default to None.

  • root_xprivate_key (str) – XinFin root xprivate key, default to None.

  • path (str) – XinFin derivation path, default to DEFAULT_PATH.

Returns

ContractTransaction – Signed XinFin contract transaction instance.

>>> from pyxdc import WEBSOCKET_PROVIDER
>>> from pyxdc.transaction import ContractTransaction
>>> contract_transaction: ContractTransaction = ContractTransaction(provider=WEBSOCKET_PROVIDER)
>>> contract_transaction.build_transaction(address="xdc571ae1504e92fa40f85359efdb188c704a224eac", abi=[...], bytecode="...", value=0, estimate_gas=True)
>>> contract_transaction.sign_transaction(private_key="4235d9ffc246d488d527177b654e7dd5c02f5c5abc2e2054038d6825224a24de")
<pyxdc.transaction.ContractTransaction object at 0x0409DAF0>

NormalTransaction

class pyxdc.transaction.NormalTransaction(provider: Union[web3.providers.rpc.HTTPProvider, web3.providers.websocket.WebsocketProvider] = <web3.providers.rpc.HTTPProvider object>)

XinFin Normal Transaction.

Parameters

provider (HTTPProvider, WebsocketProvider) – XinFin provider, default to HTTP_PROVIDER.

Returns

NormalTransaction – XinFin normal transaction instance.

build_transaction(address: str, recipient: str, value: int, gas: Optional[int] = None, estimate_gas: bool = True, gas_price: int = 250000000)pyxdc.transaction.NormalTransaction

Build XinFin normal transaction.

Parameters
  • address (str) – XinFin from address.

  • recipient (str) – Recipients XinFin address.

  • value (int) – XinFin Wei value.

  • gas (int) – XinFin transaction fee/gas, defaults to None.

  • estimate_gas (bool) – XinFin transaction estimate fee/gas, defaults to True.

  • gas_price (int) – XinFin gas price, defaults to 0.25 Gwei.

Returns

NormalTransaction – XinFin normal transaction instance.

>>> from pyxdc import HTTP_PROVIDER
>>> from pyxdc.transaction import NormalTransaction
>>> normal_transaction: NormalTransaction = NormalTransaction(provider=HTTP_PROVIDER)
>>> normal_transaction.build_transaction(address="xdc571ae1504e92fa40f85359efdb188c704a224eac", recipient="xdc3e0a9B2Ee8F8341A1aEaD3E7531d75f1e395F24b", value=1_000_000_000, estimate_gas=True)
<pyxdc.transaction.NormalTransaction object at 0x0409DAF0>
sign_transaction(private_key: Optional[str] = None, root_xprivate_key: Optional[str] = None, path: str = "m/44'/550'/0'/0/0")pyxdc.transaction.NormalTransaction

Sign XinFin normal transaction.

Parameters
  • private_key (str) – XinFin private key, default to None.

  • root_xprivate_key (str) – XinFin root xprivate key, default to None.

  • path (str) – XinFin derivation path, default to DEFAULT_PATH.

Returns

NormalTransaction – Signed XinFin normal transaction instance.

>>> from pyxdc import HTTP_PROVIDER, DEFAULT_PATH
>>> from pyxdc.transaction import NormalTransaction
>>> normal_transaction: NormalTransaction = NormalTransaction(provider=HTTP_PROVIDER)
>>> normal_transaction.build_transaction(address="xdc571ae1504e92fa40f85359efdb188c704a224eac", recipient="xdc3e0a9B2Ee8F8341A1aEaD3E7531d75f1e395F24b", value=1_000_000_000, estimate_gas=True)
>>> normal_transaction.sign_transaction(root_xprivate_key="xprv9s21ZrQH143K3i9qWtfiAawwn2iLAcKKfXHCsTdUsy7RYsAma9qzrrwEwsu9buLocH7qFQmTow5bSysKDmq8VB3hYPQgMTmXAfdmhNdRZYz", path=DEFAULT_PATH)
<pyxdc.transaction.NormalTransaction object at 0x0409DAF0>

Signature

pyxdc.signature.sign(private_key: str, message: Optional[str] = None, message_hash: Optional[str] = None)str

Sign XinFin message data by private key.

Parameters
  • private_key (str.) – XinFin private key.

  • message (str.) – Message data, default to None.

  • message_hash (str.) – Message data hash, default to None.

Returns

str – XinFin signed message or signature.

>>> from pyxdc.signature import sign
>>> sign(private_key="4235d9ffc246d488d527177b654e7dd5c02f5c5abc2e2054038d6825224a24de", message="meherett")
"74ad07a84b87fa3efa2f0e825506fb8bbee41021ca77a30e8ffa2bd66d47d99917d4a0587185e78a051a9cb80ebf65c7d62dbeedb7f9a029f961d70b52a10dc001"
>>> sign(private_key="4235d9ffc246d488d527177b654e7dd5c02f5c5abc2e2054038d6825224a24de", message_hash="4bbbfd0c33fea618f4a9aa75c02fe76e50fa59798af021bc34f7856f3259c685")
"74ad07a84b87fa3efa2f0e825506fb8bbee41021ca77a30e8ffa2bd66d47d99917d4a0587185e78a051a9cb80ebf65c7d62dbeedb7f9a029f961d70b52a10dc001"
pyxdc.signature.verify(public_key: str, signature: str, message: Optional[str] = None, message_hash: Optional[str] = None)bool

Verify XinFin signature by public key.

Parameters
  • public_key (str.) – XinFin public key.

  • signature (str.) – Signed message data.

  • message (str.) – Message data, default to None.

  • message_hash (str.) – Message data hash, default to None.

Returns

bool – Verified signature.

>>> from pyxdc.signature import verify
>>> verify(public_key="03d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc85", message="meherett", signature="74ad07a84b87fa3efa2f0e825506fb8bbee41021ca77a30e8ffa2bd66d47d99917d4a0587185e78a051a9cb80ebf65c7d62dbeedb7f9a029f961d70b52a10dc001")
True
>>> verify(public_key="03d8799336beacc6b2e7f86f46bce4ad5cabf1ec7a0d6241416985e3b29fe1cc85", message_hash="4bbbfd0c33fea618f4a9aa75c02fe76e50fa59798af021bc34f7856f3259c685", signature="74ad07a84b87fa3efa2f0e825506fb8bbee41021ca77a30e8ffa2bd66d47d99917d4a0587185e78a051a9cb80ebf65c7d62dbeedb7f9a029f961d70b52a10dc001")
True

Utils

pyxdc.utils.generate_passphrase(length: int = 32)str

Generate entropy hex string.

Parameters

length (int) – Passphrase length, default to 32.

Returns

str – Passphrase hex string.

>>> from pyxdc.utils import generate_passphrase
>>> generate_passphrase(length=32)
"N39rPfa3QvF2Tm2nPyoBpXNiBFXJywTz"
pyxdc.utils.generate_entropy(strength: int = 128)str

Generate entropy hex string.

Parameters

strength (int) – Entropy strength, default to 128.

Returns

str – Entropy hex string.

>>> from pyxdc.utils import generate_entropy
>>> generate_entropy(strength=128)
"ee535b143b0d9d1f87546f9df0d06b1a"
pyxdc.utils.generate_mnemonic(language: str = 'english', strength: int = 128)str

Generate mnemonic words.

Parameters
  • language (str) – Mnemonic language, default to english.

  • strength (int) – Entropy strength, default to 128.

Returns

str – Mnemonic words.

>>> from pyxdc.utils import generate_mnemonic
>>> generate_mnemonic(language="french")
"sceptre capter séquence girafe absolu relatif fleur zoologie muscle sirop saboter parure"
pyxdc.utils.is_entropy(entropy: str)bool

Check entropy hex string.

Parameters

entropy (str) – Mnemonic words.

Returns

bool – Entropy valid/invalid.

>>> from pyxdc.utils import is_entropy
>>> is_entropy(entropy="ee535b143b0d9d1f87546f9df0d06b1a")
True
pyxdc.utils.is_mnemonic(mnemonic: str, language: Optional[str] = None)bool

Check mnemonic words.

Parameters
  • mnemonic (str) – Mnemonic words.

  • language (str) – Mnemonic language, default to None.

Returns

bool – Mnemonic valid/invalid.

>>> from pyxdc.utils import is_mnemonic
>>> is_mnemonic(mnemonic="sceptre capter séquence girafe absolu relatif fleur zoologie muscle sirop saboter parure")
True
pyxdc.utils.is_address(address: str)bool

Check XinFin address.

Parameters

address (str) – XinFin address.

Returns

bool – XinFin valid/invalid address.

>>> from pyxdc.utils import is_address
>>> is_address(address="xdc1ee11011ae12103a488a82dc33e03f337bc93ba7")
True
pyxdc.utils.is_checksum_address(address: str)bool

Check XinFin checksum address.

Parameters

address (str) – XinFin address.

Returns

bool – XinFin valid/invalid checksum address.

>>> from pyxdc.utils import is_checksum_address
>>> is_checksum_address(address="xdc1ee11011ae12103a488a82dc33e03f337bc93ba7")
False
>>> is_checksum_address(address="xdc1Ee11011ae12103a488A82DC33e03f337Bc93ba7")
True
pyxdc.utils.to_checksum_address(address: str, prefix: str = 'xdc')str

To XinFin checksum address.

Parameters
  • address (str) – XinFin address.

  • prefix (str) – XinFin address prefix, default to xdc.

Returns

str – XinFin checksum address.

>>> from pyxdc.utils import is_checksum_address
>>> is_checksum_address(address="xdc1ee11011ae12103a488a82dc33e03f337bc93ba7")
"xdc1Ee11011ae12103a488A82DC33e03f337Bc93ba7"
pyxdc.utils.decode_transaction_raw(transaction_raw: str)dict

Decode XinFin transaction raw.

Parameters

transaction_raw (str) – XinFin transaction raw.

Returns

dict – XinFin decoded transaction.

>>> from pyxdc.utils import decode_transaction_raw
>>> decode_transaction_raw(transaction_raw="0xf90703058504a817c800831e84808080b906b0608060405234801561001057600080fd5b506040518060400160405280600581526020017f48656c6c6f0000000000000000000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610166565b82805461006e90610105565b90600052602060002090601f01602090048101928261009057600085556100d7565b82601f106100a957805160ff19168380011785556100d7565b828001600101855582156100d7579182015b828111156100d65782518255916020019190600101906100bb565b5b5090506100e491906100e8565b5090565b5b808211156101015760008160009055506001016100e9565b5090565b6000600282049050600182168061011d57607f821691505b6020821081141561013157610130610137565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61053b806101756000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610062578063ef690cc014610080575b600080fd5b610060600480360381019061005b91906102e3565b61009e565b005b61006a6100b8565b604051610077919061035d565b60405180910390f35b61008861014a565b604051610095919061035d565b60405180910390f35b80600090805190602001906100b49291906101d8565b5050565b6060600080546100c790610433565b80601f01602080910402602001604051908101604052809291908181526020018280546100f390610433565b80156101405780601f1061011557610100808354040283529160200191610140565b820191906000526020600020905b81548152906001019060200180831161012357829003601f168201915b5050505050905090565b6000805461015790610433565b80601f016020809104026020016040519081016040528092919081815260200182805461018390610433565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081565b8280546101e490610433565b90600052602060002090601f016020900481019282610206576000855561024d565b82601f1061021f57805160ff191683800117855561024d565b8280016001018555821561024d579182015b8281111561024c578251825591602001919060010190610231565b5b50905061025a919061025e565b5090565b5b8082111561027757600081600090555060010161025f565b5090565b600061028e610289846103a4565b61037f565b9050828152602081018484840111156102a657600080fd5b6102b18482856103f1565b509392505050565b600082601f8301126102ca57600080fd5b81356102da84826020860161027b565b91505092915050565b6000602082840312156102f557600080fd5b600082013567ffffffffffffffff81111561030f57600080fd5b61031b848285016102b9565b91505092915050565b600061032f826103d5565b61033981856103e0565b9350610349818560208601610400565b610352816104f4565b840191505092915050565b600060208201905081810360008301526103778184610324565b905092915050565b600061038961039a565b90506103958282610465565b919050565b6000604051905090565b600067ffffffffffffffff8211156103bf576103be6104c5565b5b6103c8826104f4565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b82818337600083830152505050565b60005b8381101561041e578082015181840152602081019050610403565b8381111561042d576000848401525b50505050565b6000600282049050600182168061044b57607f821691505b6020821081141561045f5761045e610496565b5b50919050565b61046e826104f4565b810181811067ffffffffffffffff8211171561048d5761048c6104c5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f830116905091905056fea264697066735822122002786b5114bea14354170503b8bffe80a17bb5e4610cb41deca549935965f30864736f6c634300080300331ca0f2704e20656acf4b067c23ff6e7e2bf8e9b6f75383c408607fce7f90ef39aedba07612be142f5202b3970ee9b4c821bd95df4eb007735acc9c145b0d204d697f8c")
{'hash': '0x57232e7e3f0e4f5f49cad5074bea10c98ee18efd4371e15c163560b8bc8ebb40', 'from': '0x68bF25F60508C2820d3D72E1806503F0955eFf94', 'to': None, 'nonce': 5, 'gas': 2000000, 'gas_price': 20000000000, 'value': 0, 'data': '0x608060405234801561001057600080fd5b506040518060400160405280600581526020017f48656c6c6f0000000000000000000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610166565b82805461006e90610105565b90600052602060002090601f01602090048101928261009057600085556100d7565b82601f106100a957805160ff19168380011785556100d7565b828001600101855582156100d7579182015b828111156100d65782518255916020019190600101906100bb565b5b5090506100e491906100e8565b5090565b5b808211156101015760008160009055506001016100e9565b5090565b6000600282049050600182168061011d57607f821691505b6020821081141561013157610130610137565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61053b806101756000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610062578063ef690cc014610080575b600080fd5b610060600480360381019061005b91906102e3565b61009e565b005b61006a6100b8565b604051610077919061035d565b60405180910390f35b61008861014a565b604051610095919061035d565b60405180910390f35b80600090805190602001906100b49291906101d8565b5050565b6060600080546100c790610433565b80601f01602080910402602001604051908101604052809291908181526020018280546100f390610433565b80156101405780601f1061011557610100808354040283529160200191610140565b820191906000526020600020905b81548152906001019060200180831161012357829003601f168201915b5050505050905090565b6000805461015790610433565b80601f016020809104026020016040519081016040528092919081815260200182805461018390610433565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081565b8280546101e490610433565b90600052602060002090601f016020900481019282610206576000855561024d565b82601f1061021f57805160ff191683800117855561024d565b8280016001018555821561024d579182015b8281111561024c578251825591602001919060010190610231565b5b50905061025a919061025e565b5090565b5b8082111561027757600081600090555060010161025f565b5090565b600061028e610289846103a4565b61037f565b9050828152602081018484840111156102a657600080fd5b6102b18482856103f1565b509392505050565b600082601f8301126102ca57600080fd5b81356102da84826020860161027b565b91505092915050565b6000602082840312156102f557600080fd5b600082013567ffffffffffffffff81111561030f57600080fd5b61031b848285016102b9565b91505092915050565b600061032f826103d5565b61033981856103e0565b9350610349818560208601610400565b610352816104f4565b840191505092915050565b600060208201905081810360008301526103778184610324565b905092915050565b600061038961039a565b90506103958282610465565b919050565b6000604051905090565b600067ffffffffffffffff8211156103bf576103be6104c5565b5b6103c8826104f4565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b82818337600083830152505050565b60005b8381101561041e578082015181840152602081019050610403565b8381111561042d576000848401525b50505050565b6000600282049050600182168061044b57607f821691505b6020821081141561045f5761045e610496565b5b50919050565b61046e826104f4565b810181811067ffffffffffffffff8211171561048d5761048c6104c5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f830116905091905056fea264697066735822122002786b5114bea14354170503b8bffe80a17bb5e4610cb41deca549935965f30864736f6c63430008030033', 'chain_id': -4, 'r': '0xf2704e20656acf4b067c23ff6e7e2bf8e9b6f75383c408607fce7f90ef39aedb', 's': '0x7612be142f5202b3970ee9b4c821bd95df4eb007735acc9c145b0d204d697f8c', 'v': 28}
pyxdc.utils.get_entropy_strength(entropy: str)int

Get entropy strength.

Parameters

entropy (str) – Entropy hex string.

Returns

int – Entropy strength.

>>> from pyxdc.utils import get_entropy_strength
>>> get_entropy_strength(entropy="ee535b143b0d9d1f87546f9df0d06b1a")
128
pyxdc.utils.get_mnemonic_strength(mnemonic: str, language: Optional[str] = None)int

Get mnemonic strength.

Parameters
  • mnemonic (str) – Mnemonic words.

  • language (str) – Mnemonic language, default to None.

Returns

int – Mnemonic strength.

>>> from pyxdc.utils import get_mnemonic_strength
>>> get_mnemonic_strength(mnemonic="sceptre capter séquence girafe absolu relatif fleur zoologie muscle sirop saboter parure")
128
pyxdc.utils.get_mnemonic_language(mnemonic: str)str

Get mnemonic language.

Parameters

mnemonic (str) – Mnemonic words.

Returns

str – Mnemonic language.

>>> from pyxdc.utils import get_mnemonic_language
>>> get_mnemonic_language(mnemonic="sceptre capter séquence girafe absolu relatif fleur zoologie muscle sirop saboter parure")
"french"
pyxdc.utils.entropy_to_mnemonic(entropy: str, language: str = 'english')str

Get mnemonic from entropy hex string.

Parameters
  • entropy (str) – Entropy hex string.

  • language (str) – Mnemonic language, default to english.

Returns

str – Mnemonic words.

>>> from pyxdc.utils import entropy_to_mnemonic
>>> entropy_to_mnemonic(entropy="ee535b143b0d9d1f87546f9df0d06b1a", language="korean")
"학력 외침 주민 스위치 출연 연습 근본 여전히 울음 액수 귀신 마누라"
pyxdc.utils.mnemonic_to_entropy(mnemonic: str, language: Optional[str] = None)str

Get entropy from mnemonic words.

Parameters
  • mnemonic (str) – Mnemonic words.

  • language (str) – Mnemonic language, default to english.

Returns

str – Enropy hex string.

>>> from pyxdc.utils import mnemonic_to_entropy
>>> mnemonic_to_entropy(mnemonic="학력 외침 주민 스위치 출연 연습 근본 여전히 울음 액수 귀신 마누라", language="korean")
"ee535b143b0d9d1f87546f9df0d06b1a"
pyxdc.utils.amount_unit_converter(amount: Union[int, float], unit: str = 'Wei2XDC')Union[int, float]

XinFin amount unit converter.

Parameters
  • amount (int, float) – XinFIn amount.

  • unit (str) – XinFIn unit, default to Wei2XDC

Returns

int, float – XinFin amount.

>>> from pyxdc.utils import amount_unit_converter
>>> amount_unit_converter(amount=100_000_000, unit="Wei2XDC")
0.1