veilioexchange 0.1.0 → 0.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.
Files changed (42) hide show
  1. package/README.md +48 -1
  2. package/dist/cjs/solana/auction.d.ts +180 -0
  3. package/dist/cjs/solana/auction.d.ts.map +1 -0
  4. package/dist/cjs/solana/auction.js +457 -0
  5. package/dist/cjs/solana/auction.js.map +1 -0
  6. package/dist/cjs/solana/client.d.ts +75 -0
  7. package/dist/cjs/solana/client.d.ts.map +1 -0
  8. package/dist/cjs/solana/client.js +281 -0
  9. package/dist/cjs/solana/client.js.map +1 -0
  10. package/dist/cjs/solana/escrow.d.ts +140 -0
  11. package/dist/cjs/solana/escrow.d.ts.map +1 -0
  12. package/dist/cjs/solana/escrow.js +354 -0
  13. package/dist/cjs/solana/escrow.js.map +1 -0
  14. package/dist/cjs/solana/index.d.ts +9 -0
  15. package/dist/cjs/solana/index.d.ts.map +1 -0
  16. package/dist/cjs/solana/index.js +32 -0
  17. package/dist/cjs/solana/index.js.map +1 -0
  18. package/dist/cjs/solana/registry.d.ts +100 -0
  19. package/dist/cjs/solana/registry.d.ts.map +1 -0
  20. package/dist/cjs/solana/registry.js +278 -0
  21. package/dist/cjs/solana/registry.js.map +1 -0
  22. package/dist/esm/solana/auction.d.ts +180 -0
  23. package/dist/esm/solana/auction.d.ts.map +1 -0
  24. package/dist/esm/solana/auction.js +438 -0
  25. package/dist/esm/solana/auction.js.map +1 -0
  26. package/dist/esm/solana/client.d.ts +75 -0
  27. package/dist/esm/solana/client.d.ts.map +1 -0
  28. package/dist/esm/solana/client.js +274 -0
  29. package/dist/esm/solana/client.js.map +1 -0
  30. package/dist/esm/solana/escrow.d.ts +140 -0
  31. package/dist/esm/solana/escrow.d.ts.map +1 -0
  32. package/dist/esm/solana/escrow.js +339 -0
  33. package/dist/esm/solana/escrow.js.map +1 -0
  34. package/dist/esm/solana/index.d.ts +9 -0
  35. package/dist/esm/solana/index.d.ts.map +1 -0
  36. package/dist/esm/solana/index.js +9 -0
  37. package/dist/esm/solana/index.js.map +1 -0
  38. package/dist/esm/solana/registry.d.ts +100 -0
  39. package/dist/esm/solana/registry.d.ts.map +1 -0
  40. package/dist/esm/solana/registry.js +264 -0
  41. package/dist/esm/solana/registry.js.map +1 -0
  42. package/package.json +30 -4
