CryptoCurrenciesFormat

Verifies that a crypto address is valid and only returns the address if it is valid.

python · Cryptocurrency

Details

IDCryptoCurrenciesFormat
Languagepython
From Version5.0.0
Docker Imagedemisto/python3:3.12.13.10116658
Tagsindicator-format

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

import demistomock as demisto
import pytest
from CryptoCurrenciesFormat import main, verify_is_bitcoin

# Bitcoin address, expected_output
testdata = [
    ("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", True),
    ("1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9", True),
    ("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62X", False),
    ("1ANNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", False),
    ("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62X", False),
    ("1A Na15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", False),
    ("gygy", False),
    ("/", False),
]


@pytest.mark.parametrize("bitcoin_address,expected_output", testdata)
def test_verify_is_bitcoin(bitcoin_address, expected_output):
    """Verifies that a Bitcoin address is valid.
    Given
    - address.
    When
    - When there is an address that looks like a bitcoin address.
    Then
    - Checks if it's a bitcoin address or not
    """
    assert verify_is_bitcoin(bitcoin_address) == expected_output


ARGS = {"input": "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i,1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9,1ANNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i"}
EXPECTED_RESULTS = ["bitcoin:1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", "bitcoin:1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9", ""]


def test_main(mocker):
    """Verifies that all valid addresses get returned.
    Given
    - addresses.
    When
    - When there are multiple addresses that looks like a bitcoin address.
    Then
    - Return all valid addresses
    """
    mocker.patch.object(demisto, "args", return_value=ARGS)
    mocker.patch.object(demisto, "results")
    main()
    assert demisto.results.call_args[0][0] == EXPECTED_RESULTS