import type { INodeProperties } from 'n8n-workflow'; export const paymentOperations: INodeProperties[] = [ { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['payment'], }, }, options: [ { name: 'Get', value: 'get', description: 'Get a payment by ID', action: 'Get a payment', }, { name: 'Create Lightning Quote', value: 'createLightningQuote', description: 'Create a lightning payment quote', action: 'Create a lightning payment quote', }, { name: 'Create On-Chain Quote', value: 'createOnchainQuote', description: 'Create an on-chain payment quote', action: 'Create an on-chain payment quote', }, { name: 'Create LNURL Quote', value: 'createLnurlQuote', description: 'Create a payment quote for LN Address or LNURL', action: 'Create an LNURL payment quote', }, { name: 'Get LNURL Details', value: 'getLnurlDetails', description: 'Get details for an LN Address or LNURL', action: 'Get LNURL details', }, { name: 'Execute Quote', value: 'executeQuote', description: 'Execute a payment quote', action: 'Execute a payment quote', }, ], default: 'get', }, ]; export const paymentFields: INodeProperties[] = [ // ---------------------------------- // payment:get // ---------------------------------- { displayName: 'Payment ID', name: 'paymentId', type: 'string', required: true, default: '', description: 'The ID of the payment to retrieve', displayOptions: { show: { resource: ['payment'], operation: ['get'], }, }, }, // ---------------------------------- // payment:createLightningQuote // ---------------------------------- { displayName: 'Lightning Invoice (BOLT11)', name: 'lnInvoice', type: 'string', required: true, default: '', description: 'The BOLT11 lightning invoice to pay', displayOptions: { show: { resource: ['payment'], operation: ['createLightningQuote'], }, }, }, { displayName: 'Source Currency', name: 'sourceCurrency', type: 'options', options: [ { name: 'BTC', value: 'BTC' }, { name: 'USD', value: 'USD' }, { name: 'EUR', value: 'EUR' }, { name: 'GBP', value: 'GBP' }, ], default: 'USD', description: 'Currency to pay from', displayOptions: { show: { resource: ['payment'], operation: ['createLightningQuote'], }, }, }, // ---------------------------------- // payment:createOnchainQuote // ---------------------------------- { displayName: 'Bitcoin Address', name: 'btcAddress', type: 'string', required: true, default: '', description: 'The Bitcoin address to send to', displayOptions: { show: { resource: ['payment'], operation: ['createOnchainQuote'], }, }, }, { displayName: 'Source Currency', name: 'sourceCurrency', type: 'options', options: [ { name: 'BTC', value: 'BTC' }, { name: 'USD', value: 'USD' }, { name: 'EUR', value: 'EUR' }, { name: 'GBP', value: 'GBP' }, ], default: 'USD', description: 'Currency to pay from', displayOptions: { show: { resource: ['payment'], operation: ['createOnchainQuote'], }, }, }, { displayName: 'Amount', name: 'amount', type: 'number', typeOptions: { numberPrecision: 8, }, required: true, default: 0, description: 'Amount to send', displayOptions: { show: { resource: ['payment'], operation: ['createOnchainQuote'], }, }, }, { displayName: 'Amount Currency', name: 'amountCurrency', type: 'options', options: [ { name: 'BTC', value: 'BTC' }, { name: 'USD', value: 'USD' }, { name: 'EUR', value: 'EUR' }, { name: 'GBP', value: 'GBP' }, ], default: 'BTC', description: 'Currency of the amount', displayOptions: { show: { resource: ['payment'], operation: ['createOnchainQuote'], }, }, }, // ---------------------------------- // payment:createLnurlQuote // ---------------------------------- { displayName: 'LN Address or LNURL', name: 'lnAddressOrUrl', type: 'string', required: true, default: '', description: 'Lightning Address (user@domain.com) or LNURL', displayOptions: { show: { resource: ['payment'], operation: ['createLnurlQuote', 'getLnurlDetails'], }, }, }, { displayName: 'Amount', name: 'amount', type: 'number', typeOptions: { numberPrecision: 8, }, required: true, default: 0, description: 'Amount to send', displayOptions: { show: { resource: ['payment'], operation: ['createLnurlQuote'], }, }, }, { displayName: 'Amount Currency', name: 'amountCurrency', type: 'options', options: [ { name: 'BTC', value: 'BTC' }, { name: 'USD', value: 'USD' }, { name: 'EUR', value: 'EUR' }, { name: 'GBP', value: 'GBP' }, ], default: 'USD', description: 'Currency of the amount', displayOptions: { show: { resource: ['payment'], operation: ['createLnurlQuote'], }, }, }, { displayName: 'Source Currency', name: 'sourceCurrency', type: 'options', options: [ { name: 'BTC', value: 'BTC' }, { name: 'USD', value: 'USD' }, { name: 'EUR', value: 'EUR' }, { name: 'GBP', value: 'GBP' }, ], default: 'USD', description: 'Currency to pay from', displayOptions: { show: { resource: ['payment'], operation: ['createLnurlQuote'], }, }, }, // ---------------------------------- // payment:executeQuote // ---------------------------------- { displayName: 'Payment Quote ID', name: 'paymentQuoteId', type: 'string', required: true, default: '', description: 'The ID of the payment quote to execute', displayOptions: { show: { resource: ['payment'], operation: ['executeQuote'], }, }, }, ];