1. Введение

Приложение dm-cli - интерфейс командной строки для доступа к функциям модуля сделок (dm) сервиса обработки bitcoin платежей BitDeals. Приложение должно предоставлять доступ к основной функциональности dm через командную строку.

Ресурсы:

2. Общие требования

  1. В режиме работы --debug приложение должно дополнительно выводить данные API запросов и ответов.

  2. Значение параметра --address приложения должно принимать IP адрес и порт, или URL путь, например https://testnet-dm2.bitdeals.org/dm/ .

3. Функции dm-cli

3.1. Документация по использованию

  1. Приложение должно выводить справку по использованию приложения по ключу -h или --help

  2. Если переменная в значении: LANG=ru_RU.UTF-8, то справка должна быть на русском языке.

    Пример сообщения 'dm-cli --help':

    На английском:

    Usage: dm-cli [global] <group> [<args>]
    
    Global options:
      --debug              print debug information, input and output API requests
      --address <ip:port>  address of the bitdeals dm, default: 127.0.0.1:4999
      --help               print condensed help for all subcommands
      --version            print version string
    
        dm-cli account status <bitcoin_address>
            Show account data details
        dm-cli account update [options]
            Update your account data
    
        dm-cli deal create
            Create a new deal
        dm-cli deal status
            Show deal data details
        dm-cli deal complete
            Complete deal
        dm-cli deal cancel
            Cancel deal
        dm-cli deal negative
            Leave negative feedback

    На русском:

    Использование: dm-cli [глобальные параметры] <группа> [<аргументы>]
    
    Глобальные параметры:
      --debug              выводить отладочную информацию, входные и выходные API-запросы
      --address <ip:port>  адрес модуля сделок (dm), по умолчанию: 127.0.0.1:4999
      --help               вывести краткую справку по всем подкомандам
      --version            вывести строку версии
    
        dm-cli account status <биткоин адрес>
            Показать учётные данные аккаунта
        dm-cli account update [параметры]
            Изменить учётные данные аккаунта
    
        dm-cli deal create
            Создать новую сделку
        dm-cli deal status
            Показать данные сделки
        dm-cli deal complete
            Завершить сделку
        dm-cli deal cancel
            Отменить сделку
        dm-cli deal negative
            Оставить негативный отзыв

