Skip to content

Commit

Permalink
Add random image after order creation (#619)
Browse files Browse the repository at this point in the history
* Add random image after order creation

The seller receives an image once an order is created. They will also receive the same image when paying the invoice.

This way, they can verify that the invoice originates from the bot.

Signed-off-by: ndungudedan <[email protected]>

* feat update: Change of images used; Random image on the QR, translations for updated text

* fix: image size update

---------

Signed-off-by: ndungudedan <[email protected]>
  • Loading branch information
ndungudedan authored Jan 2, 2025
1 parent e1563fd commit a943bea
Show file tree
Hide file tree
Showing 89 changed files with 519 additions and 34 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ node_modules
.env
admin.macaroon
tls.cert
dist/
dist/
.history/
3 changes: 2 additions & 1 deletion bot/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,8 @@ const showHoldInvoice = async (ctx, bot, order) => {
request,
amount,
order.fiat_code,
order.fiat_amount
order.fiat_amount,
order.random_image
);
} catch (error) {
logger.error(`Error in showHoldInvoice: ${error}`);
Expand Down
40 changes: 27 additions & 13 deletions bot/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { IConfig } from '../models/config';
import { IPendingPayment } from '../models/pending_payment';
import { PayViaPaymentRequestResult } from 'lightning';
import { IFiat } from '../util/fiatModel';
import { generateQRWithImage } from '../util';

const startMessage = async (ctx: MainContext) => {
try {
Expand Down Expand Up @@ -86,9 +87,11 @@ const invoicePaymentRequestMessage = async (
rate,
days: ageInDays,
});

await ctx.telegram.sendMessage(user.tg_id, message);

// Create QR code
const qrBytes = await QR.toBuffer(request);
const qrBytes = await generateQRWithImage(request, order.random_image);
// Send payment request in QR and text
await ctx.telegram.sendMediaGroup(user.tg_id, [
{
Expand All @@ -107,13 +110,17 @@ const pendingSellMessage = async (ctx: Telegraf<MainContext>, user: UserDocument
try {
const orderExpirationWindow =
Number(process.env.ORDER_PUBLISHED_EXPIRATION_WINDOW) / 60 / 60;
await ctx.telegram.sendMessage(
user.tg_id,
i18n.t('pending_sell', {

await ctx.telegram.sendMediaGroup(user.tg_id, [{
type: 'photo',
media: { source: Buffer.from(order.random_image, 'base64') },
caption: `${i18n.t('pending_sell', {
channel,
orderExpirationWindow: Math.round(orderExpirationWindow),
})
})}`,
}]
);

await ctx.telegram.sendMessage(
user.tg_id,
i18n.t('cancel_order_cmd', { orderId: order._id }),
Expand Down Expand Up @@ -318,10 +325,14 @@ const beginTakeBuyMessage = async (ctx: MainContext, bot: Telegraf<MainContext>,
try {
const expirationTime =
Number(process.env.HOLD_INVOICE_EXPIRATION_WINDOW) / 60;
await bot.telegram.sendMessage(
seller.tg_id,
ctx.i18n.t('begin_take_buy', { expirationTime })

await bot.telegram.sendMediaGroup(seller.tg_id, [{
type: 'photo',
media: { source: Buffer.from(order.random_image, 'base64') },
caption: `${ctx.i18n.t('begin_take_buy', { expirationTime })}`,
}]
);

await bot.telegram.sendMessage(seller.tg_id, order._id, {
reply_markup: {
inline_keyboard: [
Expand All @@ -348,23 +359,27 @@ const showHoldInvoiceMessage = async (
request: string,
amount: number,
fiatCode: IOrder["fiat_code"],
fiatAmount: IOrder["fiat_amount"]
fiatAmount: IOrder["fiat_amount"],
randomImage: IOrder["random_image"]
) => {
try {
let currency = getCurrency(fiatCode);
currency =
!!currency && !!currency.symbol_native
? currency.symbol_native
: fiatCode;

await ctx.reply(
ctx.i18n.t('pay_invoice', {
amount: numberFormat(fiatCode, amount),
fiatAmount: numberFormat(fiatCode, fiatAmount),
currency,
})
);

// Create QR code
const qrBytes = await QR.toBuffer(request);
const qrBytes = await generateQRWithImage(request, randomImage);

// Send payment request in QR and text
await ctx.replyWithMediaGroup([
{
Expand Down Expand Up @@ -1597,9 +1612,8 @@ const showConfirmationButtons = async (ctx: MainContext, orders: Array<IOrder>,
};
})
.map(ord => ({
text: `${ord._id.slice(0, 2)}..${ord._id.slice(-2)} - ${ord.type} - ${
ord.fiat
} ${ord.amount}`,
text: `${ord._id.slice(0, 2)}..${ord._id.slice(-2)} - ${ord.type} - ${ord.fiat
} ${ord.amount}`,
callback_data: `${commandString}_${ord._id}`,
}));
inlineKeyboard.push(lineBtn);
Expand Down
5 changes: 5 additions & 0 deletions bot/ordersActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const {
getFee,
getUserAge,
getStars,
generateRandomImage,
} = require('../util');
const { logger } = require('../logger');

Expand Down Expand Up @@ -99,6 +100,10 @@ const createOrder = async (
}
await order.save();

const randomImage = await generateRandomImage(order._id);
order.random_image = randomImage;
await order.save();

if (order.status !== 'PENDING') {
OrderEvents.orderUpdated(order);
}
Expand Down
Binary file added images/Ant.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Aquarium.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Badger.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bat Face.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bear.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Beaver.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bee.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bird.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bug.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bull.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Bumblebee.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Butterfly.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Cat Footprint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Cat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Caterpillar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Chicken.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Clown Fish.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Corgi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Cow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Crab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Deer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Dinosaur.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Dog Park.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Dog.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Dolphin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/Dragonfly.png
Binary file added images/Duck.png
Binary file added images/Elephant.png
Binary file added images/Falcon.png
Binary file added images/Fish Food.png
Binary file added images/Fish.png
Binary file added images/Fly.png
Binary file added images/Frog.png
Binary file added images/Giraffe.png
Binary file added images/Gorilla.png
Binary file added images/Grasshopper.png
Binary file added images/Hornet Hive.png
Binary file added images/Hornet.png
Binary file added images/Horse.png
Binary file added images/Hummingbird.png
Binary file added images/Icons8 Logo.png
Binary file added images/Insect.png
Binary file added images/Kangaroo.png
Binary file added images/Kiwi Bird.png
Binary file added images/Ladybird.png
Binary file added images/Leopard.png
Binary file added images/Lion.png
Binary file added images/Llama.png
Binary file added images/Mite.png
Binary file added images/Mosquito.png
Binary file added images/Octopus.png
Binary file added images/Panda.png
Binary file added images/Pig With Lipstick.png
Binary file added images/Pig.png
Binary file added images/Prawn.png
Binary file added images/Puffin Bird.png
Binary file added images/Rabbit.png
Binary file added images/Rhinoceros.png
Binary file added images/Seahorse.png
Binary file added images/Shark.png
Binary file added images/Sheep.png
Binary file added images/Snail.png
Binary file added images/Spider.png
Binary file added images/Starfish.png
Binary file added images/Stork.png
Binary file added images/Tentacles.png
Binary file added images/Turtle.png
Binary file added images/Unicorn.png
Binary file added images/Wasp.png
Binary file added images/Whale.png
Binary file added images/Wolf.png
11 changes: 10 additions & 1 deletion locales/de.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,16 @@ invoice_payment_request: |
Buyer Reputation: ${rate}, Tage mit dem Bot: ${days}
Hinweis: Vergewissern Sie sich vor der Zahlung der Rechnung, dass das beigefügte Bild mit dem bei der Bestellung gesendeten Bild übereinstimmt
Bitte bezahle diese LN-Rechnung, um deinen Verkaufsprozess zu starten. Diese LN-Rechnung läuft in ${expirationTime} Minuten ab
pending_sell: |
📝 Dein Angebot wurde im Kanal ${channel} veröffentlicht
Du musst warten, bis ein anderer Nutzer deinen Auftrag auswählt. Sie wird für ${orderExpirationWindow} Stunden im Kanal verfügbar sein
Hinweis: Merken Sie sich dieses Bild, da Sie es später in der Zahlungsrechnung wiedersehen werden
Bevor ein anderer Benutzer dein Angebot annimmt, kannst du diesen mit dem folgenden Befehl stornieren 👇
cancel_order_cmd: |
/cancel ${orderId}
Expand Down Expand Up @@ -100,9 +104,14 @@ order_already_settled: Diese Bestellung wurde bereits abgewickelt.
invalid_data: Du hast ungültige Daten gesendet, versuche es erneut.
begin_take_buy: |
🤖 Drücke auf Weiter, um das Angebot anzunehmen. Wenn du auf Abbrechen drückst, wird der Auftrag freigegeben und neu veröffentlicht. Du hast ${expirationTime} Minuten, bevor dieser Auftrag abläuft.
Hinweis: Merken Sie sich dieses Bild, da Sie es später in der Zahlungsrechnung wiedersehen werden
continue: Weiter
cancel: Abbrechen
pay_invoice: Bitte bezahle diese LN-Rechnung von ${amount} sats für ${currency} ${fiatAmount}, um den Vorgang zu starten.
pay_invoice: |
Hinweis: Vergewissern Sie sich vor der Zahlung der Rechnung, dass das beigefügte Bild mit dem bei der Bestellung gesendeten Bild übereinstimmt
Bitte bezahle diese LN-Rechnung von ${amount} sats für ${currency} ${fiatAmount}, um den Vorgang zu starten.
payment_received: |
🤑 Zahlung erhalten!
Expand Down
15 changes: 13 additions & 2 deletions locales/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,16 @@ invoice_payment_request: |
Buyer Reputation: ${rate}, days using the bot: ${days}
Note: Confirm that the attached image matches the one sent during order creation before paying the invoice
Please pay this invoice to start up your selling process, it will expire in ${expirationTime} minutes
pending_sell: |
📝 Your offer has been published in the ${channel} channel
You have to wait until another user picks your order, it will be available for ${orderExpirationWindow} hours in the channel
Note: Remember this image because you will see it again inside the invoice to pay
You can cancel this order before another user picks it up by executing the command 👇
cancel_order_cmd: |
/cancel ${orderId}
Expand Down Expand Up @@ -101,10 +105,17 @@ order_already_taken: This order has already been taken by another user.
order_already_settled: This order has already been settled.
invalid_data: You have sent invalid data, try again.
begin_take_buy: |
🤖 Press Continue to take the offer, if you press Cancel, you will be released from the order and it will be republished. You have ${expirationTime} minutes before this order expires. 👇
🤖 Press Continue to take the offer, if you press Cancel, you will be released from the order and it will be republished.
Note: Remember this image because you will see it again inside the invoice to pay
You have ${expirationTime} minutes before this order expires. 👇
continue: Continue
cancel: Cancel
pay_invoice: Please pay this invoice of ${amount} sats for ${currency} ${fiatAmount} to start the operation.
pay_invoice: |
Note: Confirm that the attached image matches the one sent during order creation before paying the invoice
Please pay this invoice of ${amount} sats for ${currency} ${fiatAmount} to start the operation
payment_received: |
🤑 Payment received!
Expand Down
11 changes: 10 additions & 1 deletion locales/es.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,16 @@ invoice_payment_request: |
Reputación del comprador: ${rate}, días utilizando el bot: ${days}
Nota: Confirme que la imagen adjunta coincide con la enviada durante la creación del pedido antes de pagar la factura
Si deseas continuar por favor paga esta factura, esta factura expira en ${expirationTime} minutos
pending_sell: |
📝 Publicada la oferta en el canal ${channel}
Espera que alguien tome tu venta, si la orden no es tomada en ${orderExpirationWindow} horas será borrada del canal.
Nota: Recuerde esta imagen porque la verá nuevamente dentro de la factura a pagar
Puedes cancelar esta orden antes de que alguien la tome ejecutando 👇
cancel_order_cmd: |
/cancel ${orderId}
Expand Down Expand Up @@ -100,9 +104,14 @@ order_already_settled: Esta orden ya ha sido liquidada.
invalid_data: Has enviado datos incorrectos, inténtalo nuevamente.
begin_take_buy: |
🤖 Presiona Continuar para tomar la oferta, si presionas Cancelar te desvincularé de la orden y será publicada nuevamente, tienes ${expirationTime} minutos o la orden expirará 👇
Nota: Recuerde esta imagen porque la verá nuevamente dentro de la factura a pagar
continue: Continuar
cancel: Cancelar
pay_invoice: Por favor paga esta factura de ${amount} sats equivalente a ${currency} ${fiatAmount} para comenzar la operación.
pay_invoice: |
Por favor paga esta factura de ${amount} sats equivalente a ${currency} ${fiatAmount} para comenzar la operación.
Nota: Confirme que la imagen adjunta coincide con la enviada durante la creación del pedido antes de pagar la factura
payment_received: |
🤑 ¡Pago recibido!
Expand Down
11 changes: 10 additions & 1 deletion locales/fa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,16 @@ invoice_payment_request: |
Buyer Reputation: ${rate}, days using the bot: ${days}
توجه: قبل از پرداخت فاکتور، تأیید کنید که تصویر پیوست شده با تصویر ارسال شده در هنگام ایجاد سفارش مطابقت دارد
لطفاً برای شروع فرآیند فروش خود، این فاکتور را بپردازید، این درخواست در ${expirationTime} دقیقه منقضی می شود
pending_sell: |
📝 سفارش فروش sat شما در کانال ${channel} منتشر شده است
باید منتظر بمانید تا کاربر دیگری سفارش شما را انتخاب کند، این سفارش برای ${orderExpirationWindow} ساعت در کانال در دسترس خواهد بود.
توجه: این تصویر را به خاطر بسپارید زیرا آن را دوباره در فاکتور پرداخت خواهید دید
شما می توانید این سفارش را قبل از اینکه کاربر دیگری آن را انتخاب کند با اجرای دستور زیر لغو کنید 👇
cancel_order_cmd: |
/cancel ${orderId}
Expand Down Expand Up @@ -102,9 +106,14 @@ order_already_settled: این سفارش قبلا تسویه شده است.
invalid_data: داده های ارسال شده نامعتبر اند، دوباره امتحان کنید.
begin_take_buy: |
🤖 برای دریافت سفارش، ادامه را فشار دهید، اگر لغو را فشار دهید، از معامله خارج می شوید و سفارش مجدداً منتشر می شود. شما ${expirationTime} دقیقه قبل از انقضای این سفارش فرصت دارید. 👇
توجه: این تصویر را به خاطر بسپارید زیرا آن را دوباره در فاکتور پرداخت خواهید دید
continue: ادامه
cancel: لغو
pay_invoice: لطفاً برای شروع عملیات، فاکتور ${amount} sat را برای ${currency} {fiatAmount} بپردازید.
pay_invoice: |
توجه: قبل از پرداخت فاکتور، تأیید کنید که تصویر پیوست شده با تصویر ارسال شده در هنگام ایجاد سفارش مطابقت دارد
لطفاً برای شروع عملیات، فاکتور ${amount} sat را برای ${currency} {fiatAmount} بپردازید.
payment_received: |
🤑 پرداخت شد!
Expand Down
11 changes: 10 additions & 1 deletion locales/fr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,16 @@ invoice_payment_request: |
Buyer Reputation: ${rate}, jours d'utilisation du bot: ${days}
Note : Vérifiez que l'image jointe correspond à celle envoyée lors de la création de la commande avant de payer la facture
Merci de régler cette facture pour démarrer le processus de vente, elle expirera dans ${expirationTime} minutes
pending_sell: |
📝 Ton offre a été publiée dans le canal ${channel}
Tu dois attendre jusqu'à ce que quelqu'un récupère ton offre, elle sera visible pendant ${orderExpirationWindow} heures dans le canal
Note : Mémorisez cette image car vous la reverrez dans la facture à payer
Tu peux annuler cette offre avant qu'un autre utilisateur ne la prenne en exécutant la commande 👇
cancel_order_cmd: |
/cancel ${orderId}
Expand Down Expand Up @@ -102,9 +106,14 @@ order_already_settled: Cette commande a déjà été réglée.
invalid_data: Tu as envoyé des données invalides, merci de réessayer.
begin_take_buy: |
🤖 Appuie sur Continuer pour prendre l'offre, si tu clique sur Annuler, tu seras libéré.e de l'offre et elle sera publiée de nouveau. Tu as ${expirationTime} minutes avant que cette offre n'expire. 👇
Note : Mémorisez cette image car vous la reverrez dans la facture à payer
continue: Continuer
cancel: Annuler
pay_invoice: Merci de payer cette facture de ${amount} sats à ${fiatAmount} ${currency} pour démarrer la transaction.
pay_invoice: |
Note : Vérifiez que l'image jointe correspond à celle envoyée lors de la création de la commande avant de payer la facture
Merci de payer cette facture de ${amount} sats à ${fiatAmount} ${currency} pour démarrer la transaction.
payment_received: |
🤑 Paiement reçu!
Expand Down
11 changes: 10 additions & 1 deletion locales/it.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,16 @@ invoice_payment_request: |
Reputazione del compratore: ${rate}, giorni di utilizzo del bot: ${days}
Nota: Conferma che l'immagine allegata corrisponda a quella inviata durante la creazione dell'ordine prima di pagare la fattura
Si prega di procedere al pagamento di questa invoice per avviare il processo di vendita, la invoice scadrà tra ${expirationTime} minuti
pending_sell: |
📝 La tua offerta è stata pubblicata nel canale ${channel}.
È necessario attendere che un altro utente prenda in carico l'ordine, che scadrà tra ${orderExpirationWindow} ore.
Nota: Ricorda questa immagine perché la rivedrai nella fattura da pagare
È possibile annullare l'ordine prima che un altro utente lo prenda eseguendo il comando 👇
cancel_order_cmd: |
/cancel ${orderId}
Expand Down Expand Up @@ -99,10 +103,15 @@ order_already_taken: Quest'ordine è già stato preso da un altro utente.
order_already_settled: Questo ordine è già stato regolato.
invalid_data: I dati inviati non sono validi, riprovare.
begin_take_buy: |
Nota: Ricorda questa immagine perché la rivedrai nella fattura da pagare
🤖 Premere Continua per accettare l'ordine, se premi Cancella verrai svincolato dall'ordine e sarà ripubblicato. Hai ${expirationTime} minuti prima che l'ordine scada. 👇
continue: Continua
cancel: Cancella
pay_invoice: Si prega di pagare questa invoice di ${amount} sats per ${currency} ${fiatAmount} per iniziare lo scambio.
pay_invoice: |
Nota: Conferma che l'immagine allegata corrisponda a quella inviata durante la creazione dell'ordine prima di pagare la fattura
Si prega di pagare questa invoice di ${amount} sats per ${currency} ${fiatAmount} per iniziare lo scambio.
payment_received: |
🤑 Pagamento ricevuto!
Expand Down
11 changes: 10 additions & 1 deletion locales/ko.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,16 @@ invoice_payment_request: |
누군가 당신에게 ${order.amount} sats를 ${currency} ${order.fiat_amount}로 구매하기를 희망합니다.
Buyer Reputation: ${rate}, 봇 사용일수: ${days}
참고: 청구서 결제 전에 첨부된 이미지가 주문 생성 시 전송된 이미지와 일치하는지 확인하세요
판매 프로세스를 시작하려면 이 인보이스에 결제해주세요. 이 인보이스는 ${expirationTime} 분 후에 만료됩니다.
pending_sell: |
📝 당신의 주문이 ${channel} 채널에 등록되었습니다.
다른 사용자가 당신의 주문을 수락할 때까지 기다려야 합니다. 주문은 ${orderExpirationWindow} 시간 동안 채널에서 보여집니다.
참고: 결제 청구서에서 다시 보게 될 이미지이므로 기억해 두세요
당신은 다른 사용자가 이 주문을 수락하기 전에 아래 명령어를 입력하여 취소할 수 있습니다.👇
cancel_order_cmd: |
Expand Down Expand Up @@ -101,9 +105,14 @@ order_already_settled: 이 주문은 이미 정산되었습니다.
invalid_data: 유효하지 않은 데이터를 보냈습니다. 다시 시도해보세요.
begin_take_buy: |
🤖 주문을 수락하려면 `계속` 버튼을 눌러 주세요. `취소` 버튼을 누르면, 당신은 해당 주문에서 나오게 되고, 주문은 마켓 채널에 재등록됩니다. 주문이 만료되기까지 ${expirationTime}분 남았습니다. 👇
참고: 결제 청구서에서 다시 보게 될 이미지이므로 기억해 두세요
continue: 계속
cancel: 취소
pay_invoice: 거래를 시작하기 위해 ${currency} ${fiatAmount}에 해당되는 ${amount} 사토시를 이 라이트닝 인보이스에 지불해 주세요.
pay_invoice: |
참고: 청구서 결제 전에 첨부된 이미지가 주문 생성 시 전송된 이미지와 일치하는지 확인하세요
거래를 시작하기 위해 ${currency} ${fiatAmount}에 해당되는 ${amount} 사토시를 이 라이트닝 인보이스에 지불해 주세요.
payment_received: |
🤑 결제가 확인되었습니다.
Expand Down
Loading

0 comments on commit a943bea

Please sign in to comment.