Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified build.sh
100644 → 100755
Empty file.
198 changes: 3 additions & 195 deletions lnpos/100_config.ino
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
using namespace fs;

void configOverSerialPort()
{
serialLaunch();
Expand Down Expand Up @@ -109,198 +111,4 @@ KeyValue extractKeyValue(String s)
return {key, value};
}

void readFiles()
{
File paramFile = FlashFS.open(PARAM_FILE, "r");
if (paramFile)
{
if (!hardcoded)
{
StaticJsonDocument<6000> doc;
DeserializationError error = deserializeJson(doc, paramFile.readString());
if (error)
{
Serial.print("deserializeJson() failed: ");
Serial.println(error.c_str());
return;
}

lnurlPoS = getJsonValue(doc, "config_lnurlpos");
lnurlATM = getJsonValue(doc, "config_lnurlatm");
masterKey = getJsonValue(doc, "config_masterkey");
lnbitsServer = getJsonValue(doc, "config_server");
invoice = getJsonValue(doc, "config_invoice");
lncurrency = getJsonValue(doc, "config_lncurrency");
lnurlATMMS = getJsonValue(doc, "config_lnurlatmms");
lnurlATMPin = getJsonValue(doc, "config_lnurlatmpin");
decimalplaces = getJsonValue(doc, "config_decimalplaces");
ssid = getJsonValue(doc, "config_wifi_ssid");
password = getJsonValue(doc, "config_wifi_password");
}

////////LNURL PoS string/////////
if (lnurlPoS != "null" || lnurlPoS != "")
{
baseURLPoS = getValue(lnurlPoS, ',', 0);
secretPoS = getValue(lnurlPoS, ',', 1);
currencyPoS = getValue(lnurlPoS, ',', 2);
Serial.println("");
Serial.println("lnurlPoS: " + lnurlPoS);
Serial.println("baseURLPoS: " + baseURLPoS);
Serial.println("secretPoS: " + secretPoS);
Serial.println("currencyPoS: " + currencyPoS);
if (secretPoS != "")
{
menuItemCheck[1] = 1;
}
}
else
{
Serial.println("lnurlPoS not set");
}

////////LNURL ATM string/////////
if (lnurlATM != "null" || lnurlATM != "")
{
Serial.println("");
Serial.println("lnurlATM: " + lnurlATM);
baseURLATM = getValue(lnurlATM, ',', 0);
// remove /api/v1.... and add /atm?lightning=
int apiPos = baseURLATM.indexOf("api");
baseUrlAtmPage = baseURLATM.substring(0, apiPos);
baseUrlAtmPage += "atm?lightning=";
secretATM = getValue(lnurlATM, ',', 1);
currencyATM = getValue(lnurlATM, ',', 2);
Serial.println("baseUrlAtmPage: " + baseUrlAtmPage);
Serial.println("baseURLATM: " + baseURLATM);
Serial.println("secretATM: " + secretATM);
Serial.println("currencyATM: " + currencyATM);
if (secretATM != "")
{
menuItemCheck[3] = 1;
}
}
else
{
Serial.println("baseURLATM not set");
}

//////////MasterKey/////////
if (masterKey != "null" || masterKey != "")
{
Serial.println("");
Serial.println("masterKey used from memory");
Serial.println("masterKey: " + masterKey);
if (masterKey != "")
{
menuItemCheck[2] = 1;
}
}
else
{
Serial.println("MasterKey not set");
}

//////////Lnbits Server/////////
if (lnbitsServer != "null" || lnbitsServer != "")
{
Serial.println("");
Serial.println("lnbitsServer used from memory");
Serial.println("lnbitsServer: " + lnbitsServer);
}
else
{
Serial.println("lnbitsServer not set");
}

/////////LNbits Server///////
if (invoice != "null" || invoice != "")
{
Serial.println("");
Serial.println("invoice key used from memory");
Serial.println("invoice key: " + invoice);
if (invoice != "")
{
menuItemCheck[0] = 1;
}
}
else
{
Serial.println("invoice key not set");
}

/////////PoS Currency///////
if (lncurrency != "null" || lncurrency != "")
{
Serial.println("");
Serial.println("PoS currency used from memory");
Serial.println("PoS currency: " + lncurrency);
}
else
{
Serial.println("Pos currency not set");
}

/////////mempool.space server///////
if (lnurlATMMS != "null" || lnurlATMMS != "")
{
Serial.println("");
Serial.println("mempool.space server used from memory");
Serial.println("mempool.space server: " + lnurlATMMS);
}
else
{
Serial.println("mempool.space server not set");
}

/////////mATM/Settings pin///////
if (lnurlATMPin != "null" || lnurlATMPin != "")
{
Serial.println("");
Serial.println("ATM/settings security pin used from memory");
Serial.println("ATM/settings security pin: " + lnurlATMPin);
}
else
{
lnurlATMPin = "878787";
Serial.println("ATM/Settings security pin not set using default");
}

/////////no. FIAT decimal places///////
if (decimalplaces != "null" || decimalplaces != "")
{
Serial.println("");
Serial.println("no. fiat decimal places used from memory");
Serial.println("no. fiat decimal places: " + decimalplaces);
}
else
{
Serial.println("no. fiat decimal places not set");
}

/////////WiFi SSID///////
if (ssid != "null" || ssid != "")
{
Serial.println("");
Serial.println("WiFi SSID used from memory");
Serial.println("WiFi SSID: " + ssid);
}
else
{
Serial.println("WiFi SSID not set");
}

/////////WiFi password///////
if (password != "null" || password != "")
{
Serial.println("");
Serial.println("WiFi password used from memory");
Serial.println("WiFi password: " + password);
}
else
{
Serial.println("WiFi password not set");
}
}
paramFile.close();
}
// Removed duplicate readFiles() implementation to resolve multiple definition error
84 changes: 84 additions & 0 deletions lnpos/defines.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#include "defines.h"

