SmartContractWallet¶
SmartContractWallet¶
- class SmartContractWallet(**kwargs)¶
Implements the smartcontractwallet api endpoints.
- account_addresses(wallet_name: str, **kwargs) List[Address] ¶
Gets a smart contract account address.
- address_balance(address: Address | str, **kwargs) Money ¶
Gets the balance at a specific wallet address in STRAX (or the sidechain coin).
- history(wallet_name: str, address: Address | str, skip: int = 0, take: int | None = None, **kwargs) List[ContractTransactionItemModel] ¶
Gets the history of a specific smart contract wallet address.
- Parameters:
wallet_name (str) – The wallet name.
address (Address, str) – The address to query the history.
skip (int, optional) – Skip this many items. Default=0.
take (int, optional) – Take this many items.
**kwargs – Extra keyword arguments.
- Returns:
A history of a smart contract wallet address.
- Return type:
- Raises:
APIError – Error thrown by node API. See message for details.
- create(wallet_name: str, fee_amount: Money | int | float | Decimal, password: str, contract_code: hexstr | str, gas_price: int, gas_limit: int, sender: Address | str, amount: Money | int | float | Decimal | None = None, outpoints: List[Outpoint] | None = None, account_name: str = 'account 0', parameters: List[str] | None = None, **kwargs) uint256 ¶
Builds a transaction to create a smart contract and then broadcasts the transaction to the network.
- Parameters:
wallet_name (str) – The wallet name.
account_name (str, optional) – The wallet name. Default=’account 0’
outpoints (List[Outpoint], optional) – A list of the outpoints used to construct the transactation.
amount (Money, int, float, Decimal, optional) – The amount being sent.
fee_amount (Money, int, float, Decimal) – The fee amount.
password (SecretStr) – The password.
contract_code (hexstr, str) – The smart contract code hexstring.
gas_price (int) – The amount of gas being used in satoshis.
gas_limit (int) – The maximum amount of gas that can be used in satoshis.
sender (Address, str) – The address of the sending address.
parameters (List[Union[SmartContractParameter, str], optional) – A list of parameters for the smart contract.
**kwargs – Extra keyword arguments.
- Returns:
The transaction hash.
- Return type:
- Raises:
APIError – Error thrown by node API. See message for details.
- call(wallet_name: str, fee_amount: Money | int | float | Decimal, password: str, contract_address: Address | str, method_name: str, gas_price: int, gas_limit: int, sender: Address | str, amount: Money | int | float | Decimal, outpoints: List[Outpoint] | None = None, account_name: str = 'account 0', parameters: List[str] | None = None, **kwargs) BuildContractTransactionModel ¶
Builds a transaction to call a smart contract method and then broadcasts the transaction to the network.
- Parameters:
wallet_name (str) – The wallet name.
account_name (str, optional) – The wallet name. Default=’account 0’
outpoints (List[Outpoint], optional) – A list of the outpoints used to construct the transactation.
contract_address (Address, str) – The smart contract address being called.
method_name (str) – The method name being called.
amount (Money, int, float, Decimal, optional) – The amount being sent.
fee_amount (Money, int, float, Decimal) – The fee amount.
password (SecretStr) – The password.
gas_price (int) – The amount of gas being used in satoshis.
gas_limit (int) – The maximum amount of gas that can be used in satoshis.
sender (Address, str) – The address of the sending address.
parameters (List[Union[SmartContractParameter, str]], optional) – A list of parameters for the smart contract.
**kwargs – Extra keyword arguments.
- Returns:
A built smart contract transaction.
- Return type:
- Raises:
APIError – Error thrown by node API. See message for details.
- send_transaction(transaction_hex: hexstr | str, **kwargs) WalletSendTransactionModel ¶
Broadcasts a transaction, which either creates a smart contract or calls a method on a smart contract.
BuildContractTransactionModel¶
- class BuildContractTransactionModel(*, fee: Money, hex: hexstr, message: str = None, success: bool = None, transactionId: uint256 = None)
A pydantic model for building a smart contact transaction.
- fee: Money
The transaction fee.
- hex: hexstr
The hex serialized transaction.
- message: str | None
The build transaction message.
- success: bool | None
True if build was successful.
- transaction_id: uint256 | None
The transaction hash, if build successful.
ContractTransactionItemModel¶
- class ContractTransactionItemModel(*, blockHeight: int, type: ContractTransactionItemType, hash: uint256, to: Address, amount: Money, transactionFee: Money, gasFee: Money)¶
A pydantic model representing a contract transaction.
- block_height: int¶
The block height of block containing the transaction.
- item_type: ContractTransactionItemType¶
The contract transaction item type.
TransactionOutputModel¶
- class TransactionOutputModel(*, address: int | Address | None = None, amount: Money, opReturnData: str = None)
A pydantic model of a transaction output.
- address: int | Address | None
The address receiving the output.
- amount: Money
The output amount.
- op_return_data: str | None
The OP_RETURN data, if present.
WalletSendTransactionModel¶
- class WalletSendTransactionModel(*, transactionId: uint256, outputs: List[TransactionOutputModel])
A pydantic model for a send transaction response.
- transaction_id: uint256
The transaction hash.
- outputs: List[TransactionOutputModel]
A list of transaction outputs.