@opendatalabs/vana-sdk 0.1.0-alpha.7ee7635 → 0.1.0-alpha.8117ac2
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/__tests__/waitForTransactionEvents.test.d.ts +1 -0
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +36 -2
- package/dist/browser.js.map +1 -1
- package/dist/chains/definitions.cjs +9 -6
- package/dist/chains/definitions.cjs.map +1 -1
- package/dist/chains/definitions.d.ts +9 -11
- package/dist/chains/definitions.js +9 -6
- package/dist/chains/definitions.js.map +1 -1
- package/dist/chains/index.cjs.map +1 -1
- package/dist/chains/index.d.ts +34 -2
- package/dist/chains/index.js.map +1 -1
- package/dist/chains.browser.d.ts +8 -2
- package/dist/chains.d.ts +8 -2
- package/dist/chains.node.d.ts +8 -2
- package/dist/config/addresses.d.ts +8 -45
- package/dist/config/chains.cjs.map +1 -1
- package/dist/config/chains.d.ts +108 -13
- package/dist/config/chains.js.map +1 -1
- package/dist/config/default-services.cjs +60 -0
- package/dist/config/default-services.cjs.map +1 -0
- package/dist/config/default-services.d.ts +46 -0
- package/dist/config/default-services.js +33 -0
- package/dist/config/default-services.js.map +1 -0
- package/dist/config/default-services.test.d.ts +1 -0
- package/dist/config/features.d.ts +1 -3
- package/dist/config/tests/addresses.test.d.ts +1 -0
- package/dist/contracts/contractController.cjs +3 -3
- package/dist/contracts/contractController.cjs.map +1 -1
- package/dist/contracts/contractController.d.ts +77 -59
- package/dist/contracts/contractController.js +4 -7
- package/dist/contracts/contractController.js.map +1 -1
- package/dist/contracts/tests/contractController.test.d.ts +1 -0
- package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +7 -0
- package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
- package/dist/controllers/base.cjs +116 -0
- package/dist/controllers/base.cjs.map +1 -0
- package/dist/controllers/base.d.ts +94 -0
- package/dist/controllers/base.js +92 -0
- package/dist/controllers/base.js.map +1 -0
- package/dist/controllers/data-error-handling.test.d.ts +1 -0
- package/dist/controllers/data.cjs +699 -373
- package/dist/controllers/data.cjs.map +1 -1
- package/dist/controllers/data.d.ts +368 -228
- package/dist/controllers/data.js +712 -376
- package/dist/controllers/data.js.map +1 -1
- package/dist/controllers/permissions.cjs +688 -489
- package/dist/controllers/permissions.cjs.map +1 -1
- package/dist/controllers/permissions.d.ts +98 -165
- package/dist/controllers/permissions.js +688 -489
- package/dist/controllers/permissions.js.map +1 -1
- package/dist/controllers/protocol.cjs +15 -11
- package/dist/controllers/protocol.cjs.map +1 -1
- package/dist/controllers/protocol.d.ts +34 -84
- package/dist/controllers/protocol.js +15 -14
- package/dist/controllers/protocol.js.map +1 -1
- package/dist/controllers/schemas.cjs +57 -52
- package/dist/controllers/schemas.cjs.map +1 -1
- package/dist/controllers/schemas.d.ts +55 -61
- package/dist/controllers/schemas.js +57 -52
- package/dist/controllers/schemas.js.map +1 -1
- package/dist/controllers/server-additional.test.d.ts +1 -0
- package/dist/controllers/server.cjs +32 -25
- package/dist/controllers/server.cjs.map +1 -1
- package/dist/controllers/server.d.ts +53 -58
- package/dist/controllers/server.js +32 -25
- package/dist/controllers/server.js.map +1 -1
- package/dist/core/apiClient.cjs +68 -15
- package/dist/core/apiClient.cjs.map +1 -1
- package/dist/core/apiClient.d.ts +137 -16
- package/dist/core/apiClient.js +72 -22
- package/dist/core/apiClient.js.map +1 -1
- package/dist/core/client.cjs +7 -7
- package/dist/core/client.cjs.map +1 -1
- package/dist/core/client.d.ts +6 -9
- package/dist/core/client.js +7 -7
- package/dist/core/client.js.map +1 -1
- package/dist/core/core.test.d.ts +1 -0
- package/dist/core/generics.cjs +41 -12
- package/dist/core/generics.cjs.map +1 -1
- package/dist/core/generics.d.ts +104 -19
- package/dist/core/generics.js +52 -32
- package/dist/core/generics.js.map +1 -1
- package/dist/core/tests/apiClient.test.d.ts +1 -0
- package/dist/core/tests/client.test.d.ts +1 -0
- package/dist/core/tests/generics.test.d.ts +1 -0
- package/dist/core.cjs +115 -47
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +24 -74
- package/dist/core.js +137 -72
- package/dist/core.js.map +1 -1
- package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
- package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
- package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
- package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
- package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
- package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
- package/dist/crypto/ecies/base.cjs +4 -3
- package/dist/crypto/ecies/base.cjs.map +1 -1
- package/dist/crypto/ecies/base.d.ts +2 -5
- package/dist/crypto/ecies/base.js +12 -15
- package/dist/crypto/ecies/base.js.map +1 -1
- package/dist/crypto/ecies/browser.cjs +2 -1
- package/dist/crypto/ecies/browser.cjs.map +1 -1
- package/dist/crypto/ecies/browser.d.ts +2 -7
- package/dist/crypto/ecies/browser.js +2 -1
- package/dist/crypto/ecies/browser.js.map +1 -1
- package/dist/crypto/ecies/constants.d.ts +7 -9
- package/dist/crypto/ecies/index.d.ts +8 -1
- package/dist/crypto/ecies/interface.cjs +4 -5
- package/dist/crypto/ecies/interface.cjs.map +1 -1
- package/dist/crypto/ecies/interface.d.ts +9 -11
- package/dist/crypto/ecies/interface.js +4 -5
- package/dist/crypto/ecies/interface.js.map +1 -1
- package/dist/crypto/ecies/node.cjs +3 -2
- package/dist/crypto/ecies/node.cjs.map +1 -1
- package/dist/crypto/ecies/node.d.ts +2 -7
- package/dist/crypto/ecies/node.js +11 -16
- package/dist/crypto/ecies/node.js.map +1 -1
- package/dist/crypto/ecies/utils.cjs +2 -41
- package/dist/crypto/ecies/utils.cjs.map +1 -1
- package/dist/crypto/ecies/utils.d.ts +3 -40
- package/dist/crypto/ecies/utils.js +1 -35
- package/dist/crypto/ecies/utils.js.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
- package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
- package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
- package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
- package/dist/diagnostics.d.ts +1 -3
- package/dist/diagnostics.test.d.ts +1 -0
- package/dist/errors.cjs +16 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +53 -15
- package/dist/errors.js +18 -6
- package/dist/errors.js.map +1 -1
- package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -1
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -1
- package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
- package/dist/generated/abi/DATImplementation.d.ts +2 -3
- package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
- package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
- package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -1
- package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -1
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/index.d.ts +37 -39
- package/dist/generated/event-types.d.ts +9 -10
- package/dist/generated/eventRegistry.d.ts +3 -7
- package/dist/generated/server/server-exports.d.ts +19 -21
- package/dist/generated/server/server.cjs.map +1 -1
- package/dist/generated/server/server.d.ts +113 -87
- package/dist/generated/subgraph.cjs +797 -32
- package/dist/generated/subgraph.cjs.map +1 -1
- package/dist/generated/subgraph.d.ts +464 -332
- package/dist/generated/subgraph.js +792 -32
- package/dist/generated/subgraph.js.map +1 -1
- package/dist/index.browser.d.ts +47 -96
- package/dist/index.browser.js +12 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +14 -3
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +203 -87
- package/dist/index.node.js +14 -2
- package/dist/index.node.js.map +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +42 -2
- package/dist/node.js.map +1 -1
- package/dist/platform/browser-only.d.ts +5 -8
- package/dist/platform/browser-only.test.d.ts +1 -0
- package/dist/platform/browser-safe.d.ts +6 -9
- package/dist/platform/browser-safe.test.d.ts +1 -0
- package/dist/platform/browser.cjs +167 -8
- package/dist/platform/browser.cjs.map +1 -1
- package/dist/platform/browser.d.ts +235 -18
- package/dist/platform/browser.js +179 -29
- package/dist/platform/browser.js.map +1 -1
- package/dist/platform/browser.test.d.ts +1 -0
- package/dist/platform/index.d.ts +11 -5
- package/dist/platform/interface.cjs.map +1 -1
- package/dist/platform/interface.d.ts +289 -98
- package/dist/platform/node.cjs +163 -2
- package/dist/platform/node.cjs.map +1 -1
- package/dist/platform/node.d.ts +72 -13
- package/dist/platform/node.js +175 -21
- package/dist/platform/node.js.map +1 -1
- package/dist/platform/ports/openpgp-port.cjs +74 -0
- package/dist/platform/ports/openpgp-port.cjs.map +1 -0
- package/dist/platform/ports/openpgp-port.d.ts +13 -0
- package/dist/platform/ports/openpgp-port.js +59 -0
- package/dist/platform/ports/openpgp-port.js.map +1 -0
- package/dist/platform/ports/pgp-port.cjs +17 -0
- package/dist/platform/ports/pgp-port.cjs.map +1 -0
- package/dist/platform/ports/pgp-port.d.ts +35 -0
- package/dist/platform/ports/pgp-port.js +1 -0
- package/dist/platform/ports/pgp-port.js.map +1 -0
- package/dist/platform/shared/error-utils.d.ts +2 -4
- package/dist/platform/shared/pgp-utils.cjs +2 -2
- package/dist/platform/shared/pgp-utils.cjs.map +1 -1
- package/dist/platform/shared/pgp-utils.d.ts +3 -5
- package/dist/platform/shared/pgp-utils.js +2 -2
- package/dist/platform/shared/pgp-utils.js.map +1 -1
- package/dist/platform/shared/stream-utils.d.ts +1 -3
- package/dist/platform/utils.d.ts +6 -10
- package/dist/platform/utils.test.d.ts +1 -0
- package/dist/platform.browser.d.ts +9 -4
- package/dist/platform.d.ts +11 -5
- package/dist/platform.node.d.ts +10 -5
- package/dist/server/relayerHandler.cjs +337 -0
- package/dist/server/relayerHandler.cjs.map +1 -0
- package/dist/server/relayerHandler.d.ts +38 -0
- package/dist/server/relayerHandler.js +313 -0
- package/dist/server/relayerHandler.js.map +1 -0
- package/dist/storage/index.d.ts +56 -10
- package/dist/storage/manager.cjs +110 -27
- package/dist/storage/manager.cjs.map +1 -1
- package/dist/storage/manager.d.ts +121 -30
- package/dist/storage/manager.js +113 -37
- package/dist/storage/manager.js.map +1 -1
- package/dist/storage/providers/callback-storage.cjs +89 -18
- package/dist/storage/providers/callback-storage.cjs.map +1 -1
- package/dist/storage/providers/callback-storage.d.ts +111 -28
- package/dist/storage/providers/callback-storage.js +89 -18
- package/dist/storage/providers/callback-storage.js.map +1 -1
- package/dist/storage/providers/google-drive.cjs +2 -2
- package/dist/storage/providers/google-drive.cjs.map +1 -1
- package/dist/storage/providers/google-drive.d.ts +3 -7
- package/dist/storage/providers/google-drive.js +4 -7
- package/dist/storage/providers/google-drive.js.map +1 -1
- package/dist/storage/providers/google-drive.test.d.ts +1 -0
- package/dist/storage/providers/ipfs.cjs +5 -5
- package/dist/storage/providers/ipfs.cjs.map +1 -1
- package/dist/storage/providers/ipfs.d.ts +3 -6
- package/dist/storage/providers/ipfs.js +7 -10
- package/dist/storage/providers/ipfs.js.map +1 -1
- package/dist/storage/providers/pinata.cjs +6 -6
- package/dist/storage/providers/pinata.cjs.map +1 -1
- package/dist/storage/providers/pinata.d.ts +17 -22
- package/dist/storage/providers/pinata.js +8 -11
- package/dist/storage/providers/pinata.js.map +1 -1
- package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
- package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
- package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
- package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
- package/dist/storage/tests/storageManager.test.d.ts +1 -0
- package/dist/tests/abi.test.d.ts +1 -0
- package/dist/tests/chains-definitions.test.d.ts +1 -0
- package/dist/tests/core-encryption.test.d.ts +1 -0
- package/dist/tests/core-extended.test.d.ts +1 -0
- package/dist/tests/core-generics-coverage.test.d.ts +1 -0
- package/dist/tests/coverage-boost.test.d.ts +1 -0
- package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
- package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
- package/dist/tests/data-additional-methods.test.d.ts +1 -0
- package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
- package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
- package/dist/tests/data-relayer.test.d.ts +1 -0
- package/dist/tests/data-schema-validation.test.d.ts +1 -0
- package/dist/tests/data-simple-methods.test.d.ts +1 -0
- package/dist/tests/data.test.d.ts +1 -0
- package/dist/tests/demo-integration.test.d.ts +1 -0
- package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
- package/dist/tests/download-relayer.test.d.ts +1 -0
- package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
- package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
- package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
- package/dist/tests/encryption-coverage.test.d.ts +1 -0
- package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
- package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
- package/dist/tests/errors-coverage.test.d.ts +1 -0
- package/dist/tests/errors.test.d.ts +1 -0
- package/dist/tests/factories/mockFactory.d.ts +316 -0
- package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
- package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
- package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
- package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
- package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
- package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
- package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
- package/dist/tests/helper-methods.test.d.ts +1 -0
- package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
- package/dist/tests/helpers/typedMocks.d.ts +64 -0
- package/dist/tests/index-browser.test.d.ts +1 -0
- package/dist/tests/index-node.test.d.ts +1 -0
- package/dist/tests/index.test.d.ts +1 -0
- package/dist/tests/mocks/platformAdapter.d.ts +12 -0
- package/dist/tests/new-permissions-methods.test.d.ts +1 -0
- package/dist/tests/no-buffer-browser.test.d.ts +1 -0
- package/dist/tests/permissions-grantee.test.d.ts +1 -0
- package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
- package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
- package/dist/tests/permissions-server-files.test.d.ts +1 -0
- package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
- package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
- package/dist/tests/permissions.test.d.ts +1 -0
- package/dist/tests/personal.test.d.ts +1 -0
- package/dist/tests/platform-browser.test.d.ts +1 -0
- package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
- package/dist/tests/platform-crypto.test.d.ts +1 -0
- package/dist/tests/platform-index.test.d.ts +1 -0
- package/dist/tests/platform-node.test.d.ts +1 -0
- package/dist/tests/platform-shared-utils.test.d.ts +1 -0
- package/dist/tests/platform-updated.test.d.ts +1 -0
- package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
- package/dist/tests/protocol.test.d.ts +1 -0
- package/dist/tests/read-only-mode.test.d.ts +1 -0
- package/dist/tests/relayer-integration.test.d.ts +1 -0
- package/dist/tests/relayer-unified.test.d.ts +1 -0
- package/dist/tests/schemas.test.d.ts +1 -0
- package/dist/tests/server-relayer-handler.test.d.ts +1 -0
- package/dist/tests/setup.d.ts +7 -0
- package/dist/tests/signatureFormatter.test.d.ts +1 -0
- package/dist/tests/trusted-server-queries.test.d.ts +1 -0
- package/dist/tests/typedDataConverter.test.d.ts +1 -0
- package/dist/tests/types-contracts.test.d.ts +1 -0
- package/dist/tests/types-data.test.d.ts +1 -0
- package/dist/tests/types-external-apis.test.d.ts +1 -0
- package/dist/tests/types-generics.test.d.ts +1 -0
- package/dist/tests/types-permissions.test.d.ts +1 -0
- package/dist/tests/types-upload-params.test.d.ts +1 -0
- package/dist/tests/types.test.d.ts +1 -0
- package/dist/tests/utils-formatters.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles.test.d.ts +1 -0
- package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
- package/dist/tests/utils-grants.test.d.ts +1 -0
- package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
- package/dist/tests/utils-ipfs.test.d.ts +4 -0
- package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
- package/dist/tests/vana.test.d.ts +1 -0
- package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
- package/dist/types/blockchain.cjs.map +1 -1
- package/dist/types/blockchain.d.ts +46 -13
- package/dist/types/chains-additional.test.d.ts +1 -0
- package/dist/types/chains.cjs.map +1 -1
- package/dist/types/chains.d.ts +80 -16
- package/dist/types/chains.js.map +1 -1
- package/dist/types/config.cjs +10 -0
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.ts +236 -242
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/contracts.cjs.map +1 -1
- package/dist/types/contracts.d.ts +79 -18
- package/dist/types/controller-context.cjs.map +1 -1
- package/dist/types/controller-context.d.ts +17 -21
- package/dist/types/data.cjs.map +1 -1
- package/dist/types/data.d.ts +111 -49
- package/dist/types/external-apis.d.ts +10 -12
- package/dist/types/generics.cjs.map +1 -1
- package/dist/types/generics.d.ts +116 -48
- package/dist/types/index.cjs +5 -4
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +47 -22
- package/dist/types/index.js +9 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/operations.cjs +2 -2
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.ts +178 -32
- package/dist/types/operations.js +2 -2
- package/dist/types/operations.js.map +1 -1
- package/dist/types/options.cjs +17 -0
- package/dist/types/options.cjs.map +1 -0
- package/dist/types/options.d.ts +213 -0
- package/dist/types/options.js +1 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/permissions.cjs.map +1 -1
- package/dist/types/permissions.d.ts +72 -78
- package/dist/types/personal.cjs.map +1 -1
- package/dist/types/personal.d.ts +137 -22
- package/dist/types/relayer.cjs.map +1 -1
- package/dist/types/relayer.d.ts +293 -50
- package/dist/types/storage.cjs.map +1 -1
- package/dist/types/storage.d.ts +15 -29
- package/dist/types/storage.js +2 -5
- package/dist/types/storage.js.map +1 -1
- package/dist/types/transactionResults.d.ts +16 -18
- package/dist/types/utils.cjs.map +1 -1
- package/dist/types/utils.d.ts +20 -68
- package/dist/types.d.ts +4 -28
- package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
- package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
- package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
- package/dist/utils/__tests__/subgraphConsistency.test.d.ts +4 -0
- package/dist/utils/__tests__/subgraphPagination.test.d.ts +4 -0
- package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
- package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
- package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
- package/dist/utils/blockchain/registry.cjs +2 -2
- package/dist/utils/blockchain/registry.cjs.map +1 -1
- package/dist/utils/blockchain/registry.d.ts +6 -8
- package/dist/utils/blockchain/registry.js +2 -2
- package/dist/utils/blockchain/registry.js.map +1 -1
- package/dist/utils/blockchain/registry.test.d.ts +1 -0
- package/dist/utils/chainQuery.cjs +107 -0
- package/dist/utils/chainQuery.cjs.map +1 -0
- package/dist/utils/chainQuery.d.ts +31 -0
- package/dist/utils/chainQuery.js +82 -0
- package/dist/utils/chainQuery.js.map +1 -0
- package/dist/utils/crypto-utils.cjs +0 -12
- package/dist/utils/crypto-utils.cjs.map +1 -1
- package/dist/utils/crypto-utils.d.ts +9 -27
- package/dist/utils/crypto-utils.js +0 -11
- package/dist/utils/crypto-utils.js.map +1 -1
- package/dist/utils/crypto-utils.test.d.ts +1 -0
- package/dist/utils/download.cjs +3 -3
- package/dist/utils/download.cjs.map +1 -1
- package/dist/utils/download.d.ts +13 -14
- package/dist/utils/download.js +2 -2
- package/dist/utils/download.js.map +1 -1
- package/dist/utils/encoding.cjs +1 -1
- package/dist/utils/encoding.cjs.map +1 -1
- package/dist/utils/encoding.d.ts +4 -6
- package/dist/utils/encoding.js +1 -1
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/encoding.test.d.ts +1 -0
- package/dist/utils/encryption.cjs +16 -10
- package/dist/utils/encryption.cjs.map +1 -1
- package/dist/utils/encryption.d.ts +13 -17
- package/dist/utils/encryption.js +16 -10
- package/dist/utils/encryption.js.map +1 -1
- package/dist/utils/formatters.cjs +4 -2
- package/dist/utils/formatters.cjs.map +1 -1
- package/dist/utils/formatters.d.ts +4 -6
- package/dist/utils/formatters.js +4 -2
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/grantFiles.cjs +7 -4
- package/dist/utils/grantFiles.cjs.map +1 -1
- package/dist/utils/grantFiles.d.ts +16 -30
- package/dist/utils/grantFiles.js +7 -4
- package/dist/utils/grantFiles.js.map +1 -1
- package/dist/utils/grantValidation.cjs +1 -1
- package/dist/utils/grantValidation.cjs.map +1 -1
- package/dist/utils/grantValidation.d.ts +109 -33
- package/dist/utils/grantValidation.js +1 -1
- package/dist/utils/grantValidation.js.map +1 -1
- package/dist/utils/grants.cjs +1 -1
- package/dist/utils/grants.cjs.map +1 -1
- package/dist/utils/grants.d.ts +101 -23
- package/dist/utils/grants.js +1 -1
- package/dist/utils/grants.js.map +1 -1
- package/dist/utils/ipfs.cjs +2 -4
- package/dist/utils/ipfs.cjs.map +1 -1
- package/dist/utils/ipfs.d.ts +8 -10
- package/dist/utils/ipfs.js +2 -4
- package/dist/utils/ipfs.js.map +1 -1
- package/dist/utils/lazy-import.cjs +4 -6
- package/dist/utils/lazy-import.cjs.map +1 -1
- package/dist/utils/lazy-import.d.ts +33 -10
- package/dist/utils/lazy-import.js +4 -6
- package/dist/utils/lazy-import.js.map +1 -1
- package/dist/utils/multicall.cjs +4 -2
- package/dist/utils/multicall.cjs.map +1 -1
- package/dist/utils/multicall.d.ts +5 -8
- package/dist/utils/multicall.js +4 -2
- package/dist/utils/multicall.js.map +1 -1
- package/dist/utils/parseTransactionPojo.cjs.map +1 -1
- package/dist/utils/parseTransactionPojo.d.ts +4 -10
- package/dist/utils/parseTransactionPojo.js.map +1 -1
- package/dist/utils/schemaValidation.cjs +5 -5
- package/dist/utils/schemaValidation.cjs.map +1 -1
- package/dist/utils/schemaValidation.d.ts +8 -12
- package/dist/utils/schemaValidation.js +7 -10
- package/dist/utils/schemaValidation.js.map +1 -1
- package/dist/utils/signatureCache.cjs +9 -4
- package/dist/utils/signatureCache.cjs.map +1 -1
- package/dist/utils/signatureCache.d.ts +53 -15
- package/dist/utils/signatureCache.js +12 -10
- package/dist/utils/signatureCache.js.map +1 -1
- package/dist/utils/signatureFormatter.cjs +6 -9
- package/dist/utils/signatureFormatter.cjs.map +1 -1
- package/dist/utils/signatureFormatter.d.ts +2 -5
- package/dist/utils/signatureFormatter.js +6 -9
- package/dist/utils/signatureFormatter.js.map +1 -1
- package/dist/utils/subgraphConsistency.cjs +184 -0
- package/dist/utils/subgraphConsistency.cjs.map +1 -0
- package/dist/utils/subgraphConsistency.d.ts +65 -0
- package/dist/utils/subgraphConsistency.js +155 -0
- package/dist/utils/subgraphConsistency.js.map +1 -0
- package/dist/utils/subgraphMetaCache.cjs +101 -0
- package/dist/utils/subgraphMetaCache.cjs.map +1 -0
- package/dist/utils/subgraphMetaCache.d.ts +56 -0
- package/dist/utils/subgraphMetaCache.js +76 -0
- package/dist/utils/subgraphMetaCache.js.map +1 -0
- package/dist/utils/subgraphPagination.cjs +104 -0
- package/dist/utils/subgraphPagination.cjs.map +1 -0
- package/dist/utils/subgraphPagination.d.ts +78 -0
- package/dist/utils/subgraphPagination.js +78 -0
- package/dist/utils/subgraphPagination.js.map +1 -0
- package/dist/utils/tests/multicall.test.d.ts +1 -0
- package/dist/utils/transactionHelpers.cjs.map +1 -1
- package/dist/utils/transactionHelpers.d.ts +17 -23
- package/dist/utils/transactionHelpers.js.map +1 -1
- package/dist/utils/typeGuards.cjs +109 -0
- package/dist/utils/typeGuards.cjs.map +1 -0
- package/dist/utils/typeGuards.d.ts +138 -0
- package/dist/utils/typeGuards.js +74 -0
- package/dist/utils/typeGuards.js.map +1 -0
- package/dist/utils/typedDataConverter.cjs.map +1 -1
- package/dist/utils/typedDataConverter.d.ts +42 -9
- package/dist/utils/typedDataConverter.js.map +1 -1
- package/dist/utils/urlResolver.cjs +8 -1
- package/dist/utils/urlResolver.cjs.map +1 -1
- package/dist/utils/urlResolver.d.ts +24 -8
- package/dist/utils/urlResolver.js +9 -2
- package/dist/utils/urlResolver.js.map +1 -1
- package/dist/utils/wallet.cjs +63 -0
- package/dist/utils/wallet.cjs.map +1 -0
- package/dist/utils/wallet.d.ts +94 -0
- package/dist/utils/wallet.js +37 -0
- package/dist/utils/wallet.js.map +1 -0
- package/dist/utils/withEvents.cjs.map +1 -1
- package/dist/utils/withEvents.d.ts +5 -12
- package/dist/utils/withEvents.js.map +1 -1
- package/package.json +24 -16
- package/dist/browser.d.cts +0 -2
- package/dist/chains/definitions.d.cts +0 -53
- package/dist/chains/index.d.cts +0 -2
- package/dist/chains.browser.cjs +0 -37
- package/dist/chains.browser.cjs.map +0 -1
- package/dist/chains.browser.d.cts +0 -2
- package/dist/chains.d.cts +0 -2
- package/dist/chains.node.d.cts +0 -2
- package/dist/config/addresses.d.cts +0 -401
- package/dist/config/chains.d.cts +0 -85
- package/dist/config/features.d.cts +0 -64
- package/dist/contracts/contractController.d.cts +0 -117
- package/dist/controllers/data.d.cts +0 -915
- package/dist/controllers/permissions.d.cts +0 -1383
- package/dist/controllers/protocol.d.cts +0 -188
- package/dist/controllers/schemas.d.cts +0 -260
- package/dist/controllers/server.d.cts +0 -230
- package/dist/core/apiClient.d.cts +0 -165
- package/dist/core/client.d.cts +0 -92
- package/dist/core/generics.d.cts +0 -120
- package/dist/core.d.cts +0 -493
- package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
- package/dist/crypto/ecies/base.d.cts +0 -143
- package/dist/crypto/ecies/browser.d.cts +0 -48
- package/dist/crypto/ecies/constants.d.cts +0 -122
- package/dist/crypto/ecies/index.d.cts +0 -1
- package/dist/crypto/ecies/interface.d.cts +0 -176
- package/dist/crypto/ecies/node.d.cts +0 -50
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.cts +0 -76
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.ts +0 -76
- package/dist/crypto/ecies/utils.d.cts +0 -67
- package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
- package/dist/diagnostics.d.cts +0 -26
- package/dist/errors.d.cts +0 -350
- package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
- package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
- package/dist/generated/abi/DATImplementation.d.cts +0 -693
- package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
- package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
- package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
- package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
- package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
- package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
- package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
- package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1014
- package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
- package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
- package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
- package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
- package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
- package/dist/generated/abi/index.d.cts +0 -26547
- package/dist/generated/event-types.d.cts +0 -855
- package/dist/generated/eventRegistry.d.cts +0 -18
- package/dist/generated/server/server-exports.d.cts +0 -21
- package/dist/generated/server/server.d.cts +0 -512
- package/dist/generated/subgraph.d.cts +0 -5981
- package/dist/index.browser.cjs +0 -151
- package/dist/index.browser.cjs.map +0 -1
- package/dist/index.browser.d.cts +0 -201
- package/dist/index.d.cts +0 -2
- package/dist/index.node.d.cts +0 -87
- package/dist/node.d.cts +0 -2
- package/dist/platform/browser-only.d.cts +0 -25
- package/dist/platform/browser-safe.d.cts +0 -32
- package/dist/platform/browser.d.cts +0 -74
- package/dist/platform/index.d.cts +0 -5
- package/dist/platform/interface.d.cts +0 -218
- package/dist/platform/node.d.cts +0 -27
- package/dist/platform/shared/error-utils.d.cts +0 -25
- package/dist/platform/shared/pgp-utils.d.cts +0 -61
- package/dist/platform/shared/stream-utils.d.cts +0 -16
- package/dist/platform/utils.d.cts +0 -53
- package/dist/platform.browser.cjs +0 -41
- package/dist/platform.browser.cjs.map +0 -1
- package/dist/platform.browser.d.cts +0 -4
- package/dist/platform.d.cts +0 -5
- package/dist/platform.node.d.cts +0 -5
- package/dist/schemas/dataSchema.schema.d.cts +0 -88
- package/dist/schemas/dataSchema.schema.d.ts +0 -88
- package/dist/schemas/grantFile.schema.d.cts +0 -57
- package/dist/schemas/grantFile.schema.d.ts +0 -57
- package/dist/server/handler.cjs +0 -101
- package/dist/server/handler.cjs.map +0 -1
- package/dist/server/handler.d.cts +0 -306
- package/dist/server/handler.d.ts +0 -306
- package/dist/server/handler.js +0 -77
- package/dist/server/handler.js.map +0 -1
- package/dist/storage/index.d.cts +0 -10
- package/dist/storage/manager.d.cts +0 -150
- package/dist/storage/providers/callback-storage.d.cts +0 -100
- package/dist/storage/providers/google-drive.d.cts +0 -156
- package/dist/storage/providers/ipfs.d.cts +0 -163
- package/dist/storage/providers/pinata.d.cts +0 -173
- package/dist/types/blockchain.d.cts +0 -52
- package/dist/types/chains.d.cts +0 -34
- package/dist/types/config.d.cts +0 -726
- package/dist/types/contracts.d.cts +0 -68
- package/dist/types/controller-context.d.cts +0 -71
- package/dist/types/data.d.cts +0 -694
- package/dist/types/eccrypto-js.d.d.cts +0 -13
- package/dist/types/eccrypto-js.d.d.ts +0 -13
- package/dist/types/external-apis.d.cts +0 -186
- package/dist/types/generics.d.cts +0 -450
- package/dist/types/index.d.cts +0 -22
- package/dist/types/operations.d.cts +0 -116
- package/dist/types/permissions.d.cts +0 -957
- package/dist/types/personal.d.cts +0 -40
- package/dist/types/relayer.d.cts +0 -284
- package/dist/types/storage.d.cts +0 -131
- package/dist/types/transactionResults.d.cts +0 -195
- package/dist/types/utils.d.cts +0 -819
- package/dist/types.d.cts +0 -54
- package/dist/utils/blockchain/registry.d.cts +0 -34
- package/dist/utils/crypto-utils.d.cts +0 -118
- package/dist/utils/download.d.cts +0 -41
- package/dist/utils/encoding.d.cts +0 -54
- package/dist/utils/encryption.d.cts +0 -275
- package/dist/utils/formatters.d.cts +0 -120
- package/dist/utils/grantFiles.d.cts +0 -186
- package/dist/utils/grantValidation.d.cts +0 -150
- package/dist/utils/grants.d.cts +0 -70
- package/dist/utils/ipfs.d.cts +0 -90
- package/dist/utils/lazy-import.d.cts +0 -20
- package/dist/utils/multicall.d.cts +0 -129
- package/dist/utils/parseTransactionPojo.d.cts +0 -37
- package/dist/utils/schemaValidation.d.cts +0 -172
- package/dist/utils/signatureCache.d.cts +0 -134
- package/dist/utils/signatureFormatter.d.cts +0 -39
- package/dist/utils/transactionHelpers.d.cts +0 -86
- package/dist/utils/typedDataConverter.d.cts +0 -13
- package/dist/utils/urlResolver.d.cts +0 -40
- package/dist/utils/withEvents.d.cts +0 -63
|
@@ -1,106 +1,112 @@
|
|
|
1
|
-
import { Address } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ControllerContext } from
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import '../generated/server/server.js';
|
|
10
|
-
import '../platform/interface.js';
|
|
11
|
-
import '../types/config.js';
|
|
12
|
-
import '../types/chains.js';
|
|
13
|
-
import '../types/permissions.js';
|
|
14
|
-
import '../storage/manager.js';
|
|
15
|
-
|
|
1
|
+
import type { Address } from "viem";
|
|
2
|
+
import type { TransactionOptions, TransactionResult } from "../types/operations";
|
|
3
|
+
import type { StorageUploadResult } from "../types/storage";
|
|
4
|
+
import type { UserFile, UploadParams, UploadResult, UploadEncryptedFileResult, Refiner, AddRefinerParams, AddRefinerResult, UpdateSchemaIdParams, UpdateSchemaIdResult, TrustedServer, GetUserTrustedServersParams, EncryptedUploadParams, UnencryptedUploadParams, EncryptFileOptions, EncryptFileResult, DecryptFileOptions, UploadFileWithPermissionsParams, AddFilePermissionParams, DecryptFileWithPermissionOptions } from "../types/index";
|
|
5
|
+
import type { ControllerContext } from "./permissions";
|
|
6
|
+
import { BaseController } from "./base";
|
|
7
|
+
import type { ConsistencyOptions, PaginationOptions } from "../types/options";
|
|
8
|
+
import { type DataSchema } from "../utils/schemaValidation";
|
|
16
9
|
/**
|
|
17
|
-
* Manages encrypted user data files and
|
|
10
|
+
* Manages encrypted user data files and blockchain registration on the Vana network.
|
|
18
11
|
*
|
|
19
12
|
* @remarks
|
|
20
|
-
*
|
|
21
|
-
* blockchain registration
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* encryption before any data leaves the user's device.
|
|
13
|
+
* The DataController provides comprehensive file lifecycle management from encrypted upload
|
|
14
|
+
* through blockchain registration to decryption. Client-side encryption ensures data privacy
|
|
15
|
+
* before transmission. The controller integrates with multiple storage providers (IPFS, Pinata,
|
|
16
|
+
* Google Drive) and supports both gasless transactions via relayers and direct blockchain interaction.
|
|
25
17
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
18
|
+
* **Architecture:**
|
|
19
|
+
* Files use dual storage: encrypted content on decentralized storage (IPFS/Pinata/Google Drive),
|
|
20
|
+
* metadata and permissions on blockchain. This design minimizes on-chain data while maintaining
|
|
21
|
+
* decentralization and access control.
|
|
30
22
|
*
|
|
31
23
|
* **Method Selection:**
|
|
32
|
-
* - `upload()`
|
|
33
|
-
* - `getUserFiles()`
|
|
34
|
-
* - `decryptFile()`
|
|
35
|
-
* - `getFileById()`
|
|
24
|
+
* - `upload()` - Complete workflow: encryption, storage, blockchain registration
|
|
25
|
+
* - `getUserFiles()` - Query file metadata from blockchain/subgraph
|
|
26
|
+
* - `decryptFile()` - Decrypt files you have permission to access
|
|
27
|
+
* - `getFileById()` - Retrieve specific file metadata by ID
|
|
36
28
|
*
|
|
37
29
|
* **Storage Requirements:**
|
|
38
|
-
* Methods requiring storage
|
|
39
|
-
* Methods working without storage: `getUserFiles()`, `decryptFile()`, `getFileById()`
|
|
30
|
+
* - Methods requiring storage: `upload()`, `encryptFile()`
|
|
31
|
+
* - Methods working without storage: `getUserFiles()`, `decryptFile()`, `getFileById()`
|
|
32
|
+
*
|
|
33
|
+
* **Permission Model:**
|
|
34
|
+
* - File permissions (decryption access) are handled during upload
|
|
35
|
+
* - Operation permissions (what can be done with data) use `vana.permissions.grant()`
|
|
36
|
+
*
|
|
40
37
|
* @example
|
|
41
38
|
* ```typescript
|
|
42
|
-
* // Upload
|
|
39
|
+
* // Upload encrypted file with schema validation
|
|
43
40
|
* const result = await vana.data.upload({
|
|
44
|
-
* content:
|
|
45
|
-
* filename: "
|
|
41
|
+
* content: { name: "Alice", age: 30 },
|
|
42
|
+
* filename: "profile.json",
|
|
43
|
+
* schemaId: 1
|
|
46
44
|
* });
|
|
45
|
+
* console.log(`File uploaded: ID ${result.fileId}, URL ${result.url}`);
|
|
47
46
|
*
|
|
48
|
-
* // Query files
|
|
47
|
+
* // Query user's files
|
|
49
48
|
* const files = await vana.data.getUserFiles({
|
|
50
|
-
* owner: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36"
|
|
49
|
+
* owner: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36"
|
|
51
50
|
* });
|
|
51
|
+
* files.forEach(file => console.log(`File ${file.id}: ${file.url}`));
|
|
52
52
|
*
|
|
53
|
-
* // Decrypt accessible file
|
|
53
|
+
* // Decrypt accessible file
|
|
54
54
|
* const decryptedData = await vana.data.decryptFile(files[0]);
|
|
55
|
+
* console.log("Decrypted content:", decryptedData);
|
|
55
56
|
* ```
|
|
57
|
+
*
|
|
56
58
|
* @category Data Management
|
|
57
|
-
* @see {@link https://docs.vana.
|
|
59
|
+
* @see For conceptual overview, visit {@link https://docs.vana.org/docs/data-registry}
|
|
58
60
|
*/
|
|
59
|
-
declare class DataController {
|
|
60
|
-
private readonly context;
|
|
61
|
+
export declare class DataController extends BaseController {
|
|
61
62
|
constructor(context: ControllerContext);
|
|
62
63
|
/**
|
|
63
|
-
* Uploads
|
|
64
|
+
* Uploads data with automatic encryption and blockchain registration.
|
|
64
65
|
*
|
|
65
66
|
* @remarks
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* - Normalizes
|
|
72
|
-
* - Validates
|
|
73
|
-
* - Generates encryption keys
|
|
74
|
-
* - Uploads to
|
|
75
|
-
* - Grants
|
|
76
|
-
* - Registers
|
|
67
|
+
* Primary method for uploading data to Vana. Handles complete workflow:
|
|
68
|
+
* content normalization, schema validation, encryption, storage upload,
|
|
69
|
+
* permission granting, and blockchain registration.
|
|
70
|
+
*
|
|
71
|
+
* **Automatic Processing:**
|
|
72
|
+
* - Normalizes content to Blob format
|
|
73
|
+
* - Validates against schema if provided
|
|
74
|
+
* - Generates encryption keys
|
|
75
|
+
* - Uploads to configured storage
|
|
76
|
+
* - Grants decryption permissions
|
|
77
|
+
* - Registers on blockchain
|
|
77
78
|
*
|
|
78
79
|
* **TypeScript Overloads:**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* @param params -
|
|
91
|
-
*
|
|
92
|
-
* @param params.
|
|
93
|
-
* Obtain via `vana.
|
|
94
|
-
* @param params.
|
|
95
|
-
*
|
|
96
|
-
* @
|
|
97
|
-
* @
|
|
98
|
-
*
|
|
99
|
-
* @
|
|
100
|
-
*
|
|
101
|
-
* @throws {Error}
|
|
102
|
-
*
|
|
103
|
-
* @throws {Error}
|
|
80
|
+
* - `EncryptedUploadParams`: When `encrypt: true` (default), permissions require `publicKey`
|
|
81
|
+
* - `UnencryptedUploadParams`: When `encrypt: false`, permissions optional
|
|
82
|
+
* - `UploadParams`: General signature for runtime determination
|
|
83
|
+
*
|
|
84
|
+
* **Permission Separation:**
|
|
85
|
+
* - File permissions (here): Decryption access only
|
|
86
|
+
* - Operation permissions: Use `vana.permissions.grant()` separately
|
|
87
|
+
*
|
|
88
|
+
* @param params - Upload configuration object
|
|
89
|
+
* @param params.content - Data to upload (string, object, or Blob)
|
|
90
|
+
* @param params.filename - Name for the uploaded file
|
|
91
|
+
* @param params.permissions - Decryption access grants.
|
|
92
|
+
* Each requires `account` and `publicKey` for encryption.
|
|
93
|
+
* @param params.schemaId - Schema for validation.
|
|
94
|
+
* Obtain via `vana.schemas.list()`.
|
|
95
|
+
* @param params.owner - Owner address for delegation scenarios.
|
|
96
|
+
* Defaults to connected wallet address.
|
|
97
|
+
* @param params.encrypt - Enable encryption (default: `true`)
|
|
98
|
+
* @param params.providerName - Storage provider override
|
|
99
|
+
*
|
|
100
|
+
* @returns Upload result with file ID, URL, and transaction hash
|
|
101
|
+
*
|
|
102
|
+
* @throws {Error} Storage not configured.
|
|
103
|
+
* Configure storage providers in `VanaConfig`.
|
|
104
|
+
* @throws {Error} No wallet addresses available.
|
|
105
|
+
* Ensure wallet is connected.
|
|
106
|
+
* @throws {SchemaValidationError} Data doesn't match schema.
|
|
107
|
+
* Verify data structure matches schema from `vana.schemas.get(schemaId)`.
|
|
108
|
+
* @throws {Error} Upload failed with specific error message.
|
|
109
|
+
*
|
|
104
110
|
* @example
|
|
105
111
|
* ```typescript
|
|
106
112
|
* // Basic file upload
|
|
@@ -158,35 +164,78 @@ declare class DataController {
|
|
|
158
164
|
upload(params: UnencryptedUploadParams): Promise<UploadResult>;
|
|
159
165
|
upload(params: UploadParams): Promise<UploadResult>;
|
|
160
166
|
/**
|
|
161
|
-
*
|
|
167
|
+
* Encrypts data using wallet-derived encryption.
|
|
162
168
|
*
|
|
163
169
|
* @remarks
|
|
164
|
-
* This
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* decryption.
|
|
170
|
+
* This method provides secure, wallet-based encryption for data before uploading
|
|
171
|
+
* to the Vana network. It's the counterpart to decryptFile for preparing data
|
|
172
|
+
* for secure storage.
|
|
168
173
|
*
|
|
169
174
|
* The method automatically:
|
|
170
|
-
* - Generates
|
|
171
|
-
* -
|
|
172
|
-
* -
|
|
173
|
-
* -
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
* @param
|
|
180
|
-
* @
|
|
181
|
-
* @
|
|
182
|
-
* @
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
175
|
+
* - Generates an encryption key from the user's wallet signature
|
|
176
|
+
* - Converts the input data to a Blob if necessary
|
|
177
|
+
* - Encrypts the data using the generated key
|
|
178
|
+
* - Returns both the encrypted data and the encryption key
|
|
179
|
+
*
|
|
180
|
+
* The encryption key returned can be stored and later used for decryption,
|
|
181
|
+
* or shared with others to grant them decryption access.
|
|
182
|
+
*
|
|
183
|
+
* @param data - The data to encrypt (Blob, string, or object)
|
|
184
|
+
* @param options - Optional encryption configuration
|
|
185
|
+
* @returns Promise resolving to encrypted data and the encryption key used
|
|
186
|
+
* @throws {Error} When wallet is not connected or encryption fails
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* // Encrypt a string
|
|
190
|
+
* const { encryptedData, encryptionKey } = await vana.data.encryptFile(
|
|
191
|
+
* "My secret data"
|
|
192
|
+
* );
|
|
193
|
+
*
|
|
194
|
+
* // Encrypt JSON with custom MIME type
|
|
195
|
+
* const { encryptedData, encryptionKey } = await vana.data.encryptFile(
|
|
196
|
+
* { name: "Alice", age: 30 },
|
|
197
|
+
* { mimeType: "application/json" }
|
|
198
|
+
* );
|
|
199
|
+
*
|
|
200
|
+
* // With custom encryption seed
|
|
201
|
+
* const { encryptedData, encryptionKey } = await vana.data.encryptFile(
|
|
202
|
+
* "Secret message",
|
|
203
|
+
* { seed: "My custom encryption seed" }
|
|
204
|
+
* );
|
|
205
|
+
*
|
|
206
|
+
* // Upload the encrypted data
|
|
207
|
+
* const result = await vana.data.uploadToStorage(encryptedData);
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
encryptFile(data: Blob | string | object, options?: EncryptFileOptions): Promise<EncryptFileResult>;
|
|
211
|
+
/**
|
|
212
|
+
* Decrypts a file using wallet-derived decryption key.
|
|
213
|
+
*
|
|
214
|
+
* @remarks
|
|
215
|
+
* Counterpart to `upload()` for decrypting user files. Automatically
|
|
216
|
+
* generates decryption key from wallet, fetches encrypted content,
|
|
217
|
+
* and decrypts. Supports IPFS (with gateway fallback) and HTTP URLs.
|
|
218
|
+
*
|
|
219
|
+
* @param file - UserFile object from `getUserFiles()`
|
|
220
|
+
* @param options - Decryption options
|
|
221
|
+
* @param options.seed - Custom encryption seed.
|
|
222
|
+
* Defaults to standard Vana seed.
|
|
223
|
+
*
|
|
224
|
+
* @returns Decrypted content as Blob
|
|
225
|
+
*
|
|
226
|
+
* @throws {Error} No wallet connected.
|
|
227
|
+
* Connect wallet before decrypting.
|
|
228
|
+
* @throws {Error} Network error accessing file.
|
|
229
|
+
* Check CORS settings or server availability.
|
|
230
|
+
* @throws {Error} File not found (404).
|
|
231
|
+
* File no longer available at stored URL.
|
|
232
|
+
* @throws {Error} Access denied (403).
|
|
233
|
+
* No permission to access file.
|
|
234
|
+
* @throws {Error} Invalid file format.
|
|
235
|
+
* File not encrypted with Vana protocol.
|
|
236
|
+
* @throws {Error} Wrong encryption key.
|
|
237
|
+
* Verify seed matches upload or use default.
|
|
238
|
+
*
|
|
190
239
|
* @example
|
|
191
240
|
* ```typescript
|
|
192
241
|
* // Basic file decryption
|
|
@@ -212,44 +261,47 @@ declare class DataController {
|
|
|
212
261
|
* fs.writeFileSync('decrypted-file.txt', Buffer.from(buffer));
|
|
213
262
|
* ```
|
|
214
263
|
*/
|
|
215
|
-
decryptFile(file: UserFile,
|
|
264
|
+
decryptFile(file: UserFile, options?: DecryptFileOptions): Promise<Blob>;
|
|
216
265
|
/**
|
|
217
|
-
* Retrieves all
|
|
266
|
+
* Retrieves all files owned by a specific user address.
|
|
218
267
|
*
|
|
219
268
|
* @remarks
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
* @
|
|
231
|
-
*
|
|
232
|
-
* @
|
|
233
|
-
*
|
|
234
|
-
* @throws {Error}
|
|
235
|
-
*
|
|
236
|
-
* @throws {Error}
|
|
269
|
+
* Queries the Vana subgraph for files owned by the specified address.
|
|
270
|
+
* Automatically deduplicates by file ID, keeping the latest version
|
|
271
|
+
* when duplicates exist from re-indexing or chain reorganizations.
|
|
272
|
+
* Enriches results with DLP proof data when available.
|
|
273
|
+
*
|
|
274
|
+
* @param params - Query configuration
|
|
275
|
+
* @param params.owner - Wallet address of the file owner
|
|
276
|
+
* @param params.subgraphUrl - Subgraph endpoint override.
|
|
277
|
+
* Defaults to context configuration.
|
|
278
|
+
*
|
|
279
|
+
* @returns Array of UserFile objects sorted by timestamp (newest first)
|
|
280
|
+
*
|
|
281
|
+
* @throws {Error} Subgraph URL not configured.
|
|
282
|
+
* Provide `subgraphUrl` parameter or configure in Vana constructor.
|
|
283
|
+
* @throws {Error} Subgraph request failed.
|
|
284
|
+
* Check network connectivity and subgraph availability.
|
|
285
|
+
* @throws {Error} Subgraph returned errors.
|
|
286
|
+
* Review query parameters and subgraph logs.
|
|
287
|
+
*
|
|
237
288
|
* @example
|
|
238
289
|
* ```typescript
|
|
239
|
-
* // Query files for a specific user
|
|
240
290
|
* const files = await vana.data.getUserFiles({
|
|
241
|
-
* owner: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36"
|
|
291
|
+
* owner: "0x742d35Cc6558Fd4D9e9E0E888F0462ef6919Bd36"
|
|
242
292
|
* });
|
|
243
293
|
*
|
|
244
294
|
* files.forEach(file => {
|
|
245
|
-
* console.log(`File ${file.id}: ${file.url}
|
|
295
|
+
* console.log(`File ${file.id}: ${file.url}`);
|
|
296
|
+
* console.log(` Schema: ${file.schemaId}`);
|
|
297
|
+
* console.log(` DLPs: ${file.dlpIds?.join(", ") || "none"}`);
|
|
246
298
|
* });
|
|
247
299
|
* ```
|
|
248
300
|
*/
|
|
249
301
|
getUserFiles(params: {
|
|
250
302
|
owner: Address;
|
|
251
303
|
subgraphUrl?: string;
|
|
252
|
-
}): Promise<UserFile[]>;
|
|
304
|
+
}, options?: ConsistencyOptions & PaginationOptions): Promise<UserFile[]>;
|
|
253
305
|
/**
|
|
254
306
|
* Fetches proof data for multiple files from the subgraph.
|
|
255
307
|
*
|
|
@@ -290,6 +342,8 @@ declare class DataController {
|
|
|
290
342
|
*/
|
|
291
343
|
getDLP(dlpId: number, options?: {
|
|
292
344
|
subgraphUrl?: string;
|
|
345
|
+
minBlock?: number;
|
|
346
|
+
waitForSync?: number;
|
|
293
347
|
}): Promise<{
|
|
294
348
|
id: number;
|
|
295
349
|
name: string;
|
|
@@ -350,7 +404,7 @@ declare class DataController {
|
|
|
350
404
|
getUserPermissions(params: {
|
|
351
405
|
user: Address;
|
|
352
406
|
subgraphUrl?: string;
|
|
353
|
-
}): Promise<Array<{
|
|
407
|
+
}, options?: ConsistencyOptions & PaginationOptions): Promise<Array<{
|
|
354
408
|
id: string;
|
|
355
409
|
grant: string;
|
|
356
410
|
nonce: bigint;
|
|
@@ -413,7 +467,7 @@ declare class DataController {
|
|
|
413
467
|
* });
|
|
414
468
|
* ```
|
|
415
469
|
*/
|
|
416
|
-
getUserTrustedServers(params: GetUserTrustedServersParams): Promise<TrustedServer[]>;
|
|
470
|
+
getUserTrustedServers(params: GetUserTrustedServersParams, options?: ConsistencyOptions & PaginationOptions): Promise<TrustedServer[]>;
|
|
417
471
|
/**
|
|
418
472
|
* Internal method: Query trusted servers via subgraph
|
|
419
473
|
*
|
|
@@ -434,48 +488,56 @@ declare class DataController {
|
|
|
434
488
|
*/
|
|
435
489
|
private _getUserTrustedServersViaRpc;
|
|
436
490
|
/**
|
|
437
|
-
*
|
|
491
|
+
* Retrieves total file count from Data Registry.
|
|
492
|
+
*
|
|
493
|
+
* @remarks
|
|
494
|
+
* Queries blockchain for complete file count across all users.
|
|
495
|
+
* Useful for pagination and network statistics.
|
|
496
|
+
*
|
|
497
|
+
* @returns Total number of registered files
|
|
498
|
+
*
|
|
499
|
+
* @throws {Error} Chain ID not available.
|
|
500
|
+
* Ensure network connection.
|
|
501
|
+
* @throws {Error} Contract read failed.
|
|
502
|
+
* Check RPC availability.
|
|
438
503
|
*
|
|
439
|
-
* @returns Promise resolving to the total file count
|
|
440
504
|
* @example
|
|
441
505
|
* ```typescript
|
|
442
|
-
* const
|
|
443
|
-
* console.log(`Total files
|
|
506
|
+
* const total = await vana.data.getTotalFilesCount();
|
|
507
|
+
* console.log(`Total files: ${total}`);
|
|
444
508
|
*
|
|
445
|
-
* //
|
|
446
|
-
* const
|
|
447
|
-
* const totalPages = Math.ceil(totalFiles / filesPerPage);
|
|
448
|
-
* console.log(`Total pages: ${totalPages}`);
|
|
509
|
+
* // Calculate pagination
|
|
510
|
+
* const pages = Math.ceil(total / 20);
|
|
449
511
|
* ```
|
|
450
512
|
*/
|
|
451
513
|
getTotalFilesCount(): Promise<number>;
|
|
452
514
|
/**
|
|
453
|
-
* Retrieves
|
|
515
|
+
* Retrieves file metadata by ID from the blockchain.
|
|
516
|
+
*
|
|
517
|
+
* @remarks
|
|
518
|
+
* Queries DataRegistry contract directly for file details.
|
|
519
|
+
* Works for any file ID regardless of ownership, enabling
|
|
520
|
+
* cross-user file discovery and verification.
|
|
521
|
+
*
|
|
522
|
+
* @param fileId - Numeric file ID to retrieve
|
|
523
|
+
*
|
|
524
|
+
* @returns UserFile object with metadata
|
|
525
|
+
*
|
|
526
|
+
* @throws {Error} Chain ID not available.
|
|
527
|
+
* Ensure proper network connection.
|
|
528
|
+
* @throws {Error} File not found.
|
|
529
|
+
* Verify file ID exists on-chain.
|
|
530
|
+
* @throws {Error} Contract call failed.
|
|
531
|
+
* Check network and RPC availability.
|
|
454
532
|
*
|
|
455
|
-
* @param fileId - The file ID to look up
|
|
456
|
-
* @returns Promise resolving to UserFile object
|
|
457
|
-
* @throws {Error} "Chain ID not available" - When wallet chain is not configured
|
|
458
|
-
* @throws {Error} "File not found" - When file ID doesn't exist or returns empty data
|
|
459
|
-
* @throws {Error} "Failed to fetch file {fileId}: {error}" - General contract read failures
|
|
460
533
|
* @example
|
|
461
534
|
* ```typescript
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
*
|
|
465
|
-
*
|
|
466
|
-
*
|
|
467
|
-
* owner: file.ownerAddress,
|
|
468
|
-
* addedAt: file.addedAtBlock
|
|
469
|
-
* });
|
|
470
|
-
* } catch (error) {
|
|
471
|
-
* console.error('File not found or error retrieving file:', error);
|
|
472
|
-
* }
|
|
535
|
+
* const file = await vana.data.getFileById(123);
|
|
536
|
+
* console.log(`File ${file.id}:`);
|
|
537
|
+
* console.log(` URL: ${file.url}`);
|
|
538
|
+
* console.log(` Owner: ${file.ownerAddress}`);
|
|
539
|
+
* console.log(` Block: ${file.addedAtBlock}`);
|
|
473
540
|
* ```
|
|
474
|
-
*
|
|
475
|
-
* This method queries the DataRegistry contract directly
|
|
476
|
-
* to get file details for any file ID, regardless of user ownership.
|
|
477
|
-
* This is useful for file lookup functionality where users can search
|
|
478
|
-
* for specific files by ID.
|
|
479
541
|
*/
|
|
480
542
|
getFileById(fileId: number): Promise<UserFile>;
|
|
481
543
|
/**
|
|
@@ -501,14 +563,13 @@ declare class DataController {
|
|
|
501
563
|
* console.log(`File ${fileId} registered with schema in tx ${transactionHash}`);
|
|
502
564
|
* ```
|
|
503
565
|
*/
|
|
504
|
-
registerFileWithSchema(url: string, schemaId: number): Promise<TransactionResult<"DataRegistry", "addFileWithSchema">>;
|
|
566
|
+
registerFileWithSchema(url: string, schemaId: number, options?: TransactionOptions): Promise<TransactionResult<"DataRegistry", "addFileWithSchema">>;
|
|
505
567
|
/**
|
|
506
568
|
* Gets the user's address from the wallet client.
|
|
507
569
|
*
|
|
508
570
|
* @returns Promise resolving to the user's wallet address
|
|
509
571
|
* @throws {Error} When no addresses are available in wallet client
|
|
510
572
|
*/
|
|
511
|
-
private getUserAddress;
|
|
512
573
|
/**
|
|
513
574
|
* Adds a file with permissions to the DataRegistry contract.
|
|
514
575
|
*
|
|
@@ -528,94 +589,174 @@ declare class DataController {
|
|
|
528
589
|
addFileWithPermissions(url: string, ownerAddress: Address, permissions?: Array<{
|
|
529
590
|
account: Address;
|
|
530
591
|
key: string;
|
|
531
|
-
}
|
|
592
|
+
}>, options?: TransactionOptions): Promise<TransactionResult<"DataRegistry", "addFileWithPermissions">>;
|
|
532
593
|
/**
|
|
533
594
|
* Adds a file to the registry with permissions and schema.
|
|
534
595
|
* This combines the functionality of addFileWithPermissions and schema validation.
|
|
535
596
|
*
|
|
597
|
+
* @remarks
|
|
598
|
+
* This method automatically encrypts permissions when a publicKey is provided.
|
|
599
|
+
* It generates the user's encryption key and encrypts it with each recipient's
|
|
600
|
+
* public key before registering on the blockchain.
|
|
601
|
+
*
|
|
536
602
|
* @param url - The URL of the file to register
|
|
537
603
|
* @param ownerAddress - The address of the file owner
|
|
538
|
-
* @param permissions - Array of permissions to grant
|
|
604
|
+
* @param permissions - Array of permissions to grant, each with account and publicKey properties
|
|
539
605
|
* @param schemaId - The schema ID to associate with the file (0 for no schema)
|
|
540
|
-
* @returns Promise resolving to
|
|
541
|
-
* @throws {Error} When chain
|
|
542
|
-
* @throws {
|
|
543
|
-
* @throws {Error} When
|
|
544
|
-
* @throws {Error}
|
|
606
|
+
* @returns Promise resolving to TransactionResult with fileId and transactionHash
|
|
607
|
+
* @throws {Error} "Chain ID not available" - When wallet chain is not configured
|
|
608
|
+
* @throws {Error} "Failed to generate encryption key" - When encryption key generation fails
|
|
609
|
+
* @throws {Error} "Permission for {account} must include 'publicKey'" - When publicKey is missing
|
|
610
|
+
* @throws {Error} "Failed to add file with permissions and schema: {error}" - When transaction fails
|
|
611
|
+
* @example
|
|
612
|
+
* ```typescript
|
|
613
|
+
* // Get server's public key
|
|
614
|
+
* const serverIdentity = await vana.server.getIdentity({
|
|
615
|
+
* userAddress: "0x..."
|
|
616
|
+
* });
|
|
617
|
+
*
|
|
618
|
+
* // Add file with permissions and schema
|
|
619
|
+
* const result = await vana.data.addFileWithPermissionsAndSchema(
|
|
620
|
+
* "ipfs://QmXxx...",
|
|
621
|
+
* ownerAddress,
|
|
622
|
+
* [{
|
|
623
|
+
* account: serverIdentity.address,
|
|
624
|
+
* publicKey: serverIdentity.publicKey
|
|
625
|
+
* }],
|
|
626
|
+
* schemaId
|
|
627
|
+
* );
|
|
628
|
+
*
|
|
629
|
+
* console.log(`File ${result.fileId} registered in tx ${result.hash}`);
|
|
630
|
+
* ```
|
|
545
631
|
*/
|
|
546
632
|
addFileWithPermissionsAndSchema(url: string, ownerAddress: Address, permissions?: Array<{
|
|
633
|
+
account: Address;
|
|
634
|
+
publicKey: string;
|
|
635
|
+
}>, schemaId?: number, options?: TransactionOptions): Promise<TransactionResult<"DataRegistry", "addFileWithPermissionsAndSchema">>;
|
|
636
|
+
/**
|
|
637
|
+
* Adds a file with pre-encrypted permissions and schema to the DataRegistry.
|
|
638
|
+
*
|
|
639
|
+
* @remarks
|
|
640
|
+
* This method is designed for relay services and advanced use cases where permissions
|
|
641
|
+
* have already been encrypted client-side. Unlike `addFileWithPermissionsAndSchema()`,
|
|
642
|
+
* this method expects permissions in the encrypted format with a 'key' field instead
|
|
643
|
+
* of 'publicKey'.
|
|
644
|
+
*
|
|
645
|
+
* This is typically used by relay endpoints that receive pre-encrypted data from
|
|
646
|
+
* the client SDK's `upload()` method, avoiding double encryption.
|
|
647
|
+
*
|
|
648
|
+
* @param url - The storage URL of the file (e.g., IPFS URL)
|
|
649
|
+
* @param ownerAddress - The address that will own this file
|
|
650
|
+
* @param permissions - Array of pre-encrypted permissions with 'account' and 'key' fields
|
|
651
|
+
* @param schemaId - Optional schema ID for data validation (defaults to 0)
|
|
652
|
+
* @returns Promise resolving to transaction result with hash and contract details
|
|
653
|
+
* @throws {Error} When chain ID is not available
|
|
654
|
+
* @throws {Error} When wallet is not connected
|
|
655
|
+
* @throws {Error} When transaction fails
|
|
656
|
+
* @example
|
|
657
|
+
* ```typescript
|
|
658
|
+
* // In a relay endpoint that receives pre-encrypted permissions
|
|
659
|
+
* const result = await vana.data.addFileWithEncryptedPermissionsAndSchema(
|
|
660
|
+
* "ipfs://QmXxx...",
|
|
661
|
+
* ownerAddress,
|
|
662
|
+
* [
|
|
663
|
+
* {
|
|
664
|
+
* account: "0xServerAddress...",
|
|
665
|
+
* key: "encrypted_key_string" // Already encrypted by client
|
|
666
|
+
* }
|
|
667
|
+
* ],
|
|
668
|
+
* schemaId
|
|
669
|
+
* );
|
|
670
|
+
*
|
|
671
|
+
* console.log(`File registered in tx ${result.hash}`);
|
|
672
|
+
* ```
|
|
673
|
+
*/
|
|
674
|
+
addFileWithEncryptedPermissionsAndSchema(url: string, ownerAddress: Address, permissions?: Array<{
|
|
547
675
|
account: Address;
|
|
548
676
|
key: string;
|
|
549
|
-
}>, schemaId?: number): Promise<TransactionResult<"DataRegistry", "addFileWithPermissionsAndSchema">>;
|
|
677
|
+
}>, schemaId?: number, options?: TransactionOptions): Promise<TransactionResult<"DataRegistry", "addFileWithPermissionsAndSchema">>;
|
|
550
678
|
/**
|
|
551
|
-
*
|
|
679
|
+
* Registers a data refiner for processing templates.
|
|
552
680
|
*
|
|
553
681
|
* @remarks
|
|
554
|
-
* Refiners
|
|
555
|
-
*
|
|
556
|
-
*
|
|
557
|
-
*
|
|
558
|
-
*
|
|
559
|
-
* @param params - Refiner
|
|
560
|
-
* @param params.
|
|
561
|
-
*
|
|
562
|
-
* @param params.
|
|
563
|
-
*
|
|
564
|
-
* @returns
|
|
565
|
-
*
|
|
566
|
-
* @throws {Error}
|
|
682
|
+
* Refiners define data transformation rules for DLPs.
|
|
683
|
+
* Associates schema, instructions, and processing logic.
|
|
684
|
+
*
|
|
685
|
+
* @param params - Refiner configuration
|
|
686
|
+
* @param params.dlpId - Data Liquidity Pool ID
|
|
687
|
+
* @param params.name - Refiner display name
|
|
688
|
+
* @param params.schemaId - Output schema ID.
|
|
689
|
+
* Obtain via `vana.schemas.list()`.
|
|
690
|
+
* @param params.refinementInstructionUrl - Processing instructions URL
|
|
691
|
+
*
|
|
692
|
+
* @returns Refiner ID and transaction hash
|
|
693
|
+
*
|
|
694
|
+
* @throws {Error} Chain ID not available.
|
|
695
|
+
* Ensure network connection.
|
|
696
|
+
* @throws {Error} Transaction failed.
|
|
697
|
+
* Check wallet balance and network status.
|
|
698
|
+
*
|
|
567
699
|
* @example
|
|
568
700
|
* ```typescript
|
|
569
701
|
* const result = await vana.data.addRefiner({
|
|
570
702
|
* dlpId: 1,
|
|
571
|
-
* name: "
|
|
703
|
+
* name: "Sentiment Analyzer",
|
|
572
704
|
* schemaId: 42,
|
|
573
705
|
* refinementInstructionUrl: "ipfs://QmXxx..."
|
|
574
706
|
* });
|
|
575
|
-
* console.log(`
|
|
707
|
+
* console.log(`Refiner ${result.refinerId} created`);
|
|
576
708
|
* ```
|
|
577
709
|
*/
|
|
578
|
-
addRefiner(params: AddRefinerParams): Promise<AddRefinerResult>;
|
|
710
|
+
addRefiner(params: AddRefinerParams, options?: TransactionOptions): Promise<AddRefinerResult>;
|
|
579
711
|
/**
|
|
580
|
-
* Retrieves
|
|
712
|
+
* Retrieves refiner configuration by ID.
|
|
581
713
|
*
|
|
582
714
|
* @remarks
|
|
583
|
-
* Queries
|
|
584
|
-
*
|
|
715
|
+
* Queries DataRefinerRegistry for refiner details.
|
|
716
|
+
* Returns DLP association, schema, and processing instructions.
|
|
717
|
+
*
|
|
718
|
+
* @param refinerId - Numeric refiner ID
|
|
719
|
+
*
|
|
720
|
+
* @returns Refiner configuration object
|
|
721
|
+
*
|
|
722
|
+
* @throws {Error} Chain ID not available.
|
|
723
|
+
* Ensure network connection.
|
|
724
|
+
* @throws {Error} Refiner not found.
|
|
725
|
+
* Verify refiner ID exists.
|
|
726
|
+
* @throws {Error} Contract read failed.
|
|
727
|
+
* Check network and RPC status.
|
|
585
728
|
*
|
|
586
|
-
* @param refinerId - The numeric refiner ID to retrieve
|
|
587
|
-
* @returns Promise resolving to the refiner information object
|
|
588
|
-
* @throws {Error} When chain ID is not available - "Chain ID not available"
|
|
589
|
-
* @throws {Error} When refiner doesn't exist - "Refiner with ID {refinerId} does not exist"
|
|
590
|
-
* @throws {Error} When contract read fails - "Failed to fetch refiner: {error}"
|
|
591
729
|
* @example
|
|
592
730
|
* ```typescript
|
|
593
731
|
* const refiner = await vana.data.getRefiner(1);
|
|
594
|
-
* console.log({
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
* schema: refiner.schemaId,
|
|
598
|
-
* instructions: refiner.refinementInstructionUrl
|
|
599
|
-
* });
|
|
732
|
+
* console.log(`Refiner: ${refiner.name}`);
|
|
733
|
+
* console.log(`DLP: ${refiner.dlpId}`);
|
|
734
|
+
* console.log(`Schema: ${refiner.schemaId}`);
|
|
600
735
|
* ```
|
|
601
736
|
*/
|
|
602
737
|
getRefiner(refinerId: number): Promise<Refiner>;
|
|
603
738
|
/**
|
|
604
|
-
* Validates
|
|
739
|
+
* Validates schema ID existence.
|
|
605
740
|
*
|
|
606
741
|
* @remarks
|
|
607
|
-
*
|
|
608
|
-
*
|
|
742
|
+
* Verifies schema registration in DataRegistry.
|
|
743
|
+
* Check before using schemas for uploads.
|
|
744
|
+
*
|
|
745
|
+
* @param schemaId - Numeric schema ID to validate
|
|
746
|
+
*
|
|
747
|
+
* @returns True if schema exists, false otherwise
|
|
748
|
+
*
|
|
749
|
+
* @throws {Error} Chain ID not available.
|
|
750
|
+
* Ensure network connection.
|
|
751
|
+
* @throws {Error} Contract read failed.
|
|
752
|
+
* Check RPC availability.
|
|
609
753
|
*
|
|
610
|
-
* @param schemaId - The numeric schema ID to validate
|
|
611
|
-
* @returns Promise resolving to true if schema exists, false otherwise
|
|
612
754
|
* @example
|
|
613
755
|
* ```typescript
|
|
614
|
-
* const
|
|
615
|
-
* if (
|
|
616
|
-
*
|
|
617
|
-
*
|
|
618
|
-
* console.log('Schema 42 does not exist');
|
|
756
|
+
* const valid = await vana.data.isValidSchemaId(42);
|
|
757
|
+
* if (valid) {
|
|
758
|
+
* // Safe to use schema 42
|
|
759
|
+
* await vana.data.upload({ schemaId: 42, ... });
|
|
619
760
|
* }
|
|
620
761
|
* ```
|
|
621
762
|
*/
|
|
@@ -657,7 +798,7 @@ declare class DataController {
|
|
|
657
798
|
* console.log(`Schema updated in tx ${result.transactionHash}`);
|
|
658
799
|
* ```
|
|
659
800
|
*/
|
|
660
|
-
updateSchemaId(params: UpdateSchemaIdParams): Promise<UpdateSchemaIdResult>;
|
|
801
|
+
updateSchemaId(params: UpdateSchemaIdParams, options?: TransactionOptions): Promise<UpdateSchemaIdResult>;
|
|
661
802
|
/**
|
|
662
803
|
* Uploads an encrypted file and grants permission to a party with a public key.
|
|
663
804
|
*
|
|
@@ -667,16 +808,10 @@ declare class DataController {
|
|
|
667
808
|
* 3. Encrypts the user's encryption key with the provided public key
|
|
668
809
|
* 4. Registers the file with permissions
|
|
669
810
|
*
|
|
670
|
-
* @param
|
|
671
|
-
* @param permissions - Array of permissions to grant, each with account address and public key
|
|
672
|
-
* @param filename - Optional filename for the upload
|
|
673
|
-
* @param providerName - Optional storage provider to use
|
|
811
|
+
* @param params - Upload parameters including data, permissions, and options
|
|
674
812
|
* @returns Promise resolving to upload result with file ID and storage URL
|
|
675
813
|
*/
|
|
676
|
-
uploadFileWithPermissions(
|
|
677
|
-
account: Address;
|
|
678
|
-
publicKey: string;
|
|
679
|
-
}>, filename?: string, providerName?: string): Promise<UploadEncryptedFileResult>;
|
|
814
|
+
uploadFileWithPermissions(params: UploadFileWithPermissionsParams): Promise<UploadEncryptedFileResult>;
|
|
680
815
|
/**
|
|
681
816
|
* Uploads content to storage without registering it on the blockchain.
|
|
682
817
|
* This method only handles the storage upload and returns the file URL.
|
|
@@ -700,21 +835,27 @@ declare class DataController {
|
|
|
700
835
|
* For advanced users who need more control over transaction timing,
|
|
701
836
|
* use `submitFilePermission()` instead.
|
|
702
837
|
*
|
|
703
|
-
* @param
|
|
704
|
-
* @param
|
|
705
|
-
* @param
|
|
838
|
+
* @param params - Parameters for adding file permission
|
|
839
|
+
* @param params.fileId - The ID of the file to grant permission for
|
|
840
|
+
* @param params.account - The recipient's wallet address that will access the file
|
|
841
|
+
* @param params.publicKey - The recipient's public key for encryption.
|
|
842
|
+
* Obtain via `vana.server.getIdentity(account).publicKey`
|
|
706
843
|
* @returns Promise resolving to permission data from PermissionGranted event
|
|
707
844
|
* @throws {Error} "No addresses available in wallet client" - When wallet is not connected
|
|
708
845
|
* @throws {Error} "Chain ID not available" - When wallet chain is not configured
|
|
709
846
|
* @throws {Error} "Failed to add permission to file: {error}" - When transaction fails or user doesn't own file
|
|
710
847
|
* @example
|
|
711
848
|
* ```typescript
|
|
712
|
-
* const result = await vana.data.addPermissionToFile(
|
|
849
|
+
* const result = await vana.data.addPermissionToFile({
|
|
850
|
+
* fileId: 123,
|
|
851
|
+
* account: "0xRecipientAddress...",
|
|
852
|
+
* publicKey: "0xRecipientPublicKey..."
|
|
853
|
+
* });
|
|
713
854
|
* console.log(`Permission granted to ${result.account} for file ${result.fileId}`);
|
|
714
855
|
* console.log(`Transaction: ${result.transactionHash}`);
|
|
715
856
|
* ```
|
|
716
857
|
*/
|
|
717
|
-
addPermissionToFile(
|
|
858
|
+
addPermissionToFile(params: AddFilePermissionParams, options?: TransactionOptions): Promise<TransactionResult<"DataRegistry", "addFilePermission">>;
|
|
718
859
|
/**
|
|
719
860
|
* Submits a file permission transaction to the blockchain.
|
|
720
861
|
*
|
|
@@ -726,7 +867,7 @@ declare class DataController {
|
|
|
726
867
|
* @param fileId - The ID of the file to grant permission for
|
|
727
868
|
* @param account - The recipient's wallet address that will access the file
|
|
728
869
|
* @param publicKey - The recipient's public key for encryption.
|
|
729
|
-
* Obtain via `vana.server.getIdentity(account).
|
|
870
|
+
* Obtain via `vana.server.getIdentity(account).publicKey`
|
|
730
871
|
* @returns Promise resolving to TransactionResult for tracking the transaction
|
|
731
872
|
* @throws {Error} When chain ID is not available
|
|
732
873
|
* @throws {Error} When encryption key generation fails
|
|
@@ -743,7 +884,7 @@ declare class DataController {
|
|
|
743
884
|
* console.log(`Permission granted with ID: ${result.permissionId}`);
|
|
744
885
|
* ```
|
|
745
886
|
*/
|
|
746
|
-
submitFilePermission(fileId: number, account: Address, publicKey: string): Promise<TransactionResult<"DataRegistry", "addFilePermission">>;
|
|
887
|
+
submitFilePermission(fileId: number, account: Address, publicKey: string, options?: TransactionOptions): Promise<TransactionResult<"DataRegistry", "addFilePermission">>;
|
|
747
888
|
/**
|
|
748
889
|
* Gets the encrypted key for a specific account's permission to access a file.
|
|
749
890
|
*
|
|
@@ -762,10 +903,11 @@ declare class DataController {
|
|
|
762
903
|
*
|
|
763
904
|
* @param file - The file to decrypt
|
|
764
905
|
* @param privateKey - The private key to decrypt the user's encryption key
|
|
765
|
-
* @param
|
|
906
|
+
* @param options - Optional decryption configuration
|
|
907
|
+
* @param options.account - The account address that has permission (defaults to current wallet account)
|
|
766
908
|
* @returns Promise resolving to the decrypted file data
|
|
767
909
|
*/
|
|
768
|
-
decryptFileWithPermission(file: UserFile, privateKey: string,
|
|
910
|
+
decryptFileWithPermission(file: UserFile, privateKey: string, options?: DecryptFileWithPermissionOptions): Promise<Blob>;
|
|
769
911
|
/**
|
|
770
912
|
* Simple network-agnostic fetch utility for retrieving file content.
|
|
771
913
|
*
|
|
@@ -911,5 +1053,3 @@ declare class DataController {
|
|
|
911
1053
|
*/
|
|
912
1054
|
fetchAndValidateSchema(url: string): Promise<DataSchema>;
|
|
913
1055
|
}
|
|
914
|
-
|
|
915
|
-
export { DataController };
|