@unicitylabs/nostr-js-sdk 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,6 +41,7 @@ exports.createTokenTransferEvent = createTokenTransferEvent;
41
41
  exports.parseTokenTransfer = parseTokenTransfer;
42
42
  exports.getAmount = getAmount;
43
43
  exports.getSymbol = getSymbol;
44
+ exports.getReplyToEventId = getReplyToEventId;
44
45
  exports.isTokenTransfer = isTokenTransfer;
45
46
  exports.getRecipient = getRecipient;
46
47
  exports.getSender = getSender;
@@ -58,16 +59,32 @@ const MESSAGE_PREFIX = 'token_transfer:';
58
59
  * - ["type", "token_transfer"] - Event type
59
60
  * - ["amount", "<amount>"] - Optional amount
60
61
  * - ["symbol", "<symbol>"] - Optional token symbol
62
+ * - ["e", "<event_id>", "", "reply"] - Optional reply-to event (for payment request correlation)
61
63
  * - Content: NIP-04 encrypted "token_transfer:{tokenJson}"
62
64
  *
63
65
  * @param keyManager Key manager with signing keys
64
66
  * @param recipientPubkeyHex Recipient's public key (hex)
65
67
  * @param tokenJson Token JSON string
66
- * @param amount Optional amount for metadata
67
- * @param symbol Optional token symbol for metadata
68
+ * @param amountOrOptions Optional amount for metadata, or options object
69
+ * @param symbol Optional token symbol for metadata (ignored if options object used)
68
70
  * @returns Signed event
69
71
  */
