@opendatalabs/vana-sdk 0.1.0-alpha.2b6935d → 0.1.0-alpha.2e77fcc

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 (171) hide show
  1. package/dist/browser.cjs.map +1 -1
  2. package/dist/browser.d.ts +33 -1
  3. package/dist/browser.js.map +1 -1
  4. package/dist/chains/index.cjs.map +1 -1
  5. package/dist/chains/index.d.ts +30 -1
  6. package/dist/chains/index.js.map +1 -1
  7. package/dist/config/chains.cjs.map +1 -1
  8. package/dist/config/chains.d.ts +99 -0
  9. package/dist/config/chains.js.map +1 -1
  10. package/dist/contracts/contractController.cjs.map +1 -1
  11. package/dist/contracts/contractController.d.ts +66 -10
  12. package/dist/contracts/contractController.js.map +1 -1
  13. package/dist/controllers/base.cjs +33 -0
  14. package/dist/controllers/base.cjs.map +1 -1
  15. package/dist/controllers/base.d.ts +10 -0
  16. package/dist/controllers/base.js +33 -0
  17. package/dist/controllers/base.js.map +1 -1
  18. package/dist/controllers/data.cjs +162 -133
  19. package/dist/controllers/data.cjs.map +1 -1
  20. package/dist/controllers/data.d.ts +222 -184
  21. package/dist/controllers/data.js +162 -133
  22. package/dist/controllers/data.js.map +1 -1
  23. package/dist/controllers/permissions.cjs +208 -60
  24. package/dist/controllers/permissions.cjs.map +1 -1
  25. package/dist/controllers/permissions.d.ts +75 -45
  26. package/dist/controllers/permissions.js +208 -60
  27. package/dist/controllers/permissions.js.map +1 -1
  28. package/dist/controllers/protocol.cjs.map +1 -1
  29. package/dist/controllers/protocol.d.ts +27 -28
  30. package/dist/controllers/protocol.js.map +1 -1
  31. package/dist/controllers/schemas.cjs +23 -21
  32. package/dist/controllers/schemas.cjs.map +1 -1
  33. package/dist/controllers/schemas.d.ts +47 -40
  34. package/dist/controllers/schemas.js +23 -21
  35. package/dist/controllers/schemas.js.map +1 -1
  36. package/dist/controllers/server.cjs +17 -15
  37. package/dist/controllers/server.cjs.map +1 -1
  38. package/dist/controllers/server.d.ts +46 -38
  39. package/dist/controllers/server.js +17 -15
  40. package/dist/controllers/server.js.map +1 -1
  41. package/dist/core/apiClient.cjs +53 -3
  42. package/dist/core/apiClient.cjs.map +1 -1
  43. package/dist/core/apiClient.d.ts +132 -7
  44. package/dist/core/apiClient.js +53 -3
  45. package/dist/core/apiClient.js.map +1 -1
  46. package/dist/core/generics.cjs +30 -3
  47. package/dist/core/generics.cjs.map +1 -1
  48. package/dist/core/generics.d.ts +95 -6
  49. package/dist/core/generics.js +30 -3
  50. package/dist/core/generics.js.map +1 -1
  51. package/dist/core.cjs +4 -1
  52. package/dist/core.cjs.map +1 -1
  53. package/dist/core.d.ts +2 -1
  54. package/dist/core.js +4 -1
  55. package/dist/core.js.map +1 -1
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/index.node.cjs +2 -3
  59. package/dist/index.node.cjs.map +1 -1
  60. package/dist/index.node.d.ts +33 -13
  61. package/dist/index.node.js +2 -2
  62. package/dist/index.node.js.map +1 -1
  63. package/dist/node.cjs.map +1 -1
  64. package/dist/node.d.ts +39 -1
  65. package/dist/node.js.map +1 -1
  66. package/dist/platform/browser.cjs +160 -2
  67. package/dist/platform/browser.cjs.map +1 -1
  68. package/dist/platform/browser.d.ts +232 -12
  69. package/dist/platform/browser.js +160 -2
  70. package/dist/platform/browser.js.map +1 -1
  71. package/dist/platform/interface.cjs.map +1 -1
  72. package/dist/platform/interface.d.ts +283 -90
  73. package/dist/platform/node.cjs +163 -2
  74. package/dist/platform/node.cjs.map +1 -1
  75. package/dist/platform/node.d.ts +69 -6
  76. package/dist/platform/node.js +163 -2
  77. package/dist/platform/node.js.map +1 -1
  78. package/dist/server/relayerHandler.cjs +136 -98
  79. package/dist/server/relayerHandler.cjs.map +1 -1
  80. package/dist/server/relayerHandler.d.ts +3 -2
  81. package/dist/server/relayerHandler.js +135 -96
  82. package/dist/server/relayerHandler.js.map +1 -1
  83. package/dist/storage/manager.cjs +108 -25
  84. package/dist/storage/manager.cjs.map +1 -1
  85. package/dist/storage/manager.d.ts +119 -25
  86. package/dist/storage/manager.js +108 -25
  87. package/dist/storage/manager.js.map +1 -1
  88. package/dist/storage/providers/callback-storage.cjs +86 -15
  89. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  90. package/dist/storage/providers/callback-storage.d.ts +109 -20
  91. package/dist/storage/providers/callback-storage.js +86 -15
  92. package/dist/storage/providers/callback-storage.js.map +1 -1
  93. package/dist/storage/providers/pinata.cjs.map +1 -1
  94. package/dist/storage/providers/pinata.d.ts +12 -14
  95. package/dist/storage/providers/pinata.js.map +1 -1
  96. package/dist/types/blockchain.cjs.map +1 -1
  97. package/dist/types/blockchain.d.ts +39 -11
  98. package/dist/types/chains.cjs.map +1 -1
  99. package/dist/types/chains.d.ts +74 -7
  100. package/dist/types/chains.js.map +1 -1
  101. package/dist/types/config.cjs.map +1 -1
  102. package/dist/types/config.d.ts +38 -4
  103. package/dist/types/config.js.map +1 -1
  104. package/dist/types/contracts.cjs.map +1 -1
  105. package/dist/types/contracts.d.ts +71 -7
  106. package/dist/types/controller-context.cjs.map +1 -1
  107. package/dist/types/controller-context.d.ts +3 -1
  108. package/dist/types/data.cjs.map +1 -1
  109. package/dist/types/data.d.ts +4 -6
  110. package/dist/types/generics.cjs.map +1 -1
  111. package/dist/types/generics.d.ts +81 -10
  112. package/dist/types/index.cjs.map +1 -1
  113. package/dist/types/index.d.ts +28 -2
  114. package/dist/types/index.js.map +1 -1
  115. package/dist/types/operations.cjs.map +1 -1
  116. package/dist/types/operations.d.ts +178 -15
  117. package/dist/types/operations.js.map +1 -1
  118. package/dist/types/permissions.cjs.map +1 -1
  119. package/dist/types/permissions.d.ts +15 -20
  120. package/dist/types/personal.cjs.map +1 -1
  121. package/dist/types/personal.d.ts +131 -14
  122. package/dist/types/relayer.cjs.map +1 -1
  123. package/dist/types/relayer.d.ts +114 -18
  124. package/dist/types/storage.cjs.map +1 -1
  125. package/dist/types/storage.d.ts +9 -21
  126. package/dist/types/storage.js.map +1 -1
  127. package/dist/types/utils.cjs.map +1 -1
  128. package/dist/types/utils.d.ts +5 -1
  129. package/dist/utils/grantFiles.cjs.map +1 -1
  130. package/dist/utils/grantFiles.d.ts +10 -20
  131. package/dist/utils/grantFiles.js.map +1 -1
  132. package/dist/utils/grantValidation.cjs.map +1 -1
  133. package/dist/utils/grantValidation.d.ts +95 -16
  134. package/dist/utils/grantValidation.js.map +1 -1
  135. package/dist/utils/grants.cjs.map +1 -1
  136. package/dist/utils/grants.d.ts +93 -12
  137. package/dist/utils/grants.js.map +1 -1
  138. package/dist/utils/ipfs.cjs +2 -4
  139. package/dist/utils/ipfs.cjs.map +1 -1
  140. package/dist/utils/ipfs.d.ts +1 -1
  141. package/dist/utils/ipfs.js +2 -4
  142. package/dist/utils/ipfs.js.map +1 -1
  143. package/dist/utils/lazy-import.cjs.map +1 -1
  144. package/dist/utils/lazy-import.d.ts +32 -7
  145. package/dist/utils/lazy-import.js.map +1 -1
  146. package/dist/utils/signatureCache.cjs +8 -2
  147. package/dist/utils/signatureCache.cjs.map +1 -1
  148. package/dist/utils/signatureCache.d.ts +49 -8
  149. package/dist/utils/signatureCache.js +8 -2
  150. package/dist/utils/signatureCache.js.map +1 -1
  151. package/dist/utils/transactionHelpers.cjs.map +1 -1
  152. package/dist/utils/transactionHelpers.d.ts +12 -12
  153. package/dist/utils/transactionHelpers.js.map +1 -1
  154. package/dist/utils/typedDataConverter.cjs.map +1 -1
  155. package/dist/utils/typedDataConverter.d.ts +39 -3
  156. package/dist/utils/typedDataConverter.js.map +1 -1
  157. package/dist/utils/urlResolver.cjs +7 -0
  158. package/dist/utils/urlResolver.cjs.map +1 -1
  159. package/dist/utils/urlResolver.d.ts +22 -4
  160. package/dist/utils/urlResolver.js +7 -0
  161. package/dist/utils/urlResolver.js.map +1 -1
  162. package/dist/utils/wallet.cjs.map +1 -1
  163. package/dist/utils/wallet.d.ts +78 -16
  164. package/dist/utils/wallet.js.map +1 -1
  165. package/package.json +3 -1
  166. package/dist/server/handler.cjs +0 -103
  167. package/dist/server/handler.cjs.map +0 -1
  168. package/dist/server/handler.d.ts +0 -95
  169. package/dist/server/handler.js +0 -79
  170. package/dist/server/handler.js.map +0 -1
  171. /package/dist/tests/{server-handler.test.d.ts → permissions-transaction-options.test.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import type { Address, Hash } from "viem";
2
+ import type { TransactionOptions, TransactionResult } from "../types/operations";
2
3
  import type { GrantPermissionParams, RevokePermissionParams, PermissionGrantTypedData, GenericTypedData, OnChainPermissionGrant, GetUserPermissionsOptions, AddAndTrustServerParams, TrustServerParams, UntrustServerParams, AddAndTrustServerTypedData, TrustServerTypedData, TrustedServerInfo, PaginatedTrustedServers, TrustedServerQueryOptions, BatchServerInfoResult, ServerTrustStatus, GrantFile, Grantee, GranteeInfo, RegisterGranteeParams, GranteeQueryOptions, PaginatedGrantees, ServerInfo, ServerFilesAndPermissionParams, ServerFilesAndPermissionTypedData } from "../types/index";
3
4
  import type { PermissionGrantResult, PermissionRevokeResult, ServerTrustResult } from "../types/transactionResults";
4
- import type { TransactionResult } from "../types/operations";
5
5
  import type { PermissionInfo } from "../types/permissions";
6
6
  /**
7
7
  * Provides shared configuration and services for all SDK controllers.
@@ -18,50 +18,52 @@ import type { ControllerContext } from "../types/controller-context";
18
18
  import { BaseController } from "./base";
19
19
  export type { ControllerContext };
20
20
  /**
21
- * Manages gasless data access permissions and trusted server registry operations.
21
+ * Manages data access permissions and trusted server operations with gasless transaction support.
22
22
  *
23
23
  * @remarks
24
- * This controller enables users to grant applications access to their data without
25
- * paying gas fees. It handles the complete EIP-712 permission flow including signature
26
- * creation, IPFS storage of permission details, and gasless transaction submission.
27
- * The controller also manages trusted servers that can process user data and provides
28
- * methods for revoking permissions when access is no longer needed.
24
+ * Enables applications to access user data through EIP-712 signatures, eliminating gas fees
25
+ * for users. Handles permission lifecycle from creation through revocation, plus trusted
26
+ * server management for data processing operations.
29
27
  *
30
- * **Permission Architecture:**
31
- * Permissions use dual storage: detailed parameters stored on IPFS, references stored on blockchain.
32
- * This enables complex permissions while maintaining minimal on-chain data.
28
+ * **Architecture:**
29
+ * Permissions use dual storage: complex parameters on IPFS, references on blockchain.
30
+ * This minimizes on-chain data while maintaining decentralization and auditability.
33
31
  *
34
32
  * **Method Selection:**
35
- * - `grant()` creates new permissions with automatic IPFS upload and blockchain registration
36
- * - `prepareGrant()` allows preview before signing for interactive applications
37
- * - `revoke()` removes permissions by ID, supporting both gasless and direct transactions
38
- * - `getUserPermissionGrantsOnChain()` queries existing permissions efficiently
39
- * - `trustServer()` and `untrustServer()` manage server access for data processing
33
+ * - `grant()` - Create permissions with automatic IPFS upload and blockchain registration
34
+ * - `prepareGrant()` - Preview permission structure before signing
35
+ * - `revoke()` - Remove permissions by ID (gasless or direct)
36
+ * - `getUserPermissionGrantsOnChain()` - Query active permissions
37
+ * - `trustServer()`/`untrustServer()` - Manage server access
38
+ *
39
+ * **Gasless Support:**
40
+ * All permission methods support both gasless (via relayer) and direct transactions.
41
+ * Configure relayer callbacks in Vana initialization for gasless operations.
40
42
  *
41
- * **Transaction Types:**
42
- * Methods with gasless support: `grant()`, `revoke()`, `trustServer()`, `untrustServer()`
43
- * Methods requiring direct transactions: none (all support both gasless and direct)
44
43
  * @example
45
44
  * ```typescript
46
- * // Grant permission for an app to access your data
47
- * const txHash = await vana.permissions.grant({
45
+ * // Grant data access permission
46
+ * const result = await vana.permissions.grant({
48
47
  * grantee: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36",
49
48
  * operation: "llm_inference",
50
- * files: [1, 2, 3],
51
- * parameters: { model: "gpt-4", maxTokens: 1000 },
49
+ * fileIds: [1, 2, 3],
50
+ * parameters: { model: "gpt-4", maxTokens: 1000 }
52
51
  * });
52
+ * console.log(`Permission ${result.permissionId} granted`);
53
53
  *
54
- * // Trust a server for data processing
54
+ * // Trust server for processing
55
55
  * await vana.permissions.trustServer({
56
- * serverId: "0x123...",
57
- * serverUrl: "https://personal-server.vana.org",
56
+ * serverAddress: "0x123...",
57
+ * serverUrl: "https://personal-server.vana.org"
58
58
  * });
59
59
  *
60
- * // Query current permissions
60
+ * // Query active permissions
61
61
  * const permissions = await vana.permissions.getUserPermissionGrantsOnChain();
62
+ * permissions.forEach(p => console.log(`Permission ${p.id}: ${p.grantee}`));
62
63
  * ```
64
+ *
63
65
  * @category Permissions
64
- * @see {@link https://docs.vana.com/developer/permissions | Vana Permissions System} for conceptual overview
66
+ * @see For conceptual overview, visit {@link https://docs.vana.org/docs/permissions}
65
67
  */
66
68
  export declare class PermissionsController extends BaseController {
67
69
  constructor(context: ControllerContext);
@@ -99,7 +101,7 @@ export declare class PermissionsController extends BaseController {
99
101
  * await vana.permissions.revoke({ permissionId: result.permissionId });
100
102
  * ```
101
103
  */
102
- grant(params: GrantPermissionParams): Promise<PermissionGrantResult>;
104
+ grant(params: GrantPermissionParams, options?: TransactionOptions): Promise<PermissionGrantResult>;
103
105
  /**
104
106
  * Submits a permission grant transaction and returns a handle for flexible result access.
105
107
  *
@@ -125,7 +127,7 @@ export declare class PermissionsController extends BaseController {
125
127
  * console.log(`Permission ID: ${eventData.permissionId}`);
126
128
  * ```
127
129
  */
128
- submitPermissionGrant(params: GrantPermissionParams): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
130
+ submitPermissionGrant(params: GrantPermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
129
131
  /**
130
132
  * Prepares a permission grant with preview before signing.
131
133
  *
@@ -151,7 +153,7 @@ export declare class PermissionsController extends BaseController {
151
153
  * const transactionHash = await confirm();
152
154
  * ```
153
155
  */
154
- prepareGrant(params: GrantPermissionParams): Promise<{
156
+ prepareGrant(params: GrantPermissionParams, options?: TransactionOptions): Promise<{
155
157
  preview: GrantFile;
156
158
  confirm: () => Promise<PermissionGrantResult>;
157
159
  }>;
@@ -223,7 +225,7 @@ export declare class PermissionsController extends BaseController {
223
225
  * );
224
226
  * ```
225
227
  */
226
- submitSignedGrant(typedData: PermissionGrantTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
228
+ submitSignedGrant(typedData: PermissionGrantTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
227
229
  /**
228
230
  * Submits an already-signed trust server transaction to the blockchain.
229
231
  *
@@ -245,7 +247,7 @@ export declare class PermissionsController extends BaseController {
245
247
  * const result = await txHandle.waitForEvents();
246
248
  * ```
247
249
  */
248
- submitSignedTrustServer(typedData: TrustServerTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityServers", "trustServerWithSignature">>;
250
+ submitSignedTrustServer(typedData: TrustServerTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "trustServerWithSignature">>;
249
251
  /**
250
252
  * Submits an already-signed add and trust server transaction to the blockchain.
251
253
  *
@@ -267,7 +269,7 @@ export declare class PermissionsController extends BaseController {
267
269
  * const result = await txHandle.waitForEvents();
268
270
  * ```
269
271
  */
270
- submitSignedAddAndTrustServer(typedData: AddAndTrustServerTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityServers", "addAndTrustServerWithSignature">>;
272
+ submitSignedAddAndTrustServer(typedData: AddAndTrustServerTypedData, signature: Hash, _options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "addAndTrustServerWithSignature">>;
271
273
  /**
272
274
  * Internal method to submit a signed grant and wait for events.
273
275
  *
@@ -286,6 +288,15 @@ export declare class PermissionsController extends BaseController {
286
288
  * @returns Promise resolving to PermissionGrantResult with parsed events
287
289
  */
288
290
  private confirmGrantInternalWithEvents;
291
+ /**
292
+ * Polls the relayer for confirmation of a pending operation.
293
+ *
294
+ * @param operationId - The operation ID to poll
295
+ * @returns Promise resolving to the confirmed hash
296
+ * @throws {Error} When the operation fails or times out
297
+ * @internal
298
+ */
299
+ private pollRelayerForConfirmation;
289
300
  /**
290
301
  * Submits an already-signed permission revoke transaction to the blockchain.
291
302
  *
@@ -307,7 +318,7 @@ export declare class PermissionsController extends BaseController {
307
318
  * const result = await txHandle.waitForEvents();
308
319
  * ```
309
320
  */
310
- submitSignedRevoke(typedData: GenericTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermissionWithSignature">>;
321
+ submitSignedRevoke(typedData: GenericTypedData, signature: Hash, _options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermissionWithSignature">>;
311
322
  /**
312
323
  * Submits an already-signed untrust server transaction to the blockchain.
313
324
  *
@@ -329,7 +340,7 @@ export declare class PermissionsController extends BaseController {
329
340
  * const result = await txHandle.waitForEvents();
330
341
  * ```
331
342
  */
332
- submitSignedUntrustServer(typedData: GenericTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityServers", "untrustServerWithSignature">>;
343
+ submitSignedUntrustServer(typedData: GenericTypedData, signature: Hash, _options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "untrustServerWithSignature">>;
333
344
  /**
334
345
  * Submits a signed transaction directly to the blockchain.
335
346
  *
@@ -375,6 +386,7 @@ export declare class PermissionsController extends BaseController {
375
386
  * Use this when you want to handle transaction confirmation and event parsing separately.
376
387
  *
377
388
  * @param params - Parameters for revoking the permission
389
+ * @param options - Optional transaction options for gas parameters and timeout
378
390
  * @returns Promise resolving to the transaction hash when successfully submitted
379
391
  * @throws {BlockchainError} When revocation transaction fails
380
392
  * @throws {UserRejectedRequestError} When user rejects the transaction
@@ -387,7 +399,7 @@ export declare class PermissionsController extends BaseController {
387
399
  * console.log(`Revocation submitted: ${txHash}`);
388
400
  * ```
389
401
  */
390
- submitPermissionRevoke(params: RevokePermissionParams): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
402
+ submitPermissionRevoke(params: RevokePermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
391
403
  /**
392
404
  * Revokes a permission with a signature for gasless transactions.
393
405
  *
@@ -636,6 +648,7 @@ export declare class PermissionsController extends BaseController {
636
648
  *
637
649
  * @param params - Parameters for untrusting the server
638
650
  * @param params.serverId - The numeric ID of the server to untrust
651
+ * @param options - Optional transaction options for gas parameters and timeout
639
652
  * @returns Promise resolving to transaction hash
640
653
  * @throws {Error} When wallet account is not available
641
654
  * @throws {NonceError} When retrieving user nonce fails
@@ -656,7 +669,7 @@ export declare class PermissionsController extends BaseController {
656
669
  * console.log('Still trusting servers:', trustedServers);
657
670
  * ```
658
671
  */
659
- submitUntrustServer(params: UntrustServerParams): Promise<TransactionResult<"DataPortabilityServers", "untrustServer">>;
672
+ submitUntrustServer(params: UntrustServerParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "untrustServer">>;
660
673
  /**
661
674
  * Untrusts a server using a signature (gasless transaction).
662
675
  *
@@ -840,6 +853,7 @@ export declare class PermissionsController extends BaseController {
840
853
  * @param params.owner - The Ethereum address that will own this grantee registration
841
854
  * @param params.granteeAddress - The Ethereum address of the grantee (application)
842
855
  * @param params.publicKey - The public key used for data encryption/decryption (hex string)
856
+ * @param options - Optional transaction options for gas parameters and timeout
843
857
  * @returns Promise resolving to the transaction hash
844
858
  * @throws {BlockchainError} When the grantee registration transaction fails
845
859
  * @throws {UserRejectedRequestError} When user rejects the transaction
@@ -855,7 +869,7 @@ export declare class PermissionsController extends BaseController {
855
869
  * console.log(`Grantee registered in transaction: ${txHash}`);
856
870
  * ```
857
871
  */
858
- submitRegisterGrantee(params: RegisterGranteeParams): Promise<TransactionResult<"DataPortabilityGrantees", "registerGrantee">>;
872
+ submitRegisterGrantee(params: RegisterGranteeParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityGrantees", "registerGrantee">>;
859
873
  /**
860
874
  * Retrieves all registered grantees from the DataPortabilityGrantees contract.
861
875
  *
@@ -1123,9 +1137,10 @@ export declare class PermissionsController extends BaseController {
1123
1137
  *
1124
1138
  * @param serverId - Server ID to update
1125
1139
  * @param url - New URL for the server
1140
+ * @param options - Optional transaction options for gas parameters and timeout
1126
1141
  * @returns Promise resolving to transaction hash
1127
1142
  */
1128
- submitUpdateServer(serverId: bigint, url: string): Promise<TransactionResult<"DataPortabilityServers", "updateServer">>;
1143
+ submitUpdateServer(serverId: bigint, url: string, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "updateServer">>;
1129
1144
  /**
1130
1145
  * Get all permission IDs for a user
1131
1146
  *
@@ -1177,7 +1192,7 @@ export declare class PermissionsController extends BaseController {
1177
1192
  * @throws {BlockchainError} When permission addition fails
1178
1193
  * @throws {NetworkError} When network communication fails
1179
1194
  */
1180
- submitSignedAddPermission(typedData: GenericTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
1195
+ submitSignedAddPermission(typedData: GenericTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
1181
1196
  /**
1182
1197
  * Submits server files and permissions with signature to the blockchain, supporting schema validation and gasless transactions.
1183
1198
  *
@@ -1198,6 +1213,9 @@ export declare class PermissionsController extends BaseController {
1198
1213
  * @param params.serverPublicKey - Server's public key for encryption.
1199
1214
  * Obtain via `vana.server.getIdentity(userAddress).publicKey`.
1200
1215
  * @param params.filePermissions - Nested array of permissions for each file
1216
+ * @param options - Optional transaction options for gas parameters and timeout.
1217
+ * Note: These options are only applied for direct blockchain transactions.
1218
+ * When using relayer callbacks (gasless transactions), these options are ignored.
1201
1219
  * @returns TransactionResult with immediate hash access and optional event data
1202
1220
  * @throws {Error} When schemaIds array length doesn't match fileUrls array length
1203
1221
  * @throws {SchemaValidationError} When file data doesn't match the specified schema.
@@ -1211,6 +1229,7 @@ export declare class PermissionsController extends BaseController {
1211
1229
  *
1212
1230
  * @example
1213
1231
  * ```typescript
1232
+ * // Submit with custom gas parameters and timeout
1214
1233
  * const result = await vana.permissions.submitAddServerFilesAndPermissions({
1215
1234
  * granteeId: BigInt(1),
1216
1235
  * grant: "ipfs://QmXxx...",
@@ -1223,12 +1242,19 @@ export declare class PermissionsController extends BaseController {
1223
1242
  * account: "0x742d35Cc6634C0532925a3b844Bc9e7595f0b0Bb",
1224
1243
  * key: encryptedKey
1225
1244
  * }]]
1245
+ * }, {
1246
+ * maxFeePerGas: 100n * 10n ** 9n, // 100 gwei
1247
+ * maxPriorityFeePerGas: 2n * 10n ** 9n, // 2 gwei tip
1248
+ * });
1249
+ *
1250
+ * // Wait for confirmation with custom timeout
1251
+ * const receipt = await vana.waitForTransactionReceipt(result, {
1252
+ * timeout: 180000 // 3 minutes
1226
1253
  * });
1227
- * const events = await result.waitForEvents();
1228
- * console.log(`Permission ID: ${events.permissionId}`);
1254
+ * console.log(`Transaction confirmed: ${receipt.transactionHash}`);
1229
1255
  * ```
1230
1256
  */
1231
- submitAddServerFilesAndPermissions(params: ServerFilesAndPermissionParams): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1257
+ submitAddServerFilesAndPermissions(params: ServerFilesAndPermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1232
1258
  /**
1233
1259
  * Submits an already-signed add server files and permissions transaction to the blockchain.
1234
1260
  *
@@ -1238,6 +1264,9 @@ export declare class PermissionsController extends BaseController {
1238
1264
  *
1239
1265
  * @param typedData - The EIP-712 typed data for AddServerFilesAndPermissions
1240
1266
  * @param signature - The user's signature
1267
+ * @param options - Optional transaction options for gas parameters and timeout.
1268
+ * Note: These options are only applied for direct blockchain transactions.
1269
+ * When using relayer callbacks (gasless transactions), these options are ignored.
1241
1270
  * @returns TransactionResult with immediate hash access and optional event data
1242
1271
  * @throws {RelayerError} When gasless transaction submission fails
1243
1272
  * @throws {BlockchainError} When server files and permissions addition fails
@@ -1256,14 +1285,15 @@ export declare class PermissionsController extends BaseController {
1256
1285
  * console.log(`Permission created with ID: ${permissionId}`);
1257
1286
  * ```
1258
1287
  */
1259
- submitSignedAddServerFilesAndPermissions(typedData: ServerFilesAndPermissionTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1288
+ submitSignedAddServerFilesAndPermissions(typedData: ServerFilesAndPermissionTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1260
1289
  /**
1261
1290
  * Submit permission revocation with signature to the blockchain
1262
1291
  *
1263
1292
  * @param permissionId - Permission ID to revoke
1293
+ * @param options - Optional transaction options for gas parameters and timeout
1264
1294
  * @returns Promise resolving to transaction hash
1265
1295
  */
1266
- submitRevokePermission(permissionId: bigint): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
1296
+ submitRevokePermission(permissionId: bigint, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
1267
1297
  /**
1268
1298
  * Submits a signed add permission transaction directly to the blockchain.
1269
1299
  *