Merge branch 'master' into clink-types

This commit is contained in:
boufni95 2025-05-27 19:47:41 +00:00
commit e3cbae9af9
4 changed files with 44 additions and 26 deletions

51
package-lock.json generated
View file

@ -28,7 +28,7 @@
"csv": "^6.3.8", "csv": "^6.3.8",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
"eccrypto": "^1.1.6", "eccrypto": "^1.1.6",
"express": "^4.21.1", "express": "^4.21.2",
"globby": "^13.1.2", "globby": "^13.1.2",
"grpc-tools": "^1.12.4", "grpc-tools": "^1.12.4",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
@ -38,14 +38,14 @@
"reflect-metadata": "^0.2.2", "reflect-metadata": "^0.2.2",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"rxjs": "^7.5.5", "rxjs": "^7.5.5",
"secp256k1": "^4.0.4", "secp256k1": "^5.0.1",
"sqlite3": "^5.1.7", "sqlite3": "^5.1.7",
"ts-node": "^10.7.0", "ts-node": "^10.7.0",
"ts-proto": "^1.131.2", "ts-proto": "^1.131.2",
"typeorm": "0.3.15", "typeorm": "0.3.15",
"typescript": "^5.5.4", "typescript": "^5.5.4",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"websocket": "^1.0.34", "websocket": "^1.0.35",
"websocket-polyfill": "^0.0.3", "websocket-polyfill": "^0.0.3",
"why-is-node-running": "^3.2.0", "why-is-node-running": "^3.2.0",
"wrtc": "^0.4.7", "wrtc": "^0.4.7",
@ -62,7 +62,7 @@
"@types/node": "^16.11.10", "@types/node": "^16.11.10",
"@types/node-fetch": "^2.6.3", "@types/node-fetch": "^2.6.3",
"@types/uuid": "^8.3.4", "@types/uuid": "^8.3.4",
"@types/websocket": "^1.0.6", "@types/websocket": "^1.0.10",
"@types/ws": "^8.5.12", "@types/ws": "^8.5.12",
"nodemon": "^2.0.20", "nodemon": "^2.0.20",
"ts-node": "10.7.0", "ts-node": "10.7.0",
@ -1023,10 +1023,11 @@
"dev": true "dev": true
}, },
"node_modules/@types/websocket": { "node_modules/@types/websocket": {
"version": "1.0.6", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.6.tgz", "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz",
"integrity": "sha512-JXkliwz93B2cMWOI1ukElQBPN88vMg3CruvW4KVSKpflt3NyNCJImnhIuB/f97rG7kakqRJGFiwkA895Kn02Dg==", "integrity": "sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
} }
@ -2811,9 +2812,10 @@
} }
}, },
"node_modules/express": { "node_modules/express": {
"version": "4.21.1", "version": "4.21.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"license": "MIT",
"dependencies": { "dependencies": {
"accepts": "~1.3.8", "accepts": "~1.3.8",
"array-flatten": "1.1.1", "array-flatten": "1.1.1",
@ -2834,7 +2836,7 @@
"methods": "~1.1.2", "methods": "~1.1.2",
"on-finished": "2.4.1", "on-finished": "2.4.1",
"parseurl": "~1.3.3", "parseurl": "~1.3.3",
"path-to-regexp": "0.1.10", "path-to-regexp": "0.1.12",
"proxy-addr": "~2.0.7", "proxy-addr": "~2.0.7",
"qs": "6.13.0", "qs": "6.13.0",
"range-parser": "~1.2.1", "range-parser": "~1.2.1",
@ -2849,6 +2851,10 @@
}, },
"engines": { "engines": {
"node": ">= 0.10.0" "node": ">= 0.10.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/express"
} }
}, },
"node_modules/express/node_modules/encodeurl": { "node_modules/express/node_modules/encodeurl": {
@ -4717,9 +4723,10 @@
} }
}, },
"node_modules/path-to-regexp": { "node_modules/path-to-regexp": {
"version": "0.1.10", "version": "0.1.12",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
"license": "MIT"
}, },
"node_modules/path-type": { "node_modules/path-type": {
"version": "4.0.0", "version": "4.0.0",
@ -5292,10 +5299,11 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/secp256k1": { "node_modules/secp256k1": {
"version": "4.0.4", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.1.tgz",
"integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", "integrity": "sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT",
"dependencies": { "dependencies": {
"elliptic": "^6.5.7", "elliptic": "^6.5.7",
"node-addon-api": "^5.0.0", "node-addon-api": "^5.0.0",
@ -6549,13 +6557,14 @@
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
}, },
"node_modules/websocket": { "node_modules/websocket": {
"version": "1.0.34", "version": "1.0.35",
"resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz",
"integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==",
"license": "Apache-2.0",
"dependencies": { "dependencies": {
"bufferutil": "^4.0.1", "bufferutil": "^4.0.1",
"debug": "^2.2.0", "debug": "^2.2.0",
"es5-ext": "^0.10.50", "es5-ext": "^0.10.63",
"typedarray-to-buffer": "^3.1.5", "typedarray-to-buffer": "^3.1.5",
"utf-8-validate": "^5.0.2", "utf-8-validate": "^5.0.2",
"yaeti": "^0.0.6" "yaeti": "^0.0.6"

View file

@ -45,7 +45,7 @@
"csv": "^6.3.8", "csv": "^6.3.8",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
"eccrypto": "^1.1.6", "eccrypto": "^1.1.6",
"express": "^4.21.1", "express": "^4.21.2",
"globby": "^13.1.2", "globby": "^13.1.2",
"grpc-tools": "^1.12.4", "grpc-tools": "^1.12.4",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
@ -55,14 +55,14 @@
"reflect-metadata": "^0.2.2", "reflect-metadata": "^0.2.2",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"rxjs": "^7.5.5", "rxjs": "^7.5.5",
"secp256k1": "^4.0.4", "secp256k1": "^5.0.1",
"sqlite3": "^5.1.7", "sqlite3": "^5.1.7",
"ts-node": "^10.7.0", "ts-node": "^10.7.0",
"ts-proto": "^1.131.2", "ts-proto": "^1.131.2",
"typeorm": "0.3.15", "typeorm": "0.3.15",
"typescript": "^5.5.4", "typescript": "^5.5.4",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"websocket": "^1.0.34", "websocket": "^1.0.35",
"websocket-polyfill": "^0.0.3", "websocket-polyfill": "^0.0.3",
"why-is-node-running": "^3.2.0", "why-is-node-running": "^3.2.0",
"wrtc": "^0.4.7", "wrtc": "^0.4.7",
@ -79,7 +79,7 @@
"@types/node": "^16.11.10", "@types/node": "^16.11.10",
"@types/node-fetch": "^2.6.3", "@types/node-fetch": "^2.6.3",
"@types/uuid": "^8.3.4", "@types/uuid": "^8.3.4",
"@types/websocket": "^1.0.6", "@types/websocket": "^1.0.10",
"@types/ws": "^8.5.12", "@types/ws": "^8.5.12",
"nodemon": "^2.0.20", "nodemon": "^2.0.20",
"ts-node": "10.7.0", "ts-node": "10.7.0",

View file

@ -28,7 +28,7 @@ const start = async () => {
{ ...nostrSettings, apps, clients: [liquidityProviderInfo] }, { ...nostrSettings, apps, clients: [liquidityProviderInfo] },
(e, p) => mainHandler.liquidityProvider.onEvent(e, p) (e, p) => mainHandler.liquidityProvider.onEvent(e, p)
) )
exitHandler(() => { Stop() }) exitHandler(() => { Stop(); mainHandler.Stop() })
log("starting server") log("starting server")
mainHandler.attachNostrSend(Send) mainHandler.attachNostrSend(Send)
mainHandler.attachNostrProcessPing(Ping) mainHandler.attachNostrProcessPing(Ping)

View file

@ -191,6 +191,14 @@ export class OfferManager {
if (!userOffer) { if (!userOffer) {
return this.HandleDefaultUserOffer(offerReq, appId, remote) return this.HandleDefaultUserOffer(offerReq, appId, remote)
} }
if (userOffer.app_user_id === userOffer.offer_id) {
if (userOffer.price_sats !== 0 || userOffer.expected_data) {
this.logger("default offer has custom price or expected data, resetting")
await this.storage.offerStorage.UpdateUserOffer(userOffer.app_user_id, userOffer.offer_id, { price_sats: 0, expected_data: null })
userOffer.price_sats = 0
userOffer.expected_data = null
}
}
let amt = userOffer.price_sats let amt = userOffer.price_sats
if (userOffer.price_sats === 0) { if (userOffer.price_sats === 0) {
if (!amount || isNaN(amount) || amount < 10 || amount > remote) { if (!amount || isNaN(amount) || amount < 10 || amount > remote) {
@ -200,6 +208,7 @@ export class OfferManager {
} }
const { passed, validated } = this.ValidateExpectedData(userOffer, offerReq.payer_data) const { passed, validated } = this.ValidateExpectedData(userOffer, offerReq.payer_data)
if (!passed) { if (!passed) {
console.log("Invalid expected data", validated)
return { success: false, code: 1, max: remote } return { success: false, code: 1, max: remote }
} }
const res = await this.applicationManager.AddAppUserInvoice(appId, { const res = await this.applicationManager.AddAppUserInvoice(appId, {