@@ -0,0 +1,264 @@
1
+ /**
2
+ * VEILIO Solana Service Registry Client & Program Interface
3
+ *
4
+ * Provides client-side PDA derivation, Anchor instruction encoding,
5
+ * account deserialization, and validation for the on-chain Solana Devnet
6
+ * Veilio Service Registry program.
7
+ */
8
+ import { createHash } from 'node:crypto';
9
+ import { PublicKey } from '@solana/web3.js';
10
+ // Canonical Program Seeds & Limits
11
+ export const SERVICE_SEED = Buffer.from('service');
12
+ export const MAX_METADATA_URI_LEN = 200;
13
+ export const SERVICE_RECORD_ACCOUNT_SIZE = 326;
14
+ // Default Devnet Program ID (can be overridden via NEXT_PUBLIC_SOLANA_SERVICE_REGISTRY_PROGRAM_ID)
15
+ export const DEFAULT_SOLANA_SERVICE_REGISTRY_PROGRAM_ID = '6CMoJyQmBobLTk4M9ZoygMShRB6A6i77e6viq2Lew2KY';
16
+ // Solana System Program ID
17
+ export const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
18
+ // Bitcoin / Solana Base58 Alphabet
19
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
20
+ const BASE58_MAP = {};
21
+ for (let i = 0; i < ALPHABET.length; i++) {
22
+ BASE58_MAP[ALPHABET[i]] = i;
23
+ }
24
+ /**
25
+ * Encodes a buffer/Uint8Array to Base58 string.
26
+ */
27
+ export function encodeBase58(source) {
28
+ if (source.length === 0)
29
+ return '';
30
+ let leadingZeroes = 0;
31
+ while (leadingZeroes < source.length && source[leadingZeroes] === 0)
32
+ leadingZeroes++;
33
+ let value = 0n;
34
+ for (const byte of source)
35
+ value = (value << 8n) | BigInt(byte);
36
+ let encoded = '';
37
+ while (value > 0n) {
38
+ const digit = Number(value % 58n);
39
+ encoded = ALPHABET[digit] + encoded;
40
+ value /= 58n;
41
+ }
42
+ return '1'.repeat(leadingZeroes) + encoded;
43
+ }
44
+ /**
45
+ * Decodes a Base58 string to Uint8Array.
46
+ */
47
+ export function decodeBase58(str) {
48
+ if (str.length === 0)
49
+ return new Uint8Array(0);
50
+ let leadingZeroes = 0;
51
+ while (leadingZeroes < str.length && str[leadingZeroes] === '1')
52
+ leadingZeroes++;
53
+ let value = 0n;
54
+ for (const character of str) {
55
+ const digit = BASE58_MAP[character];
56
+ if (digit === undefined)
57
+ throw new Error(`Invalid Base58 character: ${character}`);
58
+ value = value * 58n + BigInt(digit);
59
+ }
60
+ const decoded = [];
61
+ while (value > 0n) {
62
+ decoded.unshift(Number(value & 0xffn));
63
+ value >>= 8n;
64
+ }
65
+ return Uint8Array.from([...new Array(leadingZeroes).fill(0), ...decoded]);
66
+ }
67
+ /** Solana PDA derivation (delegates to @solana/web3.js). */
68
+ export function findProgramDerivedAddress(seeds, programId) {
69
+ const [address, bump] = PublicKey.findProgramAddressSync(seeds.map((seed) => Buffer.from(seed)), new PublicKey(programId));
70
+ return { pda: address.toBase58(), bump };
71
+ }
72
+ /**
73
+ * Computes Anchor 8-byte instruction or account discriminator using SHA-256.
74
+ */
75
+ export function getAnchorDiscriminator(namespace, name) {
76
+ const preimage = `${namespace}:${name}`;
77
+ const hash = createHash('sha256').update(preimage).digest();
78
+ return hash.subarray(0, 8);
79
+ }
80
+ /**
81
+ * Validates 32-byte hash or ID (hex string or Uint8Array).
82
+ */
83
+ export function normalizeBytes32(input) {
84
+ if (typeof input === 'string') {
85
+ const cleanHex = input.startsWith('0x') ? input.slice(2) : input;
86
+ if (cleanHex.length !== 64) {
87
+ throw new Error(`Expected 32 bytes (64 hex characters), received ${cleanHex.length}`);
88
+ }
89
+ const buf = Buffer.from(cleanHex, 'hex');
90
+ if (buf.length !== 32) {
91
+ throw new Error(`Expected exactly 32 bytes, received ${buf.length}`);
92
+ }
93
+ return buf;
94
+ }
95
+ if (input instanceof Uint8Array || Buffer.isBuffer(input)) {
96
+ if (input.length !== 32) {
97
+ throw new Error(`Expected exactly 32 bytes, received ${input.length}`);
98
+ }
99
+ return Buffer.from(input);
100
+ }
101
+ throw new Error('Input must be a 32-byte hex string or Uint8Array');
102
+ }
103
+ /**
104
+ * Derives the deterministic PDA for a seller-owned service record on Solana.
105
+ * Formula: sha256([SERVICE_SEED, seller, service_id, bump, program_id, "ProgramDerivedAddress"])
106
+ */
107
+ export function findServiceRecordPda(serviceId, seller, programId = getSolanaServiceRegistryProgramId()) {
108
+ const sellerBytes = Buffer.from(decodeBase58(seller));
109
+ if (sellerBytes.length !== 32)
110
+ throw new Error('Seller must decode to a 32-byte Solana public key');
111
+ return findProgramDerivedAddress([SERVICE_SEED, sellerBytes, normalizeBytes32(serviceId)], programId);
112
+ }
113
+ /**
114
+ * Retrieves the configured Solana Service Registry program ID.
115
+ */
116
+ export function getSolanaServiceRegistryProgramId() {
117
+ // The registry program has no verified Devnet deployment yet: callers must pass `programId`.
118
+ throw new Error('Solana service registry is not enabled yet: pass the deployed program ID as programId.');
119
+ }
120
+ /**
121
+ * Builds the Solana instruction for `register_service`.
122
+ */
123
+ export function createRegisterServiceInstruction(params) {
124
+ const programId = params.programId || getSolanaServiceRegistryProgramId();
125
+ const serviceIdBuf = normalizeBytes32(params.serviceId);
126
+ const metadataHashBuf = normalizeBytes32(params.metadataHash);
127
+ // Input validation
128
+ if (serviceIdBuf.every((b) => b === 0)) {
129
+ throw new Error('Invalid service ID: cannot be zero');
130
+ }
131
+ if (metadataHashBuf.every((b) => b === 0)) {
132
+ throw new Error('Invalid metadata hash: cannot be zero');
133
+ }
134
+ if (!params.metadataUri || params.metadataUri.trim().length === 0) {
135
+ throw new Error('Metadata URI required');
136
+ }
137
+ const uriBytes = Buffer.from(params.metadataUri, 'utf8');
138
+ if (uriBytes.length > MAX_METADATA_URI_LEN) {
139
+ throw new Error(`Metadata URI exceeds maximum length (${MAX_METADATA_URI_LEN} bytes)`);
140
+ }
141
+ const { pda } = findServiceRecordPda(serviceIdBuf, params.seller, programId);
142
+ // Anchor instruction layout:
143
+ // [8 bytes discriminator] + [32 bytes service_id] + [32 bytes metadata_hash] + [4 bytes URI len (LE)] + [URI bytes]
144
+ const discriminator = getAnchorDiscriminator('global', 'register_service');
145
+ const uriLenBuf = Buffer.alloc(4);
146
+ uriLenBuf.writeUInt32LE(uriBytes.length, 0);
147
+ const data = Buffer.concat([
148
+ discriminator,
149
+ serviceIdBuf,
150
+ metadataHashBuf,
151
+ uriLenBuf,
152
+ uriBytes,
153
+ ]);
154
+ return {
155
+ programId,
156
+ accounts: [
157
+ { pubkey: pda, isSigner: false, isWritable: true },
158
+ { pubkey: params.seller, isSigner: true, isWritable: true },
159
+ { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },
160
+ ],
161
+ data,
162
+ };
163
+ }
164
+ /**
165
+ * Builds the Solana instruction for `update_service_metadata`.
166
+ */
167
+ export function createUpdateServiceMetadataInstruction(params) {
168
+ const programId = params.programId || getSolanaServiceRegistryProgramId();
169
+ const serviceIdBuf = normalizeBytes32(params.serviceId);
170
+ const metadataHashBuf = normalizeBytes32(params.newMetadataHash);
171
+ if (metadataHashBuf.every((b) => b === 0)) {
172
+ throw new Error('Invalid metadata hash: cannot be zero');
173
+ }
174
+ if (!params.newMetadataUri || params.newMetadataUri.trim().length === 0) {
175
+ throw new Error('Metadata URI required');
176
+ }
177
+ const uriBytes = Buffer.from(params.newMetadataUri, 'utf8');
178
+ if (uriBytes.length > MAX_METADATA_URI_LEN) {
179
+ throw new Error(`Metadata URI exceeds maximum length (${MAX_METADATA_URI_LEN} bytes)`);
180
+ }
181
+ const { pda } = findServiceRecordPda(serviceIdBuf, params.seller, programId);
182
+ const discriminator = getAnchorDiscriminator('global', 'update_service_metadata');
183
+ const uriLenBuf = Buffer.alloc(4);
184
+ uriLenBuf.writeUInt32LE(uriBytes.length, 0);
185
+ const data = Buffer.concat([
186
+ discriminator,
187
+ metadataHashBuf,
188
+ uriLenBuf,
189
+ uriBytes,
190
+ ]);
191
+ return {
192
+ programId,
193
+ accounts: [
194
+ { pubkey: pda, isSigner: false, isWritable: true },
195
+ { pubkey: params.seller, isSigner: true, isWritable: false },
196
+ ],
197
+ data,
198
+ };
199
+ }
200
+ /**
201
+ * Builds the Solana instruction for `set_service_status`.
202
+ */
203
+ export function createSetServiceStatusInstruction(params) {
204
+ const programId = params.programId || getSolanaServiceRegistryProgramId();
205
+ const serviceIdBuf = normalizeBytes32(params.serviceId);
206
+ const { pda } = findServiceRecordPda(serviceIdBuf, params.seller, programId);
207
+ const discriminator = getAnchorDiscriminator('global', 'set_service_status');
208
+ const activeBuf = Buffer.from([params.active ? 1 : 0]);
209
+ const data = Buffer.concat([discriminator, activeBuf]);
210
+ return {
211
+ programId,
212
+ accounts: [
213
+ { pubkey: pda, isSigner: false, isWritable: true },
214
+ { pubkey: params.seller, isSigner: true, isWritable: false },
215
+ ],
216
+ data,
217
+ };
218
+ }
219
+ /**
220
+ * Decodes an Anchor `ServiceRecord` account buffer from Solana Devnet RPC.
221
+ */
222
+ export function decodeServiceRecordAccount(data) {
223
+ const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
224
+ if (buf.length < 8 + 32 + 32 + 32 + 4 + 1 + 8 + 8 + 1) {
225
+ throw new Error(`Account data buffer too short: ${buf.length} bytes`);
226
+ }
227
+ const expectedDiscriminator = getAnchorDiscriminator('account', 'ServiceRecord');
228
+ if (!buf.subarray(0, 8).equals(expectedDiscriminator)) {
229
+ throw new Error('Invalid account discriminator: not a ServiceRecord account');
230
+ }
231
+ let offset = 8;
232
+ const seller = encodeBase58(buf.subarray(offset, offset + 32));
233
+ offset += 32;
234
+ const serviceId = '0x' + buf.subarray(offset, offset + 32).toString('hex');
235
+ offset += 32;
236
+ const metadataHash = '0x' + buf.subarray(offset, offset + 32).toString('hex');
237
+ offset += 32;
238
+ const uriLen = buf.readUInt32LE(offset);
239
+ offset += 4;
240
+ if (offset + uriLen > buf.length) {
241
+ throw new Error(`Corrupted account data: URI length ${uriLen} exceeds buffer remaining`);
242
+ }
243
+ const metadataUri = buf.subarray(offset, offset + uriLen).toString('utf8');
244
+ offset += uriLen;
245
+ const active = buf.readUInt8(offset) !== 0;
246
+ offset += 1;
247
+ // read i64 LE
248
+ const registeredAt = Number(buf.readBigInt64LE(offset));
249
+ offset += 8;
250
+ const updatedAt = Number(buf.readBigInt64LE(offset));
251
+ offset += 8;
252
+ const bump = buf.readUInt8(offset);
253
+ return {
254
+ seller,
255
+ serviceId,
256
+ metadataHash,
257
+ metadataUri,
258
+ active,
259
+ registeredAt,
260
+ updatedAt,
261
+ bump,
262
+ };
263
+ }
264
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/solana/registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "veilioexchange",
3
- "version": "0.1.0",
4
- "description": "TypeScript SDK for VEILIO: sealed-bid auctions and milestone service escrow on BNB Smart Chain Testnet and Base Sepolia.",
3
+ "version": "0.2.0",
4
+ "description": "TypeScript SDK for VEILIO: sealed-bid auctions and milestone service escrow on BNB Smart Chain Testnet, Base Sepolia and Solana Devnet.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "main": "./dist/cjs/index.js",
@@ -18,6 +18,16 @@
18
18
  "default": "./dist/cjs/index.js"
