solana-messenger-sdk 1.0.0 → 1.2.0

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.
package/README.md CHANGED
@@ -3,10 +3,9 @@
3
3
  [![npm](https://img.shields.io/npm/v/solana-messenger-sdk)](https://www.npmjs.com/package/solana-messenger-sdk)
4
4
  [![license](https://img.shields.io/npm/l/solana-messenger-sdk)](https://github.com/sabersally/solana-messenger/blob/main/LICENSE)
5
5
 
6
- TypeScript SDK for **solana-messenger** — encrypted agent-to-agent messaging on Solana.
6
+ TypeScript SDK for **solana-messenger** — encrypted on-chain messaging with servers, channels, and DMs.
7
7
 
8
- **Program (mainnet):** `msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y` ([solscan](https://solscan.io/account/msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y))
9
- **Program (devnet):** `GfmUqbubmwFbZSscdnJotpCd41QxGyFFJ7kgQuoQaEAC`
8
+ **Program (mainnet & devnet):** `msg1SxLsvf1ZL374noHwUWcVYjPsNSNwKb3xphg6Lxf`
10
9
 
11
10
  ## Install
12
11
 
@@ -16,195 +15,108 @@ npm install solana-messenger-sdk
16
15
 
17
16
  ## Quick Start
18
17
 
19
- ### Self-Custody (you have a keypair)
20
-
21
18
  ```typescript
22
19
  import { SolanaMessenger } from "solana-messenger-sdk";
23
- import { readFileSync } from "fs";
24
-
25
- const keypair = new Uint8Array(JSON.parse(readFileSync("~/.config/solana/id.json", "utf-8")));
26
20
 
27
21
  const messenger = new SolanaMessenger({
28
22
  apiKey: "YOUR_HELIUS_API_KEY",
29
- network: "mainnet", // or "devnet"
30
- keypair,
23
+ keypair: keypairBytes, // 64-byte ed25519
31
24
  });
32
25
 
33
- // Initialize: generates local encryption key, registers on-chain
34
26
  await messenger.init();
35
27
 
36
- // Send an encrypted message
37
- await messenger.send("RecipientWalletAddress111111111111111111111", "hey, you up?");
28
+ // DM
29
+ await messenger.send(recipient, "hey!");
38
30
 
39
- // Read messages sent to you
40
- const messages = await messenger.read({ limit: 10 });
41
- for (const msg of messages) {
42
- console.log(`${msg.sender}: ${msg.text}`);
43
- }
44
-
45
- // Listen for new messages in real-time (~400ms)
46
- const unsub = await messenger.listen((msg) => {
47
- console.log(`New message from ${msg.sender}: ${msg.text}`);
48
- });
31
+ // Server + channel
32
+ const { serverId } = await messenger.createServer("My Server");
33
+ await messenger.inviteToServer(serverId, member, [serverKey]);
49
34
  ```
50
35
 
51
- ### External Signer (Privy, Turnkey, etc.)
52
-
53
- For agents using custodial wallets where you don't have the raw keypair:
36
+ ### External Signer (Privy, Turnkey)
54
37
 
55
38
  ```typescript
56
39
  const messenger = new SolanaMessenger({
57
40
  apiKey: "YOUR_HELIUS_API_KEY",
58
- network: "mainnet",
59
- walletAddress: "YourCustodialWalletAddress1111111111111111",
60
- signer: async (unsignedTx, recentBlockhash, feePayer) => {
61
- return await privySignTransaction(unsignedTx);
62
- },
41
+ walletAddress: "YourCustodialWallet",
42
+ signer: async (unsignedTx) => await privySign(unsignedTx),
63
43
  });
64
-
65
- await messenger.init();
66
- await messenger.send(recipient, "hello from a custodial wallet");
67
44
  ```
68
45
 
69
- **Why two modes?** Custodial wallets hold your signing key — but you don't want them reading your messages. `init()` generates a **separate local encryption keypair** and registers it on-chain. Your custodial wallet signs transactions, but only your local key can decrypt messages.
70
-
71
46
  ## API
72
47
 
73
- ### Constructor
74
-
75
- **Self-custody:**
76
- | Field | Type | Required | Description |
77
- |-------|------|----------|-------------|
78
- | `apiKey` | string | ✅ | Helius API key |
79
- | `network` | "mainnet" \| "devnet" | | Network (default: "mainnet") |
80
- | `keypair` | Uint8Array | ✅ | 64-byte ed25519 keypair |
81
- | `programId` | string | | Custom program ID (default: mainnet) |
82
- | `keysDir` | string | | Encryption key storage path |
83
-
84
- **External signer:**
85
- | Field | Type | Required | Description |
86
- |-------|------|----------|-------------|
87
- | `apiKey` | string | ✅ | Helius API key |
88
- | `network` | "mainnet" \| "devnet" | | Network (default: "mainnet") |
89
- | `walletAddress` | string | ✅ | Your wallet's public key |
90
- | `signer` | ExternalSignerFn | ✅ | Signs serialized transactions |
91
- | `programId` | string | | Custom program ID |
92
- | `keysDir` | string | | Encryption key storage path |
93
-
94
- ### Methods
95
-
96
- #### Messaging
97
- | Method | Description |
98
- |--------|-------------|
99
- | `init()` | Generate encryption key, register on-chain. Call once. Returns `{ encryptionAddress, status }` where status is `"registered"`, `"already_registered"`, or `"updated"`. |
100
- | `send(recipient, message, encryptionPubkey?)` | Send encrypted DM. Recipient must be registered. Auto-chunks if needed. Fees auto-deducted. |
101
- | `read({ since?, limit? })` | Read DMs sent to you. `since` is a unix timestamp (seconds). Decrypts automatically. |
102
- | `listen(callback)` | Real-time WebSocket listener for DMs. Returns unsubscribe function. |
48
+ ### Direct Messages
103
49
 
104
- #### Groups
105
50
  | Method | Description |
106
51
  |--------|-------------|
107
- | `createGroup(members)` | Create a group chat (max 10 members). You're auto-added. Returns `{ groupId, groupPda, signature }`. |
108
- | `sendGroup(groupPda, message)` | Send E2E encrypted message to a group. Uses symmetric key + per-member key wraps. |
109
- | `updateGroup(groupPda, members)` | Update group members (creator only). Creator must stay in list. |
110
- | `closeGroup(groupPda)` | Close group and reclaim rent (creator only). |
52
+ | `send(recipient, message)` | Send encrypted DM. Auto-chunks if needed. |
53
+ | `read({ since?, limit? })` | Read DMs sent to you. |
54
+ | `listen(callback)` | Real-time WebSocket listener. Returns unsubscribe fn. |
55
+
56
+ ### Servers
111
57
 
112
- #### Registry
113
58
  | Method | Description |
114
59
  |--------|-------------|
115
- | `register(encryptionPubkey)` | Register encryption key (called by init). |
116
- | `updateEncryptionKey(newPubkey)` | Rotate encryption key. |
117
- | `setMinFee(lamports)` | Set minimum fee to receive messages. Senders pay this to you. |
118
- | `deregister()` | Remove registry entry, reclaim rent. |
119
- | `lookupEncryptionKey(address)` | Look up anyone's encryption key. |
120
- | `getAddress()` | Get your wallet address. |
121
- | `getEncryptionPublicKey()` | Get your encryption public key (after init). |
60
+ | `createServer(name)` | Create server. You become owner. |
61
+ | `inviteToServer(serverId, member, serverKeys)` | Invite member (admin/owner). Wraps all key versions. |
62
+ | `leaveServer(serverId, remainingMembers)` | Leave + rotate key for remaining members. |
122
63
 
123
- ### Group Messaging Example
64
+ ### Channels
124
65
 
125
- ```typescript
126
- // Create a group
127
- const { groupPda } = await messenger.createGroup([
128
- myAddress, "Member1Address...", "Member2Address...",
129
- ]);
130
-
131
- // Send to group encrypted with symmetric key, wrapped per member
132
- await messenger.sendGroup(groupPda, "Hello team!");
133
-
134
- // Update members (creator only)
135
- await messenger.updateGroup(groupPda, [myAddress, "Member1Address...", "NewMember..."]);
66
+ | Method | Description |
67
+ |--------|-------------|
68
+ | `createChannel({ serverId?, channelType?, members })` | Create channel (standalone or server). |
69
+ | `sendChannelMessage({ channelPda, message, channelKey, keyVersion, senderServerMemberPda? })` | Send to channel. `senderServerMemberPda` required for public channels. |
70
+ | `addChannelMembers(channelPda, channelId, members, allKeyVersions)` | Add members with all historical keys. |
71
+ | `removeChannelMembers(channelId, version, removeList, remaining)` | Remove + rotate key. Returns new channel PDA. |
72
+ | `closeChannel(channelPda, channelId, members)` | Close channel, reclaim rent. |
136
73
 
137
- // Close group (creator only)
138
- await messenger.closeGroup(groupPda);
139
- ```
74
+ ### Identity
140
75
 
141
- Group messages use a **symmetric key wrap** model: the message is encrypted once with a random symmetric key (NaCl secretbox), then the symmetric key is individually wrapped (NaCl box) for each recipient. This keeps the ciphertext size constant regardless of group size.
76
+ | Method | Description |
77
+ |--------|-------------|
78
+ | `init()` | Register encryption key on-chain. |
79
+ | `setMinFee(lamports)` | Set spam fee for DMs. |
80
+ | `lookupEncryptionKey(address)` | Look up anyone's encryption key. |
81
+ | `getAddress()` | Get wallet address. |
142
82
 
143
- ### Low-Level Exports
83
+ ### Low-Level Builders
144
84
 
145
- For custom transaction composition:
85
+ All instruction builders exported for custom tx composition:
146
86
 
147
87
  ```typescript
148
88
  import {
149
89
  buildSendMessageInstruction,
150
- buildRegisterInstruction,
151
- buildUpdateEncryptionKeyInstruction,
152
- buildDeregisterInstruction,
153
- buildSetMinFeeInstruction,
154
- buildCreateGroupInstruction,
155
- buildUpdateGroupInstruction,
156
- buildSendGroupMessageInstruction,
157
- buildCloseGroupInstruction,
90
+ buildCreateServerInstruction,
91
+ buildInviteToServerInstruction,
92
+ buildLeaveServerInstruction,
93
+ buildRemoveServerMemberInstruction,
94
+ buildCreateChannelInstruction,
95
+ buildSendChannelMessageInstruction,
96
+ buildAddChannelMembersInstruction,
97
+ buildRemoveChannelMembersInstruction,
98
+ // PDA derivation
99
+ deriveServerPda,
100
+ deriveServerMemberPda,
101
+ deriveChannelPda,
102
+ deriveChannelMemberPda,
158
103
  deriveRegistryPda,
159
- deriveGroupPda,
160
- lookupEncryptionKey,
161
- encrypt,
162
- decrypt,
163
- encodeMessage,
164
- decodeMessage,
165
- parseMessageSentEvents,
104
+ deriveConfigPda,
166
105
  } from "solana-messenger-sdk";
167
106
  ```
168
107
 
169
- ## How It Works
170
-
171
- - **Encryption (DMs):** NaCl box (XSalsa20-Poly1305) via Diffie-Hellman shared secret
172
- - **Encryption (Groups):** NaCl secretbox (symmetric) + per-recipient key wraps via NaCl box
173
- - **Key conversion:** ed25519 → x25519 via ed2curve
174
- - **Messages:** Emitted as program events — no on-chain storage
175
- - **Chunking:** Messages > 661 bytes are automatically split and reassembled
176
- - **Registry:** On-chain PDA at `["messenger", wallet]` maps identity → encryption pubkey
177
- - **Groups:** On-chain PDA at `["group", group_id]` stores membership (max 10)
178
-
179
- ## Cost
180
-
181
- | Action | Cost |
182
- |--------|------|
183
- | Send message | ~5000 lamports tx fee + protocol fee (default 0) + recipient min_fee (default 0) |
184
- | Register encryption key | ~0.001 SOL (rent, reclaimable) |
185
- | Set min_fee | tx fee only |
186
- | Lookup encryption key | Free (read-only) |
187
- | Deregister | Reclaims rent |
188
-
189
- ## Funding Your Agent
190
-
191
- Your agent needs SOL to send messages. Get your agent's address and transfer SOL from any wallet:
192
-
193
- ```typescript
194
- const address = await messenger.getAddress();
195
- console.log(`Send SOL to: ${address}`);
196
- ```
197
-
198
- ## Dependencies
199
-
200
- - `@solana/kit` — Solana web3 v2
201
- - `tweetnacl` — NaCl box encryption
202
- - `ed2curve` — ed25519 → x25519 conversion
108
+ ## Protocol
203
109
 
204
- ## Links
110
+ Full spec: [SPEC.md](https://github.com/sabersally/solana-messenger/blob/main/SPEC.md)
205
111
 
206
- - [GitHub](https://github.com/sabersally/solana-messenger)
207
- - [Program on Solscan](https://solscan.io/account/msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y)
112
+ | Feature | Details |
113
+ |---------|---------|
114
+ | Encryption | NaCl box (DMs), NaCl secretbox (channels) |
115
+ | Member cap | 256 per channel/server |
116
+ | Key rotation | On removal + voluntary leave |
117
+ | History | New members get all historical keys |
118
+ | Discovery | Zero backend — GPA + getSignaturesForAddress |
119
+ | Payer separation | Relay/gasless support |
208
120
 
209
121
  ## License
210
122
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { buildInitializeConfigInstruction, buildUpdateConfigInstruction, buildRegisterInstruction, buildUpdateEncryptionKeyInstruction, buildDeregisterInstruction, buildSetMinFeeInstruction, buildSendMessageInstruction, buildCreateServerInstruction, buildJoinServerInstruction, buildRemoveServerMemberInstruction, buildLeaveServerInstruction, buildUpdateServerInstruction, buildCloseServerInstruction, buildCreateChannelInstruction, buildSendChannelMessageInstruction, buildAddChannelMembersInstruction, buildRemoveChannelMembersInstruction, buildCloseChannelInstruction, } from "./instructions";
1
+ export { buildInitializeConfigInstruction, buildUpdateConfigInstruction, buildRegisterInstruction, buildUpdateEncryptionKeyInstruction, buildDeregisterInstruction, buildSetMinFeeInstruction, buildSendMessageInstruction, buildCreateServerInstruction, buildInviteToServerInstruction, buildRemoveServerMemberInstruction, buildLeaveServerInstruction, buildUpdateServerInstruction, buildCloseServerInstruction, buildCreateChannelInstruction, buildSendChannelMessageInstruction, buildAddChannelMembersInstruction, buildRemoveChannelMembersInstruction, buildCloseChannelInstruction, } from "./instructions";
2
2
  export { deriveConfigPda, deriveRegistryPda, deriveServerPda, deriveServerMemberPda, deriveChannelPda, deriveChannelMemberPda, } from "./pda";
3
3
  export { lookupEncryptionKey } from "./registry";
4
4
  export { loadOrGenerateEncryptionKeypair } from "./keys";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gCAAgC,EAChC,4BAA4B,EAE5B,wBAAwB,EACxB,mCAAmC,EACnC,0BAA0B,EAC1B,yBAAyB,EAEzB,2BAA2B,EAE3B,4BAA4B,EAC5B,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAE3B,6BAA6B,EAC7B,kCAAkC,EAClC,iCAAiC,EACjC,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,QAAQ,CAAC;AAGzD,OAAO,EACL,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,OAAO,EACP,cAAc,EACd,OAAO,EACP,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gCAAgC,EAChC,4BAA4B,EAE5B,wBAAwB,EACxB,mCAAmC,EACnC,0BAA0B,EAC1B,yBAAyB,EAEzB,2BAA2B,EAE3B,4BAA4B,EAC5B,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAE3B,6BAA6B,EAC7B,kCAAkC,EAClC,iCAAiC,EACjC,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,QAAQ,CAAC;AAGzD,OAAO,EACL,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,OAAO,EACP,cAAc,EACd,OAAO,EACP,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolanaMessenger = exports.Role = exports.ChannelType = exports.parseMessageSentEvents = exports.decodeMessage = exports.encodeMessage = exports.decryptRaw = exports.decrypt = exports.encrypt = exports.convertEd25519ToX25519 = exports.loadOrGenerateEncryptionKeypair = exports.lookupEncryptionKey = exports.deriveChannelMemberPda = exports.deriveChannelPda = exports.deriveServerMemberPda = exports.deriveServerPda = exports.deriveRegistryPda = exports.deriveConfigPda = exports.buildCloseChannelInstruction = exports.buildRemoveChannelMembersInstruction = exports.buildAddChannelMembersInstruction = exports.buildSendChannelMessageInstruction = exports.buildCreateChannelInstruction = exports.buildCloseServerInstruction = exports.buildUpdateServerInstruction = exports.buildLeaveServerInstruction = exports.buildRemoveServerMemberInstruction = exports.buildJoinServerInstruction = exports.buildCreateServerInstruction = exports.buildSendMessageInstruction = exports.buildSetMinFeeInstruction = exports.buildDeregisterInstruction = exports.buildUpdateEncryptionKeyInstruction = exports.buildRegisterInstruction = exports.buildUpdateConfigInstruction = exports.buildInitializeConfigInstruction = void 0;
3
+ exports.SolanaMessenger = exports.Role = exports.ChannelType = exports.parseMessageSentEvents = exports.decodeMessage = exports.encodeMessage = exports.decryptRaw = exports.decrypt = exports.encrypt = exports.convertEd25519ToX25519 = exports.loadOrGenerateEncryptionKeypair = exports.lookupEncryptionKey = exports.deriveChannelMemberPda = exports.deriveChannelPda = exports.deriveServerMemberPda = exports.deriveServerPda = exports.deriveRegistryPda = exports.deriveConfigPda = exports.buildCloseChannelInstruction = exports.buildRemoveChannelMembersInstruction = exports.buildAddChannelMembersInstruction = exports.buildSendChannelMessageInstruction = exports.buildCreateChannelInstruction = exports.buildCloseServerInstruction = exports.buildUpdateServerInstruction = exports.buildLeaveServerInstruction = exports.buildRemoveServerMemberInstruction = exports.buildInviteToServerInstruction = exports.buildCreateServerInstruction = exports.buildSendMessageInstruction = exports.buildSetMinFeeInstruction = exports.buildDeregisterInstruction = exports.buildUpdateEncryptionKeyInstruction = exports.buildRegisterInstruction = exports.buildUpdateConfigInstruction = exports.buildInitializeConfigInstruction = void 0;
4
4
  // Instruction builders
5
5
  var instructions_1 = require("./instructions");
6
6
  // Platform
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "buildSetMinFeeInstruction", { enumerable: true,
15
15
  Object.defineProperty(exports, "buildSendMessageInstruction", { enumerable: true, get: function () { return instructions_1.buildSendMessageInstruction; } });
16
16
  // Servers
17
17
  Object.defineProperty(exports, "buildCreateServerInstruction", { enumerable: true, get: function () { return instructions_1.buildCreateServerInstruction; } });
18
- Object.defineProperty(exports, "buildJoinServerInstruction", { enumerable: true, get: function () { return instructions_1.buildJoinServerInstruction; } });
18
+ Object.defineProperty(exports, "buildInviteToServerInstruction", { enumerable: true, get: function () { return instructions_1.buildInviteToServerInstruction; } });
19
19
  Object.defineProperty(exports, "buildRemoveServerMemberInstruction", { enumerable: true, get: function () { return instructions_1.buildRemoveServerMemberInstruction; } });
20
20
  Object.defineProperty(exports, "buildLeaveServerInstruction", { enumerable: true, get: function () { return instructions_1.buildLeaveServerInstruction; } });
21
21
  Object.defineProperty(exports, "buildUpdateServerInstruction", { enumerable: true, get: function () { return instructions_1.buildUpdateServerInstruction; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,+CAwBwB;AAvBtB,WAAW;AACX,gIAAA,gCAAgC,OAAA;AAChC,4HAAA,4BAA4B,OAAA;AAC5B,WAAW;AACX,wHAAA,wBAAwB,OAAA;AACxB,mIAAA,mCAAmC,OAAA;AACnC,0HAAA,0BAA0B,OAAA;AAC1B,yHAAA,yBAAyB,OAAA;AACzB,MAAM;AACN,2HAAA,2BAA2B,OAAA;AAC3B,UAAU;AACV,4HAAA,4BAA4B,OAAA;AAC5B,0HAAA,0BAA0B,OAAA;AAC1B,kIAAA,kCAAkC,OAAA;AAClC,2HAAA,2BAA2B,OAAA;AAC3B,4HAAA,4BAA4B,OAAA;AAC5B,2HAAA,2BAA2B,OAAA;AAC3B,WAAW;AACX,6HAAA,6BAA6B,OAAA;AAC7B,kIAAA,kCAAkC,OAAA;AAClC,iIAAA,iCAAiC,OAAA;AACjC,oIAAA,oCAAoC,OAAA;AACpC,4HAAA,4BAA4B,OAAA;AAG9B,iBAAiB;AACjB,6BAOe;AANb,sGAAA,eAAe,OAAA;AACf,wGAAA,iBAAiB,OAAA;AACjB,sGAAA,eAAe,OAAA;AACf,4GAAA,qBAAqB,OAAA;AACrB,uGAAA,gBAAgB,OAAA;AAChB,6GAAA,sBAAsB,OAAA;AAGxB,kBAAkB;AAClB,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAE5B,iBAAiB;AACjB,+BAAyD;AAAhD,uHAAA,+BAA+B,OAAA;AAExC,SAAS;AACT,mCAOkB;AANhB,gHAAA,sBAAsB,OAAA;AACtB,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,oGAAA,UAAU,OAAA;AACV,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA;AAGf,SAAS;AACT,mCAAkD;AAAzC,gHAAA,sBAAsB,OAAA;AAc/B,iCAA4C;AAAnC,oGAAA,WAAW,OAAA;AAAE,6FAAA,IAAI,OAAA;AAE1B,oBAAoB;AACpB,yCAA8C;AAArC,4GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,+CAwBwB;AAvBtB,WAAW;AACX,gIAAA,gCAAgC,OAAA;AAChC,4HAAA,4BAA4B,OAAA;AAC5B,WAAW;AACX,wHAAA,wBAAwB,OAAA;AACxB,mIAAA,mCAAmC,OAAA;AACnC,0HAAA,0BAA0B,OAAA;AAC1B,yHAAA,yBAAyB,OAAA;AACzB,MAAM;AACN,2HAAA,2BAA2B,OAAA;AAC3B,UAAU;AACV,4HAAA,4BAA4B,OAAA;AAC5B,8HAAA,8BAA8B,OAAA;AAC9B,kIAAA,kCAAkC,OAAA;AAClC,2HAAA,2BAA2B,OAAA;AAC3B,4HAAA,4BAA4B,OAAA;AAC5B,2HAAA,2BAA2B,OAAA;AAC3B,WAAW;AACX,6HAAA,6BAA6B,OAAA;AAC7B,kIAAA,kCAAkC,OAAA;AAClC,iIAAA,iCAAiC,OAAA;AACjC,oIAAA,oCAAoC,OAAA;AACpC,4HAAA,4BAA4B,OAAA;AAG9B,iBAAiB;AACjB,6BAOe;AANb,sGAAA,eAAe,OAAA;AACf,wGAAA,iBAAiB,OAAA;AACjB,sGAAA,eAAe,OAAA;AACf,4GAAA,qBAAqB,OAAA;AACrB,uGAAA,gBAAgB,OAAA;AAChB,6GAAA,sBAAsB,OAAA;AAGxB,kBAAkB;AAClB,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAE5B,iBAAiB;AACjB,+BAAyD;AAAhD,uHAAA,+BAA+B,OAAA;AAExC,SAAS;AACT,mCAOkB;AANhB,gHAAA,sBAAsB,OAAA;AACtB,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,oGAAA,UAAU,OAAA;AACV,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA;AAGf,SAAS;AACT,mCAAkD;AAAzC,gHAAA,sBAAsB,OAAA;AAc/B,iCAA4C;AAAnC,oGAAA,WAAW,OAAA;AAAE,6FAAA,IAAI,OAAA;AAE1B,oBAAoB;AACpB,yCAA8C;AAArC,4GAAA,eAAe,OAAA"}
@@ -65,11 +65,13 @@ export declare function buildCreateServerInstruction(params: {
65
65
  payer?: string;
66
66
  programId?: string;
67
67
  }): Instruction;
68
- export declare function buildJoinServerInstruction(params: {
68
+ export declare function buildInviteToServerInstruction(params: {
69
69
  serverId: string;
70
70
  serverPda: string;
71
- member: string;
72
- serverMemberPda: string;
71
+ inviter: string;
72
+ inviterMemberPda: string;
73
+ newMember: string;
74
+ newMemberPda: string;
73
75
  keyWraps: Uint8Array[];
74
76
  keyNonces: Uint8Array[];
75
77
  payer?: string;
@@ -93,6 +95,9 @@ export declare function buildLeaveServerInstruction(params: {
93
95
  serverPda: string;
94
96
  member: string;
95
97
  serverMemberPda: string;
98
+ remainingMemberPdas: string[];
99
+ newKeyWraps: Uint8Array[];
100
+ newKeyNonces: Uint8Array[];
96
101
  programId?: string;
97
102
  }): Instruction;
98
103
  export declare function buildUpdateServerInstruction(params: {
@@ -117,6 +122,7 @@ export declare function buildCreateChannelInstruction(params: {
117
122
  members: string[];
118
123
  keyWraps: Uint8Array[];
119
124
  keyNonces: Uint8Array[];
125
+ creatorServerMemberPda?: string;
120
126
  channelMemberPdas: string[];
121
127
  payer?: string;
122
128
  programId?: string;
@@ -128,6 +134,8 @@ export declare function buildSendChannelMessageInstruction(params: {
128
134
  feeVault: string;
129
135
  ciphertext: Uint8Array;
130
136
  nonce: Uint8Array;
137
+ keyVersion: number;
138
+ senderServerMemberPda?: string;
131
139
  payer?: string;
132
140
  programId?: string;
133
141
  }): Instruction;
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,aAAa,CAAC;AA4BnD,KAAK,WAAW,GAAG;IAAE,cAAc,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAIrG,wBAAgB,gCAAgC,CAAC,MAAM,EAAE;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAkBd;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAqBd;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,UAAU,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAiBd;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,UAAU,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAcd;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAcd;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAad;AAID,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CA0Bd;AAID,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CA0Bd;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAoCd;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAuCd;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAmCd;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAcd;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAwBd;AAID,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CA8Ed;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CA6Bd;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC;IACzB,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAuDd;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAkDd;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAgBd"}
@@ -8,7 +8,7 @@ exports.buildSetMinFeeInstruction = buildSetMinFeeInstruction;
8
8
  exports.buildDeregisterInstruction = buildDeregisterInstruction;
9
9
  exports.buildSendMessageInstruction = buildSendMessageInstruction;
10
10
  exports.buildCreateServerInstruction = buildCreateServerInstruction;
11
- exports.buildJoinServerInstruction = buildJoinServerInstruction;
11
+ exports.buildInviteToServerInstruction = buildInviteToServerInstruction;
12
12
  exports.buildRemoveServerMemberInstruction = buildRemoveServerMemberInstruction;
13
13
  exports.buildLeaveServerInstruction = buildLeaveServerInstruction;
14
14
  exports.buildUpdateServerInstruction = buildUpdateServerInstruction;
@@ -29,7 +29,7 @@ const SET_MIN_FEE_DISC = new Uint8Array([114, 198, 35, 3, 41, 196, 194, 246]);
29
29
  const INITIALIZE_CONFIG_DISC = new Uint8Array([208, 127, 21, 1, 194, 190, 196, 70]);
30
30
  const UPDATE_CONFIG_DISC = new Uint8Array([29, 158, 252, 191, 10, 83, 219, 99]);
31
31
  const CREATE_SERVER_DISC = new Uint8Array([212, 146, 77, 120, 151, 162, 87, 141]);
32
- const JOIN_SERVER_DISC = new Uint8Array([166, 73, 242, 99, 225, 43, 156, 92]);
32
+ const INVITE_TO_SERVER_DISC = new Uint8Array([66, 101, 219, 126, 37, 136, 221, 208]);
33
33
  const REMOVE_SERVER_MEMBER_DISC = new Uint8Array([198, 170, 160, 74, 220, 85, 169, 192]);
34
34
  const LEAVE_SERVER_DISC = new Uint8Array([213, 113, 13, 56, 73, 150, 173, 43]);
35
35
  const UPDATE_SERVER_DISC = new Uint8Array([15, 95, 145, 43, 112, 185, 243, 203]);
@@ -39,7 +39,7 @@ const SEND_CHANNEL_MESSAGE_DISC = new Uint8Array([207, 181, 41, 74, 206, 175, 63
39
39
  const ADD_CHANNEL_MEMBERS_DISC = new Uint8Array([93, 252, 61, 110, 120, 252, 239, 227]);
40
40
  const REMOVE_CHANNEL_MEMBERS_DISC = new Uint8Array([77, 154, 200, 78, 112, 183, 64, 253]);
41
41
  const CLOSE_CHANNEL_DISC = new Uint8Array([0, 104, 36, 1, 66, 0, 103, 157]);
42
- const DEFAULT_PROGRAM_ID = "msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y";
42
+ const DEFAULT_PROGRAM_ID = "msg1SxLsvf1ZL374noHwUWcVYjPsNSNwKb3xphg6Lxf";
43
43
  const SYSTEM_PROGRAM = "11111111111111111111111111111111";
44
44
  // === Platform Config ===
45
45
  function buildInitializeConfigInstruction(params) {
@@ -203,20 +203,22 @@ function buildCreateServerInstruction(params) {
203
203
  data,
204
204
  };
205
205
  }
206
- function buildJoinServerInstruction(params) {
206
+ function buildInviteToServerInstruction(params) {
207
207
  const programId = params.programId ?? DEFAULT_PROGRAM_ID;
208
- const payer = params.payer ?? params.member;
209
- // disc(8) + vec<vec<u8>> key_wraps + vec<[u8;24]> key_nonces
210
- let len = 8 + 4; // disc + key_wraps vec len
208
+ const payer = params.payer ?? params.inviter;
209
+ // disc(8) + new_member(32) + vec<vec<u8>> key_wraps + vec<[u8;24]> key_nonces
210
+ let len = 8 + 32 + 4;
211
211
  for (const kw of params.keyWraps) {
212
212
  len += 4 + kw.length;
213
213
  }
214
- len += 4 + 24 * params.keyNonces.length; // key_nonces vec
214
+ len += 4 + 24 * params.keyNonces.length;
215
215
  const data = new Uint8Array(len);
216
216
  const view = new DataView(data.buffer);
217
217
  let offset = 0;
218
- data.set(JOIN_SERVER_DISC, offset);
218
+ data.set(INVITE_TO_SERVER_DISC, offset);
219
219
  offset += 8;
220
+ data.set((0, utils_1.addressToBytes)(params.newMember), offset);
221
+ offset += 32;
220
222
  view.setUint32(offset, params.keyWraps.length, true);
221
223
  offset += 4;
222
224
  for (const kw of params.keyWraps) {
@@ -236,10 +238,11 @@ function buildJoinServerInstruction(params) {
236
238
  accounts: [
237
239
  { address: (0, kit_1.address)(params.serverPda), role: kit_1.AccountRole.READONLY },
238
240
  { address: (0, kit_1.address)(payer), role: kit_1.AccountRole.WRITABLE_SIGNER },
239
- { address: (0, kit_1.address)(params.member), role: kit_1.AccountRole.READONLY_SIGNER },
241
+ { address: (0, kit_1.address)(params.inviter), role: kit_1.AccountRole.READONLY_SIGNER },
242
+ { address: (0, kit_1.address)(params.inviterMemberPda), role: kit_1.AccountRole.READONLY },
240
243
  { address: (0, kit_1.address)(SYSTEM_PROGRAM), role: kit_1.AccountRole.READONLY },
241
- // remaining_accounts[0] = ServerMember PDA
242
- { address: (0, kit_1.address)(params.serverMemberPda), role: kit_1.AccountRole.WRITABLE },
244
+ // remaining_accounts[0] = new member's ServerMember PDA
245
+ { address: (0, kit_1.address)(params.newMemberPda), role: kit_1.AccountRole.WRITABLE },
243
246
  ],
244
247
  data,
245
248
  };
@@ -293,15 +296,42 @@ function buildRemoveServerMemberInstruction(params) {
293
296
  }
294
297
  function buildLeaveServerInstruction(params) {
295
298
  const programId = params.programId ?? DEFAULT_PROGRAM_ID;
296
- const data = new Uint8Array(8);
297
- data.set(LEAVE_SERVER_DISC, 0);
299
+ // disc(8) + vec<vec<u8>> new_key_wraps + vec<[u8;24]> new_key_nonces
300
+ let len = 8 + 4;
301
+ for (const kw of params.newKeyWraps) {
302
+ len += 4 + kw.length;
303
+ }
304
+ len += 4 + 24 * params.newKeyNonces.length;
305
+ const data = new Uint8Array(len);
306
+ const view = new DataView(data.buffer);
307
+ let offset = 0;
308
+ data.set(LEAVE_SERVER_DISC, offset);
309
+ offset += 8;
310
+ view.setUint32(offset, params.newKeyWraps.length, true);
311
+ offset += 4;
312
+ for (const kw of params.newKeyWraps) {
313
+ view.setUint32(offset, kw.length, true);
314
+ offset += 4;
315
+ data.set(kw, offset);
316
+ offset += kw.length;
317
+ }
318
+ view.setUint32(offset, params.newKeyNonces.length, true);
319
+ offset += 4;
320
+ for (const kn of params.newKeyNonces) {
321
+ data.set(kn, offset);
322
+ offset += 24;
323
+ }
298
324
  return {
299
325
  programAddress: (0, kit_1.address)(programId),
300
326
  accounts: [
301
327
  { address: (0, kit_1.address)(params.serverPda), role: kit_1.AccountRole.READONLY },
302
328
  { address: (0, kit_1.address)(params.member), role: kit_1.AccountRole.WRITABLE_SIGNER },
303
- // remaining_accounts[0] = ServerMember PDA
329
+ { address: (0, kit_1.address)(SYSTEM_PROGRAM), role: kit_1.AccountRole.READONLY },
330
+ // remaining_accounts: [my ServerMember PDA, ...remaining ServerMember PDAs]
304
331
  { address: (0, kit_1.address)(params.serverMemberPda), role: kit_1.AccountRole.WRITABLE },
332
+ ...params.remainingMemberPdas.map(pda => ({
333
+ address: (0, kit_1.address)(pda), role: kit_1.AccountRole.WRITABLE,
334
+ })),
305
335
  ],
306
336
  data,
307
337
  };
@@ -430,7 +460,8 @@ function buildCreateChannelInstruction(params) {
430
460
  { address: (0, kit_1.address)(payer), role: kit_1.AccountRole.WRITABLE_SIGNER },
431
461
  { address: (0, kit_1.address)(params.creator), role: kit_1.AccountRole.READONLY_SIGNER },
432
462
  { address: (0, kit_1.address)(SYSTEM_PROGRAM), role: kit_1.AccountRole.READONLY },
433
- // remaining_accounts = ChannelMember PDAs (private channels only)
463
+ // remaining_accounts: [creatorServerMemberPda (if server channel), ...ChannelMember PDAs (private only)]
464
+ ...(params.creatorServerMemberPda ? [{ address: (0, kit_1.address)(params.creatorServerMemberPda), role: kit_1.AccountRole.READONLY }] : []),
434
465
  ...params.channelMemberPdas.map(pda => ({
435
466
  address: (0, kit_1.address)(pda), role: kit_1.AccountRole.WRITABLE,
436
467
  })),
@@ -441,29 +472,33 @@ function buildCreateChannelInstruction(params) {
441
472
  function buildSendChannelMessageInstruction(params) {
442
473
  const programId = params.programId ?? DEFAULT_PROGRAM_ID;
443
474
  const payer = params.payer ?? params.sender;
444
- // disc(8) + vec<u8> ciphertext(4+len) + nonce(24)
445
- const len = 8 + 4 + params.ciphertext.length + 24;
475
+ // disc(8) + vec<u8> ciphertext(4+len) + nonce(24) + key_version(4)
476
+ const len = 8 + 4 + params.ciphertext.length + 24 + 4;
446
477
  const data = new Uint8Array(len);
478
+ const view = new DataView(data.buffer);
447
479
  let offset = 0;
448
480
  data.set(SEND_CHANNEL_MESSAGE_DISC, offset);
449
481
  offset += 8;
450
- new DataView(data.buffer).setUint32(offset, params.ciphertext.length, true);
482
+ view.setUint32(offset, params.ciphertext.length, true);
451
483
  offset += 4;
452
484
  data.set(params.ciphertext, offset);
453
485
  offset += params.ciphertext.length;
454
486
  data.set(params.nonce, offset);
455
- return {
456
- programAddress: (0, kit_1.address)(programId),
457
- accounts: [
458
- { address: (0, kit_1.address)(payer), role: kit_1.AccountRole.WRITABLE_SIGNER },
459
- { address: (0, kit_1.address)(params.sender), role: kit_1.AccountRole.READONLY_SIGNER },
460
- { address: (0, kit_1.address)(params.channelPda), role: kit_1.AccountRole.READONLY },
461
- { address: (0, kit_1.address)(params.configPda), role: kit_1.AccountRole.READONLY },
462
- { address: (0, kit_1.address)(params.feeVault), role: kit_1.AccountRole.WRITABLE },
463
- { address: (0, kit_1.address)(SYSTEM_PROGRAM), role: kit_1.AccountRole.READONLY },
464
- ],
465
- data,
466
- };
487
+ offset += 24;
488
+ view.setUint32(offset, params.keyVersion, true);
489
+ const accounts = [
490
+ { address: (0, kit_1.address)(payer), role: kit_1.AccountRole.WRITABLE_SIGNER },
491
+ { address: (0, kit_1.address)(params.sender), role: kit_1.AccountRole.READONLY_SIGNER },
492
+ { address: (0, kit_1.address)(params.channelPda), role: kit_1.AccountRole.READONLY },
493
+ { address: (0, kit_1.address)(params.configPda), role: kit_1.AccountRole.READONLY },
494
+ { address: (0, kit_1.address)(params.feeVault), role: kit_1.AccountRole.WRITABLE },
495
+ { address: (0, kit_1.address)(SYSTEM_PROGRAM), role: kit_1.AccountRole.READONLY },
496
+ ];
497
+ // For public channels, sender's ServerMember PDA is required
498
+ if (params.senderServerMemberPda) {
499
+ accounts.push({ address: (0, kit_1.address)(params.senderServerMemberPda), role: kit_1.AccountRole.READONLY });
500
+ }
501
+ return { programAddress: (0, kit_1.address)(programId), accounts, data };
467
502
  }
468
503
  function buildAddChannelMembersInstruction(params) {
469
504
  const programId = params.programId ?? DEFAULT_PROGRAM_ID;
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
@@ -56,8 +56,8 @@ export declare class SolanaMessenger {
56
56
  serverPda: string;
57
57
  signature: string;
58
58
  }>;
59
- joinServer(serverId: string, keyWraps: Uint8Array[], keyNonces: Uint8Array[]): Promise<string>;
60
- leaveServer(serverId: string): Promise<string>;
59
+ inviteToServer(serverId: string, newMember: string, serverKeys: Uint8Array[]): Promise<string>;
60
+ leaveServer(serverId: string, remainingMembers: string[]): Promise<string>;
61
61
  createChannel(params: {
62
62
  serverId?: string;
63
63
  channelType?: ChannelType;
@@ -67,7 +67,13 @@ export declare class SolanaMessenger {
67
67
  channelPda: string;
68
68
  signature: string;
69
69
  }>;
70
- sendChannelMessage(channelPda: string, message: string, channelKey: Uint8Array): Promise<string>;
70
+ sendChannelMessage(params: {
71
+ channelPda: string;
72
+ message: string;
73
+ channelKey: Uint8Array;
74
+ keyVersion: number;
75
+ senderServerMemberPda?: string;
76
+ }): Promise<string>;
71
77
  addChannelMembers(channelPda: string, channelId: string, newMembers: string[], channelKeys: Uint8Array[]): Promise<string>;
72
78
  removeChannelMembers(channelId: string, currentVersion: number, removeList: string[], remainingMembers: string[]): Promise<{
73
79
  newChannelPda: string;
@@ -1 +1 @@
1
- {"version":3,"file":"messenger.d.ts","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messenger.d.ts","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"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"}
package/dist/messenger.js CHANGED
@@ -17,7 +17,7 @@ const registry_1 = require("./registry");
17
17
  const keys_1 = require("./keys");
18
18
  const os_1 = require("os");
19
19
  const path_1 = require("path");
20
- const DEFAULT_PROGRAM_ID = "msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y";
20
+ const DEFAULT_PROGRAM_ID = "msg1SxLsvf1ZL374noHwUWcVYjPsNSNwKb3xphg6Lxf";
21
21
  function isSelfCustody(config) {
22
22
  return "keypair" in config;
23
23
  }
@@ -327,33 +327,73 @@ class SolanaMessenger {
327
327
  const signature = await this.sendInstruction(ix);
328
328
  return { serverId, serverPda, signature };
329
329
  }
330
- async joinServer(serverId, keyWraps, keyNonces) {
330
+ async inviteToServer(serverId, newMember, serverKeys) {
331
331
  const myAddress = await this.getAddress();
332
+ if (!this.encryptionKeypair)
333
+ throw new Error("Not initialized. Call init() first.");
332
334
  const serverPda = await (0, pda_1.deriveServerPda)(serverId, this.programId);
333
- const memberPda = await (0, pda_1.deriveServerMemberPda)(serverId, myAddress, this.programId);
334
- const ix = (0, instructions_1.buildJoinServerInstruction)({
335
- serverId, serverPda, member: myAddress,
336
- serverMemberPda: memberPda, keyWraps, keyNonces,
335
+ const inviterMemberPda = await (0, pda_1.deriveServerMemberPda)(serverId, myAddress, this.programId);
336
+ const newMemberPda = await (0, pda_1.deriveServerMemberPda)(serverId, newMember, this.programId);
337
+ // Look up new member's encryption key and wrap all server key versions for them
338
+ const encKey = await (0, registry_1.lookupEncryptionKey)(this.rpc, newMember, this.programId);
339
+ if (!encKey)
340
+ throw new Error(`Member ${newMember} not registered.`);
341
+ const memberPubBytes = (0, utils_1.addressToBytes)(encKey);
342
+ const memberX = (0, crypto_1.convertEd25519ToX25519)(memberPubBytes, memberPubBytes).publicKey;
343
+ const senderX = this.getX25519SecretKey();
344
+ const keyWraps = [];
345
+ const keyNonces = [];
346
+ for (const key of serverKeys) {
347
+ const nonce = tweetnacl_1.default.randomBytes(24);
348
+ const wrap = tweetnacl_1.default.box(key, nonce, memberX, senderX);
349
+ keyWraps.push(wrap);
350
+ keyNonces.push(nonce);
351
+ }
352
+ const ix = (0, instructions_1.buildInviteToServerInstruction)({
353
+ serverId, serverPda, inviter: myAddress,
354
+ inviterMemberPda, newMember, newMemberPda,
355
+ keyWraps, keyNonces,
337
356
  programId: this.programId,
338
357
  });
339
358
  if (this.signerPromise) {
340
359
  const signer = await this.signerPromise;
341
360
  ix.accounts[1] = { ...ix.accounts[1], signer }; // payer
342
- ix.accounts[2] = { ...ix.accounts[2], signer }; // member
361
+ ix.accounts[2] = { ...ix.accounts[2], signer }; // inviter
343
362
  }
344
363
  return this.sendInstruction(ix);
345
364
  }
346
- async leaveServer(serverId) {
365
+ async leaveServer(serverId, remainingMembers) {
347
366
  const myAddress = await this.getAddress();
367
+ if (!this.encryptionKeypair)
368
+ throw new Error("Not initialized. Call init() first.");
348
369
  const serverPda = await (0, pda_1.deriveServerPda)(serverId, this.programId);
349
370
  const memberPda = await (0, pda_1.deriveServerMemberPda)(serverId, myAddress, this.programId);
371
+ // Generate new server key and wrap for all remaining members
372
+ const newServerKey = tweetnacl_1.default.randomBytes(32);
373
+ const senderX = this.getX25519SecretKey();
374
+ const newKeyWraps = [];
375
+ const newKeyNonces = [];
376
+ const remainingMemberPdas = [];
377
+ for (const member of remainingMembers) {
378
+ const encKey = await (0, registry_1.lookupEncryptionKey)(this.rpc, member, this.programId);
379
+ if (!encKey)
380
+ throw new Error(`Member ${member} not registered.`);
381
+ const memberPubBytes = (0, utils_1.addressToBytes)(encKey);
382
+ const memberX = (0, crypto_1.convertEd25519ToX25519)(memberPubBytes, memberPubBytes).publicKey;
383
+ const nonce = tweetnacl_1.default.randomBytes(24);
384
+ const wrap = tweetnacl_1.default.box(newServerKey, nonce, memberX, senderX);
385
+ newKeyWraps.push(wrap);
386
+ newKeyNonces.push(nonce);
387
+ remainingMemberPdas.push(await (0, pda_1.deriveServerMemberPda)(serverId, member, this.programId));
388
+ }
350
389
  const ix = (0, instructions_1.buildLeaveServerInstruction)({
351
390
  serverId, serverPda, member: myAddress, serverMemberPda: memberPda,
391
+ remainingMemberPdas, newKeyWraps, newKeyNonces,
352
392
  programId: this.programId,
353
393
  });
354
394
  if (this.signerPromise) {
355
395
  const signer = await this.signerPromise;
356
- ix.accounts[1] = { ...ix.accounts[1], signer };
396
+ ix.accounts[1] = { ...ix.accounts[1], signer }; // member
357
397
  }
358
398
  return this.sendInstruction(ix);
359
399
  }
@@ -374,6 +414,11 @@ class SolanaMessenger {
374
414
  let keyWraps = [];
375
415
  let keyNonces = [];
376
416
  let channelMemberPdas = [];
417
+ let creatorServerMemberPda;
418
+ // If server channel, derive creator's ServerMember PDA for auth
419
+ if (params.serverId) {
420
+ creatorServerMemberPda = await (0, pda_1.deriveServerMemberPda)(params.serverId, myAddress, this.programId);
421
+ }
377
422
  if (channelType === types_1.ChannelType.Private) {
378
423
  // Generate channel key and wrap for each member
379
424
  const channelKey = tweetnacl_1.default.randomBytes(32);
@@ -394,7 +439,8 @@ class SolanaMessenger {
394
439
  const ix = (0, instructions_1.buildCreateChannelInstruction)({
395
440
  creator: myAddress, channelPda, channelId,
396
441
  serverId: params.serverId, channelType,
397
- members, keyWraps, keyNonces, channelMemberPdas,
442
+ members, keyWraps, keyNonces,
443
+ creatorServerMemberPda, channelMemberPdas,
398
444
  programId: this.programId,
399
445
  });
400
446
  if (this.signerPromise) {
@@ -405,19 +451,21 @@ class SolanaMessenger {
405
451
  const signature = await this.sendInstruction(ix);
406
452
  return { channelId, channelPda, signature };
407
453
  }
408
- async sendChannelMessage(channelPda, message, channelKey) {
454
+ async sendChannelMessage(params) {
409
455
  if (!this.configPda || !this.feeVault)
410
456
  throw new Error("Platform config not loaded. Call init() first.");
411
457
  const myAddress = await this.getAddress();
412
- const messageBytes = new TextEncoder().encode(message);
458
+ const messageBytes = new TextEncoder().encode(params.message);
413
459
  if (messageBytes.length > 900)
414
460
  throw new Error("Message too large (max 900 bytes).");
415
461
  const nonce = tweetnacl_1.default.randomBytes(24);
416
- const ciphertext = tweetnacl_1.default.secretbox(messageBytes, nonce, channelKey);
462
+ const ciphertext = tweetnacl_1.default.secretbox(messageBytes, nonce, params.channelKey);
417
463
  const ix = (0, instructions_1.buildSendChannelMessageInstruction)({
418
- sender: myAddress, channelPda,
464
+ sender: myAddress, channelPda: params.channelPda,
419
465
  configPda: this.configPda, feeVault: this.feeVault,
420
- ciphertext, nonce, programId: this.programId,
466
+ ciphertext, nonce, keyVersion: params.keyVersion,
467
+ senderServerMemberPda: params.senderServerMemberPda,
468
+ programId: this.programId,
421
469
  });
422
470
  if (this.signerPromise) {
423
471
  const signer = await this.signerPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"messenger.js","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messenger.js","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"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"}
package/dist/pda.js CHANGED
@@ -8,7 +8,7 @@ exports.deriveChannelPda = deriveChannelPda;
8
8
  exports.deriveChannelMemberPda = deriveChannelMemberPda;
9
9
  const kit_1 = require("@solana/kit");
10
10
  const utils_1 = require("./utils");
11
- const DEFAULT_PROGRAM_ID = "msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y";
11
+ const DEFAULT_PROGRAM_ID = "msg1SxLsvf1ZL374noHwUWcVYjPsNSNwKb3xphg6Lxf";
12
12
  async function deriveConfigPda(programId) {
13
13
  const [pda] = await (0, kit_1.getProgramDerivedAddress)({
14
14
  programAddress: (0, kit_1.address)(programId ?? DEFAULT_PROGRAM_ID),
package/dist/types.d.ts CHANGED
@@ -21,6 +21,7 @@ export interface ChannelMessageSentEvent {
21
21
  sender: string;
22
22
  channelId: string;
23
23
  version: number;
24
+ keyVersion: number;
24
25
  ciphertext: Uint8Array;
25
26
  nonce: Uint8Array;
26
27
  timestamp: number;
@@ -38,6 +39,7 @@ export interface ChannelMessage {
38
39
  sender: string;
39
40
  channelId: string;
40
41
  version: number;
42
+ keyVersion: number;
41
43
  text: string;
42
44
  timestamp: number;
43
45
  txSignature: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,MAAM,IAAI;CACX;AAED,oBAAY,IAAI;IACd,MAAM,IAAI;IACV,KAAK,IAAI;IACT,KAAK,IAAI;CACV;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,MAAM,IAAI;CACX;AAED,oBAAY,IAAI;IACd,MAAM,IAAI;IACV,KAAK,IAAI;IACT,KAAK,IAAI;CACV;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwDA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,mDAAW,CAAA;IACX,iDAAU,CAAA;AACZ,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,IAAY,IAIX;AAJD,WAAY,IAAI;IACd,mCAAU,CAAA;IACV,iCAAS,CAAA;IACT,iCAAS,CAAA;AACX,CAAC,EAJW,IAAI,oBAAJ,IAAI,QAIf"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA0DA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,mDAAW,CAAA;IACX,iDAAU,CAAA;AACZ,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,IAAY,IAIX;AAJD,WAAY,IAAI;IACd,mCAAU,CAAA;IACV,iCAAS,CAAA;IACT,iCAAS,CAAA;AACX,CAAC,EAJW,IAAI,oBAAJ,IAAI,QAIf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solana-messenger-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "TypeScript SDK for Solana Messenger — encrypted agent-to-agent messaging",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/skill/SKILL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Encrypted agent-to-agent messaging on Solana. Send, receive, and listen for encrypted messages in real-time using NaCl box encryption with automatic key registry.
4
4
 
5
- **Program:** `msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y` ([mainnet](https://solscan.io/account/msg1jhfewu1hGDnQKGhXDmqas6JZTq7Lg7PbSX5jY9y))
5
+ **Program:** `msg1SxLsvf1ZL374noHwUWcVYjPsNSNwKb3xphg6Lxf` ([mainnet](https://solscan.io/account/msg1SxLsvf1ZL374noHwUWcVYjPsNSNwKb3xphg6Lxf))
6
6
 
7
7
  **SDK:** `npm install solana-messenger-sdk` ([npm](https://www.npmjs.com/package/solana-messenger-sdk))
8
8