This might be a very stupid question, but I’m getting:

SyntaxError: The requested module 'nostr-tools' does not provide an export named 'getSignature'

when I run my nodejs code. Everything else seems to be importing just fine. Does anyone know what’s going on?

Reply to this note

Please Login to reply.

Discussion

#[1]​ can I use nodejs 14.21.2 with nostr-tools?

I’ve had a look at the nostr-tools code and ā€˜getSignature’ does get exported.

Can you share some of your code? Are you importing ā€˜getSignature’ and calling it somewhere in your code?

Sure here is the relevant part of the code:

import express from 'express';

import { RelayPool } from 'nostr';

import converter from 'bech32-converting';

import WebSocket from 'ws';

import fs from 'fs';

import cors from 'cors';

import { getSignature, validateEvent, verifySignature, getEventHash, getPublicKey, nip04 } from 'nostr-tools';

let sk1 = 'LONG_STRING_IN_HEX_FORMAT'

let pk1 = 'LONG_STRING_IN_HEX_FORMAT'

let pk2 = 'LONG_STRING_IN_HEX_FORMAT'

pool.on('open', relay => {

let event = {

kind: 4,

pubkey: pk1,

created_at: Math.floor(Date.now() / 1000),

tags: [['p', pk2]],

content: 'hello world',

};

event.id = getEventHash(event);

let signedEvent = signEvent(event)

event.sig = getSignature(event, sk1);

let ok = validateEvent(event)

let veryOk = verifySignature(event)

});

And what version of nostr-tools are you running? I think ā€˜getSignature’ was added later on as replacement for ā€˜signEvent’

I’m using 1.10.1 which I believe is the latest version. I’ve also tried 1.10.0 and it doesn’t work