70
- async function createTokenTransferEvent(keyManager, recipientPubkeyHex, tokenJson, amount, symbol) {
72
+ async function createTokenTransferEvent(keyManager, recipientPubkeyHex, tokenJson, amountOrOptions, symbol) {
73
+ // Parse options (support both old and new signatures)
74
+ let amount;
75
+ let tokenSymbol;
76
+ let replyToEventId;
77
+ if (amountOrOptions !== undefined && typeof amountOrOptions === 'object') {
78
+ // New options object signature
79
+ amount = amountOrOptions.amount;
80
+ tokenSymbol = amountOrOptions.symbol;
81
+ replyToEventId = amountOrOptions.replyToEventId;
82
+ }
83
+ else {
84
+ // Old positional arguments signature
85
+ amount = amountOrOptions;
86
+ tokenSymbol = symbol;
87
+ }
71
88
  // Encrypt the token data
72
89
  const message = MESSAGE_PREFIX + tokenJson;
73
90
  const encryptedContent = await keyManager.encryptHex(message, recipientPubkeyHex);
@@ -79,8 +96,12 @@ async function createTokenTransferEvent(keyManager, recipientPubkeyHex, tokenJso
79
96
  if (amount !== undefined) {
80
97
  tags.push(['amount', String(amount)]);
81
98
  }
82
- if (symbol !== undefined) {
83
- tags.push(['symbol', symbol]);
99
+ if (tokenSymbol !== undefined) {
100
+ tags.push(['symbol', tokenSymbol]);
101
+ }
102
+ // Add optional reply-to event reference (for payment request correlation)
103
+ if (replyToEventId !== undefined && replyToEventId.length > 0) {
104
+ tags.push(['e', replyToEventId, '', 'reply']);
84
105
  }
85
106
  const event = Event_js_1.Event.create(keyManager, {
86
107
  kind: EventKinds.TOKEN_TRANSFER,
@@ -168,6 +189,15 @@ function getAmount(event) {
168
189
  function getSymbol(event) {
169
190
  return event.getTagValue('symbol');
170
191
  }
192
+ /**
193
+ * Get the reply-to event ID from a token transfer event.
194
+ * Used to correlate token transfers with payment requests.
195
+ * @param event Token transfer event
196
+ * @returns Referenced event ID, or undefined if not present
197
+ */
198
+ function getReplyToEventId(event) {
199
+ return event.getTagValue('e');
200
+ }
171
201
  /**
172
202
  * Check if an event is a token transfer.
173
203
  * @param event Event to check
@@ -1 +1 @@
1
- {"version":3,"file":"TokenTransferProtocol.js","sourceRoot":"","sources":["../../../src/token/TokenTransferProtocol.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BH,4DAgCC;AAWD,gDAiDC;AAOD,8BAUC;AAOD,8BAEC;AAOD,0CAKC;AAOD,oCAEC;AAOD,8BAEC;AA7KD,mDAA6C;AAC7C,sEAAwD;AAExD,yCAAyC;AACzC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,wBAAwB,CAC5C,UAA2B,EAC3B,kBAA0B,EAC1B,SAAiB,EACjB,MAAwB,EACxB,MAAe;IAEf,yBAAyB;IACzB,MAAM,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAElF,aAAa;IACb,MAAM,IAAI,GAAe;QACvB,CAAC,GAAG,EAAE,kBAAkB,CAAC;QACzB,CAAC,MAAM,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,gBAAK,CAAC,MAAM,CAAC,UAAU,EAAE;QACrC,IAAI,EAAE,UAAU,CAAC,cAAc;QAC/B,IAAI;QACJ,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,kBAAkB,CACtC,KAAY,EACZ,UAA2B;IAE3B,oBAAoB;IACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IACpC,IAAI,eAAuB,CAAC;IAC5B,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,mDAAmD;QACnD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,eAAe,GAAG,eAAe,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,oDAAoD;QACpD,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,sBAAsB;IACtB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;YAC3D,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,KAAK,CAAC,CAAC,0BAA0B;QACzC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAY;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAY;IAC1C,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc;QACxC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAC/C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAY;IACvC,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"TokenTransferProtocol.js","sourceRoot":"","sources":["../../../src/token/TokenTransferProtocol.ts"],"names":[],"mappings":"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"}
@@ -16,16 +16,32 @@ const MESSAGE_PREFIX = 'token_transfer:';
16
16
  * - ["type", "token_transfer"] - Event type
17
17
  * - ["amount", "<amount>"] - Optional amount
18
18
  * - ["symbol", "<symbol>"] - Optional token symbol
19
+ * - ["e", "<event_id>", "", "reply"] - Optional reply-to event (for payment request correlation)
19
20
  * - Content: NIP-04 encrypted "token_transfer:{tokenJson}"
20
21
  *
21
22
  * @param keyManager Key manager with signing keys
22
23
  * @param recipientPubkeyHex Recipient's public key (hex)
23
24
  * @param tokenJson Token JSON string
24
- * @param amount Optional amount for metadata
25
- * @param symbol Optional token symbol for metadata
25
+ * @param amountOrOptions Optional amount for metadata, or options object
26
+ * @param symbol Optional token symbol for metadata (ignored if options object used)
26
27
  * @returns Signed event
27
28
  */
28
- export async function createTokenTransferEvent(keyManager, recipientPubkeyHex, tokenJson, amount, symbol) {
29
+ export async function createTokenTransferEvent(keyManager, recipientPubkeyHex, tokenJson, amountOrOptions, symbol) {
30
+ // Parse options (support both old and new signatures)
31
+ let amount;
32
+ let tokenSymbol;
33
+ let replyToEventId;
34
+ if (amountOrOptions !== undefined && typeof amountOrOptions === 'object') {
35
+ // New options object signature
36
+ amount = amountOrOptions.amount;
37
+ tokenSymbol = amountOrOptions.symbol;
38
+ replyToEventId = amountOrOptions.replyToEventId;
39
+ }
40
+ else {
41
+ // Old positional arguments signature
42
+ amount = amountOrOptions;
43
+ tokenSymbol = symbol;
44
+ }
29
45
  // Encrypt the token data
30
46
  const message = MESSAGE_PREFIX + tokenJson;
31
47
  const encryptedContent = await keyManager.encryptHex(message, recipientPubkeyHex);
@@ -37,8 +53,12 @@ export async function createTokenTransferEvent(keyManager, recipientPubkeyHex, t
37
53
  if (amount !== undefined) {
38
54
  tags.push(['amount', String(amount)]);
39
55
  }
40
- if (symbol !== undefined) {
41
- tags.push(['symbol', symbol]);
56
+ if (tokenSymbol !== undefined) {
57
+ tags.push(['symbol', tokenSymbol]);
58
+ }
59
+ // Add optional reply-to event reference (for payment request correlation)
60
+ if (replyToEventId !== undefined && replyToEventId.length > 0) {
61
+ tags.push(['e', replyToEventId, '', 'reply']);
42
62
  }
43
63
  const event = Event.create(keyManager, {
44
64
  kind: EventKinds.TOKEN_TRANSFER,
@@ -126,6 +146,15 @@ export function getAmount(event) {
126
146
  export function getSymbol(event) {
127
147
  return event.getTagValue('symbol');
128
148
  }
149
+ /**
150
+ * Get the reply-to event ID from a token transfer event.
151
+ * Used to correlate token transfers with payment requests.
152
+ * @param event Token transfer event
153
+ * @returns Referenced event ID, or undefined if not present
154
+ */
155
+ export function getReplyToEventId(event) {
156
+ return event.getTagValue('e');
157
+ }
129
158
  /**
130
159
  * Check if an event is a token transfer.
131
160
  * @param event Event to check
@@ -1 +1 @@
1
- {"version":3,"file":"TokenTransferProtocol.js","sourceRoot":"","sources":["../../../src/token/TokenTransferProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenTransferProtocol.js","sourceRoot":"","sources":["../../../src/token/TokenTransferProtocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AAExD,yCAAyC;AACzC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAczC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAA2B,EAC3B,kBAA0B,EAC1B,SAAiB,EACjB,eAAwD,EACxD,MAAe;IAEf,sDAAsD;IACtD,IAAI,MAAmC,CAAC;IACxC,IAAI,WAA+B,CAAC;IACpC,IAAI,cAAkC,CAAC;IAEvC,IAAI,eAAe,KAAK,SAAS,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACzE,+BAA+B;QAC/B,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAChC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;QACrC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,MAAM,GAAG,eAAe,CAAC;QACzB,WAAW,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAElF,aAAa;IACb,MAAM,IAAI,GAAe;QACvB,CAAC,GAAG,EAAE,kBAAkB,CAAC;QACzB,CAAC,MAAM,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,0EAA0E;IAC1E,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;QACrC,IAAI,EAAE,UAAU,CAAC,cAAc;QAC/B,IAAI;QACJ,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAY,EACZ,UAA2B;IAE3B,oBAAoB;IACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IACpC,IAAI,eAAuB,CAAC;IAC5B,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,mDAAmD;QACnD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,eAAe,GAAG,eAAe,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,oDAAoD;QACpD,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,sBAAsB;IACtB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC3D,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,KAAK,CAAC,CAAC,0BAA0B;QACzC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc;QACxC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAC/C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC"}
@@ -4,6 +4,17 @@
4
4
  */
5
5
  import { NostrKeyManager } from '../NostrKeyManager.js';
6
6
  import { Event } from '../protocol/Event.js';
7
+ /**
8
+ * Options for creating a token transfer event.
9
+ */
10
+ export interface TokenTransferOptions {
11
+ /** Optional amount for metadata */
12
+ amount?: number | bigint;
13
+ /** Optional token symbol for metadata */
14
+ symbol?: string;
15
+ /** Optional event ID this transfer is responding to (e.g., payment request) */
16
+ replyToEventId?: string;
17
+ }
7
18
  /**
8
19
  * Create a token transfer event.
9
20
  *
@@ -14,16 +25,17 @@ import { Event } from '../protocol/Event.js';
14
25
  * - ["type", "token_transfer"] - Event type
15
26
  * - ["amount", "<amount>"] - Optional amount
16
27
  * - ["symbol", "<symbol>"] - Optional token symbol
28
+ * - ["e", "<event_id>", "", "reply"] - Optional reply-to event (for payment request correlation)
17
29
  * - Content: NIP-04 encrypted "token_transfer:{tokenJson}"
18
30
  *
19
31
  * @param keyManager Key manager with signing keys
20
32
  * @param recipientPubkeyHex Recipient's public key (hex)
21
33
  * @param tokenJson Token JSON string
22
- * @param amount Optional amount for metadata
23
- * @param symbol Optional token symbol for metadata
34
+ * @param amountOrOptions Optional amount for metadata, or options object
35
+ * @param symbol Optional token symbol for metadata (ignored if options object used)
24
36
  * @returns Signed event
25
37
  */
26
- export declare function createTokenTransferEvent(keyManager: NostrKeyManager, recipientPubkeyHex: string, tokenJson: string, amount?: number | bigint, symbol?: string): Promise<Event>;
38
+ export declare function createTokenTransferEvent(keyManager: NostrKeyManager, recipientPubkeyHex: string, tokenJson: string, amountOrOptions?: number | bigint | TokenTransferOptions, symbol?: string): Promise<Event>;
27
39
  /**
28
40
  * Parse a token transfer event.
29
41
  * Decrypts and decompresses the token data.
@@ -46,6 +58,13 @@ export declare function getAmount(event: Event): bigint | undefined;
46
58
  * @returns Symbol, or undefined if not specified
47
59
  */
48
60
  export declare function getSymbol(event: Event): string | undefined;
61
+ /**
62
+ * Get the reply-to event ID from a token transfer event.
63
+ * Used to correlate token transfers with payment requests.
64
+ * @param event Token transfer event
65
+ * @returns Referenced event ID, or undefined if not present
66
+ */
67
+ export declare function getReplyToEventId(event: Event): string | undefined;
49
68
  /**
50
69
  * Check if an event is a token transfer.
51
70
  * @param event Event to check
@@ -1 +1 @@
1
- {"version":3,"file":"TokenTransferProtocol.d.ts","sourceRoot":"","sources":["../../../src/token/TokenTransferProtocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAM7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,eAAe,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC,CA0BhB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAU1D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAKrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE9C"}
1
+ {"version":3,"file":"TokenTransferProtocol.d.ts","sourceRoot":"","sources":["../../../src/token/TokenTransferProtocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,eAAe,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,EACxD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC,CA+ChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAU1D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAElE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAKrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unicitylabs/nostr-js-sdk",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Unicity Nostr SDK - Token transfers and nametag bindings over Nostr protocol",
5
5
  "license": "MIT",
6
6
  "author": "Unicity Labs",