diff --git a/README.md b/README.md
index daa0daf..1839351 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,3 @@
-
-
-
-
-
-
-
-[](./LICENSE)
-[](https://github.com/lnbits/lnbits)
-
# Nostr Market ([NIP-15](https://github.com/nostr-protocol/nips/blob/master/15.md)) - [LNbits](https://github.com/lnbits/lnbits) extension
For more about LNBits extension check [this tutorial](https://github.com/lnbits/lnbits/wiki/LNbits-Extensions).
@@ -157,10 +147,3 @@ Stall and product are _Parameterized Replaceable Events_ according to [NIP-33](h
Order placing, invoicing, payment details and order statuses are handled over Nostr using [NIP-04](https://github.com/nostr-protocol/nips/blob/master/04.md).
Customer support is handled over whatever communication method was specified. If communicationg via nostr, [NIP-04](https://github.com/nostr-protocol/nips/blob/master/04.md) is used.
-
-## Powered by LNbits
-
-[LNbits](https://lnbits.com) is a free and open-source lightning accounts system.
-
-[](https://shop.lnbits.com/)
-[](https://my.lnbits.com/login)
diff --git a/config.json b/config.json
index 3a670de..1aa34a8 100644
--- a/config.json
+++ b/config.json
@@ -1,15 +1,12 @@
{
- "id": "nostrmarket",
- "version": "1.1.0",
"name": "Nostr Market",
- "repo": "https://github.com/lnbits/nostrmarket",
+ "version": "1.1.0",
"short_description": "Nostr Webshop/market on LNbits",
- "description": "",
- "tile": "/nostrmarket/static/images/bitcoin-shop.png",
+ "tile": "/nostrmarket/static/images/nostr-market.png",
"min_lnbits_version": "1.4.0",
"contributors": [
{
- "name": "Vlad Stan",
+ "name": "motorina0",
"uri": "https://github.com/motorina0",
"role": "Contributor"
},
@@ -22,11 +19,6 @@
"name": "talvasconcelos",
"uri": "https://github.com/talvasconcelos",
"role": "Developer"
- },
- {
- "name": "BenGWeeks",
- "uri": "https://github.com/BenGWeeks",
- "role": "Developer"
}
],
"images": [
@@ -52,9 +44,5 @@
],
"description_md": "https://raw.githubusercontent.com/lnbits/nostrmarket/main/description.md",
"terms_and_conditions_md": "https://raw.githubusercontent.com/lnbits/nostrmarket/main/toc.md",
- "license": "MIT",
- "paid_features": "",
- "tags": ["Nostr", "Marketplace"],
- "donate": "",
- "hidden": false
+ "license": "MIT"
}
diff --git a/description.md b/description.md
index b4fc5d2..dfa898f 100644
--- a/description.md
+++ b/description.md
@@ -1,10 +1,12 @@
-Buy and sell products over Nostr using the NIP-15 marketplace protocol.
+> IMPORTANT: Nostr market needs the nostr-client extension installed.
-Its functions include:
+Buy and sell things over Nostr, using NIP15 https://github.com/nostr-protocol/nips/blob/master/15.md
-- Managing products, sales, and customer communication as a merchant
-- Browsing and ordering products as a customer
-- Tracking order status and delivery
-- Communicating via NIP-17 private direct messages (NIP-44 encryption + NIP-59 gift wrapping)
+Nostr was partly based on the the previous version of this extension "Diagon Alley", so lends itself very well to buying and sellinng over Nostr.
-A decentralized commerce solution for merchants and buyers who want to trade goods and services over Nostr with end-to-end encrypted communication.
+The Nostr Market extension includes:
+
+- A merchant client to manage products, sales and communication with customers.
+- A customer client to find and order products from merchants, communicate with merchants and track status of ordered products.
+
+All communication happens over NIP-17 private direct messages (NIP-44 encryption + NIP-59 gift wrapping).
diff --git a/static/components/merchant-tab.js b/static/components/merchant-tab.js
index d993bd4..8e9588c 100644
--- a/static/components/merchant-tab.js
+++ b/static/components/merchant-tab.js
@@ -29,13 +29,7 @@ window.app.component('merchant-tab', {
},
computed: {
marketClientUrl: function () {
- if (!this.publicKey) {
- return '/nostrmarket/market'
- }
-
- const url = new URL('/nostrmarket/market', window.location.origin)
- url.searchParams.set('merchant', this.publicKey)
- return url.pathname + url.search
+ return '/nostrmarket/market'
}
},
methods: {
diff --git a/static/market/js/utils.js b/static/market/js/utils.js
index 8a3a98b..2e41b49 100644
--- a/static/market/js/utils.js
+++ b/static/market/js/utils.js
@@ -1,43 +1,5 @@
var NostrTools = window.NostrTools
-;(function ensureRandomUUID() {
- if (!globalThis.crypto) {
- globalThis.crypto = {}
- }
- if (!globalThis.crypto.randomUUID) {
- globalThis.crypto.randomUUID = function () {
- const getRandomValues = globalThis.crypto.getRandomValues
- if (getRandomValues) {
- const bytes = new Uint8Array(16)
- getRandomValues.call(globalThis.crypto, bytes)
- bytes[6] = (bytes[6] & 0x0f) | 0x40
- bytes[8] = (bytes[8] & 0x3f) | 0x80
- const hex = Array.from(bytes, b =>
- b.toString(16).padStart(2, '0')
- ).join('')
- return (
- hex.slice(0, 8) +
- '-' +
- hex.slice(8, 12) +
- '-' +
- hex.slice(12, 16) +
- '-' +
- hex.slice(16, 20) +
- '-' +
- hex.slice(20)
- )
- }
-
- let d = Date.now()
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
- const r = (d + Math.random() * 16) % 16 | 0
- d = Math.floor(d / 16)
- return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)
- })
- }
- }
-})()
-
var defaultRelays = [
'wss://relay.damus.io',
'wss://relay.snort.social',
@@ -82,24 +44,13 @@ function confirm(message) {
async function hash(string) {
- const subtle = globalThis.crypto && globalThis.crypto.subtle
- if (subtle && subtle.digest) {
- const utf8 = new TextEncoder().encode(string)
- const hashBuffer = await subtle.digest('SHA-256', utf8)
- const hashArray = Array.from(new Uint8Array(hashBuffer))
- return hashArray.map(bytes => bytes.toString(16).padStart(2, '0')).join('')
- }
-
- // Fallback for non-secure contexts where crypto.subtle is unavailable.
- return fallbackHash(string)
-}
-
-function fallbackHash(string) {
- let hash = 5381
- for (let i = 0; i < string.length; i++) {
- hash = ((hash << 5) + hash) + string.charCodeAt(i)
- }
- return (hash >>> 0).toString(16).padStart(8, '0')
+ const utf8 = new TextEncoder().encode(string)
+ const hashBuffer = await crypto.subtle.digest('SHA-256', utf8)
+ const hashArray = Array.from(new Uint8Array(hashBuffer))
+ const hashHex = hashArray
+ .map(bytes => bytes.toString(16).padStart(2, '0'))
+ .join('')
+ return hashHex
}
function isJson(str) {
diff --git a/templates/nostrmarket/components/merchant-tab.html b/templates/nostrmarket/components/merchant-tab.html
index 497478a..5d41ab2 100644
--- a/templates/nostrmarket/components/merchant-tab.html
+++ b/templates/nostrmarket/components/merchant-tab.html
@@ -9,26 +9,29 @@
+ Edit
+
+ Show Keys
+
-
-
-
-
-
- View Keys
- Show public/private keys
-
-
-
Saved Profiles
@@ -66,13 +69,6 @@
-
-