cosmpy.clients package¶
Submodules¶
cosmpy.clients.cosmwasm_client module¶
Implementation of CosmWasm query client.
- class cosmpy.clients.cosmwasm_client.CosmWasmClient(channel: Union[grpc._channel.Channel, cosmpy.common.rest_client.RestClient])¶
Bases:
object
High level client for REST/gRPC node interaction.
- get_balance(address: cosmpy.crypto.address.Address, denom: str) cosmos.bank.v1beta1.query_pb2.QueryBalanceResponse ¶
Get balance of specific account and denom
- Parameters
address – Address
denom – Denomination
- Returns
QueryBalanceResponse
- query_account_data(address: cosmpy.crypto.address.Address) cosmos.auth.v1beta1.auth_pb2.BaseAccount ¶
Query account data for signing
- Parameters
address – Address of account to query data about
- Raises
TypeError – in case of wrong account type.
- Returns
BaseAccount
- query_contract_state(contract_address: str, msg: Union[Dict[str, Optional[Union[str, int, bool, float, Dict[Any, Any], List[Any]]]], Dict[str, Dict[Any, Any]]]) Union[Dict[str, Optional[Union[str, int, bool, float, Dict[Any, Any], List[Any]]]], Dict[str, Dict[Any, Any]]] ¶
Get state of smart contract
- Parameters
contract_address – Contract address
msg – Parameters to be passed to query function inside contract
- Returns
JSON query response
cosmpy.clients.signing_cosmwasm_client module¶
Implementation of CosmWasm signing client.
- class cosmpy.clients.signing_cosmwasm_client.SigningCosmWasmClient(private_key: cosmpy.crypto.keypairs.PrivateKey, channel: Union[grpc._channel.Channel, cosmpy.common.rest_client.RestClient], chain_id: str)¶
Bases:
cosmpy.clients.cosmwasm_client.CosmWasmClient
High level client for REST/gRPC node interaction with ability to sign transactions.
- DEFAULT_DEPLOY_GAS_LIMIT = 1500000¶
- DEFAULT_GAS_LIMIT = 200000¶
- broadcast_tx(tx: cosmos.tx.v1beta1.tx_pb2.Tx, wait_time: int = 10) cosmos.tx.v1beta1.service_pb2.GetTxResponse ¶
Broadcast transaction and get receipt
- Parameters
tx – Transaction
wait_time – Number of seconds to wait before getting transaction receipt
- Raises
RuntimeError – if broadcasting fails.
- Returns
GetTxResponse
- deploy_contract(contract_filename: pathlib.Path, gas_limit: int = 1500000) int ¶
Deploy smart contract on chain
- Parameters
contract_filename – Path to smart contract bytecode
gas_limit – Gas limit
- Returns
Code ID
- execute_contract(contract_address: str, msg: Union[Dict[str, Optional[Union[str, int, bool, float, Dict[Any, Any], List[Any]]]], Dict[str, Dict[Any, Any]]], funds: Optional[List[cosmos.base.v1beta1.coin_pb2.Coin]] = None, gas_limit: int = 200000) cosmos.tx.v1beta1.service_pb2.GetTxResponse ¶
Send execute message to interact with smart contract
- Parameters
contract_address – Address of contract
msg – Paramaters to be passed to smart contract
funds – Funds to be sent to smart contract
gas_limit – Gas limit
- Returns
GetTxResponse
- generate_tx(packed_msgs: List[google.protobuf.any_pb2.Any], from_addresses: List[cosmpy.crypto.address.Address], pub_keys: List[bytes], fee: Optional[List[cosmos.base.v1beta1.coin_pb2.Coin]] = None, memo: str = '', gas_limit: int = 200000) cosmos.tx.v1beta1.tx_pb2.Tx ¶
Generate transaction that can be later signed
- Parameters
packed_msgs – Messages to be in transaction
from_addresses – List of addresses of each sender
pub_keys – List of public keys
fee – Transaction fee
memo – Memo
gas_limit – Gas limit
- Returns
Tx
- static get_code_id(response: cosmos.tx.v1beta1.service_pb2.GetTxResponse) int ¶
Get code id from store code transaction response
- Parameters
response – Response of store code transaction
- Returns
integer code_id
- static get_contract_address(response: cosmos.tx.v1beta1.service_pb2.GetTxResponse) str ¶
Get contract address from instantiate msg response :param response: Response of MsgInstantiateContract transaction
- Returns
contract address string
- static get_packed_exec_msg(sender_address: cosmpy.crypto.address.Address, contract_address: str, msg: Union[Dict[str, Optional[Union[str, int, bool, float, Dict[Any, Any], List[Any]]]], Dict[str, Dict[Any, Any]]], funds: Optional[List[cosmos.base.v1beta1.coin_pb2.Coin]] = None) google.protobuf.any_pb2.Any ¶
Create and pack MsgExecuteContract
- Parameters
sender_address – Address of sender
contract_address – Address of contract
msg – Paramaters to be passed to smart contract
funds – Funds to be sent to smart contract
- Returns
Packed MsgExecuteContract
- static get_packed_init_msg(sender_address: cosmpy.crypto.address.Address, code_id: int, init_msg: Union[Dict[str, Optional[Union[str, int, bool, float, Dict[Any, Any], List[Any]]]], Dict[str, Dict[Any, Any]]], label='contract', funds: Optional[List[cosmos.base.v1beta1.coin_pb2.Coin]] = None) google.protobuf.any_pb2.Any ¶
Create and pack MsgInstantiateContract
- Parameters
sender_address – Sender’s address
code_id – code_id of stored contract bytecode
init_msg – Parameters to be passed to smart contract constructor
label – Label
funds – Funds transferred to new contract
- Returns
Packed MsgInstantiateContract
- static get_packed_send_msg(from_address: cosmpy.crypto.address.Address, to_address: cosmpy.crypto.address.Address, amount: List[cosmos.base.v1beta1.coin_pb2.Coin]) google.protobuf.any_pb2.Any ¶
Generate and pack MsgSend
- Parameters
from_address – Address of sender
to_address – Address of recipient
amount – List of Coins to be sent
- Returns
packer ProtoAny type message
- static get_packed_store_msg(sender_address: cosmpy.crypto.address.Address, contract_filename: pathlib.Path) google.protobuf.any_pb2.Any ¶
Loads contract bytecode, generate and return packed MsgStoreCode
- Parameters
sender_address – Address of transaction sender
contract_filename – Path to smart contract bytecode
- Returns
Packed MsgStoreCode
- instantiate_contract(code_id: int, init_msg: Union[Dict[str, Optional[Union[str, int, bool, float, Dict[Any, Any], List[Any]]]], Dict[str, Dict[Any, Any]]], label='contract', funds: Optional[List[cosmos.base.v1beta1.coin_pb2.Coin]] = None, gas_limit: int = 200000) str ¶
Instantiate smart contract and return contract address
- Parameters
code_id – code_id of stored contract bytecode
init_msg – Parameters to be passed to smart contract constructor
label – Label
funds – Funds transferred to new contract
gas_limit – Gas limit
- Returns
Contract address
- send_tokens(to_address: cosmpy.crypto.address.Address, amount: List[cosmos.base.v1beta1.coin_pb2.Coin]) cosmos.tx.v1beta1.service_pb2.GetTxResponse ¶
Send native tokens from clients address to to_address
- Parameters
to_address – Address of recipient
amount – List of tokens to be transferred
- Returns
GetTxResponse
- sign_tx(tx: cosmos.tx.v1beta1.tx_pb2.Tx)¶
Sign transaction
- Parameters
tx – Transaction to be signed
Module contents¶
This package contains high level clients modules.