def get_hyperblock(self, key) -> Any: url = f"{self.url}/hyperblock/by-hash/{key}" if str(key).isnumeric(): url = f"{self.url}/hyperblock/by-nonce/{key}" response = do_get(url) return response
def get_transaction(self, tx_hash: str, sender_address: str = "", with_results: bool = False) -> Any: url = f"{self.url}/transaction/{tx_hash}" url += f"?sender={sender_address or ''}" url += f"&withResults={with_results}" response = do_get(url) transaction = response.get("transaction", dict()) return transaction
def get_transaction(self, tx_hash: str, sender_address: str = "") -> Any: url = f"{self.url}/transaction/{tx_hash}" if sender_address: url = f"{self.url}/transaction/{tx_hash}?sender={sender_address}" response = do_get(url) transaction = response.get("transaction", dict()) return transaction
def get_account_transactions(self, address: Address): TRUNCATE_DATA_THRESHOLD = 75 url = f"{self.url}/address/{address.bech32()}/transactions" response = do_get(url) transactions = response.get("transactions", []) for transaction in transactions: data = transaction.get("data", "") data = (data[:TRUNCATE_DATA_THRESHOLD] + ' ... truncated ...') if len(data) > TRUNCATE_DATA_THRESHOLD else data transaction["data"] = data return transactions
def get_account(self, address: Address): url = f"{self.url}/address/{address.bech32()}" response = do_get(url) account = response.get("account", dict()) return account
def get_account_balance(self, address: Address): url = f"{self.url}/address/{address.bech32()}/balance" response = do_get(url) balance = response.get("balance", 0) return int(balance)
def get_account_nonce(self, address: Address) -> int: url = f"{self.url}/address/{address.bech32()}" response = do_get(url) nonce = response.get("account").get("nonce", 0) return int(nonce)
def _get_network_config(self): url = f"{self.url}/network/config" response = do_get(url) details = response["message"]["config"] return details
def get_meta_block(self, nonce): url = f"{self.url}/block/meta/{nonce}" response = do_get(url) nonce = response["block"] return nonce
def get_meta_nonce(self): url = f"{self.url}/block/meta-nonce" response = do_get(url) nonce = response["nonce"] return nonce
def get_num_shards(self): url = f"{self.url}/network/config" response = do_get(url) num_shards_without_meta = response["message"]["config"][ "erd_num_shards_without_meta"] or 0 return num_shards_without_meta + 1
def get_account_transactions(self, address): url = f"{self.url}/address/{address.bech32()}/transactions" response = do_get(url) return response
def get_account(self, address): url = f"{self.url}/address/{address.bech32()}" response = do_get(url) return response
def get_account_balance(self, address): url = f"{self.url}/address/{address.bech32()}/balance" response = do_get(url) balance = response["balance"] return balance
def get_account_nonce(self, address): url = f"{self.url}/address/{address.bech32()}" response = do_get(url) nonce = response["account"]["nonce"] return nonce
def _get_network_status(self, shard_id): url = f"{self.url}/network/status/{shard_id}" response = do_get(url) payload = response.get("status") return payload
def get_network_config(self) -> NetworkConfig: url = f"{self.url}/network/config" response = do_get(url) payload = response.get("config") result = NetworkConfig(payload) return result
def _get_network_status(self, shard_id): url = f"{self.url}/network/status/{shard_id}" response = do_get(url) details = response["message"]["status"] return details