3.2. Запрос данных пользователей

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli account status --help':

    На английском:

    Usage: dm-cli account status [options] <bitcoin_address>
    
        Show info about a bitdeals user.
    
        -f|--feedbacks [p|n]      Show last 1K received feedbacks.
                                  Use p or n to filter only positive or negative feedbacks.
        -i|--info                 Show user account details.
        -r|--rating               Show user rating information.
        -s|--status               Show user account status (default action).

    На русском:

    Использование: dm-cli account status [параметры] <биткоин адрес>
    
        Показать информацию о пользователе bitdeals.
    
        -f|--feedbacks [p|n]      Показать последнюю 1 тыс. полученных отзывов.
                                  Используй p или n для фильтрации только позитивных или негативных отзывов.
        -i|--info                 Показать данные учётной записи.
        -r|--rating               Показать данные рейтинга.
        -s|--status               Показать статус пользователя (действие по умолчанию).

  2. Примеры входных и выходных данных.

    1. Запрос статуса (--status) пользователя mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp:

      curl "https://testnet-dm.bitdeals.org/api/v1/account/status?address=mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp"

      Пример ответа:

      {
        "id": "c381f540d48c1d34",
        "action": "Status",
        "address": "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp",
        "result": {
          "success": true,
          "message": "Open"
        },
        "payload": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IkJpdERlYWxzIFBheW1lbnQgU2VydmljZSI+CjwvaGVhZD4KPGJvZHk+CjxwcmU+SGVsbG8sIDxiPm1udW1IczlIUU1ydzJRMWlLTE5ueDlOekV4UzduTUxteXA8L2I+IQoKWW91ciBhY2NvdW50IHN0YXR1czogPGI+T3BlbjwvYj4KCi0tLS0tIEJJVENPSU4gUFVCTElDIEtFWSAtLS0tLQoKPGI+MDI0ZjIyNmNkMzdhYjdlNzY4ZGU3YjY4OTQ2ZDY2MWQwNjdlZjFkNThhMTgzMjU0MjI1YTRmOTFmNmFlODkxOGVlPC9iPgoKLS0tLS0gUEdQIFBVQkxJQyBLRVkgLS0tLS0KCjxiPnB1YiAgMTAyNFIvNDlkZmNjYjk3YjkwNzRjNiAyMDI1LTA4LTA0Cgp1aWQgQWNjb3VudF9VUkwgKGh0dHBzOi8vZXhhbXBsZS0zMjA4OTI4MTIzLmNvbSkKc2lnICBzaWcgICA0OWRmY2NiOTdiOTA3NGM2IDIwMjUtMDgtMDQgICAgICAgICAgICAgICAgICAgIAoKc3ViICAxMDI0Ui80MDYwZjlkNDdkMzgyZGUyIDIwMjUtMDgtMDQKc2lnIHNiaW5kICA0OWRmY2NiOTdiOTA3NGM2IDIwMjUtMDgtMDQgICAgICAgICAgICAgICAgICAgIAo8L2I+Ci0tLS0tIEFDQ09VTlQgVVJMIExJU1QgLS0tLS0KCjxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS0zMjA4OTI4MTIzLmNvbSI+aHR0cHM6Ly9leGFtcGxlLTMyMDg5MjgxMjMuY29tPC9hPgoKLS0tLS0gVFJVU1RFRCBVUkwgTElTVCAtLS0tLQoKPGEgaHJlZj0iaHR0cDovLzE3MC43NS4xNzMuNzA6NDk5OSI+aHR0cDovLzE3MC43NS4xNzMuNzA6NDk5OTwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9wbGFjYXJkLnpyLWNvZGUuY29tIj5odHRwczovL3BsYWNhcmQuenItY29kZS5jb208L2E+CjxhIGhyZWY9Imh0dHBzOi8vdGVzdG5ldC5iaXRkZWFscy5vcmciPmh0dHBzOi8vdGVzdG5ldC5iaXRkZWFscy5vcmc8L2E+CjxhIGhyZWY9Imh0dHA6Ly9wbGFjYXJkLnpyLWNvZGUuY29tIj5odHRwOi8vcGxhY2FyZC56ci1jb2RlLmNvbTwvYT4KPGEgaHJlZj0iaHR0cDovL3Rlc3RuZXQtZG0uYml0ZGVhbHMub3JnIj5odHRwOi8vdGVzdG5ldC1kbS5iaXRkZWFscy5vcmc8L2E+CjxhIGhyZWY9Imh0dHBzOi8vdGVzdG5ldC1kbTIuYml0ZGVhbHMub3JnIj5odHRwczovL3Rlc3RuZXQtZG0yLmJpdGRlYWxzLm9yZzwvYT4KPGEgaHJlZj0iaHR0cDovL3Rlc3RuZXQtZG0yLmJpdGRlYWxzLm9yZyI+aHR0cDovL3Rlc3RuZXQtZG0yLmJpdGRlYWxzLm9yZzwvYT4KPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo0OTk5Ij5odHRwOi8vbG9jYWxob3N0OjQ5OTk8L2E+CjxhIGhyZWY9Imh0dHA6Ly90ZXN0bmV0LmJpdGRlYWxzLm9yZyI+aHR0cDovL3Rlc3RuZXQuYml0ZGVhbHMub3JnPC9hPgo8YSBocmVmPSJodHRwOi8vcGxhY2FyZC5iaXRkZWFscy5vcmciPmh0dHA6Ly9wbGFjYXJkLmJpdGRlYWxzLm9yZzwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9wbGFjYXJkLmJpdGRlYWxzLm9yZyI+aHR0cHM6Ly9wbGFjYXJkLmJpdGRlYWxzLm9yZzwvYT4KPGEgaHJlZj0iaHR0cHM6Ly90ZXN0bmV0LWRtLmJpdGRlYWxzLm9yZyI+aHR0cHM6Ly90ZXN0bmV0LWRtLmJpdGRlYWxzLm9yZzwvYT4KPGEgaHJlZj0iaHR0cHM6Ly90ZXN0bmV0Mi5iaXRkZWFscy5vcmciPmh0dHBzOi8vdGVzdG5ldDIuYml0ZGVhbHMub3JnPC9hPgo8YSBocmVmPSJodHRwOi8vdGVzdG5ldDIuYml0ZGVhbHMub3JnIj5odHRwOi8vdGVzdG5ldDIuYml0ZGVhbHMub3JnPC9hPgo8YSBocmVmPSJodHRwczovL3BsYWNhcmQyLmJpdGRlYWxzLm9yZyI+aHR0cHM6Ly9wbGFjYXJkMi5iaXRkZWFscy5vcmc8L2E+CjxhIGhyZWY9Imh0dHA6Ly9wbGFjYXJkMi5iaXRkZWFscy5vcmciPmh0dHA6Ly9wbGFjYXJkMi5iaXRkZWFscy5vcmc8L2E+CjxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS0zMjA4OTI4MTIzLmNvbSI+aHR0cHM6Ly9leGFtcGxlLTMyMDg5MjgxMjMuY29tPC9hPgoKCi0tLS0tClRoYW5rIHlvdSwKQml0RGVhbHMuPC9wcmU+CjwvYm9keT4KPC9odG1sPgo="
      }
      

    2. Запрос информации (--info) о пользователе mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC:

      curl -X POST "https://testnet-dm2.bitdeals.org/api/v1/user/profile" \
          -H "Content-Type: application/json"
          -d '{"code":"mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC"}'

      Пример ответа:

      {
        "id": "65380112-e797-4041-8254-0c8878ea36e2",
        "userid": "fdbde2fe-d7c4-42d4-a6fd-39c58a17afac",
        "created": "2023-03-15T17:03:32.192766+03:00",
        "code": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
        "address": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
        "bitmessages": [
          "BM-2cWUG4jmW9CwKtNYv6nrJFTiNL4f8Ys8Dd"
        ],
        "module": "mynFyJJkRhsbB6y1Q5kTgDGckVz2m9NKH8",
        "btckey": "02128188a04564583a8540bcd584116d7de1d04dbbcc79c8fd5d45e6a1a65c7031",
        "pgpkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmI0EaByQKQEEAMfwUb7ErrEBDLkjYNwxFvzqdekC3+gR/GpyKOz55kNX/Cwm6ohS\nkNJGVlTR73pXSrQV0c14Dwzgf+HCBFamx1toOCW72GytX71aom2uXHLy8JOzc7bk\naQ+wLti0ghx+cdwvgRuJV5co2tlTxh87iariasP3Dgas4wtRrNvDcQNNABEBAAG0\nJEFjY291bnRfVVJMIChodHRwOi8vcmFuZG9tLXNpdGUuY29tKYjOBBMBCgA4FiEE\nnvbbPXqkDv91aLC/44t8noXtKDgFAmgckCkCGwMFCwkIBwMFFQoJCAsFFgIDAQAC\nHgECF4AACgkQ44t8noXtKDhovwP/eSVEE4234FPSAbI04DFSwt+TtwTqlFHV4O0d\nIzoGHNrQDB/jROugZtRsYR5mQtKbRuSSZTxZZikoJAufG3GBaq4JbDVsYQWRYl/G\ncxmOlS3u+qzjLCDKnn7VDDer+Ewbj2Cc4feH4eJe5vk7TOlXRAfPjV+Mm1gxTVUg\ncw44f624jQRoHJApAQQAu1u/UED5BYEblglb399KDyWHWRPSgM7yQvQHSUxUG4y9\nvzyDC303Hj238RI3AsYRF61EoriHlwAibf2d5LXwPpQrBuKyAzOPus3AIsVPqerK\naQB9poEpdHFr6qhDBumm1uHDKeFMhMcObI0Spz1Y5vUfJq5bMV3KGoYcxlac5bEA\nEQEAAYi2BBgBCgAgFiEEnvbbPXqkDv91aLC/44t8noXtKDgFAmgckCkCGwwACgkQ\n44t8noXtKDj1uwP+IS11c2N2dGLzpTHdujN1NVrvPxGur3lAxIidG57fGwK76RYm\nCrXws6SHORphBUw8nYzE1k9ZTOaZ4c/cNYYpDv6sxYqbFcco5WB1BnGUqtXUj4eK\n8vtje+VeZ+DOPmjUIEd3lMcTJo9sUXzLUxwiFIk89IGXSieOJ5QL+8M/M38=\n=4NLS\n-----END PGP PUBLIC KEY BLOCK-----",
        "urlaccount": [
          "https://testnet.bitdeals.org",
          "http://random-site.com"
        ],
        "urltrusted": [
          "https://testnet.bitdeals.org",
          "http://170.75.173.70:4999",
          "https://placard.zr-code.com",
          "http://testnet-dm.bitdeals.org:4999",
          "http://placard.zr-code.com",
          "http://testnet-dm.bitdeals.org",
          "https://testnet-dm2.bitdeals.org",
          "http://testnet-dm2.bitdeals.org",
          "http://testnet.bitdeals.org",
          "https://testnet-dm.bitdeals.org",
          "https://placard.bitdeals.org",
          "http://placard.bitdeals.org",
          "http://testnet2.bitdeals.org",
          "https://testnet2.bitdeals.org",
          "http://placard2.bitdeals.org",
          "https://placard2.bitdeals.org",
          "http://random-site.com"
        ],
        "seller": {
          "count": 11,
          "positive": 5
        },
        "customer": {
          "count": 604,
          "positive": 36
        },
        "state": "2565936d-6798-4035-b30d-9b1d388f40a6",
        "statecode": "enabled",
        "statelabel": "Open"
      }

    3. Запрос списка отзывов (--feedbacks) пользователя mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC:

      curl -X POST "https://testnet-dm2.bitdeals.org/api/v1/deal/feedback/list" \
          -H "Content-Type: application/json" \
          -d '{"search":[{"field":"sellercode","compare":"EQL","value":"mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC"}],"orderby":["date DESC"],"reclimit":1000,"recoffset":0}'

      Пример ответа:

      [
        {
          "deal": "d63350a1-8483-4c0f-87d2-8a4920f7bdba",
          "date": "2025-09-17T11:40:11",
          "sum": 0.002,
          "seller": "65380112-e797-4041-8254-0c8878ea36e2",
          "sellercode": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
          "customer": "65380112-e797-4041-8254-0c8878ea36e2",
          "customercode": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
          "leave_before": "2025-09-17T13:00:00",
          "status": null,
          "statustext": "none",
          "comments": "cancel deal test comment message 3",
          "refund": null
        },
        {
          "deal": "7e82e9c3-0e85-4635-8b53-6da7e541e6e3",
          "date": "2025-09-17T11:29:35",
          "sum": 0.002,
          "seller": "65380112-e797-4041-8254-0c8878ea36e2",
          "sellercode": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
          "customer": "65380112-e797-4041-8254-0c8878ea36e2",
          "customercode": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
          "leave_before": "2025-09-17T12:50:01",
          "status": -1,
          "statustext": "negative",
          "comments": "negative comment text for test",
          "refund": null
        },
        {
          "deal": "3f989f08-b5a0-4ceb-80a5-acd18a6559d4",
          "date": "2025-09-17T11:28:28",
          "sum": 0.002,
          "seller": "65380112-e797-4041-8254-0c8878ea36e2",
          "sellercode": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
          "customer": "65380112-e797-4041-8254-0c8878ea36e2",
          "customercode": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC",
          "leave_before": "2025-09-17T12:50:01",
          "status": 0,
          "statustext": "neutral",
          "comments": null,
          "refund": "50"
        }
      ]

  3. Примеры вывода команд dm-cli account:

    dm-cli account status mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp:

    Hello, mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp!
    
    Your account status: Open
    
    ----- BITCOIN PUBLIC KEY -----
    
    024f226cd37ab7e768de7b68946d661d067ef1d58a183254225a4f91f6ae8918ee
    
    ----- PGP PUBLIC KEY -----
    
    pub  1024R/49dfccb97b9074c6 2025-08-04
    
    uid Account_URL (https://example-3208928123.com)
    sig  sig   49dfccb97b9074c6 2025-08-04
    
    sub  1024R/4060f9d47d382de2 2025-08-04
    sig sbind  49dfccb97b9074c6 2025-08-04
    
    ----- ACCOUNT URL LIST -----
    
    https://example-3208928123.com
    
    ----- TRUSTED URL LIST -----
    
    http://170.75.173.70:4999
    https://placard.zr-code.com
    https://testnet.bitdeals.org
    http://placard.zr-code.com
    http://testnet-dm.bitdeals.org
    https://testnet-dm2.bitdeals.org
    http://testnet-dm2.bitdeals.org
    http://localhost:4999
    http://testnet.bitdeals.org
    http://placard.bitdeals.org
    https://placard.bitdeals.org
    https://testnet-dm.bitdeals.org
    https://testnet2.bitdeals.org
    http://testnet2.bitdeals.org
    https://placard2.bitdeals.org
    http://placard2.bitdeals.org
    https://example-3208928123.com
    
    
    -----
    Thank you,
    BitDeals.

    dm-cli account --info mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC:

    bitcoin: mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC
    btckey: 02128188a04564583a8540bcd584116d7de1d04dbbcc79c8fd5d45e6a1a65c7031
    bitmessage: BM-2cWUG4jmW9CwKtNYv6nrJFTiNL4f8Ys8Dd
    pgpkey: |
      -----BEGIN PGP PUBLIC KEY BLOCK-----
    
      mI0EaByQKQEEAMfwUb7ErrEBDLkjYNwxFvzqdekC3+gR/GpyKOz55kNX/Cwm6ohS
      kNJGVlTR73pXSrQV0c14Dwzgf+HCBFamx1toOCW72GytX71aom2uXHLy8JOzc7bk
      aQ+wLti0ghx+cdwvgRuJV5co2tlTxh87iariasP3Dgas4wtRrNvDcQNNABEBAAG0
      JEFjY291bnRfVVJMIChodHRwOi8vcmFuZG9tLXNpdGUuY29tKYjOBBMBCgA4FiEE
      nvbbPXqkDv91aLC/44t8noXtKDgFAmgckCkCGwMFCwkIBwMFFQoJCAsFFgIDAQAC
      HgECF4AACgkQ44t8noXtKDhovwP/eSVEE4234FPSAbI04DFSwt+TtwTqlFHV4O0d
      IzoGHNrQDB/jROugZtRsYR5mQtKbRuSSZTxZZikoJAufG3GBaq4JbDVsYQWRYl/G
      cxmOlS3u+qzjLCDKnn7VDDer+Ewbj2Cc4feH4eJe5vk7TOlXRAfPjV+Mm1gxTVUg
      cw44f624jQRoHJApAQQAu1u/UED5BYEblglb399KDyWHWRPSgM7yQvQHSUxUG4y9
      vzyDC303Hj238RI3AsYRF61EoriHlwAibf2d5LXwPpQrBuKyAzOPus3AIsVPqerK
      aQB9poEpdHFr6qhDBumm1uHDKeFMhMcObI0Spz1Y5vUfJq5bMV3KGoYcxlac5bEA
      EQEAAYi2BBgBCgAgFiEEnvbbPXqkDv91aLC/44t8noXtKDgFAmgckCkCGwwACgkQ
      44t8noXtKDj1uwP+IS11c2N2dGLzpTHdujN1NVrvPxGur3lAxIidG57fGwK76RYm
      CrXws6SHORphBUw8nYzE1k9ZTOaZ4c/cNYYpDv6sxYqbFcco5WB1BnGUqtXUj4eK
      8vtje+VeZ+DOPmjUIEd3lMcTJo9sUXzLUxwiFIk89IGXSieOJ5QL+8M/M38=
      =4NLS
      -----END PGP PUBLIC KEY BLOCK-----

    dm-cli account --feedbacks p mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp:

    - deal: ff5f337f-e0ab-4515-857f-3a0c8530dcd3
      date: '2025-10-05T15:29:23'
      statustext: positive
      comments: positive comment about the deal
    - deal: b7657c83-1502-4a33-8d35-4317a8d5e086
      date: '2025-09-17T10:44:50'
      statustext: positive
      comments: null
    - deal: 1a79222f-401c-4a73-8f3f-3f0184db3fbb
      date: '2025-08-04T10:42:36'
      statustext: positive
      comments: null
    - deal: ecc50f4c-4477-4eee-84b7-f8b2ba3755a3
      date: '2025-08-04T08:42:46'
      statustext: positive
      comments: null
    - deal: aa7ff721-8b15-42f4-8de0-a79bdf47fd55
      date: '2025-08-01T08:46:16'
      statustext: positive
      comments: null
    - deal: 34010ce2-6775-474d-8316-3bbcea736d8e
      date: '2025-08-01T08:14:23'
      statustext: positive
      comments: null

    dm-cli account --rating mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC:

    created: 2023-03-15
    seller:
      count: 11
      positive: 5
    customer:
      count: 604
      positive: 36

3.3. Изменение учётных данных пользователя

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli account update --help':

    На английском:

    Usage: dm-cli account update [options] <bitcoin_address>
    
        Update user account data.
    
        To change the account data you should sign the current date and new user data
        with your bitcoin private key. For example, current date, new bitmessage, signature:
        2020-01-01
        BM-2cUuxYUFWLCrtpKRMdHCpU1QKEuFtHh7vu
        IEF1ysyhu8ps0m5xSJaZZg/5hBylmcWQQggkGO7yNN8iMf/EA2O287kxi58xCDDtxvdsC0TWqylVE5MT5CouamU=
    
        -d|--date <yyyy-mm-dd>    Current date.
        -s|--signature <sig>      Bitcoin signature.
        -p|--pgp <pgp>            Set up an armored RSA pgp key.
        -u|--url [+/-]<url>       Add/remove an url to trusted list.
        -b|--bitmessage           Change bitmessage address.

    На русском:

    Использование: dm-cli account update [параметры] <биткоин адрес>
    
        Изменить учётные данные пользователя.
    
        Для изменения учётных данных вы должны подписать текущую дату и новые данные пользователя
        вашим приватным биткоин ключом. Например, текущая дата, новый битмессадж, подпись:
        2020-01-01
        BM-2cUuxYUFWLCrtpKRMdHCpU1QKEuFtHh7vu
        IEF1ysyhu8ps0m5xSJaZZg/5hBylmcWQQggkGO7yNN8iMf/EA2O287kxi58xCDDtxvdsC0TWqylVE5MT5CouamU=
    
        -d|--date <yyyy-mm-dd>    Текущая дата.
        -s|--signature <sig>      Биткоин подпись.
        -p|--pgp <pgp>            Установить armored RSA pgp ключ.
        -u|--url [+/-]<url>       Добавить/удалить url в trusted список.
        -b|--bitmessage           Изменить битмессадж адрес.

  2. Примеры входных и выходных данных.

    1. Добавлиение url в trusted список пользователя mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp:

      curl -X POST "https://testnet-dm2.bitdeals.org/api/v1/client/update" \
          -H "Content-Type: application/json" \
          -d '{"address":"mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp","date":"2025-10-21","url":["https://testnet-dm2.bitdeals.org"],"sign":"IAGHICUSCxUrcWTMSL9j94vRufb9l5nBckahT+RznlHMPx9LTPpDHsozxVyxkpjtgrhC8eCyJKNaOw8U/v56pL0="}'

      Пример ответа:

      {"id": "2838be66674f610b06746deb3654a641cf25cc73cb", "action": "Update", "address": "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp", "result": {"success": true, "message": "Account updated"}, "payload": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IkJpdERlYWxzIFBheW1lbnQgU2VydmljZSI+CjwvaGVhZD4KPGJvZHk+CjxwcmU+SGVsbG8sIDxiPm1udW1IczlIUU1ydzJRMWlLTE5ueDlOekV4UzduTUxteXA8L2I+IQoKPGZvbnQgY29sb3I9IiMxNDVBMzIiPjxiPkFjY291bnQgdXBkYXRlZDwvYj48L2ZvbnQ+CgpBY3Rpb246IDxiPlVwZGF0ZTwvYj4KCkluIG1lc3NhZ2UgYm9keSBmb3VuZDoKClRoZSBzaWduYXR1cmUgaXMgPGZvbnQgY29sb3I9IiMxNDVBMzIiPjxiPnZhbGlkLjwvYj48L2ZvbnQ+CgpWZXJpZmljYXRpb24gZGF0ZTogPGI+WWVzPC9iPgpCaXRjb2luIHB1YmxpYyBrZXk6IDxiPk5vPC9iPgpQR1AgcHVibGljIGtleTogPGI+Tm88L2I+ClRydXN0ZWQgVVJMIGNvdW50OiA8Yj4xPC9iPgoKLS0tLS0KVGhhbmsgeW91LApCaXREZWFscy48L3ByZT4KPC9ib2R5Pgo8L2h0bWw+Cg=="}

  3. Пример вывода команды dm-cli account update:

    dm-cli account update -d 2025-10-21 -s "IAGH…​pL0=" -u "https://testnet-dm2.bitdeals.org" mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp:

    success: true
    message: Account updated

  4. Команда должна производить изменение данных пользователя:

    1. PGP ключа

    2. Списка Trusted URL

    3. Bitmessage адреса

3.4. Создание сделки

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli deal create --help':

    На английском:

    Usage: dm-cli deal create [options]
    
        Create a new deal
    
        [smhd] means seconds, minutes, hours, days.
        For example: --leave-before 2020-01-01, or --leave-before 10d.
    
        -a|--at                   Deal site
        -s|--seller               Seller user in deal
        -c|--customer             Customer user in deal
        -t|--type [prepayment|postpayment]
                                  Deal type
        -s|--sum                  Deal sum in BTC
        -l|--leave-before { <yyyy-mm-dd> [hh:mm:ss UTC] | <time>[smhd] }
                                  Deal end date (deal duration); default: 14d
        -p|--pay { <yyyy-mm-dd> [hh:mm:ss UTC] | <time>[smhd] }
                                  Time for make payment; default: 1d

    На русском:

    Использование: dm-cli deal create [параметры]
    
        Создать новую сделку
    
        [smhd] означает секунды, минуты, часы, дни.
        Например: --leave-before 2020-01-01, or --leave-before 10d.
    
        -a|--at                   Сайт проведения сделки
        -s|--seller               Продавец в сделке
        -c|--customer             Покупатель в сделке
        -t|--type [prepayment|postpayment]
                                  Тип сделки
        -s|--sum                  Сумма сделки в BTC
        -l|--leave-before { <гггг-мм-дд> [чч:мм:сс UTC] | <время>[smhd] }
                                  Время окончания сделки (длительность сделки), по умолчанию: 14d
        -p|--pay { <гггг-мм-дд> [чч:мм:сс UTC] | <время>[smhd] }
                                  Время для оплаты сделки; по умолчанию: 1d

  2. Примеры входных и выходных данных.

    1. Запрос создания сделки:

      curl -X POST "https://testnet-dm2.bitdeals.org/api/v1/deal/create" \
          -H "Content-Type: application/json" \
          -d '{"at":"https://testnet-dm2.bitdeals.org","type":"Prepayment","seller":{"address":                               "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp"},"customer":{"address":"mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC"},"payment":{"sum":"0.01000000"}}'

      Пример ответа:

      {"id": "f38bfeeb1ddac852", "action": "Created", "address": "mynFyJJkRhsbB6y1Q5kTgDGckVz2m9NKH8", "deal": {"order": "Created", "type": "Prepayment", "code": "ae6d226b2fe5ce009f252e65fcf66fd079729ac8", "at": "https://testnet-dm2.bitdeals.org", "date": "2025-10-21 09:08:12 UTC", "salt": "343c82c2", "seller": {"address": "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp", "rating": "0+, 32%"}, "customer": {"address": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC", "rating": "0+, 45%"}, "payment": {"address": "2N7gRqGakSZaowyqSHSULaPzp7Fy2KKUQQ7", "until": "2025-10-22 09:08:12 UTC", "sum": "0.01 tBTC"}, "feedback": {"leave_before": "2025-11-04 09:08:12 UTC"}}, "result": {"success": true, "message": "New deal created"}, "payload": "LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQpIYXNoOiBTSEE1MTIKCmRlYWw6CiAgb3JkZXI6IENyZWF0ZQogIHR5cGU6IFByZXBheW1lbnQKICBhdDogaHR0cHM6Ly90ZXN0bmV0LWRtMi5iaXRkZWFscy5vcmcKICBkYXRlOiAyMDI1LTEwLTIxIDA5OjA4OjEyIFVUQwogIHNhbHQ6IDM0M2M4MmMyCiAgc2VsbGVyOgogICAgYWRkcmVzczogbW51bUhzOUhRTXJ3MlExaUtMTm54OU56RXhTN25NTG15cAogICAgcmF0aW5nOiAwKywgMzIlCiAgY3VzdG9tZXI6CiAgICBhZGRyZXNzOiBtcmFYeDdKcm1BbXVLeXBkSjF2c2VRQlh5U3NkUlpFNUFDCiAgICByYXRpbmc6IDArLCA0NSUKICBwYXltZW50OgogICAgYWRkcmVzczogMk43Z1JxR2FrU1phb3d5cVNIU1VMYVB6cDdGeTJLS1VRUTcKICAgIHVudGlsOiAyMDI1LTEwLTIyIDA5OjA4OjEyIFVUQwogICAgc3VtOiAwLjAxIHRCVEMKICBmZWVkYmFjazoKICAgIGxlYXZlLWJlZm9yZTogMjAyNS0xMS0wNCAwOTowODoxMiBVVEMKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogY2MKCndwd0VBUUVLQUFZRkFtajNUWUFBQ2drUURqa3UwOE9pdDFJR1NnUCtMQWR4aUYrNkpISFpDWHJaNlFHdHhZdTQKeGdGeXJub3FmQ3pxaU0xVlF1MDhsbERtUnZ1aFRMTDBQTUxxUGdXUUYvRTBKckt0T0d1YmRVYlBCaWpKbm04eApiVWJjczRaOEtIcjZOOERhRXdnOU9MQVNYbnpVRGVzMGhCUDJsNEViK1JwWmFRdjhUMUFUeW1aVEt3bjNtbTI5CjZoL0hLQnVHS0hXY1U2MG5nQ2c9Cj1kUXdGCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ=="}

  3. Пример вывода команды dm-cli deal create:

    Пример вывода команды 'dm-cli deals create -t prepayment -s mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp -c mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC -s 0.01:

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512
    
    deal:
      order: Confirmed
      type: Prepayment
      at: https://testnet-dm2.bitdeals.org
      date: 2025-10-21 09:08:12 UTC
      salt: 343c82c2
      seller:
        address: mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp
        rating: 600+, 32%
      customer:
        address: mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC
        rating: 600+, 36%
      payment:
        address: 2N7gRqGakSZaowyqSHSULaPzp7Fy2KKUQQ7
        until: 2025-10-22 09:08:12 UTC
        sum: 0.01 tBTC
      feedback:
        leave-before: 2025-11-04 09:08:12 UTC
        status: None
    -----BEGIN PGP SIGNATURE-----
    Version: cc
    
    wpwEAQEKAAYFAmj3UBgACgkQDjku08Oit1JLogQA0PofMslTfBrNCKFfdlAgj/8A
    03lXiHPRd36PVzaa8lK6tHmdfs0EFrp28InXLswfksXD/0Hj9SBKrDQz1qxwqXqZ
    rGC1RiXqRpHxl++3/lx3AguPPX5QydjDEwKSA3lL2pnsnnqe2edqUttJzunz9LYy
    mhdbFlS1jaFzO0w25Ww=
    =1TmH
    -----END PGP SIGNATURE-----

  4. Команда должна создавать сделку с учётом указанных параметров:

    • Место (сайт) проведения сделки [deal.at];

    • Стороны сделки [seller, customer];

    • Тип сделки [Prepayment, Postpayment];

    • Сумма сделки в BTC [payment.sum];

    • Длительность сделки [feedback.leave-before];

    • Время для оплаты сделки [payment.until];

3.5. Статус сделки

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli deal status --help':

    На английском:

    Usage: dm-cli deal status { <bitcoin_address>|<deal_code> }
    
        Show a deal data details
    
        To show a deal details use a bitcoin payment address or a deal code.
    
        -i|--is-paid              Check a deal is Paid. Returns an exit code 0 if deal is Paid, or non-zero otherwise.

    На русском:

    Использование: dm-cli deal status { <биткоин адрес>|<код сделки> }
    
        Показать детали сделки
    
        Чтобы показать детали сделки используйте адрес оплаты сделки или код сделки.
    
        -i|--is-paid              Проверить является ли сделка оплаченной. Возвращает exit code 0 если сделка является оплаченной, или не ноль в других случаях.

  2. Примеры входных и выходных данных.

    1. Запрос статуса сделки:

      curl -X POST "https://testnet-dm2.bitdeals.org/api/v1/deal/status" \
          -H "Content-Type: application/json" \
          -d '{"address":"3e251d8fdcfa80adf5a3050064fc4ecb01d304d1"}'

      Пример ответа:

      {"id": "207022ea5d39ebb2", "action": "Status", "deal": {"order": "Confirmed", "type": "Prepayment", "code": "3e251d8fdcfa80adf5a3050064fc4ecb01d304d1", "at": "https://testnet-dm2.bitdeals.org", "date": "2025-10-21 09:02:11 UTC", "salt": "fd986961", "seller": {"address": "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp", "rating": "0+, 32%"}, "customer": {"address": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC", "rating": "0+, 36%"}, "payment": {"address": "2NCBgmt37qw97ujZFjgmPEWuoYweR4BWT9g", "until": "2025-10-22 09:02:11 UTC", "sum": "0.01 tBTC"}, "feedback": {"leave_before": "2025-11-04 09:02:11 UTC"}}, "result": {"success": true, "message": "Deal status"}, "payload": "LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQpIYXNoOiBTSEE1MTIKCmRlYWw6CiAgb3JkZXI6IENvbmZpcm1lZAogIHR5cGU6IFByZXBheW1lbnQKICBhdDogaHR0cHM6Ly90ZXN0bmV0LWRtMi5iaXRkZWFscy5vcmcKICBkYXRlOiAyMDI1LTEwLTIxIDA5OjAyOjExIFVUQwogIHNhbHQ6IGZkOTg2OTYxCiAgc2VsbGVyOgogICAgYWRkcmVzczogbW51bUhzOUhRTXJ3MlExaUtMTm54OU56RXhTN25NTG15cAogICAgcmF0aW5nOiA2MDArLCAzMiUKICBjdXN0b21lcjoKICAgIGFkZHJlc3M6IG1yYVh4N0pybUFtdUt5cGRKMXZzZVFCWHlTc2RSWkU1QUMKICAgIHJhdGluZzogNjAwKywgMzYlCiAgcGF5bWVudDoKICAgIGFkZHJlc3M6IDJOQ0JnbXQzN3F3OTd1alpGamdtUEVXdW9Zd2VSNEJXVDlnCiAgICB1bnRpbDogMjAyNS0xMC0yMiAwOTowMjoxMSBVVEMKICAgIHN1bTogMC4wMSB0QlRDCiAgZmVlZGJhY2s6CiAgICBsZWF2ZS1iZWZvcmU6IDIwMjUtMTEtMDQgMDk6MDI6MTEgVVRDCiAgICBzdGF0dXM6IE5vbmUKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogY2MKCndwd0VBUUVLQUFZRkFtajNZc0VBQ2drUURqa3UwOE9pdDFLWHpnUC9jd2YrcXI2NGFnSnFrdDBNd2orTzlhb0EKYXE4QndlQXdjc1B0ZEgzMGlhZGZ0c3RidlpmN3Rsc1ppVUxJbHhaTnBRR0VEdUp4czROcVdHTnhwaFlIQ2ZuMAp1T1VRRkZVeTJubmVEUElGSFJhM2I2TFMzQXd3ZGxkWjI1K1ozUmozOU5rQ3BCeGJEMWxWRGJQNWtoOEtwQlVwClNPMnNLRWZIT2hhOXBieHNvWU09Cj1SSUZOCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ=="}

  3. Пример вывода команды dm-cli deal status:

    Пример вывода команды dm-cli deal status 2N7gRqGakSZaowyqSHSULaPzp7Fy2KKUQQ7:

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512
    
    deal:
      order: Create
      type: Prepayment
      at: https://testnet-dm2.bitdeals.org
      date: 2025-10-21 09:08:12 UTC
      salt: 343c82c2
      seller:
        address: mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp
        rating: 0+, 32%
      customer:
        address: mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC
        rating: 0+, 45%
      payment:
        address: 2N7gRqGakSZaowyqSHSULaPzp7Fy2KKUQQ7
        until: 2025-10-22 09:08:12 UTC
        sum: 0.01 tBTC
      feedback:
        leave-before: 2025-11-04 09:08:12 UTC
    -----BEGIN PGP SIGNATURE-----
    Version: cc
    
    wpwEAQEKAAYFAmj3TYAACgkQDjku08Oit1IGSgP+LAdxiF+6JHHZCXrZ6QGtxYu4
    xgFyrnoqfCzqiM1VQu08llDmRvuhTLL0PMLqPgWQF/E0JrKtOGubdUbPBijJnm8x
    bUbcs4Z8KHr6N8DaEwg9OLASXnzUDes0hBP2l4Eb+RpZaQv8T1ATymZTKwn3mm29
    6h/HKBuGKHWcU60ngCg=
    =dQwF
    -----END PGP SIGNATURE-----

  4. Проверка --is-paid должна проверять состояние оплаты сделки на основе полученного текста деталей сделки. Для order: Paid, order: Completed, order: Executed - сделка оплачена, соответсвенно, exit code команды должен быть равен 0.

3.6. Завершение сделки

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli deal complete --help':

    На английском:

    Usage: dm-cli deal complete [options] { <bitcoin_address>|<deal_code> }
    
        Complete a deal
    
        -p|--positive             Complete deal with positive feedback. (default action)
        -r|--refund <num>         Refund % number of a deal sum to the customer. Format: 100.00[%]

    На русском:

    Использование: dm-cli deal complete [параметры] { <биткоин адес>|<код сделки> }
    
        Завершить сделку
    
        -p|--positive             Завершить сделку с позитивным отзывом. (действие по умолчанию)
        -r|--refund <num>         Возврат % от суммы сделки покупателю. Формат: 100.00[%]

  2. Примеры входных и выходных данных.

    1. Запрос завершения сделки:

      curl -X POST "https://testnet-dm2.bitdeals.org/api/v1/deal/complete" \
          -H "Content-Type: application/json" \
          -d '{"order":"Paid","type":"Postpayment","code":"d87cc05dd42bf4fb6cc5d231388a254de94b787a","at":"https://testnet-dm2.bitdeals.org","date":"2025-10-21 11:36:26 UTC","salt":"8f489443","seller":{"address":"mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp","rating":"600+, 32%"},"customer":{"address":"mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC","rating":"600+, 36%"},"payment":{"address":"2Mvh1UozwwUwuFcmeCqQm7UEKAxnV4ANhAS","until":"2025-10-22 11:36:26 UTC","sum":"0.01 tBTC"},"feedback":{"leave_before":"2025-11-04 11:36:26 UTC","status":"Neutral","refund":45}}'

      Пример ответа:

      {"id": "f1c94f5a62e005b4", "action": "Complete", "deal": {"order": "Complete", "type": "Postpayment", "code": "d87cc05dd42bf4fb6cc5d231388a254de94b787a", "at": "https://testnet-dm2.bitdeals.org", "date": "2025-10-21 11:36:26 UTC", "salt": "8f489443", "seller": {"address": "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp", "rating": "0+, 32%"}, "customer": {"address": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC", "rating": "0+, 36%"}, "payment": {"address": "2Mvh1UozwwUwuFcmeCqQm7UEKAxnV4ANhAS", "until": "2025-10-22 11:36:26 UTC", "sum": "0.01 tBTC"}, "feedback": {"leave_before": "2025-11-04 11:36:26 UTC", "status": "Neutral"}}, "result": {"success": true, "message": "Completion command accepted"}, "payload": "CgotLS0tLSBSRVBPUlQgLS0tLS0KClBHUCBzaWduYXR1cmU6IDxmb250IGNvbG9yPSIjMTQ1QTMyIj48Yj52YWxpZC4KPC9iPjwvZm9udD5Nb2R1bGU6IG15bkZ5SkprUmhzYkI2eTFRNWtUZ0RHY2tWejJtOU5LSDgKCkZlZTogMSU="}

  3. Пример вывода команды dm-cli deal complete:

    Пример вывода команды dm-cli deal complete -r 45 2Mvh1UozwwUwuFcmeCqQm7UEKAxnV4ANhAS:

    success: true
    message: Completion command accepted

3.7. Отмена сделки

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli deal cancel --help':

    На английском:

    Usage: dm-cli deal cancel [options] <bitcoin_address>
    
        Cancel a deal
    
        To cancel a deal you should sign the deal payment address and feeback text message
        with the seller bitcoin private key. For example, address, feedback, signature:
        2NEVoXnRgUeb3j17s7pP6DoFHBVHMb94gF5
        seller random cancel reason text
        IEOGJ5q/a2cWJPMosQmCHNN6RsXF8Xy/UgaazIoY2i5udbw/v38g1/PdWs451dvFr9Iq/Bq5YL2YdpUFTuijQ60=
    
        -m|--message <text>       Deal cancel reason text message
        -s|--signature <sig>      Bitcoin signature.

    На русском:

    Использование: dm-cli deal cancel [параметры] <биткоин адрес>
    
        Отменить сделку
    
        Для отмены сделки вы должны подписать адрес оплаты сделки и текст отзыва биткоин
        ключом продавца. Например, адрес, отзыв, подпись:
        2NEVoXnRgUeb3j17s7pP6DoFHBVHMb94gF5
        seller random cancel reason text
        IEOGJ5q/a2cWJPMosQmCHNN6RsXF8Xy/UgaazIoY2i5udbw/v38g1/PdWs451dvFr9Iq/Bq5YL2YdpUFTuijQ60=
    
        -m|--message <text>       Текст сообщения с причино отмены сделки
        -s|--signature <sig>      Биткоин подпись.

  2. Примеры входных и выходных данных.

    1. Запрос завершения сделки:

      curl --location 'https://testnet-dm2.bitdeals.org/api/v1/deal/cancel' \
      --form 'type="Postpayment"' \
      --form 'at="https://testnet-dm2.bitdeals.org"' \
      --form 'date="2025-10-21 11:59:41 UTC"' \
      --form 'salt="98b00a5e"' \
      --form 'seller_address="mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp"' \
      --form 'seller_rating="600+, 32%"' \
      --form 'seller_signature="IERJW29usD99pIkyJktK7z24fxdWncr9GoN/bBvfeHELDNj2aMSOC0JzNqQbnnsT3ETA9mEB9gj5YF+AD4ACuwE="' \
      --form 'customer_address="mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC"' \
      --form 'customer_rating="600+, 36%"' \
      --form 'payment_address="2Mt7UW5RqXUaEN7Y93jo67ZgixcLNPDgvvk"' \
      --form 'payment_until="2025-10-22 11:59:41 UTC"' \
      --form 'payment_sum="0.01 tBTC"' \
      --form 'feedback_leave_before="2025-11-04 11:59:41 UTC"' \
      --form 'feedback_status="None"' \
      --form 'feedback_comments="Cancellation comments"'

      Пример ответа:

      {"id": "3f1b2d6409bfa4bd", "action": "Cancelled", "address": "mynFyJJkRhsbB6y1Q5kTgDGckVz2m9NKH8", "deal": {"order": "Cancelled", "type": "Postpayment", "code": "6e7fa8bdd6f406bf3f5d253b67730523ea62b03f", "at": "https://placard.bitdeals.org", "date": "2024-10-23 10:34:09 UTC", "salt": "6cbf5879", "seller": {"address": "mnumHs9HQMrw2Q1iKLNnx9NzExS7nMLmyp", "rating": "0, 0%"}, "customer": {"address": "mraXx7JrmAmuKypdJ1vseQBXySsdRZE5AC", "rating": "0, 0%"}, "payment": {"address": "2NFgvA4f8ibA5jJ6hca1dX9HvBguNTgP6eR", "until": "2024-10-23 15:34:09 UTC", "sum": "0.00519519 tBTC"}, "feedback": {"leave_before": "2025-07-10 10:34:09 UTC", "status": "Positive", "comments": "random deal cancel message"}}, "result": {"success": true, "message": "Deal cancelled"}, "payload": "CgotLS0tLSBSRVBPUlQgLS0tLS0KClBHUCBzaWduYXR1cmU6IDxmb250IGNvbG9yPSIjMTQ1QTMyIj48Yj52YWxpZC4KPC9iPjwvZm9udD5Nb2R1bGU6IG15bkZ5SkprUmhzYkI2eTFRNWtUZ0RHY2tWejJtOU5LSDgKCkZlZTogMSU="}

  3. Пример вывода команды dm-cli deal cancel:

    Пример вывода команды dm-cli deal cancel -m "Cancellation comments" -s "CgoL…​MSU=" 2Mt7UW5RqXUaEN7Y93jo67ZgixcLNPDgvvk:

    success: true
    message: Deal cancelled

3.8. Оставление негативного отзыва

  1. Запрос должен происходить в соответствии с синтаксисом:

    Пример сообщения 'dm-cli deal negative --help':

    На английском:

    Usage: dm-cli deal negative [options] <bitcoin_address>
    
        Leave a negative feedback
    
        To leave a negative feedback you should sign the deal payment address and feeback text message
        with the customer bitcoin private key. For example, address, feedback, signature:
        2NEVoXnRgUeb3j17s7pP6DoFHBVHMb94gF5
        customer random feedback text
        H1u44C5cyEeKjHqnNnn09B8mIRMdqgR8PD9AeF8mv+cCEqM9HPkcWLrc8a/v2po2YmXJSeya6uy0XaLnmmmO/1o=
    
        -m|--message <text>       Deal feedback text message
        -s|--signature <sig>      Bitcoin signature.

    На русском:

    Использование: dm-cli deal negative [options] <биткоин адрес>
    
        Оставить негативный отзыв
    
        Для оставления негативного отзыва ва должны подписать адрес оплаты сделки и текст отзыва биткоин
        ключом покупателя. Например, адрес, отзыв, подпись:
        2NEVoXnRgUeb3j17s7pP6DoFHBVHMb94gF5
        customer random feedback text
        H1u44C5cyEeKjHqnNnn09B8mIRMdqgR8PD9AeF8mv+cCEqM9HPkcWLrc8a/v2po2YmXJSeya6uy0XaLnmmmO/1o=
    
        -m|--message <text>       Текст сообщения отзыва
        -s|--signature <sig>      Биткоин подпись.

  2. Примеры входных и выходных данных.

    1. Запрос завершения сделки:

      Пример ответа:

  3. Пример вывода команды dm-cli deal negative:

    Пример вывода команды dm-cli deal negative:

  4. В результате исполнения команды, указанная сделка должна получить негативный отзыв (status: Negative).