Стандарт формата QR-кода для транзакций в блокчейне

Я пытаюсь создать генератор QR-кода, который будет генерировать данные транзакций для некоторых распространенных блокчейнов и кошельков.

Существует некоторая путаница в отношении формата для разных блокчейнов, но, по крайней мере, для основных блокчейнов — похоже, он определяется как:

      ethereum:0xb794f5ea0ba39494ce839613fffba74279579268?amount=1.123

дляETH(или BTC) и

      ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/transfer?address=0xb794f5ea0ba39494ce839613fffba74279579268&uint256=111.123e6

для EVM-совместимых монет (например,USDCздесь).
источник: https://eips.ethereum.org/EIPS/eip-681

однако... BNB, похоже, не следует этому формату. Я пробовал следующее:

      binance:0xba5830175b16e5e48d94c6fa11041ff9ed3bae5a?amount=1.123
bnb:0xba5830175b16e5e48d94c6fa11041ff9ed3bae5a?amount=1.123
binance:0xba5830175b16e5e48d94c6fa11041ff9ed3bae5a?amount=1.123&memo=1234

и:

  • оба приложения Binance и Exodus не понимают ничего из вышеперечисленного (даже eth или btc) — я был бы признателен за ссылки на их спецификации требований к коду qr.

  • Trust Wallet не принимает адрес BNB, написанный таким образом (как ни странно — сумма и заметка работают без нареканий — то же самое здесь, ссылки на документы были бы потрясающими

  • метамаска (которая совместима со смарт-цепью Binance) не понимает ни одну из опций BNB — то же самое здесь

Честно говоря, я потратил часы на изучение этой темы и просто поражен отсутствием документации по этому вопросу.

в качестве бонуса, просто для информирования других - XRP имеет свой собственный сверхсложный формат QR-кода, и он доступен в виде пакета здесь: https://www.npmjs.com/package/ripple-address-codec .

в любом случае. Любая помощь будет оценена! ваше здоровье

1 ответ

Для блокчейнов EVM, таких как BinanceSmartChain, ответ находится в предоставленной вами документации. Вам необходимо использовать идентификатор ChainId (56 для основной сети BinanceSmartChain), вы можете проверить его на https://chainlist.org/.

Итак, пример строки может быть

Эфириум:0xb794f5ea0ba39494ce839613fffba74279579268@56?amount=1

(имя, которое может вызвать некоторую путаницу, по-прежнему Эфириум)

этот URL запрашивает 10^-18 BNB для адреса 0xb794f5ea0ba39494ce839613fffba74279579268

Следует отметить, что сумма в такой строке предполагается целым числом, поскольку она кратна наименьшей единице, вашему примеру.

Ethereum: 0xb794f5ea0ba39494ce839613fffba74279579268?amount=1,123

неверно, это может быть Ethereum:0xb794f5ea0ba39494ce839613fffba74279579268?amount=1123, запрашивается 1123 wei, iguals до 1.123e-15 ETH

Если я могу помочь чем-то еще, не стесняйтесь спрашивать

Другие вопросы по тегам