aea.contracts.base
The base contract.
snake_to_camel
def snake_to_camel(string: str) -> str
Convert snake_case to camelCase
Contract Objects
class Contract(Component)
Abstract definition of a contract.
contract_id
type: PublicId
__init__
def __init__(contract_config: ContractConfig, **kwargs: Any) -> None
Initialize the contract.
Arguments:
contract_config: the contract configurations.kwargs: the keyword arguments.
id
@property
def id() -> PublicId
Get the name.
configuration
@property
def configuration() -> ContractConfig
Get the configuration.
get_instance
@classmethod
def get_instance(cls,
ledger_api: LedgerApi,
contract_address: Optional[str] = None) -> Any
Get the instance.
Arguments:
ledger_api: the ledger api we are using.contract_address: the contract address.
Returns:
the contract instance
from_dir
@classmethod
def from_dir(cls, directory: str, **kwargs: Any) -> "Contract"
Load the protocol from a directory.
Arguments:
directory: the directory to the skill package.kwargs: the keyword arguments.
Returns:
the contract object.
from_config
@classmethod
def from_config(cls, configuration: ContractConfig,
**kwargs: Any) -> "Contract"
Load contract from configuration.
Arguments:
configuration: the contract configuration.kwargs: the keyword arguments.
Returns:
the contract object.
get_deploy_transaction
@classmethod
def get_deploy_transaction(cls, ledger_api: LedgerApi, deployer_address: str,
**kwargs: Any) -> Optional[JSONLike]
Handler method for the 'GET_DEPLOY_TRANSACTION' requests.
Implement this method in the sub class if you want to handle the contract requests manually.
Arguments:
ledger_api: the ledger apis.deployer_address: The address that will deploy the contract.kwargs: keyword arguments.
Returns:
the tx
get_raw_transaction
@classmethod
def get_raw_transaction(cls, ledger_api: LedgerApi, contract_address: str,
**kwargs: Any) -> Optional[JSONLike]
Handler method for the 'GET_RAW_TRANSACTION' requests.
Implement this method in the sub class if you want to handle the contract requests manually.
Arguments:
ledger_api: the ledger apis.contract_address: the contract address.kwargs: the keyword arguments.
Returns:
the tx # noqa: DAR202
get_raw_message
@classmethod
def get_raw_message(cls, ledger_api: LedgerApi, contract_address: str,
**kwargs: Any) -> Optional[bytes]
Handler method for the 'GET_RAW_MESSAGE' requests.
Implement this method in the sub class if you want to handle the contract requests manually.
Arguments:
ledger_api: the ledger apis.contract_address: the contract address.kwargs: the keyword arguments.
Returns:
the tx # noqa: DAR202
get_state
@classmethod
def get_state(cls, ledger_api: LedgerApi, contract_address: str,
**kwargs: Any) -> Optional[JSONLike]
Handler method for the 'GET_STATE' requests.
Implement this method in the sub class if you want to handle the contract requests manually.
Arguments:
ledger_api: the ledger apis.contract_address: the contract address.kwargs: the keyword arguments.
Returns:
the tx # noqa: DAR202
contract_method_call
@classmethod
def contract_method_call(cls, ledger_api: LedgerApi, method_name: str,
**kwargs: Any) -> Optional[JSONLike]
Make a contract call.
Arguments:
ledger_api: the ledger apis.method_name: the contract method name.kwargs: keyword arguments.
Returns:
the call result
build_transaction
@classmethod
def build_transaction(cls, ledger_api: LedgerApi, method_name: str,
method_args: Optional[Dict],
tx_args: Optional[Dict]) -> Optional[JSONLike]
Build a transaction.
Arguments:
ledger_api: the ledger apis.method_name: method name.method_args: method arguments.tx_args: transaction arguments.
Returns:
the transaction
default_method_call
@classmethod
def default_method_call(cls, ledger_api: LedgerApi, contract_address: str,
method_name: str, **kwargs: Any) -> Optional[JSONLike]
Make a contract call.
Arguments:
ledger_api: the ledger apis.contract_address: the contract address.method_name: the method to call.kwargs: keyword arguments.
Returns:
the call result
get_transaction_transfer_logs
@classmethod
def get_transaction_transfer_logs(
cls,
ledger_api: LedgerApi,
tx_hash: str,
target_address: Optional[str] = None) -> Optional[JSONLike]
Retrieve the logs from a transaction.
Arguments:
ledger_api: the ledger apis.tx_hash: The transaction hash to check logs from.target_address: optional address to filter tranfer events to just those that affect it
Returns:
the tx logs
get_method_data
@classmethod
def get_method_data(cls, ledger_api: LedgerApi, contract_address: str,
method_name: str, **kwargs: Any) -> Optional[JSONLike]
Get a contract call encoded data.
Arguments:
ledger_api: the ledger apis.contract_address: the contract address.method_name: the contract method namekwargs: the contract method args
Returns:
the tx # noqa: DAR202