@opendatalabs/vana-sdk 0.1.0-alpha.fd33fc9 → 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 (351) 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/client/__tests__/enhancedResponse.test.d.ts +1 -0
  8. package/dist/client/enhancedResponse.cjs +164 -0
  9. package/dist/client/enhancedResponse.cjs.map +1 -0
  10. package/dist/client/enhancedResponse.d.ts +120 -0
  11. package/dist/client/enhancedResponse.js +138 -0
  12. package/dist/client/enhancedResponse.js.map +1 -0
  13. package/dist/config/chains.cjs.map +1 -1
  14. package/dist/config/chains.d.ts +99 -0
  15. package/dist/config/chains.js.map +1 -1
  16. package/dist/contracts/contractController.cjs.map +1 -1
  17. package/dist/contracts/contractController.d.ts +66 -10
  18. package/dist/contracts/contractController.js.map +1 -1
  19. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +7 -0
  20. package/dist/controllers/__tests__/operations.processQueue.test.d.ts +1 -0
  21. package/dist/controllers/base.cjs +33 -0
  22. package/dist/controllers/base.cjs.map +1 -1
  23. package/dist/controllers/base.d.ts +10 -0
  24. package/dist/controllers/base.js +33 -0
  25. package/dist/controllers/base.js.map +1 -1
  26. package/dist/controllers/data.cjs +417 -276
  27. package/dist/controllers/data.cjs.map +1 -1
  28. package/dist/controllers/data.d.ts +246 -193
  29. package/dist/controllers/data.js +430 -279
  30. package/dist/controllers/data.js.map +1 -1
  31. package/dist/controllers/operations.cjs +430 -0
  32. package/dist/controllers/operations.cjs.map +1 -0
  33. package/dist/controllers/operations.d.ts +229 -0
  34. package/dist/controllers/operations.js +406 -0
  35. package/dist/controllers/operations.js.map +1 -0
  36. package/dist/controllers/permissions.cjs +690 -209
  37. package/dist/controllers/permissions.cjs.map +1 -1
  38. package/dist/controllers/permissions.d.ts +196 -68
  39. package/dist/controllers/permissions.js +690 -209
  40. package/dist/controllers/permissions.js.map +1 -1
  41. package/dist/controllers/protocol.cjs.map +1 -1
  42. package/dist/controllers/protocol.d.ts +27 -28
  43. package/dist/controllers/protocol.js.map +1 -1
  44. package/dist/controllers/schemas.cjs +104 -25
  45. package/dist/controllers/schemas.cjs.map +1 -1
  46. package/dist/controllers/schemas.d.ts +88 -40
  47. package/dist/controllers/schemas.js +104 -25
  48. package/dist/controllers/schemas.js.map +1 -1
  49. package/dist/controllers/server.cjs +269 -58
  50. package/dist/controllers/server.cjs.map +1 -1
  51. package/dist/controllers/server.d.ts +157 -52
  52. package/dist/controllers/server.js +269 -58
  53. package/dist/controllers/server.js.map +1 -1
  54. package/dist/core/__tests__/health.test.d.ts +1 -0
  55. package/dist/core/__tests__/inMemoryNonceManager.test.d.ts +1 -0
  56. package/dist/core/__tests__/nonceManager.test.d.ts +1 -0
  57. package/dist/core/__tests__/pollingManager.test.d.ts +4 -0
  58. package/dist/core/apiClient.cjs +53 -3
  59. package/dist/core/apiClient.cjs.map +1 -1
  60. package/dist/core/apiClient.d.ts +132 -7
  61. package/dist/core/apiClient.js +53 -3
  62. package/dist/core/apiClient.js.map +1 -1
  63. package/dist/core/generics.cjs +30 -3
  64. package/dist/core/generics.cjs.map +1 -1
  65. package/dist/core/generics.d.ts +95 -6
  66. package/dist/core/generics.js +30 -3
  67. package/dist/core/generics.js.map +1 -1
  68. package/dist/core/health.cjs +289 -0
  69. package/dist/core/health.cjs.map +1 -0
  70. package/dist/core/health.d.ts +143 -0
  71. package/dist/core/health.js +265 -0
  72. package/dist/core/health.js.map +1 -0
  73. package/dist/core/inMemoryNonceManager.cjs +138 -0
  74. package/dist/core/inMemoryNonceManager.cjs.map +1 -0
  75. package/dist/core/inMemoryNonceManager.d.ts +69 -0
  76. package/dist/core/inMemoryNonceManager.js +114 -0
  77. package/dist/core/inMemoryNonceManager.js.map +1 -0
  78. package/dist/core/nonceManager.cjs +304 -0
  79. package/dist/core/nonceManager.cjs.map +1 -0
  80. package/dist/core/nonceManager.d.ts +116 -0
  81. package/dist/core/nonceManager.js +280 -0
  82. package/dist/core/nonceManager.js.map +1 -0
  83. package/dist/core/pollingManager.cjs +292 -0
  84. package/dist/core/pollingManager.cjs.map +1 -0
  85. package/dist/core/pollingManager.d.ts +120 -0
  86. package/dist/core/pollingManager.js +268 -0
  87. package/dist/core/pollingManager.js.map +1 -0
  88. package/dist/core.cjs +55 -1
  89. package/dist/core.cjs.map +1 -1
  90. package/dist/core.d.ts +54 -3
  91. package/dist/core.js +55 -1
  92. package/dist/core.js.map +1 -1
  93. package/dist/crypto/ecies/base.cjs +16 -3
  94. package/dist/crypto/ecies/base.cjs.map +1 -1
  95. package/dist/crypto/ecies/base.js +16 -3
  96. package/dist/crypto/ecies/base.js.map +1 -1
  97. package/dist/errors.cjs +29 -0
  98. package/dist/errors.cjs.map +1 -1
  99. package/dist/errors.d.ts +64 -0
  100. package/dist/errors.js +28 -0
  101. package/dist/errors.js.map +1 -1
  102. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -1
  103. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -1
  104. package/dist/generated/abi/DLPPerformanceImplementation.cjs +42 -0
  105. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +1 -1
  106. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +32 -0
  107. package/dist/generated/abi/DLPPerformanceImplementation.js +42 -0
  108. package/dist/generated/abi/DLPPerformanceImplementation.js.map +1 -1
  109. package/dist/generated/abi/DLPRegistryImplementation.cjs +5 -5
  110. package/dist/generated/abi/DLPRegistryImplementation.cjs.map +1 -1
  111. package/dist/generated/abi/DLPRegistryImplementation.d.ts +4 -4
  112. package/dist/generated/abi/DLPRegistryImplementation.js +5 -5
  113. package/dist/generated/abi/DLPRegistryImplementation.js.map +1 -1
  114. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +166 -2
  115. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +1 -1
  116. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +129 -2
  117. package/dist/generated/abi/DLPRewardDeployerImplementation.js +166 -2
  118. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +1 -1
  119. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs +167 -19
  120. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs.map +1 -1
  121. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +127 -14
  122. package/dist/generated/abi/DataPortabilityGranteesImplementation.js +167 -19
  123. package/dist/generated/abi/DataPortabilityGranteesImplementation.js.map +1 -1
  124. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs +0 -19
  125. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -1
  126. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +0 -14
  127. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js +0 -19
  128. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -1
  129. package/dist/generated/abi/DataPortabilityServersImplementation.cjs +0 -19
  130. package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -1
  131. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +0 -14
  132. package/dist/generated/abi/DataPortabilityServersImplementation.js +0 -19
  133. package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -1
  134. package/dist/generated/abi/DataRegistryImplementation.cjs +0 -13
  135. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
  136. package/dist/generated/abi/DataRegistryImplementation.d.ts +0 -10
  137. package/dist/generated/abi/DataRegistryImplementation.js +0 -13
  138. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
  139. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -43
  140. package/dist/generated/abi/SwapHelperImplementation.cjs.map +1 -1
  141. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -35
  142. package/dist/generated/abi/SwapHelperImplementation.js +0 -43
  143. package/dist/generated/abi/SwapHelperImplementation.js.map +1 -1
  144. package/dist/generated/abi/VanaEpochImplementation.cjs +195 -0
  145. package/dist/generated/abi/VanaEpochImplementation.cjs.map +1 -1
  146. package/dist/generated/abi/VanaEpochImplementation.d.ts +151 -0
  147. package/dist/generated/abi/VanaEpochImplementation.js +195 -0
  148. package/dist/generated/abi/VanaEpochImplementation.js.map +1 -1
  149. package/dist/generated/abi/VanaPoolEntityImplementation.cjs +22 -65
  150. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -1
  151. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +17 -51
  152. package/dist/generated/abi/VanaPoolEntityImplementation.js +22 -65
  153. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -1
  154. package/dist/generated/abi/VanaPoolStakingImplementation.cjs +113 -1
  155. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -1
  156. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +85 -1
  157. package/dist/generated/abi/VanaPoolStakingImplementation.js +113 -1
  158. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -1
  159. package/dist/generated/abi/index.d.ts +546 -146
  160. package/dist/generated/event-types.cjs.map +1 -1
  161. package/dist/generated/event-types.d.ts +14 -8
  162. package/dist/generated/eventRegistry.cjs +42 -18
  163. package/dist/generated/eventRegistry.cjs.map +1 -1
  164. package/dist/generated/eventRegistry.js +42 -18
  165. package/dist/generated/eventRegistry.js.map +1 -1
  166. package/dist/generated/server/server-exports.cjs +22 -0
  167. package/dist/generated/server/server-exports.cjs.map +1 -1
  168. package/dist/generated/server/server-exports.d.ts +27 -10
  169. package/dist/generated/server/server-exports.js +17 -0
  170. package/dist/generated/server/server-exports.js.map +1 -1
  171. package/dist/generated/server/server.cjs.map +1 -1
  172. package/dist/generated/server/server.d.ts +771 -402
  173. package/dist/generated/subgraph.cjs +797 -32
  174. package/dist/generated/subgraph.cjs.map +1 -1
  175. package/dist/generated/subgraph.d.ts +135 -0
  176. package/dist/generated/subgraph.js +792 -32
  177. package/dist/generated/subgraph.js.map +1 -1
  178. package/dist/index.browser.d.ts +2 -0
  179. package/dist/index.browser.js +10 -0
  180. package/dist/index.browser.js.map +1 -1
  181. package/dist/index.cjs.map +1 -1
  182. package/dist/index.js.map +1 -1
  183. package/dist/index.node.cjs +26 -0
  184. package/dist/index.node.cjs.map +1 -1
  185. package/dist/index.node.d.ts +49 -5
  186. package/dist/index.node.js +25 -1
  187. package/dist/index.node.js.map +1 -1
  188. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +1 -0
  189. package/dist/lib/redisAtomicStore.cjs +201 -0
  190. package/dist/lib/redisAtomicStore.cjs.map +1 -0
  191. package/dist/lib/redisAtomicStore.d.ts +120 -0
  192. package/dist/lib/redisAtomicStore.js +177 -0
  193. package/dist/lib/redisAtomicStore.js.map +1 -0
  194. package/dist/node.cjs.map +1 -1
  195. package/dist/node.d.ts +39 -1
  196. package/dist/node.js.map +1 -1
  197. package/dist/platform/browser.cjs +160 -2
  198. package/dist/platform/browser.cjs.map +1 -1
  199. package/dist/platform/browser.d.ts +232 -12
  200. package/dist/platform/browser.js +160 -2
  201. package/dist/platform/browser.js.map +1 -1
  202. package/dist/platform/interface.cjs.map +1 -1
  203. package/dist/platform/interface.d.ts +283 -90
  204. package/dist/platform/node.cjs +163 -2
  205. package/dist/platform/node.cjs.map +1 -1
  206. package/dist/platform/node.d.ts +69 -6
  207. package/dist/platform/node.js +163 -2
  208. package/dist/platform/node.js.map +1 -1
  209. package/dist/server/relayerHandler.cjs +315 -81
  210. package/dist/server/relayerHandler.cjs.map +1 -1
  211. package/dist/server/relayerHandler.d.ts +35 -2
  212. package/dist/server/relayerHandler.js +315 -81
  213. package/dist/server/relayerHandler.js.map +1 -1
  214. package/dist/storage/index.cjs +3 -0
  215. package/dist/storage/index.cjs.map +1 -1
  216. package/dist/storage/index.d.ts +1 -0
  217. package/dist/storage/index.js +2 -0
  218. package/dist/storage/index.js.map +1 -1
  219. package/dist/storage/manager.cjs +108 -25
  220. package/dist/storage/manager.cjs.map +1 -1
  221. package/dist/storage/manager.d.ts +119 -25
  222. package/dist/storage/manager.js +108 -25
  223. package/dist/storage/manager.js.map +1 -1
  224. package/dist/storage/providers/callback-storage.cjs +86 -15
  225. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  226. package/dist/storage/providers/callback-storage.d.ts +109 -20
  227. package/dist/storage/providers/callback-storage.js +86 -15
  228. package/dist/storage/providers/callback-storage.js.map +1 -1
  229. package/dist/storage/providers/dropbox.cjs +237 -0
  230. package/dist/storage/providers/dropbox.cjs.map +1 -0
  231. package/dist/storage/providers/dropbox.d.ts +39 -0
  232. package/dist/storage/providers/dropbox.js +215 -0
  233. package/dist/storage/providers/dropbox.js.map +1 -0
  234. package/dist/storage/providers/dropbox.test.d.ts +1 -0
  235. package/dist/storage/providers/pinata.cjs.map +1 -1
  236. package/dist/storage/providers/pinata.d.ts +12 -14
  237. package/dist/storage/providers/pinata.js.map +1 -1
  238. package/dist/tests/data-upload-owner-validation.test.d.ts +1 -0
  239. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  240. package/dist/types/atomicStore.cjs +31 -0
  241. package/dist/types/atomicStore.cjs.map +1 -0
  242. package/dist/types/atomicStore.d.ts +236 -0
  243. package/dist/types/atomicStore.js +7 -0
  244. package/dist/types/atomicStore.js.map +1 -0
  245. package/dist/types/blockchain.cjs.map +1 -1
  246. package/dist/types/blockchain.d.ts +39 -11
  247. package/dist/types/chains.cjs.map +1 -1
  248. package/dist/types/chains.d.ts +74 -7
  249. package/dist/types/chains.js.map +1 -1
  250. package/dist/types/config.cjs.map +1 -1
  251. package/dist/types/config.d.ts +38 -4
  252. package/dist/types/config.js.map +1 -1
  253. package/dist/types/contracts.cjs.map +1 -1
  254. package/dist/types/contracts.d.ts +71 -7
  255. package/dist/types/controller-context.cjs.map +1 -1
  256. package/dist/types/controller-context.d.ts +4 -1
  257. package/dist/types/data.cjs.map +1 -1
  258. package/dist/types/data.d.ts +11 -10
  259. package/dist/types/generics.cjs.map +1 -1
  260. package/dist/types/generics.d.ts +81 -10
  261. package/dist/types/index.cjs.map +1 -1
  262. package/dist/types/index.d.ts +31 -3
  263. package/dist/types/index.js.map +1 -1
  264. package/dist/types/operationStore.cjs +17 -0
  265. package/dist/types/operationStore.cjs.map +1 -0
  266. package/dist/types/operationStore.d.ts +171 -0
  267. package/dist/types/operationStore.js +1 -0
  268. package/dist/types/operationStore.js.map +1 -0
  269. package/dist/types/operations.cjs +3 -15
  270. package/dist/types/operations.cjs.map +1 -1
  271. package/dist/types/operations.d.ts +131 -39
  272. package/dist/types/operations.js +2 -13
  273. package/dist/types/operations.js.map +1 -1
  274. package/dist/types/options.cjs +17 -0
  275. package/dist/types/options.cjs.map +1 -0
  276. package/dist/types/options.d.ts +308 -0
  277. package/dist/types/options.js +1 -0
  278. package/dist/types/options.js.map +1 -0
  279. package/dist/types/permissions.cjs.map +1 -1
  280. package/dist/types/permissions.d.ts +19 -20
  281. package/dist/types/personal.cjs.map +1 -1
  282. package/dist/types/personal.d.ts +150 -14
  283. package/dist/types/relayer.cjs.map +1 -1
  284. package/dist/types/relayer.d.ts +145 -24
  285. package/dist/types/storage.cjs.map +1 -1
  286. package/dist/types/storage.d.ts +9 -21
  287. package/dist/types/storage.js.map +1 -1
  288. package/dist/types/utils.cjs.map +1 -1
  289. package/dist/types/utils.d.ts +0 -45
  290. package/dist/utils/__tests__/chainQuery.test.d.ts +1 -0
  291. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +4 -0
  292. package/dist/utils/__tests__/subgraphPagination.test.d.ts +4 -0
  293. package/dist/utils/chainQuery.cjs +107 -0
  294. package/dist/utils/chainQuery.cjs.map +1 -0
  295. package/dist/utils/chainQuery.d.ts +31 -0
  296. package/dist/utils/chainQuery.js +82 -0
  297. package/dist/utils/chainQuery.js.map +1 -0
  298. package/dist/utils/grantFiles.cjs +4 -1
  299. package/dist/utils/grantFiles.cjs.map +1 -1
  300. package/dist/utils/grantFiles.d.ts +10 -20
  301. package/dist/utils/grantFiles.js +4 -1
  302. package/dist/utils/grantFiles.js.map +1 -1
  303. package/dist/utils/grantValidation.cjs.map +1 -1
  304. package/dist/utils/grantValidation.d.ts +95 -16
  305. package/dist/utils/grantValidation.js.map +1 -1
  306. package/dist/utils/grants.cjs.map +1 -1
  307. package/dist/utils/grants.d.ts +93 -12
  308. package/dist/utils/grants.js.map +1 -1
  309. package/dist/utils/ipfs.cjs +2 -4
  310. package/dist/utils/ipfs.cjs.map +1 -1
  311. package/dist/utils/ipfs.d.ts +1 -1
  312. package/dist/utils/ipfs.js +2 -4
  313. package/dist/utils/ipfs.js.map +1 -1
  314. package/dist/utils/lazy-import.cjs.map +1 -1
  315. package/dist/utils/lazy-import.d.ts +32 -7
  316. package/dist/utils/lazy-import.js.map +1 -1
  317. package/dist/utils/signatureCache.cjs +8 -2
  318. package/dist/utils/signatureCache.cjs.map +1 -1
  319. package/dist/utils/signatureCache.d.ts +49 -8
  320. package/dist/utils/signatureCache.js +8 -2
  321. package/dist/utils/signatureCache.js.map +1 -1
  322. package/dist/utils/subgraphConsistency.cjs +184 -0
  323. package/dist/utils/subgraphConsistency.cjs.map +1 -0
  324. package/dist/utils/subgraphConsistency.d.ts +65 -0
  325. package/dist/utils/subgraphConsistency.js +155 -0
  326. package/dist/utils/subgraphConsistency.js.map +1 -0
  327. package/dist/utils/subgraphMetaCache.cjs +101 -0
  328. package/dist/utils/subgraphMetaCache.cjs.map +1 -0
  329. package/dist/utils/subgraphMetaCache.d.ts +56 -0
  330. package/dist/utils/subgraphMetaCache.js +76 -0
  331. package/dist/utils/subgraphMetaCache.js.map +1 -0
  332. package/dist/utils/subgraphPagination.cjs +104 -0
  333. package/dist/utils/subgraphPagination.cjs.map +1 -0
  334. package/dist/utils/subgraphPagination.d.ts +78 -0
  335. package/dist/utils/subgraphPagination.js +78 -0
  336. package/dist/utils/subgraphPagination.js.map +1 -0
  337. package/dist/utils/transactionHelpers.cjs.map +1 -1
  338. package/dist/utils/transactionHelpers.d.ts +12 -12
  339. package/dist/utils/transactionHelpers.js.map +1 -1
  340. package/dist/utils/typedDataConverter.cjs.map +1 -1
  341. package/dist/utils/typedDataConverter.d.ts +39 -3
  342. package/dist/utils/typedDataConverter.js.map +1 -1
  343. package/dist/utils/urlResolver.cjs +7 -0
  344. package/dist/utils/urlResolver.cjs.map +1 -1
  345. package/dist/utils/urlResolver.d.ts +22 -4
  346. package/dist/utils/urlResolver.js +7 -0
  347. package/dist/utils/urlResolver.js.map +1 -1
  348. package/dist/utils/wallet.cjs.map +1 -1
  349. package/dist/utils/wallet.d.ts +78 -16
  350. package/dist/utils/wallet.js.map +1 -1
  351. package/package.json +3 -1
