veilioexchange 0.2.0 → 0.3.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 (70) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/LICENSE +21 -21
  3. package/README.md +225 -160
  4. package/dist/cjs/auth.d.ts +15 -0
  5. package/dist/cjs/auth.d.ts.map +1 -1
  6. package/dist/cjs/auth.js +32 -0
  7. package/dist/cjs/auth.js.map +1 -1
  8. package/dist/cjs/deployments.js +2 -2
  9. package/dist/cjs/index.d.ts +260 -6
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +221 -62
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/servicesApi.d.ts +86 -0
  14. package/dist/cjs/servicesApi.d.ts.map +1 -0
  15. package/dist/cjs/servicesApi.js +177 -0
  16. package/dist/cjs/servicesApi.js.map +1 -0
  17. package/dist/cjs/solana/auction.d.ts +50 -0
  18. package/dist/cjs/solana/auction.d.ts.map +1 -1
  19. package/dist/cjs/solana/auction.js +91 -2
  20. package/dist/cjs/solana/auction.js.map +1 -1
  21. package/dist/cjs/solana/client.d.ts +30 -5
  22. package/dist/cjs/solana/client.d.ts.map +1 -1
  23. package/dist/cjs/solana/client.js +92 -5
  24. package/dist/cjs/solana/client.js.map +1 -1
  25. package/dist/cjs/solana/escrow.d.ts +55 -2
  26. package/dist/cjs/solana/escrow.d.ts.map +1 -1
  27. package/dist/cjs/solana/escrow.js +112 -3
  28. package/dist/cjs/solana/escrow.js.map +1 -1
  29. package/dist/cjs/solana/index.d.ts +1 -1
  30. package/dist/cjs/solana/index.d.ts.map +1 -1
  31. package/dist/cjs/solana/index.js +4 -1
  32. package/dist/cjs/solana/index.js.map +1 -1
  33. package/dist/cjs/solana/registry.d.ts +12 -0
  34. package/dist/cjs/solana/registry.d.ts.map +1 -1
  35. package/dist/cjs/solana/registry.js +28 -1
  36. package/dist/cjs/solana/registry.js.map +1 -1
  37. package/dist/esm/auth.d.ts +15 -0
  38. package/dist/esm/auth.d.ts.map +1 -1
  39. package/dist/esm/auth.js +28 -0
  40. package/dist/esm/auth.js.map +1 -1
  41. package/dist/esm/deployments.js +2 -2
  42. package/dist/esm/index.d.ts +260 -6
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +218 -61
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/servicesApi.d.ts +86 -0
  47. package/dist/esm/servicesApi.d.ts.map +1 -0
  48. package/dist/esm/servicesApi.js +174 -0
  49. package/dist/esm/servicesApi.js.map +1 -0
  50. package/dist/esm/solana/auction.d.ts +50 -0
  51. package/dist/esm/solana/auction.d.ts.map +1 -1
  52. package/dist/esm/solana/auction.js +87 -2
  53. package/dist/esm/solana/auction.js.map +1 -1
  54. package/dist/esm/solana/client.d.ts +30 -5
  55. package/dist/esm/solana/client.d.ts.map +1 -1
  56. package/dist/esm/solana/client.js +94 -7
  57. package/dist/esm/solana/client.js.map +1 -1
  58. package/dist/esm/solana/escrow.d.ts +55 -2
  59. package/dist/esm/solana/escrow.d.ts.map +1 -1
  60. package/dist/esm/solana/escrow.js +108 -3
  61. package/dist/esm/solana/escrow.js.map +1 -1
  62. package/dist/esm/solana/index.d.ts +1 -1
  63. package/dist/esm/solana/index.d.ts.map +1 -1
  64. package/dist/esm/solana/index.js +1 -1
  65. package/dist/esm/solana/index.js.map +1 -1
  66. package/dist/esm/solana/registry.d.ts +12 -0
  67. package/dist/esm/solana/registry.d.ts.map +1 -1
  68. package/dist/esm/solana/registry.js +25 -0
  69. package/dist/esm/solana/registry.js.map +1 -1
  70. package/package.json +82 -81
package/dist/esm/index.js CHANGED
@@ -4,6 +4,7 @@ import { VeilioSdkError, } from './errors.js';
4
4
  export * from './errors.js';
5
5
  export { VEILIO_DEPLOYMENTS } from './deployments.js';
6
6
  export * from './auth.js';
7
+ export * from './servicesApi.js';
7
8
  /**
8
9
  * Safely executes an idempotent read operation with bounded exponential backoff.
9
10
  * NOTE: Never used on state-changing transactions to prevent duplicate submissions.
@@ -31,22 +32,64 @@ export async function withSafeReadRetry(fn, options = {}) {
31
32
  // ============================================================================
32
33
  // Core Constants & Network Configuration
33
34
  // ============================================================================
35
+ /** Default EVM chain (BNB Smart Chain Testnet). Pass `chainId: 84532` for Base Sepolia. */
34
36
  export const VEILIO_CHAIN_ID = VEILIO_DEPLOYMENTS.bnbTestnet.chainId;
35
37
  export const VEILIO_CONTRACT_ADDRESS = VEILIO_DEPLOYMENTS.bnbTestnet.auction;
36
38
  /** Default VeilServiceEscrow on BNB Smart Chain Testnet. Override with `contractAddress`. */
37
39
  export const VEILIO_SERVICES_CONTRACT_ADDRESS = VEILIO_DEPLOYMENTS.bnbTestnet.serviceEscrow;
40
+ /** EVM chains VEILIO is deployed on: BNB Smart Chain Testnet (97) and Base Sepolia (84532). */
41
+ export const VEILIO_SUPPORTED_CHAIN_IDS = [
42
+ VEILIO_DEPLOYMENTS.bnbTestnet.chainId,
43
+ VEILIO_DEPLOYMENTS.baseSepolia.chainId,
44
+ ];
45
+ function chainLabel(chainId) {
46
+ return chainId === VEILIO_DEPLOYMENTS.baseSepolia.chainId ? 'Base Sepolia' : 'BNB Chain testnet';
47
+ }
48
+ /** Validates a chain ID and returns it typed as a supported VEILIO EVM chain. */
49
+ export function assertVeilioChainId(chainId, product = 'VEILIO') {
50
+ if (chainId !== VEILIO_DEPLOYMENTS.bnbTestnet.chainId && chainId !== VEILIO_DEPLOYMENTS.baseSepolia.chainId) {
51
+ throw new VeilioSdkError({
52
+ code: 'CHAIN_MISMATCH',
53
+ message: `Invalid chain ID ${chainId}. ${product} operates on BNB Chain (chain ID ${VEILIO_CHAIN_ID}) or Base Sepolia (chain ID 84532).`,
54
+ });
55
+ }
56
+ return chainId;
57
+ }
58
+ /** Default deployed addresses for a supported EVM chain. */
59
+ export function getVeilioDeployment(chainId) {
60
+ const id = assertVeilioChainId(chainId);
61
+ return id === VEILIO_DEPLOYMENTS.baseSepolia.chainId ? VEILIO_DEPLOYMENTS.baseSepolia : VEILIO_DEPLOYMENTS.bnbTestnet;
62
+ }
63
+ /** Throws CHAIN_MISMATCH when the wallet is connected to a different chain than the client targets. */
64
+ function assertWalletOnChain(walletClient, targetChainId) {
65
+ if (walletClient?.chain && walletClient.chain.id !== targetChainId) {
66
+ throw new VeilioSdkError({
67
+ code: 'CHAIN_MISMATCH',
68
+ message: `Connected wallet chain ID (${walletClient.chain.id}) does not match required ${chainLabel(targetChainId)} (${targetChainId}).`,
69
+ context: { walletChainId: walletClient.chain.id, targetChainId },
70
+ });
71
+ }
72
+ }
38
73
  // ============================================================================
39
74
  // Auction & Asset Marketplace ABI & Types (Preserved for 100% Backward Compatibility)
40
75
  // ============================================================================
