@onchaindb/sdk 1.0.0 → 2.0.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 (45) hide show
  1. package/dist/client.d.ts +3 -4
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +61 -71
  4. package/dist/client.js.map +1 -1
  5. package/dist/index.d.ts +6 -6
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -4
  8. package/dist/index.js.map +1 -1
  9. package/dist/query-sdk/OnDB.d.ts +27 -0
  10. package/dist/query-sdk/OnDB.d.ts.map +1 -0
  11. package/dist/query-sdk/OnDB.js +191 -0
  12. package/dist/query-sdk/OnDB.js.map +1 -0
  13. package/dist/query-sdk/index.d.ts +1 -1
  14. package/dist/query-sdk/index.d.ts.map +1 -1
  15. package/dist/query-sdk/index.js +3 -3
  16. package/dist/query-sdk/index.js.map +1 -1
  17. package/dist/types.d.ts +6 -35
  18. package/dist/types.d.ts.map +1 -1
  19. package/dist/types.js +8 -8
  20. package/dist/types.js.map +1 -1
  21. package/dist/x402/types.d.ts +1 -1
  22. package/dist/x402/types.d.ts.map +1 -1
  23. package/dist/x402/utils.js +2 -2
  24. package/dist/x402/utils.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/batch.d.ts +3 -3
  27. package/src/batch.js +1 -1
  28. package/src/client.ts +73 -106
  29. package/src/database.d.ts +1 -1
  30. package/src/database.js +4 -4
  31. package/src/database.ts +2 -2
  32. package/src/index.d.ts +18 -18
  33. package/src/index.js +16 -16
  34. package/src/index.ts +7 -8
  35. package/src/query-sdk/{OnChainDB.ts → OnDB.ts} +1 -1
  36. package/src/query-sdk/README.md +8 -8
  37. package/src/query-sdk/index.ts +1 -1
  38. package/src/tests/client-requests.test.ts +3 -3
  39. package/src/tests/client-validation.test.ts +5 -5
  40. package/src/types.d.ts +6 -6
  41. package/src/types.js +8 -8
  42. package/src/types.ts +10 -46
  43. package/src/x402/types.ts +3 -3
  44. package/src/x402/utils.ts +3 -3
  45. package/examples/blob-upload-example.ts +0 -140
@@ -1,140 +0,0 @@
1
- /**
2
- * OnChainDB SDK - Blob Upload Example
3
- *
4
- * Demonstrates how to upload binary files (images, videos, documents)
5
- * to OnChainDB with the x402 payment protocol.
6
- *
7
- * Features:
8
- * - Get pricing quote for blob upload
9
- * - Upload blob with custom metadata
10
- * - Track upload progress with ticket_id
11
- * - Retrieve uploaded blob
12
- * - Query blob metadata
13
- */
14
-
15
- import { createClient } from '../src';
16
-
17
- const config = {
18
- endpoint: 'http://localhost:9092',
19
- apiKey: 'your_api_key',
20
- appId: 'my_app'
21
- };
22
-
23
- const BROKER_ADDRESS = 'celestia1broker...';
24
-
25
- async function uploadProfilePhoto() {
26
- console.log('OnChainDB Blob Upload Example\n');
27
-
28
- const client = createClient(config);
29
-
30
- // In a real app, get file from input:
31
- // const file = document.querySelector('input[type="file"]').files[0];
32
-
33
- // For this example, create a mock blob
34
- const mockBlob = new Blob(['mock image data'], { type: 'image/jpeg' });
35
- const fileSizeKB = Math.ceil(mockBlob.size / 1024);
36
-
37
- // Step 1: Get pricing quote
38
- console.log('1. Getting pricing quote...');
39
- const quote = await client.getPricingQuote({
40
- app_id: config.appId,
41
- operation_type: 'write',
42
- size_kb: fileSizeKB,
43
- collection: 'avatars'
44
- });
45
-
46
- const costInUtia = Math.ceil(quote.total_cost * 1_000_000);
47
- console.log(` Size: ${fileSizeKB}KB`);
48
- console.log(` Cost: ${quote.total_cost} TIA (${costInUtia} utia)`);
49
- console.log();
50
-
51
- // Step 2: Create payment transaction
52
- // In a real app with Keplr:
53
- // const result = await wallet.signAndBroadcast(
54
- // BROKER_ADDRESS,
55
- // `${costInUtia}utia`,
56
- // 'Image upload'
57
- // );
58
- // const paymentTxHash = result.transactionHash;
59
-
60
- const paymentTxHash = 'mock_payment_tx_hash';
61
- const userAddress = 'celestia1user...';
62
-
63
- console.log('2. Payment transaction created');
64
- console.log(` TX Hash: ${paymentTxHash}`);
65
- console.log();
66
-
67
- // Step 3: Upload blob with metadata
68
- console.log('3. Uploading blob...');
69
- const uploadResult = await client.uploadBlob({
70
- collection: 'avatars',
71
- blob: mockBlob,
72
- metadata: {
73
- user_address: userAddress,
74
- description: 'Profile photo',
75
- is_primary: true
76
- },
77
- payment_tx_hash: paymentTxHash,
78
- user_address: userAddress,
79
- broker_address: BROKER_ADDRESS,
80
- amount_utia: costInUtia
81
- });
82
-
83
- console.log(' Blob upload initiated!');
84
- console.log(` Blob ID: ${uploadResult.blob_id}`);
85
- console.log(` Ticket ID: ${uploadResult.ticket_id}`);
86
- console.log();
87
-
88
- // Step 4: Wait for upload completion
89
- console.log('4. Waiting for upload to complete...');
90
- const task = await client.waitForTaskCompletion(uploadResult.ticket_id);
91
-
92
- console.log(` Status: ${task.status}`);
93
- if (task.status === 'Completed') {
94
- console.log(` TX Hash: ${task.transaction_hash}`);
95
- console.log(` Block Height: ${task.block_height}`);
96
- }
97
- console.log();
98
-
99
- // Step 5: Query blob metadata
100
- console.log('5. Querying blob metadata...');
101
- const blobs = await client.queryBlobMetadata('avatars', {
102
- user_address: userAddress
103
- });
104
-
105
- console.log(` Found ${blobs.length} blobs for user`);
106
- for (const blob of blobs) {
107
- console.log(` - Blob ID: ${blob.blob_id}`);
108
- console.log(` Type: ${blob.content_type}`);
109
- console.log(` Size: ${blob.size_bytes} bytes`);
110
- }
111
- console.log();
112
-
113
- // Step 6: Retrieve blob
114
- console.log('6. Retrieving blob...');
115
- const retrievedBlob = await client.retrieveBlob({
116
- collection: 'avatars',
117
- blob_id: uploadResult.blob_id
118
- });
119
-
120
- console.log(' Blob retrieved successfully!');
121
- console.log(` Size: ${retrievedBlob instanceof Blob ? retrievedBlob.size : retrievedBlob.length} bytes`);
122
-
123
- // In browser, display the image:
124
- // const imageUrl = URL.createObjectURL(retrievedBlob);
125
- // document.querySelector('img').src = imageUrl;
126
-
127
- console.log('\nBlob upload example complete!');
128
- }
129
-
130
- // Run example
131
- if (require.main === module) {
132
- uploadProfilePhoto()
133
- .then(() => process.exit(0))
134
- .catch((error) => {
135
- console.error('Error:', error.message);
136
- process.exit(1);
137
- });
138
- }
139
-
140
- export { uploadProfilePhoto };