@opendatalabs/vana-sdk 0.1.0-alpha.8eb4e46 → 0.1.0-alpha.9a32094
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/README.md +39 -32
- package/dist/index.browser.d.ts +6049 -4326
- package/dist/index.browser.js +1042 -340
- package/dist/index.browser.js.map +1 -1
- package/dist/index.node.cjs +1114 -382
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.cts +6080 -4329
- package/dist/index.node.d.ts +6080 -4329
- package/dist/index.node.js +1070 -340
- package/dist/index.node.js.map +1 -1
- package/dist/platform.browser.d.ts +69 -0
- package/dist/platform.browser.js +48 -1
- package/dist/platform.browser.js.map +1 -1
- package/dist/platform.cjs +76 -1
- package/dist/platform.cjs.map +1 -1
- package/dist/platform.js +76 -1
- package/dist/platform.js.map +1 -1
- package/dist/platform.node.cjs +76 -1
- package/dist/platform.node.cjs.map +1 -1
- package/dist/platform.node.d.cts +70 -0
- package/dist/platform.node.d.ts +70 -0
- package/dist/platform.node.js +76 -1
- package/dist/platform.node.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -116,11 +116,15 @@ const files = await vana.data.getUserFiles({
|
|
|
116
116
|
owner: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
|
|
117
117
|
});
|
|
118
118
|
|
|
119
|
-
// Upload encrypted file
|
|
120
|
-
const result = await vana.data.
|
|
121
|
-
|
|
122
|
-
schemaId: 123,
|
|
119
|
+
// Upload encrypted file with decryption permissions
|
|
120
|
+
const result = await vana.data.upload({
|
|
121
|
+
content: "Sensitive user data",
|
|
123
122
|
filename: "user-data.json",
|
|
123
|
+
schemaId: 123,
|
|
124
|
+
permissions: [{
|
|
125
|
+
account: "0xServerAddress...", // Who can decrypt
|
|
126
|
+
publicKey: "0x04ServerKey..." // Their public key
|
|
127
|
+
}]
|
|
124
128
|
});
|
|
125
129
|
```
|
|
126
130
|
|
|
@@ -220,43 +224,40 @@ try {
|
|
|
220
224
|
|
|
221
225
|
## Examples
|
|
222
226
|
|
|
223
|
-
### Complete
|
|
227
|
+
### Complete Data Sharing Flow
|
|
224
228
|
|
|
225
229
|
```typescript
|
|
226
|
-
import {
|
|
227
|
-
Vana,
|
|
228
|
-
generateEncryptionKey,
|
|
229
|
-
encryptBlobWithSignedKey,
|
|
230
|
-
} from "@opendatalabs/vana-sdk/browser";
|
|
230
|
+
import { Vana } from "@opendatalabs/vana-sdk/browser";
|
|
231
231
|
// OR for server-side applications
|
|
232
232
|
// } from "@opendatalabs/vana-sdk/node";
|
|
233
233
|
|
|
234
|
-
async function
|
|
234
|
+
async function shareDataWithServer() {
|
|
235
235
|
const vana = Vana({ walletClient });
|
|
236
236
|
|
|
237
|
-
// 1
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
// 2. Upload encrypted file
|
|
243
|
-
const uploadResult = await vana.data.uploadEncryptedFile({
|
|
244
|
-
data: encryptedData,
|
|
237
|
+
// Step 1: Upload encrypted file with decryption permissions
|
|
238
|
+
const uploadResult = await vana.data.upload({
|
|
239
|
+
content: { data: "sensitive medical records" },
|
|
240
|
+
filename: "health-data.json",
|
|
245
241
|
schemaId: 123,
|
|
246
|
-
|
|
242
|
+
permissions: [{
|
|
243
|
+
// Grant decryption access to the AI server
|
|
244
|
+
account: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
|
|
245
|
+
publicKey: "0x04abc..." // Server's public key for encryption
|
|
246
|
+
}]
|
|
247
247
|
});
|
|
248
248
|
|
|
249
|
-
//
|
|
250
|
-
const
|
|
249
|
+
// Step 2: Grant operation permissions for what the server can do
|
|
250
|
+
const permissionResult = await vana.permissions.grant({
|
|
251
251
|
grantee: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
|
|
252
|
-
|
|
252
|
+
fileIds: [BigInt(uploadResult.fileId)],
|
|
253
|
+
operation: "medical_analysis",
|
|
253
254
|
parameters: {
|
|
254
|
-
|
|
255
|
-
|
|
255
|
+
model: "medical-ai-v2",
|
|
256
|
+
analysisType: "comprehensive",
|
|
256
257
|
},
|
|
257
258
|
});
|
|
258
259
|
|
|
259
|
-
return
|
|
260
|
+
return { uploadResult, permissionResult };
|
|
260
261
|
}
|
|
261
262
|
```
|
|
262
263
|
|
|
@@ -294,13 +295,14 @@ vana.data.validateDataAgainstSchema(userData, schema);
|
|
|
294
295
|
### Permissions
|
|
295
296
|
|
|
296
297
|
```typescript
|
|
297
|
-
// Grant permission
|
|
298
|
+
// Grant operation permission
|
|
298
299
|
await vana.permissions.grant({
|
|
299
300
|
grantee: Address,
|
|
301
|
+
fileIds: bigint[],
|
|
300
302
|
operation: string,
|
|
301
303
|
parameters: object,
|
|
302
304
|
expiresAt?: number
|
|
303
|
-
}): Promise<
|
|
305
|
+
}): Promise<PermissionGrantResult>
|
|
304
306
|
|
|
305
307
|
// Revoke permission
|
|
306
308
|
await vana.permissions.revoke({
|
|
@@ -321,11 +323,16 @@ await vana.data.getUserFiles({
|
|
|
321
323
|
owner: Address
|
|
322
324
|
}): Promise<UserFile[]>
|
|
323
325
|
|
|
324
|
-
// Upload
|
|
325
|
-
await vana.data.
|
|
326
|
-
|
|
326
|
+
// Upload data with automatic encryption
|
|
327
|
+
await vana.data.upload({
|
|
328
|
+
content: string | Blob | Buffer,
|
|
329
|
+
filename?: string,
|
|
327
330
|
schemaId?: number,
|
|
328
|
-
|
|
331
|
+
permissions?: Array<{
|
|
332
|
+
account: Address, // Who can decrypt
|
|
333
|
+
publicKey: string // Their public key
|
|
334
|
+
}>,
|
|
335
|
+
encrypt?: boolean // Default: true
|
|
329
336
|
}): Promise<UploadResult>
|
|
330
337
|
|
|
331
338
|
// Validate schema
|