• XSS.stack #1 – первый литературный журнал от юзеров форума

прочее xss.pro XMRAPI - An API to allow businesses and merchants to accept payments in Monero.

voldemort

(L3) cache
Пользователь
Регистрация
27.07.2023
Сообщения
289
Реакции
253
Гарант сделки
1
XMRAPI, написанный на языке Go поверх веб-фреймворка Fiber, упрощает прием платежей способом, обеспечивающим безопасность.

Требования к аппаратному обеспечению:
Как минимум 4 ГБ оперативной памяти и 2 ядра ЦП (поскольку на нем также будет работать сервер Monero RPC).
Требования к программному обеспечению:
Nginx Web Server, Tor, Monero cli wallet
Как настроить:
Перейдите к файлам main.go и xmr.go в начале и измените константы: RPCUSER, RPCPASS, MULTISIG_WALLET_PASS, APIKEY, PORT.
Bash:
cd xmr
go build
После этого войдите на сервер и запустите Monero RPC, введя следующую команду.
Bash:
./monero-wallet-rpc --rpc-login rpc_user:rpc_password --daemon-address node.moneroworld.com:18089 --wallet-file WalletFileName --password 'pass' --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18082
Запустите сеть Tor, поскольку преобразование из USD в XMR будет выполняться через Tor, чтобы добавить некоторую анонимность.
mechanism.png


Пожалуйста, друзья, если вы обнаружите какие-либо ошибки или проблемы безопасности, сообщите мне. Я буду очень рад исправить их. Наслаждайтесь!
 

Вложения

  • xmr.zip
    6.3 КБ · Просмотры: 60
Можно чуть деталей по проекту ?
Это мерч оплаты картой юсд который сразу прилетает в хмр на кош?
Это позволяет вам принимать платежи в Monero (XMR), а также обрабатывает некоторую логику, с которой вы столкнетесь в своем бизнесе.
 
Не понятно зачем.
Это выглядит как приложение которое просто пересылает туда сюда json.
Принимает json, изменили названия полей и перенаправили в rpc, иногда сделали 2 запроса, и вернули обратно

Но для использования в любом проекте этого мало. Это не отличается от использования простого RPC.
Нет callback/webhooks, отслеживания адресов, одновременной работы с разными кошельками.

Зачем?
Это hello world с зашитыми магическими числами (смотри адрес прокси и xmr.go строка 26) и однотипными функциями

Вот код из файла xmr.go
Код:
    app.Get("/SignTransaction/:tx", ValidateAPIKey(), func(c *fiber.Ctx) error {
        tx := c.Params("tx")
        signedTx, err := SignMultisigTransaction(tx)
        if err != nil {
            return c.SendString(err.Error())
        }
        return c.SendString(signedTx)
    })
И код функции из файла xmr.go
Код:
func SignMultisigTransaction(tx string) (string, error) {
    //request to sign multisig transaction
    resp, err := rpc.SignMultisig(&wallet.RequestSignMultisig{TxDataHex: tx})
    if err != nil {
        return "", err
    }
    return resp.TxDataHex, nil
}

Зачем это делать? Если можно за 4 шага сделать:
Код:
func SignMultisigTransaction(tx string) (FOO, error) {
    //request to sign multisig transaction
    resp, err :=  rpc.SignMultisig(&wallet.RequestSignMultisig{TxDataHex: tx})
    return resp, err  // логика не изменилась
}

А потом удалить функцию SignMultisigTransaction (и скорее всего файл xmr.go) и сделать так:
Код:
    app.Get("/SignTransaction/:tx", ValidateAPIKey(), func(c *fiber.Ctx) error {
        tx := c.Params("tx")
        foo, err :=  rpc.SignMultisig(&wallet.RequestSignMultisig{TxDataHex: tx})
        if err != nil {
            return c.SendString(err.Error())
        }
        return c.SendString(foo.TxDataHex)
    })

Ну плохо же! :) Просто однотипное дублирование методов. И так половина проекта.
Для пользы надо повышать абстракцию, а не оставлять ее преждней.
А этого в достаточном количестве я не увидел
 
Добавление страницы оплаты, которая не использует JavaScript, также добавление функции, которая работает в фоновом режиме для удаления истекших платежей.
 

Вложения

  • xssXMRAPI.zip
    15.4 КБ · Просмотры: 13
Можно чуть деталей по проекту ?
Это мерч оплаты картой юсд который сразу прилетает в хмр на кош?
мерч на XMR
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх