@opendatalabs/vana-sdk 0.1.0-alpha.d7fc764 → 0.1.0-alpha.dba79a3
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 -24
- 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 -38
- 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__/operations.processQueue.test.d.ts +1 -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 +827 -439
- package/dist/controllers/data.cjs.map +1 -1
- package/dist/controllers/data.d.ts +373 -254
- package/dist/controllers/data.js +840 -442
- package/dist/controllers/data.js.map +1 -1
- package/dist/controllers/operations.cjs +430 -0
- package/dist/controllers/operations.cjs.map +1 -0
- package/dist/controllers/operations.d.ts +229 -0
- package/dist/controllers/operations.js +406 -0
- package/dist/controllers/operations.js.map +1 -0
- package/dist/controllers/permissions.cjs +929 -483
- package/dist/controllers/permissions.cjs.map +1 -1
- package/dist/controllers/permissions.d.ts +1318 -25
- package/dist/controllers/permissions.js +929 -483
- 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 -63
- package/dist/controllers/protocol.js +15 -14
- package/dist/controllers/protocol.js.map +1 -1
- package/dist/controllers/schemas.cjs +100 -75
- package/dist/controllers/schemas.cjs.map +1 -1
- package/dist/controllers/schemas.d.ts +56 -74
- package/dist/controllers/schemas.js +100 -75
- 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 -71
- package/dist/controllers/server.js +32 -25
- package/dist/controllers/server.js.map +1 -1
- package/dist/core/__tests__/health.test.d.ts +1 -0
- package/dist/core/__tests__/inMemoryNonceManager.test.d.ts +1 -0
- package/dist/core/__tests__/nonceManager.test.d.ts +1 -0
- package/dist/core/__tests__/pollingManager.test.d.ts +4 -0
- 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/health.cjs +289 -0
- package/dist/core/health.cjs.map +1 -0
- package/dist/core/health.d.ts +143 -0
- package/dist/core/health.js +265 -0
- package/dist/core/health.js.map +1 -0
- package/dist/core/inMemoryNonceManager.cjs +138 -0
- package/dist/core/inMemoryNonceManager.cjs.map +1 -0
- package/dist/core/inMemoryNonceManager.d.ts +69 -0
- package/dist/core/inMemoryNonceManager.js +114 -0
- package/dist/core/inMemoryNonceManager.js.map +1 -0
- package/dist/core/nonceManager.cjs +304 -0
- package/dist/core/nonceManager.cjs.map +1 -0
- package/dist/core/nonceManager.d.ts +116 -0
- package/dist/core/nonceManager.js +280 -0
- package/dist/core/nonceManager.js.map +1 -0
- package/dist/core/pollingManager.cjs +292 -0
- package/dist/core/pollingManager.cjs.map +1 -0
- package/dist/core/pollingManager.d.ts +120 -0
- package/dist/core/pollingManager.js +268 -0
- package/dist/core/pollingManager.js.map +1 -0
- 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 +152 -61
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +50 -67
- package/dist/core.js +164 -86
- 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 +20 -6
- package/dist/crypto/ecies/base.cjs.map +1 -1
- package/dist/crypto/ecies/base.d.ts +2 -5
- package/dist/crypto/ecies/base.js +28 -18
- 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/test-vectors/eccrypto-vectors.json +72 -0
- 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 +45 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +117 -15
- package/dist/errors.js +46 -6
- package/dist/errors.js.map +1 -1
- package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
- 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.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataRegistryImplementation.cjs +13 -0
- package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataRegistryImplementation.d.ts +12 -3
- package/dist/generated/abi/DataRegistryImplementation.js +13 -0
- package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
- 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.cjs +42 -0
- package/dist/generated/abi/index.cjs.map +1 -1
- package/dist/generated/abi/index.d.ts +47 -18
- package/dist/generated/abi/index.js +21 -0
- package/dist/generated/abi/index.js.map +1 -1
- package/dist/generated/event-types.cjs +17 -0
- package/dist/generated/event-types.cjs.map +1 -0
- package/dist/generated/event-types.d.ts +854 -0
- package/dist/generated/event-types.js +1 -0
- package/dist/generated/event-types.js.map +1 -0
- package/dist/generated/eventRegistry.cjs +3351 -0
- package/dist/generated/eventRegistry.cjs.map +1 -0
- package/dist/generated/eventRegistry.d.ts +14 -0
- package/dist/generated/eventRegistry.js +3326 -0
- package/dist/generated/eventRegistry.js.map +1 -0
- 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 +49 -73
- package/dist/index.browser.js +14 -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 +31 -3
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +223 -64
- package/dist/index.node.js +28 -2
- package/dist/index.node.js.map +1 -1
- package/dist/lib/__tests__/redisAtomicStore.test.d.ts +1 -0
- package/dist/lib/redisAtomicStore.cjs +201 -0
- package/dist/lib/redisAtomicStore.cjs.map +1 -0
- package/dist/lib/redisAtomicStore.d.ts +120 -0
- package/dist/lib/redisAtomicStore.js +177 -0
- package/dist/lib/redisAtomicStore.js.map +1 -0
- 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/schemas/dataSchema.schema.json +53 -0
- package/dist/schemas/grantFile.schema.json +43 -0
- package/dist/server/relayerHandler.cjs +420 -0
- package/dist/server/relayerHandler.cjs.map +1 -0
- package/dist/server/relayerHandler.d.ts +69 -0
- package/dist/server/relayerHandler.js +396 -0
- package/dist/server/relayerHandler.js.map +1 -0
- package/dist/storage/index.d.ts +56 -10
- package/dist/storage/manager.cjs +114 -31
- 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/{chains.browser.cjs → types/atomicStore.cjs} +9 -15
- package/dist/types/atomicStore.cjs.map +1 -0
- package/dist/types/atomicStore.d.ts +236 -0
- package/dist/types/atomicStore.js +7 -0
- package/dist/types/atomicStore.js.map +1 -0
- package/dist/types/blockchain.cjs +17 -0
- package/dist/types/blockchain.cjs.map +1 -0
- package/dist/types/blockchain.d.ts +85 -0
- package/dist/types/blockchain.js +1 -0
- package/dist/types/blockchain.js.map +1 -0
- 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 +17 -0
- package/dist/types/controller-context.cjs.map +1 -0
- package/dist/types/controller-context.d.ts +68 -0
- package/dist/types/controller-context.js +1 -0
- package/dist/types/controller-context.js.map +1 -0
- package/dist/types/data.cjs.map +1 -1
- package/dist/types/data.d.ts +118 -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 +48 -34
- package/dist/types/index.js +9 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/operationStore.cjs +17 -0
- package/dist/types/operationStore.cjs.map +1 -0
- package/dist/types/operationStore.d.ts +171 -0
- package/dist/types/operationStore.js +1 -0
- package/dist/types/operationStore.js.map +1 -0
- package/dist/types/operations.cjs +2 -2
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.ts +164 -42
- 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 +308 -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.cjs.map +1 -1
- package/dist/types/transactionResults.d.ts +193 -25
- package/dist/types/utils.cjs.map +1 -1
- package/dist/types/utils.d.ts +20 -68
- package/dist/types.d.ts +4 -40
- 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 +87 -0
- package/dist/utils/parseTransactionPojo.cjs.map +1 -0
- package/dist/utils/parseTransactionPojo.d.ts +31 -0
- package/dist/utils/parseTransactionPojo.js +63 -0
- package/dist/utils/parseTransactionPojo.js.map +1 -0
- 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 +54 -0
- package/dist/utils/transactionHelpers.cjs.map +1 -0
- package/dist/utils/transactionHelpers.d.ts +80 -0
- package/dist/utils/transactionHelpers.js +29 -0
- package/dist/utils/transactionHelpers.js.map +1 -0
- 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 +44 -0
- package/dist/utils/withEvents.cjs.map +1 -0
- package/dist/utils/withEvents.d.ts +56 -0
- package/dist/utils/withEvents.js +18 -0
- package/dist/utils/withEvents.js.map +1 -0
- package/package.json +25 -13
- 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.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 -380
- package/dist/config/chains.d.cts +0 -85
- package/dist/config/eventMappings.cjs +0 -114
- package/dist/config/eventMappings.cjs.map +0 -1
- package/dist/config/eventMappings.d.cts +0 -108
- package/dist/config/eventMappings.d.ts +0 -108
- package/dist/config/eventMappings.js +0 -90
- package/dist/config/eventMappings.js.map +0 -1
- package/dist/config/features.d.cts +0 -64
- package/dist/contracts/contractController.d.cts +0 -96
- package/dist/controllers/data.d.cts +0 -941
- package/dist/controllers/permissions.d.cts +0 -25
- package/dist/controllers/protocol.d.cts +0 -167
- package/dist/controllers/schemas.d.cts +0 -272
- package/dist/controllers/server.d.cts +0 -243
- 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 -466
- 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/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 -1004
- 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 -26516
- 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 -177
- package/dist/index.d.cts +0 -2
- package/dist/index.node.d.cts +0 -64
- package/dist/node.d.cts +0 -2
- package/dist/permissions-DNKPu_G0.d.cts +0 -1666
- package/dist/permissions-eo8YeLGf.d.ts +0 -1666
- 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/server/handler.cjs +0 -101
- package/dist/server/handler.cjs.map +0 -1
- package/dist/server/handler.d.cts +0 -282
- package/dist/server/handler.d.ts +0 -282
- 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/chains.d.cts +0 -34
- package/dist/types/config.d.cts +0 -726
- package/dist/types/contracts.d.cts +0 -68
- 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 -34
- package/dist/types/operations.d.cts +0 -108
- 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 -25
- package/dist/types/utils.d.cts +0 -819
- package/dist/types.d.cts +0 -66
- 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/eventParsing.cjs +0 -111
- package/dist/utils/eventParsing.cjs.map +0 -1
- package/dist/utils/eventParsing.d.cts +0 -60
- package/dist/utils/eventParsing.d.ts +0 -60
- package/dist/utils/eventParsing.js +0 -86
- package/dist/utils/eventParsing.js.map +0 -1
- 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/schemaValidation.d.cts +0 -172
- package/dist/utils/signatureCache.d.cts +0 -134
- package/dist/utils/signatureFormatter.d.cts +0 -39
- package/dist/utils/transactionParsing.cjs +0 -84
- package/dist/utils/transactionParsing.cjs.map +0 -1
- package/dist/utils/transactionParsing.d.cts +0 -25
- package/dist/utils/transactionParsing.d.ts +0 -25
- package/dist/utils/transactionParsing.js +0 -62
- package/dist/utils/transactionParsing.js.map +0 -1
- package/dist/utils/typedDataConverter.d.cts +0 -13
- package/dist/utils/urlResolver.d.cts +0 -40
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -26,7 +26,7 @@ var import_viem = require("viem");
|
|
|
26
26
|
var import_addresses = require("../../config/addresses");
|
|
27
27
|
var import_abi = require("../../generated/abi");
|
|
28
28
|
async function fetchSchemaFromChain(context, schemaId) {
|
|
29
|
-
const chainId = context.walletClient.chain?.id;
|
|
29
|
+
const chainId = context.walletClient?.chain?.id ?? context.publicClient.chain?.id;
|
|
30
30
|
if (!chainId) {
|
|
31
31
|
throw new Error("Chain ID not available");
|
|
32
32
|
}
|
|
@@ -56,7 +56,7 @@ async function fetchSchemaFromChain(context, schemaId) {
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
async function fetchSchemaCountFromChain(context) {
|
|
59
|
-
const chainId = context.walletClient.chain?.id;
|
|
59
|
+
const chainId = context.walletClient?.chain?.id ?? context.publicClient.chain?.id;
|
|
60
60
|
if (!chainId) {
|
|
61
61
|
throw new Error("Chain ID not available");
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/blockchain/registry.ts"],"sourcesContent":["import { getContract } from \"viem\";\nimport { PublicClient, WalletClient } from \"viem\";\nimport { getContractAddress } from \"../../config/addresses\";\nimport { getAbi } from \"../../generated/abi\";\nimport { SchemaMetadata } from \"../../types/index\";\n\n/**\n * Shared context for blockchain operations.\n * Only includes the minimal required fields to avoid coupling.\n */\ninterface BlockchainContext {\n walletClient
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/blockchain/registry.ts"],"sourcesContent":["import { getContract } from \"viem\";\nimport type { PublicClient, WalletClient } from \"viem\";\nimport { getContractAddress } from \"../../config/addresses\";\nimport { getAbi } from \"../../generated/abi\";\nimport type { SchemaMetadata } from \"../../types/index\";\n\n/**\n * Shared context for blockchain operations.\n * Only includes the minimal required fields to avoid coupling.\n */\ninterface BlockchainContext {\n walletClient?: WalletClient;\n publicClient: PublicClient;\n}\n\n/**\n * Contract data structure returned by the blockchain.\n *\n * @internal\n */\ninterface SchemaContractData {\n name: string;\n dialect: string;\n definitionUrl: string;\n}\n\n/**\n * Fetches schema metadata from the blockchain by its ID.\n *\n * @param context - The blockchain context containing wallet and public clients\n * @param schemaId - The ID of the schema to fetch\n * @returns The schema metadata with id, name, dialect, and definitionUrl\n * @throws Error if chain ID is not available, schema not found, or data is incomplete\n *\n * @internal\n */\nexport async function fetchSchemaFromChain(\n context: BlockchainContext,\n schemaId: number,\n): Promise<SchemaMetadata> {\n const chainId =\n context.walletClient?.chain?.id ?? 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 dataRefinerRegistry = getContract({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n client: context.publicClient,\n });\n\n const schemaData = await dataRefinerRegistry.read.schemas([BigInt(schemaId)]);\n\n if (!schemaData) {\n throw new Error(`Schema with ID ${schemaId} not found`);\n }\n\n // TODO(TYPES): Contract read returns unknown type from viem library.\n // Future improvement: Create typed contract interface when viem adds support\n // or implement a contract type generator from ABI definitions.\n const schemaObj = schemaData as unknown as SchemaContractData;\n\n if (!schemaObj.name || !schemaObj.dialect || !schemaObj.definitionUrl) {\n throw new Error(\"Incomplete schema data\");\n }\n\n return {\n id: schemaId,\n name: schemaObj.name,\n dialect: schemaObj.dialect as \"json\" | \"sqlite\",\n definitionUrl: schemaObj.definitionUrl,\n };\n}\n\n/**\n * Fetches the total count of schemas from the blockchain.\n *\n * @param context - The blockchain context containing wallet and public clients\n * @returns The total number of schemas\n * @throws Error if chain ID is not available or operation fails\n *\n * @internal\n */\nexport async function fetchSchemaCountFromChain(\n context: BlockchainContext,\n): Promise<number> {\n const chainId =\n context.walletClient?.chain?.id ?? 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 dataRefinerRegistry = getContract({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n client: context.publicClient,\n });\n\n const count = await dataRefinerRegistry.read.schemasCount();\n return Number(count);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA4B;AAE5B,uBAAmC;AACnC,iBAAuB;AAiCvB,eAAsB,qBACpB,SACA,UACyB;AACzB,QAAM,UACJ,QAAQ,cAAc,OAAO,MAAM,QAAQ,aAAa,OAAO;AACjE,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,iCAA6B;AAAA,IACjC;AAAA,IACA;AAAA,EACF;AACA,QAAM,6BAAyB,mBAAO,qBAAqB;AAE3D,QAAM,0BAAsB,yBAAY;AAAA,IACtC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ,QAAQ;AAAA,EAClB,CAAC;AAED,QAAM,aAAa,MAAM,oBAAoB,KAAK,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE5E,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,kBAAkB,QAAQ,YAAY;AAAA,EACxD;AAKA,QAAM,YAAY;AAElB,MAAI,CAAC,UAAU,QAAQ,CAAC,UAAU,WAAW,CAAC,UAAU,eAAe;AACrE,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM,UAAU;AAAA,IAChB,SAAS,UAAU;AAAA,IACnB,eAAe,UAAU;AAAA,EAC3B;AACF;AAWA,eAAsB,0BACpB,SACiB;AACjB,QAAM,UACJ,QAAQ,cAAc,OAAO,MAAM,QAAQ,aAAa,OAAO;AACjE,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,iCAA6B;AAAA,IACjC;AAAA,IACA;AAAA,EACF;AACA,QAAM,6BAAyB,mBAAO,qBAAqB;AAE3D,QAAM,0BAAsB,yBAAY;AAAA,IACtC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ,QAAQ;AAAA,EAClB,CAAC;AAED,QAAM,QAAQ,MAAM,oBAAoB,KAAK,aAAa;AAC1D,SAAO,OAAO,KAAK;AACrB;","names":[]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SchemaMetadata } from
|
|
3
|
-
|
|
1
|
+
import type { PublicClient, WalletClient } from "viem";
|
|
2
|
+
import type { SchemaMetadata } from "../../types/index";
|
|
4
3
|
/**
|
|
5
4
|
* Shared context for blockchain operations.
|
|
6
5
|
* Only includes the minimal required fields to avoid coupling.
|
|
7
6
|
*/
|
|
8
7
|
interface BlockchainContext {
|
|
9
|
-
walletClient
|
|
8
|
+
walletClient?: WalletClient;
|
|
10
9
|
publicClient: PublicClient;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
@@ -19,7 +18,7 @@ interface BlockchainContext {
|
|
|
19
18
|
*
|
|
20
19
|
* @internal
|
|
21
20
|
*/
|
|
22
|
-
declare function fetchSchemaFromChain(context: BlockchainContext, schemaId: number): Promise<SchemaMetadata>;
|
|
21
|
+
export declare function fetchSchemaFromChain(context: BlockchainContext, schemaId: number): Promise<SchemaMetadata>;
|
|
23
22
|
/**
|
|
24
23
|
* Fetches the total count of schemas from the blockchain.
|
|
25
24
|
*
|
|
@@ -29,6 +28,5 @@ declare function fetchSchemaFromChain(context: BlockchainContext, schemaId: numb
|
|
|
29
28
|
*
|
|
30
29
|
* @internal
|
|
31
30
|
*/
|
|
32
|
-
declare function fetchSchemaCountFromChain(context: BlockchainContext): Promise<number>;
|
|
33
|
-
|
|
34
|
-
export { fetchSchemaCountFromChain, fetchSchemaFromChain };
|
|
31
|
+
export declare function fetchSchemaCountFromChain(context: BlockchainContext): Promise<number>;
|
|
32
|
+
export {};
|
|
@@ -2,7 +2,7 @@ import { getContract } from "viem";
|
|
|
2
2
|
import { getContractAddress } from "../../config/addresses";
|
|
3
3
|
import { getAbi } from "../../generated/abi";
|
|
4
4
|
async function fetchSchemaFromChain(context, schemaId) {
|
|
5
|
-
const chainId = context.walletClient.chain?.id;
|
|
5
|
+
const chainId = context.walletClient?.chain?.id ?? context.publicClient.chain?.id;
|
|
6
6
|
if (!chainId) {
|
|
7
7
|
throw new Error("Chain ID not available");
|
|
8
8
|
}
|
|
@@ -32,7 +32,7 @@ async function fetchSchemaFromChain(context, schemaId) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
async function fetchSchemaCountFromChain(context) {
|
|
35
|
-
const chainId = context.walletClient.chain?.id;
|
|
35
|
+
const chainId = context.walletClient?.chain?.id ?? context.publicClient.chain?.id;
|
|
36
36
|
if (!chainId) {
|
|
37
37
|
throw new Error("Chain ID not available");
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/blockchain/registry.ts"],"sourcesContent":["import { getContract } from \"viem\";\nimport { PublicClient, WalletClient } from \"viem\";\nimport { getContractAddress } from \"../../config/addresses\";\nimport { getAbi } from \"../../generated/abi\";\nimport { SchemaMetadata } from \"../../types/index\";\n\n/**\n * Shared context for blockchain operations.\n * Only includes the minimal required fields to avoid coupling.\n */\ninterface BlockchainContext {\n walletClient
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/blockchain/registry.ts"],"sourcesContent":["import { getContract } from \"viem\";\nimport type { PublicClient, WalletClient } from \"viem\";\nimport { getContractAddress } from \"../../config/addresses\";\nimport { getAbi } from \"../../generated/abi\";\nimport type { SchemaMetadata } from \"../../types/index\";\n\n/**\n * Shared context for blockchain operations.\n * Only includes the minimal required fields to avoid coupling.\n */\ninterface BlockchainContext {\n walletClient?: WalletClient;\n publicClient: PublicClient;\n}\n\n/**\n * Contract data structure returned by the blockchain.\n *\n * @internal\n */\ninterface SchemaContractData {\n name: string;\n dialect: string;\n definitionUrl: string;\n}\n\n/**\n * Fetches schema metadata from the blockchain by its ID.\n *\n * @param context - The blockchain context containing wallet and public clients\n * @param schemaId - The ID of the schema to fetch\n * @returns The schema metadata with id, name, dialect, and definitionUrl\n * @throws Error if chain ID is not available, schema not found, or data is incomplete\n *\n * @internal\n */\nexport async function fetchSchemaFromChain(\n context: BlockchainContext,\n schemaId: number,\n): Promise<SchemaMetadata> {\n const chainId =\n context.walletClient?.chain?.id ?? 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 dataRefinerRegistry = getContract({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n client: context.publicClient,\n });\n\n const schemaData = await dataRefinerRegistry.read.schemas([BigInt(schemaId)]);\n\n if (!schemaData) {\n throw new Error(`Schema with ID ${schemaId} not found`);\n }\n\n // TODO(TYPES): Contract read returns unknown type from viem library.\n // Future improvement: Create typed contract interface when viem adds support\n // or implement a contract type generator from ABI definitions.\n const schemaObj = schemaData as unknown as SchemaContractData;\n\n if (!schemaObj.name || !schemaObj.dialect || !schemaObj.definitionUrl) {\n throw new Error(\"Incomplete schema data\");\n }\n\n return {\n id: schemaId,\n name: schemaObj.name,\n dialect: schemaObj.dialect as \"json\" | \"sqlite\",\n definitionUrl: schemaObj.definitionUrl,\n };\n}\n\n/**\n * Fetches the total count of schemas from the blockchain.\n *\n * @param context - The blockchain context containing wallet and public clients\n * @returns The total number of schemas\n * @throws Error if chain ID is not available or operation fails\n *\n * @internal\n */\nexport async function fetchSchemaCountFromChain(\n context: BlockchainContext,\n): Promise<number> {\n const chainId =\n context.walletClient?.chain?.id ?? 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 dataRefinerRegistry = getContract({\n address: dataRefinerRegistryAddress,\n abi: dataRefinerRegistryAbi,\n client: context.publicClient,\n });\n\n const count = await dataRefinerRegistry.read.schemasCount();\n return Number(count);\n}\n"],"mappings":"AAAA,SAAS,mBAAmB;AAE5B,SAAS,0BAA0B;AACnC,SAAS,cAAc;AAiCvB,eAAsB,qBACpB,SACA,UACyB;AACzB,QAAM,UACJ,QAAQ,cAAc,OAAO,MAAM,QAAQ,aAAa,OAAO;AACjE,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,6BAA6B;AAAA,IACjC;AAAA,IACA;AAAA,EACF;AACA,QAAM,yBAAyB,OAAO,qBAAqB;AAE3D,QAAM,sBAAsB,YAAY;AAAA,IACtC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ,QAAQ;AAAA,EAClB,CAAC;AAED,QAAM,aAAa,MAAM,oBAAoB,KAAK,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE5E,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,kBAAkB,QAAQ,YAAY;AAAA,EACxD;AAKA,QAAM,YAAY;AAElB,MAAI,CAAC,UAAU,QAAQ,CAAC,UAAU,WAAW,CAAC,UAAU,eAAe;AACrE,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM,UAAU;AAAA,IAChB,SAAS,UAAU;AAAA,IACnB,eAAe,UAAU;AAAA,EAC3B;AACF;AAWA,eAAsB,0BACpB,SACiB;AACjB,QAAM,UACJ,QAAQ,cAAc,OAAO,MAAM,QAAQ,aAAa,OAAO;AACjE,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,6BAA6B;AAAA,IACjC;AAAA,IACA;AAAA,EACF;AACA,QAAM,yBAAyB,OAAO,qBAAqB;AAE3D,QAAM,sBAAsB,YAAY;AAAA,IACtC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ,QAAQ;AAAA,EAClB,CAAC;AAED,QAAM,QAAQ,MAAM,oBAAoB,KAAK,aAAa;AAC1D,SAAO,OAAO,KAAK;AACrB;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var chainQuery_exports = {};
|
|
20
|
+
__export(chainQuery_exports, {
|
|
21
|
+
determineDataSource: () => determineDataSource,
|
|
22
|
+
getUserFilesFromChain: () => getUserFilesFromChain
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(chainQuery_exports);
|
|
25
|
+
var import_viem = require("viem");
|
|
26
|
+
async function getUserFilesFromChain(publicClient, contractAddress, owner, fromBlock, toBlock) {
|
|
27
|
+
const fileAddedV2Events = await publicClient.getLogs({
|
|
28
|
+
address: contractAddress,
|
|
29
|
+
event: (0, import_viem.parseAbiItem)(
|
|
30
|
+
"event FileAddedV2(uint256 indexed fileId, address indexed ownerAddress, string url, uint256 schemaId)"
|
|
31
|
+
),
|
|
32
|
+
args: {
|
|
33
|
+
ownerAddress: owner
|
|
34
|
+
},
|
|
35
|
+
fromBlock: fromBlock ?? "earliest",
|
|
36
|
+
toBlock: toBlock ?? "latest"
|
|
37
|
+
});
|
|
38
|
+
const fileAddedEvents = await publicClient.getLogs({
|
|
39
|
+
address: contractAddress,
|
|
40
|
+
event: (0, import_viem.parseAbiItem)(
|
|
41
|
+
"event FileAdded(uint256 indexed fileId, address indexed ownerAddress, string url)"
|
|
42
|
+
),
|
|
43
|
+
args: {
|
|
44
|
+
ownerAddress: owner
|
|
45
|
+
},
|
|
46
|
+
fromBlock: fromBlock ?? "earliest",
|
|
47
|
+
toBlock: toBlock ?? "latest"
|
|
48
|
+
});
|
|
49
|
+
const filesFromV2 = fileAddedV2Events.map((event) => ({
|
|
50
|
+
id: Number(event.args.fileId),
|
|
51
|
+
url: event.args.url,
|
|
52
|
+
ownerAddress: event.args.ownerAddress,
|
|
53
|
+
schemaId: Number(event.args.schemaId),
|
|
54
|
+
addedAtBlock: event.blockNumber,
|
|
55
|
+
addedAtTimestamp: BigInt(0),
|
|
56
|
+
// Would need to fetch block for timestamp
|
|
57
|
+
transactionHash: event.transactionHash
|
|
58
|
+
}));
|
|
59
|
+
const filesFromV1 = fileAddedEvents.map((event) => ({
|
|
60
|
+
id: Number(event.args.fileId),
|
|
61
|
+
url: event.args.url,
|
|
62
|
+
ownerAddress: event.args.ownerAddress,
|
|
63
|
+
schemaId: 0,
|
|
64
|
+
// No schema in V1
|
|
65
|
+
addedAtBlock: event.blockNumber,
|
|
66
|
+
addedAtTimestamp: BigInt(0),
|
|
67
|
+
// Would need to fetch block for timestamp
|
|
68
|
+
transactionHash: event.transactionHash
|
|
69
|
+
}));
|
|
70
|
+
const allFiles = [...filesFromV2];
|
|
71
|
+
const v2FileIds = new Set(filesFromV2.map((f) => f.id));
|
|
72
|
+
for (const v1File of filesFromV1) {
|
|
73
|
+
if (!v2FileIds.has(v1File.id)) {
|
|
74
|
+
allFiles.push(v1File);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
allFiles.sort((a, b) => {
|
|
78
|
+
if (a.addedAtBlock > b.addedAtBlock) return -1;
|
|
79
|
+
if (a.addedAtBlock < b.addedAtBlock) return 1;
|
|
80
|
+
return 0;
|
|
81
|
+
});
|
|
82
|
+
return allFiles;
|
|
83
|
+
}
|
|
84
|
+
function determineDataSource(source, minBlock, currentBlock, subgraphBlock) {
|
|
85
|
+
if (source === "subgraph" || source === "chain") {
|
|
86
|
+
return source;
|
|
87
|
+
}
|
|
88
|
+
if (source === "auto" || source === void 0) {
|
|
89
|
+
if (!minBlock) {
|
|
90
|
+
return "subgraph";
|
|
91
|
+
}
|
|
92
|
+
if (!subgraphBlock || subgraphBlock < minBlock) {
|
|
93
|
+
const staleness = Number(currentBlock) - (subgraphBlock ?? 0);
|
|
94
|
+
if (staleness > 100) {
|
|
95
|
+
return "chain";
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return "subgraph";
|
|
99
|
+
}
|
|
100
|
+
return "subgraph";
|
|
101
|
+
}
|
|
102
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
103
|
+
0 && (module.exports = {
|
|
104
|
+
determineDataSource,
|
|
105
|
+
getUserFilesFromChain
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=chainQuery.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/chainQuery.ts"],"sourcesContent":["/**\n * @file Utilities for querying data directly from the blockchain\n * @module vana-sdk/utils/chainQuery\n */\n\nimport type { Address, PublicClient } from \"viem\";\nimport { parseAbiItem } from \"viem\";\nimport type { UserFile } from \"../types\";\n\n/**\n * Query user files directly from the blockchain using events\n *\n * @remarks\n * This bypasses the subgraph entirely and queries events directly from the chain.\n * Slower than subgraph but guarantees real-time consistency.\n *\n * @param publicClient - Viem public client for chain interaction\n * @param contractAddress - DataRegistry contract address\n * @param owner - Owner address to query files for\n * @param fromBlock - Starting block number (optional)\n * @param toBlock - Ending block number (optional)\n * @returns Array of UserFile objects\n */\nexport async function getUserFilesFromChain(\n publicClient: PublicClient,\n contractAddress: Address,\n owner: Address,\n fromBlock?: bigint,\n toBlock?: bigint,\n): Promise<UserFile[]> {\n // Query FileAddedV2 events (has schema support)\n const fileAddedV2Events = await publicClient.getLogs({\n address: contractAddress,\n event: parseAbiItem(\n \"event FileAddedV2(uint256 indexed fileId, address indexed ownerAddress, string url, uint256 schemaId)\",\n ),\n args: {\n ownerAddress: owner,\n },\n fromBlock: fromBlock ?? \"earliest\",\n toBlock: toBlock ?? \"latest\",\n });\n\n // Also query older FileAdded events (no schema)\n const fileAddedEvents = await publicClient.getLogs({\n address: contractAddress,\n event: parseAbiItem(\n \"event FileAdded(uint256 indexed fileId, address indexed ownerAddress, string url)\",\n ),\n args: {\n ownerAddress: owner,\n },\n fromBlock: fromBlock ?? \"earliest\",\n toBlock: toBlock ?? \"latest\",\n });\n\n // Convert events to UserFile objects\n const filesFromV2 = fileAddedV2Events.map((event) => ({\n id: Number(event.args.fileId),\n url: event.args.url as string,\n ownerAddress: event.args.ownerAddress as Address,\n schemaId: Number(event.args.schemaId),\n addedAtBlock: event.blockNumber,\n addedAtTimestamp: BigInt(0), // Would need to fetch block for timestamp\n transactionHash: event.transactionHash,\n }));\n\n const filesFromV1 = fileAddedEvents.map((event) => ({\n id: Number(event.args.fileId),\n url: event.args.url as string,\n ownerAddress: event.args.ownerAddress as Address,\n schemaId: 0, // No schema in V1\n addedAtBlock: event.blockNumber,\n addedAtTimestamp: BigInt(0), // Would need to fetch block for timestamp\n transactionHash: event.transactionHash,\n }));\n\n // Combine and deduplicate (V2 takes precedence)\n const allFiles = [...filesFromV2];\n const v2FileIds = new Set(filesFromV2.map((f) => f.id));\n\n for (const v1File of filesFromV1) {\n if (!v2FileIds.has(v1File.id)) {\n allFiles.push(v1File);\n }\n }\n\n // Sort by block number descending (most recent first)\n allFiles.sort((a, b) => {\n if (a.addedAtBlock > b.addedAtBlock) return -1;\n if (a.addedAtBlock < b.addedAtBlock) return 1;\n return 0;\n });\n\n return allFiles;\n}\n\n/**\n * Determine optimal data source based on requirements\n *\n * @param source - Explicitly requested source\n * @param minBlock - Minimum required block\n * @param currentBlock - Current chain block\n * @param subgraphBlock - Current subgraph block\n * @returns The data source to use\n */\nexport function determineDataSource(\n source: \"subgraph\" | \"chain\" | \"auto\" | undefined,\n minBlock: number | undefined,\n currentBlock: bigint,\n subgraphBlock: number | undefined,\n): \"subgraph\" | \"chain\" {\n // If explicitly specified, use that\n if (source === \"subgraph\" || source === \"chain\") {\n return source;\n }\n\n // Auto mode or unspecified\n if (source === \"auto\" || source === undefined) {\n // If no consistency requirement, use subgraph (faster)\n if (!minBlock) {\n return \"subgraph\";\n }\n\n // If subgraph is unknown or too far behind, use chain\n if (!subgraphBlock || subgraphBlock < minBlock) {\n // Calculate staleness\n const staleness = Number(currentBlock) - (subgraphBlock ?? 0);\n\n // If more than 100 blocks behind, use chain\n if (staleness > 100) {\n return \"chain\";\n }\n }\n\n // Default to subgraph\n return \"subgraph\";\n }\n\n // Default fallback\n return \"subgraph\";\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,kBAA6B;AAiB7B,eAAsB,sBACpB,cACA,iBACA,OACA,WACA,SACqB;AAErB,QAAM,oBAAoB,MAAM,aAAa,QAAQ;AAAA,IACnD,SAAS;AAAA,IACT,WAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,cAAc;AAAA,IAChB;AAAA,IACA,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,EACtB,CAAC;AAGD,QAAM,kBAAkB,MAAM,aAAa,QAAQ;AAAA,IACjD,SAAS;AAAA,IACT,WAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,cAAc;AAAA,IAChB;AAAA,IACA,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,EACtB,CAAC;AAGD,QAAM,cAAc,kBAAkB,IAAI,CAAC,WAAW;AAAA,IACpD,IAAI,OAAO,MAAM,KAAK,MAAM;AAAA,IAC5B,KAAK,MAAM,KAAK;AAAA,IAChB,cAAc,MAAM,KAAK;AAAA,IACzB,UAAU,OAAO,MAAM,KAAK,QAAQ;AAAA,IACpC,cAAc,MAAM;AAAA,IACpB,kBAAkB,OAAO,CAAC;AAAA;AAAA,IAC1B,iBAAiB,MAAM;AAAA,EACzB,EAAE;AAEF,QAAM,cAAc,gBAAgB,IAAI,CAAC,WAAW;AAAA,IAClD,IAAI,OAAO,MAAM,KAAK,MAAM;AAAA,IAC5B,KAAK,MAAM,KAAK;AAAA,IAChB,cAAc,MAAM,KAAK;AAAA,IACzB,UAAU;AAAA;AAAA,IACV,cAAc,MAAM;AAAA,IACpB,kBAAkB,OAAO,CAAC;AAAA;AAAA,IAC1B,iBAAiB,MAAM;AAAA,EACzB,EAAE;AAGF,QAAM,WAAW,CAAC,GAAG,WAAW;AAChC,QAAM,YAAY,IAAI,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAEtD,aAAW,UAAU,aAAa;AAChC,QAAI,CAAC,UAAU,IAAI,OAAO,EAAE,GAAG;AAC7B,eAAS,KAAK,MAAM;AAAA,IACtB;AAAA,EACF;AAGA,WAAS,KAAK,CAAC,GAAG,MAAM;AACtB,QAAI,EAAE,eAAe,EAAE,aAAc,QAAO;AAC5C,QAAI,EAAE,eAAe,EAAE,aAAc,QAAO;AAC5C,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;AAWO,SAAS,oBACd,QACA,UACA,cACA,eACsB;AAEtB,MAAI,WAAW,cAAc,WAAW,SAAS;AAC/C,WAAO;AAAA,EACT;AAGA,MAAI,WAAW,UAAU,WAAW,QAAW;AAE7C,QAAI,CAAC,UAAU;AACb,aAAO;AAAA,IACT;AAGA,QAAI,CAAC,iBAAiB,gBAAgB,UAAU;AAE9C,YAAM,YAAY,OAAO,YAAY,KAAK,iBAAiB;AAG3D,UAAI,YAAY,KAAK;AACnB,eAAO;AAAA,MACT;AAAA,IACF;AAGA,WAAO;AAAA,EACT;AAGA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Utilities for querying data directly from the blockchain
|
|
3
|
+
* @module vana-sdk/utils/chainQuery
|
|
4
|
+
*/
|
|
5
|
+
import type { Address, PublicClient } from "viem";
|
|
6
|
+
import type { UserFile } from "../types";
|
|
7
|
+
/**
|
|
8
|
+
* Query user files directly from the blockchain using events
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* This bypasses the subgraph entirely and queries events directly from the chain.
|
|
12
|
+
* Slower than subgraph but guarantees real-time consistency.
|
|
13
|
+
*
|
|
14
|
+
* @param publicClient - Viem public client for chain interaction
|
|
15
|
+
* @param contractAddress - DataRegistry contract address
|
|
16
|
+
* @param owner - Owner address to query files for
|
|
17
|
+
* @param fromBlock - Starting block number (optional)
|
|
18
|
+
* @param toBlock - Ending block number (optional)
|
|
19
|
+
* @returns Array of UserFile objects
|
|
20
|
+
*/
|
|
21
|
+
export declare function getUserFilesFromChain(publicClient: PublicClient, contractAddress: Address, owner: Address, fromBlock?: bigint, toBlock?: bigint): Promise<UserFile[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Determine optimal data source based on requirements
|
|
24
|
+
*
|
|
25
|
+
* @param source - Explicitly requested source
|
|
26
|
+
* @param minBlock - Minimum required block
|
|
27
|
+
* @param currentBlock - Current chain block
|
|
28
|
+
* @param subgraphBlock - Current subgraph block
|
|
29
|
+
* @returns The data source to use
|
|
30
|
+
*/
|
|
31
|
+
export declare function determineDataSource(source: "subgraph" | "chain" | "auto" | undefined, minBlock: number | undefined, currentBlock: bigint, subgraphBlock: number | undefined): "subgraph" | "chain";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { parseAbiItem } from "viem";
|
|
2
|
+
async function getUserFilesFromChain(publicClient, contractAddress, owner, fromBlock, toBlock) {
|
|
3
|
+
const fileAddedV2Events = await publicClient.getLogs({
|
|
4
|
+
address: contractAddress,
|
|
5
|
+
event: parseAbiItem(
|
|
6
|
+
"event FileAddedV2(uint256 indexed fileId, address indexed ownerAddress, string url, uint256 schemaId)"
|
|
7
|
+
),
|
|
8
|
+
args: {
|
|
9
|
+
ownerAddress: owner
|
|
10
|
+
},
|
|
11
|
+
fromBlock: fromBlock ?? "earliest",
|
|
12
|
+
toBlock: toBlock ?? "latest"
|
|
13
|
+
});
|
|
14
|
+
const fileAddedEvents = await publicClient.getLogs({
|
|
15
|
+
address: contractAddress,
|
|
16
|
+
event: parseAbiItem(
|
|
17
|
+
"event FileAdded(uint256 indexed fileId, address indexed ownerAddress, string url)"
|
|
18
|
+
),
|
|
19
|
+
args: {
|
|
20
|
+
ownerAddress: owner
|
|
21
|
+
},
|
|
22
|
+
fromBlock: fromBlock ?? "earliest",
|
|
23
|
+
toBlock: toBlock ?? "latest"
|
|
24
|
+
});
|
|
25
|
+
const filesFromV2 = fileAddedV2Events.map((event) => ({
|
|
26
|
+
id: Number(event.args.fileId),
|
|
27
|
+
url: event.args.url,
|
|
28
|
+
ownerAddress: event.args.ownerAddress,
|
|
29
|
+
schemaId: Number(event.args.schemaId),
|
|
30
|
+
addedAtBlock: event.blockNumber,
|
|
31
|
+
addedAtTimestamp: BigInt(0),
|
|
32
|
+
// Would need to fetch block for timestamp
|
|
33
|
+
transactionHash: event.transactionHash
|
|
34
|
+
}));
|
|
35
|
+
const filesFromV1 = fileAddedEvents.map((event) => ({
|
|
36
|
+
id: Number(event.args.fileId),
|
|
37
|
+
url: event.args.url,
|
|
38
|
+
ownerAddress: event.args.ownerAddress,
|
|
39
|
+
schemaId: 0,
|
|
40
|
+
// No schema in V1
|
|
41
|
+
addedAtBlock: event.blockNumber,
|
|
42
|
+
addedAtTimestamp: BigInt(0),
|
|
43
|
+
// Would need to fetch block for timestamp
|
|
44
|
+
transactionHash: event.transactionHash
|
|
45
|
+
}));
|
|
46
|
+
const allFiles = [...filesFromV2];
|
|
47
|
+
const v2FileIds = new Set(filesFromV2.map((f) => f.id));
|
|
48
|
+
for (const v1File of filesFromV1) {
|
|
49
|
+
if (!v2FileIds.has(v1File.id)) {
|
|
50
|
+
allFiles.push(v1File);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
allFiles.sort((a, b) => {
|
|
54
|
+
if (a.addedAtBlock > b.addedAtBlock) return -1;
|
|
55
|
+
if (a.addedAtBlock < b.addedAtBlock) return 1;
|
|
56
|
+
return 0;
|
|
57
|
+
});
|
|
58
|
+
return allFiles;
|
|
59
|
+
}
|
|
60
|
+
function determineDataSource(source, minBlock, currentBlock, subgraphBlock) {
|
|
61
|
+
if (source === "subgraph" || source === "chain") {
|
|
62
|
+
return source;
|
|
63
|
+
}
|
|
64
|
+
if (source === "auto" || source === void 0) {
|
|
65
|
+
if (!minBlock) {
|
|
66
|
+
return "subgraph";
|
|
67
|
+
}
|
|
68
|
+
if (!subgraphBlock || subgraphBlock < minBlock) {
|
|
69
|
+
const staleness = Number(currentBlock) - (subgraphBlock ?? 0);
|
|
70
|
+
if (staleness > 100) {
|
|
71
|
+
return "chain";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return "subgraph";
|
|
75
|
+
}
|
|
76
|
+
return "subgraph";
|
|
77
|
+
}
|
|
78
|
+
export {
|
|
79
|
+
determineDataSource,
|
|
80
|
+
getUserFilesFromChain
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=chainQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/chainQuery.ts"],"sourcesContent":["/**\n * @file Utilities for querying data directly from the blockchain\n * @module vana-sdk/utils/chainQuery\n */\n\nimport type { Address, PublicClient } from \"viem\";\nimport { parseAbiItem } from \"viem\";\nimport type { UserFile } from \"../types\";\n\n/**\n * Query user files directly from the blockchain using events\n *\n * @remarks\n * This bypasses the subgraph entirely and queries events directly from the chain.\n * Slower than subgraph but guarantees real-time consistency.\n *\n * @param publicClient - Viem public client for chain interaction\n * @param contractAddress - DataRegistry contract address\n * @param owner - Owner address to query files for\n * @param fromBlock - Starting block number (optional)\n * @param toBlock - Ending block number (optional)\n * @returns Array of UserFile objects\n */\nexport async function getUserFilesFromChain(\n publicClient: PublicClient,\n contractAddress: Address,\n owner: Address,\n fromBlock?: bigint,\n toBlock?: bigint,\n): Promise<UserFile[]> {\n // Query FileAddedV2 events (has schema support)\n const fileAddedV2Events = await publicClient.getLogs({\n address: contractAddress,\n event: parseAbiItem(\n \"event FileAddedV2(uint256 indexed fileId, address indexed ownerAddress, string url, uint256 schemaId)\",\n ),\n args: {\n ownerAddress: owner,\n },\n fromBlock: fromBlock ?? \"earliest\",\n toBlock: toBlock ?? \"latest\",\n });\n\n // Also query older FileAdded events (no schema)\n const fileAddedEvents = await publicClient.getLogs({\n address: contractAddress,\n event: parseAbiItem(\n \"event FileAdded(uint256 indexed fileId, address indexed ownerAddress, string url)\",\n ),\n args: {\n ownerAddress: owner,\n },\n fromBlock: fromBlock ?? \"earliest\",\n toBlock: toBlock ?? \"latest\",\n });\n\n // Convert events to UserFile objects\n const filesFromV2 = fileAddedV2Events.map((event) => ({\n id: Number(event.args.fileId),\n url: event.args.url as string,\n ownerAddress: event.args.ownerAddress as Address,\n schemaId: Number(event.args.schemaId),\n addedAtBlock: event.blockNumber,\n addedAtTimestamp: BigInt(0), // Would need to fetch block for timestamp\n transactionHash: event.transactionHash,\n }));\n\n const filesFromV1 = fileAddedEvents.map((event) => ({\n id: Number(event.args.fileId),\n url: event.args.url as string,\n ownerAddress: event.args.ownerAddress as Address,\n schemaId: 0, // No schema in V1\n addedAtBlock: event.blockNumber,\n addedAtTimestamp: BigInt(0), // Would need to fetch block for timestamp\n transactionHash: event.transactionHash,\n }));\n\n // Combine and deduplicate (V2 takes precedence)\n const allFiles = [...filesFromV2];\n const v2FileIds = new Set(filesFromV2.map((f) => f.id));\n\n for (const v1File of filesFromV1) {\n if (!v2FileIds.has(v1File.id)) {\n allFiles.push(v1File);\n }\n }\n\n // Sort by block number descending (most recent first)\n allFiles.sort((a, b) => {\n if (a.addedAtBlock > b.addedAtBlock) return -1;\n if (a.addedAtBlock < b.addedAtBlock) return 1;\n return 0;\n });\n\n return allFiles;\n}\n\n/**\n * Determine optimal data source based on requirements\n *\n * @param source - Explicitly requested source\n * @param minBlock - Minimum required block\n * @param currentBlock - Current chain block\n * @param subgraphBlock - Current subgraph block\n * @returns The data source to use\n */\nexport function determineDataSource(\n source: \"subgraph\" | \"chain\" | \"auto\" | undefined,\n minBlock: number | undefined,\n currentBlock: bigint,\n subgraphBlock: number | undefined,\n): \"subgraph\" | \"chain\" {\n // If explicitly specified, use that\n if (source === \"subgraph\" || source === \"chain\") {\n return source;\n }\n\n // Auto mode or unspecified\n if (source === \"auto\" || source === undefined) {\n // If no consistency requirement, use subgraph (faster)\n if (!minBlock) {\n return \"subgraph\";\n }\n\n // If subgraph is unknown or too far behind, use chain\n if (!subgraphBlock || subgraphBlock < minBlock) {\n // Calculate staleness\n const staleness = Number(currentBlock) - (subgraphBlock ?? 0);\n\n // If more than 100 blocks behind, use chain\n if (staleness > 100) {\n return \"chain\";\n }\n }\n\n // Default to subgraph\n return \"subgraph\";\n }\n\n // Default fallback\n return \"subgraph\";\n}\n"],"mappings":"AAMA,SAAS,oBAAoB;AAiB7B,eAAsB,sBACpB,cACA,iBACA,OACA,WACA,SACqB;AAErB,QAAM,oBAAoB,MAAM,aAAa,QAAQ;AAAA,IACnD,SAAS;AAAA,IACT,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,cAAc;AAAA,IAChB;AAAA,IACA,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,EACtB,CAAC;AAGD,QAAM,kBAAkB,MAAM,aAAa,QAAQ;AAAA,IACjD,SAAS;AAAA,IACT,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,cAAc;AAAA,IAChB;AAAA,IACA,WAAW,aAAa;AAAA,IACxB,SAAS,WAAW;AAAA,EACtB,CAAC;AAGD,QAAM,cAAc,kBAAkB,IAAI,CAAC,WAAW;AAAA,IACpD,IAAI,OAAO,MAAM,KAAK,MAAM;AAAA,IAC5B,KAAK,MAAM,KAAK;AAAA,IAChB,cAAc,MAAM,KAAK;AAAA,IACzB,UAAU,OAAO,MAAM,KAAK,QAAQ;AAAA,IACpC,cAAc,MAAM;AAAA,IACpB,kBAAkB,OAAO,CAAC;AAAA;AAAA,IAC1B,iBAAiB,MAAM;AAAA,EACzB,EAAE;AAEF,QAAM,cAAc,gBAAgB,IAAI,CAAC,WAAW;AAAA,IAClD,IAAI,OAAO,MAAM,KAAK,MAAM;AAAA,IAC5B,KAAK,MAAM,KAAK;AAAA,IAChB,cAAc,MAAM,KAAK;AAAA,IACzB,UAAU;AAAA;AAAA,IACV,cAAc,MAAM;AAAA,IACpB,kBAAkB,OAAO,CAAC;AAAA;AAAA,IAC1B,iBAAiB,MAAM;AAAA,EACzB,EAAE;AAGF,QAAM,WAAW,CAAC,GAAG,WAAW;AAChC,QAAM,YAAY,IAAI,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAEtD,aAAW,UAAU,aAAa;AAChC,QAAI,CAAC,UAAU,IAAI,OAAO,EAAE,GAAG;AAC7B,eAAS,KAAK,MAAM;AAAA,IACtB;AAAA,EACF;AAGA,WAAS,KAAK,CAAC,GAAG,MAAM;AACtB,QAAI,EAAE,eAAe,EAAE,aAAc,QAAO;AAC5C,QAAI,EAAE,eAAe,EAAE,aAAc,QAAO;AAC5C,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;AAWO,SAAS,oBACd,QACA,UACA,cACA,eACsB;AAEtB,MAAI,WAAW,cAAc,WAAW,SAAS;AAC/C,WAAO;AAAA,EACT;AAGA,MAAI,WAAW,UAAU,WAAW,QAAW;AAE7C,QAAI,CAAC,UAAU;AACb,aAAO;AAAA,IACT;AAGA,QAAI,CAAC,iBAAiB,gBAAgB,UAAU;AAE9C,YAAM,YAAY,OAAO,YAAY,KAAK,iBAAiB;AAG3D,UAAI,YAAY,KAAK;AACnB,eAAO;AAAA,MACT;AAAA,IACF;AAGA,WAAO;AAAA,EACT;AAGA,SAAO;AACT;","names":[]}
|
|
@@ -20,7 +20,6 @@ var crypto_utils_exports = {};
|
|
|
20
20
|
__export(crypto_utils_exports, {
|
|
21
21
|
assertUncompressedPublicKey: () => assertUncompressedPublicKey,
|
|
22
22
|
bytesEqual: () => bytesEqual,
|
|
23
|
-
concatBytes: () => concatBytes,
|
|
24
23
|
copyBytes: () => copyBytes,
|
|
25
24
|
generateSeed: () => generateSeed,
|
|
26
25
|
isValidPrivateKeyFormat: () => isValidPrivateKeyFormat,
|
|
@@ -31,16 +30,6 @@ __export(crypto_utils_exports, {
|
|
|
31
30
|
});
|
|
32
31
|
module.exports = __toCommonJS(crypto_utils_exports);
|
|
33
32
|
var import_viem = require("viem");
|
|
34
|
-
function concatBytes(...arrays) {
|
|
35
|
-
const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
|
|
36
|
-
const result = new Uint8Array(totalLength);
|
|
37
|
-
let offset = 0;
|
|
38
|
-
for (const arr of arrays) {
|
|
39
|
-
result.set(arr, offset);
|
|
40
|
-
offset += arr.length;
|
|
41
|
-
}
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
33
|
function processWalletPublicKey(publicKey) {
|
|
45
34
|
return typeof publicKey === "string" ? (0, import_viem.fromHex)(
|
|
46
35
|
publicKey.startsWith("0x") ? publicKey : `0x${publicKey}`,
|
|
@@ -108,7 +97,6 @@ function assertUncompressedPublicKey(publicKey) {
|
|
|
108
97
|
0 && (module.exports = {
|
|
109
98
|
assertUncompressedPublicKey,
|
|
110
99
|
bytesEqual,
|
|
111
|
-
concatBytes,
|
|
112
100
|
copyBytes,
|
|
113
101
|
generateSeed,
|
|
114
102
|
isValidPrivateKeyFormat,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/crypto-utils.ts"],"sourcesContent":["/**\n * Provides platform-agnostic cryptographic utility functions.\n *\n * @remarks\n * This module contains utility functions for cryptographic operations that work\n * consistently across Node.js and browser environments. All functions use `Uint8Array`\n * exclusively for binary data to ensure cross-platform compatibility.\n *\n * @category Cryptography\n */\n\nimport { fromHex } from \"viem\";\n\n/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/utils/crypto-utils.ts"],"sourcesContent":["/**\n * Provides platform-agnostic cryptographic utility functions.\n *\n * @remarks\n * This module contains utility functions for cryptographic operations that work\n * consistently across Node.js and browser environments. All functions use `Uint8Array`\n * exclusively for binary data to ensure cross-platform compatibility.\n *\n * @category Cryptography\n */\n\nimport { fromHex } from \"viem\";\n\n/**\n * Processes a wallet public key for cryptographic operations.\n *\n * @remarks\n * Converts hex string public keys to Uint8Array format.\n * For normalization to uncompressed format, use the crypto provider's\n * normalizeToUncompressed method.\n *\n * @param publicKey - The wallet public key as hex string or byte array.\n * @returns The public key as a Uint8Array.\n *\n * @example\n * ```typescript\n * const keyBytes = processWalletPublicKey(\"0x04...\");\n * const normalized = provider.normalizeToUncompressed(keyBytes);\n * ```\n */\nexport function processWalletPublicKey(\n publicKey: string | Uint8Array,\n): Uint8Array {\n // Convert to bytes if hex string\n return typeof publicKey === \"string\"\n ? fromHex(\n (publicKey.startsWith(\"0x\")\n ? publicKey\n : `0x${publicKey}`) as `0x${string}`,\n \"bytes\",\n )\n : publicKey;\n}\n\n/**\n * Processes a wallet private key for cryptographic operations.\n *\n * @param privateKey - The wallet private key as hex string or byte array.\n * @returns The private key as a Uint8Array.\n *\n * @example\n * ```typescript\n * const key = processWalletPrivateKey(\"0x...\");\n * console.log(key.length); // 32 (secp256k1 private key)\n * ```\n */\nexport function processWalletPrivateKey(\n privateKey: string | Uint8Array,\n): Uint8Array {\n // Convert to bytes\n return typeof privateKey === \"string\"\n ? fromHex(\n (privateKey.startsWith(\"0x\")\n ? privateKey\n : `0x${privateKey}`) as `0x${string}`,\n \"bytes\",\n )\n : privateKey;\n}\n\n/**\n * Parses legacy eccrypto-format encrypted data buffer.\n * Format: [iv(16)][ephemPublicKey(65)][ciphertext(variable)][mac(32)]\n *\n * @param encryptedBuffer - Buffer containing encrypted data in eccrypto format\n * @returns Parsed encrypted data components\n */\nexport function parseEncryptedDataBuffer(encryptedBuffer: Uint8Array): {\n iv: Uint8Array;\n ephemPublicKey: Uint8Array;\n ciphertext: Uint8Array;\n mac: Uint8Array;\n} {\n return {\n iv: encryptedBuffer.slice(0, 16),\n ephemPublicKey: encryptedBuffer.slice(16, 81), // 65 bytes for uncompressed public key\n ciphertext: encryptedBuffer.slice(81, -32),\n mac: encryptedBuffer.slice(-32),\n };\n}\n\n/**\n * Generates a deterministic seed from a message for key derivation\n *\n * @param message - Message to derive seed from\n * @returns Seed as Uint8Array\n */\nexport function generateSeed(message: string): Uint8Array {\n // Use encoding utils for consistent string-to-bytes conversion\n const encoder = new TextEncoder();\n return encoder.encode(message);\n}\n\n/**\n * Compares two Uint8Arrays for equality\n *\n * @param a - First array\n * @param b - Second array\n * @returns True if arrays are equal\n */\nexport function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\n/**\n * Creates a copy of a Uint8Array\n *\n * @param bytes - Array to copy\n * @returns New array with same contents\n */\nexport function copyBytes(bytes: Uint8Array): Uint8Array {\n return new Uint8Array(bytes);\n}\n\n/**\n * Validates a secp256k1 public key format\n *\n * @param publicKey - Public key to validate\n * @returns True if valid format (33, 65, or 64 bytes)\n */\nexport function isValidPublicKeyFormat(publicKey: Uint8Array): boolean {\n const len = publicKey.length;\n\n // Compressed (33 bytes)\n if (len === 33) {\n return publicKey[0] === 0x02 || publicKey[0] === 0x03;\n }\n\n // Uncompressed (65 bytes)\n if (len === 65) {\n return publicKey[0] === 0x04;\n }\n\n // Raw coordinates (64 bytes - no prefix)\n if (len === 64) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Validates a secp256k1 private key format\n *\n * @param privateKey - Private key to validate\n * @returns True if valid format (32 bytes)\n */\nexport function isValidPrivateKeyFormat(privateKey: Uint8Array): boolean {\n return privateKey.length === 32;\n}\n\n/**\n * Asserts that a public key is in uncompressed format (65 bytes with 0x04 prefix).\n * This validation function only checks format, it does not transform keys.\n * For key normalization (including decompression), use the crypto provider's\n * normalizeToUncompressed method.\n *\n * @param publicKey - Public key to validate\n * @throws {Error} When public key is not in uncompressed format\n */\nexport function assertUncompressedPublicKey(publicKey: Uint8Array): void {\n if (publicKey.length !== 65) {\n throw new Error(\n `Public key must be uncompressed (65 bytes), got ${publicKey.length} bytes. ` +\n `Use provider.normalizeToUncompressed() to convert compressed keys.`,\n );\n }\n\n if (publicKey[0] !== 0x04) {\n throw new Error(\n `Uncompressed public key must start with 0x04 prefix, got 0x${publicKey[0].toString(16).padStart(2, \"0\")}`,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,kBAAwB;AAmBjB,SAAS,uBACd,WACY;AAEZ,SAAO,OAAO,cAAc,eACxB;AAAA,IACG,UAAU,WAAW,IAAI,IACtB,YACA,KAAK,SAAS;AAAA,IAClB;AAAA,EACF,IACA;AACN;AAcO,SAAS,wBACd,YACY;AAEZ,SAAO,OAAO,eAAe,eACzB;AAAA,IACG,WAAW,WAAW,IAAI,IACvB,aACA,KAAK,UAAU;AAAA,IACnB;AAAA,EACF,IACA;AACN;AASO,SAAS,yBAAyB,iBAKvC;AACA,SAAO;AAAA,IACL,IAAI,gBAAgB,MAAM,GAAG,EAAE;AAAA,IAC/B,gBAAgB,gBAAgB,MAAM,IAAI,EAAE;AAAA;AAAA,IAC5C,YAAY,gBAAgB,MAAM,IAAI,GAAG;AAAA,IACzC,KAAK,gBAAgB,MAAM,GAAG;AAAA,EAChC;AACF;AAQO,SAAS,aAAa,SAA6B;AAExD,QAAM,UAAU,IAAI,YAAY;AAChC,SAAO,QAAQ,OAAO,OAAO;AAC/B;AASO,SAAS,WAAW,GAAe,GAAwB;AAChE,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,QAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAG,QAAO;AAAA,EAC5B;AACA,SAAO;AACT;AAQO,SAAS,UAAU,OAA+B;AACvD,SAAO,IAAI,WAAW,KAAK;AAC7B;AAQO,SAAS,uBAAuB,WAAgC;AACrE,QAAM,MAAM,UAAU;AAGtB,MAAI,QAAQ,IAAI;AACd,WAAO,UAAU,CAAC,MAAM,KAAQ,UAAU,CAAC,MAAM;AAAA,EACnD;AAGA,MAAI,QAAQ,IAAI;AACd,WAAO,UAAU,CAAC,MAAM;AAAA,EAC1B;AAGA,MAAI,QAAQ,IAAI;AACd,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,wBAAwB,YAAiC;AACvE,SAAO,WAAW,WAAW;AAC/B;AAWO,SAAS,4BAA4B,WAA6B;AACvE,MAAI,UAAU,WAAW,IAAI;AAC3B,UAAM,IAAI;AAAA,MACR,mDAAmD,UAAU,MAAM;AAAA,IAErE;AAAA,EACF;AAEA,MAAI,UAAU,CAAC,MAAM,GAAM;AACzB,UAAM,IAAI;AAAA,MACR,8DAA8D,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IAC1G;AAAA,EACF;AACF;","names":[]}
|
|
@@ -8,22 +8,6 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @category Cryptography
|
|
10
10
|
*/
|
|
11
|
-
/**
|
|
12
|
-
* Concatenates multiple Uint8Arrays into a single array.
|
|
13
|
-
*
|
|
14
|
-
* @param arrays - The byte arrays to concatenate in order.
|
|
15
|
-
* @returns A new Uint8Array containing all input arrays concatenated.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const combined = concatBytes(
|
|
20
|
-
* new Uint8Array([1, 2]),
|
|
21
|
-
* new Uint8Array([3, 4])
|
|
22
|
-
* );
|
|
23
|
-
* console.log(combined); // Uint8Array([1, 2, 3, 4])
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
|
|
27
11
|
/**
|
|
28
12
|
* Processes a wallet public key for cryptographic operations.
|
|
29
13
|
*
|
|
@@ -41,7 +25,7 @@ declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
|
|
|
41
25
|
* const normalized = provider.normalizeToUncompressed(keyBytes);
|
|
42
26
|
* ```
|
|
43
27
|
*/
|
|
44
|
-
declare function processWalletPublicKey(publicKey: string | Uint8Array): Uint8Array;
|
|
28
|
+
export declare function processWalletPublicKey(publicKey: string | Uint8Array): Uint8Array;
|
|
45
29
|
/**
|
|
46
30
|
* Processes a wallet private key for cryptographic operations.
|
|
47
31
|
*
|
|
@@ -54,7 +38,7 @@ declare function processWalletPublicKey(publicKey: string | Uint8Array): Uint8Ar
|
|
|
54
38
|
* console.log(key.length); // 32 (secp256k1 private key)
|
|
55
39
|
* ```
|
|
56
40
|
*/
|
|
57
|
-
declare function processWalletPrivateKey(privateKey: string | Uint8Array): Uint8Array;
|
|
41
|
+
export declare function processWalletPrivateKey(privateKey: string | Uint8Array): Uint8Array;
|
|
58
42
|
/**
|
|
59
43
|
* Parses legacy eccrypto-format encrypted data buffer.
|
|
60
44
|
* Format: [iv(16)][ephemPublicKey(65)][ciphertext(variable)][mac(32)]
|
|
@@ -62,7 +46,7 @@ declare function processWalletPrivateKey(privateKey: string | Uint8Array): Uint8
|
|
|
62
46
|
* @param encryptedBuffer - Buffer containing encrypted data in eccrypto format
|
|
63
47
|
* @returns Parsed encrypted data components
|
|
64
48
|
*/
|
|
65
|
-
declare function parseEncryptedDataBuffer(encryptedBuffer: Uint8Array): {
|
|
49
|
+
export declare function parseEncryptedDataBuffer(encryptedBuffer: Uint8Array): {
|
|
66
50
|
iv: Uint8Array;
|
|
67
51
|
ephemPublicKey: Uint8Array;
|
|
68
52
|
ciphertext: Uint8Array;
|
|
@@ -74,7 +58,7 @@ declare function parseEncryptedDataBuffer(encryptedBuffer: Uint8Array): {
|
|
|
74
58
|
* @param message - Message to derive seed from
|
|
75
59
|
* @returns Seed as Uint8Array
|
|
76
60
|
*/
|
|
77
|
-
declare function generateSeed(message: string): Uint8Array;
|
|
61
|
+
export declare function generateSeed(message: string): Uint8Array;
|
|
78
62
|
/**
|
|
79
63
|
* Compares two Uint8Arrays for equality
|
|
80
64
|
*
|
|
@@ -82,28 +66,28 @@ declare function generateSeed(message: string): Uint8Array;
|
|
|
82
66
|
* @param b - Second array
|
|
83
67
|
* @returns True if arrays are equal
|
|
84
68
|
*/
|
|
85
|
-
declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
69
|
+
export declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
86
70
|
/**
|
|
87
71
|
* Creates a copy of a Uint8Array
|
|
88
72
|
*
|
|
89
73
|
* @param bytes - Array to copy
|
|
90
74
|
* @returns New array with same contents
|
|
91
75
|
*/
|
|
92
|
-
declare function copyBytes(bytes: Uint8Array): Uint8Array;
|
|
76
|
+
export declare function copyBytes(bytes: Uint8Array): Uint8Array;
|
|
93
77
|
/**
|
|
94
78
|
* Validates a secp256k1 public key format
|
|
95
79
|
*
|
|
96
80
|
* @param publicKey - Public key to validate
|
|
97
81
|
* @returns True if valid format (33, 65, or 64 bytes)
|
|
98
82
|
*/
|
|
99
|
-
declare function isValidPublicKeyFormat(publicKey: Uint8Array): boolean;
|
|
83
|
+
export declare function isValidPublicKeyFormat(publicKey: Uint8Array): boolean;
|
|
100
84
|
/**
|
|
101
85
|
* Validates a secp256k1 private key format
|
|
102
86
|
*
|
|
103
87
|
* @param privateKey - Private key to validate
|
|
104
88
|
* @returns True if valid format (32 bytes)
|
|
105
89
|
*/
|
|
106
|
-
declare function isValidPrivateKeyFormat(privateKey: Uint8Array): boolean;
|
|
90
|
+
export declare function isValidPrivateKeyFormat(privateKey: Uint8Array): boolean;
|
|
107
91
|
/**
|
|
108
92
|
* Asserts that a public key is in uncompressed format (65 bytes with 0x04 prefix).
|
|
109
93
|
* This validation function only checks format, it does not transform keys.
|
|
@@ -113,6 +97,4 @@ declare function isValidPrivateKeyFormat(privateKey: Uint8Array): boolean;
|
|
|
113
97
|
* @param publicKey - Public key to validate
|
|
114
98
|
* @throws {Error} When public key is not in uncompressed format
|
|
115
99
|
*/
|
|
116
|
-
declare function assertUncompressedPublicKey(publicKey: Uint8Array): void;
|
|
117
|
-
|
|
118
|
-
export { assertUncompressedPublicKey, bytesEqual, concatBytes, copyBytes, generateSeed, isValidPrivateKeyFormat, isValidPublicKeyFormat, parseEncryptedDataBuffer, processWalletPrivateKey, processWalletPublicKey };
|
|
100
|
+
export declare function assertUncompressedPublicKey(publicKey: Uint8Array): void;
|
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import { fromHex } from "viem";
|
|
2
|
-
function concatBytes(...arrays) {
|
|
3
|
-
const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
|
|
4
|
-
const result = new Uint8Array(totalLength);
|
|
5
|
-
let offset = 0;
|
|
6
|
-
for (const arr of arrays) {
|
|
7
|
-
result.set(arr, offset);
|
|
8
|
-
offset += arr.length;
|
|
9
|
-
}
|
|
10
|
-
return result;
|
|
11
|
-
}
|
|
12
2
|
function processWalletPublicKey(publicKey) {
|
|
13
3
|
return typeof publicKey === "string" ? fromHex(
|
|
14
4
|
publicKey.startsWith("0x") ? publicKey : `0x${publicKey}`,
|
|
@@ -75,7 +65,6 @@ function assertUncompressedPublicKey(publicKey) {
|
|
|
75
65
|
export {
|
|
76
66
|
assertUncompressedPublicKey,
|
|
77
67
|
bytesEqual,
|
|
78
|
-
concatBytes,
|
|
79
68
|
copyBytes,
|
|
80
69
|
generateSeed,
|
|
81
70
|
isValidPrivateKeyFormat,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/crypto-utils.ts"],"sourcesContent":["/**\n * Provides platform-agnostic cryptographic utility functions.\n *\n * @remarks\n * This module contains utility functions for cryptographic operations that work\n * consistently across Node.js and browser environments. All functions use `Uint8Array`\n * exclusively for binary data to ensure cross-platform compatibility.\n *\n * @category Cryptography\n */\n\nimport { fromHex } from \"viem\";\n\n/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/utils/crypto-utils.ts"],"sourcesContent":["/**\n * Provides platform-agnostic cryptographic utility functions.\n *\n * @remarks\n * This module contains utility functions for cryptographic operations that work\n * consistently across Node.js and browser environments. All functions use `Uint8Array`\n * exclusively for binary data to ensure cross-platform compatibility.\n *\n * @category Cryptography\n */\n\nimport { fromHex } from \"viem\";\n\n/**\n * Processes a wallet public key for cryptographic operations.\n *\n * @remarks\n * Converts hex string public keys to Uint8Array format.\n * For normalization to uncompressed format, use the crypto provider's\n * normalizeToUncompressed method.\n *\n * @param publicKey - The wallet public key as hex string or byte array.\n * @returns The public key as a Uint8Array.\n *\n * @example\n * ```typescript\n * const keyBytes = processWalletPublicKey(\"0x04...\");\n * const normalized = provider.normalizeToUncompressed(keyBytes);\n * ```\n */\nexport function processWalletPublicKey(\n publicKey: string | Uint8Array,\n): Uint8Array {\n // Convert to bytes if hex string\n return typeof publicKey === \"string\"\n ? fromHex(\n (publicKey.startsWith(\"0x\")\n ? publicKey\n : `0x${publicKey}`) as `0x${string}`,\n \"bytes\",\n )\n : publicKey;\n}\n\n/**\n * Processes a wallet private key for cryptographic operations.\n *\n * @param privateKey - The wallet private key as hex string or byte array.\n * @returns The private key as a Uint8Array.\n *\n * @example\n * ```typescript\n * const key = processWalletPrivateKey(\"0x...\");\n * console.log(key.length); // 32 (secp256k1 private key)\n * ```\n */\nexport function processWalletPrivateKey(\n privateKey: string | Uint8Array,\n): Uint8Array {\n // Convert to bytes\n return typeof privateKey === \"string\"\n ? fromHex(\n (privateKey.startsWith(\"0x\")\n ? privateKey\n : `0x${privateKey}`) as `0x${string}`,\n \"bytes\",\n )\n : privateKey;\n}\n\n/**\n * Parses legacy eccrypto-format encrypted data buffer.\n * Format: [iv(16)][ephemPublicKey(65)][ciphertext(variable)][mac(32)]\n *\n * @param encryptedBuffer - Buffer containing encrypted data in eccrypto format\n * @returns Parsed encrypted data components\n */\nexport function parseEncryptedDataBuffer(encryptedBuffer: Uint8Array): {\n iv: Uint8Array;\n ephemPublicKey: Uint8Array;\n ciphertext: Uint8Array;\n mac: Uint8Array;\n} {\n return {\n iv: encryptedBuffer.slice(0, 16),\n ephemPublicKey: encryptedBuffer.slice(16, 81), // 65 bytes for uncompressed public key\n ciphertext: encryptedBuffer.slice(81, -32),\n mac: encryptedBuffer.slice(-32),\n };\n}\n\n/**\n * Generates a deterministic seed from a message for key derivation\n *\n * @param message - Message to derive seed from\n * @returns Seed as Uint8Array\n */\nexport function generateSeed(message: string): Uint8Array {\n // Use encoding utils for consistent string-to-bytes conversion\n const encoder = new TextEncoder();\n return encoder.encode(message);\n}\n\n/**\n * Compares two Uint8Arrays for equality\n *\n * @param a - First array\n * @param b - Second array\n * @returns True if arrays are equal\n */\nexport function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\n/**\n * Creates a copy of a Uint8Array\n *\n * @param bytes - Array to copy\n * @returns New array with same contents\n */\nexport function copyBytes(bytes: Uint8Array): Uint8Array {\n return new Uint8Array(bytes);\n}\n\n/**\n * Validates a secp256k1 public key format\n *\n * @param publicKey - Public key to validate\n * @returns True if valid format (33, 65, or 64 bytes)\n */\nexport function isValidPublicKeyFormat(publicKey: Uint8Array): boolean {\n const len = publicKey.length;\n\n // Compressed (33 bytes)\n if (len === 33) {\n return publicKey[0] === 0x02 || publicKey[0] === 0x03;\n }\n\n // Uncompressed (65 bytes)\n if (len === 65) {\n return publicKey[0] === 0x04;\n }\n\n // Raw coordinates (64 bytes - no prefix)\n if (len === 64) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Validates a secp256k1 private key format\n *\n * @param privateKey - Private key to validate\n * @returns True if valid format (32 bytes)\n */\nexport function isValidPrivateKeyFormat(privateKey: Uint8Array): boolean {\n return privateKey.length === 32;\n}\n\n/**\n * Asserts that a public key is in uncompressed format (65 bytes with 0x04 prefix).\n * This validation function only checks format, it does not transform keys.\n * For key normalization (including decompression), use the crypto provider's\n * normalizeToUncompressed method.\n *\n * @param publicKey - Public key to validate\n * @throws {Error} When public key is not in uncompressed format\n */\nexport function assertUncompressedPublicKey(publicKey: Uint8Array): void {\n if (publicKey.length !== 65) {\n throw new Error(\n `Public key must be uncompressed (65 bytes), got ${publicKey.length} bytes. ` +\n `Use provider.normalizeToUncompressed() to convert compressed keys.`,\n );\n }\n\n if (publicKey[0] !== 0x04) {\n throw new Error(\n `Uncompressed public key must start with 0x04 prefix, got 0x${publicKey[0].toString(16).padStart(2, \"0\")}`,\n );\n }\n}\n"],"mappings":"AAWA,SAAS,eAAe;AAmBjB,SAAS,uBACd,WACY;AAEZ,SAAO,OAAO,cAAc,WACxB;AAAA,IACG,UAAU,WAAW,IAAI,IACtB,YACA,KAAK,SAAS;AAAA,IAClB;AAAA,EACF,IACA;AACN;AAcO,SAAS,wBACd,YACY;AAEZ,SAAO,OAAO,eAAe,WACzB;AAAA,IACG,WAAW,WAAW,IAAI,IACvB,aACA,KAAK,UAAU;AAAA,IACnB;AAAA,EACF,IACA;AACN;AASO,SAAS,yBAAyB,iBAKvC;AACA,SAAO;AAAA,IACL,IAAI,gBAAgB,MAAM,GAAG,EAAE;AAAA,IAC/B,gBAAgB,gBAAgB,MAAM,IAAI,EAAE;AAAA;AAAA,IAC5C,YAAY,gBAAgB,MAAM,IAAI,GAAG;AAAA,IACzC,KAAK,gBAAgB,MAAM,GAAG;AAAA,EAChC;AACF;AAQO,SAAS,aAAa,SAA6B;AAExD,QAAM,UAAU,IAAI,YAAY;AAChC,SAAO,QAAQ,OAAO,OAAO;AAC/B;AASO,SAAS,WAAW,GAAe,GAAwB;AAChE,MAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,QAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAG,QAAO;AAAA,EAC5B;AACA,SAAO;AACT;AAQO,SAAS,UAAU,OAA+B;AACvD,SAAO,IAAI,WAAW,KAAK;AAC7B;AAQO,SAAS,uBAAuB,WAAgC;AACrE,QAAM,MAAM,UAAU;AAGtB,MAAI,QAAQ,IAAI;AACd,WAAO,UAAU,CAAC,MAAM,KAAQ,UAAU,CAAC,MAAM;AAAA,EACnD;AAGA,MAAI,QAAQ,IAAI;AACd,WAAO,UAAU,CAAC,MAAM;AAAA,EAC1B;AAGA,MAAI,QAAQ,IAAI;AACd,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,wBAAwB,YAAiC;AACvE,SAAO,WAAW,WAAW;AAC/B;AAWO,SAAS,4BAA4B,WAA6B;AACvE,MAAI,UAAU,WAAW,IAAI;AAC3B,UAAM,IAAI;AAAA,MACR,mDAAmD,UAAU,MAAM;AAAA,IAErE;AAAA,EACF;AAEA,MAAI,UAAU,CAAC,MAAM,GAAM;AACzB,UAAM,IAAI;AAAA,MACR,8DAA8D,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IAC1G;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|