@opendatalabs/vana-sdk 0.1.0-alpha.7ee7635 → 0.1.0-alpha.80df35f
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.d.ts +4 -2
- 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.d.ts +5 -2
- package/dist/chains.browser.d.ts +8 -2
- package/dist/chains.d.ts +8 -2
- package/dist/chains.node.d.ts +8 -2
- package/dist/config/addresses.d.ts +8 -45
- package/dist/config/chains.d.ts +9 -13
- 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 +11 -49
- 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__/schemas-edge-cases.test.d.ts +1 -0
- package/dist/controllers/base.cjs +83 -0
- package/dist/controllers/base.cjs.map +1 -0
- package/dist/controllers/base.d.ts +84 -0
- package/dist/controllers/base.js +59 -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 +338 -107
- package/dist/controllers/data.cjs.map +1 -1
- package/dist/controllers/data.d.ts +145 -46
- package/dist/controllers/data.js +338 -107
- package/dist/controllers/data.js.map +1 -1
- package/dist/controllers/permissions.cjs +162 -223
- package/dist/controllers/permissions.cjs.map +1 -1
- package/dist/controllers/permissions.d.ts +24 -78
- package/dist/controllers/permissions.js +162 -223
- 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 +7 -56
- package/dist/controllers/protocol.js +15 -14
- package/dist/controllers/protocol.js.map +1 -1
- package/dist/controllers/schemas.cjs +29 -36
- package/dist/controllers/schemas.cjs.map +1 -1
- package/dist/controllers/schemas.d.ts +8 -23
- package/dist/controllers/schemas.js +29 -36
- package/dist/controllers/schemas.js.map +1 -1
- package/dist/controllers/server-additional.test.d.ts +1 -0
- package/dist/controllers/server.cjs +15 -10
- package/dist/controllers/server.cjs.map +1 -1
- package/dist/controllers/server.d.ts +7 -20
- package/dist/controllers/server.js +15 -10
- package/dist/controllers/server.js.map +1 -1
- package/dist/core/apiClient.cjs +15 -12
- package/dist/core/apiClient.cjs.map +1 -1
- package/dist/core/apiClient.d.ts +5 -9
- package/dist/core/apiClient.js +19 -19
- 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 +11 -9
- package/dist/core/generics.cjs.map +1 -1
- package/dist/core/generics.d.ts +9 -13
- package/dist/core/generics.js +22 -29
- package/dist/core/generics.js.map +1 -1
- package/dist/core/tests/apiClient.test.d.ts +1 -0
- package/dist/core/tests/client.test.d.ts +1 -0
- package/dist/core/tests/generics.test.d.ts +1 -0
- package/dist/core.cjs +82 -34
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +21 -73
- package/dist/core.js +105 -60
- package/dist/core.js.map +1 -1
- package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
- package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
- package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
- package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
- package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
- package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
- package/dist/crypto/ecies/base.cjs +4 -3
- package/dist/crypto/ecies/base.cjs.map +1 -1
- package/dist/crypto/ecies/base.d.ts +2 -5
- package/dist/crypto/ecies/base.js +12 -15
- package/dist/crypto/ecies/base.js.map +1 -1
- package/dist/crypto/ecies/browser.cjs +2 -1
- package/dist/crypto/ecies/browser.cjs.map +1 -1
- package/dist/crypto/ecies/browser.d.ts +2 -7
- package/dist/crypto/ecies/browser.js +2 -1
- package/dist/crypto/ecies/browser.js.map +1 -1
- package/dist/crypto/ecies/constants.d.ts +7 -9
- package/dist/crypto/ecies/index.d.ts +8 -1
- package/dist/crypto/ecies/interface.cjs +4 -5
- package/dist/crypto/ecies/interface.cjs.map +1 -1
- package/dist/crypto/ecies/interface.d.ts +9 -11
- package/dist/crypto/ecies/interface.js +4 -5
- package/dist/crypto/ecies/interface.js.map +1 -1
- package/dist/crypto/ecies/node.cjs +3 -2
- package/dist/crypto/ecies/node.cjs.map +1 -1
- package/dist/crypto/ecies/node.d.ts +2 -7
- package/dist/crypto/ecies/node.js +11 -16
- package/dist/crypto/ecies/node.js.map +1 -1
- package/dist/crypto/ecies/utils.cjs +2 -41
- package/dist/crypto/ecies/utils.cjs.map +1 -1
- package/dist/crypto/ecies/utils.d.ts +3 -40
- package/dist/crypto/ecies/utils.js +1 -35
- package/dist/crypto/ecies/utils.js.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
- package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
- package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
- package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
- package/dist/diagnostics.d.ts +1 -3
- package/dist/diagnostics.test.d.ts +1 -0
- package/dist/errors.cjs +16 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +53 -15
- package/dist/errors.js +18 -6
- package/dist/errors.js.map +1 -1
- package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -1
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -1
- package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
- package/dist/generated/abi/DATImplementation.d.ts +2 -3
- package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
- package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
- package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -1
- package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -1
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/index.d.ts +37 -39
- package/dist/generated/event-types.d.ts +9 -10
- package/dist/generated/eventRegistry.d.ts +3 -7
- package/dist/generated/server/server-exports.d.ts +19 -21
- package/dist/generated/server/server.cjs.map +1 -1
- package/dist/generated/server/server.d.ts +113 -87
- package/dist/generated/subgraph.d.ts +329 -332
- package/dist/index.browser.d.ts +47 -96
- package/dist/index.browser.js +12 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +9 -0
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +181 -87
- package/dist/index.node.js +10 -0
- package/dist/index.node.js.map +1 -1
- package/dist/node.d.ts +4 -2
- 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 +7 -6
- package/dist/platform/browser.cjs.map +1 -1
- package/dist/platform/browser.d.ts +3 -6
- package/dist/platform/browser.js +19 -27
- 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.d.ts +6 -8
- package/dist/platform/node.d.ts +3 -7
- package/dist/platform/node.js +12 -19
- package/dist/platform/node.js.map +1 -1
- package/dist/platform/ports/openpgp-port.cjs +74 -0
- package/dist/platform/ports/openpgp-port.cjs.map +1 -0
- package/dist/platform/ports/openpgp-port.d.ts +13 -0
- package/dist/platform/ports/openpgp-port.js +59 -0
- package/dist/platform/ports/openpgp-port.js.map +1 -0
- package/dist/platform/ports/pgp-port.cjs +17 -0
- package/dist/platform/ports/pgp-port.cjs.map +1 -0
- package/dist/platform/ports/pgp-port.d.ts +35 -0
- package/dist/platform/ports/pgp-port.js +1 -0
- package/dist/platform/ports/pgp-port.js.map +1 -0
- package/dist/platform/shared/error-utils.d.ts +2 -4
- package/dist/platform/shared/pgp-utils.cjs +2 -2
- package/dist/platform/shared/pgp-utils.cjs.map +1 -1
- package/dist/platform/shared/pgp-utils.d.ts +3 -5
- package/dist/platform/shared/pgp-utils.js +2 -2
- package/dist/platform/shared/pgp-utils.js.map +1 -1
- package/dist/platform/shared/stream-utils.d.ts +1 -3
- package/dist/platform/utils.d.ts +6 -10
- package/dist/platform/utils.test.d.ts +1 -0
- package/dist/platform.browser.d.ts +9 -4
- package/dist/platform.d.ts +11 -5
- package/dist/platform.node.d.ts +10 -5
- package/dist/server/handler.cjs.map +1 -1
- package/dist/server/handler.d.ts +8 -227
- package/dist/server/handler.js.map +1 -1
- package/dist/storage/index.d.ts +56 -10
- package/dist/storage/manager.cjs +2 -2
- package/dist/storage/manager.cjs.map +1 -1
- package/dist/storage/manager.d.ts +2 -5
- package/dist/storage/manager.js +5 -12
- package/dist/storage/manager.js.map +1 -1
- package/dist/storage/providers/callback-storage.cjs +3 -3
- package/dist/storage/providers/callback-storage.cjs.map +1 -1
- package/dist/storage/providers/callback-storage.d.ts +3 -9
- package/dist/storage/providers/callback-storage.js +3 -3
- 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 +5 -8
- 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-schema-validation.test.d.ts +1 -0
- package/dist/tests/permissions-server-files.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/schemas.test.d.ts +1 -0
- package/dist/tests/server-handler.test.d.ts +1 -0
- package/dist/tests/setup.d.ts +7 -0
- package/dist/tests/signatureFormatter.test.d.ts +1 -0
- package/dist/tests/trusted-server-queries.test.d.ts +1 -0
- package/dist/tests/typedDataConverter.test.d.ts +1 -0
- package/dist/tests/types-contracts.test.d.ts +1 -0
- package/dist/tests/types-data.test.d.ts +1 -0
- package/dist/tests/types-external-apis.test.d.ts +1 -0
- package/dist/tests/types-generics.test.d.ts +1 -0
- package/dist/tests/types-permissions.test.d.ts +1 -0
- package/dist/tests/types-upload-params.test.d.ts +1 -0
- package/dist/tests/types.test.d.ts +1 -0
- package/dist/tests/utils-formatters.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles.test.d.ts +1 -0
- package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
- package/dist/tests/utils-grants.test.d.ts +1 -0
- package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
- package/dist/tests/utils-ipfs.test.d.ts +4 -0
- package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
- package/dist/tests/vana.test.d.ts +1 -0
- package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
- package/dist/types/blockchain.cjs.map +1 -1
- package/dist/types/blockchain.d.ts +13 -8
- package/dist/types/chains-additional.test.d.ts +1 -0
- package/dist/types/chains.d.ts +6 -9
- package/dist/types/config.cjs +10 -0
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.ts +161 -54
- 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 +8 -11
- package/dist/types/controller-context.cjs.map +1 -1
- package/dist/types/controller-context.d.ts +13 -20
- package/dist/types/data.cjs.map +1 -1
- package/dist/types/data.d.ts +107 -39
- package/dist/types/external-apis.d.ts +10 -12
- package/dist/types/generics.d.ts +35 -38
- package/dist/types/index.cjs +5 -4
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +20 -22
- package/dist/types/index.js +9 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/operations.cjs +2 -2
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.ts +13 -17
- package/dist/types/operations.js +2 -2
- package/dist/types/operations.js.map +1 -1
- package/dist/types/permissions.d.ts +55 -58
- package/dist/types/personal.cjs.map +1 -1
- package/dist/types/personal.d.ts +6 -8
- package/dist/types/relayer.d.ts +15 -18
- package/dist/types/storage.d.ts +6 -8
- package/dist/types/storage.js +2 -5
- package/dist/types/storage.js.map +1 -1
- package/dist/types/transactionResults.d.ts +16 -18
- package/dist/types/utils.d.ts +21 -24
- package/dist/types.d.ts +4 -28
- package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
- package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
- package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
- package/dist/utils/__tests__/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/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 +6 -10
- 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 +14 -17
- 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 +10 -13
- package/dist/utils/grants.js +1 -1
- package/dist/utils/grants.js.map +1 -1
- package/dist/utils/ipfs.d.ts +8 -10
- package/dist/utils/lazy-import.cjs +4 -6
- package/dist/utils/lazy-import.cjs.map +1 -1
- package/dist/utils/lazy-import.d.ts +1 -3
- package/dist/utils/lazy-import.js +4 -6
- package/dist/utils/lazy-import.js.map +1 -1
- package/dist/utils/multicall.cjs +4 -2
- package/dist/utils/multicall.cjs.map +1 -1
- package/dist/utils/multicall.d.ts +5 -8
- package/dist/utils/multicall.js +4 -2
- package/dist/utils/multicall.js.map +1 -1
- package/dist/utils/parseTransactionPojo.cjs.map +1 -1
- package/dist/utils/parseTransactionPojo.d.ts +4 -10
- package/dist/utils/parseTransactionPojo.js.map +1 -1
- package/dist/utils/schemaValidation.cjs +5 -5
- package/dist/utils/schemaValidation.cjs.map +1 -1
- package/dist/utils/schemaValidation.d.ts +8 -12
- package/dist/utils/schemaValidation.js +7 -10
- package/dist/utils/schemaValidation.js.map +1 -1
- package/dist/utils/signatureCache.cjs +1 -2
- package/dist/utils/signatureCache.cjs.map +1 -1
- package/dist/utils/signatureCache.d.ts +4 -7
- package/dist/utils/signatureCache.js +4 -8
- 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/tests/multicall.test.d.ts +1 -0
- package/dist/utils/transactionHelpers.cjs.map +1 -1
- package/dist/utils/transactionHelpers.d.ts +5 -11
- package/dist/utils/transactionHelpers.js.map +1 -1
- package/dist/utils/typeGuards.cjs +109 -0
- package/dist/utils/typeGuards.cjs.map +1 -0
- package/dist/utils/typeGuards.d.ts +138 -0
- package/dist/utils/typeGuards.js +74 -0
- package/dist/utils/typeGuards.js.map +1 -0
- package/dist/utils/typedDataConverter.d.ts +3 -6
- package/dist/utils/urlResolver.cjs +1 -1
- package/dist/utils/urlResolver.cjs.map +1 -1
- package/dist/utils/urlResolver.d.ts +2 -4
- package/dist/utils/urlResolver.js +2 -2
- package/dist/utils/urlResolver.js.map +1 -1
- package/dist/utils/wallet.cjs +62 -0
- package/dist/utils/wallet.cjs.map +1 -0
- package/dist/utils/wallet.d.ts +32 -0
- package/dist/utils/wallet.js +36 -0
- package/dist/utils/wallet.js.map +1 -0
- package/dist/utils/withEvents.cjs.map +1 -1
- package/dist/utils/withEvents.d.ts +5 -12
- package/dist/utils/withEvents.js.map +1 -1
- package/package.json +22 -16
- package/dist/browser.d.cts +0 -2
- package/dist/chains/definitions.d.cts +0 -53
- package/dist/chains/index.d.cts +0 -2
- package/dist/chains.browser.cjs +0 -37
- package/dist/chains.browser.cjs.map +0 -1
- package/dist/chains.browser.d.cts +0 -2
- package/dist/chains.d.cts +0 -2
- package/dist/chains.node.d.cts +0 -2
- package/dist/config/addresses.d.cts +0 -401
- package/dist/config/chains.d.cts +0 -85
- package/dist/config/features.d.cts +0 -64
- package/dist/contracts/contractController.d.cts +0 -117
- package/dist/controllers/data.d.cts +0 -915
- package/dist/controllers/permissions.d.cts +0 -1383
- package/dist/controllers/protocol.d.cts +0 -188
- package/dist/controllers/schemas.d.cts +0 -260
- package/dist/controllers/server.d.cts +0 -230
- package/dist/core/apiClient.d.cts +0 -165
- package/dist/core/client.d.cts +0 -92
- package/dist/core/generics.d.cts +0 -120
- package/dist/core.d.cts +0 -493
- package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
- package/dist/crypto/ecies/base.d.cts +0 -143
- package/dist/crypto/ecies/browser.d.cts +0 -48
- package/dist/crypto/ecies/constants.d.cts +0 -122
- package/dist/crypto/ecies/index.d.cts +0 -1
- package/dist/crypto/ecies/interface.d.cts +0 -176
- package/dist/crypto/ecies/node.d.cts +0 -50
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.cts +0 -76
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.ts +0 -76
- package/dist/crypto/ecies/utils.d.cts +0 -67
- package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
- package/dist/diagnostics.d.cts +0 -26
- package/dist/errors.d.cts +0 -350
- package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
- package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
- package/dist/generated/abi/DATImplementation.d.cts +0 -693
- package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
- package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
- package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
- package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
- package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
- package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
- package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
- package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1014
- package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
- package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
- package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
- package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
- package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
- package/dist/generated/abi/index.d.cts +0 -26547
- package/dist/generated/event-types.d.cts +0 -855
- package/dist/generated/eventRegistry.d.cts +0 -18
- package/dist/generated/server/server-exports.d.cts +0 -21
- package/dist/generated/server/server.d.cts +0 -512
- package/dist/generated/subgraph.d.cts +0 -5981
- package/dist/index.browser.cjs +0 -151
- package/dist/index.browser.cjs.map +0 -1
- package/dist/index.browser.d.cts +0 -201
- package/dist/index.d.cts +0 -2
- package/dist/index.node.d.cts +0 -87
- package/dist/node.d.cts +0 -2
- package/dist/platform/browser-only.d.cts +0 -25
- package/dist/platform/browser-safe.d.cts +0 -32
- package/dist/platform/browser.d.cts +0 -74
- package/dist/platform/index.d.cts +0 -5
- package/dist/platform/interface.d.cts +0 -218
- package/dist/platform/node.d.cts +0 -27
- package/dist/platform/shared/error-utils.d.cts +0 -25
- package/dist/platform/shared/pgp-utils.d.cts +0 -61
- package/dist/platform/shared/stream-utils.d.cts +0 -16
- package/dist/platform/utils.d.cts +0 -53
- package/dist/platform.browser.cjs +0 -41
- package/dist/platform.browser.cjs.map +0 -1
- package/dist/platform.browser.d.cts +0 -4
- package/dist/platform.d.cts +0 -5
- package/dist/platform.node.d.cts +0 -5
- package/dist/schemas/dataSchema.schema.d.cts +0 -88
- package/dist/schemas/dataSchema.schema.d.ts +0 -88
- package/dist/schemas/grantFile.schema.d.cts +0 -57
- package/dist/schemas/grantFile.schema.d.ts +0 -57
- package/dist/server/handler.d.cts +0 -306
- package/dist/storage/index.d.cts +0 -10
- package/dist/storage/manager.d.cts +0 -150
- package/dist/storage/providers/callback-storage.d.cts +0 -100
- package/dist/storage/providers/google-drive.d.cts +0 -156
- package/dist/storage/providers/ipfs.d.cts +0 -163
- package/dist/storage/providers/pinata.d.cts +0 -173
- package/dist/types/blockchain.d.cts +0 -52
- package/dist/types/chains.d.cts +0 -34
- package/dist/types/config.d.cts +0 -726
- package/dist/types/contracts.d.cts +0 -68
- package/dist/types/controller-context.d.cts +0 -71
- package/dist/types/data.d.cts +0 -694
- package/dist/types/eccrypto-js.d.d.cts +0 -13
- package/dist/types/eccrypto-js.d.d.ts +0 -13
- package/dist/types/external-apis.d.cts +0 -186
- package/dist/types/generics.d.cts +0 -450
- package/dist/types/index.d.cts +0 -22
- package/dist/types/operations.d.cts +0 -116
- package/dist/types/permissions.d.cts +0 -957
- package/dist/types/personal.d.cts +0 -40
- package/dist/types/relayer.d.cts +0 -284
- package/dist/types/storage.d.cts +0 -131
- package/dist/types/transactionResults.d.cts +0 -195
- package/dist/types/utils.d.cts +0 -819
- package/dist/types.d.cts +0 -54
- package/dist/utils/blockchain/registry.d.cts +0 -34
- package/dist/utils/crypto-utils.d.cts +0 -118
- package/dist/utils/download.d.cts +0 -41
- package/dist/utils/encoding.d.cts +0 -54
- package/dist/utils/encryption.d.cts +0 -275
- package/dist/utils/formatters.d.cts +0 -120
- package/dist/utils/grantFiles.d.cts +0 -186
- package/dist/utils/grantValidation.d.cts +0 -150
- package/dist/utils/grants.d.cts +0 -70
- package/dist/utils/ipfs.d.cts +0 -90
- package/dist/utils/lazy-import.d.cts +0 -20
- package/dist/utils/multicall.d.cts +0 -129
- package/dist/utils/parseTransactionPojo.d.cts +0 -37
- package/dist/utils/schemaValidation.d.cts +0 -172
- package/dist/utils/signatureCache.d.cts +0 -134
- package/dist/utils/signatureFormatter.d.cts +0 -39
- package/dist/utils/transactionHelpers.d.cts +0 -86
- package/dist/utils/typedDataConverter.d.cts +0 -13
- package/dist/utils/urlResolver.d.cts +0 -40
- package/dist/utils/withEvents.d.cts +0 -63
|
@@ -1,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 {};
|
|
@@ -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 {};
|
package/dist/utils/download.cjs
CHANGED
|
@@ -18,11 +18,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var download_exports = {};
|
|
20
20
|
__export(download_exports, {
|
|
21
|
-
|
|
21
|
+
universalFetch: () => universalFetch
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(download_exports);
|
|
24
24
|
var import_ipfs = require("./ipfs");
|
|
25
|
-
async function
|
|
25
|
+
async function universalFetch(url, downloadRelayer) {
|
|
26
26
|
let processedUrl = url;
|
|
27
27
|
if (url.startsWith("ar://")) {
|
|
28
28
|
const txId = url.replace("ar://", "");
|
|
@@ -64,6 +64,6 @@ async function fetchWithRelayer(url, downloadRelayer) {
|
|
|
64
64
|
}
|
|
65
65
|
// Annotate the CommonJS export names for ESM import in node:
|
|
66
66
|
0 && (module.exports = {
|
|
67
|
-
|
|
67
|
+
universalFetch
|
|
68
68
|
});
|
|
69
69
|
//# sourceMappingURL=download.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/download.ts"],"sourcesContent":["/**\n * Universal download utility with CORS bypass and IPFS gateway fallbacks\n *\n * @category Utilities\n */\n\nimport { fetchWithFallbacks, extractIpfsHash } from \"./ipfs\";\n\n/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/utils/download.ts"],"sourcesContent":["/**\n * Universal download utility with CORS bypass and IPFS gateway fallbacks\n *\n * @category Utilities\n */\n\nimport { fetchWithFallbacks, extractIpfsHash } from \"./ipfs\";\n\n/**\n * Universal fetch with protocol support and automatic fallbacks\n *\n * @remarks\n * This utility provides a robust download mechanism that handles:\n * 1. IPFS URLs with automatic gateway fallbacks (5 different gateways)\n * 2. Arweave URLs with ar:// protocol conversion\n * 3. Regular HTTP/HTTPS URLs with optional CORS bypass via relayer\n * 4. Automatic fallback strategies for resilient downloads\n *\n * The function automatically determines the best strategy based on the URL\n * and available configuration, providing transparent fallback behavior.\n *\n * @param url - The URL to fetch (HTTP, HTTPS, IPFS, or Arweave)\n * @param downloadRelayer - Optional download relayer for CORS bypass\n * @param downloadRelayer.proxyDownload - Function to proxy downloads through application server\n * @returns Promise resolving to Response object\n * @throws Error if all download attempts fail\n * @example\n * ```typescript\n * // IPFS URL - automatically uses gateway fallbacks\n * const ipfsResponse = await universalFetch('ipfs://QmHash123');\n * const content = await ipfsResponse.text();\n *\n * // With optional download relayer for CORS bypass\n * const response = await universalFetch(\n * 'https://drive.google.com/file.json',\n * vana.downloadRelayer\n * );\n * const data = await response.json();\n * ```\n */\nexport async function universalFetch(\n url: string,\n downloadRelayer?: { proxyDownload: (url: string) => Promise<Blob> },\n): Promise<Response> {\n // Handle Arweave URLs\n let processedUrl = url;\n if (url.startsWith(\"ar://\")) {\n const txId = url.replace(\"ar://\", \"\");\n processedUrl = `https://arweave.net/${txId}`;\n }\n\n // For IPFS URLs, use the IPFS fallback mechanism\n const ipfsHash = extractIpfsHash(processedUrl);\n if (ipfsHash) {\n try {\n return await fetchWithFallbacks(url);\n } catch (ipfsError) {\n // If all IPFS gateways fail and we have a relayer, try it as last resort\n if (downloadRelayer) {\n try {\n // Try with the first gateway URL format\n const gatewayUrl = `https://gateway.pinata.cloud/ipfs/${ipfsHash}`;\n const blob = await downloadRelayer.proxyDownload(gatewayUrl);\n return new Response(blob);\n } catch {\n // Re-throw original IPFS error\n throw ipfsError;\n }\n }\n throw ipfsError;\n }\n }\n\n // For non-IPFS URLs, try direct then relayer\n try {\n const response = await fetch(processedUrl);\n return response;\n } catch (error) {\n // Try download relayer if configured\n if (downloadRelayer) {\n try {\n const blob = await downloadRelayer.proxyDownload(processedUrl);\n return new Response(blob);\n } catch {\n // Re-throw original error\n throw error;\n }\n }\n throw new Error(\n `Failed to fetch from ${processedUrl}: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,kBAAoD;AAkCpD,eAAsB,eACpB,KACA,iBACmB;AAEnB,MAAI,eAAe;AACnB,MAAI,IAAI,WAAW,OAAO,GAAG;AAC3B,UAAM,OAAO,IAAI,QAAQ,SAAS,EAAE;AACpC,mBAAe,uBAAuB,IAAI;AAAA,EAC5C;AAGA,QAAM,eAAW,6BAAgB,YAAY;AAC7C,MAAI,UAAU;AACZ,QAAI;AACF,aAAO,UAAM,gCAAmB,GAAG;AAAA,IACrC,SAAS,WAAW;AAElB,UAAI,iBAAiB;AACnB,YAAI;AAEF,gBAAM,aAAa,qCAAqC,QAAQ;AAChE,gBAAM,OAAO,MAAM,gBAAgB,cAAc,UAAU;AAC3D,iBAAO,IAAI,SAAS,IAAI;AAAA,QAC1B,QAAQ;AAEN,gBAAM;AAAA,QACR;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAGA,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,YAAY;AACzC,WAAO;AAAA,EACT,SAAS,OAAO;AAEd,QAAI,iBAAiB;AACnB,UAAI;AACF,cAAM,OAAO,MAAM,gBAAgB,cAAc,YAAY;AAC7D,eAAO,IAAI,SAAS,IAAI;AAAA,MAC1B,QAAQ;AAEN,cAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,IAAI;AAAA,MACR,wBAAwB,YAAY,KAAK,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IACnG;AAAA,EACF;AACF;","names":[]}
|
package/dist/utils/download.d.ts
CHANGED
|
@@ -4,38 +4,37 @@
|
|
|
4
4
|
* @category Utilities
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Universal fetch with protocol support and automatic fallbacks
|
|
8
8
|
*
|
|
9
9
|
* @remarks
|
|
10
10
|
* This utility provides a robust download mechanism that handles:
|
|
11
|
-
* 1.
|
|
12
|
-
* 2.
|
|
13
|
-
* 3.
|
|
11
|
+
* 1. IPFS URLs with automatic gateway fallbacks (5 different gateways)
|
|
12
|
+
* 2. Arweave URLs with ar:// protocol conversion
|
|
13
|
+
* 3. Regular HTTP/HTTPS URLs with optional CORS bypass via relayer
|
|
14
|
+
* 4. Automatic fallback strategies for resilient downloads
|
|
14
15
|
*
|
|
15
16
|
* The function automatically determines the best strategy based on the URL
|
|
16
17
|
* and available configuration, providing transparent fallback behavior.
|
|
17
18
|
*
|
|
18
|
-
* @param url - The URL to fetch (HTTP, HTTPS, or
|
|
19
|
+
* @param url - The URL to fetch (HTTP, HTTPS, IPFS, or Arweave)
|
|
19
20
|
* @param downloadRelayer - Optional download relayer for CORS bypass
|
|
20
21
|
* @param downloadRelayer.proxyDownload - Function to proxy downloads through application server
|
|
21
22
|
* @returns Promise resolving to Response object
|
|
22
23
|
* @throws Error if all download attempts fail
|
|
23
24
|
* @example
|
|
24
25
|
* ```typescript
|
|
25
|
-
* //
|
|
26
|
-
* const
|
|
26
|
+
* // IPFS URL - automatically uses gateway fallbacks
|
|
27
|
+
* const ipfsResponse = await universalFetch('ipfs://QmHash123');
|
|
28
|
+
* const content = await ipfsResponse.text();
|
|
29
|
+
*
|
|
30
|
+
* // With optional download relayer for CORS bypass
|
|
31
|
+
* const response = await universalFetch(
|
|
27
32
|
* 'https://drive.google.com/file.json',
|
|
28
33
|
* vana.downloadRelayer
|
|
29
34
|
* );
|
|
30
35
|
* const data = await response.json();
|
|
31
|
-
*
|
|
32
|
-
* // IPFS URL - will use gateway fallbacks
|
|
33
|
-
* const ipfsResponse = await fetchWithRelayer('ipfs://QmHash123');
|
|
34
|
-
* const content = await ipfsResponse.text();
|
|
35
36
|
* ```
|
|
36
37
|
*/
|
|
37
|
-
declare function
|
|
38
|
+
export declare function universalFetch(url: string, downloadRelayer?: {
|
|
38
39
|
proxyDownload: (url: string) => Promise<Blob>;
|
|
39
40
|
}): Promise<Response>;
|
|
40
|
-
|
|
41
|
-
export { fetchWithRelayer };
|
package/dist/utils/download.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fetchWithFallbacks, extractIpfsHash } from "./ipfs";
|
|
2
|
-
async function
|
|
2
|
+
async function universalFetch(url, downloadRelayer) {
|
|
3
3
|
let processedUrl = url;
|
|
4
4
|
if (url.startsWith("ar://")) {
|
|
5
5
|
const txId = url.replace("ar://", "");
|
|
@@ -40,6 +40,6 @@ async function fetchWithRelayer(url, downloadRelayer) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
export {
|
|
43
|
-
|
|
43
|
+
universalFetch
|
|
44
44
|
};
|
|
45
45
|
//# sourceMappingURL=download.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/download.ts"],"sourcesContent":["/**\n * Universal download utility with CORS bypass and IPFS gateway fallbacks\n *\n * @category Utilities\n */\n\nimport { fetchWithFallbacks, extractIpfsHash } from \"./ipfs\";\n\n/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/utils/download.ts"],"sourcesContent":["/**\n * Universal download utility with CORS bypass and IPFS gateway fallbacks\n *\n * @category Utilities\n */\n\nimport { fetchWithFallbacks, extractIpfsHash } from \"./ipfs\";\n\n/**\n * Universal fetch with protocol support and automatic fallbacks\n *\n * @remarks\n * This utility provides a robust download mechanism that handles:\n * 1. IPFS URLs with automatic gateway fallbacks (5 different gateways)\n * 2. Arweave URLs with ar:// protocol conversion\n * 3. Regular HTTP/HTTPS URLs with optional CORS bypass via relayer\n * 4. Automatic fallback strategies for resilient downloads\n *\n * The function automatically determines the best strategy based on the URL\n * and available configuration, providing transparent fallback behavior.\n *\n * @param url - The URL to fetch (HTTP, HTTPS, IPFS, or Arweave)\n * @param downloadRelayer - Optional download relayer for CORS bypass\n * @param downloadRelayer.proxyDownload - Function to proxy downloads through application server\n * @returns Promise resolving to Response object\n * @throws Error if all download attempts fail\n * @example\n * ```typescript\n * // IPFS URL - automatically uses gateway fallbacks\n * const ipfsResponse = await universalFetch('ipfs://QmHash123');\n * const content = await ipfsResponse.text();\n *\n * // With optional download relayer for CORS bypass\n * const response = await universalFetch(\n * 'https://drive.google.com/file.json',\n * vana.downloadRelayer\n * );\n * const data = await response.json();\n * ```\n */\nexport async function universalFetch(\n url: string,\n downloadRelayer?: { proxyDownload: (url: string) => Promise<Blob> },\n): Promise<Response> {\n // Handle Arweave URLs\n let processedUrl = url;\n if (url.startsWith(\"ar://\")) {\n const txId = url.replace(\"ar://\", \"\");\n processedUrl = `https://arweave.net/${txId}`;\n }\n\n // For IPFS URLs, use the IPFS fallback mechanism\n const ipfsHash = extractIpfsHash(processedUrl);\n if (ipfsHash) {\n try {\n return await fetchWithFallbacks(url);\n } catch (ipfsError) {\n // If all IPFS gateways fail and we have a relayer, try it as last resort\n if (downloadRelayer) {\n try {\n // Try with the first gateway URL format\n const gatewayUrl = `https://gateway.pinata.cloud/ipfs/${ipfsHash}`;\n const blob = await downloadRelayer.proxyDownload(gatewayUrl);\n return new Response(blob);\n } catch {\n // Re-throw original IPFS error\n throw ipfsError;\n }\n }\n throw ipfsError;\n }\n }\n\n // For non-IPFS URLs, try direct then relayer\n try {\n const response = await fetch(processedUrl);\n return response;\n } catch (error) {\n // Try download relayer if configured\n if (downloadRelayer) {\n try {\n const blob = await downloadRelayer.proxyDownload(processedUrl);\n return new Response(blob);\n } catch {\n // Re-throw original error\n throw error;\n }\n }\n throw new Error(\n `Failed to fetch from ${processedUrl}: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n}\n"],"mappings":"AAMA,SAAS,oBAAoB,uBAAuB;AAkCpD,eAAsB,eACpB,KACA,iBACmB;AAEnB,MAAI,eAAe;AACnB,MAAI,IAAI,WAAW,OAAO,GAAG;AAC3B,UAAM,OAAO,IAAI,QAAQ,SAAS,EAAE;AACpC,mBAAe,uBAAuB,IAAI;AAAA,EAC5C;AAGA,QAAM,WAAW,gBAAgB,YAAY;AAC7C,MAAI,UAAU;AACZ,QAAI;AACF,aAAO,MAAM,mBAAmB,GAAG;AAAA,IACrC,SAAS,WAAW;AAElB,UAAI,iBAAiB;AACnB,YAAI;AAEF,gBAAM,aAAa,qCAAqC,QAAQ;AAChE,gBAAM,OAAO,MAAM,gBAAgB,cAAc,UAAU;AAC3D,iBAAO,IAAI,SAAS,IAAI;AAAA,QAC1B,QAAQ;AAEN,gBAAM;AAAA,QACR;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAGA,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,YAAY;AACzC,WAAO;AAAA,EACT,SAAS,OAAO;AAEd,QAAI,iBAAiB;AACnB,UAAI;AACF,cAAM,OAAO,MAAM,gBAAgB,cAAc,YAAY;AAC7D,eAAO,IAAI,SAAS,IAAI;AAAA,MAC1B,QAAQ;AAEN,cAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,IAAI;AAAA,MACR,wBAAwB,YAAY,KAAK,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,IACnG;AAAA,EACF;AACF;","names":[]}
|
package/dist/utils/encoding.cjs
CHANGED
|
@@ -51,7 +51,7 @@ function fromBase64(str) {
|
|
|
51
51
|
throw new Error("No base64 decoding method available in this environment");
|
|
52
52
|
}
|
|
53
53
|
function isNodeEnvironment() {
|
|
54
|
-
return typeof Buffer !== "undefined" && typeof Buffer.from === "function" && typeof process !== "undefined" && process.versions
|
|
54
|
+
return typeof Buffer !== "undefined" && typeof Buffer.from === "function" && typeof process !== "undefined" && process.versions?.node !== void 0;
|
|
55
55
|
}
|
|
56
56
|
function isBrowserEnvironment() {
|
|
57
57
|
return typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/encoding.ts"],"sourcesContent":["/**\n * Provides platform-aware base64 encoding utilities.\n *\n * @remarks\n * This module provides base64 encoding/decoding operations across Node.js and browser\n * environments. For hex and string conversions, use viem's utilities directly:\n * - `toHex` / `fromHex` from 'viem'\n * - `stringToBytes` / `bytesToString` from 'viem'\n *\n * @category Utilities\n */\n\n/**\n * Converts a Uint8Array to a base64 string.\n *\n * @param data - The byte array to encode into base64 format.\n * @returns The base64-encoded string representation.\n * @throws {Error} When no base64 encoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const bytes = new Uint8Array([72, 101, 108, 108, 111]);\n * const encoded = toBase64(bytes);\n * console.log(encoded); // \"SGVsbG8=\"\n * ```\n */\nexport function toBase64(data: Uint8Array): string {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return Buffer.from(data).toString(\"base64\");\n }\n\n // Browser path - using native btoa\n if (typeof btoa !== \"undefined\") {\n const binary = Array.from(data, (byte) => String.fromCharCode(byte)).join(\n \"\",\n );\n return btoa(binary);\n }\n\n throw new Error(\"No base64 encoding method available in this environment\");\n}\n\n/**\n * Converts a base64 string to a Uint8Array.\n *\n * @param str - The base64-encoded string to decode.\n * @returns The decoded byte array.\n * @throws {Error} When no base64 decoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const decoded = fromBase64(\"SGVsbG8=\");\n * console.log(new TextDecoder().decode(decoded)); // \"Hello\"\n * ```\n */\nexport function fromBase64(str: string): Uint8Array {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return new Uint8Array(Buffer.from(str, \"base64\"));\n }\n\n // Browser path - using native atob\n if (typeof atob !== \"undefined\") {\n const binary = atob(str);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n }\n\n throw new Error(\"No base64 decoding method available in this environment\");\n}\n\n/**\n * Type guard to check if running in Node.js environment\n *\n * @returns True if running in Node.js\n */\nexport function isNodeEnvironment(): boolean {\n return (\n typeof Buffer !== \"undefined\" &&\n typeof Buffer.from === \"function\" &&\n typeof process !== \"undefined\" &&\n process.versions
|
|
1
|
+
{"version":3,"sources":["../../src/utils/encoding.ts"],"sourcesContent":["/**\n * Provides platform-aware base64 encoding utilities.\n *\n * @remarks\n * This module provides base64 encoding/decoding operations across Node.js and browser\n * environments. For hex and string conversions, use viem's utilities directly:\n * - `toHex` / `fromHex` from 'viem'\n * - `stringToBytes` / `bytesToString` from 'viem'\n *\n * @category Utilities\n */\n\n/**\n * Converts a Uint8Array to a base64 string.\n *\n * @param data - The byte array to encode into base64 format.\n * @returns The base64-encoded string representation.\n * @throws {Error} When no base64 encoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const bytes = new Uint8Array([72, 101, 108, 108, 111]);\n * const encoded = toBase64(bytes);\n * console.log(encoded); // \"SGVsbG8=\"\n * ```\n */\nexport function toBase64(data: Uint8Array): string {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return Buffer.from(data).toString(\"base64\");\n }\n\n // Browser path - using native btoa\n if (typeof btoa !== \"undefined\") {\n const binary = Array.from(data, (byte) => String.fromCharCode(byte)).join(\n \"\",\n );\n return btoa(binary);\n }\n\n throw new Error(\"No base64 encoding method available in this environment\");\n}\n\n/**\n * Converts a base64 string to a Uint8Array.\n *\n * @param str - The base64-encoded string to decode.\n * @returns The decoded byte array.\n * @throws {Error} When no base64 decoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const decoded = fromBase64(\"SGVsbG8=\");\n * console.log(new TextDecoder().decode(decoded)); // \"Hello\"\n * ```\n */\nexport function fromBase64(str: string): Uint8Array {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return new Uint8Array(Buffer.from(str, \"base64\"));\n }\n\n // Browser path - using native atob\n if (typeof atob !== \"undefined\") {\n const binary = atob(str);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n }\n\n throw new Error(\"No base64 decoding method available in this environment\");\n}\n\n/**\n * Type guard to check if running in Node.js environment\n *\n * @returns True if running in Node.js\n */\nexport function isNodeEnvironment(): boolean {\n return (\n typeof Buffer !== \"undefined\" &&\n typeof Buffer.from === \"function\" &&\n typeof process !== \"undefined\" &&\n process.versions?.node !== undefined\n );\n}\n\n/**\n * Type guard to check if running in browser environment\n *\n * @returns True if running in browser\n */\nexport function isBrowserEnvironment(): boolean {\n return (\n typeof window !== \"undefined\" && typeof window.document !== \"undefined\"\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BO,SAAS,SAAS,MAA0B;AAEjD,MAAI,OAAO,WAAW,eAAe,OAAO,MAAM;AAChD,WAAO,OAAO,KAAK,IAAI,EAAE,SAAS,QAAQ;AAAA,EAC5C;AAGA,MAAI,OAAO,SAAS,aAAa;AAC/B,UAAM,SAAS,MAAM,KAAK,MAAM,CAAC,SAAS,OAAO,aAAa,IAAI,CAAC,EAAE;AAAA,MACnE;AAAA,IACF;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AAEA,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAeO,SAAS,WAAW,KAAyB;AAElD,MAAI,OAAO,WAAW,eAAe,OAAO,MAAM;AAChD,WAAO,IAAI,WAAW,OAAO,KAAK,KAAK,QAAQ,CAAC;AAAA,EAClD;AAGA,MAAI,OAAO,SAAS,aAAa;AAC/B,UAAM,SAAS,KAAK,GAAG;AACvB,UAAM,QAAQ,IAAI,WAAW,OAAO,MAAM;AAC1C,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,YAAM,CAAC,IAAI,OAAO,WAAW,CAAC;AAAA,IAChC;AACA,WAAO;AAAA,EACT;AAEA,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAOO,SAAS,oBAA6B;AAC3C,SACE,OAAO,WAAW,eAClB,OAAO,OAAO,SAAS,cACvB,OAAO,YAAY,eACnB,QAAQ,UAAU,SAAS;AAE/B;AAOO,SAAS,uBAAgC;AAC9C,SACE,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;AAEhE;","names":[]}
|
package/dist/utils/encoding.d.ts
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* console.log(encoded); // "SGVsbG8="
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
declare function toBase64(data: Uint8Array): string;
|
|
26
|
+
export declare function toBase64(data: Uint8Array): string;
|
|
27
27
|
/**
|
|
28
28
|
* Converts a base64 string to a Uint8Array.
|
|
29
29
|
*
|
|
@@ -37,18 +37,16 @@ declare function toBase64(data: Uint8Array): string;
|
|
|
37
37
|
* console.log(new TextDecoder().decode(decoded)); // "Hello"
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
declare function fromBase64(str: string): Uint8Array;
|
|
40
|
+
export declare function fromBase64(str: string): Uint8Array;
|
|
41
41
|
/**
|
|
42
42
|
* Type guard to check if running in Node.js environment
|
|
43
43
|
*
|
|
44
44
|
* @returns True if running in Node.js
|
|
45
45
|
*/
|
|
46
|
-
declare function isNodeEnvironment(): boolean;
|
|
46
|
+
export declare function isNodeEnvironment(): boolean;
|
|
47
47
|
/**
|
|
48
48
|
* Type guard to check if running in browser environment
|
|
49
49
|
*
|
|
50
50
|
* @returns True if running in browser
|
|
51
51
|
*/
|
|
52
|
-
declare function isBrowserEnvironment(): boolean;
|
|
53
|
-
|
|
54
|
-
export { fromBase64, isBrowserEnvironment, isNodeEnvironment, toBase64 };
|
|
52
|
+
export declare function isBrowserEnvironment(): boolean;
|
package/dist/utils/encoding.js
CHANGED
|
@@ -25,7 +25,7 @@ function fromBase64(str) {
|
|
|
25
25
|
throw new Error("No base64 decoding method available in this environment");
|
|
26
26
|
}
|
|
27
27
|
function isNodeEnvironment() {
|
|
28
|
-
return typeof Buffer !== "undefined" && typeof Buffer.from === "function" && typeof process !== "undefined" && process.versions
|
|
28
|
+
return typeof Buffer !== "undefined" && typeof Buffer.from === "function" && typeof process !== "undefined" && process.versions?.node !== void 0;
|
|
29
29
|
}
|
|
30
30
|
function isBrowserEnvironment() {
|
|
31
31
|
return typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/encoding.ts"],"sourcesContent":["/**\n * Provides platform-aware base64 encoding utilities.\n *\n * @remarks\n * This module provides base64 encoding/decoding operations across Node.js and browser\n * environments. For hex and string conversions, use viem's utilities directly:\n * - `toHex` / `fromHex` from 'viem'\n * - `stringToBytes` / `bytesToString` from 'viem'\n *\n * @category Utilities\n */\n\n/**\n * Converts a Uint8Array to a base64 string.\n *\n * @param data - The byte array to encode into base64 format.\n * @returns The base64-encoded string representation.\n * @throws {Error} When no base64 encoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const bytes = new Uint8Array([72, 101, 108, 108, 111]);\n * const encoded = toBase64(bytes);\n * console.log(encoded); // \"SGVsbG8=\"\n * ```\n */\nexport function toBase64(data: Uint8Array): string {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return Buffer.from(data).toString(\"base64\");\n }\n\n // Browser path - using native btoa\n if (typeof btoa !== \"undefined\") {\n const binary = Array.from(data, (byte) => String.fromCharCode(byte)).join(\n \"\",\n );\n return btoa(binary);\n }\n\n throw new Error(\"No base64 encoding method available in this environment\");\n}\n\n/**\n * Converts a base64 string to a Uint8Array.\n *\n * @param str - The base64-encoded string to decode.\n * @returns The decoded byte array.\n * @throws {Error} When no base64 decoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const decoded = fromBase64(\"SGVsbG8=\");\n * console.log(new TextDecoder().decode(decoded)); // \"Hello\"\n * ```\n */\nexport function fromBase64(str: string): Uint8Array {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return new Uint8Array(Buffer.from(str, \"base64\"));\n }\n\n // Browser path - using native atob\n if (typeof atob !== \"undefined\") {\n const binary = atob(str);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n }\n\n throw new Error(\"No base64 decoding method available in this environment\");\n}\n\n/**\n * Type guard to check if running in Node.js environment\n *\n * @returns True if running in Node.js\n */\nexport function isNodeEnvironment(): boolean {\n return (\n typeof Buffer !== \"undefined\" &&\n typeof Buffer.from === \"function\" &&\n typeof process !== \"undefined\" &&\n process.versions
|
|
1
|
+
{"version":3,"sources":["../../src/utils/encoding.ts"],"sourcesContent":["/**\n * Provides platform-aware base64 encoding utilities.\n *\n * @remarks\n * This module provides base64 encoding/decoding operations across Node.js and browser\n * environments. For hex and string conversions, use viem's utilities directly:\n * - `toHex` / `fromHex` from 'viem'\n * - `stringToBytes` / `bytesToString` from 'viem'\n *\n * @category Utilities\n */\n\n/**\n * Converts a Uint8Array to a base64 string.\n *\n * @param data - The byte array to encode into base64 format.\n * @returns The base64-encoded string representation.\n * @throws {Error} When no base64 encoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const bytes = new Uint8Array([72, 101, 108, 108, 111]);\n * const encoded = toBase64(bytes);\n * console.log(encoded); // \"SGVsbG8=\"\n * ```\n */\nexport function toBase64(data: Uint8Array): string {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return Buffer.from(data).toString(\"base64\");\n }\n\n // Browser path - using native btoa\n if (typeof btoa !== \"undefined\") {\n const binary = Array.from(data, (byte) => String.fromCharCode(byte)).join(\n \"\",\n );\n return btoa(binary);\n }\n\n throw new Error(\"No base64 encoding method available in this environment\");\n}\n\n/**\n * Converts a base64 string to a Uint8Array.\n *\n * @param str - The base64-encoded string to decode.\n * @returns The decoded byte array.\n * @throws {Error} When no base64 decoding method is available in the environment.\n *\n * @example\n * ```typescript\n * const decoded = fromBase64(\"SGVsbG8=\");\n * console.log(new TextDecoder().decode(decoded)); // \"Hello\"\n * ```\n */\nexport function fromBase64(str: string): Uint8Array {\n // Node.js path - most efficient\n if (typeof Buffer !== \"undefined\" && Buffer.from) {\n return new Uint8Array(Buffer.from(str, \"base64\"));\n }\n\n // Browser path - using native atob\n if (typeof atob !== \"undefined\") {\n const binary = atob(str);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n }\n\n throw new Error(\"No base64 decoding method available in this environment\");\n}\n\n/**\n * Type guard to check if running in Node.js environment\n *\n * @returns True if running in Node.js\n */\nexport function isNodeEnvironment(): boolean {\n return (\n typeof Buffer !== \"undefined\" &&\n typeof Buffer.from === \"function\" &&\n typeof process !== \"undefined\" &&\n process.versions?.node !== undefined\n );\n}\n\n/**\n * Type guard to check if running in browser environment\n *\n * @returns True if running in browser\n */\nexport function isBrowserEnvironment(): boolean {\n return (\n typeof window !== \"undefined\" && typeof window.document !== \"undefined\"\n );\n}\n"],"mappings":"AA0BO,SAAS,SAAS,MAA0B;AAEjD,MAAI,OAAO,WAAW,eAAe,OAAO,MAAM;AAChD,WAAO,OAAO,KAAK,IAAI,EAAE,SAAS,QAAQ;AAAA,EAC5C;AAGA,MAAI,OAAO,SAAS,aAAa;AAC/B,UAAM,SAAS,MAAM,KAAK,MAAM,CAAC,SAAS,OAAO,aAAa,IAAI,CAAC,EAAE;AAAA,MACnE;AAAA,IACF;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AAEA,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAeO,SAAS,WAAW,KAAyB;AAElD,MAAI,OAAO,WAAW,eAAe,OAAO,MAAM;AAChD,WAAO,IAAI,WAAW,OAAO,KAAK,KAAK,QAAQ,CAAC;AAAA,EAClD;AAGA,MAAI,OAAO,SAAS,aAAa;AAC/B,UAAM,SAAS,KAAK,GAAG;AACvB,UAAM,QAAQ,IAAI,WAAW,OAAO,MAAM;AAC1C,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,YAAM,CAAC,IAAI,OAAO,WAAW,CAAC;AAAA,IAChC;AACA,WAAO;AAAA,EACT;AAEA,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAOO,SAAS,oBAA6B;AAC3C,SACE,OAAO,WAAW,eAClB,OAAO,OAAO,SAAS,cACvB,OAAO,YAAY,eACnB,QAAQ,UAAU,SAAS;AAE/B;AAOO,SAAS,uBAAgC;AAC9C,SACE,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;AAEhE;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|