41
- const abi = parseAbi([
76
+ /** Subset of the deployed VeilNFTV4 auction ABI (BNB testnet + Base Sepolia) used by the agent. */
77
+ export const veilAuctionAbi = parseAbi([
42
78
  'function auctionCount() view returns (uint256)',
43
79
  'function auctions(uint256 auctionId) view returns (uint256 id, address seller, string itemName, string description, string imageURI, uint256 startingPrice, uint256 commitEndTime, uint256 revealEndTime, uint256 inspectionDuration, uint256 inspectionEndTime, uint8 state, address highestBidder, uint256 highestBid, uint256 bidderCount, uint256 revealedCount, bytes32 finalTxHash, string evidenceHash, string reviewReason)',
44
80
  'function getAuctionState(uint256 auctionId) view returns (uint8)',
45
81
  'function commitments(uint256 auctionId, address bidder) view returns (bytes32 commitment, uint256 deposit, bool revealed, uint256 maxBid)',
82
+ 'function nftAssets(uint256 auctionId) view returns (uint8 standard, address tokenContract, uint256 tokenId, uint256 amount, bool escrowed, bool delivered)',
83
+ 'function pendingRefunds(address account) view returns (uint256)',
46
84
  'function commitBid(uint256 auctionId, bytes32 commitment) payable',
47
85
  'function revealBid(uint256 auctionId, uint256 maxBid, bytes32 secret)',
86
+ 'function settleAuction(uint256 auctionId)',
48
87
  'function acceptDataset(uint256 auctionId)',
88
+ 'function finalizeSettlement(uint256 auctionId)',
89
+ 'function requestRefund(uint256 auctionId, string evidenceHash)',
90
+ 'function withdrawRefund()',
49
91
  ]);
92
+ const abi = veilAuctionAbi;
50
93
  export const AUCTION_STATES = [
51
94
  'Created',
52
95
  'Bidding',
@@ -109,13 +152,7 @@ function serviceStateName(value) {
109
152
  // Dedicated Services Escrow Client Factory
110
153
  // ============================================================================
111
154
  export function createVeilioServicesClient(options) {
112
- const targetChainId = options.chainId ?? VEILIO_CHAIN_ID;
113
- if (targetChainId !== VEILIO_CHAIN_ID && targetChainId !== 84532) {
114
- throw new VeilioSdkError({
115
- code: 'CHAIN_MISMATCH',
116
- message: `Invalid chain ID ${targetChainId}. VEILIO Services operates on BNB Chain (chain ID ${VEILIO_CHAIN_ID}) or Base Sepolia (chain ID 84532).`,
117
- });
118
- }
155
+ const targetChainId = assertVeilioChainId(options.chainId ?? VEILIO_CHAIN_ID, 'VEILIO Services');
119
156
  const defaultContractAddress = targetChainId === VEILIO_DEPLOYMENTS.baseSepolia.chainId
120
157
  ? VEILIO_DEPLOYMENTS.baseSepolia.serviceEscrow
121
158
  : VEILIO_SERVICES_CONTRACT_ADDRESS;
@@ -152,13 +189,7 @@ export function createVeilioServicesClient(options) {
152
189
  return acc;
153
190
  }
154
191
  function assertWalletChain(walletClient) {
155
- if (walletClient?.chain && walletClient.chain.id !== targetChainId) {
156
- const requiredName = targetChainId === 84532 ? 'Base Sepolia' : 'BNB Chain testnet';
157
- throw new VeilioSdkError({
158
- code: 'CHAIN_MISMATCH',
159
- message: `Connected wallet chain ID (${walletClient.chain.id}) does not match required ${requiredName} (${targetChainId}).`,
160
- });
161
- }
192
+ assertWalletOnChain(walletClient, targetChainId);
162
193
  }
163
194
  function makeTxResult(txHash) {
164
195
  return {
@@ -440,9 +471,13 @@ function stateName(value) {
440
471
  return state;
441
472
  }
442
473
  export function createVeilioAgent(options) {
443
- const address = options.contractAddress ?? VEILIO_CONTRACT_ADDRESS;
474
+ const targetChainId = assertVeilioChainId(options.chainId ?? VEILIO_CHAIN_ID, 'VEILIO auctions');
475
+ const address = options.contractAddress ?? getVeilioDeployment(targetChainId).auction;
476
+ if (!isAddress(address)) {
477
+ throw new VeilioSdkError({ code: 'INVALID_CONFIG', message: 'Auction contractAddress is not a valid EVM address.' });
478
+ }
444
479
  const apiBase = (options.apiBaseUrl || '').replace(/\/$/, '');
445
- // Dedicated Services escrow client instance attached to the agent (if configured or provided)
480
+ // Dedicated Services escrow client instance attached to the agent (same chain as the auction agent)
446
481
  let servicesClientInstance;
447
482
  try {
448
483
  servicesClientInstance = createVeilioServicesClient({
@@ -450,7 +485,7 @@ export function createVeilioAgent(options) {
450
485
  walletClient: options.walletClient,
451
486
  account: options.account,
452
487
  contractAddress: options.servicesContractAddress,
453
- chainId: VEILIO_CHAIN_ID,
488
+ chainId: targetChainId,
454
489
  });
455
490
  }
456
491
  catch {
@@ -606,22 +641,46 @@ export function createVeilioAgent(options) {
606
641
  maxBidWei: maxBidWei.toString(),
607
642
  secret,
608
643
  commitment,
609
- chainId: VEILIO_CHAIN_ID,
644
+ chainId: targetChainId,
610
645
  contractAddress: address,
611
646
  };
612
647
  }
613
- async function commitBid(prepared, depositAmount) {
648
+ function requireWallet() {
614
649
  const walletClient = options.walletClient;
615
650
  if (!walletClient) {
616
651
  throw new VeilioSdkError({ code: 'WALLET_REQUIRED', message: 'A walletClient is required to submit transactions.' });
617
652
  }
618
- if (prepared.chainId !== VEILIO_CHAIN_ID ||
653
+ assertWalletOnChain(walletClient, targetChainId);
654
+ return walletClient;
655
+ }
656
+ function assertPreparedBidTarget(prepared) {
657
+ if (prepared.chainId !== targetChainId ||
619
658
  prepared.contractAddress.toLowerCase() !== address.toLowerCase()) {
620
- throw new VeilioSdkError({ code: 'CHAIN_MISMATCH', message: 'Prepared bid belongs to a different chain or contract.' });
659
+ throw new VeilioSdkError({
660
+ code: 'CHAIN_MISMATCH',
661
+ message: 'Prepared bid belongs to a different chain or contract.',
662
+ context: { preparedChainId: prepared.chainId, targetChainId },
663
+ });
621
664
  }
622
665
  if (prepared.bidder.toLowerCase() !== getAccount(options).toLowerCase()) {
623
666
  throw new VeilioSdkError({ code: 'UNAUTHORIZED', message: 'Prepared bid wallet does not match the connected agent wallet.' });
624
667
  }
668
+ }
669
+ async function write(walletClient, functionName, args, value) {
670
+ return walletClient.writeContract({
671
+ address,
672
+ abi,
673
+ functionName,
674
+ args,
675
+ value,
676
+ account: walletClient.account ?? getAccount(options),
677
+ chain: walletClient.chain ?? undefined,
678
+ });
679
+ }
680
+ const nowSeconds = () => BigInt(Math.floor(Date.now() / 1000));
681
+ async function commitBid(prepared, depositAmount) {
682
+ const walletClient = requireWallet();
683
+ assertPreparedBidTarget(prepared);
625
684
  const depositWei = parseEther(String(depositAmount));
626
685
  const auction = await getAuction(prepared.auctionId);
627
686
  if (auction.state !== 'Bidding') {
@@ -642,31 +701,19 @@ export function createVeilioAgent(options) {
642
701
  if (commitment[0] !== `0x${'0'.repeat(64)}`) {
643
702
  throw new VeilioSdkError({ code: 'INVALID_INPUT', message: 'This wallet already committed to this auction.' });
644
703
  }
645
- return walletClient.writeContract({
646
- address,
647
- abi,
648
- functionName: 'commitBid',
649
- args: [BigInt(prepared.auctionId), prepared.commitment],
650
- value: depositWei,
651
- account: walletClient.account ?? getAccount(options),
652
- chain: walletClient.chain ?? undefined,
653
- });
704
+ return write(walletClient, 'commitBid', [BigInt(prepared.auctionId), prepared.commitment], depositWei);
654
705
  }
655
706
  async function revealBid(prepared) {
656
- const walletClient = options.walletClient;
657
- if (!walletClient) {
658
- throw new VeilioSdkError({ code: 'WALLET_REQUIRED', message: 'A walletClient is required to submit transactions.' });
659
- }
660
- if (prepared.chainId !== VEILIO_CHAIN_ID ||
661
- prepared.contractAddress.toLowerCase() !== address.toLowerCase()) {
662
- throw new VeilioSdkError({ code: 'CHAIN_MISMATCH', message: 'Prepared bid belongs to a different chain or contract.' });
663
- }
664
- if (prepared.bidder.toLowerCase() !== getAccount(options).toLowerCase()) {
665
- throw new VeilioSdkError({ code: 'UNAUTHORIZED', message: 'Prepared bid wallet does not match the connected agent wallet.' });
666
- }
707
+ const walletClient = requireWallet();
708
+ assertPreparedBidTarget(prepared);
667
709
  const auction = await getAuction(prepared.auctionId);
668
- if (auction.state !== 'Revealing') {
669
- throw new VeilioSdkError({ code: 'INVALID_INPUT', message: `Auction is ${auction.state}; it is not accepting reveals.` });
710
+ if (auction.state !== 'Revealing' || nowSeconds() >= auction.revealEndTime) {
711
+ throw new VeilioSdkError({
712
+ code: 'INVALID_INPUT',
713
+ message: auction.state === 'Revealing'
714
+ ? 'Reveal phase has ended; the auction is waiting for settleAuction().'
715
+ : `Auction is ${auction.state}; it is not accepting reveals.`,
716
+ });
670
717
  }
671
718
  const commitment = await options.publicClient.readContract({
672
719
  address,
@@ -684,14 +731,7 @@ export function createVeilioAgent(options) {
684
731
  if (expected !== prepared.commitment) {
685
732
  throw new VeilioSdkError({ code: 'INVALID_INPUT', message: 'Prepared bid secret does not match its commitment.' });
686
733
  }
687
- return walletClient.writeContract({
688
- address,
689
- abi,
690
- functionName: 'revealBid',
691
- args: [BigInt(prepared.auctionId), BigInt(prepared.maxBidWei), prepared.secret],
692
- account: walletClient.account ?? getAccount(options),
693
- chain: walletClient.chain ?? undefined,
694
- });
734
+ return write(walletClient, 'revealBid', [BigInt(prepared.auctionId), BigInt(prepared.maxBidWei), prepared.secret]);
695
735
  }
696
736
  async function getAuctionResult(auctionId) {
697
737
  const auction = await getAuction(auctionId);
@@ -699,26 +739,136 @@ export function createVeilioAgent(options) {
699
739
  const isWinner = auction.highestBidder.toLowerCase() === agentAddress;
700
740
  return {
701
741
  auctionId: String(auctionId),
742
+ chainId: targetChainId,
702
743
  state: auction.state,
703
744
  isWinner,
704
745
  highestBidder: auction.highestBidder,
746
+ /** Native-token amount (BNB on chain 97, ETH on Base Sepolia). */
747
+ winningBid: formatEther(auction.highestBidWei),
748
+ /** @deprecated Use `winningBid`; kept for 0.2.x compatibility (also set on Base Sepolia). */
705
749
  winningBidBnb: formatEther(auction.highestBidWei),
706
750
  };
707
751
  }
752
+ /** True when the auction escrows an ERC-721/ERC-1155 token (VeilNFTV4 `nftAssets.standard != None`). */
753
+ async function isNftAuction(auctionId) {
754
+ const asset = await options.publicClient.readContract({
755
+ address,
756
+ abi,
757
+ functionName: 'nftAssets',
758
+ args: [BigInt(auctionId)],
759
+ });
760
+ return Number(asset[0]) !== 0;
761
+ }
762
+ /**
763
+ * Moves an auction out of the reveal phase once `revealEndTime` has passed. Anyone can call it.
764
+ * With a winner the auction enters Inspection; without one, deposits become withdrawable
765
+ * (`withdrawRefund`) and an escrowed NFT returns to the seller.
766
+ */
767
+ async function settleAuction(auctionId) {
768
+ const walletClient = requireWallet();
769
+ const auction = await getAuction(auctionId);
770
+ if (auction.state !== 'Revealing') {
771
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: `Auction is ${auction.state}; only an auction past its reveal phase can be settled.` });
772
+ }
773
+ if (nowSeconds() < auction.revealEndTime) {
774
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: 'Reveal phase has not finished yet.', context: { revealEndTime: auction.revealEndTime.toString() } });
775
+ }
776
+ return write(walletClient, 'settleAuction', [BigInt(auctionId)]);
777
+ }
778
+ /**
779
+ * Winner accepts a dataset auction during inspection (`acceptDataset`), paying the seller.
780
+ * NFT auctions cannot be accepted: VeilNFTV4 delivers the token automatically through
781
+ * `finalizeSettlement` after inspection ends, so this throws for NFT auctions.
782
+ */
708
783
  async function claimAsset(auctionId) {
709
- const walletClient = options.walletClient;
710
- if (!walletClient) {
711
- throw new VeilioSdkError({ code: 'WALLET_REQUIRED', message: 'A walletClient is required to submit transactions.' });
784
+ const walletClient = requireWallet();
785
+ if (await isNftAuction(auctionId)) {
786
+ throw new VeilioSdkError({
787
+ code: 'INVALID_INPUT',
788
+ message: 'NFT auctions are completed with finalizeSettlement() after the inspection period ends; acceptDataset is blocked for NFTs.',
789
+ });
712
790
  }
713
- return walletClient.writeContract({
791
+ const auction = await getAuction(auctionId);
792
+ if (auction.state !== 'Inspection') {
793
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: `Auction is ${auction.state}; acceptDataset requires Inspection.` });
794
+ }
795
+ if (auction.highestBidder.toLowerCase() !== getAccount(options).toLowerCase()) {
796
+ throw new VeilioSdkError({ code: 'UNAUTHORIZED', message: 'Only the winning bidder can accept the asset.' });
797
+ }
798
+ return write(walletClient, 'acceptDataset', [BigInt(auctionId)]);
799
+ }
800
+ /**
801
+ * Completes an auction once the inspection period has ended without a refund request:
802
+ * pays the seller (minus the 10% platform fee, credited as pull payments) and, for NFT
803
+ * auctions, delivers the escrowed token to the winner. Anyone can call it.
804
+ * This is the required completion path for NFT auctions.
805
+ */
806
+ async function finalizeSettlement(auctionId) {
807
+ const walletClient = requireWallet();
808
+ const auction = await getAuction(auctionId);
809
+ if (auction.state !== 'Inspection') {
810
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: `Auction is ${auction.state}; finalizeSettlement requires Inspection.` });
811
+ }
812
+ if (nowSeconds() <= auction.inspectionEndTime) {
813
+ throw new VeilioSdkError({
814
+ code: 'INVALID_INPUT',
815
+ message: 'Inspection period has not ended yet.',
816
+ context: { inspectionEndTime: auction.inspectionEndTime.toString() },
817
+ });
818
+ }
819
+ return write(walletClient, 'finalizeSettlement', [BigInt(auctionId)]);
820
+ }
821
+ /**
822
+ * Winner disputes the asset during inspection. `evidenceHash` is stored on-chain (e.g. an IPFS CID
823
+ * or sha256 of your evidence bundle); the platform reviewer then resolves the request.
824
+ * Note: on the deployed EVM contracts a refund request has no timeout, so funds stay locked until
825
+ * the reviewer acts.
826
+ */
827
+ async function requestRefund(auctionId, evidenceHash) {
828
+ const walletClient = requireWallet();
829
+ const evidence = String(evidenceHash ?? '').trim();
830
+ if (!evidence) {
831
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: 'evidenceHash is required to request a refund.' });
832
+ }
833
+ const auction = await getAuction(auctionId);
834
+ if (auction.state !== 'Inspection' || nowSeconds() > auction.inspectionEndTime) {
835
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: 'Refunds can only be requested during the inspection period.' });
836
+ }
837
+ if (auction.highestBidder.toLowerCase() !== getAccount(options).toLowerCase()) {
838
+ throw new VeilioSdkError({ code: 'UNAUTHORIZED', message: 'Only the winning bidder can request a refund.' });
839
+ }
840
+ return write(walletClient, 'requestRefund', [BigInt(auctionId), evidence]);
841
+ }
842
+ /** Pull-payment balance credited to `account` (losing deposits, over-deposits, seller proceeds, approved refunds). */
843
+ async function getPendingRefund(account) {
844
+ return options.publicClient.readContract({
714
845
  address,
715
846
  abi,
716
- functionName: 'acceptDataset',
717
- args: [BigInt(auctionId)],
718
- account: walletClient.account ?? getAccount(options),
719
- chain: walletClient.chain ?? undefined,
847
+ functionName: 'pendingRefunds',
848
+ args: [account ?? getAccount(options)],
720
849
  });
721
850
  }
851
+ /** Withdraws the caller's whole `pendingRefunds` balance (all auctions at once). */
852
+ async function withdrawRefund() {
853
+ const walletClient = requireWallet();
854
+ const pending = await getPendingRefund();
855
+ if (pending <= 0n) {
856
+ throw new VeilioSdkError({ code: 'INVALID_INPUT', message: 'No pending refund to withdraw for this wallet.' });
857
+ }
858
+ return write(walletClient, 'withdrawRefund', []);
859
+ }
860
+ /** Waits for a transaction returned by this agent and throws TRANSACTION_REVERTED on failure. */
861
+ async function waitForTransaction(hash) {
862
+ const receipt = await options.publicClient.waitForTransactionReceipt({ hash });
863
+ if (receipt.status === 'reverted') {
864
+ throw new VeilioSdkError({
865
+ code: 'TRANSACTION_REVERTED',
866
+ message: `Transaction ${hash} reverted on-chain.`,
867
+ context: { txHash: hash, status: receipt.status },
868
+ });
869
+ }
870
+ return receipt;
871
+ }
722
872
  async function getLicense(auctionId) {
723
873
  const details = await getAssetDetails(auctionId);
724
874
  return {
@@ -730,7 +880,7 @@ export function createVeilioAgent(options) {
730
880
  }
731
881
  return {
732
882
  address,
733
- chainId: VEILIO_CHAIN_ID,
883
+ chainId: targetChainId,
734
884
  getAuction,
735
885
  listAuctions,
736
886
  searchAssets,
@@ -740,7 +890,14 @@ export function createVeilioAgent(options) {
740
890
  commitBid,
741
891
  revealBid,
742
892
  getAuctionResult,
893
+ isNftAuction,
894
+ settleAuction,
743
895
  claimAsset,
896
+ finalizeSettlement,
897
+ requestRefund,
898
+ getPendingRefund,
899
+ withdrawRefund,
900
+ waitForTransaction,
744
901
  getLicense,
745
902
  services: servicesClientInstance,
746
903
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { type MessageSigner, type ServiceAuthPayload } from './auth.js';
2
+ /**
3
+ * Off-chain VEILIO Services API helper.
4
+ *
5
+ * The on-chain escrow (`createVeilioServicesClient`, or the Solana client) moves funds, but the
6
+ * order status shown in the VEILIO app (`InProgress`, `InReview`, `Completed`, ...) only changes
7
+ * when the API is told about it. Call the matching method here after each on-chain step.
8
+ *
9
+ * State-changing calls are signed per request with `signServiceAuth` (EIP-191 personal_sign,
10
+ * nonce consumed by the server). Reads use a reusable 30-minute session (`signServiceSession`)
11
+ * sent in the `x-veilio-auth` header; it is signed once and cached. The server derives the
12
+ * network from the order itself, so no `network` field is ever sent.
13
+ */
14
+ export interface VeilioServicesApiOptions {
15
+ /** e.g. "https://veilio.example". Trailing slashes are ignored. */
16
+ apiBaseUrl: string;
17
+ /** Wallet that signs the auth message (a viem LocalAccount works). Must be the order's buyer/seller. */
18
+ signer: MessageSigner;
19
+ /** Custom fetch (defaults to globalThis.fetch). */
20
+ fetch?: typeof globalThis.fetch;
21
+ }
22
+ export interface NotifyDepositInput {
23
+ /** VEILIO order ID (the `id` in /api/orders/{id}). */
24
+ orderId: string;
25
+ /** Deposit transaction hash (EVM) or signature (Solana). */
26
+ txHash: string;
27
+ /** bytes32 order ID used on-chain, if it differs from the default derived from the order. */
28
+ onChainOrderId?: string;
29
+ }
30
+ export interface SubmitDeliveryApiInput {
31
+ orderId: string;
32
+ /**
33
+ * Required: the on-chain `submitDelivery` transaction hash (EVM, must emit DeliverySubmitted by
34
+ * the seller) or `submit_delivery` signature (Solana). Send the on-chain tx first.
35
+ */
36
+ deliveryTxHash: string;
37
+ /** At least 5 characters. */
38
+ description: string;
39
+ /** Up to 500 characters each. */
40
+ deliverableReferences?: string[];
41
+ }
42
+ export interface ApproveOrderApiInput {
43
+ orderId: string;
44
+ /** `releaseFunds` transaction hash (EVM) or signature (Solana). */
45
+ releaseTxHash: string;
46
+ }
47
+ export interface CancelOrderApiInput {
48
+ orderId: string;
49
+ reason?: string;
50
+ /** Required once the order is funded: the on-chain cancel/refund transaction. */
51
+ txHash?: string;
52
+ }
53
+ export interface RequestRevisionApiInput {
54
+ orderId: string;
55
+ /** At least 5 characters. */
56
+ feedback: string;
57
+ }
58
+ export declare function createVeilioServicesApi(options: VeilioServicesApiOptions): {
59
+ apiBaseUrl: string;
60
+ address: `0x${string}`;
61
+ notifyDeposit: (input: NotifyDepositInput) => Promise<unknown>;
62
+ submit: (input: SubmitDeliveryApiInput) => Promise<unknown>;
63
+ requestRevision: (input: RequestRevisionApiInput) => Promise<unknown>;
64
+ approve: (input: ApproveOrderApiInput) => Promise<unknown>;
65
+ cancel: (input: CancelOrderApiInput) => Promise<unknown>;
66
+ getSession: () => Promise<ServiceAuthPayload>;
67
+ getSessionHeaders: () => Promise<Record<string, string>>;
68
+ getOrder: (orderId: string) => Promise<{
69
+ success: boolean;
70
+ order: Record<string, unknown>;
71
+ }>;
72
+ getPaymentRequest: (paymentRequestId: string) => Promise<{
73
+ success: boolean;
74
+ paymentRequest: Record<string, unknown>;
75
+ }>;
76
+ listConversations: () => Promise<{
77
+ success: boolean;
78
+ conversations: unknown[];
79
+ }>;
80
+ getConversationMessages: (conversationId: string) => Promise<{
81
+ success: boolean;
82
+ conversation: unknown;
83
+ messages: unknown[];
84
+ }>;
85
+ };
86
+ //# sourceMappingURL=servicesApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servicesApi.d.ts","sourceRoot":"","sources":["../../src/servicesApi.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,WAAW,CAAC;AAEnB;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACvC,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,wGAAwG;IACxG,MAAM,EAAE,aAAa,CAAC;IACtB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB;;;2BA6HnC,kBAAkB;oBAUzB,sBAAsB;6BAmBb,uBAAuB;qBAW/B,oBAAoB;oBASrB,mBAAmB;sBA3HnB,OAAO,CAAC,kBAAkB,CAAC;6BAYpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBAUlC,MAAM;iBAEf,OAAO;eAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;0CAIZ,MAAM;iBAEjC,OAAO;wBAAkB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;iBAShD,OAAO;uBAAiB,OAAO,EAAE;;8CAQF,MAAM;iBAErC,OAAO;sBAAgB,OAAO;kBAAY,OAAO,EAAE;;EAmG5E"}