@opendatalabs/vana-sdk 2.2.3 → 3.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.
- package/README.md +76 -92
- package/dist/auth/errors.cjs +54 -0
- package/dist/auth/errors.cjs.map +1 -0
- package/dist/auth/errors.d.ts +26 -0
- package/dist/auth/errors.js +28 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/pkce.cjs +100 -0
- package/dist/auth/pkce.cjs.map +1 -0
- package/dist/auth/pkce.d.ts +55 -0
- package/dist/auth/pkce.js +71 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/token-store.cjs +59 -0
- package/dist/auth/token-store.cjs.map +1 -0
- package/dist/auth/token-store.d.ts +61 -0
- package/dist/auth/token-store.js +35 -0
- package/dist/auth/token-store.js.map +1 -0
- package/dist/auth/web3-signed-builder.cjs +70 -0
- package/dist/auth/web3-signed-builder.cjs.map +1 -0
- package/dist/auth/web3-signed-builder.d.ts +47 -0
- package/dist/auth/web3-signed-builder.js +45 -0
- package/dist/auth/web3-signed-builder.js.map +1 -0
- package/dist/auth/web3-signed.cjs +125 -0
- package/dist/auth/web3-signed.cjs.map +1 -0
- package/dist/auth/web3-signed.d.ts +59 -0
- package/dist/auth/web3-signed.js +104 -0
- package/dist/auth/web3-signed.js.map +1 -0
- package/dist/chains/definitions.cjs +2 -6
- package/dist/chains/definitions.cjs.map +1 -1
- package/dist/chains/definitions.d.ts +1 -7
- package/dist/chains/definitions.js +2 -6
- package/dist/chains/definitions.js.map +1 -1
- package/dist/config/chains.d.ts +18 -0
- package/dist/config/contracts.config.cjs +7 -95
- package/dist/config/contracts.config.cjs.map +1 -1
- package/dist/config/contracts.config.d.ts +0 -54
- package/dist/config/contracts.config.js +6 -93
- package/dist/config/contracts.config.js.map +1 -1
- package/dist/config/default-services.cjs +0 -10
- package/dist/config/default-services.cjs.map +1 -1
- package/dist/config/default-services.d.ts +1 -20
- package/dist/config/default-services.js +0 -9
- package/dist/config/default-services.js.map +1 -1
- package/dist/crypto/ecies/interface.cjs +2 -0
- package/dist/crypto/ecies/interface.cjs.map +1 -1
- package/dist/crypto/ecies/interface.js +2 -0
- package/dist/crypto/ecies/interface.js.map +1 -1
- package/dist/crypto/envelope/openpgp.cjs +59 -0
- package/dist/crypto/envelope/openpgp.cjs.map +1 -0
- package/dist/crypto/envelope/openpgp.d.ts +28 -0
- package/dist/crypto/envelope/openpgp.js +24 -0
- package/dist/crypto/envelope/openpgp.js.map +1 -0
- package/dist/crypto/keys/derive.cjs +65 -0
- package/dist/crypto/keys/derive.cjs.map +1 -0
- package/dist/crypto/keys/derive.d.ts +45 -0
- package/dist/crypto/keys/derive.js +38 -0
- package/dist/crypto/keys/derive.js.map +1 -0
- package/dist/errors.cjs +10 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -1
- package/dist/generated/abi/VanaPoolEntityImplementation.cjs +65 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -1
- package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +51 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.js +65 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -1
- package/dist/generated/abi/VanaPoolStakingImplementation.cjs +187 -19
- package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -1
- package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +144 -14
- package/dist/generated/abi/VanaPoolStakingImplementation.js +187 -19
- package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -1
- package/dist/generated/abi/index.cjs +2 -37
- package/dist/generated/abi/index.cjs.map +1 -1
- package/dist/generated/abi/index.d.ts +2687 -9119
- package/dist/generated/abi/index.js +2 -29
- package/dist/generated/abi/index.js.map +1 -1
- package/dist/generated/addresses.cjs +5 -107
- package/dist/generated/addresses.cjs.map +1 -1
- package/dist/generated/addresses.d.ts +5 -99
- package/dist/generated/addresses.js +5 -105
- package/dist/generated/addresses.js.map +1 -1
- package/dist/index.browser.d.ts +23 -138
- package/dist/index.browser.js +32090 -112
- package/dist/index.browser.js.map +7 -1
- package/dist/index.node.cjs +32809 -157
- package/dist/index.node.cjs.map +7 -1
- package/dist/index.node.d.ts +22 -208
- package/dist/index.node.js +32716 -131
- package/dist/index.node.js.map +7 -1
- package/dist/protocol/data-file.cjs +56 -0
- package/dist/protocol/data-file.cjs.map +1 -0
- package/dist/protocol/data-file.d.ts +20 -0
- package/dist/protocol/data-file.js +30 -0
- package/dist/protocol/data-file.js.map +1 -0
- package/dist/protocol/eip712.cjs +123 -0
- package/dist/protocol/eip712.cjs.map +1 -0
- package/dist/protocol/eip712.d.ts +117 -0
- package/dist/protocol/eip712.js +90 -0
- package/dist/protocol/eip712.js.map +1 -0
- package/dist/protocol/gateway.cjs +226 -0
- package/dist/protocol/gateway.cjs.map +1 -0
- package/dist/protocol/gateway.d.ts +120 -0
- package/dist/protocol/gateway.js +202 -0
- package/dist/protocol/gateway.js.map +1 -0
- package/dist/protocol/scopes.cjs +78 -0
- package/dist/protocol/scopes.cjs.map +1 -0
- package/dist/protocol/scopes.d.ts +13 -0
- package/dist/protocol/scopes.js +50 -0
- package/dist/protocol/scopes.js.map +1 -0
- package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
- package/dist/storage/default.cjs.map +1 -0
- package/dist/storage/default.d.ts +4 -0
- package/dist/storage/default.js +8 -0
- package/dist/storage/default.js.map +1 -0
- package/dist/storage/index.cjs +11 -2
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.ts +9 -0
- package/dist/storage/index.js +7 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/providers/callback-storage.cjs +1 -0
- package/dist/storage/providers/callback-storage.cjs.map +1 -1
- package/dist/storage/providers/callback-storage.js +1 -0
- package/dist/storage/providers/callback-storage.js.map +1 -1
- package/dist/storage/providers/dropbox.cjs +1 -0
- package/dist/storage/providers/dropbox.cjs.map +1 -1
- package/dist/storage/providers/dropbox.js +1 -0
- package/dist/storage/providers/dropbox.js.map +1 -1
- package/dist/storage/providers/google-drive.cjs +1 -0
- package/dist/storage/providers/google-drive.cjs.map +1 -1
- package/dist/storage/providers/google-drive.js +1 -0
- package/dist/storage/providers/google-drive.js.map +1 -1
- package/dist/storage/providers/ipfs.cjs +1 -0
- package/dist/storage/providers/ipfs.cjs.map +1 -1
- package/dist/storage/providers/ipfs.js +1 -0
- package/dist/storage/providers/ipfs.js.map +1 -1
- package/dist/storage/providers/pinata.cjs +1 -0
- package/dist/storage/providers/pinata.cjs.map +1 -1
- package/dist/storage/providers/pinata.js +1 -0
- package/dist/storage/providers/pinata.js.map +1 -1
- package/dist/storage/providers/r2.cjs +376 -0
- package/dist/storage/providers/r2.cjs.map +1 -0
- package/dist/storage/providers/r2.d.ts +91 -0
- package/dist/storage/providers/r2.js +354 -0
- package/dist/storage/providers/r2.js.map +1 -0
- package/dist/storage/providers/vana-storage.cjs +251 -0
- package/dist/storage/providers/vana-storage.cjs.map +1 -0
- package/dist/storage/providers/vana-storage.d.ts +100 -0
- package/dist/storage/providers/vana-storage.js +231 -0
- package/dist/storage/providers/vana-storage.js.map +1 -0
- package/dist/types/config.cjs +0 -34
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.ts +1 -607
- package/dist/types/config.js +0 -22
- package/dist/types/config.js.map +1 -1
- package/dist/types/contracts.cjs.map +1 -1
- package/dist/types/contracts.d.ts +1 -1
- package/dist/types/index.cjs +2 -33
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +2 -33
- package/dist/types/index.js +1 -35
- package/dist/types/index.js.map +1 -1
- package/dist/types/ps-errors.cjs +66 -0
- package/dist/types/ps-errors.cjs.map +1 -0
- package/dist/types/ps-errors.d.ts +25 -0
- package/dist/types/ps-errors.js +41 -0
- package/dist/types/ps-errors.js.map +1 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +0 -29
- package/dist/types.js.map +1 -1
- package/package.json +7 -25
- package/dist/client/enhancedResponse.cjs +0 -164
- package/dist/client/enhancedResponse.cjs.map +0 -1
- package/dist/client/enhancedResponse.d.ts +0 -120
- package/dist/client/enhancedResponse.js +0 -138
- package/dist/client/enhancedResponse.js.map +0 -1
- package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
- package/dist/controllers/base.cjs +0 -116
- package/dist/controllers/base.cjs.map +0 -1
- package/dist/controllers/base.d.ts +0 -94
- package/dist/controllers/base.js +0 -92
- package/dist/controllers/base.js.map +0 -1
- package/dist/controllers/data.cjs +0 -2633
- package/dist/controllers/data.cjs.map +0 -1
- package/dist/controllers/data.d.ts +0 -1067
- package/dist/controllers/data.js +0 -2626
- package/dist/controllers/data.js.map +0 -1
- package/dist/controllers/operations.cjs +0 -430
- package/dist/controllers/operations.cjs.map +0 -1
- package/dist/controllers/operations.d.ts +0 -229
- package/dist/controllers/operations.js +0 -406
- package/dist/controllers/operations.js.map +0 -1
- package/dist/controllers/permissions.cjs +0 -4368
- package/dist/controllers/permissions.cjs.map +0 -1
- package/dist/controllers/permissions.d.ts +0 -1411
- package/dist/controllers/permissions.js +0 -4344
- package/dist/controllers/permissions.js.map +0 -1
- package/dist/controllers/protocol.cjs +0 -183
- package/dist/controllers/protocol.cjs.map +0 -1
- package/dist/controllers/protocol.d.ts +0 -138
- package/dist/controllers/protocol.js +0 -163
- package/dist/controllers/protocol.js.map +0 -1
- package/dist/controllers/schemas.cjs +0 -678
- package/dist/controllers/schemas.cjs.map +0 -1
- package/dist/controllers/schemas.d.ts +0 -293
- package/dist/controllers/schemas.js +0 -654
- package/dist/controllers/schemas.js.map +0 -1
- package/dist/controllers/server.cjs +0 -643
- package/dist/controllers/server.cjs.map +0 -1
- package/dist/controllers/server.d.ts +0 -322
- package/dist/controllers/server.js +0 -624
- package/dist/controllers/server.js.map +0 -1
- package/dist/core/__tests__/pollingManager.test.d.ts +0 -4
- package/dist/core/apiClient.cjs +0 -378
- package/dist/core/apiClient.cjs.map +0 -1
- package/dist/core/apiClient.d.ts +0 -286
- package/dist/core/apiClient.js +0 -359
- package/dist/core/apiClient.js.map +0 -1
- package/dist/core/generics.cjs +0 -417
- package/dist/core/generics.cjs.map +0 -1
- package/dist/core/generics.d.ts +0 -205
- package/dist/core/generics.js +0 -386
- package/dist/core/generics.js.map +0 -1
- package/dist/core/health.cjs +0 -289
- package/dist/core/health.cjs.map +0 -1
- package/dist/core/health.d.ts +0 -143
- package/dist/core/health.js +0 -265
- package/dist/core/health.js.map +0 -1
- package/dist/core/inMemoryNonceManager.cjs +0 -138
- package/dist/core/inMemoryNonceManager.cjs.map +0 -1
- package/dist/core/inMemoryNonceManager.d.ts +0 -69
- package/dist/core/inMemoryNonceManager.js +0 -114
- package/dist/core/inMemoryNonceManager.js.map +0 -1
- package/dist/core/nonceManager.cjs +0 -304
- package/dist/core/nonceManager.cjs.map +0 -1
- package/dist/core/nonceManager.d.ts +0 -116
- package/dist/core/nonceManager.js +0 -280
- package/dist/core/nonceManager.js.map +0 -1
- package/dist/core/pollingManager.cjs +0 -292
- package/dist/core/pollingManager.cjs.map +0 -1
- package/dist/core/pollingManager.d.ts +0 -120
- package/dist/core/pollingManager.js +0 -268
- package/dist/core/pollingManager.js.map +0 -1
- package/dist/core.cjs +0 -777
- package/dist/core.cjs.map +0 -1
- package/dist/core.d.ts +0 -493
- package/dist/core.js +0 -752
- package/dist/core.js.map +0 -1
- package/dist/diagnostics.cjs +0 -37
- package/dist/diagnostics.cjs.map +0 -1
- package/dist/diagnostics.d.ts +0 -24
- package/dist/diagnostics.js +0 -13
- package/dist/diagnostics.js.map +0 -1
- package/dist/diagnostics.test.d.ts +0 -1
- package/dist/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
- package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
- package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
- package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
- package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
- package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
- package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
- package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
- package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
- package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
- package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
- package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
- package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
- package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
- package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
- package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
- package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
- package/dist/generated/abi/DLPRootImplementation.js +0 -1620
- package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
- package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
- package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
- package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
- package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
- package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
- package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
- package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
- package/dist/generated/abi/SwapHelperImplementation.js +0 -952
- package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
- package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
- package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
- package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
- package/dist/generated/abi/TeePoolImplementation.js +0 -1289
- package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
- package/dist/generated/event-types.cjs +0 -17
- package/dist/generated/event-types.cjs.map +0 -1
- package/dist/generated/event-types.d.ts +0 -809
- package/dist/generated/event-types.js +0 -1
- package/dist/generated/event-types.js.map +0 -1
- package/dist/generated/eventRegistry.cjs +0 -4470
- package/dist/generated/eventRegistry.cjs.map +0 -1
- package/dist/generated/eventRegistry.d.ts +0 -14
- package/dist/generated/eventRegistry.js +0 -4445
- package/dist/generated/eventRegistry.js.map +0 -1
- package/dist/generated/server/server-exports.cjs +0 -45
- package/dist/generated/server/server-exports.cjs.map +0 -1
- package/dist/generated/server/server-exports.d.ts +0 -36
- package/dist/generated/server/server-exports.js +0 -19
- package/dist/generated/server/server-exports.js.map +0 -1
- package/dist/generated/server/server.cjs +0 -17
- package/dist/generated/server/server.cjs.map +0 -1
- package/dist/generated/server/server.d.ts +0 -907
- package/dist/generated/server/server.js +0 -1
- package/dist/generated/server/server.js.map +0 -1
- package/dist/generated/subgraph.cjs +0 -1440
- package/dist/generated/subgraph.cjs.map +0 -1
- package/dist/generated/subgraph.d.ts +0 -6113
- package/dist/generated/subgraph.js +0 -1404
- package/dist/generated/subgraph.js.map +0 -1
- package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
- package/dist/lib/redisAtomicStore.cjs +0 -201
- package/dist/lib/redisAtomicStore.cjs.map +0 -1
- package/dist/lib/redisAtomicStore.d.ts +0 -120
- package/dist/lib/redisAtomicStore.js +0 -177
- package/dist/lib/redisAtomicStore.js.map +0 -1
- package/dist/server/relayerHandler.cjs +0 -452
- package/dist/server/relayerHandler.cjs.map +0 -1
- package/dist/server/relayerHandler.d.ts +0 -69
- package/dist/server/relayerHandler.js +0 -428
- package/dist/server/relayerHandler.js.map +0 -1
- package/dist/tests/abi.test.d.ts +0 -1
- package/dist/tests/chains-definitions.test.d.ts +0 -1
- package/dist/tests/core-encryption.test.d.ts +0 -1
- package/dist/tests/core-extended.test.d.ts +0 -1
- package/dist/tests/core-generics-coverage.test.d.ts +0 -1
- package/dist/tests/coverage-boost.test.d.ts +0 -1
- package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
- package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
- package/dist/tests/data-additional-methods.test.d.ts +0 -1
- package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
- package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
- package/dist/tests/data-relayer.test.d.ts +0 -1
- package/dist/tests/data-schema-validation.test.d.ts +0 -1
- package/dist/tests/data-simple-methods.test.d.ts +0 -1
- package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
- package/dist/tests/data.test.d.ts +0 -1
- package/dist/tests/demo-integration.test.d.ts +0 -1
- package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
- package/dist/tests/download-relayer.test.d.ts +0 -1
- package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
- package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
- package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
- package/dist/tests/encryption-coverage.test.d.ts +0 -1
- package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
- package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
- package/dist/tests/errors-coverage.test.d.ts +0 -1
- package/dist/tests/factories/mockFactory.d.ts +0 -316
- package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
- package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
- package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
- package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
- package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
- package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
- package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
- package/dist/tests/helper-methods.test.d.ts +0 -1
- package/dist/tests/helpers/typedMocks.d.ts +0 -64
- package/dist/tests/index-browser.test.d.ts +0 -1
- package/dist/tests/index-node.test.d.ts +0 -1
- package/dist/tests/index.test.d.ts +0 -1
- package/dist/tests/mocks/platformAdapter.d.ts +0 -12
- package/dist/tests/new-permissions-methods.test.d.ts +0 -1
- package/dist/tests/no-buffer-browser.test.d.ts +0 -1
- package/dist/tests/permissions-grantee.test.d.ts +0 -1
- package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
- package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
- package/dist/tests/permissions-server-files.test.d.ts +0 -1
- package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
- package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
- package/dist/tests/permissions.test.d.ts +0 -1
- package/dist/tests/personal.test.d.ts +0 -1
- package/dist/tests/platform-browser.test.d.ts +0 -1
- package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
- package/dist/tests/platform-crypto.test.d.ts +0 -1
- package/dist/tests/platform-index.test.d.ts +0 -1
- package/dist/tests/platform-node.test.d.ts +0 -1
- package/dist/tests/platform-shared-utils.test.d.ts +0 -1
- package/dist/tests/platform-updated.test.d.ts +0 -1
- package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
- package/dist/tests/protocol.test.d.ts +0 -1
- package/dist/tests/read-only-mode.test.d.ts +0 -1
- package/dist/tests/relayer-integration.test.d.ts +0 -1
- package/dist/tests/relayer-unified.test.d.ts +0 -1
- package/dist/tests/schemas.test.d.ts +0 -1
- package/dist/tests/server-relayer-handler.test.d.ts +0 -1
- package/dist/tests/signatureFormatter.test.d.ts +0 -1
- package/dist/tests/trusted-server-queries.test.d.ts +0 -1
- package/dist/tests/typedDataConverter.test.d.ts +0 -1
- package/dist/tests/types-contracts.test.d.ts +0 -1
- package/dist/tests/types-data.test.d.ts +0 -1
- package/dist/tests/types-external-apis.test.d.ts +0 -1
- package/dist/tests/types-generics.test.d.ts +0 -1
- package/dist/tests/types-permissions.test.d.ts +0 -1
- package/dist/tests/types-upload-params.test.d.ts +0 -1
- package/dist/tests/types.test.d.ts +0 -1
- package/dist/tests/utils-formatters.test.d.ts +0 -1
- package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +0 -1
- package/dist/tests/utils-grantFiles-validation.test.d.ts +0 -1
- package/dist/tests/utils-grantFiles.test.d.ts +0 -1
- package/dist/tests/utils-grantValidation-consolidated.test.d.ts +0 -1
- package/dist/tests/utils-grants.test.d.ts +0 -1
- package/dist/tests/utils-ipfs-additional.test.d.ts +0 -1
- package/dist/tests/utils-ipfs.test.d.ts +0 -4
- package/dist/tests/utils-schemaValidation.test.d.ts +0 -1
- package/dist/tests/vana.test.d.ts +0 -1
- package/dist/tests/wallet-crypto-compatibility.test.d.ts +0 -1
- package/dist/types/atomicStore.cjs.map +0 -1
- package/dist/types/atomicStore.d.ts +0 -236
- package/dist/types/atomicStore.js +0 -7
- package/dist/types/atomicStore.js.map +0 -1
- package/dist/types/blockchain.cjs +0 -17
- package/dist/types/blockchain.cjs.map +0 -1
- package/dist/types/blockchain.d.ts +0 -85
- package/dist/types/blockchain.js +0 -1
- package/dist/types/blockchain.js.map +0 -1
- package/dist/types/controller-context.cjs +0 -17
- package/dist/types/controller-context.cjs.map +0 -1
- package/dist/types/controller-context.d.ts +0 -68
- package/dist/types/controller-context.js +0 -1
- package/dist/types/controller-context.js.map +0 -1
- package/dist/types/data.cjs +0 -17
- package/dist/types/data.cjs.map +0 -1
- package/dist/types/data.d.ts +0 -763
- package/dist/types/data.js +0 -1
- package/dist/types/data.js.map +0 -1
- package/dist/types/external-apis.cjs +0 -61
- package/dist/types/external-apis.cjs.map +0 -1
- package/dist/types/external-apis.d.ts +0 -184
- package/dist/types/external-apis.js +0 -34
- package/dist/types/external-apis.js.map +0 -1
- package/dist/types/generics.cjs +0 -17
- package/dist/types/generics.cjs.map +0 -1
- package/dist/types/generics.d.ts +0 -518
- package/dist/types/generics.js +0 -1
- package/dist/types/generics.js.map +0 -1
- package/dist/types/operationStore.cjs +0 -17
- package/dist/types/operationStore.cjs.map +0 -1
- package/dist/types/operationStore.d.ts +0 -171
- package/dist/types/operationStore.js +0 -1
- package/dist/types/operationStore.js.map +0 -1
- package/dist/types/operations.cjs +0 -53
- package/dist/types/operations.cjs.map +0 -1
- package/dist/types/operations.d.ts +0 -204
- package/dist/types/operations.js +0 -26
- package/dist/types/operations.js.map +0 -1
- package/dist/types/options.cjs +0 -17
- package/dist/types/options.cjs.map +0 -1
- package/dist/types/options.d.ts +0 -308
- package/dist/types/options.js +0 -1
- package/dist/types/options.js.map +0 -1
- package/dist/types/permissions.cjs +0 -17
- package/dist/types/permissions.cjs.map +0 -1
- package/dist/types/permissions.d.ts +0 -955
- package/dist/types/permissions.js +0 -1
- package/dist/types/permissions.js.map +0 -1
- package/dist/types/personal.cjs +0 -17
- package/dist/types/personal.cjs.map +0 -1
- package/dist/types/personal.d.ts +0 -174
- package/dist/types/personal.js +0 -1
- package/dist/types/personal.js.map +0 -1
- package/dist/types/relayer.cjs +0 -17
- package/dist/types/relayer.cjs.map +0 -1
- package/dist/types/relayer.d.ts +0 -552
- package/dist/types/relayer.js +0 -1
- package/dist/types/relayer.js.map +0 -1
- package/dist/types/transactionResults.cjs +0 -17
- package/dist/types/transactionResults.cjs.map +0 -1
- package/dist/types/transactionResults.d.ts +0 -193
- package/dist/types/transactionResults.js +0 -1
- package/dist/types/transactionResults.js.map +0 -1
- package/dist/types/utils.cjs +0 -17
- package/dist/types/utils.cjs.map +0 -1
- package/dist/types/utils.d.ts +0 -771
- package/dist/types/utils.js +0 -1
- package/dist/types/utils.js.map +0 -1
- package/dist/utils/__tests__/chainQuery.test.d.ts +0 -1
- package/dist/utils/__tests__/parseTransaction.test.d.ts +0 -1
- package/dist/utils/__tests__/pojo-serialization.test.d.ts +0 -1
- package/dist/utils/__tests__/signatureCache.test.d.ts +0 -1
- package/dist/utils/__tests__/subgraphConsistency.test.d.ts +0 -4
- package/dist/utils/__tests__/subgraphPagination.test.d.ts +0 -4
- package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +0 -1
- package/dist/utils/__tests__/transactionHelpers.test.d.ts +0 -1
- package/dist/utils/__tests__/urlResolver.test.d.ts +0 -4
- package/dist/utils/blockchain/registry.cjs +0 -81
- package/dist/utils/blockchain/registry.cjs.map +0 -1
- package/dist/utils/blockchain/registry.d.ts +0 -32
- package/dist/utils/blockchain/registry.js +0 -56
- package/dist/utils/blockchain/registry.js.map +0 -1
- package/dist/utils/blockchain/registry.test.d.ts +0 -1
- package/dist/utils/chainQuery.cjs +0 -107
- package/dist/utils/chainQuery.cjs.map +0 -1
- package/dist/utils/chainQuery.d.ts +0 -31
- package/dist/utils/chainQuery.js +0 -82
- package/dist/utils/chainQuery.js.map +0 -1
- package/dist/utils/download.cjs +0 -69
- package/dist/utils/download.cjs.map +0 -1
- package/dist/utils/download.d.ts +0 -40
- package/dist/utils/download.js +0 -45
- package/dist/utils/download.js.map +0 -1
- package/dist/utils/encryption.cjs +0 -176
- package/dist/utils/encryption.cjs.map +0 -1
- package/dist/utils/encryption.d.ts +0 -271
- package/dist/utils/encryption.js +0 -142
- package/dist/utils/encryption.js.map +0 -1
- package/dist/utils/formatters.cjs +0 -55
- package/dist/utils/formatters.cjs.map +0 -1
- package/dist/utils/formatters.d.ts +0 -118
- package/dist/utils/formatters.js +0 -28
- package/dist/utils/formatters.js.map +0 -1
- package/dist/utils/grantFiles.cjs +0 -181
- package/dist/utils/grantFiles.cjs.map +0 -1
- package/dist/utils/grantFiles.d.ts +0 -172
- package/dist/utils/grantFiles.js +0 -143
- package/dist/utils/grantFiles.js.map +0 -1
- package/dist/utils/grantValidation.cjs +0 -243
- package/dist/utils/grantValidation.cjs.map +0 -1
- package/dist/utils/grantValidation.d.ts +0 -226
- package/dist/utils/grantValidation.js +0 -201
- package/dist/utils/grantValidation.js.map +0 -1
- package/dist/utils/grants.cjs +0 -108
- package/dist/utils/grants.cjs.map +0 -1
- package/dist/utils/grants.d.ts +0 -148
- package/dist/utils/grants.js +0 -82
- package/dist/utils/grants.js.map +0 -1
- package/dist/utils/ipfs.cjs +0 -128
- package/dist/utils/ipfs.cjs.map +0 -1
- package/dist/utils/ipfs.d.ts +0 -88
- package/dist/utils/ipfs.js +0 -97
- package/dist/utils/ipfs.js.map +0 -1
- package/dist/utils/multicall.cjs +0 -233
- package/dist/utils/multicall.cjs.map +0 -1
- package/dist/utils/multicall.d.ts +0 -126
- package/dist/utils/multicall.js +0 -208
- package/dist/utils/multicall.js.map +0 -1
- package/dist/utils/parseTransactionPojo.cjs +0 -87
- package/dist/utils/parseTransactionPojo.cjs.map +0 -1
- package/dist/utils/parseTransactionPojo.d.ts +0 -31
- package/dist/utils/parseTransactionPojo.js +0 -63
- package/dist/utils/parseTransactionPojo.js.map +0 -1
- package/dist/utils/schemaValidation.cjs +0 -258
- package/dist/utils/schemaValidation.cjs.map +0 -1
- package/dist/utils/schemaValidation.d.ts +0 -168
- package/dist/utils/schemaValidation.js +0 -219
- package/dist/utils/schemaValidation.js.map +0 -1
- package/dist/utils/signatureCache.cjs +0 -192
- package/dist/utils/signatureCache.cjs.map +0 -1
- package/dist/utils/signatureCache.d.ts +0 -172
- package/dist/utils/signatureCache.js +0 -167
- package/dist/utils/signatureCache.js.map +0 -1
- package/dist/utils/signatureFormatter.cjs +0 -42
- package/dist/utils/signatureFormatter.cjs.map +0 -1
- package/dist/utils/signatureFormatter.d.ts +0 -36
- package/dist/utils/signatureFormatter.js +0 -18
- package/dist/utils/signatureFormatter.js.map +0 -1
- package/dist/utils/subgraphConsistency.cjs +0 -184
- package/dist/utils/subgraphConsistency.cjs.map +0 -1
- package/dist/utils/subgraphConsistency.d.ts +0 -65
- package/dist/utils/subgraphConsistency.js +0 -155
- package/dist/utils/subgraphConsistency.js.map +0 -1
- package/dist/utils/subgraphMetaCache.cjs +0 -101
- package/dist/utils/subgraphMetaCache.cjs.map +0 -1
- package/dist/utils/subgraphMetaCache.d.ts +0 -56
- package/dist/utils/subgraphMetaCache.js +0 -76
- package/dist/utils/subgraphMetaCache.js.map +0 -1
- package/dist/utils/subgraphPagination.cjs +0 -104
- package/dist/utils/subgraphPagination.cjs.map +0 -1
- package/dist/utils/subgraphPagination.d.ts +0 -78
- package/dist/utils/subgraphPagination.js +0 -78
- package/dist/utils/subgraphPagination.js.map +0 -1
- package/dist/utils/tests/multicall.test.d.ts +0 -1
- package/dist/utils/transactionHelpers.cjs +0 -54
- package/dist/utils/transactionHelpers.cjs.map +0 -1
- package/dist/utils/transactionHelpers.d.ts +0 -80
- package/dist/utils/transactionHelpers.js +0 -29
- package/dist/utils/transactionHelpers.js.map +0 -1
- package/dist/utils/typeGuards.cjs +0 -109
- package/dist/utils/typeGuards.cjs.map +0 -1
- package/dist/utils/typeGuards.d.ts +0 -138
- package/dist/utils/typeGuards.js +0 -74
- package/dist/utils/typeGuards.js.map +0 -1
- package/dist/utils/typedDataConverter.cjs +0 -43
- package/dist/utils/typedDataConverter.cjs.map +0 -1
- package/dist/utils/typedDataConverter.d.ts +0 -46
- package/dist/utils/typedDataConverter.js +0 -19
- package/dist/utils/typedDataConverter.js.map +0 -1
- package/dist/utils/urlResolver.cjs +0 -62
- package/dist/utils/urlResolver.cjs.map +0 -1
- package/dist/utils/urlResolver.d.ts +0 -56
- package/dist/utils/urlResolver.js +0 -37
- package/dist/utils/urlResolver.js.map +0 -1
- package/dist/utils/wallet.cjs +0 -63
- package/dist/utils/wallet.cjs.map +0 -1
- package/dist/utils/wallet.d.ts +0 -94
- package/dist/utils/wallet.js +0 -37
- package/dist/utils/wallet.js.map +0 -1
- package/dist/utils/withEvents.cjs +0 -44
- package/dist/utils/withEvents.cjs.map +0 -1
- package/dist/utils/withEvents.d.ts +0 -56
- package/dist/utils/withEvents.js +0 -18
- package/dist/utils/withEvents.js.map +0 -1
- /package/dist/{__tests__/waitForTransactionEvents.test.d.ts → auth/pkce.test.d.ts} +0 -0
- /package/dist/{client/__tests__/enhancedResponse.test.d.ts → auth/token-store.test.d.ts} +0 -0
- /package/dist/{controllers/__tests__/operations.processQueue.test.d.ts → auth/web3-signed.test.d.ts} +0 -0
- /package/dist/{controllers/__tests__/schemas-edge-cases.test.d.ts → crypto/envelope/openpgp.test.d.ts} +0 -0
- /package/dist/{controllers/data-error-handling.test.d.ts → crypto/keys/derive.test.d.ts} +0 -0
- /package/dist/{tests/errors.test.d.ts → errors.test.d.ts} +0 -0
- /package/dist/{controllers/server-additional.test.d.ts → protocol/data-file.test.d.ts} +0 -0
- /package/dist/{core/__tests__/health.test.d.ts → protocol/eip712.test.d.ts} +0 -0
- /package/dist/{core/__tests__/inMemoryNonceManager.test.d.ts → protocol/gateway.test.d.ts} +0 -0
- /package/dist/{core/__tests__/nonceManager.test.d.ts → protocol/scopes.test.d.ts} +0 -0
- /package/dist/{core/core.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
- /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
- /package/dist/{core/tests/client.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
- /package/dist/{core/tests/generics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controllers/schemas.ts"],"sourcesContent":["import type {\n Schema,\n SchemaMetadata,\n CompleteSchema,\n AddSchemaParams,\n} from \"../types/index\";\n// import type { TransactionResult } from \"../types/operations\";\nimport type { SchemaAddedResult } from \"../types/transactionResults\";\nimport type { ControllerContext } from \"./permissions\";\nimport { BaseController } from \"./base\";\nimport { getContractAddress } from \"../generated/addresses\";\nimport { getAbi } from \"../generated/abi\";\nimport { gasAwareMulticall } from \"../utils/multicall\";\nimport {\n validateDataSchemaAgainstMetaSchema,\n SchemaValidationError,\n type DataSchema,\n} from \"../utils/schemaValidation\";\nimport {\n fetchSchemaFromChain,\n fetchSchemaCountFromChain,\n} from \"../utils/blockchain/registry\";\nimport {\n GetSchemaDocument,\n ListSchemasDocument,\n CountSchemasDocument,\n type GetSchemaQuery,\n type ListSchemasQuery,\n type CountSchemasQuery,\n} from \"../generated/subgraph\";\nimport { print } from \"graphql\";\nimport { fetchFromUrl, UrlResolutionError } from \"../utils/urlResolver\";\n\n/**\n * Parameters for creating a new schema with automatic IPFS upload.\n *\n * @remarks\n * This interface is used with the high-level `schemas.create()` method which\n * automatically uploads the schema definition to IPFS and registers it on-chain.\n * @category Schema Management\n */\nexport interface CreateSchemaParams {\n /** The name of the schema */\n name: string;\n /** The dialect of the schema (e.g., 'json' or 'sqlite') */\n dialect: \"json\" | \"sqlite\";\n /** The schema definition object or JSON string */\n schema: object | string;\n}\n\n/**\n * Result of creating a new schema.\n *\n * @remarks\n * Returned by the `schemas.create()` method after successful upload and registration.\n * @category Schema Management\n */\nexport interface CreateSchemaResult {\n /** The schema ID assigned by the contract */\n schemaId: bigint;\n /** The IPFS URL where the schema definition is stored */\n definitionUrl: string;\n /** The transaction hash of the schema registration */\n transactionHash: string;\n}\n\n/**\n * Manages data schemas for validation and structure definition on Vana.\n *\n * @remarks\n * Handles schema lifecycle from creation through registration. Schemas define\n * data structure and validation rules, ensuring consistency across the network.\n * Stored unencrypted on IPFS for public reusability.\n *\n * **Architecture:**\n * Schemas use dual storage: definitions on IPFS (public), metadata on blockchain.\n * Supports JSON Schema and SQLite dialects for flexible data modeling.\n *\n * **Method Selection:**\n * - `create()` - Validate, upload to IPFS, register on blockchain\n * - `get()` - Retrieve schema with definition by ID\n * - `list()` - Paginated schema browsing with metadata\n * - `count()` - Total schemas for pagination\n * - `addSchema()` - Low-level registration with pre-uploaded URL\n *\n * **Storage Requirements:**\n * - Methods requiring storage: `create()`\n * - Methods without storage: `get()`, `list()`, `count()`, `addSchema()`\n *\n * @example\n * ```typescript\n * // Create schema with validation rules\n * const result = await vana.schemas.create({\n * name: \"User Profile\",\n * dialect: \"json\",\n * schema: {\n * type: \"object\",\n * properties: {\n * name: { type: \"string\", minLength: 1 },\n * age: { type: \"number\", minimum: 0, maximum: 150 }\n * },\n * required: [\"name\"]\n * }\n * });\n * console.log(`Schema ${result.schemaId} created`);\n *\n * // Retrieve for validation\n * const schema = await vana.schemas.get(result.schemaId);\n * console.log(`Schema: ${schema.name} (${schema.dialect})`);\n *\n * // Browse available schemas\n * const schemas = await vana.schemas.list({ limit: 10 });\n * schemas.forEach(s => console.log(`${s.id}: ${s.name}`));\n * ```\n *\n * @category Schema Management\n * @see For conceptual overview, visit {@link https://docs.vana.org/docs/schemas}\n */\nexport class SchemaController extends BaseController {\n constructor(context: ControllerContext) {\n super(context);\n }\n\n /**\n * Creates a schema with validation and IPFS upload.\n *\n * @remarks\n * Primary method for schema creation. Validates definition,\n * uploads to IPFS (unencrypted for reusability), and registers\n * on blockchain. Schema becomes immediately available network-wide.\n *\n * @param params - Creation configuration\n * @param params.name - Human-readable schema name\n * @param params.dialect - Schema format (`\"json\"` or `\"sqlite\"`)\n * @param params.schema - Definition object or JSON string\n *\n * @returns Schema ID, IPFS URL, and transaction hash\n *\n * @throws {SchemaValidationError} Invalid schema definition.\n * Verify schema follows JSON Schema or SQLite format.\n * @throws {Error} Storage not configured.\n * Configure storage providers in VanaConfig.\n * @throws {Error} IPFS upload failed.\n * Check network and storage provider status.\n *\n * @example\n * ```typescript\n * const result = await vana.schemas.create({\n * name: \"User Profile\",\n * dialect: \"json\",\n * schema: {\n * type: \"object\",\n * properties: {\n * name: { type: \"string\", minLength: 1 },\n * age: { type: \"number\", minimum: 0 }\n * },\n * required: [\"name\"]\n * }\n * });\n * console.log(`Schema ${result.schemaId} at ${result.definitionUrl}`);\n * ```\n */\n async create(params: CreateSchemaParams): Promise<CreateSchemaResult> {\n this.assertWallet();\n const { name, dialect, schema } = params;\n\n try {\n // Step 1: Normalize and validate the schema definition\n let schemaDefinition: object;\n if (typeof schema === \"string\") {\n try {\n schemaDefinition = JSON.parse(schema);\n } catch {\n throw new SchemaValidationError(\n \"Invalid JSON in schema definition\",\n [],\n );\n }\n } else {\n schemaDefinition = schema;\n }\n\n // Step 2: Validate against metaschema\n const dataSchema: DataSchema = {\n name,\n version: \"1.0.0\",\n dialect,\n schema: schemaDefinition,\n };\n\n validateDataSchemaAgainstMetaSchema(dataSchema);\n\n // Step 3: Upload to IPFS (unencrypted for public access)\n if (!this.context.storageManager) {\n // Use centralized validation if available, otherwise fall back to old behavior\n if (this.context.validateStorageRequired) {\n this.context.validateStorageRequired();\n // The validateStorageRequired method throws, so this line should never be reached\n // but TypeScript doesn't know that, so we need this fallback\n throw new Error(\"Storage validation failed\");\n } else {\n throw new Error(\n \"Storage manager not configured. Please provide storage providers in VanaConfig.\",\n );\n }\n }\n\n const schemaBlob = new Blob([JSON.stringify(dataSchema)], {\n type: \"application/json\",\n });\n\n const uploadResult = await this.context.storageManager.upload(\n schemaBlob,\n `${name.replace(/[^a-zA-Z0-9]/g, \"_\")}.json`,\n );\n\n // Step 4: Register on blockchain\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n if (!chainId) {\n throw new Error(\"Chain ID not available\");\n }\n\n const dataRefinerRegistryAddress = getContractAddress(\n chainId,\n \"DataRefinerRegistry\",\n );\n const dataRefinerRegistryAbi = getAbi(\"DataRefinerRegistry\");\n\n const account =\n this.context.walletClient.account ?? this.context.userAddress;\n const from = typeof account === \"string\" ? account : account?.address;\n\n const hash = await this.context.walletClient.writeContract({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n functionName: \"addSchema\",\n args: [name, dialect, uploadResult.url],\n account,\n chain: this.context.walletClient.chain ?? null,\n });\n\n const { tx } = await import(\"../utils/transactionHelpers\");\n const txResult = tx({\n hash,\n from: from!,\n contract: \"DataRefinerRegistry\",\n fn: \"addSchema\",\n });\n\n // Wait for events and extract domain data\n if (!this.context.waitForTransactionEvents) {\n throw new Error(\"waitForTransactionEvents not configured\");\n }\n\n const result = await this.context.waitForTransactionEvents(txResult);\n const event = result.expectedEvents.SchemaAdded;\n if (!event) {\n throw new Error(\"SchemaAdded event not found in transaction\");\n }\n\n return {\n schemaId: event.schemaId,\n definitionUrl: uploadResult.url,\n transactionHash: hash,\n };\n } catch (error) {\n if (error instanceof SchemaValidationError) {\n throw error;\n }\n throw new Error(\n `Schema creation failed: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n /**\n * Retrieves a complete schema by its ID with definition fetched and flattened.\n *\n * @param schemaId - The ID of the schema to retrieve\n * @param options - Optional parameters\n * @param options.subgraphUrl - Custom subgraph URL to use instead of default\n * @returns Promise resolving to the complete schema object with all fields populated\n * @throws {Error} When the schema is not found, definition cannot be fetched, or chain is unavailable\n * @example\n * ```typescript\n * const schema = await vana.schemas.get(1);\n * console.log(`Schema: ${schema.name} (${schema.dialect})`);\n * console.log(`Version: ${schema.version}`);\n * console.log(`Description: ${schema.description}`);\n * console.log('Schema:', schema.schema);\n *\n * // Use directly with validator (schema has all required fields)\n * validator.validateDataAgainstSchema(data, schema);\n * ```\n */\n async get(\n schemaId: number,\n options: { subgraphUrl?: string } = {},\n ): Promise<CompleteSchema> {\n const subgraphUrl = options.subgraphUrl ?? this.context.subgraphUrl;\n\n let metadata: SchemaMetadata;\n\n // Try subgraph first if available\n if (subgraphUrl) {\n try {\n metadata = await this._getSchemaViaSubgraph({ schemaId, subgraphUrl });\n } catch (error) {\n console.debug(\"Subgraph query failed, falling back to RPC:\", error);\n // Fall through to RPC\n try {\n metadata = await fetchSchemaFromChain(this.context, schemaId);\n } catch (rpcError) {\n throw new Error(\n `Failed to get schema: ${rpcError instanceof Error ? rpcError.message : \"Unknown error\"}`,\n );\n }\n }\n } else {\n // Use RPC directly\n try {\n metadata = await fetchSchemaFromChain(this.context, schemaId);\n } catch (error) {\n throw new Error(\n `Failed to get schema: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n // Fetch the definition (should be a complete DataSchema)\n const definition = await fetchFromUrl(\n metadata.definitionUrl,\n this.context.downloadRelayer,\n );\n\n if (!definition || typeof definition !== \"object\") {\n throw new Error(\n `Invalid schema definition format for schema ${schemaId}`,\n );\n }\n\n // Validate the fetched DataSchema\n validateDataSchemaAgainstMetaSchema(definition);\n const dataSchema = definition as DataSchema;\n\n // Verify on-chain and off-chain data match\n if (dataSchema.name !== metadata.name) {\n console.warn(\n `Schema name mismatch for ID ${schemaId}: on-chain=\"${metadata.name}\" off-chain=\"${dataSchema.name}\" (using on-chain value)`,\n );\n }\n if (dataSchema.dialect !== metadata.dialect) {\n console.warn(\n `Schema dialect mismatch for ID ${schemaId}: on-chain=\"${metadata.dialect}\" off-chain=\"${dataSchema.dialect}\" (using on-chain value)`,\n );\n }\n\n // Return using on-chain values as authoritative source\n return {\n ...metadata,\n version: dataSchema.version,\n description: dataSchema.description,\n schema: dataSchema.schema,\n };\n }\n\n /**\n * Gets the total number of schemas registered on the network.\n *\n * @param options - Optional parameters\n * @param options.subgraphUrl - Custom subgraph URL to use instead of default\n * @returns Promise resolving to the total schema count\n * @throws {Error} When the count cannot be retrieved\n * @example\n * ```typescript\n * const count = await vana.schemas.count();\n * console.log(`Total schemas: ${count}`);\n *\n * // With custom subgraph\n * const count = await vana.schemas.count({\n * subgraphUrl: 'https://custom-subgraph.com/graphql'\n * });\n * ```\n */\n async count(options: { subgraphUrl?: string } = {}): Promise<number> {\n const subgraphUrl = options.subgraphUrl ?? this.context.subgraphUrl;\n\n // Try subgraph first if available\n if (subgraphUrl) {\n try {\n return await this._countSchemasViaSubgraph({ subgraphUrl });\n } catch (error) {\n console.debug(\"Subgraph query failed, falling back to RPC:\", error);\n // Fall through to RPC\n }\n }\n\n // Use RPC (as fallback or primary method)\n try {\n return await fetchSchemaCountFromChain(this.context);\n } catch (error) {\n throw new Error(\n `Failed to get schemas count: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n /**\n * Lists all schemas with pagination.\n *\n * @param options - Optional parameters for listing schemas\n * @param options.limit - Maximum number of schemas to return\n * @param options.offset - Number of schemas to skip\n * @param options.subgraphUrl - Custom subgraph URL to use instead of default\n * @param options.includeDefinitions - Whether to fetch and include schema definitions (default: false for performance)\n * @returns Promise resolving to an array of schemas\n * @example\n * ```typescript\n * // Get all schemas (without definitions for performance)\n * const schemas = await vana.schemas.list();\n *\n * // Get schemas with definitions\n * const schemas = await vana.schemas.list({ includeDefinitions: true });\n *\n * // Get schemas with pagination\n * const schemas = await vana.schemas.list({ limit: 10, offset: 0 });\n * ```\n */\n async list(\n options: {\n limit?: number;\n offset?: number;\n subgraphUrl?: string;\n includeDefinitions?: boolean;\n minBlock?: number;\n waitForSync?: number;\n } = {},\n ): Promise<Schema[]> {\n const {\n limit = 100,\n offset = 0,\n includeDefinitions = false,\n minBlock,\n waitForSync,\n } = options;\n const subgraphUrl = options.subgraphUrl ?? this.context.subgraphUrl;\n\n // Check consistency requirements if using subgraph\n if (subgraphUrl && (minBlock || waitForSync)) {\n const { checkSubgraphConsistency } = await import(\n \"../utils/subgraphConsistency\"\n );\n await checkSubgraphConsistency(subgraphUrl, { minBlock, waitForSync });\n }\n\n // Try subgraph first if available\n if (subgraphUrl) {\n try {\n return await this._listSchemasViaSubgraph({\n limit,\n offset,\n subgraphUrl,\n });\n } catch (error) {\n console.debug(\"Subgraph query failed, falling back to RPC:\", error);\n // Fall through to RPC\n }\n }\n\n try {\n const totalCount = await this.count();\n const start = offset;\n const end = Math.min(start + limit, totalCount);\n\n if (end <= start) {\n return [];\n }\n\n // Get contract address and ABI\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n if (!chainId) {\n throw new Error(\"Chain ID not available\");\n }\n const dataRefinerRegistryAddress = getContractAddress(\n chainId,\n \"DataRefinerRegistry\",\n );\n const dataRefinerRegistryAbi = getAbi(\"DataRefinerRegistry\");\n\n // Build multicall batch for fetching schemas\n const schemaCalls = [];\n for (let i = start; i < end; i++) {\n schemaCalls.push({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n functionName: \"schemas\",\n args: [BigInt(i + 1)], // Schema IDs are 1-based\n } as const);\n }\n\n // Fetch all schemas in batches using gasAwareMulticall\n const schemaResults = await gasAwareMulticall<\n typeof schemaCalls,\n true // Allow failures for individual schema lookups\n >(this.context.publicClient, {\n contracts: schemaCalls,\n allowFailure: true,\n });\n\n // Process results\n const schemas: Schema[] = [];\n schemaResults.forEach((result, index) => {\n if (result.status === \"success\" && result.result) {\n const schemaId = start + index + 1; // Schema IDs are 1-based\n const schemaData = result.result as {\n name: string;\n dialect: string;\n definitionUrl: string;\n };\n\n if (\n schemaData.name &&\n schemaData.dialect &&\n schemaData.definitionUrl\n ) {\n schemas.push({\n id: schemaId,\n name: schemaData.name,\n dialect: schemaData.dialect as \"json\" | \"sqlite\",\n definitionUrl: schemaData.definitionUrl,\n });\n } else {\n console.warn(`Incomplete schema data for ID ${schemaId}`);\n }\n } else {\n // Skip schemas that can't be retrieved\n console.warn(`Failed to retrieve schema ${start + index + 1}`);\n }\n });\n\n // Optionally fetch definitions for all schemas\n if (includeDefinitions) {\n await this._fetchDefinitionsForSchemas(schemas);\n }\n\n return schemas;\n } catch (error) {\n throw new Error(\n `Failed to list schemas: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n /**\n * Retrieves schema definition content directly from a URL.\n *\n * @remarks\n * Use this method to fetch and format schema definitions from IPFS or HTTP URLs.\n * Automatically uses the SDK's configured download proxy to bypass CORS restrictions.\n * Returns formatted JSON string if content is valid JSON, otherwise raw content.\n *\n * @param url - The definition URL (typically from schema.definitionUrl)\n * @returns Promise resolving to the formatted definition content\n * @throws {Error} When the content cannot be fetched or network errors occur\n * @example\n * ```typescript\n * const schema = await vana.schemas.get(1);\n * const definition = await vana.schemas.retrieveDefinition(schema.definitionUrl);\n * console.log(definition); // Pretty-printed JSON\n * ```\n */\n async retrieveDefinition(url: string): Promise<string> {\n try {\n const { universalFetch } = await import(\"../utils/download\");\n const response = await universalFetch(url, this.context.downloadRelayer);\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n\n const text = await response.text();\n\n // Try to parse and format as JSON for better readability\n try {\n const json = JSON.parse(text);\n return JSON.stringify(json, null, 2);\n } catch {\n // Not JSON, return as-is\n return text;\n }\n } catch (error) {\n throw new Error(\n `Failed to retrieve schema definition: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n /**\n * Retrieves refinement instruction content from a URL.\n *\n * @remarks\n * Use this method to fetch refinement instructions from IPFS or HTTP URLs.\n * Temporarily housed in SchemaController since refiners use schemas and we don't\n * have a dedicated RefinerController yet. Uses the SDK's configured download proxy.\n *\n * @param url - The instruction URL (typically from refiner.refinementInstructionUrl)\n * @returns Promise resolving to the formatted instruction content\n * @throws {Error} When the content cannot be fetched or network errors occur\n * @example\n * ```typescript\n * const instructions = await vana.schemas.retrieveRefinementInstructions(\n * refiner.refinementInstructionUrl\n * );\n * console.log(instructions);\n * ```\n */\n async retrieveRefinementInstructions(url: string): Promise<string> {\n try {\n // Reuse the same logic as retrieveDefinition\n return await this.retrieveDefinition(url);\n } catch (error) {\n // Re-throw with more specific error message\n throw new Error(\n `Failed to retrieve refinement instructions: ${\n error instanceof Error\n ? error.message.replace(\n \"Failed to retrieve schema definition: \",\n \"\",\n )\n : \"Unknown error\"\n }`,\n );\n }\n }\n\n /**\n * Adds a schema using the legacy method (low-level API).\n *\n * @deprecated Use create() instead for the high-level API with automatic IPFS upload\n * @param params - Schema parameters including pre-generated definition URL\n * @returns Promise resolving to the add schema result\n */\n async addSchema(params: AddSchemaParams): Promise<SchemaAddedResult> {\n this.assertWallet();\n try {\n const chainId =\n this.context.walletClient?.chain?.id ??\n this.context.publicClient.chain?.id;\n if (!chainId) {\n throw new Error(\"Chain ID not available\");\n }\n\n const dataRefinerRegistryAddress = getContractAddress(\n chainId,\n \"DataRefinerRegistry\",\n );\n const dataRefinerRegistryAbi = getAbi(\"DataRefinerRegistry\");\n\n const account =\n this.context.walletClient.account ?? this.context.userAddress;\n const from = typeof account === \"string\" ? account : account?.address;\n\n const hash = await this.context.walletClient.writeContract({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n functionName: \"addSchema\",\n args: [params.name, params.dialect, params.definitionUrl],\n account,\n chain: this.context.walletClient.chain ?? null,\n });\n\n // Create TransactionResult POJO\n const { tx } = await import(\"../utils/transactionHelpers\");\n const txResult = tx({\n hash,\n from: from!,\n contract: \"DataRefinerRegistry\",\n fn: \"addSchema\",\n });\n\n // Wait for events and extract domain data\n if (!this.context.waitForTransactionEvents) {\n throw new Error(\"waitForTransactionEvents not configured\");\n }\n\n const result = await this.context.waitForTransactionEvents(txResult);\n const event = result.expectedEvents.SchemaAdded;\n if (!event) {\n throw new Error(\"SchemaAdded event not found in transaction\");\n }\n\n const receipt = await this.context.publicClient.getTransactionReceipt({\n hash,\n });\n\n return {\n transactionHash: hash,\n blockNumber: receipt.blockNumber,\n gasUsed: receipt.gasUsed,\n schemaId: event.schemaId,\n name: event.name,\n dialect: event.dialect,\n definitionUrl: event.definitionUrl,\n };\n } catch (error) {\n throw new Error(\n `Failed to add schema: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n }\n\n /**\n * Internal method: Query schema via subgraph\n *\n * @param params - Query parameters\n * @param params.schemaId - The ID of the schema to retrieve\n * @param params.subgraphUrl - The subgraph URL to query\n * @returns Promise resolving to the schema object\n * @private\n */\n private async _getSchemaViaSubgraph(params: {\n schemaId: number;\n subgraphUrl: string;\n }): Promise<SchemaMetadata> {\n const { schemaId, subgraphUrl } = params;\n\n const response = await fetch(subgraphUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n query: print(GetSchemaDocument),\n variables: { id: schemaId.toString() },\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Subgraph request failed: ${response.status} ${response.statusText}`,\n );\n }\n\n const result = (await response.json()) as {\n data?: GetSchemaQuery;\n errors?: { message: string }[];\n };\n\n if (result.errors) {\n throw new Error(\n `Subgraph query errors: ${result.errors.map((e) => e.message).join(\", \")}`,\n );\n }\n\n if (!result.data?.schema) {\n throw new Error(`Schema ${schemaId} not found in subgraph`);\n }\n\n // Map subgraph schema to SDK schema type\n const subgraphSchema = result.data.schema;\n return {\n id: parseInt(subgraphSchema.id),\n name: subgraphSchema.name,\n dialect: subgraphSchema.dialect as \"json\" | \"sqlite\",\n definitionUrl: subgraphSchema.definitionUrl,\n };\n }\n\n /**\n * Internal method: List schemas via subgraph\n *\n * @param params - Query parameters\n * @param params.limit - Maximum number of schemas to return\n * @param params.offset - Number of schemas to skip\n * @param params.subgraphUrl - The subgraph URL to query\n * @returns Promise resolving to an array of schemas\n * @private\n */\n private async _listSchemasViaSubgraph(params: {\n limit: number;\n offset: number;\n subgraphUrl: string;\n }): Promise<Schema[]> {\n const { limit, offset, subgraphUrl } = params;\n\n const response = await fetch(subgraphUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n query: print(ListSchemasDocument),\n variables: { first: limit, skip: offset },\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Subgraph request failed: ${response.status} ${response.statusText}`,\n );\n }\n\n const result = (await response.json()) as {\n data?: ListSchemasQuery;\n errors?: { message: string }[];\n };\n\n if (result.errors) {\n throw new Error(\n `Subgraph query errors: ${result.errors.map((e) => e.message).join(\", \")}`,\n );\n }\n\n if (!result.data?.schemas) {\n return [];\n }\n\n // Map subgraph schemas to SDK schema type\n const schemas = result.data.schemas.map((schema) => ({\n id: parseInt(schema.id),\n name: schema.name,\n dialect: schema.dialect as \"json\" | \"sqlite\",\n definitionUrl: schema.definitionUrl,\n }));\n\n // Optionally fetch definitions if requested\n const { includeDefinitions } = params as { includeDefinitions?: boolean };\n if (includeDefinitions) {\n await this._fetchDefinitionsForSchemas(schemas);\n }\n\n return schemas;\n }\n\n /**\n * Internal method: Count schemas via subgraph\n *\n * @param params - Query parameters\n * @param params.subgraphUrl - The subgraph URL to query\n * @returns Promise resolving to the total schema count\n * @private\n */\n private async _countSchemasViaSubgraph(params: {\n subgraphUrl: string;\n }): Promise<number> {\n const { subgraphUrl } = params;\n\n const response = await fetch(subgraphUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n query: print(CountSchemasDocument),\n variables: {},\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `Subgraph request failed: ${response.status} ${response.statusText}`,\n );\n }\n\n const result = (await response.json()) as {\n data?: CountSchemasQuery;\n errors?: { message: string }[];\n };\n\n if (result.errors) {\n throw new Error(\n `Subgraph query errors: ${result.errors.map((e) => e.message).join(\", \")}`,\n );\n }\n\n return result.data?.schemas?.length ?? 0;\n }\n\n /**\n * Gets the user's wallet address.\n *\n * @private\n * @returns Promise resolving to the user's address\n */\n\n /**\n * Fetches and attaches definitions to an array of schemas.\n *\n * @param schemas - Array of schemas to fetch definitions for\n * @private\n */\n private async _fetchDefinitionsForSchemas(schemas: Schema[]): Promise<void> {\n // Fetch definitions concurrently for performance\n await Promise.all(\n schemas.map(async (schema) => {\n if (!schema.definitionUrl) return;\n\n try {\n const definition = await fetchFromUrl(\n schema.definitionUrl,\n this.context.downloadRelayer,\n );\n\n if (definition && typeof definition === \"object\") {\n // Validate the fetched DataSchema\n validateDataSchemaAgainstMetaSchema(definition);\n const dataSchema = definition as DataSchema;\n\n // Populate flat fields\n schema.version = dataSchema.version;\n schema.description = dataSchema.description;\n schema.schema = dataSchema.schema;\n }\n } catch (error) {\n // Don't fail the entire list operation if one definition fails\n console.error(\n `Failed to fetch/validate definition for schema ${schema.id}:`,\n error instanceof UrlResolutionError ||\n error instanceof SchemaValidationError\n ? error.message\n : error,\n );\n }\n }),\n );\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
import type { Schema, CompleteSchema, AddSchemaParams } from "../types/index";
|
|
2
|
-
import type { SchemaAddedResult } from "../types/transactionResults";
|
|
3
|
-
import type { ControllerContext } from "./permissions";
|
|
4
|
-
import { BaseController } from "./base";
|
|
5
|
-
/**
|
|
6
|
-
* Parameters for creating a new schema with automatic IPFS upload.
|
|
7
|
-
*
|
|
8
|
-
* @remarks
|
|
9
|
-
* This interface is used with the high-level `schemas.create()` method which
|
|
10
|
-
* automatically uploads the schema definition to IPFS and registers it on-chain.
|
|
11
|
-
* @category Schema Management
|
|
12
|
-
*/
|
|
13
|
-
export interface CreateSchemaParams {
|
|
14
|
-
/** The name of the schema */
|
|
15
|
-
name: string;
|
|
16
|
-
/** The dialect of the schema (e.g., 'json' or 'sqlite') */
|
|
17
|
-
dialect: "json" | "sqlite";
|
|
18
|
-
/** The schema definition object or JSON string */
|
|
19
|
-
schema: object | string;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Result of creating a new schema.
|
|
23
|
-
*
|
|
24
|
-
* @remarks
|
|
25
|
-
* Returned by the `schemas.create()` method after successful upload and registration.
|
|
26
|
-
* @category Schema Management
|
|
27
|
-
*/
|
|
28
|
-
export interface CreateSchemaResult {
|
|
29
|
-
/** The schema ID assigned by the contract */
|
|
30
|
-
schemaId: bigint;
|
|
31
|
-
/** The IPFS URL where the schema definition is stored */
|
|
32
|
-
definitionUrl: string;
|
|
33
|
-
/** The transaction hash of the schema registration */
|
|
34
|
-
transactionHash: string;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Manages data schemas for validation and structure definition on Vana.
|
|
38
|
-
*
|
|
39
|
-
* @remarks
|
|
40
|
-
* Handles schema lifecycle from creation through registration. Schemas define
|
|
41
|
-
* data structure and validation rules, ensuring consistency across the network.
|
|
42
|
-
* Stored unencrypted on IPFS for public reusability.
|
|
43
|
-
*
|
|
44
|
-
* **Architecture:**
|
|
45
|
-
* Schemas use dual storage: definitions on IPFS (public), metadata on blockchain.
|
|
46
|
-
* Supports JSON Schema and SQLite dialects for flexible data modeling.
|
|
47
|
-
*
|
|
48
|
-
* **Method Selection:**
|
|
49
|
-
* - `create()` - Validate, upload to IPFS, register on blockchain
|
|
50
|
-
* - `get()` - Retrieve schema with definition by ID
|
|
51
|
-
* - `list()` - Paginated schema browsing with metadata
|
|
52
|
-
* - `count()` - Total schemas for pagination
|
|
53
|
-
* - `addSchema()` - Low-level registration with pre-uploaded URL
|
|
54
|
-
*
|
|
55
|
-
* **Storage Requirements:**
|
|
56
|
-
* - Methods requiring storage: `create()`
|
|
57
|
-
* - Methods without storage: `get()`, `list()`, `count()`, `addSchema()`
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```typescript
|
|
61
|
-
* // Create schema with validation rules
|
|
62
|
-
* const result = await vana.schemas.create({
|
|
63
|
-
* name: "User Profile",
|
|
64
|
-
* dialect: "json",
|
|
65
|
-
* schema: {
|
|
66
|
-
* type: "object",
|
|
67
|
-
* properties: {
|
|
68
|
-
* name: { type: "string", minLength: 1 },
|
|
69
|
-
* age: { type: "number", minimum: 0, maximum: 150 }
|
|
70
|
-
* },
|
|
71
|
-
* required: ["name"]
|
|
72
|
-
* }
|
|
73
|
-
* });
|
|
74
|
-
* console.log(`Schema ${result.schemaId} created`);
|
|
75
|
-
*
|
|
76
|
-
* // Retrieve for validation
|
|
77
|
-
* const schema = await vana.schemas.get(result.schemaId);
|
|
78
|
-
* console.log(`Schema: ${schema.name} (${schema.dialect})`);
|
|
79
|
-
*
|
|
80
|
-
* // Browse available schemas
|
|
81
|
-
* const schemas = await vana.schemas.list({ limit: 10 });
|
|
82
|
-
* schemas.forEach(s => console.log(`${s.id}: ${s.name}`));
|
|
83
|
-
* ```
|
|
84
|
-
*
|
|
85
|
-
* @category Schema Management
|
|
86
|
-
* @see For conceptual overview, visit {@link https://docs.vana.org/docs/schemas}
|
|
87
|
-
*/
|
|
88
|
-
export declare class SchemaController extends BaseController {
|
|
89
|
-
constructor(context: ControllerContext);
|
|
90
|
-
/**
|
|
91
|
-
* Creates a schema with validation and IPFS upload.
|
|
92
|
-
*
|
|
93
|
-
* @remarks
|
|
94
|
-
* Primary method for schema creation. Validates definition,
|
|
95
|
-
* uploads to IPFS (unencrypted for reusability), and registers
|
|
96
|
-
* on blockchain. Schema becomes immediately available network-wide.
|
|
97
|
-
*
|
|
98
|
-
* @param params - Creation configuration
|
|
99
|
-
* @param params.name - Human-readable schema name
|
|
100
|
-
* @param params.dialect - Schema format (`"json"` or `"sqlite"`)
|
|
101
|
-
* @param params.schema - Definition object or JSON string
|
|
102
|
-
*
|
|
103
|
-
* @returns Schema ID, IPFS URL, and transaction hash
|
|
104
|
-
*
|
|
105
|
-
* @throws {SchemaValidationError} Invalid schema definition.
|
|
106
|
-
* Verify schema follows JSON Schema or SQLite format.
|
|
107
|
-
* @throws {Error} Storage not configured.
|
|
108
|
-
* Configure storage providers in VanaConfig.
|
|
109
|
-
* @throws {Error} IPFS upload failed.
|
|
110
|
-
* Check network and storage provider status.
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* const result = await vana.schemas.create({
|
|
115
|
-
* name: "User Profile",
|
|
116
|
-
* dialect: "json",
|
|
117
|
-
* schema: {
|
|
118
|
-
* type: "object",
|
|
119
|
-
* properties: {
|
|
120
|
-
* name: { type: "string", minLength: 1 },
|
|
121
|
-
* age: { type: "number", minimum: 0 }
|
|
122
|
-
* },
|
|
123
|
-
* required: ["name"]
|
|
124
|
-
* }
|
|
125
|
-
* });
|
|
126
|
-
* console.log(`Schema ${result.schemaId} at ${result.definitionUrl}`);
|
|
127
|
-
* ```
|
|
128
|
-
*/
|
|
129
|
-
create(params: CreateSchemaParams): Promise<CreateSchemaResult>;
|
|
130
|
-
/**
|
|
131
|
-
* Retrieves a complete schema by its ID with definition fetched and flattened.
|
|
132
|
-
*
|
|
133
|
-
* @param schemaId - The ID of the schema to retrieve
|
|
134
|
-
* @param options - Optional parameters
|
|
135
|
-
* @param options.subgraphUrl - Custom subgraph URL to use instead of default
|
|
136
|
-
* @returns Promise resolving to the complete schema object with all fields populated
|
|
137
|
-
* @throws {Error} When the schema is not found, definition cannot be fetched, or chain is unavailable
|
|
138
|
-
* @example
|
|
139
|
-
* ```typescript
|
|
140
|
-
* const schema = await vana.schemas.get(1);
|
|
141
|
-
* console.log(`Schema: ${schema.name} (${schema.dialect})`);
|
|
142
|
-
* console.log(`Version: ${schema.version}`);
|
|
143
|
-
* console.log(`Description: ${schema.description}`);
|
|
144
|
-
* console.log('Schema:', schema.schema);
|
|
145
|
-
*
|
|
146
|
-
* // Use directly with validator (schema has all required fields)
|
|
147
|
-
* validator.validateDataAgainstSchema(data, schema);
|
|
148
|
-
* ```
|
|
149
|
-
*/
|
|
150
|
-
get(schemaId: number, options?: {
|
|
151
|
-
subgraphUrl?: string;
|
|
152
|
-
}): Promise<CompleteSchema>;
|
|
153
|
-
/**
|
|
154
|
-
* Gets the total number of schemas registered on the network.
|
|
155
|
-
*
|
|
156
|
-
* @param options - Optional parameters
|
|
157
|
-
* @param options.subgraphUrl - Custom subgraph URL to use instead of default
|
|
158
|
-
* @returns Promise resolving to the total schema count
|
|
159
|
-
* @throws {Error} When the count cannot be retrieved
|
|
160
|
-
* @example
|
|
161
|
-
* ```typescript
|
|
162
|
-
* const count = await vana.schemas.count();
|
|
163
|
-
* console.log(`Total schemas: ${count}`);
|
|
164
|
-
*
|
|
165
|
-
* // With custom subgraph
|
|
166
|
-
* const count = await vana.schemas.count({
|
|
167
|
-
* subgraphUrl: 'https://custom-subgraph.com/graphql'
|
|
168
|
-
* });
|
|
169
|
-
* ```
|
|
170
|
-
*/
|
|
171
|
-
count(options?: {
|
|
172
|
-
subgraphUrl?: string;
|
|
173
|
-
}): Promise<number>;
|
|
174
|
-
/**
|
|
175
|
-
* Lists all schemas with pagination.
|
|
176
|
-
*
|
|
177
|
-
* @param options - Optional parameters for listing schemas
|
|
178
|
-
* @param options.limit - Maximum number of schemas to return
|
|
179
|
-
* @param options.offset - Number of schemas to skip
|
|
180
|
-
* @param options.subgraphUrl - Custom subgraph URL to use instead of default
|
|
181
|
-
* @param options.includeDefinitions - Whether to fetch and include schema definitions (default: false for performance)
|
|
182
|
-
* @returns Promise resolving to an array of schemas
|
|
183
|
-
* @example
|
|
184
|
-
* ```typescript
|
|
185
|
-
* // Get all schemas (without definitions for performance)
|
|
186
|
-
* const schemas = await vana.schemas.list();
|
|
187
|
-
*
|
|
188
|
-
* // Get schemas with definitions
|
|
189
|
-
* const schemas = await vana.schemas.list({ includeDefinitions: true });
|
|
190
|
-
*
|
|
191
|
-
* // Get schemas with pagination
|
|
192
|
-
* const schemas = await vana.schemas.list({ limit: 10, offset: 0 });
|
|
193
|
-
* ```
|
|
194
|
-
*/
|
|
195
|
-
list(options?: {
|
|
196
|
-
limit?: number;
|
|
197
|
-
offset?: number;
|
|
198
|
-
subgraphUrl?: string;
|
|
199
|
-
includeDefinitions?: boolean;
|
|
200
|
-
minBlock?: number;
|
|
201
|
-
waitForSync?: number;
|
|
202
|
-
}): Promise<Schema[]>;
|
|
203
|
-
/**
|
|
204
|
-
* Retrieves schema definition content directly from a URL.
|
|
205
|
-
*
|
|
206
|
-
* @remarks
|
|
207
|
-
* Use this method to fetch and format schema definitions from IPFS or HTTP URLs.
|
|
208
|
-
* Automatically uses the SDK's configured download proxy to bypass CORS restrictions.
|
|
209
|
-
* Returns formatted JSON string if content is valid JSON, otherwise raw content.
|
|
210
|
-
*
|
|
211
|
-
* @param url - The definition URL (typically from schema.definitionUrl)
|
|
212
|
-
* @returns Promise resolving to the formatted definition content
|
|
213
|
-
* @throws {Error} When the content cannot be fetched or network errors occur
|
|
214
|
-
* @example
|
|
215
|
-
* ```typescript
|
|
216
|
-
* const schema = await vana.schemas.get(1);
|
|
217
|
-
* const definition = await vana.schemas.retrieveDefinition(schema.definitionUrl);
|
|
218
|
-
* console.log(definition); // Pretty-printed JSON
|
|
219
|
-
* ```
|
|
220
|
-
*/
|
|
221
|
-
retrieveDefinition(url: string): Promise<string>;
|
|
222
|
-
/**
|
|
223
|
-
* Retrieves refinement instruction content from a URL.
|
|
224
|
-
*
|
|
225
|
-
* @remarks
|
|
226
|
-
* Use this method to fetch refinement instructions from IPFS or HTTP URLs.
|
|
227
|
-
* Temporarily housed in SchemaController since refiners use schemas and we don't
|
|
228
|
-
* have a dedicated RefinerController yet. Uses the SDK's configured download proxy.
|
|
229
|
-
*
|
|
230
|
-
* @param url - The instruction URL (typically from refiner.refinementInstructionUrl)
|
|
231
|
-
* @returns Promise resolving to the formatted instruction content
|
|
232
|
-
* @throws {Error} When the content cannot be fetched or network errors occur
|
|
233
|
-
* @example
|
|
234
|
-
* ```typescript
|
|
235
|
-
* const instructions = await vana.schemas.retrieveRefinementInstructions(
|
|
236
|
-
* refiner.refinementInstructionUrl
|
|
237
|
-
* );
|
|
238
|
-
* console.log(instructions);
|
|
239
|
-
* ```
|
|
240
|
-
*/
|
|
241
|
-
retrieveRefinementInstructions(url: string): Promise<string>;
|
|
242
|
-
/**
|
|
243
|
-
* Adds a schema using the legacy method (low-level API).
|
|
244
|
-
*
|
|
245
|
-
* @deprecated Use create() instead for the high-level API with automatic IPFS upload
|
|
246
|
-
* @param params - Schema parameters including pre-generated definition URL
|
|
247
|
-
* @returns Promise resolving to the add schema result
|
|
248
|
-
*/
|
|
249
|
-
addSchema(params: AddSchemaParams): Promise<SchemaAddedResult>;
|
|
250
|
-
/**
|
|
251
|
-
* Internal method: Query schema via subgraph
|
|
252
|
-
*
|
|
253
|
-
* @param params - Query parameters
|
|
254
|
-
* @param params.schemaId - The ID of the schema to retrieve
|
|
255
|
-
* @param params.subgraphUrl - The subgraph URL to query
|
|
256
|
-
* @returns Promise resolving to the schema object
|
|
257
|
-
* @private
|
|
258
|
-
*/
|
|
259
|
-
private _getSchemaViaSubgraph;
|
|
260
|
-
/**
|
|
261
|
-
* Internal method: List schemas via subgraph
|
|
262
|
-
*
|
|
263
|
-
* @param params - Query parameters
|
|
264
|
-
* @param params.limit - Maximum number of schemas to return
|
|
265
|
-
* @param params.offset - Number of schemas to skip
|
|
266
|
-
* @param params.subgraphUrl - The subgraph URL to query
|
|
267
|
-
* @returns Promise resolving to an array of schemas
|
|
268
|
-
* @private
|
|
269
|
-
*/
|
|
270
|
-
private _listSchemasViaSubgraph;
|
|
271
|
-
/**
|
|
272
|
-
* Internal method: Count schemas via subgraph
|
|
273
|
-
*
|
|
274
|
-
* @param params - Query parameters
|
|
275
|
-
* @param params.subgraphUrl - The subgraph URL to query
|
|
276
|
-
* @returns Promise resolving to the total schema count
|
|
277
|
-
* @private
|
|
278
|
-
*/
|
|
279
|
-
private _countSchemasViaSubgraph;
|
|
280
|
-
/**
|
|
281
|
-
* Gets the user's wallet address.
|
|
282
|
-
*
|
|
283
|
-
* @private
|
|
284
|
-
* @returns Promise resolving to the user's address
|
|
285
|
-
*/
|
|
286
|
-
/**
|
|
287
|
-
* Fetches and attaches definitions to an array of schemas.
|
|
288
|
-
*
|
|
289
|
-
* @param schemas - Array of schemas to fetch definitions for
|
|
290
|
-
* @private
|
|
291
|
-
*/
|
|
292
|
-
private _fetchDefinitionsForSchemas;
|
|
293
|
-
}
|