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,438 @@
1
+ /**
2
+ * VEILIO Solana Auction Client & Instruction Interface
3
+ *
4
+ * Implements client-side PDA derivation, Anchor instruction encoding,
5
+ * domain-separated sealed commitment calculation, and account deserialization
6
+ * for the on-chain Solana Devnet Veilio Auction program.
7
+ */
8
+ import { createHash } from 'node:crypto';
9
+ import { encodeBase58, decodeBase58, findProgramDerivedAddress, getAnchorDiscriminator, SYSTEM_PROGRAM_ID, } from './registry.js';
10
+ export const AUCTION_SEED = Buffer.from('auction');
11
+ export const BID_COMMITMENT_SEED = Buffer.from('bid_commitment');
12
+ export const COMMITMENT_DOMAIN_TAG = Buffer.from('VEILIO_AUCTION_COMMITMENT_V1');
13
+ export const DEFAULT_SOLANA_AUCTION_PROGRAM_ID = '5Tw1iJGN1hhyRzepbD5eLoaRoZTEiKcqrh2HoZYhYEta';
14
+ export const MAX_ITEM_NAME_LEN = 64;
15
+ export const MAX_DESC_LEN = 128;
16
+ export const MAX_IMAGE_URI_LEN = 200;
17
+ export const MAX_REVIEW_REASON_LEN = 100;
18
+ export var SolanaAuctionState;
19
+ (function (SolanaAuctionState) {
20
+ SolanaAuctionState[SolanaAuctionState["Created"] = 0] = "Created";
21
+ SolanaAuctionState[SolanaAuctionState["Bidding"] = 1] = "Bidding";
22
+ SolanaAuctionState[SolanaAuctionState["Revealing"] = 2] = "Revealing";
23
+ SolanaAuctionState[SolanaAuctionState["Inspection"] = 3] = "Inspection";
24
+ SolanaAuctionState[SolanaAuctionState["RefundRequested"] = 4] = "RefundRequested";
25
+ SolanaAuctionState[SolanaAuctionState["UnderReview"] = 5] = "UnderReview";
26
+ SolanaAuctionState[SolanaAuctionState["Completed"] = 6] = "Completed";
27
+ SolanaAuctionState[SolanaAuctionState["Refunded"] = 7] = "Refunded";
28
+ SolanaAuctionState[SolanaAuctionState["Cancelled"] = 8] = "Cancelled";
29
+ })(SolanaAuctionState || (SolanaAuctionState = {}));
30
+ export function getSolanaAuctionProgramId() {
31
+ return DEFAULT_SOLANA_AUCTION_PROGRAM_ID;
32
+ }
33
+ /**
34
+ * Derives the deterministic PDA for an Auction on Solana.
35
+ * Seeds: [b"auction", auction_id: u64 LE]
36
+ */
37
+ export function findAuctionPda(auctionId, programId = getSolanaAuctionProgramId()) {
38
+ const idBuf = Buffer.alloc(8);
39
+ idBuf.writeBigUInt64LE(BigInt(auctionId), 0);
40
+ return findProgramDerivedAddress([AUCTION_SEED, idBuf], programId);
41
+ }
42
+ /**
43
+ * Derives the deterministic PDA for a Bidder's Commitment on Solana.
44
+ * Seeds: [b"bid_commitment", auction_pubkey, bidder_pubkey]
45
+ */
46
+ export function findBidCommitmentPda(auctionPubkey, bidderPubkey, programId = getSolanaAuctionProgramId()) {
47
+ const auctionBytes = Buffer.from(decodeBase58(auctionPubkey));
48
+ const bidderBytes = Buffer.from(decodeBase58(bidderPubkey));
49
+ return findProgramDerivedAddress([BID_COMMITMENT_SEED, auctionBytes, bidderBytes], programId);
50
+ }
51
+ /**
52
+ * Computes domain-separated sealed bid commitment:
53
+ * SHA-256(b"VEILIO_AUCTION_COMMITMENT_V1" || auction_key || bidder_key || max_bid_le || salt)
54
+ */
55
+ export function computeSealedBidCommitment(params) {
56
+ const auctionBytes = Buffer.from(decodeBase58(params.auctionPubkey));
57
+ const bidderBytes = Buffer.from(decodeBase58(params.bidderPubkey));
58
+ const saltBuf = Buffer.isBuffer(params.salt) ? params.salt : Buffer.from(params.salt);
59
+ if (saltBuf.length !== 32) {
60
+ throw new Error(`Salt must be exactly 32 bytes (received ${saltBuf.length})`);
61
+ }
62
+ const maxBidBuf = Buffer.alloc(8);
63
+ maxBidBuf.writeBigUInt64LE(BigInt(params.maxBidLamports), 0);
64
+ return createHash('sha256')
65
+ .update(COMMITMENT_DOMAIN_TAG)
66
+ .update(auctionBytes)
67
+ .update(bidderBytes)
68
+ .update(maxBidBuf)
69
+ .update(saltBuf)
70
+ .digest();
71
+ }
72
+ /**
73
+ * Builds `create_auction` instruction.
74
+ */
75
+ export function createCreateAuctionInstruction(params) {
76
+ const programId = params.programId || getSolanaAuctionProgramId();
77
+ if (params.commitDurationSeconds < 60) {
78
+ throw new Error('Commit duration must be at least 60 seconds');
79
+ }
80
+ if (params.revealDurationSeconds < 60) {
81
+ throw new Error('Reveal duration must be at least 60 seconds');
82
+ }
83
+ if (params.inspectionDurationSeconds < 3600) {
84
+ throw new Error('Inspection duration must be at least 3600 seconds (1 hour)');
85
+ }
86
+ if (BigInt(params.startingPriceLamports) <= 0n) {
87
+ throw new Error('Starting price must be positive');
88
+ }
89
+ const nameBuf = Buffer.from(params.itemName, 'utf8');
90
+ if (nameBuf.length > MAX_ITEM_NAME_LEN) {
91
+ throw new Error(`Item name exceeds max length (${MAX_ITEM_NAME_LEN} bytes)`);
92
+ }
93
+ const descBuf = Buffer.from(params.description, 'utf8');
94
+ if (descBuf.length > MAX_DESC_LEN) {
95
+ throw new Error(`Description exceeds max length (${MAX_DESC_LEN} bytes)`);
96
+ }
97
+ const uriBuf = Buffer.from(params.imageUri, 'utf8');
98
+ if (uriBuf.length > MAX_IMAGE_URI_LEN) {
99
+ throw new Error(`Image URI exceeds max length (${MAX_IMAGE_URI_LEN} bytes)`);
100
+ }
101
+ const { pda } = findAuctionPda(params.auctionId, programId);
102
+ const discriminator = getAnchorDiscriminator('global', 'create_auction');
103
+ // Serialization layout:
104
+ // [8 disc] + [8 auction_id] + [4+nameLen] + [4+descLen] + [4+uriLen] + [8 startingPrice] + [8 commitDur] + [8 revealDur] + [8 inspDur]
105
+ const idBuf = Buffer.alloc(8);
106
+ idBuf.writeBigUInt64LE(BigInt(params.auctionId), 0);
107
+ const priceBuf = Buffer.alloc(8);
108
+ priceBuf.writeBigUInt64LE(BigInt(params.startingPriceLamports), 0);
109
+ const commitBuf = Buffer.alloc(8);
110
+ commitBuf.writeBigInt64LE(BigInt(params.commitDurationSeconds), 0);
111
+ const revealBuf = Buffer.alloc(8);
112
+ revealBuf.writeBigInt64LE(BigInt(params.revealDurationSeconds), 0);
113
+ const inspBuf = Buffer.alloc(8);
114
+ inspBuf.writeBigInt64LE(BigInt(params.inspectionDurationSeconds), 0);
115
+ const nameLen = Buffer.alloc(4);
116
+ nameLen.writeUInt32LE(nameBuf.length, 0);
117
+ const descLen = Buffer.alloc(4);
118
+ descLen.writeUInt32LE(descBuf.length, 0);
119
+ const uriLen = Buffer.alloc(4);
120
+ uriLen.writeUInt32LE(uriBuf.length, 0);
121
+ const data = Buffer.concat([
122
+ discriminator,
123
+ idBuf,
124
+ nameLen,
125
+ nameBuf,
126
+ descLen,
127
+ descBuf,
128
+ uriLen,
129
+ uriBuf,
130
+ priceBuf,
131
+ commitBuf,
132
+ revealBuf,
133
+ inspBuf,
134
+ ]);
135
+ return {
136
+ programId,
137
+ accounts: [
138
+ { pubkey: pda, isSigner: false, isWritable: true },
139
+ { pubkey: params.seller, isSigner: true, isWritable: true },
140
+ { pubkey: params.reviewer, isSigner: false, isWritable: false },
141
+ { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },
142
+ ],
143
+ data,
144
+ };
145
+ }
146
+ /**
147
+ * Builds `commit_bid` instruction.
148
+ */
149
+ export function createCommitBidInstruction(params) {
150
+ const programId = params.programId || getSolanaAuctionProgramId();
151
+ const commitBuf = Buffer.isBuffer(params.commitment) ? params.commitment : Buffer.from(params.commitment);
152
+ if (commitBuf.length !== 32) {
153
+ throw new Error(`Commitment must be exactly 32 bytes (received ${commitBuf.length})`);
154
+ }
155
+ if (commitBuf.every((b) => b === 0)) {
156
+ throw new Error('Commitment cannot be zero');
157
+ }
158
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
159
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.bidder, programId);
160
+ const discriminator = getAnchorDiscriminator('global', 'commit_bid');
161
+ const depositBuf = Buffer.alloc(8);
162
+ depositBuf.writeBigUInt64LE(BigInt(params.depositLamports), 0);
163
+ const data = Buffer.concat([discriminator, commitBuf, depositBuf]);
164
+ return {
165
+ programId,
166
+ accounts: [
167
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
168
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
169
+ { pubkey: params.bidder, isSigner: true, isWritable: true },
170
+ { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },
171
+ ],
172
+ data,
173
+ };
174
+ }
175
+ /**
176
+ * Builds `reveal_bid` instruction.
177
+ */
178
+ export function createRevealBidInstruction(params) {
179
+ const programId = params.programId || getSolanaAuctionProgramId();
180
+ const saltBuf = Buffer.isBuffer(params.salt) ? params.salt : Buffer.from(params.salt);
181
+ if (saltBuf.length !== 32) {
182
+ throw new Error(`Salt must be exactly 32 bytes (received ${saltBuf.length})`);
183
+ }
184
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
185
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.bidder, programId);
186
+ const discriminator = getAnchorDiscriminator('global', 'reveal_bid');
187
+ const maxBidBuf = Buffer.alloc(8);
188
+ maxBidBuf.writeBigUInt64LE(BigInt(params.maxBidLamports), 0);
189
+ const data = Buffer.concat([discriminator, maxBidBuf, saltBuf]);
190
+ return {
191
+ programId,
192
+ accounts: [
193
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
194
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
195
+ { pubkey: params.bidder, isSigner: true, isWritable: false },
196
+ ],
197
+ data,
198
+ };
199
+ }
200
+ /**
201
+ * Builds `settle_auction` instruction.
202
+ */
203
+ export function createSettleAuctionInstruction(params) {
204
+ const programId = params.programId || getSolanaAuctionProgramId();
205
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
206
+ const discriminator = getAnchorDiscriminator('global', 'settle_auction');
207
+ return {
208
+ programId,
209
+ accounts: [{ pubkey: auctionPda, isSigner: false, isWritable: true }],
210
+ data: discriminator,
211
+ };
212
+ }
213
+ /**
214
+ * Builds `accept_dataset` instruction.
215
+ */
216
+ export function createAcceptDatasetInstruction(params) {
217
+ const programId = params.programId || getSolanaAuctionProgramId();
218
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
219
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.winner, programId);
220
+ const discriminator = getAnchorDiscriminator('global', 'accept_dataset');
221
+ return {
222
+ programId,
223
+ accounts: [
224
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
225
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
226
+ { pubkey: params.seller, isSigner: false, isWritable: true },
227
+ { pubkey: params.winner, isSigner: true, isWritable: true },
228
+ ],
229
+ data: discriminator,
230
+ };
231
+ }
232
+ export function createReviewRefundInstruction(params) {
233
+ const programId = params.programId || getSolanaAuctionProgramId();
234
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
235
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.winner, programId);
236
+ return {
237
+ programId,
238
+ accounts: [
239
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
240
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
241
+ { pubkey: params.seller, isSigner: false, isWritable: true },
242
+ { pubkey: params.reviewer, isSigner: true, isWritable: false },
243
+ { pubkey: params.winner, isSigner: false, isWritable: true },
244
+ ],
245
+ data: Buffer.concat([
246
+ getAnchorDiscriminator('global', 'review_refund'),
247
+ Buffer.from([params.approve ? 1 : 0]),
248
+ ]),
249
+ };
250
+ }
251
+ export function createFinalizeInspectionTimeoutInstruction(params) {
252
+ const programId = params.programId || getSolanaAuctionProgramId();
253
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
254
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.winner, programId);
255
+ return {
256
+ programId,
257
+ accounts: [
258
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
259
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
260
+ { pubkey: params.seller, isSigner: false, isWritable: true },
261
+ { pubkey: params.winner, isSigner: false, isWritable: true },
262
+ { pubkey: params.caller, isSigner: true, isWritable: false },
263
+ ],
264
+ data: getAnchorDiscriminator('global', 'finalize_inspection_timeout'),
265
+ };
266
+ }
267
+ export function createFinalizeRefundTimeoutInstruction(params) {
268
+ const programId = params.programId || getSolanaAuctionProgramId();
269
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
270
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.winner, programId);
271
+ return {
272
+ programId,
273
+ accounts: [
274
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
275
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
276
+ { pubkey: params.winner, isSigner: true, isWritable: true },
277
+ ],
278
+ data: getAnchorDiscriminator('global', 'finalize_refund_timeout'),
279
+ };
280
+ }
281
+ export function createClaimRefundInstruction(params) {
282
+ const programId = params.programId || getSolanaAuctionProgramId();
283
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
284
+ const { pda: bidCommitmentPda } = findBidCommitmentPda(auctionPda, params.bidder, programId);
285
+ return {
286
+ programId,
287
+ accounts: [
288
+ { pubkey: auctionPda, isSigner: false, isWritable: false },
289
+ { pubkey: bidCommitmentPda, isSigner: false, isWritable: true },
290
+ { pubkey: params.bidder, isSigner: true, isWritable: true },
291
+ ],
292
+ data: getAnchorDiscriminator('global', 'claim_refund'),
293
+ };
294
+ }
295
+ /**
296
+ * Builds `request_refund` instruction.
297
+ */
298
+ export function createRequestRefundInstruction(params) {
299
+ const programId = params.programId || getSolanaAuctionProgramId();
300
+ const hashBuf = Buffer.isBuffer(params.evidenceHash) ? params.evidenceHash : Buffer.from(params.evidenceHash);
301
+ if (hashBuf.length !== 32) {
302
+ throw new Error(`Evidence hash must be exactly 32 bytes (received ${hashBuf.length})`);
303
+ }
304
+ if (hashBuf.every((b) => b === 0)) {
305
+ throw new Error('Evidence hash cannot be zero');
306
+ }
307
+ const { pda: auctionPda } = findAuctionPda(params.auctionId, programId);
308
+ const discriminator = getAnchorDiscriminator('global', 'request_refund');
309
+ const data = Buffer.concat([discriminator, hashBuf]);
310
+ return {
311
+ programId,
312
+ accounts: [
313
+ { pubkey: auctionPda, isSigner: false, isWritable: true },
314
+ { pubkey: params.winner, isSigner: true, isWritable: false },
315
+ ],
316
+ data,
317
+ };
318
+ }
319
+ /**
320
+ * Decodes an Anchor `AuctionStateAccount` buffer.
321
+ */
322
+ export function decodeAuctionStateAccount(data) {
323
+ const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
324
+ const expectedDisc = getAnchorDiscriminator('account', 'AuctionStateAccount');
325
+ if (!buf.subarray(0, 8).equals(expectedDisc)) {
326
+ throw new Error('Invalid account discriminator: not an AuctionStateAccount');
327
+ }
328
+ if (buf.length < 8 + 32 + 32 + 8 + 4 + 4 + 4 + 8 + 8 + 8 + 8 + 8 + 8 + 1 + 32 + 8 + 4 + 4 + 32 + 4 + 1) {
329
+ throw new Error(`Buffer too short for AuctionStateAccount: ${buf.length} bytes`);
330
+ }
331
+ let offset = 8;
332
+ const seller = encodeBase58(buf.subarray(offset, offset + 32));
333
+ offset += 32;
334
+ const reviewer = encodeBase58(buf.subarray(offset, offset + 32));
335
+ offset += 32;
336
+ const auctionId = buf.readBigUInt64LE(offset);
337
+ offset += 8;
338
+ const nameLen = buf.readUInt32LE(offset);
339
+ offset += 4;
340
+ const itemName = buf.subarray(offset, offset + nameLen).toString('utf8');
341
+ offset += nameLen;
342
+ const descLen = buf.readUInt32LE(offset);
343
+ offset += 4;
344
+ const description = buf.subarray(offset, offset + descLen).toString('utf8');
345
+ offset += descLen;
346
+ const uriLen = buf.readUInt32LE(offset);
347
+ offset += 4;
348
+ const imageUri = buf.subarray(offset, offset + uriLen).toString('utf8');
349
+ offset += uriLen;
350
+ const startingPrice = buf.readBigUInt64LE(offset);
351
+ offset += 8;
352
+ const commitEndTime = Number(buf.readBigInt64LE(offset));
353
+ offset += 8;
354
+ const revealEndTime = Number(buf.readBigInt64LE(offset));
355
+ offset += 8;
356
+ const inspectionDuration = Number(buf.readBigInt64LE(offset));
357
+ offset += 8;
358
+ const inspectionEndTime = Number(buf.readBigInt64LE(offset));
359
+ offset += 8;
360
+ const refundRequestedAt = Number(buf.readBigInt64LE(offset));
361
+ offset += 8;
362
+ const state = buf.readUInt8(offset);
363
+ offset += 1;
364
+ const highestBidder = encodeBase58(buf.subarray(offset, offset + 32));
365
+ offset += 32;
366
+ const highestBid = buf.readBigUInt64LE(offset);
367
+ offset += 8;
368
+ const bidderCount = buf.readUInt32LE(offset);
369
+ offset += 4;
370
+ const revealedCount = buf.readUInt32LE(offset);
371
+ offset += 4;
372
+ const evidenceHash = '0x' + buf.subarray(offset, offset + 32).toString('hex');
373
+ offset += 32;
374
+ const reasonLen = buf.readUInt32LE(offset);
375
+ offset += 4;
376
+ const reviewReason = buf.subarray(offset, offset + reasonLen).toString('utf8');
377
+ offset += reasonLen;
378
+ const bump = buf.readUInt8(offset);
379
+ return {
380
+ seller,
381
+ reviewer,
382
+ auctionId,
383
+ itemName,
384
+ description,
385
+ imageUri,
386
+ startingPrice,
387
+ commitEndTime,
388
+ revealEndTime,
389
+ inspectionDuration,
390
+ inspectionEndTime,
391
+ refundRequestedAt,
392
+ state,
393
+ highestBidder,
394
+ highestBid,
395
+ bidderCount,
396
+ revealedCount,
397
+ evidenceHash,
398
+ reviewReason,
399
+ bump,
400
+ };
401
+ }
402
+ /**
403
+ * Decodes an Anchor `BidCommitmentAccount` buffer.
404
+ */
405
+ export function decodeBidCommitmentAccount(data) {
406
+ const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
407
+ const expectedDisc = getAnchorDiscriminator('account', 'BidCommitmentAccount');
408
+ if (buf.length < 8 + 32 + 32 + 32 + 8 + 8 + 1 + 1) {
409
+ throw new Error(`Buffer too short for BidCommitmentAccount: ${buf.length} bytes`);
410
+ }
411
+ if (!buf.subarray(0, 8).equals(expectedDisc)) {
412
+ throw new Error('Invalid account discriminator: not a BidCommitmentAccount');
413
+ }
414
+ let offset = 8;
415
+ const auction = encodeBase58(buf.subarray(offset, offset + 32));
416
+ offset += 32;
417
+ const bidder = encodeBase58(buf.subarray(offset, offset + 32));
418
+ offset += 32;
419
+ const commitment = '0x' + buf.subarray(offset, offset + 32).toString('hex');
420
+ offset += 32;
421
+ const deposit = buf.readBigUInt64LE(offset);
422
+ offset += 8;
423
+ const maxBid = buf.readBigUInt64LE(offset);
424
+ offset += 8;
425
+ const revealed = buf.readUInt8(offset) !== 0;
426
+ offset += 1;
427
+ const bump = buf.readUInt8(offset);
428
+ return {
429
+ auction,
430
+ bidder,
431
+ commitment,
432
+ deposit,
433
+ maxBid,
434
+ revealed,
435
+ bump,
436
+ };
437
+ }
438
+ //# sourceMappingURL=auction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auction.js","sourceRoot":"","sources":["../../../src/solana/auction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { Connection, Keypair, PublicKey, Transaction, type Commitment } from '@solana/web3.js';
2
+ import { type DecodedAuctionState } from './auction.js';
3
+ import { type DecodedSolanaEscrowOrder } from './escrow.js';
4
+ /** Anything that can sign a legacy Transaction: a Phantom provider, a wallet adapter, or keypairSigner(). */
5
+ export interface SolanaSigner {
6
+ publicKey: PublicKey;
7
+ signTransaction<T extends Transaction>(transaction: T): Promise<T>;
8
+ }
9
+ /** Wraps a Keypair (e.g. an agent's devnet key) as a SolanaSigner. */
10
+ export declare function keypairSigner(keypair: Keypair): SolanaSigner;
11
+ export interface VeilioSolanaClientOptions {
12
+ connection: Connection;
13
+ signer?: SolanaSigner;
14
+ auctionProgramId?: string;
15
+ escrowProgramId?: string;
16
+ commitment?: Commitment;
17
+ }
18
+ /** Everything needed to reveal a Solana sealed bid. Persist it (salt included) in encrypted storage. */
19
+ export interface SolanaPreparedBid {
20
+ auctionId: string;
21
+ bidder: string;
22
+ maxBidLamports: string;
23
+ /** 32-byte salt, hex. Losing it makes the bid impossible to reveal. */
24
+ salt: string;
25
+ /** SHA-256 commitment, hex. */
26
+ commitment: string;
27
+ programId: string;
28
+ }
29
+ export interface SolanaEscrowDepositInput {
30
+ orderId: string;
31
+ seller: string;
32
+ /** Wallet that can resolve disputes. Must be a real signer, never a program ID. */
33
+ reviewer: string;
34
+ feeRecipient: string;
35
+ amountSol: string;
36
+ /** Unix seconds. */
37
+ deadline: number;
38
+ }
39
+ /**
40
+ * Encodes an order ID into the 32-byte seed the escrow program expects.
41
+ * Accepts a 64-char hex string as-is; otherwise UTF-8 bytes right-padded with zeros
42
+ * (same encoding the EVM escrow uses), up to 32 bytes.
43
+ */
44
+ export declare function toSolanaOrderId(orderId: string): string;
45
+ /** Converts a decimal SOL string to lamports without floating-point rounding. */
46
+ export declare function solToLamports(sol: string): bigint;
47
+ /**
48
+ * Validates a base58 address. A lowercased address often still decodes to 32 bytes, so it would
49
+ * silently point at the wrong account; real addresses with no uppercase letter are vanishingly rare.
50
+ */
51
+ export declare function assertSolanaAddress(label: string, value: string): void;
52
+ /**
53
+ * High-level client for VEILIO on Solana Devnet: sealed-bid auctions and service escrow.
54
+ * Node.js 18+ (uses node:crypto and Buffer).
55
+ */
56
+ export declare function createVeilioSolanaClient(options: VeilioSolanaClientOptions): {
57
+ auctionProgramId: string;
58
+ escrowProgramId: string;
59
+ getAuction: (auctionId: bigint | number | string) => Promise<DecodedAuctionState | null>;
60
+ listAuctions: () => Promise<Array<DecodedAuctionState & {
61
+ address: string;
62
+ }>>;
63
+ prepareBid: (auctionId: bigint | number | string, maxBidSol: string) => SolanaPreparedBid;
64
+ commitBid: (prepared: SolanaPreparedBid, depositSol: string) => Promise<string>;
65
+ revealBid: (prepared: SolanaPreparedBid) => Promise<string>;
66
+ acceptDataset: (auctionId: bigint | number | string, seller: string) => Promise<string>;
67
+ claimRefund: (auctionId: bigint | number | string) => Promise<string>;
68
+ getEscrowOrder: (orderId: string) => Promise<DecodedSolanaEscrowOrder | null>;
69
+ deposit: (input: SolanaEscrowDepositInput) => Promise<string>;
70
+ submitDelivery: (orderId: string, deliverableReference: string) => Promise<string>;
71
+ releaseFunds: (orderId: string) => Promise<string>;
72
+ refund: (orderId: string, reason: string) => Promise<string>;
73
+ dispute: (orderId: string, reason: string) => Promise<string>;
74
+ };
75
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/solana/client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,OAAO,EAEP,SAAS,EACT,WAAW,EAEX,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EASL,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EASL,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;AAGrB,6GAA6G;AAC7G,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACpE;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAQ5D;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAatE;AAcD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB;;;4BAkCpC,MAAM,GAAG,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;wBAMpE,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;4BAiBzD,MAAM,GAAG,MAAM,GAAG,MAAM,aAAa,MAAM,KAAG,iBAAiB;0BAqB3D,iBAAiB,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;0BAgBvD,iBAAiB,KAAG,OAAO,CAAC,MAAM,CAAC;+BAa9B,MAAM,GAAG,MAAM,GAAG,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;6BAY5D,MAAM,GAAG,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;8BAYzC,MAAM,KAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;qBAM1D,wBAAwB,KAAG,OAAO,CAAC,MAAM,CAAC;8BA2BjC,MAAM,wBAAwB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;4BAYxD,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;sBAe9B,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;uBAcvC,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;EA4BzE"}