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>