@@ -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,17 @@ 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
+ * @param options - Polling configuration including status updates and cancellation
296
+ * @returns Promise resolving to the confirmed hash and receipt
297
+ * @throws {TransactionPendingError} When the operation times out
298
+ * @throws {Error} When the operation fails or is cancelled
299
+ * @internal
300
+ */
301
+ private pollRelayerForConfirmation;
289
302
  /**
290
303
  * Submits an already-signed permission revoke transaction to the blockchain.
291
304
  *
@@ -307,7 +320,7 @@ export declare class PermissionsController extends BaseController {
307
320
  * const result = await txHandle.waitForEvents();
308
321
  * ```
309
322
  */
310
- submitSignedRevoke(typedData: GenericTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermissionWithSignature">>;
323
+ submitSignedRevoke(typedData: GenericTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermissionWithSignature">>;
311
324
  /**
312
325
  * Submits an already-signed untrust server transaction to the blockchain.
313
326
  *
@@ -329,7 +342,7 @@ export declare class PermissionsController extends BaseController {
329
342
  * const result = await txHandle.waitForEvents();
330
343
  * ```
331
344
  */
332
- submitSignedUntrustServer(typedData: GenericTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityServers", "untrustServerWithSignature">>;
345
+ submitSignedUntrustServer(typedData: GenericTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "untrustServerWithSignature">>;
333
346
  /**
334
347
  * Submits a signed transaction directly to the blockchain.
335
348
  *
@@ -375,6 +388,7 @@ export declare class PermissionsController extends BaseController {
375
388
  * Use this when you want to handle transaction confirmation and event parsing separately.
376
389
  *
377
390
  * @param params - Parameters for revoking the permission
391
+ * @param options - Optional transaction options for gas parameters and timeout
378
392
  * @returns Promise resolving to the transaction hash when successfully submitted
379
393
  * @throws {BlockchainError} When revocation transaction fails
380
394
  * @throws {UserRejectedRequestError} When user rejects the transaction
@@ -387,7 +401,7 @@ export declare class PermissionsController extends BaseController {
387
401
  * console.log(`Revocation submitted: ${txHash}`);
388
402
  * ```
389
403
  */
390
- submitPermissionRevoke(params: RevokePermissionParams): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
404
+ submitPermissionRevoke(params: RevokePermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
391
405
  /**
392
406
  * Revokes a permission with a signature for gasless transactions.
393
407
  *
@@ -413,7 +427,7 @@ export declare class PermissionsController extends BaseController {
413
427
  * console.log(`Permission ${result.permissionId} revoked`);
414
428
  * ```
415
429
  */
416
- submitRevokeWithSignature(params: RevokePermissionParams): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermissionWithSignature">>;
430
+ submitRevokeWithSignature(params: RevokePermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermissionWithSignature">>;
417
431
  /**
418
432
  * Retrieves the user's current nonce from the DataPortabilityServers contract.
419
433
  * This nonce is used for server-related operations (AddAndTrustServer, TrustServer, UntrustServer).
@@ -595,7 +609,7 @@ export declare class PermissionsController extends BaseController {
595
609
  * @param params - Parameters for adding and trusting the server
596
610
  * @returns Promise resolving to TransactionResult with ServerTrustResult event data
597
611
  */
598
- submitAddAndTrustServerWithSignature(params: AddAndTrustServerParams): Promise<TransactionResult<"DataPortabilityServers", "addAndTrustServerWithSignature">>;
612
+ submitAddAndTrustServerWithSignature(params: AddAndTrustServerParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "addAndTrustServerWithSignature">>;
599
613
  /**
600
614
  * Trusts a server using a signature (gasless transaction - legacy method).
601
615
  *
@@ -609,7 +623,7 @@ export declare class PermissionsController extends BaseController {
609
623
  * @throws {ServerUrlMismatchError} When server URL doesn't match existing registration
610
624
  * @throws {BlockchainError} When trust operation fails for any other reason
611
625
  */
612
- submitTrustServerWithSignature(params: TrustServerParams): Promise<TransactionResult<"DataPortabilityServers", "trustServerWithSignature">>;
626
+ submitTrustServerWithSignature(params: TrustServerParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "trustServerWithSignature">>;
613
627
  /**
614
628
  * Submits a direct untrust server transaction (without signature).
615
629
  *
@@ -636,6 +650,7 @@ export declare class PermissionsController extends BaseController {
636
650
  *
637
651
  * @param params - Parameters for untrusting the server
638
652
  * @param params.serverId - The numeric ID of the server to untrust
653
+ * @param options - Optional transaction options for gas parameters and timeout
639
654
  * @returns Promise resolving to transaction hash
640
655
  * @throws {Error} When wallet account is not available
641
656
  * @throws {NonceError} When retrieving user nonce fails
@@ -656,7 +671,7 @@ export declare class PermissionsController extends BaseController {
656
671
  * console.log('Still trusting servers:', trustedServers);
657
672
  * ```
658
673
  */
659
- submitUntrustServer(params: UntrustServerParams): Promise<TransactionResult<"DataPortabilityServers", "untrustServer">>;
674
+ submitUntrustServer(params: UntrustServerParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "untrustServer">>;
660
675
  /**
661
676
  * Untrusts a server using a signature (gasless transaction).
662
677
  *
@@ -836,14 +851,18 @@ export declare class PermissionsController extends BaseController {
836
851
  * A grantee is an entity (like an application) that can receive data permissions
837
852
  * from users. Once registered, users can grant the grantee access to their data.
838
853
  *
854
+ * This method supports gasless transactions via relayer when configured.
855
+ * If no relayer is available, it falls back to direct wallet transactions.
856
+ *
839
857
  * @param params - Parameters for registering the grantee
840
858
  * @param params.owner - The Ethereum address that will own this grantee registration
841
859
  * @param params.granteeAddress - The Ethereum address of the grantee (application)
842
860
  * @param params.publicKey - The public key used for data encryption/decryption (hex string)
861
+ * @param options - Optional transaction options for gas parameters and timeout
843
862
  * @returns Promise resolving to the transaction hash
844
863
  * @throws {BlockchainError} When the grantee registration transaction fails
845
864
  * @throws {UserRejectedRequestError} When user rejects the transaction
846
- * @throws {ContractError} When grantee is already registered
865
+ * @throws {RelayerError} When gasless transaction submission fails
847
866
  *
848
867
  * @example
849
868
  * ```typescript
@@ -855,7 +874,7 @@ export declare class PermissionsController extends BaseController {
855
874
  * console.log(`Grantee registered in transaction: ${txHash}`);
856
875
  * ```
857
876
  */
858
- submitRegisterGrantee(params: RegisterGranteeParams): Promise<TransactionResult<"DataPortabilityGrantees", "registerGrantee">>;
877
+ submitRegisterGrantee(params: RegisterGranteeParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityGrantees", "registerGrantee">>;
859
878
  /**
860
879
  * Retrieves all registered grantees from the DataPortabilityGrantees contract.
861
880
  *
@@ -890,15 +909,16 @@ export declare class PermissionsController extends BaseController {
890
909
  */
891
910
  getGrantees(options?: GranteeQueryOptions): Promise<PaginatedGrantees>;
892
911
  /**
893
- * Retrieves a specific grantee by their Ethereum address from the DataPortabilityGrantees contract.
912
+ * Retrieves a specific grantee by their Ethereum wallet address.
894
913
  *
914
+ * @remarks
895
915
  * Looks up a registered grantee (application) using their Ethereum address
896
- * and returns their complete registration information including permissions.
916
+ * and returns their complete registration information including all associated permissions.
897
917
  *
898
- * @param granteeAddress - The Ethereum address of the grantee to look up
899
- * @returns Promise resolving to the grantee information, or null if not found
900
- * @throws {BlockchainError} When contract read operation fails
901
- * @throws {NetworkError} When unable to connect to the blockchain network
918
+ * Returns `null` if the address is not registered as a grantee or if an error occurs.
919
+ *
920
+ * @param granteeAddress - Ethereum wallet address of the grantee to query
921
+ * @returns Grantee information including ID, addresses, public key, and permission IDs, or `null` if not found
902
922
  *
903
923
  * @example
904
924
  * ```typescript
@@ -917,15 +937,16 @@ export declare class PermissionsController extends BaseController {
917
937
  */
918
938
  getGranteeByAddress(granteeAddress: Address): Promise<Grantee | null>;
919
939
  /**
920
- * Retrieves a specific grantee by their unique ID from the DataPortabilityGrantees contract.
940
+ * Retrieves a specific grantee by their unique ID.
921
941
  *
942
+ * @remarks
922
943
  * Looks up a registered grantee (application) using their numeric ID assigned during
923
- * registration and returns their complete information including permissions.
944
+ * registration and returns their complete information including all associated permissions.
924
945
  *
925
- * @param granteeId - The unique numeric ID of the grantee (1-indexed)
926
- * @returns Promise resolving to the grantee information, or null if not found
927
- * @throws {BlockchainError} When contract read operation fails
928
- * @throws {NetworkError} When unable to connect to the blockchain network
946
+ * Returns `null` if the grantee is not found or if an error occurs during fetching.
947
+ *
948
+ * @param granteeId - Unique numeric ID of the grantee (1-indexed)
949
+ * @returns Grantee information including ID, addresses, public key, and permission IDs, or `null` if not found
929
950
  *
930
951
  * @example
931
952
  * ```typescript
@@ -933,7 +954,7 @@ export declare class PermissionsController extends BaseController {
933
954
  *
934
955
  * if (grantee) {
935
956
  * console.log(`Grantee ID: ${grantee.id}`);
936
- * console.log(`Address: ${grantee.granteeAddress}`);
957
+ * console.log(`Address: ${grantee.address}`);
937
958
  * console.log(`Owner: ${grantee.owner}`);
938
959
  * console.log(`Total permissions: ${grantee.permissionIds.length}`);
939
960
  * } else {
@@ -1036,6 +1057,24 @@ export declare class PermissionsController extends BaseController {
1036
1057
  * @returns Promise resolving to array of file IDs
1037
1058
  */
1038
1059
  getPermissionFileIds(permissionId: bigint): Promise<bigint[]>;
1060
+ /**
1061
+ * Retrieves detailed grant file data from IPFS or HTTP storage.
1062
+ *
1063
+ * @remarks
1064
+ * This method automatically uses the SDK's configured downloadRelayer to bypass CORS restrictions.
1065
+ * Use this instead of importing the standalone `retrieveGrantFile` utility.
1066
+ *
1067
+ * @param grantUrl - The grant file URL (from OnChainPermissionGrant.grantUrl)
1068
+ * @returns Promise resolving to the complete grant file with operation details
1069
+ * @throws {NetworkError} When all retrieval attempts fail
1070
+ * @example
1071
+ * ```typescript
1072
+ * const grants = await vana.permissions.getUserPermissionGrantsOnChain();
1073
+ * const grantFile = await vana.permissions.retrieveGrantFile(grants[0].grantUrl);
1074
+ * console.log(`Operation: ${grantFile.operation}`);
1075
+ * ```
1076
+ */
1077
+ retrieveGrantFile(grantUrl: string): Promise<GrantFile>;
1039
1078
  /**
1040
1079
  * Get all permissions for a specific file (alias for getFilePermissionIds)
1041
1080
  *
@@ -1044,17 +1083,39 @@ export declare class PermissionsController extends BaseController {
1044
1083
  */
1045
1084
  getFilePermissions(fileId: bigint): Promise<bigint[]>;
1046
1085
  /**
1047
- * Get grantee information by grantee ID
1086
+ * Retrieves detailed grantee information including all associated permissions.
1087
+ *
1088
+ * @remarks
1089
+ * Returns grantee metadata and associated permission IDs. Uses the newer
1090
+ * paginated contract method internally for efficient permission fetching.
1048
1091
  *
1049
- * @param granteeId - Grantee ID to get info for
1050
- * @returns Promise resolving to grantee info
1092
+ * @param granteeId - Unique grantee identifier as bigint
1093
+ * @returns Grantee information containing owner address, grantee address, public key, and permission IDs
1094
+ * @throws {BlockchainError} When grantee ID is not found or contract read fails
1095
+ *
1096
+ * @example
1097
+ * ```typescript
1098
+ * const granteeInfo = await vana.permissions.getGranteeInfo(BigInt(1));
1099
+ * console.log(`Grantee ${granteeInfo.granteeAddress} has ${granteeInfo.permissionIds.length} permissions`);
1100
+ * ```
1051
1101
  */
1052
1102
  getGranteeInfo(granteeId: bigint): Promise<GranteeInfo>;
1053
1103
  /**
1054
- * Get grantee information by grantee address
1104
+ * Retrieves detailed grantee information by wallet address.
1105
+ *
1106
+ * @remarks
1107
+ * Looks up the grantee ID from the provided address, then fetches complete
1108
+ * grantee information including all associated permissions.
1109
+ *
1110
+ * @param granteeAddress - Ethereum wallet address of the grantee to query
1111
+ * @returns Grantee information containing owner address, grantee address, public key, and permission IDs
1112
+ * @throws {BlockchainError} When grantee address is not registered or contract read fails
1055
1113
  *
1056
- * @param granteeAddress - Grantee address to get info for
1057
- * @returns Promise resolving to grantee info
1114
+ * @example
1115
+ * ```typescript
1116
+ * const granteeInfo = await vana.permissions.getGranteeInfoByAddress("0x742d35Cc6634c0532925a3b844Bc9e8e1ee3b2De");
1117
+ * console.log(`Found grantee with ${granteeInfo.permissionIds.length} permissions`);
1118
+ * ```
1058
1119
  */
1059
1120
  getGranteeInfoByAddress(granteeAddress: Address): Promise<GranteeInfo>;
1060
1121
  /**
@@ -1071,6 +1132,57 @@ export declare class PermissionsController extends BaseController {
1071
1132
  * @returns Promise resolving to array of permission IDs
1072
1133
  */
1073
1134
  getGranteePermissions(granteeId: bigint): Promise<bigint[]>;
1135
+ /**
1136
+ * Retrieves permission IDs for a specific grantee with flexible pagination.
1137
+ *
1138
+ * @remarks
1139
+ * **Pagination Behavior:**
1140
+ * Returns different types based on parameters:
1141
+ * - Without offset/limit: Returns `bigint[]` of all permissions using batched multicall
1142
+ * - With offset/limit: Returns paginated object with `permissionIds`, `totalCount`, and `hasMore`
1143
+ *
1144
+ * Uses gas-aware multicall for efficient batch fetching when retrieving all permissions.
1145
+ *
1146
+ * @param granteeId - Grantee ID to get permissions for
1147
+ * @param options - Optional pagination parameters
1148
+ * @param options.offset - Zero-based starting index for pagination. Defaults to 0 when fetching all permissions. Required for single-page requests.
1149
+ * @param options.limit - Maximum number of permission IDs to return per page. Defaults to 100 when fetching all permissions. Required for single-page requests.
1150
+ * @returns When called without options: Array of all permission IDs as `bigint[]`.
1151
+ * When called with offset and limit: Paginated result object containing `permissionIds` array,
1152
+ * `totalCount`, and `hasMore` boolean.
1153
+ * @throws {BlockchainError} When contract read operation fails
1154
+ *
1155
+ * @example
1156
+ * ```typescript
1157
+ * // Fetch all permissions (no pagination params)
1158
+ * const allPermissions = await vana.permissions.getGranteePermissionsPaginated(BigInt(1));
1159
+ * console.log(`Total permissions: ${allPermissions.length}`);
1160
+ *
1161
+ * // Fetch a specific page (with pagination params)
1162
+ * const page = await vana.permissions.getGranteePermissionsPaginated(BigInt(1), {
1163
+ * offset: BigInt(0),
1164
+ * limit: BigInt(100)
1165
+ * });
1166
+ * console.log(`Fetched ${page.permissionIds.length} permissions`);
1167
+ * console.log(`Total: ${page.totalCount}, Has more: ${page.hasMore}`);
1168
+ *
1169
+ * // Fetch next page
1170
+ * if (page.hasMore) {
1171
+ * const nextPage = await vana.permissions.getGranteePermissionsPaginated(BigInt(1), {
1172
+ * offset: BigInt(100),
1173
+ * limit: BigInt(100)
1174
+ * });
1175
+ * }
1176
+ * ```
1177
+ */
1178
+ getGranteePermissionsPaginated(granteeId: bigint, options?: {
1179
+ offset?: bigint;
1180
+ limit?: bigint;
1181
+ }): Promise<bigint[] | {
1182
+ permissionIds: bigint[];
1183
+ totalCount: bigint;
1184
+ hasMore: boolean;
1185
+ }>;
1074
1186
  /**
1075
1187
  * Get all server IDs for a user
1076
1188
  *
@@ -1123,9 +1235,10 @@ export declare class PermissionsController extends BaseController {
1123
1235
  *
1124
1236
  * @param serverId - Server ID to update
1125
1237
  * @param url - New URL for the server
1238
+ * @param options - Optional transaction options for gas parameters and timeout
1126
1239
  * @returns Promise resolving to transaction hash
1127
1240
  */
1128
- submitUpdateServer(serverId: bigint, url: string): Promise<TransactionResult<"DataPortabilityServers", "updateServer">>;
1241
+ submitUpdateServer(serverId: bigint, url: string, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityServers", "updateServer">>;
1129
1242
  /**
1130
1243
  * Get all permission IDs for a user
1131
1244
  *
@@ -1177,7 +1290,7 @@ export declare class PermissionsController extends BaseController {
1177
1290
  * @throws {BlockchainError} When permission addition fails
1178
1291
  * @throws {NetworkError} When network communication fails
1179
1292
  */
1180
- submitSignedAddPermission(typedData: GenericTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
1293
+ submitSignedAddPermission(typedData: GenericTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addPermission">>;
1181
1294
  /**
1182
1295
  * Submits server files and permissions with signature to the blockchain, supporting schema validation and gasless transactions.
1183
1296
  *
@@ -1198,6 +1311,9 @@ export declare class PermissionsController extends BaseController {
1198
1311
  * @param params.serverPublicKey - Server's public key for encryption.
1199
1312
  * Obtain via `vana.server.getIdentity(userAddress).publicKey`.
1200
1313
  * @param params.filePermissions - Nested array of permissions for each file
1314
+ * @param options - Optional transaction options for gas parameters and timeout.
1315
+ * Note: These options are only applied for direct blockchain transactions.
1316
+ * When using relayer callbacks (gasless transactions), these options are ignored.
1201
1317
  * @returns TransactionResult with immediate hash access and optional event data
1202
1318
  * @throws {Error} When schemaIds array length doesn't match fileUrls array length
1203
1319
  * @throws {SchemaValidationError} When file data doesn't match the specified schema.
@@ -1211,6 +1327,7 @@ export declare class PermissionsController extends BaseController {
1211
1327
  *
1212
1328
  * @example
1213
1329
  * ```typescript
1330
+ * // Submit with custom gas parameters and timeout
1214
1331
  * const result = await vana.permissions.submitAddServerFilesAndPermissions({
1215
1332
  * granteeId: BigInt(1),
1216
1333
  * grant: "ipfs://QmXxx...",
@@ -1223,12 +1340,19 @@ export declare class PermissionsController extends BaseController {
1223
1340
  * account: "0x742d35Cc6634C0532925a3b844Bc9e7595f0b0Bb",
1224
1341
  * key: encryptedKey
1225
1342
  * }]]
1343
+ * }, {
1344
+ * maxFeePerGas: 100n * 10n ** 9n, // 100 gwei
1345
+ * maxPriorityFeePerGas: 2n * 10n ** 9n, // 2 gwei tip
1346
+ * });
1347
+ *
1348
+ * // Wait for confirmation with custom timeout
1349
+ * const receipt = await vana.waitForTransactionReceipt(result, {
1350
+ * timeout: 180000 // 3 minutes
1226
1351
  * });
1227
- * const events = await result.waitForEvents();
1228
- * console.log(`Permission ID: ${events.permissionId}`);
1352
+ * console.log(`Transaction confirmed: ${receipt.transactionHash}`);
1229
1353
  * ```
1230
1354
  */
1231
- submitAddServerFilesAndPermissions(params: ServerFilesAndPermissionParams): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1355
+ submitAddServerFilesAndPermissions(params: ServerFilesAndPermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1232
1356
  /**
1233
1357
  * Submits an already-signed add server files and permissions transaction to the blockchain.
1234
1358
  *
@@ -1238,6 +1362,9 @@ export declare class PermissionsController extends BaseController {
1238
1362
  *
1239
1363
  * @param typedData - The EIP-712 typed data for AddServerFilesAndPermissions
1240
1364
  * @param signature - The user's signature
1365
+ * @param options - Optional transaction options for gas parameters and timeout.
1366
+ * Note: These options are only applied for direct blockchain transactions.
1367
+ * When using relayer callbacks (gasless transactions), these options are ignored.
1241
1368
  * @returns TransactionResult with immediate hash access and optional event data
1242
1369
  * @throws {RelayerError} When gasless transaction submission fails
1243
1370
  * @throws {BlockchainError} When server files and permissions addition fails
@@ -1256,14 +1383,15 @@ export declare class PermissionsController extends BaseController {
1256
1383
  * console.log(`Permission created with ID: ${permissionId}`);
1257
1384
  * ```
1258
1385
  */
1259
- submitSignedAddServerFilesAndPermissions(typedData: ServerFilesAndPermissionTypedData, signature: Hash): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1386
+ submitSignedAddServerFilesAndPermissions(typedData: ServerFilesAndPermissionTypedData, signature: Hash, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "addServerFilesAndPermissions">>;
1260
1387
  /**
1261
1388
  * Submit permission revocation with signature to the blockchain
1262
1389
  *
1263
1390
  * @param permissionId - Permission ID to revoke
1391
+ * @param options - Optional transaction options for gas parameters and timeout
1264
1392
  * @returns Promise resolving to transaction hash
1265
1393
  */
1266
- submitRevokePermission(permissionId: bigint): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
1394
+ submitRevokePermission(permissionId: bigint, options?: TransactionOptions): Promise<TransactionResult<"DataPortabilityPermissions", "revokePermission">>;
1267
1395
  /**
1268
1396
  * Submits a signed add permission transaction directly to the blockchain.
1269
1397
  *