19
19
  }
20
20
  },
21
+ "./solana": {
22
+ "import": {
23
+ "types": "./dist/esm/solana/index.d.ts",
24
+ "default": "./dist/esm/solana/index.js"
25
+ },
26
+ "require": {
27
+ "types": "./dist/cjs/solana/index.d.ts",
28
+ "default": "./dist/cjs/solana/index.js"
29
+ }
30
+ },
21
31
  "./package.json": "./package.json"
22
32
  },
23
33
  "files": [
@@ -43,13 +53,29 @@
43
53
  "ai-agent",
44
54
  "viem",
45
55
  "bnb-chain",
46
- "base"
56
+ "base",
57
+ "solana"
47
58
  ],
48
59
  "peerDependencies": {
49
- "viem": "^2.21.0"
60
+ "viem": "^2.21.0",
61
+ "@solana/web3.js": "^1.95.0"
50
62
  },
51
63
  "devDependencies": {
64
+ "@solana/web3.js": "^1.99.0",
65
+ "@types/node": "^20.0.0",
52
66
  "typescript": "^5.6.0",
53
67
  "viem": "^2.56.3"
68
+ },
69
+ "typesVersions": {
70
+ "*": {
71
+ "solana": [
72
+ "./dist/esm/solana/index.d.ts"
73
+ ]
74
+ }
75
+ },
76
+ "peerDependenciesMeta": {
77
+ "@solana/web3.js": {
78
+ "optional": true
79
+ }
54
80
  }
55
81
  }