@opendatalabs/vana-sdk 0.1.0-alpha.2dd2718 → 0.1.0-alpha.2e569eb
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/controllers/data.cjs +6 -0
- package/dist/controllers/data.cjs.map +1 -1
- package/dist/controllers/data.d.ts +14 -7
- package/dist/controllers/data.js +6 -0
- package/dist/controllers/data.js.map +1 -1
- package/dist/controllers/permissions.cjs +70 -11
- package/dist/controllers/permissions.cjs.map +1 -1
- package/dist/controllers/permissions.d.ts +18 -0
- package/dist/controllers/permissions.js +70 -11
- package/dist/controllers/permissions.js.map +1 -1
- package/dist/controllers/schemas.cjs +69 -0
- package/dist/controllers/schemas.cjs.map +1 -1
- package/dist/controllers/schemas.d.ts +39 -0
- package/dist/controllers/schemas.js +69 -0
- package/dist/controllers/schemas.js.map +1 -1
- package/dist/controllers/server.cjs +251 -42
- package/dist/controllers/server.cjs.map +1 -1
- package/dist/controllers/server.d.ts +111 -14
- package/dist/controllers/server.js +251 -42
- package/dist/controllers/server.js.map +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js.map +1 -1
- package/dist/generated/server/server-exports.cjs +22 -0
- package/dist/generated/server/server-exports.cjs.map +1 -1
- package/dist/generated/server/server-exports.d.ts +27 -10
- package/dist/generated/server/server-exports.js +17 -0
- package/dist/generated/server/server-exports.js.map +1 -1
- package/dist/generated/server/server.cjs.map +1 -1
- package/dist/generated/server/server.d.ts +771 -402
- package/dist/server/relayerHandler.cjs.map +1 -1
- package/dist/server/relayerHandler.d.ts +1 -1
- package/dist/server/relayerHandler.js.map +1 -1
- package/dist/storage/index.cjs +3 -0
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/providers/dropbox.cjs +237 -0
- package/dist/storage/providers/dropbox.cjs.map +1 -0
- package/dist/storage/providers/dropbox.d.ts +39 -0
- package/dist/storage/providers/dropbox.js +215 -0
- package/dist/storage/providers/dropbox.js.map +1 -0
- package/dist/storage/providers/dropbox.test.d.ts +1 -0
- package/dist/tests/data-upload-owner-validation.test.d.ts +1 -0
- package/dist/types/controller-context.cjs.map +1 -1
- package/dist/types/controller-context.d.ts +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/operations.cjs +3 -15
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.ts +16 -42
- package/dist/types/operations.js +2 -13
- package/dist/types/operations.js.map +1 -1
- package/dist/types/permissions.cjs.map +1 -1
- package/dist/types/permissions.d.ts +2 -0
- package/dist/types/personal.cjs.map +1 -1
- package/dist/types/personal.d.ts +19 -0
- package/dist/utils/__tests__/chainQuery.test.d.ts +1 -0
- package/dist/utils/grantFiles.cjs +4 -1
- package/dist/utils/grantFiles.cjs.map +1 -1
- package/dist/utils/grantFiles.js +4 -1
- package/dist/utils/grantFiles.js.map +1 -1
- package/package.json +1 -1
|
@@ -85,6 +85,12 @@ export declare class DataController extends BaseController {
|
|
|
85
85
|
* - File permissions (here): Decryption access only
|
|
86
86
|
* - Operation permissions: Use `vana.permissions.grant()` separately
|
|
87
87
|
*
|
|
88
|
+
* **Owner/Encryption Constraint:**
|
|
89
|
+
* When encryption is enabled (default), the `owner` parameter must match
|
|
90
|
+
* the connected wallet address. This ensures only the wallet that performs
|
|
91
|
+
* encryption can decrypt the file. For delegation scenarios where the owner
|
|
92
|
+
* differs from the connected wallet, set `encrypt: false`.
|
|
93
|
+
*
|
|
88
94
|
* @param params - Upload configuration object
|
|
89
95
|
* @param params.content - Data to upload (string, object, or Blob)
|
|
90
96
|
* @param params.filename - Name for the uploaded file
|
|
@@ -92,13 +98,17 @@ export declare class DataController extends BaseController {
|
|
|
92
98
|
* Each requires `account` and `publicKey` for encryption.
|
|
93
99
|
* @param params.schemaId - Schema for validation.
|
|
94
100
|
* Obtain via `vana.schemas.list()`.
|
|
95
|
-
* @param params.owner - Owner address for
|
|
101
|
+
* @param params.owner - Owner address for blockchain registration.
|
|
102
|
+
* Must match connected wallet when encryption is enabled.
|
|
103
|
+
* For delegation scenarios, disable encryption with `encrypt: false`.
|
|
96
104
|
* Defaults to connected wallet address.
|
|
97
105
|
* @param params.encrypt - Enable encryption (default: `true`)
|
|
98
106
|
* @param params.providerName - Storage provider override
|
|
99
107
|
*
|
|
100
108
|
* @returns Upload result with file ID, URL, and transaction hash
|
|
101
109
|
*
|
|
110
|
+
* @throws {InvalidConfigurationError} When encryption is enabled and owner differs from wallet.
|
|
111
|
+
* Set `encrypt: false` for delegation scenarios, or omit `owner` to use connected wallet.
|
|
102
112
|
* @throws {Error} Storage not configured.
|
|
103
113
|
* Configure storage providers in `VanaConfig`.
|
|
104
114
|
* @throws {Error} No wallet addresses available.
|
|
@@ -148,15 +158,12 @@ export declare class DataController extends BaseController {
|
|
|
148
158
|
* encrypt: false
|
|
149
159
|
* } as const); // 'as const' ensures TypeScript infers encrypt: false literally
|
|
150
160
|
*
|
|
151
|
-
* // Upload on behalf of another user (delegation)
|
|
161
|
+
* // Upload on behalf of another user (delegation without encryption)
|
|
152
162
|
* const result = await vana.data.upload({
|
|
153
163
|
* content: "User's data",
|
|
154
164
|
* filename: "delegated.txt",
|
|
155
|
-
* owner: "0x5678...",
|
|
156
|
-
*
|
|
157
|
-
* account: "0x1234...", // Address that can decrypt
|
|
158
|
-
* publicKey: "0x04..." // Their public key for encryption
|
|
159
|
-
* }]
|
|
165
|
+
* owner: "0x5678...", // Different from connected wallet
|
|
166
|
+
* encrypt: false // Required when owner differs from wallet
|
|
160
167
|
* });
|
|
161
168
|
* ```
|
|
162
169
|
*/
|
package/dist/controllers/data.js
CHANGED
|
@@ -3,6 +3,7 @@ import { PollingManager } from "../core/pollingManager";
|
|
|
3
3
|
import { BaseController } from "./base";
|
|
4
4
|
import { getContractAddress } from "../config/addresses";
|
|
5
5
|
import { getAbi } from "../generated/abi";
|
|
6
|
+
import { InvalidConfigurationError } from "../errors";
|
|
6
7
|
import {
|
|
7
8
|
GetUserFilesPaginatedDocument,
|
|
8
9
|
GetFileProofsDocument,
|
|
@@ -54,6 +55,11 @@ class DataController extends BaseController {
|
|
|
54
55
|
owner,
|
|
55
56
|
schemaValidation = "strict"
|
|
56
57
|
} = params;
|
|
58
|
+
if (encrypt && owner && owner.toLowerCase() !== this.context.userAddress.toLowerCase()) {
|
|
59
|
+
throw new InvalidConfigurationError(
|
|
60
|
+
"The 'owner' parameter cannot be different from the connected wallet's address when encryption is enabled. This would create an un-decryptable file."
|
|
61
|
+
);
|
|
62
|
+
}
|
|
57
63
|
try {
|
|
58
64
|
let isValid = true;
|
|
59
65
|
let validationErrors = [];
|