Transaction object
Transaction
Used by Client class.
This transaction may be signed with only one client.
May transform to MultiTransaction object if you use litewax.clients.Transaction.payer()
method with Client as payer.
- class litewax.clients.Transaction(client: Client, *actions: tuple[Action, ...])[source]
litewax.clients.Transaction
object Create a transaction object for pushing to the blockchain- Parameters:
client (litewax.clients.Client) –
litewax.clients.Client
objectactions (tuple[Action, ...]) – actions of contracts
- Example:
>>> from litewax import Client >>> # init client with private key >>> client = Client(private_key=private_key) >>> # create transaction object >>> trx = client.Transaction( >>> client.Contract("eosio.token").transfer( >>> "account1", "account2", "1.00000000 WAX", "memo" >>> ) >>> ) >>> print(trx) litewax.Client.Transaction( node=https://wax.greymass.com, sender=account1, actions=[ [active] account1 > eosio.token::transfer({"from": "account1", "to": "account2", "quantity": "1.00000000 WAX", "memo": "memo"}) ] ) >>> # Add payer for CPU >>> # init payer client with private key >>> payer = Client(private_key=private_key2) >>> # add payer to transaction >>> trx = trx.payer(payer) >>> print(trx) litewax.MultiClient.MultiTransaction( node=ttps://wax.greymass.com, accounts=[account1, account2], actions=[ [active] account1 > eosio.token::transfer({"from": "account1", "to": "account2", "quantity": "1.00000000 WAX", "memo": "memo"}), [active] account2 > litewaxpayer::noop({}) ] ) >>> # push transaction >>> push_resp = trx.push() >>> print(push_resp) {'transaction_id': '928802d253bffc29d6178e634052ec5f044b2fcce0c4c8bc5b44d978e22ec5d4', ...} ```
- payer(payer: Union[Client, atomichub, neftyblocks, str], permission: Optional[str] = 'active') Union[MultiTransaction, AtomicHub, NeftyBlocks] [source]
Set payer for all actions
- Parameters:
payer (litewax.clients.Client or str) – payer name or
litewax.clients.Client
objectpermission (str) – payer permission (optional): default active
- Raises:
NotImplementedError – if payer is not
litewax.clients.Client
,litewax.payers.AtomicHub
orlitewax.payers.NeftyBlocks
.- Returns:
litewax.clients.MultiTransaction
object orlitewax.payers.AtomicHub
object orlitewax.payers.NeftyBlocks
object- Return type:
litewax.clients.MultiTransaction or litewax.payers.AtomicHub or litewax.payers.NeftyBlocks
- pack(chain_info: Optional[dict] = {}, lib_info: Optional[dict] = {}, expiration: Optional[int] = 180)[source]
Pack transaction with client and return
litewax.types.TransactionInfo
.- Parameters:
chain_info (dict) – chain info. Provide it if you not want to get it from blockchain (optional)
lib_info (dict) – lib info. Provide it if you not want to get it from blockchain (optional)
expiration (int) – transaction expiration time in seconds (optional): default 180
- Returns:
- Return type:
- prepare_trx(chain_info: Optional[dict] = {}, lib_info: Optional[dict] = {}, expiration: Optional[int] = 180) TransactionInfo [source]
Sign transaction with client and return
litewax.types.TransactionInfo
.- Parameters:
chain_info (dict) – chain info. Provide it if you not want to get it from blockchain (optional)
lib_info (dict) – lib info. Provide it if you not want to get it from blockchain (optional)
expiration (int) – transaction expiration time in seconds (optional): default 180
- Returns:
- Return type:
- push(data: Optional[TransactionInfo] = {}, expiration: Optional[int] = 180) dict [source]
Push transaction to blockchain
- Parameters:
data (litewax.types.TransactionInfo) –
litewax.types.TransactionInfo
object (optional)expiration (int) – transaction expiration time in seconds (optional): default 180
- Raises:
litewax.exceptions.CPUlimit – if transaction exceeded the current CPU usage limit imposed on the transaction
litewax.exceptions.ExpiredTransaction – if transaction is expired
litewax.exceptions.UnknownError – if unknown error
- Returns:
transaction information
- Return type:
dict
MultiTransaction
Used by Multi Client class.
This transaction may be signed with many clients.
- class litewax.clients.MultiTransaction(client: MultiClient, *actions: tuple[Action, ...])[source]
MultiTransaction class for creating and pushing transactions using many signatures
- Parameters:
client (litewax.clients.MultiClient) –
litewax.clients.MultiClient
objectactions (tuple) – list of actions
- Example:
>>> from litewax import MultiClient >>> # init client with private keys >>> client = MultiClient( >>> private_keys = [ >>> "EOS7...1", >>> "EOS7...2" >>> ], >>> node = "https://wax.greymass.com" >>> ) >>> # create transaction object >>> trx = client.Transaction( >>> client[0].Contract("eosio.token").transfer( >>> "from", "to", "1.00000000 WAX", "memo" >>> ) >>> ) >>> # add payer >>> trx = trx.payer(client[1]) >>> # push transaction >>> trx.push()
- property wax: Cleos
eospy.cleos.Cleos
- property client: MultiClient
client.MultiClient object
- payer(payer: Union[Client, atomichub, neftyblocks, str], permission: Optional[str] = 'active') Union[MultiTransaction, AtomicHub, NeftyBlocks] [source]
Set payer
- Parameters:
payer (str or litewax.clients.Client) – payer account name or
litewax.clients.Client
objectpermission (str) – payer permission (optional): default active
- Raises:
NotImplementedError – if payer is not
litewax.clients.Client
,litewax.payers.AtomicHub
orlitewax.payers.NeftyBlocks
- Returns:
litewax.clients.MultiTransaction
object orlitewax.payers.AtomicHub
orlitewax.payers.NeftyBlocks
object- Return type:
litewax.clients.MultiTransaction or litewax.payers.AtomicHub or litewax.payers.NeftyBlocks
- pack(chain_info: Optional[dict] = {}, lib_info: Optional[dict] = {}, expiration: Optional[int] = 180)[source]
Pack transaction with client and return
litewax.types.TransactionInfo
.- Parameters:
chain_info (dict) – chain info. Provide it if you not want to get it from blockchain (optional)
lib_info (dict) – lib info. Provide it if you not want to get it from blockchain (optional)
expiration (int) – transaction expiration time in seconds (optional): default 180
- Returns:
- Return type:
- prepare_trx(chain_info: Optional[dict] = {}, lib_info: Optional[dict] = {}, expiration: Optional[int] = 180) TransactionInfo [source]
Sign transaction with clients and return signatures, packed and serialized transaction
- Parameters:
chain_info (dict) – chain info. Provide it if you not want to get it from blockchain (optional)
lib_info (dict) – lib info. Provide it if you not want to get it from blockchain (optional)
expiration (int) – transaction expiration time in seconds (optional): default 180
- Returns:
- Return type:
- push(data: Optional[TransactionInfo] = {}, expiration: Optional[int] = 180) dict [source]
Push transaction to blockchain
- Parameters:
data (litewax.types.TransactionInfo) –
litewax.types.TransactionInfo
object (optional)expiration (int) – transaction expiration time in seconds (optional): default 180
- Raises:
litewax.exceptions.CPUlimit – if transaction exceeded the current CPU usage limit imposed on the transaction
litewax.exceptions.ExpiredTransaction – if transaction is expired
litewax.exceptions.UnknownError – if unknown error
- Returns:
transaction information
- Return type:
dict