@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.
- package/dist/client.d.ts +3 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +61 -71
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/query-sdk/OnDB.d.ts +27 -0
- package/dist/query-sdk/OnDB.d.ts.map +1 -0
- package/dist/query-sdk/OnDB.js +191 -0
- package/dist/query-sdk/OnDB.js.map +1 -0
- package/dist/query-sdk/index.d.ts +1 -1
- package/dist/query-sdk/index.d.ts.map +1 -1
- package/dist/query-sdk/index.js +3 -3
- package/dist/query-sdk/index.js.map +1 -1
- package/dist/types.d.ts +6 -35
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -8
- package/dist/types.js.map +1 -1
- package/dist/x402/types.d.ts +1 -1
- package/dist/x402/types.d.ts.map +1 -1
- package/dist/x402/utils.js +2 -2
- package/dist/x402/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/batch.d.ts +3 -3
- package/src/batch.js +1 -1
- package/src/client.ts +73 -106
- package/src/database.d.ts +1 -1
- package/src/database.js +4 -4
- package/src/database.ts +2 -2
- package/src/index.d.ts +18 -18
- package/src/index.js +16 -16
- package/src/index.ts +7 -8
- package/src/query-sdk/{OnChainDB.ts → OnDB.ts} +1 -1
- package/src/query-sdk/README.md +8 -8
- package/src/query-sdk/index.ts +1 -1
- package/src/tests/client-requests.test.ts +3 -3
- package/src/tests/client-validation.test.ts +5 -5
- package/src/types.d.ts +6 -6
- package/src/types.js +8 -8
- package/src/types.ts +10 -46
- package/src/x402/types.ts +3 -3
- package/src/x402/utils.ts +3 -3
- 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 };
|