CryptoCurrenciesFormat
Verifies that a crypto address is valid and only returns the address if it is valid.
python · Cryptocurrency
Source
from hashlib import sha256 import demistomock as demisto from CommonServerPython import * # noqa: E402 lgtm [py/polluting-import] DIGITS58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" def decode_base58(address, length) -> bytes: n = 0 for char in address: n = n * 58 + DIGITS58.index(char) return n.to_bytes(length, "big") def verify_is_bitcoin(address) -> bytes | bool: try: bitcoin_bytes = decode_base58(address, 25) """Check if the last four bytes are equal to the first four bytes of a double SHA-256 digest of the previous 21 bytes. Source: https://rosettacode.org/wiki/Bitcoin/address_validation#Python """ return bitcoin_bytes[-4:] == sha256(sha256(bitcoin_bytes[:-4]).digest()).digest()[:4] except Exception: return False def main(): address_list = argToList(demisto.args().get("input")) list_results = [f"bitcoin:{address}" if verify_is_bitcoin(address) else "" for address in address_list] if list_results: demisto.results(list_results) else: demisto.results("") if __name__ in ("__main__", "builtin", "builtins"): main()
README
Verifies that a cryptocurrency address is valid and only returns the address if it is valid.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | |
| Cortex XSOAR Version | 5.0.0 |
Supported cryptocurrencies
- Bitcoin
Inputs
| Argument Name | Description |
|---|---|
| input | The Cryptocurrency address to check. |
Outputs
There are no outputs for this script.
Script Example
!CryptoCurrenciesFormat address=1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i
Human Readable Output
1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i