Module moody.m.b_send
Generated wrapper for BSend Solidity contract.
Expand source code
"""Generated wrapper for BSend Solidity contract."""
# pylint: disable=too-many-arguments
import json
from typing import ( # pylint: disable=unused-import
List,
Optional,
Tuple,
Union,
)
from eth_utils import to_checksum_address
from hexbytes import HexBytes
from web3.contract import ContractFunction
from web3.datastructures import AttributeDict
from ..bases import ContractMethod, Validator
from ..tx_params import TxParams
from ...libeb import MiliDoS
# Try to import a custom validator class definition; if there isn't one,
# declare one that we can instantiate for the default argument to the
# constructor for BSend below.
try:
# both mypy and pylint complain about what we're doing here, but this
# works just fine, so their messages have been disabled here.
from . import ( # type: ignore # pylint: disable=import-self
BSendValidator,
)
except ImportError:
class BSendValidator( # type: ignore
Validator
):
"""No-op input validator."""
try:
from .middleware import MIDDLEWARE # type: ignore
except ImportError:
pass
class AddWhitelistAdminMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the addWhitelistAdmin method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, account: str):
"""Validate the inputs to the addWhitelistAdmin method."""
self.validator.assert_valid(
method_name='addWhitelistAdmin',
parameter_name='account',
argument_value=account,
)
account = self.validate_and_checksum_address(account)
return (account)
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(account) = self.validate_and_normalize_inputs(account)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
self._underlying_method(account).call(tx_params.as_dict())
"""
_fn = self._underlying_method(account)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).transact(tx_params.as_dict())
def build_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).buildTransaction(tx_params.as_dict())
def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).estimateGas(tx_params.as_dict())
class BulkSendTokenMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the bulkSendToken method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, token_addr: str, addresses: List[str], amounts: List[int]):
"""Validate the inputs to the bulkSendToken method."""
self.validator.assert_valid(
method_name='bulkSendToken',
parameter_name='tokenAddr',
argument_value=token_addr,
)
token_addr = self.validate_and_checksum_address(token_addr)
self.validator.assert_valid(
method_name='bulkSendToken',
parameter_name='addresses',
argument_value=addresses,
)
self.validator.assert_valid(
method_name='bulkSendToken',
parameter_name='amounts',
argument_value=amounts,
)
return (token_addr, addresses, amounts)
def block_call(self, token_addr: str, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(token_addr, addresses, amounts).call(tx_params.as_dict())
"""
_fn = self._underlying_method(token_addr, addresses, amounts)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
print(f"===>> enforcement is {enforcereci}")
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
return False
def send_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_addr, addresses, amounts).transact(tx_params.as_dict())
def build_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_addr, addresses, amounts).buildTransaction(tx_params.as_dict())
def estimate_gas(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_addr, addresses, amounts).estimateGas(tx_params.as_dict())
class BulkSendTrxMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the bulkSendTrx method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, addresses: List[str], amounts: List[int]):
"""Validate the inputs to the bulkSendTrx method."""
self.validator.assert_valid(
method_name='bulkSendTrx',
parameter_name='addresses',
argument_value=addresses,
)
self.validator.assert_valid(
method_name='bulkSendTrx',
parameter_name='amounts',
argument_value=amounts,
)
return (addresses, amounts)
def block_call(self, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(addresses, amounts).call(tx_params.as_dict())
"""
_fn = self._underlying_method(addresses, amounts)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addresses, amounts).transact(tx_params.as_dict())
def build_transaction(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addresses, amounts).buildTransaction(tx_params.as_dict())
def estimate_gas(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addresses, amounts).estimateGas(tx_params.as_dict())
class DepositMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the deposit method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().transact(tx_params.as_dict())
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class EthSendFeeMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the ethSendFee method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
returned = _fn.call({
'from': self._operate
})
return int(returned)
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class GetbalanceMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the getbalance method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, addr: str):
"""Validate the inputs to the getbalance method."""
self.validator.assert_valid(
method_name='getbalance',
parameter_name='addr',
argument_value=addr,
)
addr = self.validate_and_checksum_address(addr)
return (addr)
def block_call(self, addr: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
(addr) = self.validate_and_normalize_inputs(addr)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(addr).call(tx_params.as_dict())
"""
_fn = self._underlying_method(addr)
returned = _fn.call({
'from': self._operate
})
return int(returned)
def estimate_gas(self, addr: str, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(addr) = self.validate_and_normalize_inputs(addr)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addr).estimateGas(tx_params.as_dict())
class IsLockedMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the isLocked method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
returned = _fn.call({
'from': self._operate
})
return bool(returned)
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class IsOwnerMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the isOwner method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
returned = _fn.call({
'from': self._operate
})
return bool(returned)
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class IsWhitelistAdminMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the isWhitelistAdmin method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, account: str):
"""Validate the inputs to the isWhitelistAdmin method."""
self.validator.assert_valid(
method_name='isWhitelistAdmin',
parameter_name='account',
argument_value=account,
)
account = self.validate_and_checksum_address(account)
return (account)
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
(account) = self.validate_and_normalize_inputs(account)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(account).call(tx_params.as_dict())
"""
_fn = self._underlying_method(account)
returned = _fn.call({
'from': self._operate
})
return bool(returned)
def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).estimateGas(tx_params.as_dict())
class OwnerMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the owner method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> str:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
returned = _fn.call({
'from': self._operate
})
return str(returned)
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class PulllockMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the pulllock method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().transact(tx_params.as_dict())
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class RemoveWhitelistAdminMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the removeWhitelistAdmin method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, account: str):
"""Validate the inputs to the removeWhitelistAdmin method."""
self.validator.assert_valid(
method_name='removeWhitelistAdmin',
parameter_name='account',
argument_value=account,
)
account = self.validate_and_checksum_address(account)
return (account)
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(account) = self.validate_and_normalize_inputs(account)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
self._underlying_method(account).call(tx_params.as_dict())
"""
_fn = self._underlying_method(account)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).transact(tx_params.as_dict())
def build_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).buildTransaction(tx_params.as_dict())
def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(account) = self.validate_and_normalize_inputs(account)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(account).estimateGas(tx_params.as_dict())
class RenounceOwnershipMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the renounceOwnership method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().transact(tx_params.as_dict())
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class SetEthFeeMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the setEthFee method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, eth_send_fee: int):
"""Validate the inputs to the setEthFee method."""
self.validator.assert_valid(
method_name='setEthFee',
parameter_name='_ethSendFee',
argument_value=eth_send_fee,
)
# safeguard against fractional inputs
eth_send_fee = int(eth_send_fee)
return (eth_send_fee)
def block_call(self, eth_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(eth_send_fee).call(tx_params.as_dict())
"""
_fn = self._underlying_method(eth_send_fee)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(eth_send_fee).transact(tx_params.as_dict())
def build_transaction(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(eth_send_fee).buildTransaction(tx_params.as_dict())
def estimate_gas(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(eth_send_fee).estimateGas(tx_params.as_dict())
class SetTokenFeeMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the setTokenFee method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, token_send_fee: int):
"""Validate the inputs to the setTokenFee method."""
self.validator.assert_valid(
method_name='setTokenFee',
parameter_name='_tokenSendFee',
argument_value=token_send_fee,
)
# safeguard against fractional inputs
token_send_fee = int(token_send_fee)
return (token_send_fee)
def block_call(self, token_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(token_send_fee) = self.validate_and_normalize_inputs(token_send_fee)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(token_send_fee).call(tx_params.as_dict())
"""
_fn = self._underlying_method(token_send_fee)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(token_send_fee) = self.validate_and_normalize_inputs(token_send_fee)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_send_fee).transact(tx_params.as_dict())
def build_transaction(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(token_send_fee) = self.validate_and_normalize_inputs(token_send_fee)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_send_fee).buildTransaction(tx_params.as_dict())
def estimate_gas(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(token_send_fee) = self.validate_and_normalize_inputs(token_send_fee)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_send_fee).estimateGas(tx_params.as_dict())
class TokenSendFeeMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the tokenSendFee method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
returned = _fn.call({
'from': self._operate
})
return int(returned)
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class TransferOwnershipMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the transferOwnership method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, new_owner: str):
"""Validate the inputs to the transferOwnership method."""
self.validator.assert_valid(
method_name='transferOwnership',
parameter_name='newOwner',
argument_value=new_owner,
)
new_owner = self.validate_and_checksum_address(new_owner)
return (new_owner)
def block_call(self, new_owner: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(new_owner) = self.validate_and_normalize_inputs(new_owner)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
self._underlying_method(new_owner).call(tx_params.as_dict())
"""
_fn = self._underlying_method(new_owner)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, new_owner: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(new_owner) = self.validate_and_normalize_inputs(new_owner)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(new_owner).transact(tx_params.as_dict())
def build_transaction(self, new_owner: str, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(new_owner) = self.validate_and_normalize_inputs(new_owner)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(new_owner).buildTransaction(tx_params.as_dict())
def estimate_gas(self, new_owner: str, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(new_owner) = self.validate_and_normalize_inputs(new_owner)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(new_owner).estimateGas(tx_params.as_dict())
class UnlockMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the unlock method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction):
"""Persist instance data."""
super().__init__(elib, contract_address)
self._underlying_method = contract_function
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
self._underlying_method().call(tx_params.as_dict())
"""
_fn = self._underlying_method()
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().transact(tx_params.as_dict())
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method().estimateGas(tx_params.as_dict())
class WithdrawEtherMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the withdrawEther method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, addr: str, amount: int):
"""Validate the inputs to the withdrawEther method."""
self.validator.assert_valid(
method_name='withdrawEther',
parameter_name='addr',
argument_value=addr,
)
addr = self.validate_and_checksum_address(addr)
self.validator.assert_valid(
method_name='withdrawEther',
parameter_name='amount',
argument_value=amount,
)
# safeguard against fractional inputs
amount = int(amount)
return (addr, amount)
def block_call(self, addr: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(addr, amount) = self.validate_and_normalize_inputs(addr, amount)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(addr, amount).call(tx_params.as_dict())
"""
_fn = self._underlying_method(addr, amount)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(addr, amount) = self.validate_and_normalize_inputs(addr, amount)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addr, amount).transact(tx_params.as_dict())
def build_transaction(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(addr, amount) = self.validate_and_normalize_inputs(addr, amount)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addr, amount).buildTransaction(tx_params.as_dict())
def estimate_gas(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(addr, amount) = self.validate_and_normalize_inputs(addr, amount)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(addr, amount).estimateGas(tx_params.as_dict())
class WithdrawTokenMethod(ContractMethod): # pylint: disable=invalid-name
"""Various interfaces to the withdrawToken method."""
def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None):
"""Persist instance data."""
super().__init__(elib, contract_address, validator)
self._underlying_method = contract_function
def validate_and_normalize_inputs(self, token_addr: str, to: str, amount: int):
"""Validate the inputs to the withdrawToken method."""
self.validator.assert_valid(
method_name='withdrawToken',
parameter_name='tokenAddr',
argument_value=token_addr,
)
token_addr = self.validate_and_checksum_address(token_addr)
self.validator.assert_valid(
method_name='withdrawToken',
parameter_name='_to',
argument_value=to,
)
to = self.validate_and_checksum_address(to)
self.validator.assert_valid(
method_name='withdrawToken',
parameter_name='_amount',
argument_value=amount,
)
# safeguard against fractional inputs
amount = int(amount)
return (token_addr, to, amount)
def block_call(self, token_addr: str, to: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool:
"""Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
:returns: the return value of the underlying method.
(token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount)
tx_params: Optional[TxParams] = None
tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(token_addr, to, amount).call(tx_params.as_dict())
"""
_fn = self._underlying_method(token_addr, to, amount)
_t = _fn.buildTransaction({
'from': self._operate
})
_t['nonce'] = self._web3_eth.getTransactionCount(self._operate)
if val > 0:
_t['value'] = val
if debug:
print(f"======== Signing ✅ by {self._operate}")
print(f"======== Transaction ✅ check")
print(_t)
if 'data' in _t:
signed = self._web3_eth.account.sign_transaction(_t)
txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction)
if enforcereci is True:
print("======== Wait for confirmation 🚸️")
tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash)
print("======== TX Result ✅")
print(tx_receipt)
if debug:
print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def send_transaction(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]:
"""Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
"""
(token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_addr, to, amount).transact(tx_params.as_dict())
def build_transaction(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> dict:
"""Construct calldata to be used as input to the method."""
(token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_addr, to, amount).buildTransaction(tx_params.as_dict())
def estimate_gas(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> int:
"""Estimate gas consumption of method call."""
(token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount)
tx_params = super().normalize_tx_params(tx_params)
return self._underlying_method(token_addr, to, amount).estimateGas(tx_params.as_dict())
# pylint: disable=too-many-public-methods,too-many-instance-attributes
class BSend:
"""Wrapper class for BSend Solidity contract."""
_fn_add_whitelist_admin: AddWhitelistAdminMethod
"""Constructor-initialized instance of
:class:`AddWhitelistAdminMethod`.
"""
_fn_bulk_send_token: BulkSendTokenMethod
"""Constructor-initialized instance of
:class:`BulkSendTokenMethod`.
"""
_fn_bulk_send_trx: BulkSendTrxMethod
"""Constructor-initialized instance of
:class:`BulkSendTrxMethod`.
"""
_fn_deposit: DepositMethod
"""Constructor-initialized instance of
:class:`DepositMethod`.
"""
_fn_eth_send_fee: EthSendFeeMethod
"""Constructor-initialized instance of
:class:`EthSendFeeMethod`.
"""
_fn_getbalance: GetbalanceMethod
"""Constructor-initialized instance of
:class:`GetbalanceMethod`.
"""
_fn_is_locked: IsLockedMethod
"""Constructor-initialized instance of
:class:`IsLockedMethod`.
"""
_fn_is_owner: IsOwnerMethod
"""Constructor-initialized instance of
:class:`IsOwnerMethod`.
"""
_fn_is_whitelist_admin: IsWhitelistAdminMethod
"""Constructor-initialized instance of
:class:`IsWhitelistAdminMethod`.
"""
_fn_owner: OwnerMethod
"""Constructor-initialized instance of
:class:`OwnerMethod`.
"""
_fn_pulllock: PulllockMethod
"""Constructor-initialized instance of
:class:`PulllockMethod`.
"""
_fn_remove_whitelist_admin: RemoveWhitelistAdminMethod
"""Constructor-initialized instance of
:class:`RemoveWhitelistAdminMethod`.
"""
_fn_renounce_ownership: RenounceOwnershipMethod
"""Constructor-initialized instance of
:class:`RenounceOwnershipMethod`.
"""
_fn_set_eth_fee: SetEthFeeMethod
"""Constructor-initialized instance of
:class:`SetEthFeeMethod`.
"""
_fn_set_token_fee: SetTokenFeeMethod
"""Constructor-initialized instance of
:class:`SetTokenFeeMethod`.
"""
_fn_token_send_fee: TokenSendFeeMethod
"""Constructor-initialized instance of
:class:`TokenSendFeeMethod`.
"""
_fn_transfer_ownership: TransferOwnershipMethod
"""Constructor-initialized instance of
:class:`TransferOwnershipMethod`.
"""
_fn_unlock: UnlockMethod
"""Constructor-initialized instance of
:class:`UnlockMethod`.
"""
_fn_withdraw_ether: WithdrawEtherMethod
"""Constructor-initialized instance of
:class:`WithdrawEtherMethod`.
"""
_fn_withdraw_token: WithdrawTokenMethod
"""Constructor-initialized instance of
:class:`WithdrawTokenMethod`.
"""
def __init__(
self,
core_lib: MiliDoS,
contract_address: str,
validator: BSendValidator = None,
):
"""Get an instance of wrapper for smart contract.
"""
# pylint: disable=too-many-statements
self.contract_address = contract_address
web3 = core_lib.w3
if not validator:
validator = BSendValidator(web3, contract_address)
# if any middleware was imported, inject it
try:
MIDDLEWARE
except NameError:
pass
else:
try:
for middleware in MIDDLEWARE:
web3.middleware_onion.inject(
middleware['function'], layer=middleware['layer'],
)
except ValueError as value_error:
if value_error.args == ("You can't add the same un-named instance twice",):
pass
self._web3_eth = web3.eth
functions = self._web3_eth.contract(address=to_checksum_address(contract_address), abi=BSend.abi()).functions
self.call_contract_fee_amount: int = 100000000000000000
self.call_contract_debug_flag: bool = False
self.call_contract_enforce_tx_receipt: bool = False
self._fn_add_whitelist_admin = AddWhitelistAdminMethod(core_lib, contract_address, functions.addWhitelistAdmin, validator)
self._fn_bulk_send_token = BulkSendTokenMethod(core_lib, contract_address, functions.bulkSendToken, validator)
self._fn_bulk_send_trx = BulkSendTrxMethod(core_lib, contract_address, functions.bulkSendTrx, validator)
self._fn_deposit = DepositMethod(core_lib, contract_address, functions.deposit)
self._fn_eth_send_fee = EthSendFeeMethod(core_lib, contract_address, functions.ethSendFee)
self._fn_getbalance = GetbalanceMethod(core_lib, contract_address, functions.getbalance, validator)
self._fn_is_locked = IsLockedMethod(core_lib, contract_address, functions.isLocked)
self._fn_is_owner = IsOwnerMethod(core_lib, contract_address, functions.isOwner)
self._fn_is_whitelist_admin = IsWhitelistAdminMethod(core_lib, contract_address, functions.isWhitelistAdmin, validator)
self._fn_owner = OwnerMethod(core_lib, contract_address, functions.owner)
self._fn_pulllock = PulllockMethod(core_lib, contract_address, functions.pulllock)
self._fn_remove_whitelist_admin = RemoveWhitelistAdminMethod(core_lib, contract_address, functions.removeWhitelistAdmin, validator)
self._fn_renounce_ownership = RenounceOwnershipMethod(core_lib, contract_address, functions.renounceOwnership)
self._fn_set_eth_fee = SetEthFeeMethod(core_lib, contract_address, functions.setEthFee, validator)
self._fn_set_token_fee = SetTokenFeeMethod(core_lib, contract_address, functions.setTokenFee, validator)
self._fn_token_send_fee = TokenSendFeeMethod(core_lib, contract_address, functions.tokenSendFee)
self._fn_transfer_ownership = TransferOwnershipMethod(core_lib, contract_address, functions.transferOwnership, validator)
self._fn_unlock = UnlockMethod(core_lib, contract_address, functions.unlock)
self._fn_withdraw_ether = WithdrawEtherMethod(core_lib, contract_address, functions.withdrawEther, validator)
self._fn_withdraw_token = WithdrawTokenMethod(core_lib, contract_address, functions.withdrawToken, validator)
def event_ownership_transferred(
self, tx_hash: Union[HexBytes, bytes]
) -> Tuple[AttributeDict]:
"""
Implementation of event ownership_transferred in contract BSend
Get log entry for OwnershipTransferred event.
:param tx_hash: hash of transaction emitting OwnershipTransferred event
"""
tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash)
return self._web3_eth.contract(address=to_checksum_address(self.contract_address), abi=BSend.abi()).events.OwnershipTransferred().processReceipt(tx_receipt)
def event_traillock(
self, tx_hash: Union[HexBytes, bytes]
) -> Tuple[AttributeDict]:
"""
Implementation of event traillock in contract BSend
Get log entry for traillock event.
:param tx_hash: hash of transaction emitting traillock event
"""
tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash)
return self._web3_eth.contract(address=to_checksum_address(self.contract_address), abi=BSend.abi()).events.traillock().processReceipt(tx_receipt)
def add_whitelist_admin(self, account: str) -> None:
"""
Implementation of add_whitelist_admin in contract BSend
"""
return self._fn_add_whitelist_admin.block_call(account, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def bulk_send_token(self, token_addr: str, addresses: List[str], amounts: List[int], trx: int = 0) -> bool:
"""
Implementation of bulk_send_token in contract BSend
"""
return self._fn_bulk_send_token.block_call(token_addr, addresses, amounts, trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def bulk_send_trx(self, addresses: List[str], amounts: List[int], trx: int = 0) -> bool:
"""
Implementation of bulk_send_trx in contract BSend
"""
return self._fn_bulk_send_trx.block_call(addresses, amounts, trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def deposit(self, trx: int = 0) -> bool:
"""
Implementation of deposit in contract BSend
"""
return self._fn_deposit.block_call(trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def eth_send_fee(self) -> int:
"""
Implementation of eth_send_fee in contract BSend
"""
return self._fn_eth_send_fee.block_call()
def getbalance(self, addr: str) -> int:
"""
Implementation of getbalance in contract BSend
"""
return self._fn_getbalance.block_call(addr)
def is_locked(self) -> bool:
"""
Implementation of is_locked in contract BSend
"""
return self._fn_is_locked.block_call()
def is_owner(self) -> bool:
"""
Implementation of is_owner in contract BSend
"""
return self._fn_is_owner.block_call()
def is_whitelist_admin(self, account: str) -> bool:
"""
Implementation of is_whitelist_admin in contract BSend
"""
return self._fn_is_whitelist_admin.block_call(account)
def owner(self) -> str:
"""
Implementation of owner in contract BSend
"""
return self._fn_owner.block_call()
def pulllock(self) -> None:
"""
Implementation of pulllock in contract BSend
"""
return self._fn_pulllock.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def remove_whitelist_admin(self, account: str) -> None:
"""
Implementation of remove_whitelist_admin in contract BSend
"""
return self._fn_remove_whitelist_admin.block_call(account, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def renounce_ownership(self) -> None:
"""
Implementation of renounce_ownership in contract BSend
"""
return self._fn_renounce_ownership.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def set_eth_fee(self, eth_send_fee: int) -> bool:
"""
Implementation of set_eth_fee in contract BSend
"""
return self._fn_set_eth_fee.block_call(eth_send_fee, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def set_token_fee(self, token_send_fee: int) -> bool:
"""
Implementation of set_token_fee in contract BSend
"""
return self._fn_set_token_fee.block_call(token_send_fee, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def token_send_fee(self) -> int:
"""
Implementation of token_send_fee in contract BSend
"""
return self._fn_token_send_fee.block_call()
def transfer_ownership(self, new_owner: str) -> None:
"""
Implementation of transfer_ownership in contract BSend
"""
return self._fn_transfer_ownership.block_call(new_owner, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def unlock(self) -> None:
"""
Implementation of unlock in contract BSend
"""
return self._fn_unlock.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def withdraw_ether(self, addr: str, amount: int) -> bool:
"""
Implementation of withdraw_ether in contract BSend
"""
return self._fn_withdraw_ether.block_call(addr, amount, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def withdraw_token(self, token_addr: str, to: str, amount: int) -> bool:
"""
Implementation of withdraw_token in contract BSend
"""
return self._fn_withdraw_token.block_call(token_addr, to, amount, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def CallContractFee(self, amount: int) -> "BSend":
self.call_contract_fee_amount = amount
return self
def CallDebug(self, yesno: bool) -> "BSend":
self.call_contract_debug_flag = yesno
return self
def EnforceTxReceipt(self, yesno: bool) -> "BSend":
self.call_contract_enforce_tx_receipt = yesno
return self
@staticmethod
def abi():
"""Return the ABI to the underlying contract."""
return json.loads(
'[{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"value","type":"uint8"}],"name":"traillock","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendTrx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"ethSendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getbalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pulllock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_ethSendFee","type":"uint256"}],"name":"setEthFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenSendFee","type":"uint256"}],"name":"setTokenFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]'
# noqa: E501 (line-too-long)
)
# pylint: disable=too-many-lines
Classes
class AddWhitelistAdminMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the addWhitelistAdmin method.
Persist instance data.
Expand source code
class AddWhitelistAdminMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the addWhitelistAdmin method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, account: str): """Validate the inputs to the addWhitelistAdmin method.""" self.validator.assert_valid( method_name='addWhitelistAdmin', parameter_name='account', argument_value=account, ) account = self.validate_and_checksum_address(account) return (account) def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (account) = self.validate_and_normalize_inputs(account) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method(account).call(tx_params.as_dict()) """ _fn = self._underlying_method(account) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).transact(tx_params.as_dict()) def build_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).buildTransaction(tx_params.as_dict()) def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> NoneType
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(account) = self.validate_and_normalize_inputs(account)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
self._underlying_method(account).call(tx_params.as_dict())
Expand source code
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (account) = self.validate_and_normalize_inputs(account) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method(account).call(tx_params.as_dict()) """ _fn = self._underlying_method(account) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).buildTransaction(tx_params.as_dict())
def estimate_gas(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).estimateGas(tx_params.as_dict())
def send_transaction(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, account: str)
-
Validate the inputs to the addWhitelistAdmin method.
Expand source code
def validate_and_normalize_inputs(self, account: str): """Validate the inputs to the addWhitelistAdmin method.""" self.validator.assert_valid( method_name='addWhitelistAdmin', parameter_name='account', argument_value=account, ) account = self.validate_and_checksum_address(account) return (account)
Inherited members
class BSend (core_lib: MiliDoS, contract_address: str, validator: BSendValidator = None)
-
Wrapper class for BSend Solidity contract.
Get an instance of wrapper for smart contract.
Expand source code
class BSend: """Wrapper class for BSend Solidity contract.""" _fn_add_whitelist_admin: AddWhitelistAdminMethod """Constructor-initialized instance of :class:`AddWhitelistAdminMethod`. """ _fn_bulk_send_token: BulkSendTokenMethod """Constructor-initialized instance of :class:`BulkSendTokenMethod`. """ _fn_bulk_send_trx: BulkSendTrxMethod """Constructor-initialized instance of :class:`BulkSendTrxMethod`. """ _fn_deposit: DepositMethod """Constructor-initialized instance of :class:`DepositMethod`. """ _fn_eth_send_fee: EthSendFeeMethod """Constructor-initialized instance of :class:`EthSendFeeMethod`. """ _fn_getbalance: GetbalanceMethod """Constructor-initialized instance of :class:`GetbalanceMethod`. """ _fn_is_locked: IsLockedMethod """Constructor-initialized instance of :class:`IsLockedMethod`. """ _fn_is_owner: IsOwnerMethod """Constructor-initialized instance of :class:`IsOwnerMethod`. """ _fn_is_whitelist_admin: IsWhitelistAdminMethod """Constructor-initialized instance of :class:`IsWhitelistAdminMethod`. """ _fn_owner: OwnerMethod """Constructor-initialized instance of :class:`OwnerMethod`. """ _fn_pulllock: PulllockMethod """Constructor-initialized instance of :class:`PulllockMethod`. """ _fn_remove_whitelist_admin: RemoveWhitelistAdminMethod """Constructor-initialized instance of :class:`RemoveWhitelistAdminMethod`. """ _fn_renounce_ownership: RenounceOwnershipMethod """Constructor-initialized instance of :class:`RenounceOwnershipMethod`. """ _fn_set_eth_fee: SetEthFeeMethod """Constructor-initialized instance of :class:`SetEthFeeMethod`. """ _fn_set_token_fee: SetTokenFeeMethod """Constructor-initialized instance of :class:`SetTokenFeeMethod`. """ _fn_token_send_fee: TokenSendFeeMethod """Constructor-initialized instance of :class:`TokenSendFeeMethod`. """ _fn_transfer_ownership: TransferOwnershipMethod """Constructor-initialized instance of :class:`TransferOwnershipMethod`. """ _fn_unlock: UnlockMethod """Constructor-initialized instance of :class:`UnlockMethod`. """ _fn_withdraw_ether: WithdrawEtherMethod """Constructor-initialized instance of :class:`WithdrawEtherMethod`. """ _fn_withdraw_token: WithdrawTokenMethod """Constructor-initialized instance of :class:`WithdrawTokenMethod`. """ def __init__( self, core_lib: MiliDoS, contract_address: str, validator: BSendValidator = None, ): """Get an instance of wrapper for smart contract. """ # pylint: disable=too-many-statements self.contract_address = contract_address web3 = core_lib.w3 if not validator: validator = BSendValidator(web3, contract_address) # if any middleware was imported, inject it try: MIDDLEWARE except NameError: pass else: try: for middleware in MIDDLEWARE: web3.middleware_onion.inject( middleware['function'], layer=middleware['layer'], ) except ValueError as value_error: if value_error.args == ("You can't add the same un-named instance twice",): pass self._web3_eth = web3.eth functions = self._web3_eth.contract(address=to_checksum_address(contract_address), abi=BSend.abi()).functions self.call_contract_fee_amount: int = 100000000000000000 self.call_contract_debug_flag: bool = False self.call_contract_enforce_tx_receipt: bool = False self._fn_add_whitelist_admin = AddWhitelistAdminMethod(core_lib, contract_address, functions.addWhitelistAdmin, validator) self._fn_bulk_send_token = BulkSendTokenMethod(core_lib, contract_address, functions.bulkSendToken, validator) self._fn_bulk_send_trx = BulkSendTrxMethod(core_lib, contract_address, functions.bulkSendTrx, validator) self._fn_deposit = DepositMethod(core_lib, contract_address, functions.deposit) self._fn_eth_send_fee = EthSendFeeMethod(core_lib, contract_address, functions.ethSendFee) self._fn_getbalance = GetbalanceMethod(core_lib, contract_address, functions.getbalance, validator) self._fn_is_locked = IsLockedMethod(core_lib, contract_address, functions.isLocked) self._fn_is_owner = IsOwnerMethod(core_lib, contract_address, functions.isOwner) self._fn_is_whitelist_admin = IsWhitelistAdminMethod(core_lib, contract_address, functions.isWhitelistAdmin, validator) self._fn_owner = OwnerMethod(core_lib, contract_address, functions.owner) self._fn_pulllock = PulllockMethod(core_lib, contract_address, functions.pulllock) self._fn_remove_whitelist_admin = RemoveWhitelistAdminMethod(core_lib, contract_address, functions.removeWhitelistAdmin, validator) self._fn_renounce_ownership = RenounceOwnershipMethod(core_lib, contract_address, functions.renounceOwnership) self._fn_set_eth_fee = SetEthFeeMethod(core_lib, contract_address, functions.setEthFee, validator) self._fn_set_token_fee = SetTokenFeeMethod(core_lib, contract_address, functions.setTokenFee, validator) self._fn_token_send_fee = TokenSendFeeMethod(core_lib, contract_address, functions.tokenSendFee) self._fn_transfer_ownership = TransferOwnershipMethod(core_lib, contract_address, functions.transferOwnership, validator) self._fn_unlock = UnlockMethod(core_lib, contract_address, functions.unlock) self._fn_withdraw_ether = WithdrawEtherMethod(core_lib, contract_address, functions.withdrawEther, validator) self._fn_withdraw_token = WithdrawTokenMethod(core_lib, contract_address, functions.withdrawToken, validator) def event_ownership_transferred( self, tx_hash: Union[HexBytes, bytes] ) -> Tuple[AttributeDict]: """ Implementation of event ownership_transferred in contract BSend Get log entry for OwnershipTransferred event. :param tx_hash: hash of transaction emitting OwnershipTransferred event """ tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) return self._web3_eth.contract(address=to_checksum_address(self.contract_address), abi=BSend.abi()).events.OwnershipTransferred().processReceipt(tx_receipt) def event_traillock( self, tx_hash: Union[HexBytes, bytes] ) -> Tuple[AttributeDict]: """ Implementation of event traillock in contract BSend Get log entry for traillock event. :param tx_hash: hash of transaction emitting traillock event """ tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) return self._web3_eth.contract(address=to_checksum_address(self.contract_address), abi=BSend.abi()).events.traillock().processReceipt(tx_receipt) def add_whitelist_admin(self, account: str) -> None: """ Implementation of add_whitelist_admin in contract BSend """ return self._fn_add_whitelist_admin.block_call(account, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def bulk_send_token(self, token_addr: str, addresses: List[str], amounts: List[int], trx: int = 0) -> bool: """ Implementation of bulk_send_token in contract BSend """ return self._fn_bulk_send_token.block_call(token_addr, addresses, amounts, trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def bulk_send_trx(self, addresses: List[str], amounts: List[int], trx: int = 0) -> bool: """ Implementation of bulk_send_trx in contract BSend """ return self._fn_bulk_send_trx.block_call(addresses, amounts, trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def deposit(self, trx: int = 0) -> bool: """ Implementation of deposit in contract BSend """ return self._fn_deposit.block_call(trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def eth_send_fee(self) -> int: """ Implementation of eth_send_fee in contract BSend """ return self._fn_eth_send_fee.block_call() def getbalance(self, addr: str) -> int: """ Implementation of getbalance in contract BSend """ return self._fn_getbalance.block_call(addr) def is_locked(self) -> bool: """ Implementation of is_locked in contract BSend """ return self._fn_is_locked.block_call() def is_owner(self) -> bool: """ Implementation of is_owner in contract BSend """ return self._fn_is_owner.block_call() def is_whitelist_admin(self, account: str) -> bool: """ Implementation of is_whitelist_admin in contract BSend """ return self._fn_is_whitelist_admin.block_call(account) def owner(self) -> str: """ Implementation of owner in contract BSend """ return self._fn_owner.block_call() def pulllock(self) -> None: """ Implementation of pulllock in contract BSend """ return self._fn_pulllock.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def remove_whitelist_admin(self, account: str) -> None: """ Implementation of remove_whitelist_admin in contract BSend """ return self._fn_remove_whitelist_admin.block_call(account, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def renounce_ownership(self) -> None: """ Implementation of renounce_ownership in contract BSend """ return self._fn_renounce_ownership.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def set_eth_fee(self, eth_send_fee: int) -> bool: """ Implementation of set_eth_fee in contract BSend """ return self._fn_set_eth_fee.block_call(eth_send_fee, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def set_token_fee(self, token_send_fee: int) -> bool: """ Implementation of set_token_fee in contract BSend """ return self._fn_set_token_fee.block_call(token_send_fee, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def token_send_fee(self) -> int: """ Implementation of token_send_fee in contract BSend """ return self._fn_token_send_fee.block_call() def transfer_ownership(self, new_owner: str) -> None: """ Implementation of transfer_ownership in contract BSend """ return self._fn_transfer_ownership.block_call(new_owner, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def unlock(self) -> None: """ Implementation of unlock in contract BSend """ return self._fn_unlock.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def withdraw_ether(self, addr: str, amount: int) -> bool: """ Implementation of withdraw_ether in contract BSend """ return self._fn_withdraw_ether.block_call(addr, amount, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def withdraw_token(self, token_addr: str, to: str, amount: int) -> bool: """ Implementation of withdraw_token in contract BSend """ return self._fn_withdraw_token.block_call(token_addr, to, amount, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt) def CallContractFee(self, amount: int) -> "BSend": self.call_contract_fee_amount = amount return self def CallDebug(self, yesno: bool) -> "BSend": self.call_contract_debug_flag = yesno return self def EnforceTxReceipt(self, yesno: bool) -> "BSend": self.call_contract_enforce_tx_receipt = yesno return self @staticmethod def abi(): """Return the ABI to the underlying contract.""" return json.loads( '[{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"value","type":"uint8"}],"name":"traillock","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendTrx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"ethSendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getbalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pulllock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_ethSendFee","type":"uint256"}],"name":"setEthFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenSendFee","type":"uint256"}],"name":"setTokenFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]' # noqa: E501 (line-too-long) )
Static methods
def abi()
-
Return the ABI to the underlying contract.
Expand source code
@staticmethod def abi(): """Return the ABI to the underlying contract.""" return json.loads( '[{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"value","type":"uint8"}],"name":"traillock","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"bulkSendTrx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"ethSendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getbalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pulllock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_ethSendFee","type":"uint256"}],"name":"setEthFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenSendFee","type":"uint256"}],"name":"setTokenFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]' # noqa: E501 (line-too-long) )
Methods
def CallContractFee(self, amount: int) ‑> BSend
-
Expand source code
def CallContractFee(self, amount: int) -> "BSend": self.call_contract_fee_amount = amount return self
def CallDebug(self, yesno: bool) ‑> BSend
-
Expand source code
def CallDebug(self, yesno: bool) -> "BSend": self.call_contract_debug_flag = yesno return self
def EnforceTxReceipt(self, yesno: bool) ‑> BSend
-
Expand source code
def EnforceTxReceipt(self, yesno: bool) -> "BSend": self.call_contract_enforce_tx_receipt = yesno return self
def add_whitelist_admin(self, account: str) ‑> NoneType
-
Implementation of add_whitelist_admin in contract BSend
Expand source code
def add_whitelist_admin(self, account: str) -> None: """ Implementation of add_whitelist_admin in contract BSend """ return self._fn_add_whitelist_admin.block_call(account, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def bulk_send_token(self, token_addr: str, addresses: List[str], amounts: List[int], trx: int = 0) ‑> bool
-
Implementation of bulk_send_token in contract BSend
Expand source code
def bulk_send_token(self, token_addr: str, addresses: List[str], amounts: List[int], trx: int = 0) -> bool: """ Implementation of bulk_send_token in contract BSend """ return self._fn_bulk_send_token.block_call(token_addr, addresses, amounts, trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def bulk_send_trx(self, addresses: List[str], amounts: List[int], trx: int = 0) ‑> bool
-
Implementation of bulk_send_trx in contract BSend
Expand source code
def bulk_send_trx(self, addresses: List[str], amounts: List[int], trx: int = 0) -> bool: """ Implementation of bulk_send_trx in contract BSend """ return self._fn_bulk_send_trx.block_call(addresses, amounts, trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def deposit(self, trx: int = 0) ‑> bool
-
Implementation of deposit in contract BSend
Expand source code
def deposit(self, trx: int = 0) -> bool: """ Implementation of deposit in contract BSend """ return self._fn_deposit.block_call(trx, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def eth_send_fee(self) ‑> int
-
Implementation of eth_send_fee in contract BSend
Expand source code
def eth_send_fee(self) -> int: """ Implementation of eth_send_fee in contract BSend """ return self._fn_eth_send_fee.block_call()
def event_ownership_transferred(self, tx_hash: Union[hexbytes.main.HexBytes, bytes]) ‑> Tuple[web3.datastructures.AttributeDict]
-
Implementation of event ownership_transferred in contract BSend Get log entry for OwnershipTransferred event. :param tx_hash: hash of transaction emitting OwnershipTransferred event
Expand source code
def event_ownership_transferred( self, tx_hash: Union[HexBytes, bytes] ) -> Tuple[AttributeDict]: """ Implementation of event ownership_transferred in contract BSend Get log entry for OwnershipTransferred event. :param tx_hash: hash of transaction emitting OwnershipTransferred event """ tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) return self._web3_eth.contract(address=to_checksum_address(self.contract_address), abi=BSend.abi()).events.OwnershipTransferred().processReceipt(tx_receipt)
def event_traillock(self, tx_hash: Union[hexbytes.main.HexBytes, bytes]) ‑> Tuple[web3.datastructures.AttributeDict]
-
Implementation of event traillock in contract BSend Get log entry for traillock event. :param tx_hash: hash of transaction emitting traillock event
Expand source code
def event_traillock( self, tx_hash: Union[HexBytes, bytes] ) -> Tuple[AttributeDict]: """ Implementation of event traillock in contract BSend Get log entry for traillock event. :param tx_hash: hash of transaction emitting traillock event """ tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) return self._web3_eth.contract(address=to_checksum_address(self.contract_address), abi=BSend.abi()).events.traillock().processReceipt(tx_receipt)
def getbalance(self, addr: str) ‑> int
-
Implementation of getbalance in contract BSend
Expand source code
def getbalance(self, addr: str) -> int: """ Implementation of getbalance in contract BSend """ return self._fn_getbalance.block_call(addr)
def is_locked(self) ‑> bool
-
Implementation of is_locked in contract BSend
Expand source code
def is_locked(self) -> bool: """ Implementation of is_locked in contract BSend """ return self._fn_is_locked.block_call()
def is_owner(self) ‑> bool
-
Implementation of is_owner in contract BSend
Expand source code
def is_owner(self) -> bool: """ Implementation of is_owner in contract BSend """ return self._fn_is_owner.block_call()
def is_whitelist_admin(self, account: str) ‑> bool
-
Implementation of is_whitelist_admin in contract BSend
Expand source code
def is_whitelist_admin(self, account: str) -> bool: """ Implementation of is_whitelist_admin in contract BSend """ return self._fn_is_whitelist_admin.block_call(account)
def owner(self) ‑> str
-
Implementation of owner in contract BSend
Expand source code
def owner(self) -> str: """ Implementation of owner in contract BSend """ return self._fn_owner.block_call()
def pulllock(self) ‑> NoneType
-
Implementation of pulllock in contract BSend
Expand source code
def pulllock(self) -> None: """ Implementation of pulllock in contract BSend """ return self._fn_pulllock.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def remove_whitelist_admin(self, account: str) ‑> NoneType
-
Implementation of remove_whitelist_admin in contract BSend
Expand source code
def remove_whitelist_admin(self, account: str) -> None: """ Implementation of remove_whitelist_admin in contract BSend """ return self._fn_remove_whitelist_admin.block_call(account, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def renounce_ownership(self) ‑> NoneType
-
Implementation of renounce_ownership in contract BSend
Expand source code
def renounce_ownership(self) -> None: """ Implementation of renounce_ownership in contract BSend """ return self._fn_renounce_ownership.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def set_eth_fee(self, eth_send_fee: int) ‑> bool
-
Implementation of set_eth_fee in contract BSend
Expand source code
def set_eth_fee(self, eth_send_fee: int) -> bool: """ Implementation of set_eth_fee in contract BSend """ return self._fn_set_eth_fee.block_call(eth_send_fee, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def set_token_fee(self, token_send_fee: int) ‑> bool
-
Implementation of set_token_fee in contract BSend
Expand source code
def set_token_fee(self, token_send_fee: int) -> bool: """ Implementation of set_token_fee in contract BSend """ return self._fn_set_token_fee.block_call(token_send_fee, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def token_send_fee(self) ‑> int
-
Implementation of token_send_fee in contract BSend
Expand source code
def token_send_fee(self) -> int: """ Implementation of token_send_fee in contract BSend """ return self._fn_token_send_fee.block_call()
def transfer_ownership(self, new_owner: str) ‑> NoneType
-
Implementation of transfer_ownership in contract BSend
Expand source code
def transfer_ownership(self, new_owner: str) -> None: """ Implementation of transfer_ownership in contract BSend """ return self._fn_transfer_ownership.block_call(new_owner, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def unlock(self) ‑> NoneType
-
Implementation of unlock in contract BSend
Expand source code
def unlock(self) -> None: """ Implementation of unlock in contract BSend """ return self._fn_unlock.block_call(0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def withdraw_ether(self, addr: str, amount: int) ‑> bool
-
Implementation of withdraw_ether in contract BSend
Expand source code
def withdraw_ether(self, addr: str, amount: int) -> bool: """ Implementation of withdraw_ether in contract BSend """ return self._fn_withdraw_ether.block_call(addr, amount, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
def withdraw_token(self, token_addr: str, to: str, amount: int) ‑> bool
-
Implementation of withdraw_token in contract BSend
Expand source code
def withdraw_token(self, token_addr: str, to: str, amount: int) -> bool: """ Implementation of withdraw_token in contract BSend """ return self._fn_withdraw_token.block_call(token_addr, to, amount, 0, self.call_contract_fee_amount, self.call_contract_debug_flag, self.call_contract_enforce_tx_receipt)
class BSendValidator (web3_or_provider: web3.main.Web3, contract_address: str)
-
No-op input validator.
Initialize the instance.
Expand source code
class BSendValidator( # type: ignore Validator ): """No-op input validator."""
Ancestors
Inherited members
class BulkSendTokenMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the bulkSendToken method.
Persist instance data.
Expand source code
class BulkSendTokenMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the bulkSendToken method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, token_addr: str, addresses: List[str], amounts: List[int]): """Validate the inputs to the bulkSendToken method.""" self.validator.assert_valid( method_name='bulkSendToken', parameter_name='tokenAddr', argument_value=token_addr, ) token_addr = self.validate_and_checksum_address(token_addr) self.validator.assert_valid( method_name='bulkSendToken', parameter_name='addresses', argument_value=addresses, ) self.validator.assert_valid( method_name='bulkSendToken', parameter_name='amounts', argument_value=amounts, ) return (token_addr, addresses, amounts) def block_call(self, token_addr: str, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(token_addr, addresses, amounts).call(tx_params.as_dict()) """ _fn = self._underlying_method(token_addr, addresses, amounts) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) print(f"===>> enforcement is {enforcereci}") if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") return False def send_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, addresses, amounts).transact(tx_params.as_dict()) def build_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, addresses, amounts).buildTransaction(tx_params.as_dict()) def estimate_gas(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, addresses, amounts).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, token_addr: str, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(token_addr, addresses, amounts).call(tx_params.as_dict())
Expand source code
def block_call(self, token_addr: str, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(token_addr, addresses, amounts).call(tx_params.as_dict()) """ _fn = self._underlying_method(token_addr, addresses, amounts) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) print(f"===>> enforcement is {enforcereci}") if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") return False
def build_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, addresses, amounts).buildTransaction(tx_params.as_dict())
def estimate_gas(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, addresses, amounts).estimateGas(tx_params.as_dict())
def send_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, token_addr: str, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (token_addr, addresses, amounts) = self.validate_and_normalize_inputs(token_addr, addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, addresses, amounts).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, token_addr: str, addresses: List[str], amounts: List[int])
-
Validate the inputs to the bulkSendToken method.
Expand source code
def validate_and_normalize_inputs(self, token_addr: str, addresses: List[str], amounts: List[int]): """Validate the inputs to the bulkSendToken method.""" self.validator.assert_valid( method_name='bulkSendToken', parameter_name='tokenAddr', argument_value=token_addr, ) token_addr = self.validate_and_checksum_address(token_addr) self.validator.assert_valid( method_name='bulkSendToken', parameter_name='addresses', argument_value=addresses, ) self.validator.assert_valid( method_name='bulkSendToken', parameter_name='amounts', argument_value=amounts, ) return (token_addr, addresses, amounts)
Inherited members
class BulkSendTrxMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the bulkSendTrx method.
Persist instance data.
Expand source code
class BulkSendTrxMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the bulkSendTrx method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, addresses: List[str], amounts: List[int]): """Validate the inputs to the bulkSendTrx method.""" self.validator.assert_valid( method_name='bulkSendTrx', parameter_name='addresses', argument_value=addresses, ) self.validator.assert_valid( method_name='bulkSendTrx', parameter_name='amounts', argument_value=amounts, ) return (addresses, amounts) def block_call(self, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(addresses, amounts).call(tx_params.as_dict()) """ _fn = self._underlying_method(addresses, amounts) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addresses, amounts).transact(tx_params.as_dict()) def build_transaction(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addresses, amounts).buildTransaction(tx_params.as_dict()) def estimate_gas(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addresses, amounts).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(addresses, amounts).call(tx_params.as_dict())
Expand source code
def block_call(self, addresses: List[str], amounts: List[int], val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(addresses, amounts).call(tx_params.as_dict()) """ _fn = self._underlying_method(addresses, amounts) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, addresses: List[str], amounts: List[int], tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addresses, amounts).buildTransaction(tx_params.as_dict())
def estimate_gas(self, addresses: List[str], amounts: List[int], tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addresses, amounts).estimateGas(tx_params.as_dict())
def send_transaction(self, addresses: List[str], amounts: List[int], tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, addresses: List[str], amounts: List[int], tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (addresses, amounts) = self.validate_and_normalize_inputs(addresses, amounts) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addresses, amounts).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, addresses: List[str], amounts: List[int])
-
Validate the inputs to the bulkSendTrx method.
Expand source code
def validate_and_normalize_inputs(self, addresses: List[str], amounts: List[int]): """Validate the inputs to the bulkSendTrx method.""" self.validator.assert_valid( method_name='bulkSendTrx', parameter_name='addresses', argument_value=addresses, ) self.validator.assert_valid( method_name='bulkSendTrx', parameter_name='amounts', argument_value=amounts, ) return (addresses, amounts)
Inherited members
class DepositMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the deposit method.
Persist instance data.
Expand source code
class DepositMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the deposit method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict()) def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict()) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
def send_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict())
Inherited members
class EthSendFeeMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the ethSendFee method.
Persist instance data.
Expand source code
class EthSendFeeMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the ethSendFee method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return int(returned) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> int
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return int(returned)
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Inherited members
class GetbalanceMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the getbalance method.
Persist instance data.
Expand source code
class GetbalanceMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the getbalance method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, addr: str): """Validate the inputs to the getbalance method.""" self.validator.assert_valid( method_name='getbalance', parameter_name='addr', argument_value=addr, ) addr = self.validate_and_checksum_address(addr) return (addr) def block_call(self, addr: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters (addr) = self.validate_and_normalize_inputs(addr) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(addr).call(tx_params.as_dict()) """ _fn = self._underlying_method(addr) returned = _fn.call({ 'from': self._operate }) return int(returned) def estimate_gas(self, addr: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (addr) = self.validate_and_normalize_inputs(addr) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, addr: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> int
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
(addr) = self.validate_and_normalize_inputs(addr)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(addr).call(tx_params.as_dict())
Expand source code
def block_call(self, addr: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters (addr) = self.validate_and_normalize_inputs(addr) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(addr).call(tx_params.as_dict()) """ _fn = self._underlying_method(addr) returned = _fn.call({ 'from': self._operate }) return int(returned)
def estimate_gas(self, addr: str, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, addr: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (addr) = self.validate_and_normalize_inputs(addr) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr).estimateGas(tx_params.as_dict())
def validate_and_normalize_inputs(self, addr: str)
-
Validate the inputs to the getbalance method.
Expand source code
def validate_and_normalize_inputs(self, addr: str): """Validate the inputs to the getbalance method.""" self.validator.assert_valid( method_name='getbalance', parameter_name='addr', argument_value=addr, ) addr = self.validate_and_checksum_address(addr) return (addr)
Inherited members
class IsLockedMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the isLocked method.
Persist instance data.
Expand source code
class IsLockedMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the isLocked method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return bool(returned) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return bool(returned)
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Inherited members
class IsOwnerMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the isOwner method.
Persist instance data.
Expand source code
class IsOwnerMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the isOwner method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return bool(returned) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return bool(returned)
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Inherited members
class IsWhitelistAdminMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the isWhitelistAdmin method.
Persist instance data.
Expand source code
class IsWhitelistAdminMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the isWhitelistAdmin method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, account: str): """Validate the inputs to the isWhitelistAdmin method.""" self.validator.assert_valid( method_name='isWhitelistAdmin', parameter_name='account', argument_value=account, ) account = self.validate_and_checksum_address(account) return (account) def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters (account) = self.validate_and_normalize_inputs(account) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(account).call(tx_params.as_dict()) """ _fn = self._underlying_method(account) returned = _fn.call({ 'from': self._operate }) return bool(returned) def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
(account) = self.validate_and_normalize_inputs(account)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(account).call(tx_params.as_dict())
Expand source code
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters (account) = self.validate_and_normalize_inputs(account) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(account).call(tx_params.as_dict()) """ _fn = self._underlying_method(account) returned = _fn.call({ 'from': self._operate }) return bool(returned)
def estimate_gas(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).estimateGas(tx_params.as_dict())
def validate_and_normalize_inputs(self, account: str)
-
Validate the inputs to the isWhitelistAdmin method.
Expand source code
def validate_and_normalize_inputs(self, account: str): """Validate the inputs to the isWhitelistAdmin method.""" self.validator.assert_valid( method_name='isWhitelistAdmin', parameter_name='account', argument_value=account, ) account = self.validate_and_checksum_address(account) return (account)
Inherited members
class OwnerMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the owner method.
Persist instance data.
Expand source code
class OwnerMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the owner method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> str: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return str(returned) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> str
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> str: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return str(returned)
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Inherited members
class PulllockMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the pulllock method.
Persist instance data.
Expand source code
class PulllockMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the pulllock method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict()) def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict()) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> NoneType
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
def send_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict())
Inherited members
class RemoveWhitelistAdminMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the removeWhitelistAdmin method.
Persist instance data.
Expand source code
class RemoveWhitelistAdminMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the removeWhitelistAdmin method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, account: str): """Validate the inputs to the removeWhitelistAdmin method.""" self.validator.assert_valid( method_name='removeWhitelistAdmin', parameter_name='account', argument_value=account, ) account = self.validate_and_checksum_address(account) return (account) def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (account) = self.validate_and_normalize_inputs(account) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method(account).call(tx_params.as_dict()) """ _fn = self._underlying_method(account) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).transact(tx_params.as_dict()) def build_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).buildTransaction(tx_params.as_dict()) def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> NoneType
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(account) = self.validate_and_normalize_inputs(account)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
self._underlying_method(account).call(tx_params.as_dict())
Expand source code
def block_call(self, account: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (account) = self.validate_and_normalize_inputs(account) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method(account).call(tx_params.as_dict()) """ _fn = self._underlying_method(account) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).buildTransaction(tx_params.as_dict())
def estimate_gas(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, account: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).estimateGas(tx_params.as_dict())
def send_transaction(self, account: str, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, account: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (account) = self.validate_and_normalize_inputs(account) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(account).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, account: str)
-
Validate the inputs to the removeWhitelistAdmin method.
Expand source code
def validate_and_normalize_inputs(self, account: str): """Validate the inputs to the removeWhitelistAdmin method.""" self.validator.assert_valid( method_name='removeWhitelistAdmin', parameter_name='account', argument_value=account, ) account = self.validate_and_checksum_address(account) return (account)
Inherited members
class RenounceOwnershipMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the renounceOwnership method.
Persist instance data.
Expand source code
class RenounceOwnershipMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the renounceOwnership method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict()) def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict()) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> NoneType
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
def send_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict())
Inherited members
class SetEthFeeMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the setEthFee method.
Persist instance data.
Expand source code
class SetEthFeeMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the setEthFee method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, eth_send_fee: int): """Validate the inputs to the setEthFee method.""" self.validator.assert_valid( method_name='setEthFee', parameter_name='_ethSendFee', argument_value=eth_send_fee, ) # safeguard against fractional inputs eth_send_fee = int(eth_send_fee) return (eth_send_fee) def block_call(self, eth_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(eth_send_fee).call(tx_params.as_dict()) """ _fn = self._underlying_method(eth_send_fee) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(eth_send_fee).transact(tx_params.as_dict()) def build_transaction(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(eth_send_fee).buildTransaction(tx_params.as_dict()) def estimate_gas(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(eth_send_fee).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, eth_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(eth_send_fee).call(tx_params.as_dict())
Expand source code
def block_call(self, eth_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(eth_send_fee).call(tx_params.as_dict()) """ _fn = self._underlying_method(eth_send_fee) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, eth_send_fee: int, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(eth_send_fee).buildTransaction(tx_params.as_dict())
def estimate_gas(self, eth_send_fee: int, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(eth_send_fee).estimateGas(tx_params.as_dict())
def send_transaction(self, eth_send_fee: int, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, eth_send_fee: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (eth_send_fee) = self.validate_and_normalize_inputs(eth_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(eth_send_fee).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, eth_send_fee: int)
-
Validate the inputs to the setEthFee method.
Expand source code
def validate_and_normalize_inputs(self, eth_send_fee: int): """Validate the inputs to the setEthFee method.""" self.validator.assert_valid( method_name='setEthFee', parameter_name='_ethSendFee', argument_value=eth_send_fee, ) # safeguard against fractional inputs eth_send_fee = int(eth_send_fee) return (eth_send_fee)
Inherited members
class SetTokenFeeMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the setTokenFee method.
Persist instance data.
Expand source code
class SetTokenFeeMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the setTokenFee method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, token_send_fee: int): """Validate the inputs to the setTokenFee method.""" self.validator.assert_valid( method_name='setTokenFee', parameter_name='_tokenSendFee', argument_value=token_send_fee, ) # safeguard against fractional inputs token_send_fee = int(token_send_fee) return (token_send_fee) def block_call(self, token_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(token_send_fee).call(tx_params.as_dict()) """ _fn = self._underlying_method(token_send_fee) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_send_fee).transact(tx_params.as_dict()) def build_transaction(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_send_fee).buildTransaction(tx_params.as_dict()) def estimate_gas(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_send_fee).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, token_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(token_send_fee) = self.validate_and_normalize_inputs(token_send_fee)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(token_send_fee).call(tx_params.as_dict())
Expand source code
def block_call(self, token_send_fee: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(token_send_fee).call(tx_params.as_dict()) """ _fn = self._underlying_method(token_send_fee) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, token_send_fee: int, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_send_fee).buildTransaction(tx_params.as_dict())
def estimate_gas(self, token_send_fee: int, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_send_fee).estimateGas(tx_params.as_dict())
def send_transaction(self, token_send_fee: int, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, token_send_fee: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (token_send_fee) = self.validate_and_normalize_inputs(token_send_fee) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_send_fee).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, token_send_fee: int)
-
Validate the inputs to the setTokenFee method.
Expand source code
def validate_and_normalize_inputs(self, token_send_fee: int): """Validate the inputs to the setTokenFee method.""" self.validator.assert_valid( method_name='setTokenFee', parameter_name='_tokenSendFee', argument_value=token_send_fee, ) # safeguard against fractional inputs token_send_fee = int(token_send_fee) return (token_send_fee)
Inherited members
class TokenSendFeeMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the tokenSendFee method.
Persist instance data.
Expand source code
class TokenSendFeeMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the tokenSendFee method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return int(returned) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> int
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> int: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() returned = _fn.call({ 'from': self._operate }) return int(returned)
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Inherited members
class TransferOwnershipMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the transferOwnership method.
Persist instance data.
Expand source code
class TransferOwnershipMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the transferOwnership method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, new_owner: str): """Validate the inputs to the transferOwnership method.""" self.validator.assert_valid( method_name='transferOwnership', parameter_name='newOwner', argument_value=new_owner, ) new_owner = self.validate_and_checksum_address(new_owner) return (new_owner) def block_call(self, new_owner: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method(new_owner).call(tx_params.as_dict()) """ _fn = self._underlying_method(new_owner) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, new_owner: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(new_owner).transact(tx_params.as_dict()) def build_transaction(self, new_owner: str, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(new_owner).buildTransaction(tx_params.as_dict()) def estimate_gas(self, new_owner: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(new_owner).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, new_owner: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> NoneType
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(new_owner) = self.validate_and_normalize_inputs(new_owner)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
self._underlying_method(new_owner).call(tx_params.as_dict())
Expand source code
def block_call(self, new_owner: str, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method(new_owner).call(tx_params.as_dict()) """ _fn = self._underlying_method(new_owner) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, new_owner: str, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, new_owner: str, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(new_owner).buildTransaction(tx_params.as_dict())
def estimate_gas(self, new_owner: str, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, new_owner: str, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(new_owner).estimateGas(tx_params.as_dict())
def send_transaction(self, new_owner: str, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, new_owner: str, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (new_owner) = self.validate_and_normalize_inputs(new_owner) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(new_owner).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, new_owner: str)
-
Validate the inputs to the transferOwnership method.
Expand source code
def validate_and_normalize_inputs(self, new_owner: str): """Validate the inputs to the transferOwnership method.""" self.validator.assert_valid( method_name='transferOwnership', parameter_name='newOwner', argument_value=new_owner, ) new_owner = self.validate_and_checksum_address(new_owner) return (new_owner)
Inherited members
class UnlockMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction)
-
Various interfaces to the unlock method.
Persist instance data.
Expand source code
class UnlockMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the unlock method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction): """Persist instance data.""" super().__init__(elib, contract_address) self._underlying_method = contract_function def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict()) def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict()) def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> NoneType
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
self._underlying_method().call(tx_params.as_dict())
Expand source code
def block_call(self, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> None: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) self._underlying_method().call(tx_params.as_dict()) """ _fn = self._underlying_method() _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().buildTransaction(tx_params.as_dict())
def estimate_gas(self, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().estimateGas(tx_params.as_dict())
def send_transaction(self, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ tx_params = super().normalize_tx_params(tx_params) return self._underlying_method().transact(tx_params.as_dict())
Inherited members
class WithdrawEtherMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the withdrawEther method.
Persist instance data.
Expand source code
class WithdrawEtherMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the withdrawEther method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, addr: str, amount: int): """Validate the inputs to the withdrawEther method.""" self.validator.assert_valid( method_name='withdrawEther', parameter_name='addr', argument_value=addr, ) addr = self.validate_and_checksum_address(addr) self.validator.assert_valid( method_name='withdrawEther', parameter_name='amount', argument_value=amount, ) # safeguard against fractional inputs amount = int(amount) return (addr, amount) def block_call(self, addr: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(addr, amount).call(tx_params.as_dict()) """ _fn = self._underlying_method(addr, amount) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr, amount).transact(tx_params.as_dict()) def build_transaction(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr, amount).buildTransaction(tx_params.as_dict()) def estimate_gas(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr, amount).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, addr: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(addr, amount) = self.validate_and_normalize_inputs(addr, amount)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(addr, amount).call(tx_params.as_dict())
Expand source code
def block_call(self, addr: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(addr, amount).call(tx_params.as_dict()) """ _fn = self._underlying_method(addr, amount) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, addr: str, amount: int, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr, amount).buildTransaction(tx_params.as_dict())
def estimate_gas(self, addr: str, amount: int, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr, amount).estimateGas(tx_params.as_dict())
def send_transaction(self, addr: str, amount: int, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, addr: str, amount: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (addr, amount) = self.validate_and_normalize_inputs(addr, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(addr, amount).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, addr: str, amount: int)
-
Validate the inputs to the withdrawEther method.
Expand source code
def validate_and_normalize_inputs(self, addr: str, amount: int): """Validate the inputs to the withdrawEther method.""" self.validator.assert_valid( method_name='withdrawEther', parameter_name='addr', argument_value=addr, ) addr = self.validate_and_checksum_address(addr) self.validator.assert_valid( method_name='withdrawEther', parameter_name='amount', argument_value=amount, ) # safeguard against fractional inputs amount = int(amount) return (addr, amount)
Inherited members
class WithdrawTokenMethod (elib: MiliDoS, contract_address: str, contract_function: web3.contract.ContractFunction, validator: Validator = None)
-
Various interfaces to the withdrawToken method.
Persist instance data.
Expand source code
class WithdrawTokenMethod(ContractMethod): # pylint: disable=invalid-name """Various interfaces to the withdrawToken method.""" def __init__(self, elib: MiliDoS, contract_address: str, contract_function: ContractFunction, validator: Validator = None): """Persist instance data.""" super().__init__(elib, contract_address, validator) self._underlying_method = contract_function def validate_and_normalize_inputs(self, token_addr: str, to: str, amount: int): """Validate the inputs to the withdrawToken method.""" self.validator.assert_valid( method_name='withdrawToken', parameter_name='tokenAddr', argument_value=token_addr, ) token_addr = self.validate_and_checksum_address(token_addr) self.validator.assert_valid( method_name='withdrawToken', parameter_name='_to', argument_value=to, ) to = self.validate_and_checksum_address(to) self.validator.assert_valid( method_name='withdrawToken', parameter_name='_amount', argument_value=amount, ) # safeguard against fractional inputs amount = int(amount) return (token_addr, to, amount) def block_call(self, token_addr: str, to: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(token_addr, to, amount).call(tx_params.as_dict()) """ _fn = self._underlying_method(token_addr, to, amount) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}") def send_transaction(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, to, amount).transact(tx_params.as_dict()) def build_transaction(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, to, amount).buildTransaction(tx_params.as_dict()) def estimate_gas(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, to, amount).estimateGas(tx_params.as_dict())
Ancestors
Methods
def block_call(self, token_addr: str, to: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) ‑> bool
-
Execute underlying contract method via eth_call.
:param tx_params: transaction parameters :returns: the return value of the underlying method.
(token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount)
tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params)
returned = self._underlying_method(token_addr, to, amount).call(tx_params.as_dict())
Expand source code
def block_call(self, token_addr: str, to: str, amount: int, val: int = 0, fee: int = 1000000, debug: bool = False, enforcereci: bool = False) -> bool: """Execute underlying contract method via eth_call. :param tx_params: transaction parameters :returns: the return value of the underlying method. (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params: Optional[TxParams] = None tx_params = super().normalize_tx_params(tx_params) returned = self._underlying_method(token_addr, to, amount).call(tx_params.as_dict()) """ _fn = self._underlying_method(token_addr, to, amount) _t = _fn.buildTransaction({ 'from': self._operate }) _t['nonce'] = self._web3_eth.getTransactionCount(self._operate) if val > 0: _t['value'] = val if debug: print(f"======== Signing ✅ by {self._operate}") print(f"======== Transaction ✅ check") print(_t) if 'data' in _t: signed = self._web3_eth.account.sign_transaction(_t) txHash = self._web3_eth.sendRawTransaction(signed.rawTransaction) if enforcereci is True: print("======== Wait for confirmation 🚸️") tx_receipt = self._web3_eth.waitForTransactionReceipt(txHash) print("======== TX Result ✅") print(tx_receipt) if debug: print(f"======== TX blockHash ✅ {tx_receipt.blockHash}")
def build_transaction(self, token_addr: str, to: str, amount: int, tx_params: Union[TxParams, NoneType] = None) ‑> dict
-
Construct calldata to be used as input to the method.
Expand source code
def build_transaction(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> dict: """Construct calldata to be used as input to the method.""" (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, to, amount).buildTransaction(tx_params.as_dict())
def estimate_gas(self, token_addr: str, to: str, amount: int, tx_params: Union[TxParams, NoneType] = None) ‑> int
-
Estimate gas consumption of method call.
Expand source code
def estimate_gas(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> int: """Estimate gas consumption of method call.""" (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, to, amount).estimateGas(tx_params.as_dict())
def send_transaction(self, token_addr: str, to: str, amount: int, tx_params: Union[TxParams, NoneType] = None) ‑> Union[hexbytes.main.HexBytes, bytes]
-
Execute underlying contract method via eth_sendTransaction.
:param tx_params: transaction parameters
Expand source code
def send_transaction(self, token_addr: str, to: str, amount: int, tx_params: Optional[TxParams] = None) -> Union[HexBytes, bytes]: """Execute underlying contract method via eth_sendTransaction. :param tx_params: transaction parameters """ (token_addr, to, amount) = self.validate_and_normalize_inputs(token_addr, to, amount) tx_params = super().normalize_tx_params(tx_params) return self._underlying_method(token_addr, to, amount).transact(tx_params.as_dict())
def validate_and_normalize_inputs(self, token_addr: str, to: str, amount: int)
-
Validate the inputs to the withdrawToken method.
Expand source code
def validate_and_normalize_inputs(self, token_addr: str, to: str, amount: int): """Validate the inputs to the withdrawToken method.""" self.validator.assert_valid( method_name='withdrawToken', parameter_name='tokenAddr', argument_value=token_addr, ) token_addr = self.validate_and_checksum_address(token_addr) self.validator.assert_valid( method_name='withdrawToken', parameter_name='_to', argument_value=to, ) to = self.validate_and_checksum_address(to) self.validator.assert_valid( method_name='withdrawToken', parameter_name='_amount', argument_value=amount, ) # safeguard against fractional inputs amount = int(amount) return (token_addr, to, amount)
Inherited members