mirror of
https://github.com/BlowaterNostr/blowater.git
synced 2024-10-18 07:33:22 +00:00
bug fix: of course undefined != -1
update nostr.ts
This commit is contained in:
parent
27a1603919
commit
0c3fe3a405
@ -3,7 +3,6 @@ import {
|
||||
PrivateKey,
|
||||
PublicKey,
|
||||
publicKeyHexFromNpub,
|
||||
toPublicKeyHex,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
import {
|
||||
InMemoryAccountContext,
|
||||
@ -164,14 +163,3 @@ export function GetLocalStorageAccountContext() {
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function isPrivateKey(privateKey: string) {
|
||||
if (privateKey.length !== 64) {
|
||||
return false;
|
||||
}
|
||||
const publicKey = toPublicKeyHex(privateKey);
|
||||
if (publicKeyHexFromNpub(publicKey).length === 64) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -9,25 +9,19 @@ import { EventBus } from "../event-bus.ts";
|
||||
|
||||
import { UI_Interaction_Event } from "./app_update.ts";
|
||||
import { getContactPubkeysOf } from "../features/dm.ts";
|
||||
import { DM_EditorModel } from "./editor.tsx";
|
||||
import {
|
||||
ConnectionPool,
|
||||
SingleRelayConnection,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/relay.ts";
|
||||
import {
|
||||
generatePrivateKeyHex,
|
||||
PrivateKey,
|
||||
toPublicKeyHex,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
import { PrivateKey } from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
import { InMemoryAccountContext } from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/nostr.ts";
|
||||
import { AsyncWebSocket } from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/websocket.ts";
|
||||
import { relays } from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/relay-list.test.ts";
|
||||
|
||||
const start = Date.now();
|
||||
|
||||
// const url = "wss://relay.damus.io";
|
||||
const myPrivateKey = PrivateKey.Generate();
|
||||
const myPublicKey = toPublicKeyHex(generatePrivateKeyHex());
|
||||
const myPublicKey = PrivateKey.Generate().hex;
|
||||
|
||||
const relayPool = new ConnectionPool();
|
||||
for (let url of relays.slice(0, 1)) {
|
||||
|
@ -18,7 +18,7 @@
|
||||
"https://esm.sh/v127/twind@0.16.16/twind.d.ts": "f0e7236ef5a8b39dbe9cf4439dd4689c5954980c2987d00e9c94cd1a5e8923fb",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/csp/master/csp.ts": "3e8eed3d933748d48c83e2ae583bf86748621bcd6e8f181bef8a6ae8e5a4bfac",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/ende.ts": "86fa705459ce19edc2c320a463e55f1cece3c1d415dfb36af387a433a6453da8",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts": "c4f535fff729290e274541ac003f9f8b7c21da3121be55a6c361d72dfd5747c4",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts": "12405f91cb7260775fd202bbbcbaf96052ce394d6c4e409fc38c17ae3d8bd540",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/nostr.ts": "2dda31c5c22fba273f68ad1f747e9e5e8c3ef1e6a6bbdf0835109f514236c28b",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/relay.ts": "dd7c16640826987b97367046c6c76adb8c2d3c4843f38480b97beb71147dc797",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/scure.js": "fbc4be16918272bd167fff1184a7f5bbd1a676bad2a73130bb530d78df893a99",
|
||||
|
12
deno.lock
12
deno.lock
@ -6,16 +6,6 @@
|
||||
"https://deno.land/std@0.176.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea",
|
||||
"https://deno.land/std@0.176.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7",
|
||||
"https://deno.land/std@0.176.0/testing/asserts.ts": "984ab0bfb3faeed92ffaa3a6b06536c66811185328c5dd146257c702c41b01ab",
|
||||
"https://deno.land/x/sqlite@v3.7.2/build/sqlite.d.ts": "d724a21a588a0e19ae46a3476349fe5d75e896735e7362ea8cf997ffad35d0f9",
|
||||
"https://deno.land/x/sqlite@v3.7.2/build/sqlite.js": "c59f109f100c2bae0b9342f04e0d400583e2e3211d08bb71095177a4109ee5bf",
|
||||
"https://deno.land/x/sqlite@v3.7.2/build/vfs.js": "08533cc78fb29b9d9bd62f6bb93e5ef333407013fed185776808f11223ba0e70",
|
||||
"https://deno.land/x/sqlite@v3.7.2/mod.ts": "e09fc79d8065fe222578114b109b1fd60077bff1bb75448532077f784f4d6a83",
|
||||
"https://deno.land/x/sqlite@v3.7.2/src/constants.ts": "90f3be047ec0a89bcb5d6fc30db121685fc82cb00b1c476124ff47a4b0472aa9",
|
||||
"https://deno.land/x/sqlite@v3.7.2/src/db.ts": "62f3ad4d593c07e7c64fbbd97da6b4579ea695f8d11d52d899661e9d42a400fd",
|
||||
"https://deno.land/x/sqlite@v3.7.2/src/error.ts": "f7a15cb00d7c3797da1aefee3cf86d23e0ae92e73f0ba3165496c3816ab9503a",
|
||||
"https://deno.land/x/sqlite@v3.7.2/src/function.ts": "e4c83b8ec64bf88bafad2407376b0c6a3b54e777593c70336fb40d43a79865f2",
|
||||
"https://deno.land/x/sqlite@v3.7.2/src/query.ts": "d58abda928f6582d77bad685ecf551b1be8a15e8e38403e293ec38522e030cad",
|
||||
"https://deno.land/x/sqlite@v3.7.2/src/wasm.ts": "e79d0baa6e42423257fb3c7cc98091c54399254867e0f34a09b5bdef37bd9487",
|
||||
"https://esm.sh/preact@10.11.3": "ad3c24796c4132c84b4b392f812228d53a0fd600fa64648f27aebd05ec09b24e",
|
||||
"https://esm.sh/stable/preact@10.11.3/denonext/preact.mjs": "c828d9020ea26f07ba07b2f0a3ef97fd7ceb1c2a772c380ca05e2647ac8d3923",
|
||||
"https://esm.sh/twind@0.16.16": "7f93bf4dc6102cef9a66689807b09f6bf35cbd8dd397b550fc97525c3e71e196",
|
||||
@ -28,7 +18,7 @@
|
||||
"https://esm.sh/v127/twind@0.16.16/twind.d.ts": "f0e7236ef5a8b39dbe9cf4439dd4689c5954980c2987d00e9c94cd1a5e8923fb",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/csp/master/csp.ts": "3e8eed3d933748d48c83e2ae583bf86748621bcd6e8f181bef8a6ae8e5a4bfac",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/ende.ts": "86fa705459ce19edc2c320a463e55f1cece3c1d415dfb36af387a433a6453da8",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts": "c4f535fff729290e274541ac003f9f8b7c21da3121be55a6c361d72dfd5747c4",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts": "12405f91cb7260775fd202bbbcbaf96052ce394d6c4e409fc38c17ae3d8bd540",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/nostr.ts": "2dda31c5c22fba273f68ad1f747e9e5e8c3ef1e6a6bbdf0835109f514236c28b",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/relay-list.test.ts": "93c319f991c03c4a62d080960c83fc17542c0f593344ca37c9e56cad7428de2a",
|
||||
"https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/relay.ts": "dd7c16640826987b97367046c6c76adb8c2d3c4843f38480b97beb71147dc797",
|
||||
|
@ -9,16 +9,15 @@ import {
|
||||
prepareEncryptedNostrEvent,
|
||||
prepareNormalNostrEvent,
|
||||
RelayResponse_Event,
|
||||
RelayResponse_REQ_Message,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/nostr.ts";
|
||||
import {
|
||||
ConnectionPool,
|
||||
newSubID,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/relay.ts";
|
||||
import { getTags, prepareNostrImageEvents, Tag } from "../nostr.ts";
|
||||
import { prepareNostrImageEvents, Tag } from "../nostr.ts";
|
||||
import {
|
||||
PrivateKey,
|
||||
publicKeyHexFromNpub,
|
||||
toPublicKeyHex,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
|
||||
export async function sendDMandImages(args: {
|
||||
@ -234,9 +233,10 @@ async function* messagesSendByMeTo(
|
||||
limit: number,
|
||||
) {
|
||||
receiverPubKey = publicKeyHexFromNpub(receiverPubKey);
|
||||
const myPri = PrivateKey.FromHex(myPriKey) as PrivateKey;
|
||||
for await (
|
||||
let { res: relayResponse } of getEncryptedMessagesBetween(
|
||||
toPublicKeyHex(myPriKey),
|
||||
myPri.toPublicKey().hex,
|
||||
receiverPubKey,
|
||||
relay,
|
||||
limit,
|
||||
@ -253,10 +253,11 @@ async function* messagesSendToMeBy(
|
||||
limit: number,
|
||||
) {
|
||||
senderPubKey = publicKeyHexFromNpub(senderPubKey);
|
||||
const myPri = PrivateKey.FromHex(myPriKey) as PrivateKey;
|
||||
for await (
|
||||
let { res: relayResponse } of getEncryptedMessagesBetween(
|
||||
senderPubKey,
|
||||
toPublicKeyHex(myPriKey),
|
||||
myPri.toPublicKey().hex,
|
||||
relay,
|
||||
limit,
|
||||
)
|
||||
|
@ -97,7 +97,7 @@ export function getProfilesByName(db: Database, name: string): ProfileEvent[] {
|
||||
for (const events of profilesPerUser.values()) {
|
||||
events.sort((e1, e2) => e2.created_at - e1.created_at);
|
||||
const p = ProfileFromNostrEvent(events[0]);
|
||||
if (p.content.name?.toLocaleLowerCase().indexOf(name.toLowerCase()) != -1) {
|
||||
if (p.content.name && p.content.name?.toLocaleLowerCase().indexOf(name.toLowerCase()) != -1) {
|
||||
result.push(p);
|
||||
}
|
||||
}
|
||||
|
@ -21,15 +21,11 @@ import {
|
||||
reassembleBase64ImageFromEvents,
|
||||
} from "./nostr.ts";
|
||||
import { LamportTime } from "./time.ts";
|
||||
import {
|
||||
generatePrivateKeyHex,
|
||||
PrivateKey,
|
||||
toPublicKeyHex,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
import { PrivateKey } from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
|
||||
Deno.test("prepareNostrImageEvents", async (t) => {
|
||||
const pri = PrivateKey.Generate();
|
||||
const pub = toPublicKeyHex(pri.hex);
|
||||
const pub = pri.toPublicKey().hex;
|
||||
|
||||
let randomData = new Uint8Array(1024 * 48); // 48KB raw data
|
||||
for (let i = 0; i < randomData.length; i++) {
|
||||
@ -80,7 +76,7 @@ Deno.test("prepareNostrImageEvents", async (t) => {
|
||||
|
||||
Deno.test("groupImageEvents", async () => {
|
||||
const pri = PrivateKey.Generate();
|
||||
const pub = toPublicKeyHex(pri.hex);
|
||||
const pub = pri.toPublicKey().hex;
|
||||
|
||||
let randomData = new Uint8Array(1024 * 17);
|
||||
for (let i = 0; i < randomData.length; i++) {
|
||||
@ -141,7 +137,7 @@ Deno.test("Generate reply event", async () => {
|
||||
) as NostrEvent;
|
||||
|
||||
assertEquals(replyMessage1WithText.kind, message1.kind);
|
||||
assertEquals(replyMessage1WithText.pubkey, toPublicKeyHex(userAPrivateKey.hex));
|
||||
assertEquals(replyMessage1WithText.pubkey, userAPrivateKey.toPublicKey().hex);
|
||||
assertEquals(replyMessage1WithText.tags, [[
|
||||
"e",
|
||||
message1.id,
|
||||
@ -191,7 +187,7 @@ Deno.test("Group reply messages", async (t) => {
|
||||
"text message 5, text message 3's reply",
|
||||
) as NostrEvent;
|
||||
|
||||
const message6LeadEventID = generatePrivateKeyHex();
|
||||
const message6LeadEventID = PrivateKey.Generate().hex;
|
||||
const message6 = await prepareNormalNostrEvent(
|
||||
userBContext,
|
||||
NostrKind.DIRECT_MESSAGE,
|
||||
@ -234,7 +230,7 @@ Deno.test("Group reply messages", async (t) => {
|
||||
],
|
||||
"image message 8",
|
||||
);
|
||||
const message9LeadEventID = generatePrivateKeyHex();
|
||||
const message9LeadEventID = PrivateKey.Generate().hex;
|
||||
const message9 = await prepareReplyEvent(
|
||||
userAContext,
|
||||
message6,
|
||||
@ -335,7 +331,7 @@ Deno.test("Group reply messages", async (t) => {
|
||||
"text message 1",
|
||||
);
|
||||
|
||||
const message2LeadEventID = generatePrivateKeyHex();
|
||||
const message2LeadEventID = PrivateKey.Generate().hex;
|
||||
const message2 = await prepareNormalNostrEvent(
|
||||
userBContext,
|
||||
NostrKind.DIRECT_MESSAGE,
|
||||
@ -428,7 +424,7 @@ Deno.test("Group reply messages", async (t) => {
|
||||
notUsed,
|
||||
[[
|
||||
"image",
|
||||
generatePrivateKeyHex(),
|
||||
PrivateKey.Generate().hex,
|
||||
"1",
|
||||
"0",
|
||||
]],
|
||||
|
4
nostr.ts
4
nostr.ts
@ -2,7 +2,7 @@
|
||||
Extension to common Nostr types
|
||||
*/
|
||||
import {
|
||||
generatePrivateKeyHex,
|
||||
PrivateKey,
|
||||
publicKeyHexFromNpub,
|
||||
} from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/key.ts";
|
||||
import * as nostr from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/nostr.ts";
|
||||
@ -88,7 +88,7 @@ export async function prepareNostrImageEvents(
|
||||
const chunkSize = 32 * 1024;
|
||||
const chunkCount = Math.ceil(binaryContent.length / chunkSize);
|
||||
const events: nostr.NostrEvent[] = [];
|
||||
let groupLeadEventID = generatePrivateKeyHex();
|
||||
let groupLeadEventID = PrivateKey.Generate().hex;
|
||||
for (let i = 0; i < chunkCount; i++) {
|
||||
const chunk = binaryContent.slice(i * chunkSize, (i + 1) * chunkSize);
|
||||
// encryption
|
||||
|
Loading…
Reference in New Issue
Block a user