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