diff --git a/web/superball.html b/web/superball.html
index f80bc59..e02677d 100644
--- a/web/superball.html
+++ b/web/superball.html
@@ -42,13 +42,8 @@
Reply
-
-
-
-
-
-
-
+
+
@@ -57,6 +52,20 @@
Create Profile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -768,8 +777,16 @@
// Get content based on active tab
let content = '';
- let eventId = '';
+ let nevent = '';
+ let neventData;
let name = '';
+ let about = '';
+ let profilePic = '';
+ let displayName = '';
+ let website = '';
+ let banner = '';
+ let nip05 = '';
+ let lud16 = '';
switch(activeTab) {
case 'tab1': // Post
@@ -777,12 +794,17 @@
break;
case 'tab2': // Reply
content = document.getElementById('reply-content').value.trim();
- eventId = document.getElementById('reply-id').value.trim();
- eventRelay = document.getElementById('event-relay').value.trim();
- authorPubkey = document.getElementById('author-pubkey').value.trim();
+ nevent = document.getElementById('nevent').value.trim();
break;
case 'tab3': // Create Profile
name = document.getElementById('name').value.trim();
+ about = document.getElementById('about').value.trim();
+ profilePic = document.getElementById('profile-pic').value.trim();
+ displayName = document.getElementById('display-name').value.trim();
+ website = document.getElementById('website').value.trim();
+ banner = document.getElementById('banner').value.trim();
+ nip05 = document.getElementById('nip05').value.trim();
+ lud16 = document.getElementById('lud16').value.trim();
break;
}
@@ -792,6 +814,10 @@
alert('Please enter message content');
return;
}
+ if (!nevent.startsWith('nevent')) {
+ alert('Please enter a valid nevent');
+ return;
+ }
} else if (activeTab === 'tab3') {
if (!name) {
alert('Please enter your name');
@@ -799,6 +825,13 @@
}
}
+ try {
+ neventData = window.NostrTools.nip19.decode(nevent).data;
+ } catch (error) {
+ alert('Error decoding nevent string', error.message);
+ return;
+ }
+
try {
let eventTemplate = {};
@@ -816,16 +849,26 @@
eventTemplate = {
kind: 1,
content: content,
- tags: [['e', eventId, eventRelay, 'root'], ['p', authorPubkey]],
+ tags: [['e', neventData.id, neventData.relays[0], 'root'], ['p', neventData.author]],
created_at: Math.floor(Date.now() / 1000)
};
+ neventData.relays.slice(1).forEach(relay => {
+ eventTemplate.tags.push(['r', relay]);
+ });
break;
-
+
case 'tab3': // Create Profile
eventTemplate = {
kind: 0,
content: JSON.stringify({
- name: name
+ name: name,
+ about: about,
+ picture: profilePic,
+ display_name: displayName,
+ website: website,
+ banner: banner,
+ nip05: nip05,
+ lud16: lud16
}),
tags: [],
created_at: Math.floor(Date.now() / 1000)