// All global variable definitions are now in this file only

String lnurlPoS;
String lnurlATM;
String lncurrency;
String lnurlATMMS;
String lnurlATMPin;
String decimalplaces;

bool format = false;

String inputs;
String thePin;
String spiffing;
String nosats;
String cntr;
String lnurl;
String currency;
String key;
String preparedURL;
String baseURL;
String baseURLPoS;
String secretPoS;
String currencyPoS;
String baseURLATM;
String baseUrlAtmPage;
String secretATM;
String currencyATM;
String dataIn;
String noSats;
String qrData;
String dataId;
String addressNo;
String pinToShow;
String amountToShow;
String key_val;
String selection;
String masterKey;
String lnbitsServer;
String invoice;
String ssid;
String password;

const char menuItems[5][13] = {"LNPoS", "Offline PoS", "OnChain", "ATM", "Settings"};
const char currencyItems[3][5] = {"sat", "USD", "EUR"};
char decimalplacesOutput[20] = {0};
int menuItemCheck[5] = {0, 0, 0, 0, 1};
int menuItemNo = 0;
int randomPin = 0;
int calNum = 0;
int sumFlag = 0;
int converted = 0;
int sleepTimer = 30;
int qrScreenBrightness = 180;
long timeOfLastInteraction = 0;
bool isSleepEnabled = true;
bool isPretendSleeping = false;
bool onchainCheck = false;
bool lnCheck = false;
bool lnurlCheck = false;
bool unConfirmed = true;
bool selected = false;
bool lnurlCheckPoS = false;
bool lnurlCheckATM = false;
bool hardcoded = false;
double amountToShowNumber = 0.0;

SHA256 h;
TFT_eSPI tft = TFT_eSPI();
uint16_t qrScreenBgColour = 0;
const byte rows = 4;
const byte cols = 3;
char keys[4][3] = {{'1','2','3'},{'4','5','6'},{'7','8','9'},{'*','0','#'}};
byte rowPins[4] = {21, 27, 26, 22};
byte colPins[3] = {33, 32, 25};

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
int checker = 0;
char maxdig[20] = {0};

fs::SPIFFSFS &FlashFS = SPIFFS;
const bool FORMAT_ON_FAIL = true;
62 changes: 62 additions & 0 deletions lnpos/defines.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#pragma once

#include <Arduino.h>
#include <TFT_eSPI.h>
#include <Keypad.h>
#include <Hash.h>
#include <Bitcoin.h>
#include <WiFi.h>
#include <FS.h>
#include <SPIFFS.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <mbedtls/aes.h>
#include <mbedtls/md5.h>
#include <SPI.h>
#include "qrcoded.h"

// All global variables, constants, enums, and struct definitions

#define VERSION "1.0.0"
#define PARAM_FILE "/elements.json"
#define KEY_FILE "/thekey.txt"
#define USB_POWER 1000

extern bool format;
extern bool hardcoded;
extern String lnurlPoS, lnurlATM, masterKey, lnbitsServer, invoice, lncurrency, lnurlATMMS, lnurlATMPin, decimalplaces, ssid, password;
extern String inputs, thePin, spiffing, nosats, cntr, lnurl, currency, key, preparedURL, baseURL, baseURLPoS, secretPoS, currencyPoS, baseURLATM, baseUrlAtmPage, secretATM, currencyATM, dataIn, noSats, qrData, dataId, addressNo, pinToShow, amountToShow, key_val, selection;
extern const char menuItems[5][13];
extern const char currencyItems[3][5];
extern char decimalplacesOutput[20];
extern int menuItemCheck[5], menuItemNo, randomPin, calNum, sumFlag, converted, sleepTimer, qrScreenBrightness;
extern long timeOfLastInteraction;
extern bool isSleepEnabled, isPretendSleeping, onchainCheck, lnCheck, lnurlCheck, unConfirmed, selected, lnurlCheckPoS, lnurlCheckATM;
extern double amountToShowNumber;
extern SHA256 h;
extern TFT_eSPI tft;
extern uint16_t qrScreenBgColour;
extern const byte rows, cols;
extern char keys[4][3];
extern byte rowPins[4], colPins[3];
extern Keypad keypad;
extern int checker;
extern char maxdig[20];

// Enums

enum InvoiceType { LNPOS, LNURLPOS, ONCHAIN, LNURLATM, PORTAL };

// Structs
struct KeyValue { String key; String value; };

// Add externs for all main logic functions
extern void lnMain();
extern void onchainMain();
extern void lnurlPoSMain();
extern void lnurlATMMain();
extern void serialLaunch();
extern bool isInteger(const char *str);

extern fs::SPIFFSFS &FlashFS;
extern const bool FORMAT_ON_FAIL;
Loading