ox 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Abi/package.json +6 -0
- package/Abi.ts +163 -0
- package/AbiConstructor/package.json +6 -0
- package/AbiConstructor.ts +413 -0
- package/AbiError/package.json +6 -0
- package/AbiError.ts +719 -0
- package/AbiEvent/package.json +6 -0
- package/AbiEvent.ts +1284 -0
- package/AbiFunction/package.json +6 -0
- package/AbiFunction.ts +813 -0
- package/AbiItem/package.json +6 -0
- package/AbiItem.ts +779 -0
- package/AbiParameters/package.json +6 -0
- package/AbiParameters.ts +712 -0
- package/AccessList/package.json +6 -0
- package/AccessList.ts +124 -0
- package/AccountProof/package.json +6 -0
- package/AccountProof.ts +35 -0
- package/Address/package.json +6 -0
- package/Address.ts +359 -0
- package/AesGcm/package.json +6 -0
- package/AesGcm.ts +220 -0
- package/Authorization/package.json +6 -0
- package/Authorization.ts +639 -0
- package/Base58/package.json +6 -0
- package/Base58.ts +180 -0
- package/Base64/package.json +6 -0
- package/Base64.ts +333 -0
- package/Blobs/package.json +6 -0
- package/Blobs.ts +982 -0
- package/Block/package.json +6 -0
- package/Block.ts +317 -0
- package/Bloom/package.json +6 -0
- package/Bloom.ts +80 -0
- package/Bls/package.json +6 -0
- package/Bls.ts +496 -0
- package/BlsPoint/package.json +6 -0
- package/BlsPoint.ts +232 -0
- package/Bytes/package.json +6 -0
- package/Bytes.ts +963 -0
- package/CHANGELOG.md +7 -0
- package/Caches/package.json +6 -0
- package/Caches.ts +21 -0
- package/ContractAddress/package.json +6 -0
- package/ContractAddress.ts +181 -0
- package/Ens/package.json +6 -0
- package/Ens.ts +116 -0
- package/Errors/package.json +6 -0
- package/Errors.ts +95 -0
- package/Fee/package.json +6 -0
- package/Fee.ts +57 -0
- package/Filter/package.json +6 -0
- package/Filter.ts +144 -0
- package/Hash/package.json +6 -0
- package/Hash.ts +210 -0
- package/HdKey/package.json +6 -0
- package/HdKey.ts +175 -0
- package/Hex/package.json +6 -0
- package/Hex.ts +1040 -0
- package/Json/package.json +6 -0
- package/Json.ts +84 -0
- package/Kzg/package.json +6 -0
- package/Kzg.ts +51 -0
- package/LICENSE +21 -0
- package/Log/package.json +6 -0
- package/Log.ts +248 -0
- package/Mnemonic/package.json +6 -0
- package/Mnemonic.ts +249 -0
- package/P256/package.json +6 -0
- package/P256.ts +230 -0
- package/PersonalMessage/package.json +6 -0
- package/PersonalMessage.ts +70 -0
- package/Provider/package.json +6 -0
- package/Provider.ts +354 -0
- package/PublicKey/package.json +6 -0
- package/PublicKey.ts +545 -0
- package/README.md +75 -26
- package/Rlp/package.json +6 -0
- package/Rlp.ts +390 -0
- package/RpcRequest/package.json +6 -0
- package/RpcRequest.ts +192 -0
- package/RpcResponse/package.json +6 -0
- package/RpcResponse.ts +389 -0
- package/RpcSchema/package.json +6 -0
- package/RpcSchema.ts +273 -0
- package/RpcTransport/package.json +6 -0
- package/RpcTransport.ts +198 -0
- package/Secp256k1/package.json +6 -0
- package/Secp256k1.ts +304 -0
- package/Signature/package.json +6 -0
- package/Signature.ts +909 -0
- package/Siwe/package.json +6 -0
- package/Siwe.ts +516 -0
- package/Solidity/package.json +6 -0
- package/Solidity.ts +109 -0
- package/Transaction/package.json +6 -0
- package/Transaction.ts +429 -0
- package/TransactionEnvelope/package.json +6 -0
- package/TransactionEnvelope.ts +205 -0
- package/TransactionEnvelopeEip1559/package.json +6 -0
- package/TransactionEnvelopeEip1559.ts +656 -0
- package/TransactionEnvelopeEip2930/package.json +6 -0
- package/TransactionEnvelopeEip2930.ts +624 -0
- package/TransactionEnvelopeEip4844/package.json +6 -0
- package/TransactionEnvelopeEip4844.ts +764 -0
- package/TransactionEnvelopeEip7702/package.json +6 -0
- package/TransactionEnvelopeEip7702.ts +639 -0
- package/TransactionEnvelopeLegacy/package.json +6 -0
- package/TransactionEnvelopeLegacy.ts +674 -0
- package/TransactionReceipt/package.json +6 -0
- package/TransactionReceipt.ts +341 -0
- package/TransactionRequest/package.json +6 -0
- package/TransactionRequest.ts +151 -0
- package/TypedData/package.json +6 -0
- package/TypedData.ts +931 -0
- package/ValidatorData/package.json +6 -0
- package/ValidatorData.ts +87 -0
- package/Value/package.json +6 -0
- package/Value.ts +242 -0
- package/WebAuthnP256/package.json +6 -0
- package/WebAuthnP256.ts +803 -0
- package/WebCryptoP256/package.json +6 -0
- package/WebCryptoP256.ts +190 -0
- package/Withdrawal/package.json +6 -0
- package/Withdrawal.ts +95 -0
- package/_cjs/Abi.js +17 -0
- package/_cjs/Abi.js.map +1 -0
- package/_cjs/AbiConstructor.js +42 -0
- package/_cjs/AbiConstructor.js.map +1 -0
- package/_cjs/AbiError.js +98 -0
- package/_cjs/AbiError.js.map +1 -0
- package/_cjs/AbiEvent.js +338 -0
- package/_cjs/AbiEvent.js.map +1 -0
- package/_cjs/AbiFunction.js +85 -0
- package/_cjs/AbiFunction.js.map +1 -0
- package/_cjs/AbiItem.js +180 -0
- package/_cjs/AbiItem.js.map +1 -0
- package/_cjs/AbiParameters.js +229 -0
- package/_cjs/AbiParameters.js.map +1 -0
- package/_cjs/AccessList.js +51 -0
- package/_cjs/AccessList.js.map +1 -0
- package/_cjs/AccountProof.js +3 -0
- package/_cjs/AccountProof.js.map +1 -0
- package/_cjs/Address.js +121 -0
- package/_cjs/Address.js.map +1 -0
- package/_cjs/AesGcm.js +55 -0
- package/_cjs/AesGcm.js.map +1 -0
- package/_cjs/Authorization.js +99 -0
- package/_cjs/Authorization.js.map +1 -0
- package/_cjs/Base58.js +52 -0
- package/_cjs/Base58.js.map +1 -0
- package/_cjs/Base64.js +76 -0
- package/_cjs/Base64.js.map +1 -0
- package/_cjs/Blobs.js +255 -0
- package/_cjs/Blobs.js.map +1 -0
- package/_cjs/Block.js +87 -0
- package/_cjs/Block.js.map +1 -0
- package/_cjs/Bloom.js +23 -0
- package/_cjs/Bloom.js.map +1 -0
- package/_cjs/Bls.js +79 -0
- package/_cjs/Bls.js.map +1 -0
- package/_cjs/BlsPoint.js +32 -0
- package/_cjs/BlsPoint.js.map +1 -0
- package/_cjs/Bytes.js +279 -0
- package/_cjs/Bytes.js.map +1 -0
- package/_cjs/Caches.js +14 -0
- package/_cjs/Caches.js.map +1 -0
- package/_cjs/ContractAddress.js +39 -0
- package/_cjs/ContractAddress.js.map +1 -0
- package/_cjs/Ens.js +37 -0
- package/_cjs/Ens.js.map +1 -0
- package/_cjs/Errors.js +99 -0
- package/_cjs/Errors.js.map +1 -0
- package/_cjs/Fee.js +3 -0
- package/_cjs/Fee.js.map +1 -0
- package/_cjs/Filter.js +43 -0
- package/_cjs/Filter.js.map +1 -0
- package/_cjs/Hash.js +40 -0
- package/_cjs/Hash.js.map +1 -0
- package/_cjs/HdKey.js +30 -0
- package/_cjs/HdKey.js.map +1 -0
- package/_cjs/Hex.js +324 -0
- package/_cjs/Hex.js.map +1 -0
- package/_cjs/Json.js +25 -0
- package/_cjs/Json.js.map +1 -0
- package/_cjs/Kzg.js +14 -0
- package/_cjs/Kzg.js.map +1 -0
- package/_cjs/Log.js +35 -0
- package/_cjs/Log.js.map +1 -0
- package/_cjs/Mnemonic.js +56 -0
- package/_cjs/Mnemonic.js.map +1 -0
- package/_cjs/P256.js +52 -0
- package/_cjs/P256.js.map +1 -0
- package/_cjs/PersonalMessage.js +16 -0
- package/_cjs/PersonalMessage.js.map +1 -0
- package/_cjs/Provider.js +90 -0
- package/_cjs/Provider.js.map +1 -0
- package/_cjs/PublicKey.js +192 -0
- package/_cjs/PublicKey.js.map +1 -0
- package/_cjs/Rlp.js +179 -0
- package/_cjs/Rlp.js.map +1 -0
- package/_cjs/RpcRequest.js +27 -0
- package/_cjs/RpcRequest.js.map +1 -0
- package/_cjs/RpcResponse.js +368 -0
- package/_cjs/RpcResponse.js.map +1 -0
- package/_cjs/RpcSchema.js +7 -0
- package/_cjs/RpcSchema.js.map +1 -0
- package/_cjs/RpcTransport.js +95 -0
- package/_cjs/RpcTransport.js.map +1 -0
- package/_cjs/Secp256k1.js +57 -0
- package/_cjs/Secp256k1.js.map +1 -0
- package/_cjs/Signature.js +305 -0
- package/_cjs/Signature.js.map +1 -0
- package/_cjs/Siwe.js +231 -0
- package/_cjs/Siwe.js.map +1 -0
- package/_cjs/Solidity.js +104 -0
- package/_cjs/Solidity.js.map +1 -0
- package/_cjs/Transaction.js +106 -0
- package/_cjs/Transaction.js.map +1 -0
- package/_cjs/TransactionEnvelope.js +80 -0
- package/_cjs/TransactionEnvelope.js.map +1 -0
- package/_cjs/TransactionEnvelopeEip1559.js +182 -0
- package/_cjs/TransactionEnvelopeEip1559.js.map +1 -0
- package/_cjs/TransactionEnvelopeEip2930.js +166 -0
- package/_cjs/TransactionEnvelopeEip2930.js.map +1 -0
- package/_cjs/TransactionEnvelopeEip4844.js +224 -0
- package/_cjs/TransactionEnvelopeEip4844.js.map +1 -0
- package/_cjs/TransactionEnvelopeEip7702.js +156 -0
- package/_cjs/TransactionEnvelopeEip7702.js.map +1 -0
- package/_cjs/TransactionEnvelopeLegacy.js +221 -0
- package/_cjs/TransactionEnvelopeLegacy.js.map +1 -0
- package/_cjs/TransactionReceipt.js +76 -0
- package/_cjs/TransactionReceipt.js.map +1 -0
- package/_cjs/TransactionRequest.js +51 -0
- package/_cjs/TransactionRequest.js.map +1 -0
- package/_cjs/TypedData.js +318 -0
- package/_cjs/TypedData.js.map +1 -0
- package/_cjs/ValidatorData.js +16 -0
- package/_cjs/ValidatorData.js.map +1 -0
- package/_cjs/Value.js +96 -0
- package/_cjs/Value.js.map +1 -0
- package/_cjs/WebAuthnP256.js +245 -0
- package/_cjs/WebAuthnP256.js.map +1 -0
- package/_cjs/WebCryptoP256.js +46 -0
- package/_cjs/WebCryptoP256.js.map +1 -0
- package/_cjs/Withdrawal.js +24 -0
- package/_cjs/Withdrawal.js.map +1 -0
- package/_cjs/index.js +66 -0
- package/_cjs/index.js.map +1 -0
- package/_cjs/internal/abi.js +11 -0
- package/_cjs/internal/abi.js.map +1 -0
- package/_cjs/internal/abiConstructor.js +3 -0
- package/_cjs/internal/abiConstructor.js.map +1 -0
- package/_cjs/internal/abiError.js +3 -0
- package/_cjs/internal/abiError.js.map +1 -0
- package/_cjs/internal/abiEvent.js +3 -0
- package/_cjs/internal/abiEvent.js.map +1 -0
- package/_cjs/internal/abiFunction.js +3 -0
- package/_cjs/internal/abiFunction.js.map +1 -0
- package/_cjs/internal/abiItem.js +110 -0
- package/_cjs/internal/abiItem.js.map +1 -0
- package/_cjs/internal/abiParameters.js +376 -0
- package/_cjs/internal/abiParameters.js.map +1 -0
- package/_cjs/internal/base58.js +89 -0
- package/_cjs/internal/base58.js.map +1 -0
- package/_cjs/internal/bytes.js +88 -0
- package/_cjs/internal/bytes.js.map +1 -0
- package/_cjs/internal/cursor.js +210 -0
- package/_cjs/internal/cursor.js.map +1 -0
- package/_cjs/internal/ens.js +43 -0
- package/_cjs/internal/ens.js.map +1 -0
- package/_cjs/internal/errors.js +28 -0
- package/_cjs/internal/errors.js.map +1 -0
- package/_cjs/internal/hdKey.js +19 -0
- package/_cjs/internal/hdKey.js.map +1 -0
- package/_cjs/internal/hex.js +66 -0
- package/_cjs/internal/hex.js.map +1 -0
- package/_cjs/internal/lru.js +34 -0
- package/_cjs/internal/lru.js.map +1 -0
- package/_cjs/internal/mnemonic/wordlists.js +24 -0
- package/_cjs/internal/mnemonic/wordlists.js.map +1 -0
- package/_cjs/internal/promise.js +49 -0
- package/_cjs/internal/promise.js.map +1 -0
- package/_cjs/internal/register.js +3 -0
- package/_cjs/internal/register.js.map +1 -0
- package/_cjs/internal/rpcSchema.js +3 -0
- package/_cjs/internal/rpcSchema.js.map +1 -0
- package/_cjs/internal/rpcSchemas/eth.js +3 -0
- package/_cjs/internal/rpcSchemas/eth.js.map +1 -0
- package/_cjs/internal/rpcSchemas/wallet.js +3 -0
- package/_cjs/internal/rpcSchemas/wallet.js.map +1 -0
- package/_cjs/internal/rpcTransport.js +19 -0
- package/_cjs/internal/rpcTransport.js.map +1 -0
- package/_cjs/internal/types.js +3 -0
- package/_cjs/internal/types.js.map +1 -0
- package/_cjs/internal/uid.js +17 -0
- package/_cjs/internal/uid.js.map +1 -0
- package/_cjs/internal/webauthn.js +28 -0
- package/_cjs/internal/webauthn.js.map +1 -0
- package/_cjs/package.json +1 -0
- package/_cjs/trusted-setups/Paths.js +6 -0
- package/_cjs/trusted-setups/Paths.js.map +1 -0
- package/_cjs/trusted-setups/index.js +5 -0
- package/_cjs/trusted-setups/index.js.map +1 -0
- package/_cjs/trusted-setups/internal/paths.js +11 -0
- package/_cjs/trusted-setups/internal/paths.js.map +1 -0
- package/_cjs/version.js +5 -0
- package/_cjs/version.js.map +1 -0
- package/_cjs/window/index.js +3 -0
- package/_cjs/window/index.js.map +1 -0
- package/_esm/Abi.js +19 -0
- package/_esm/Abi.js.map +1 -0
- package/_esm/AbiConstructor.js +102 -0
- package/_esm/AbiConstructor.js.map +1 -0
- package/_esm/AbiError.js +364 -0
- package/_esm/AbiError.js.map +1 -0
- package/_esm/AbiEvent.js +1038 -0
- package/_esm/AbiEvent.js.map +1 -0
- package/_esm/AbiFunction.js +549 -0
- package/_esm/AbiFunction.js.map +1 -0
- package/_esm/AbiItem.js +574 -0
- package/_esm/AbiItem.js.map +1 -0
- package/_esm/AbiParameters.js +543 -0
- package/_esm/AbiParameters.js.map +1 -0
- package/_esm/AccessList.js +105 -0
- package/_esm/AccessList.js.map +1 -0
- package/_esm/AccountProof.js +2 -0
- package/_esm/AccountProof.js.map +1 -0
- package/_esm/Address.js +268 -0
- package/_esm/Address.js.map +1 -0
- package/_esm/AesGcm.js +124 -0
- package/_esm/AesGcm.js.map +1 -0
- package/_esm/Authorization.js +441 -0
- package/_esm/Authorization.js.map +1 -0
- package/_esm/Base58.js +142 -0
- package/_esm/Base58.js.map +1 -0
- package/_esm/Base64.js +236 -0
- package/_esm/Base64.js.map +1 -0
- package/_esm/Blobs.js +624 -0
- package/_esm/Blobs.js.map +1 -0
- package/_esm/Block.js +177 -0
- package/_esm/Block.js.map +1 -0
- package/_esm/Bloom.js +57 -0
- package/_esm/Bloom.js.map +1 -0
- package/_esm/Bls.js +141 -0
- package/_esm/Bls.js.map +1 -0
- package/_esm/BlsPoint.js +59 -0
- package/_esm/BlsPoint.js.map +1 -0
- package/_esm/Bytes.js +719 -0
- package/_esm/Bytes.js.map +1 -0
- package/_esm/Caches.js +19 -0
- package/_esm/Caches.js.map +1 -0
- package/_esm/ContractAddress.js +110 -0
- package/_esm/ContractAddress.js.map +1 -0
- package/_esm/Ens.js +84 -0
- package/_esm/Ens.js.map +1 -0
- package/_esm/Errors.js +105 -0
- package/_esm/Errors.js.map +1 -0
- package/_esm/Fee.js +2 -0
- package/_esm/Fee.js.map +1 -0
- package/_esm/Filter.js +100 -0
- package/_esm/Filter.js.map +1 -0
- package/_esm/Hash.js +126 -0
- package/_esm/Hash.js.map +1 -0
- package/_esm/HdKey.js +107 -0
- package/_esm/HdKey.js.map +1 -0
- package/_esm/Hex.js +763 -0
- package/_esm/Hex.js.map +1 -0
- package/_esm/Json.js +62 -0
- package/_esm/Json.js.map +1 -0
- package/_esm/Kzg.js +30 -0
- package/_esm/Kzg.js.map +1 -0
- package/_esm/Log.js +181 -0
- package/_esm/Log.js.map +1 -0
- package/_esm/Mnemonic.js +154 -0
- package/_esm/Mnemonic.js.map +1 -0
- package/_esm/P256.js +131 -0
- package/_esm/P256.js.map +1 -0
- package/_esm/PersonalMessage.js +46 -0
- package/_esm/PersonalMessage.js.map +1 -0
- package/_esm/Provider.js +122 -0
- package/_esm/Provider.js.map +1 -0
- package/_esm/PublicKey.js +395 -0
- package/_esm/PublicKey.js.map +1 -0
- package/_esm/Rlp.js +267 -0
- package/_esm/Rlp.js.map +1 -0
- package/_esm/RpcRequest.js +131 -0
- package/_esm/RpcRequest.js.map +1 -0
- package/_esm/RpcResponse.js +457 -0
- package/_esm/RpcResponse.js.map +1 -0
- package/_esm/RpcSchema.js +46 -0
- package/_esm/RpcSchema.js.map +1 -0
- package/_esm/RpcTransport.js +110 -0
- package/_esm/RpcTransport.js.map +1 -0
- package/_esm/Secp256k1.js +173 -0
- package/_esm/Secp256k1.js.map +1 -0
- package/_esm/Signature.js +696 -0
- package/_esm/Signature.js.map +1 -0
- package/_esm/Siwe.js +374 -0
- package/_esm/Siwe.js.map +1 -0
- package/_esm/Solidity.js +104 -0
- package/_esm/Solidity.js.map +1 -0
- package/_esm/Transaction.js +176 -0
- package/_esm/Transaction.js.map +1 -0
- package/_esm/TransactionEnvelope.js +139 -0
- package/_esm/TransactionEnvelope.js.map +1 -0
- package/_esm/TransactionEnvelopeEip1559.js +455 -0
- package/_esm/TransactionEnvelopeEip1559.js.map +1 -0
- package/_esm/TransactionEnvelopeEip2930.js +439 -0
- package/_esm/TransactionEnvelopeEip2930.js.map +1 -0
- package/_esm/TransactionEnvelopeEip4844.js +542 -0
- package/_esm/TransactionEnvelopeEip4844.js.map +1 -0
- package/_esm/TransactionEnvelopeEip7702.js +442 -0
- package/_esm/TransactionEnvelopeEip7702.js.map +1 -0
- package/_esm/TransactionEnvelopeLegacy.js +495 -0
- package/_esm/TransactionEnvelopeLegacy.js.map +1 -0
- package/_esm/TransactionReceipt.js +229 -0
- package/_esm/TransactionReceipt.js.map +1 -0
- package/_esm/TransactionRequest.js +89 -0
- package/_esm/TransactionRequest.js.map +1 -0
- package/_esm/TypedData.js +635 -0
- package/_esm/TypedData.js.map +1 -0
- package/_esm/ValidatorData.js +52 -0
- package/_esm/ValidatorData.js.map +1 -0
- package/_esm/Value.js +196 -0
- package/_esm/Value.js.map +1 -0
- package/_esm/WebAuthnP256.js +471 -0
- package/_esm/WebAuthnP256.js.map +1 -0
- package/_esm/WebCryptoP256.js +116 -0
- package/_esm/WebCryptoP256.js.map +1 -0
- package/_esm/Withdrawal.js +72 -0
- package/_esm/Withdrawal.js.map +1 -0
- package/_esm/index.js +3366 -0
- package/_esm/index.js.map +1 -0
- package/_esm/internal/abi.js +9 -0
- package/_esm/internal/abi.js.map +1 -0
- package/_esm/internal/abiConstructor.js +2 -0
- package/_esm/internal/abiConstructor.js.map +1 -0
- package/_esm/internal/abiError.js +2 -0
- package/_esm/internal/abiError.js.map +1 -0
- package/_esm/internal/abiEvent.js +2 -0
- package/_esm/internal/abiEvent.js.map +1 -0
- package/_esm/internal/abiFunction.js +2 -0
- package/_esm/internal/abiFunction.js.map +1 -0
- package/_esm/internal/abiItem.js +122 -0
- package/_esm/internal/abiItem.js.map +1 -0
- package/_esm/internal/abiParameters.js +419 -0
- package/_esm/internal/abiParameters.js.map +1 -0
- package/_esm/internal/base58.js +91 -0
- package/_esm/internal/base58.js.map +1 -0
- package/_esm/internal/bytes.js +86 -0
- package/_esm/internal/bytes.js.map +1 -0
- package/_esm/internal/cursor.js +207 -0
- package/_esm/internal/cursor.js.map +1 -0
- package/_esm/internal/ens.js +47 -0
- package/_esm/internal/ens.js.map +1 -0
- package/_esm/internal/errors.js +26 -0
- package/_esm/internal/errors.js.map +1 -0
- package/_esm/internal/hdKey.js +17 -0
- package/_esm/internal/hdKey.js.map +1 -0
- package/_esm/internal/hex.js +64 -0
- package/_esm/internal/hex.js.map +1 -0
- package/_esm/internal/lru.js +36 -0
- package/_esm/internal/lru.js.map +1 -0
- package/_esm/internal/mnemonic/wordlists.js +11 -0
- package/_esm/internal/mnemonic/wordlists.js.map +1 -0
- package/_esm/internal/promise.js +52 -0
- package/_esm/internal/promise.js.map +1 -0
- package/_esm/internal/register.js +2 -0
- package/_esm/internal/register.js.map +1 -0
- package/_esm/internal/rpcSchema.js +2 -0
- package/_esm/internal/rpcSchema.js.map +1 -0
- package/_esm/internal/rpcSchemas/eth.js +2 -0
- package/_esm/internal/rpcSchemas/eth.js.map +1 -0
- package/_esm/internal/rpcSchemas/wallet.js +2 -0
- package/_esm/internal/rpcSchemas/wallet.js.map +1 -0
- package/_esm/internal/rpcTransport.js +20 -0
- package/_esm/internal/rpcTransport.js.map +1 -0
- package/_esm/internal/types.js +2 -0
- package/_esm/internal/types.js.map +1 -0
- package/_esm/internal/uid.js +15 -0
- package/_esm/internal/uid.js.map +1 -0
- package/_esm/internal/webauthn.js +35 -0
- package/_esm/internal/webauthn.js.map +1 -0
- package/_esm/package.json +1 -0
- package/_esm/trusted-setups/Paths.js +3 -0
- package/_esm/trusted-setups/Paths.js.map +1 -0
- package/_esm/trusted-setups/index.js +2 -0
- package/_esm/trusted-setups/index.js.map +1 -0
- package/_esm/trusted-setups/internal/paths.js +12 -0
- package/_esm/trusted-setups/internal/paths.js.map +1 -0
- package/_esm/version.js +3 -0
- package/_esm/version.js.map +1 -0
- package/_esm/window/index.js +2 -0
- package/_esm/window/index.js.map +1 -0
- package/_test/Abi.test-d/package.json +6 -0
- package/_test/AbiConstructor.test-d/package.json +6 -0
- package/_test/AbiError.test-d/package.json +6 -0
- package/_test/AbiEvent.snap-d/package.json +6 -0
- package/_test/AbiEvent.snap-d.ts +329 -0
- package/_test/AbiFunction.snap-d/package.json +6 -0
- package/_test/AbiFunction.snap-d.ts +262 -0
- package/_test/AbiItem.snap-d/package.json +6 -0
- package/_test/AbiItem.snap-d.ts +131 -0
- package/_test/AbiParameters.bench/package.json +6 -0
- package/_test/AbiParameters.snap-d/package.json +6 -0
- package/_test/AbiParameters.snap-d.ts +66 -0
- package/_test/Address.bench/package.json +6 -0
- package/_test/Base58.bench/package.json +6 -0
- package/_test/Hex.bench/package.json +6 -0
- package/_test/Hex.test-d/package.json +6 -0
- package/_test/PublicKey.test-d/package.json +6 -0
- package/_test/Rlp.bench/package.json +6 -0
- package/_test/Rlp.test-d/package.json +6 -0
- package/_test/Signature.snap-d/package.json +6 -0
- package/_test/Signature.snap-d.ts +96 -0
- package/_test/TransactionEnvelopeEip1559.test-d/package.json +6 -0
- package/_test/TransactionEnvelopeEip2930.test-d/package.json +6 -0
- package/_test/TransactionEnvelopeEip4844.test-d/package.json +6 -0
- package/_test/TransactionEnvelopeEip7702.test-d/package.json +6 -0
- package/_test/TransactionEnvelopeLegacy.test-d/package.json +6 -0
- package/_test/TypedData.test-d/package.json +6 -0
- package/_types/Abi.d.ts +137 -0
- package/_types/Abi.d.ts.map +1 -0
- package/_types/AbiConstructor.d.ts +305 -0
- package/_types/AbiConstructor.d.ts.map +1 -0
- package/_types/AbiError.d.ts +522 -0
- package/_types/AbiError.d.ts.map +1 -0
- package/_types/AbiEvent.d.ts +892 -0
- package/_types/AbiEvent.d.ts.map +1 -0
- package/_types/AbiFunction.d.ts +602 -0
- package/_types/AbiFunction.d.ts.map +1 -0
- package/_types/AbiItem.d.ts +544 -0
- package/_types/AbiItem.d.ts.map +1 -0
- package/_types/AbiParameters.d.ts +466 -0
- package/_types/AbiParameters.d.ts.map +1 -0
- package/_types/AccessList.d.ts +83 -0
- package/_types/AccessList.d.ts.map +1 -0
- package/_types/AccountProof.d.ts +32 -0
- package/_types/AccountProof.d.ts.map +1 -0
- package/_types/Address.d.ts +244 -0
- package/_types/Address.d.ts.map +1 -0
- package/_types/AesGcm.d.ts +116 -0
- package/_types/AesGcm.d.ts.map +1 -0
- package/_types/Authorization.d.ts +461 -0
- package/_types/Authorization.d.ts.map +1 -0
- package/_types/Base58.d.ts +131 -0
- package/_types/Base58.d.ts.map +1 -0
- package/_types/Base64.d.ts +244 -0
- package/_types/Base64.d.ts.map +1 -0
- package/_types/Blobs.d.ts +556 -0
- package/_types/Blobs.d.ts.map +1 -0
- package/_types/Block.d.ts +190 -0
- package/_types/Block.d.ts.map +1 -0
- package/_types/Bloom.d.ts +54 -0
- package/_types/Bloom.d.ts.map +1 -0
- package/_types/Bls.d.ts +365 -0
- package/_types/Bls.d.ts.map +1 -0
- package/_types/BlsPoint.d.ts +187 -0
- package/_types/BlsPoint.d.ts.map +1 -0
- package/_types/Bytes.d.ts +674 -0
- package/_types/Bytes.d.ts.map +1 -0
- package/_types/Caches.d.ts +13 -0
- package/_types/Caches.d.ts.map +1 -0
- package/_types/ContractAddress.d.ts +115 -0
- package/_types/ContractAddress.d.ts.map +1 -0
- package/_types/Ens.d.ts +72 -0
- package/_types/Ens.d.ts.map +1 -0
- package/_types/Errors.d.ts +33 -0
- package/_types/Errors.d.ts.map +1 -0
- package/_types/Fee.d.ts +41 -0
- package/_types/Fee.d.ts.map +1 -0
- package/_types/Filter.d.ts +100 -0
- package/_types/Filter.d.ts.map +1 -0
- package/_types/Hash.d.ts +135 -0
- package/_types/Hash.d.ts.map +1 -0
- package/_types/HdKey.d.ts +146 -0
- package/_types/HdKey.d.ts.map +1 -0
- package/_types/Hex.d.ts +711 -0
- package/_types/Hex.d.ts.map +1 -0
- package/_types/Json.d.ts +53 -0
- package/_types/Json.d.ts.map +1 -0
- package/_types/Kzg.d.ts +42 -0
- package/_types/Kzg.d.ts.map +1 -0
- package/_types/Log.d.ts +194 -0
- package/_types/Log.d.ts.map +1 -0
- package/_types/Mnemonic.d.ts +176 -0
- package/_types/Mnemonic.d.ts.map +1 -0
- package/_types/P256.d.ts +207 -0
- package/_types/P256.d.ts.map +1 -0
- package/_types/PersonalMessage.d.ts +49 -0
- package/_types/PersonalMessage.d.ts.map +1 -0
- package/_types/Provider.d.ts +268 -0
- package/_types/Provider.d.ts.map +1 -0
- package/_types/PublicKey.d.ts +327 -0
- package/_types/PublicKey.d.ts.map +1 -0
- package/_types/Rlp.d.ts +153 -0
- package/_types/Rlp.d.ts.map +1 -0
- package/_types/RpcRequest.d.ts +144 -0
- package/_types/RpcRequest.d.ts.map +1 -0
- package/_types/RpcResponse.d.ts +266 -0
- package/_types/RpcResponse.d.ts.map +1 -0
- package/_types/RpcSchema.d.ts +248 -0
- package/_types/RpcSchema.d.ts.map +1 -0
- package/_types/RpcTransport.d.ts +65 -0
- package/_types/RpcTransport.d.ts.map +1 -0
- package/_types/Secp256k1.d.ts +277 -0
- package/_types/Secp256k1.d.ts.map +1 -0
- package/_types/Signature.d.ts +601 -0
- package/_types/Signature.d.ts.map +1 -0
- package/_types/Siwe.d.ts +249 -0
- package/_types/Siwe.d.ts.map +1 -0
- package/_types/Solidity.d.ts +100 -0
- package/_types/Solidity.d.ts.map +1 -0
- package/_types/Transaction.d.ts +235 -0
- package/_types/Transaction.d.ts.map +1 -0
- package/_types/TransactionEnvelope.d.ts +141 -0
- package/_types/TransactionEnvelope.d.ts.map +1 -0
- package/_types/TransactionEnvelopeEip1559.d.ts +367 -0
- package/_types/TransactionEnvelopeEip1559.d.ts.map +1 -0
- package/_types/TransactionEnvelopeEip2930.d.ts +364 -0
- package/_types/TransactionEnvelopeEip2930.d.ts.map +1 -0
- package/_types/TransactionEnvelopeEip4844.d.ts +419 -0
- package/_types/TransactionEnvelopeEip4844.d.ts.map +1 -0
- package/_types/TransactionEnvelopeEip7702.d.ts +377 -0
- package/_types/TransactionEnvelopeEip7702.d.ts.map +1 -0
- package/_types/TransactionEnvelopeLegacy.d.ts +358 -0
- package/_types/TransactionEnvelopeLegacy.d.ts.map +1 -0
- package/_types/TransactionReceipt.d.ts +271 -0
- package/_types/TransactionReceipt.d.ts.map +1 -0
- package/_types/TransactionRequest.d.ts +92 -0
- package/_types/TransactionRequest.d.ts.map +1 -0
- package/_types/TypedData.d.ts +496 -0
- package/_types/TypedData.d.ts.map +1 -0
- package/_types/ValidatorData.d.ts +64 -0
- package/_types/ValidatorData.d.ts.map +1 -0
- package/_types/Value.d.ts +159 -0
- package/_types/Value.d.ts.map +1 -0
- package/_types/WebAuthnP256.d.ts +445 -0
- package/_types/WebAuthnP256.d.ts.map +1 -0
- package/_types/WebCryptoP256.d.ts +119 -0
- package/_types/WebCryptoP256.d.ts.map +1 -0
- package/_types/Withdrawal.d.ts +74 -0
- package/_types/Withdrawal.d.ts.map +1 -0
- package/_types/index.d.ts +3367 -0
- package/_types/index.d.ts.map +1 -0
- package/_types/internal/abi.d.ts +4 -0
- package/_types/internal/abi.d.ts.map +1 -0
- package/_types/internal/abiConstructor.d.ts +11 -0
- package/_types/internal/abiConstructor.d.ts.map +1 -0
- package/_types/internal/abiError.d.ts +11 -0
- package/_types/internal/abiError.d.ts.map +1 -0
- package/_types/internal/abiEvent.d.ts +60 -0
- package/_types/internal/abiEvent.d.ts.map +1 -0
- package/_types/internal/abiFunction.d.ts +11 -0
- package/_types/internal/abiFunction.d.ts.map +1 -0
- package/_types/internal/abiItem.d.ts +100 -0
- package/_types/internal/abiItem.d.ts.map +1 -0
- package/_types/internal/abiParameters.d.ts +169 -0
- package/_types/internal/abiParameters.d.ts.map +1 -0
- package/_types/internal/base58.d.ts +17 -0
- package/_types/internal/base58.d.ts.map +1 -0
- package/_types/internal/bytes.d.ts +52 -0
- package/_types/internal/bytes.d.ts.map +1 -0
- package/_types/internal/cursor.d.ts +70 -0
- package/_types/internal/cursor.d.ts.map +1 -0
- package/_types/internal/ens.d.ts +23 -0
- package/_types/internal/ens.d.ts.map +1 -0
- package/_types/internal/errors.d.ts +7 -0
- package/_types/internal/errors.d.ts.map +1 -0
- package/_types/internal/hdKey.d.ts +10 -0
- package/_types/internal/hdKey.d.ts.map +1 -0
- package/_types/internal/hex.d.ts +39 -0
- package/_types/internal/hex.d.ts.map +1 -0
- package/_types/internal/lru.d.ts +13 -0
- package/_types/internal/lru.d.ts.map +1 -0
- package/_types/internal/mnemonic/wordlists.d.ts +11 -0
- package/_types/internal/mnemonic/wordlists.d.ts.map +1 -0
- package/_types/internal/promise.d.ts +27 -0
- package/_types/internal/promise.d.ts.map +1 -0
- package/_types/internal/register.d.ts +13 -0
- package/_types/internal/register.d.ts.map +1 -0
- package/_types/internal/rpcSchema.d.ts +12 -0
- package/_types/internal/rpcSchema.d.ts.map +1 -0
- package/_types/internal/rpcSchemas/eth.d.ts +718 -0
- package/_types/internal/rpcSchemas/eth.d.ts.map +1 -0
- package/_types/internal/rpcSchemas/wallet.d.ts +416 -0
- package/_types/internal/rpcSchemas/wallet.d.ts.map +1 -0
- package/_types/internal/rpcTransport.d.ts +38 -0
- package/_types/internal/rpcTransport.d.ts.map +1 -0
- package/_types/internal/types.d.ts +284 -0
- package/_types/internal/types.d.ts.map +1 -0
- package/_types/internal/uid.d.ts +3 -0
- package/_types/internal/uid.d.ts.map +1 -0
- package/_types/internal/webauthn.d.ts +127 -0
- package/_types/internal/webauthn.d.ts.map +1 -0
- package/_types/trusted-setups/Paths.d.ts +2 -0
- package/_types/trusted-setups/Paths.d.ts.map +1 -0
- package/_types/trusted-setups/index.d.ts +2 -0
- package/_types/trusted-setups/index.d.ts.map +1 -0
- package/_types/trusted-setups/internal/paths.d.ts +3 -0
- package/_types/trusted-setups/internal/paths.d.ts.map +1 -0
- package/_types/version.d.ts +3 -0
- package/_types/version.d.ts.map +1 -0
- package/_types/window/index.d.ts +7 -0
- package/_types/window/index.d.ts.map +1 -0
- package/index.ts +3427 -0
- package/internal/abi.ts +11 -0
- package/internal/abiConstructor.ts +32 -0
- package/internal/abiError.ts +30 -0
- package/internal/abiEvent.ts +154 -0
- package/internal/abiFunction.ts +32 -0
- package/internal/abiItem.ts +593 -0
- package/internal/abiParameters.ts +741 -0
- package/internal/base58.ts +106 -0
- package/internal/bytes.ts +152 -0
- package/internal/cursor.ts +252 -0
- package/internal/ens.ts +64 -0
- package/internal/errors.ts +26 -0
- package/internal/hdKey.ts +25 -0
- package/internal/hex.ts +123 -0
- package/internal/lru.ts +34 -0
- package/internal/mnemonic/wordlists.ts +10 -0
- package/internal/promise.ts +66 -0
- package/internal/register.ts +15 -0
- package/internal/rpcSchema.ts +20 -0
- package/internal/rpcSchemas/eth.ts +727 -0
- package/internal/rpcSchemas/wallet.ts +428 -0
- package/internal/rpcTransport.ts +74 -0
- package/internal/types.ts +414 -0
- package/internal/uid.ts +15 -0
- package/internal/webauthn.ts +198 -0
- package/package.json +500 -20
- package/trusted-setups/Paths/package.json +6 -0
- package/trusted-setups/Paths.ts +3 -0
- package/trusted-setups/index.ts +1 -0
- package/trusted-setups/internal/paths.ts +13 -0
- package/trusted-setups/internal/setups/mainnet.json +8265 -0
- package/trusted-setups/internal/setups/mainnet.txt +4163 -0
- package/trusted-setups/package.json +6 -0
- package/tsdoc.json +4 -0
- package/version/package.json +6 -0
- package/version.ts +2 -0
- package/window/index.ts +7 -0
- package/window/package.json +6 -0
- package/cl/ansiesc.js +0 -25
- package/cl/deps.js +0 -7
- package/cl/editor.js +0 -141
- package/cl/index.html +0 -19
- package/cl/ox.js +0 -44
- package/cl/socket.io.js +0 -1922
- package/cl/style.css +0 -37
- package/srv/deps.js +0 -88
- package/srv/httpSrv.js +0 -82
- package/srv/ox.js +0 -44
- package/srv/remoteXtermReq.js +0 -70
package/_esm/Hex.js
ADDED
|
@@ -0,0 +1,763 @@
|
|
|
1
|
+
import { equalBytes } from '@noble/curves/abstract/utils';
|
|
2
|
+
import * as Bytes from './Bytes.js';
|
|
3
|
+
import * as Errors from './Errors.js';
|
|
4
|
+
import * as Json from './Json.js';
|
|
5
|
+
import * as internal_bytes from './internal/bytes.js';
|
|
6
|
+
import * as internal from './internal/hex.js';
|
|
7
|
+
const encoder = /*#__PURE__*/ new TextEncoder();
|
|
8
|
+
const hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));
|
|
9
|
+
/**
|
|
10
|
+
* Asserts if the given value is {@link ox#Hex.Hex}.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts twoslash
|
|
14
|
+
* import { Hex } from 'ox'
|
|
15
|
+
*
|
|
16
|
+
* Hex.assert('abc')
|
|
17
|
+
* // @error: InvalidHexValueTypeError:
|
|
18
|
+
* // @error: Value `"abc"` of type `string` is an invalid hex type.
|
|
19
|
+
* // @error: Hex types must be represented as `"0x\${string}"`.
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @param value - The value to assert.
|
|
23
|
+
* @param options - Options.
|
|
24
|
+
*/
|
|
25
|
+
export function assert(value, options = {}) {
|
|
26
|
+
const { strict = false } = options;
|
|
27
|
+
if (!value)
|
|
28
|
+
throw new InvalidHexTypeError(value);
|
|
29
|
+
if (typeof value !== 'string')
|
|
30
|
+
throw new InvalidHexTypeError(value);
|
|
31
|
+
if (strict) {
|
|
32
|
+
if (!/^0x[0-9a-fA-F]*$/.test(value))
|
|
33
|
+
throw new InvalidHexValueError(value);
|
|
34
|
+
}
|
|
35
|
+
if (!value.startsWith('0x'))
|
|
36
|
+
throw new InvalidHexValueError(value);
|
|
37
|
+
}
|
|
38
|
+
/* v8 ignore next */
|
|
39
|
+
assert.parseError = (error) => error;
|
|
40
|
+
/**
|
|
41
|
+
* Concatenates two or more {@link ox#Hex.Hex}.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts twoslash
|
|
45
|
+
* import { Hex } from 'ox'
|
|
46
|
+
*
|
|
47
|
+
* Hex.concat('0x123', '0x456')
|
|
48
|
+
* // @log: '0x123456'
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @param values - The {@link ox#Hex.Hex} values to concatenate.
|
|
52
|
+
* @returns The concatenated {@link ox#Hex.Hex} value.
|
|
53
|
+
*/
|
|
54
|
+
export function concat(...values) {
|
|
55
|
+
return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;
|
|
56
|
+
}
|
|
57
|
+
/* v8 ignore next */
|
|
58
|
+
concat.parseError = (error) => error;
|
|
59
|
+
/**
|
|
60
|
+
* Instantiates a {@link ox#Hex.Hex} value from a hex string or {@link ox#Bytes.Bytes} value.
|
|
61
|
+
*
|
|
62
|
+
* :::tip
|
|
63
|
+
*
|
|
64
|
+
* To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:
|
|
65
|
+
*
|
|
66
|
+
* - `Hex.fromBoolean`
|
|
67
|
+
*
|
|
68
|
+
* - `Hex.fromString`
|
|
69
|
+
*
|
|
70
|
+
* - `Hex.fromNumber`
|
|
71
|
+
*
|
|
72
|
+
* :::
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts twoslash
|
|
76
|
+
* import { Bytes, Hex } from 'ox'
|
|
77
|
+
*
|
|
78
|
+
* Hex.from('0x48656c6c6f20576f726c6421')
|
|
79
|
+
* // @log: '0x48656c6c6f20576f726c6421'
|
|
80
|
+
*
|
|
81
|
+
* Hex.from(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))
|
|
82
|
+
* // @log: '0x48656c6c6f20576f726c6421'
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* @param value - The {@link ox#Bytes.Bytes} value to encode.
|
|
86
|
+
* @returns The encoded {@link ox#Hex.Hex} value.
|
|
87
|
+
*/
|
|
88
|
+
export function from(value) {
|
|
89
|
+
if (value instanceof Uint8Array)
|
|
90
|
+
return fromBytes(value);
|
|
91
|
+
if (Array.isArray(value))
|
|
92
|
+
return fromBytes(new Uint8Array(value));
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
95
|
+
/* v8 ignore next */
|
|
96
|
+
from.parseError = (error) => error;
|
|
97
|
+
/**
|
|
98
|
+
* Encodes a boolean into a {@link ox#Hex.Hex} value.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts twoslash
|
|
102
|
+
* import { Hex } from 'ox'
|
|
103
|
+
*
|
|
104
|
+
* Hex.fromBoolean(true)
|
|
105
|
+
* // @log: '0x1'
|
|
106
|
+
*
|
|
107
|
+
* Hex.fromBoolean(false)
|
|
108
|
+
* // @log: '0x0'
|
|
109
|
+
*
|
|
110
|
+
* Hex.fromBoolean(true, { size: 32 })
|
|
111
|
+
* // @log: '0x0000000000000000000000000000000000000000000000000000000000000001'
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* @param value - The boolean value to encode.
|
|
115
|
+
* @param options - Options.
|
|
116
|
+
* @returns The encoded {@link ox#Hex.Hex} value.
|
|
117
|
+
*/
|
|
118
|
+
export function fromBoolean(value, options = {}) {
|
|
119
|
+
const hex = `0x0${Number(value)}`;
|
|
120
|
+
if (typeof options.size === 'number') {
|
|
121
|
+
internal.assertSize(hex, options.size);
|
|
122
|
+
return padLeft(hex, options.size);
|
|
123
|
+
}
|
|
124
|
+
return hex;
|
|
125
|
+
}
|
|
126
|
+
fromBoolean.parseError = (error) =>
|
|
127
|
+
/* v8 ignore next */
|
|
128
|
+
error;
|
|
129
|
+
/**
|
|
130
|
+
* Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```ts twoslash
|
|
134
|
+
* import { Bytes, Hex } from 'ox'
|
|
135
|
+
*
|
|
136
|
+
* Hex.fromBytes(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))
|
|
137
|
+
* // @log: '0x48656c6c6f20576f726c6421'
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @param value - The {@link ox#Bytes.Bytes} value to encode.
|
|
141
|
+
* @param options - Options.
|
|
142
|
+
* @returns The encoded {@link ox#Hex.Hex} value.
|
|
143
|
+
*/
|
|
144
|
+
export function fromBytes(value, options = {}) {
|
|
145
|
+
let string = '';
|
|
146
|
+
for (let i = 0; i < value.length; i++)
|
|
147
|
+
string += hexes[value[i]];
|
|
148
|
+
const hex = `0x${string}`;
|
|
149
|
+
if (typeof options.size === 'number') {
|
|
150
|
+
internal.assertSize(hex, options.size);
|
|
151
|
+
return padRight(hex, options.size);
|
|
152
|
+
}
|
|
153
|
+
return hex;
|
|
154
|
+
}
|
|
155
|
+
/* v8 ignore next */
|
|
156
|
+
fromBytes.parseError = (error) => error;
|
|
157
|
+
/**
|
|
158
|
+
* Encodes a number or bigint into a {@link ox#Hex.Hex} value.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts twoslash
|
|
162
|
+
* import { Hex } from 'ox'
|
|
163
|
+
*
|
|
164
|
+
* Hex.fromNumber(420)
|
|
165
|
+
* // @log: '0x1a4'
|
|
166
|
+
*
|
|
167
|
+
* Hex.fromNumber(420, { size: 32 })
|
|
168
|
+
* // @log: '0x00000000000000000000000000000000000000000000000000000000000001a4'
|
|
169
|
+
* ```
|
|
170
|
+
*
|
|
171
|
+
* @param value - The number or bigint value to encode.
|
|
172
|
+
* @param options - Options.
|
|
173
|
+
* @returns The encoded {@link ox#Hex.Hex} value.
|
|
174
|
+
*/
|
|
175
|
+
export function fromNumber(value, options = {}) {
|
|
176
|
+
const { signed, size } = options;
|
|
177
|
+
const value_ = BigInt(value);
|
|
178
|
+
let maxValue;
|
|
179
|
+
if (size) {
|
|
180
|
+
if (signed)
|
|
181
|
+
maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;
|
|
182
|
+
else
|
|
183
|
+
maxValue = 2n ** (BigInt(size) * 8n) - 1n;
|
|
184
|
+
}
|
|
185
|
+
else if (typeof value === 'number') {
|
|
186
|
+
maxValue = BigInt(Number.MAX_SAFE_INTEGER);
|
|
187
|
+
}
|
|
188
|
+
const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;
|
|
189
|
+
if ((maxValue && value_ > maxValue) || value_ < minValue) {
|
|
190
|
+
const suffix = typeof value === 'bigint' ? 'n' : '';
|
|
191
|
+
throw new IntegerOutOfRangeError({
|
|
192
|
+
max: maxValue ? `${maxValue}${suffix}` : undefined,
|
|
193
|
+
min: `${minValue}${suffix}`,
|
|
194
|
+
signed,
|
|
195
|
+
size,
|
|
196
|
+
value: `${value}${suffix}`,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const stringValue = (signed && value_ < 0 ? (1n << BigInt(size * 8)) + BigInt(value_) : value_).toString(16);
|
|
200
|
+
const hex = `0x${stringValue.length % 2 === 0 ? stringValue : `0${stringValue}`}`;
|
|
201
|
+
if (size)
|
|
202
|
+
return padLeft(hex, size);
|
|
203
|
+
return hex;
|
|
204
|
+
}
|
|
205
|
+
fromNumber.parseError = (error) =>
|
|
206
|
+
/* v8 ignore next */
|
|
207
|
+
error;
|
|
208
|
+
/**
|
|
209
|
+
* Encodes a string into a {@link ox#Hex.Hex} value.
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```ts twoslash
|
|
213
|
+
* import { Hex } from 'ox'
|
|
214
|
+
* Hex.fromString('Hello World!')
|
|
215
|
+
* // '0x48656c6c6f20576f726c6421'
|
|
216
|
+
*
|
|
217
|
+
* Hex.fromString('Hello World!', { size: 32 })
|
|
218
|
+
* // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
|
|
219
|
+
* ```
|
|
220
|
+
*
|
|
221
|
+
* @param value - The string value to encode.
|
|
222
|
+
* @param options - Options.
|
|
223
|
+
* @returns The encoded {@link ox#Hex.Hex} value.
|
|
224
|
+
*/
|
|
225
|
+
export function fromString(value, options = {}) {
|
|
226
|
+
return fromBytes(encoder.encode(value), options);
|
|
227
|
+
}
|
|
228
|
+
fromString.parseError = (error) =>
|
|
229
|
+
/* v8 ignore next */
|
|
230
|
+
error;
|
|
231
|
+
/**
|
|
232
|
+
* Checks if two {@link ox#Hex.Hex} values are equal.
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```ts twoslash
|
|
236
|
+
* import { Hex } from 'ox'
|
|
237
|
+
*
|
|
238
|
+
* Hex.isEqual('0xdeadbeef', '0xdeadbeef')
|
|
239
|
+
* // @log: true
|
|
240
|
+
*
|
|
241
|
+
* Hex.isEqual('0xda', '0xba')
|
|
242
|
+
* // @log: false
|
|
243
|
+
* ```
|
|
244
|
+
*
|
|
245
|
+
* @param hexA - The first {@link ox#Hex.Hex} value.
|
|
246
|
+
* @param hexB - The second {@link ox#Hex.Hex} value.
|
|
247
|
+
* @returns `true` if the two {@link ox#Hex.Hex} values are equal, `false` otherwise.
|
|
248
|
+
*/
|
|
249
|
+
export function isEqual(hexA, hexB) {
|
|
250
|
+
return equalBytes(Bytes.fromHex(hexA), Bytes.fromHex(hexB));
|
|
251
|
+
}
|
|
252
|
+
/* v8 ignore next */
|
|
253
|
+
isEqual.parseError = (error) => error;
|
|
254
|
+
/**
|
|
255
|
+
* Pads a {@link ox#Hex.Hex} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```ts twoslash
|
|
259
|
+
* import { Hex } from 'ox'
|
|
260
|
+
*
|
|
261
|
+
* Hex.padLeft('0x1234', 4)
|
|
262
|
+
* // @log: '0x00001234'
|
|
263
|
+
* ```
|
|
264
|
+
*
|
|
265
|
+
* @param value - The {@link ox#Hex.Hex} value to pad.
|
|
266
|
+
* @param size - The size (in bytes) of the output hex value.
|
|
267
|
+
* @returns The padded {@link ox#Hex.Hex} value.
|
|
268
|
+
*/
|
|
269
|
+
export function padLeft(value, size) {
|
|
270
|
+
return internal.pad(value, { dir: 'left', size });
|
|
271
|
+
}
|
|
272
|
+
/* v8 ignore next */
|
|
273
|
+
padLeft.parseError = (error) => error;
|
|
274
|
+
/**
|
|
275
|
+
* Pads a {@link ox#Hex.Hex} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```ts
|
|
279
|
+
* import { Hex } from 'ox'
|
|
280
|
+
*
|
|
281
|
+
* Hex.padRight('0x1234', 4)
|
|
282
|
+
* // @log: '0x12340000'
|
|
283
|
+
* ```
|
|
284
|
+
*
|
|
285
|
+
* @param value - The {@link ox#Hex.Hex} value to pad.
|
|
286
|
+
* @param size - The size (in bytes) of the output hex value.
|
|
287
|
+
* @returns The padded {@link ox#Hex.Hex} value.
|
|
288
|
+
*/
|
|
289
|
+
export function padRight(value, size) {
|
|
290
|
+
return internal.pad(value, { dir: 'right', size });
|
|
291
|
+
}
|
|
292
|
+
/* v8 ignore next */
|
|
293
|
+
padRight.parseError = (error) => error;
|
|
294
|
+
/**
|
|
295
|
+
* Generates a random {@link ox#Hex.Hex} value of the specified length.
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```ts twoslash
|
|
299
|
+
* import { Hex } from 'ox'
|
|
300
|
+
*
|
|
301
|
+
* const hex = Hex.random(32)
|
|
302
|
+
* // @log: '0x...'
|
|
303
|
+
* ```
|
|
304
|
+
*
|
|
305
|
+
* @returns Random {@link ox#Hex.Hex} value.
|
|
306
|
+
*/
|
|
307
|
+
export function random(length) {
|
|
308
|
+
return fromBytes(Bytes.random(length));
|
|
309
|
+
}
|
|
310
|
+
/* v8 ignore next */
|
|
311
|
+
random.parseError = (error) => error;
|
|
312
|
+
/**
|
|
313
|
+
* Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* ```ts twoslash
|
|
317
|
+
* import { Hex } from 'ox'
|
|
318
|
+
*
|
|
319
|
+
* Hex.slice('0x0123456789', 1, 4)
|
|
320
|
+
* // @log: '0x234567'
|
|
321
|
+
* ```
|
|
322
|
+
*
|
|
323
|
+
* @param value - The {@link ox#Hex.Hex} value to slice.
|
|
324
|
+
* @param start - The start offset (in bytes).
|
|
325
|
+
* @param end - The end offset (in bytes).
|
|
326
|
+
* @param options - Options.
|
|
327
|
+
* @returns The sliced {@link ox#Hex.Hex} value.
|
|
328
|
+
*/
|
|
329
|
+
export function slice(value, start, end, options = {}) {
|
|
330
|
+
const { strict } = options;
|
|
331
|
+
internal.assertStartOffset(value, start);
|
|
332
|
+
const value_ = `0x${value
|
|
333
|
+
.replace('0x', '')
|
|
334
|
+
.slice((start ?? 0) * 2, (end ?? value.length) * 2)}`;
|
|
335
|
+
if (strict)
|
|
336
|
+
internal.assertEndOffset(value_, start, end);
|
|
337
|
+
return value_;
|
|
338
|
+
}
|
|
339
|
+
/* v8 ignore next */
|
|
340
|
+
slice.parseError = (error) => error;
|
|
341
|
+
/**
|
|
342
|
+
* Retrieves the size of a {@link ox#Hex.Hex} value (in bytes).
|
|
343
|
+
*
|
|
344
|
+
* @example
|
|
345
|
+
* ```ts twoslash
|
|
346
|
+
* import { Hex } from 'ox'
|
|
347
|
+
*
|
|
348
|
+
* Hex.size('0xdeadbeef')
|
|
349
|
+
* // @log: 4
|
|
350
|
+
* ```
|
|
351
|
+
*
|
|
352
|
+
* @param value - The {@link ox#Hex.Hex} value to get the size of.
|
|
353
|
+
* @returns The size of the {@link ox#Hex.Hex} value (in bytes).
|
|
354
|
+
*/
|
|
355
|
+
export function size(value) {
|
|
356
|
+
return Math.ceil((value.length - 2) / 2);
|
|
357
|
+
}
|
|
358
|
+
/* v8 ignore next */
|
|
359
|
+
size.parseError = (error) => error;
|
|
360
|
+
/**
|
|
361
|
+
* Trims leading zeros from a {@link ox#Hex.Hex} value.
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* ```ts twoslash
|
|
365
|
+
* import { Hex } from 'ox'
|
|
366
|
+
*
|
|
367
|
+
* Hex.trimLeft('0x00000000deadbeef')
|
|
368
|
+
* // @log: '0xdeadbeef'
|
|
369
|
+
* ```
|
|
370
|
+
*
|
|
371
|
+
* @param value - The {@link ox#Hex.Hex} value to trim.
|
|
372
|
+
* @returns The trimmed {@link ox#Hex.Hex} value.
|
|
373
|
+
*/
|
|
374
|
+
export function trimLeft(value) {
|
|
375
|
+
return internal.trim(value, { dir: 'left' });
|
|
376
|
+
}
|
|
377
|
+
/* v8 ignore next */
|
|
378
|
+
trimLeft.parseError = (error) => error;
|
|
379
|
+
/**
|
|
380
|
+
* Trims trailing zeros from a {@link ox#Hex.Hex} value.
|
|
381
|
+
*
|
|
382
|
+
* @example
|
|
383
|
+
* ```ts twoslash
|
|
384
|
+
* import { Hex } from 'ox'
|
|
385
|
+
*
|
|
386
|
+
* Hex.trimRight('0xdeadbeef00000000')
|
|
387
|
+
* // @log: '0xdeadbeef'
|
|
388
|
+
* ```
|
|
389
|
+
*
|
|
390
|
+
* @param value - The {@link ox#Hex.Hex} value to trim.
|
|
391
|
+
* @returns The trimmed {@link ox#Hex.Hex} value.
|
|
392
|
+
*/
|
|
393
|
+
export function trimRight(value) {
|
|
394
|
+
return internal.trim(value, { dir: 'right' });
|
|
395
|
+
}
|
|
396
|
+
/* v8 ignore next */
|
|
397
|
+
trimRight.parseError = (error) => error;
|
|
398
|
+
/**
|
|
399
|
+
* Decodes a {@link ox#Hex.Hex} value into a BigInt.
|
|
400
|
+
*
|
|
401
|
+
* @example
|
|
402
|
+
* ```ts twoslash
|
|
403
|
+
* import { Hex } from 'ox'
|
|
404
|
+
*
|
|
405
|
+
* Hex.toBigInt('0x1a4')
|
|
406
|
+
* // @log: 420n
|
|
407
|
+
*
|
|
408
|
+
* Hex.toBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })
|
|
409
|
+
* // @log: 420n
|
|
410
|
+
* ```
|
|
411
|
+
*
|
|
412
|
+
* @param hex - The {@link ox#Hex.Hex} value to decode.
|
|
413
|
+
* @param options - Options.
|
|
414
|
+
* @returns The decoded BigInt.
|
|
415
|
+
*/
|
|
416
|
+
export function toBigInt(hex, options = {}) {
|
|
417
|
+
const { signed } = options;
|
|
418
|
+
if (options.size)
|
|
419
|
+
internal.assertSize(hex, options.size);
|
|
420
|
+
const value = BigInt(hex);
|
|
421
|
+
if (!signed)
|
|
422
|
+
return value;
|
|
423
|
+
const size = (hex.length - 2) / 2;
|
|
424
|
+
const max_unsigned = (1n << (BigInt(size) * 8n)) - 1n;
|
|
425
|
+
const max_signed = max_unsigned >> 1n;
|
|
426
|
+
if (value <= max_signed)
|
|
427
|
+
return value;
|
|
428
|
+
return value - max_unsigned - 1n;
|
|
429
|
+
}
|
|
430
|
+
/* v8 ignore next */
|
|
431
|
+
toBigInt.parseError = (error) => error;
|
|
432
|
+
/**
|
|
433
|
+
* Decodes a {@link ox#Hex.Hex} value into a boolean.
|
|
434
|
+
*
|
|
435
|
+
* @example
|
|
436
|
+
* ```ts twoslash
|
|
437
|
+
* import { Hex } from 'ox'
|
|
438
|
+
*
|
|
439
|
+
* Hex.toBoolean('0x01')
|
|
440
|
+
* // @log: true
|
|
441
|
+
*
|
|
442
|
+
* Hex.toBoolean('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })
|
|
443
|
+
* // @log: true
|
|
444
|
+
* ```
|
|
445
|
+
*
|
|
446
|
+
* @param hex - The {@link ox#Hex.Hex} value to decode.
|
|
447
|
+
* @param options - Options.
|
|
448
|
+
* @returns The decoded boolean.
|
|
449
|
+
*/
|
|
450
|
+
export function toBoolean(hex, options = {}) {
|
|
451
|
+
let hex_ = hex;
|
|
452
|
+
if (options.size) {
|
|
453
|
+
internal.assertSize(hex, options.size);
|
|
454
|
+
hex_ = trimLeft(hex_);
|
|
455
|
+
}
|
|
456
|
+
if (trimLeft(hex_) === '0x00')
|
|
457
|
+
return false;
|
|
458
|
+
if (trimLeft(hex_) === '0x01')
|
|
459
|
+
return true;
|
|
460
|
+
throw new InvalidHexBooleanError(hex_);
|
|
461
|
+
}
|
|
462
|
+
/* v8 ignore next */
|
|
463
|
+
toBoolean.parseError = (error) => error;
|
|
464
|
+
/**
|
|
465
|
+
* Decodes a {@link ox#Hex.Hex} value into a {@link ox#Bytes.Bytes}.
|
|
466
|
+
*
|
|
467
|
+
* @example
|
|
468
|
+
* ```ts twoslash
|
|
469
|
+
* import { Hex } from 'ox'
|
|
470
|
+
*
|
|
471
|
+
* const data = Hex.toBytes('0x48656c6c6f20776f726c6421')
|
|
472
|
+
* // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
|
|
473
|
+
* ```
|
|
474
|
+
*
|
|
475
|
+
* @param hex - The {@link ox#Hex.Hex} value to decode.
|
|
476
|
+
* @param options - Options.
|
|
477
|
+
* @returns The decoded {@link ox#Bytes.Bytes}.
|
|
478
|
+
*/
|
|
479
|
+
export function toBytes(hex, options = {}) {
|
|
480
|
+
return Bytes.fromHex(hex, options);
|
|
481
|
+
}
|
|
482
|
+
/* v8 ignore next */
|
|
483
|
+
toBytes.parseError = (error) => error;
|
|
484
|
+
/**
|
|
485
|
+
* Decodes a {@link ox#Hex.Hex} value into a number.
|
|
486
|
+
*
|
|
487
|
+
* @example
|
|
488
|
+
* ```ts twoslash
|
|
489
|
+
* import { Hex } from 'ox'
|
|
490
|
+
*
|
|
491
|
+
* Hex.toNumber('0x1a4')
|
|
492
|
+
* // @log: 420
|
|
493
|
+
*
|
|
494
|
+
* Hex.toNumber('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })
|
|
495
|
+
* // @log: 420
|
|
496
|
+
* ```
|
|
497
|
+
*
|
|
498
|
+
* @param hex - The {@link ox#Hex.Hex} value to decode.
|
|
499
|
+
* @param options - Options.
|
|
500
|
+
* @returns The decoded number.
|
|
501
|
+
*/
|
|
502
|
+
export function toNumber(hex, options = {}) {
|
|
503
|
+
const { signed, size } = options;
|
|
504
|
+
if (!signed && !size)
|
|
505
|
+
return Number(hex);
|
|
506
|
+
return Number(toBigInt(hex, options));
|
|
507
|
+
}
|
|
508
|
+
/* v8 ignore next */
|
|
509
|
+
toNumber.parseError = (error) => error;
|
|
510
|
+
/**
|
|
511
|
+
* Decodes a {@link ox#Hex.Hex} value into a string.
|
|
512
|
+
*
|
|
513
|
+
* @example
|
|
514
|
+
* ```ts twoslash
|
|
515
|
+
* import { Hex } from 'ox'
|
|
516
|
+
*
|
|
517
|
+
* Hex.toString('0x48656c6c6f20576f726c6421')
|
|
518
|
+
* // @log: 'Hello world!'
|
|
519
|
+
*
|
|
520
|
+
* Hex.toString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {
|
|
521
|
+
* size: 32,
|
|
522
|
+
* })
|
|
523
|
+
* // @log: 'Hello world'
|
|
524
|
+
* ```
|
|
525
|
+
*
|
|
526
|
+
* @param hex - The {@link ox#Hex.Hex} value to decode.
|
|
527
|
+
* @param options - Options.
|
|
528
|
+
* @returns The decoded string.
|
|
529
|
+
*/
|
|
530
|
+
export function toString(hex, options = {}) {
|
|
531
|
+
const { size } = options;
|
|
532
|
+
let bytes = Bytes.fromHex(hex);
|
|
533
|
+
if (size) {
|
|
534
|
+
internal_bytes.assertSize(bytes, size);
|
|
535
|
+
bytes = Bytes.trimRight(bytes);
|
|
536
|
+
}
|
|
537
|
+
return new TextDecoder().decode(bytes);
|
|
538
|
+
}
|
|
539
|
+
/* v8 ignore next */
|
|
540
|
+
toString.parseError = (error) => error;
|
|
541
|
+
/**
|
|
542
|
+
* Checks if the given value is {@link ox#Hex.Hex}.
|
|
543
|
+
*
|
|
544
|
+
* @example
|
|
545
|
+
* ```ts twoslash
|
|
546
|
+
* import { Bytes, Hex } from 'ox'
|
|
547
|
+
*
|
|
548
|
+
* Hex.validate('0xdeadbeef')
|
|
549
|
+
* // @log: true
|
|
550
|
+
*
|
|
551
|
+
* Hex.validate(Bytes.from([1, 2, 3]))
|
|
552
|
+
* // @log: false
|
|
553
|
+
* ```
|
|
554
|
+
*
|
|
555
|
+
* @param value - The value to check.
|
|
556
|
+
* @param options - Options.
|
|
557
|
+
* @returns `true` if the value is a {@link ox#Hex.Hex}, `false` otherwise.
|
|
558
|
+
*/
|
|
559
|
+
export function validate(value, options = {}) {
|
|
560
|
+
const { strict = false } = options;
|
|
561
|
+
try {
|
|
562
|
+
assert(value, { strict });
|
|
563
|
+
return true;
|
|
564
|
+
}
|
|
565
|
+
catch {
|
|
566
|
+
return false;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
/* v8 ignore next */
|
|
570
|
+
validate.parseError = (error) => error;
|
|
571
|
+
/**
|
|
572
|
+
* Thrown when the provided integer is out of range, and cannot be represented as a hex value.
|
|
573
|
+
*
|
|
574
|
+
* @example
|
|
575
|
+
* ```ts twoslash
|
|
576
|
+
* import { Hex } from 'ox'
|
|
577
|
+
*
|
|
578
|
+
* Hex.fromNumber(420182738912731283712937129)
|
|
579
|
+
* // @error: Hex.IntegerOutOfRangeError: Number \`4.2018273891273126e+26\` is not in safe unsigned integer range (`0` to `9007199254740991`)
|
|
580
|
+
* ```
|
|
581
|
+
*/
|
|
582
|
+
export class IntegerOutOfRangeError extends Errors.BaseError {
|
|
583
|
+
constructor({ max, min, signed, size, value, }) {
|
|
584
|
+
super(`Number \`${value}\` is not in safe${size ? ` ${size * 8}-bit` : ''}${signed ? ' signed' : ' unsigned'} integer range ${max ? `(\`${min}\` to \`${max}\`)` : `(above \`${min}\`)`}`);
|
|
585
|
+
Object.defineProperty(this, "name", {
|
|
586
|
+
enumerable: true,
|
|
587
|
+
configurable: true,
|
|
588
|
+
writable: true,
|
|
589
|
+
value: 'Hex.IntegerOutOfRangeError'
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Thrown when the provided hex value cannot be represented as a boolean.
|
|
595
|
+
*
|
|
596
|
+
* @example
|
|
597
|
+
* ```ts twoslash
|
|
598
|
+
* import { Hex } from 'ox'
|
|
599
|
+
*
|
|
600
|
+
* Hex.toBoolean('0xa')
|
|
601
|
+
* // @error: Hex.InvalidHexBooleanError: Hex value `"0xa"` is not a valid boolean.
|
|
602
|
+
* // @error: The hex value must be `"0x0"` (false) or `"0x1"` (true).
|
|
603
|
+
* ```
|
|
604
|
+
*/
|
|
605
|
+
export class InvalidHexBooleanError extends Errors.BaseError {
|
|
606
|
+
constructor(hex) {
|
|
607
|
+
super(`Hex value \`"${hex}"\` is not a valid boolean.`, {
|
|
608
|
+
metaMessages: [
|
|
609
|
+
'The hex value must be `"0x0"` (false) or `"0x1"` (true).',
|
|
610
|
+
],
|
|
611
|
+
});
|
|
612
|
+
Object.defineProperty(this, "name", {
|
|
613
|
+
enumerable: true,
|
|
614
|
+
configurable: true,
|
|
615
|
+
writable: true,
|
|
616
|
+
value: 'Hex.InvalidHexBooleanError'
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Thrown when the provided value is not a valid hex type.
|
|
622
|
+
*
|
|
623
|
+
* @example
|
|
624
|
+
* ```ts twoslash
|
|
625
|
+
* import { Hex } from 'ox'
|
|
626
|
+
*
|
|
627
|
+
* Hex.assert(1)
|
|
628
|
+
* // @error: Hex.InvalidHexTypeError: Value `1` of type `number` is an invalid hex type.
|
|
629
|
+
* ```
|
|
630
|
+
*/
|
|
631
|
+
export class InvalidHexTypeError extends Errors.BaseError {
|
|
632
|
+
constructor(value) {
|
|
633
|
+
super(`Value \`${typeof value === 'object' ? Json.stringify(value) : value}\` of type \`${typeof value}\` is an invalid hex type.`, {
|
|
634
|
+
metaMessages: ['Hex types must be represented as `"0x${string}"`.'],
|
|
635
|
+
});
|
|
636
|
+
Object.defineProperty(this, "name", {
|
|
637
|
+
enumerable: true,
|
|
638
|
+
configurable: true,
|
|
639
|
+
writable: true,
|
|
640
|
+
value: 'Hex.InvalidHexTypeError'
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
/**
|
|
645
|
+
* Thrown when the provided hex value is invalid.
|
|
646
|
+
*
|
|
647
|
+
* @example
|
|
648
|
+
* ```ts twoslash
|
|
649
|
+
* import { Hex } from 'ox'
|
|
650
|
+
*
|
|
651
|
+
* Hex.assert('0x0123456789abcdefg')
|
|
652
|
+
* // @error: Hex.InvalidHexValueError: Value `0x0123456789abcdefg` is an invalid hex value.
|
|
653
|
+
* // @error: Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).
|
|
654
|
+
* ```
|
|
655
|
+
*/
|
|
656
|
+
export class InvalidHexValueError extends Errors.BaseError {
|
|
657
|
+
constructor(value) {
|
|
658
|
+
super(`Value \`${value}\` is an invalid hex value.`, {
|
|
659
|
+
metaMessages: [
|
|
660
|
+
'Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).',
|
|
661
|
+
],
|
|
662
|
+
});
|
|
663
|
+
Object.defineProperty(this, "name", {
|
|
664
|
+
enumerable: true,
|
|
665
|
+
configurable: true,
|
|
666
|
+
writable: true,
|
|
667
|
+
value: 'Hex.InvalidHexValueError'
|
|
668
|
+
});
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* Thrown when the provided hex value is an odd length.
|
|
673
|
+
*
|
|
674
|
+
* @example
|
|
675
|
+
* ```ts twoslash
|
|
676
|
+
* import { Bytes } from 'ox'
|
|
677
|
+
*
|
|
678
|
+
* Bytes.fromHex('0xabcde')
|
|
679
|
+
* // @error: Hex.InvalidLengthError: Hex value `"0xabcde"` is an odd length (5 nibbles).
|
|
680
|
+
* ```
|
|
681
|
+
*/
|
|
682
|
+
export class InvalidLengthError extends Errors.BaseError {
|
|
683
|
+
constructor(value) {
|
|
684
|
+
super(`Hex value \`"${value}"\` is an odd length (${value.length - 2} nibbles).`, {
|
|
685
|
+
metaMessages: ['It must be an even length.'],
|
|
686
|
+
});
|
|
687
|
+
Object.defineProperty(this, "name", {
|
|
688
|
+
enumerable: true,
|
|
689
|
+
configurable: true,
|
|
690
|
+
writable: true,
|
|
691
|
+
value: 'Hex.InvalidLengthError'
|
|
692
|
+
});
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Thrown when the size of the value exceeds the expected max size.
|
|
697
|
+
*
|
|
698
|
+
* @example
|
|
699
|
+
* ```ts twoslash
|
|
700
|
+
* import { Hex } from 'ox'
|
|
701
|
+
*
|
|
702
|
+
* Hex.fromString('Hello World!', { size: 8 })
|
|
703
|
+
* // @error: Hex.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.
|
|
704
|
+
* ```
|
|
705
|
+
*/
|
|
706
|
+
export class SizeOverflowError extends Errors.BaseError {
|
|
707
|
+
constructor({ givenSize, maxSize }) {
|
|
708
|
+
super(`Size cannot exceed \`${maxSize}\` bytes. Given size: \`${givenSize}\` bytes.`);
|
|
709
|
+
Object.defineProperty(this, "name", {
|
|
710
|
+
enumerable: true,
|
|
711
|
+
configurable: true,
|
|
712
|
+
writable: true,
|
|
713
|
+
value: 'Hex.SizeOverflowError'
|
|
714
|
+
});
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
/**
|
|
718
|
+
* Thrown when the slice offset exceeds the bounds of the value.
|
|
719
|
+
*
|
|
720
|
+
* @example
|
|
721
|
+
* ```ts twoslash
|
|
722
|
+
* import { Hex } from 'ox'
|
|
723
|
+
*
|
|
724
|
+
* Hex.slice('0x0123456789', 6)
|
|
725
|
+
* // @error: Hex.SliceOffsetOutOfBoundsError: Slice starting at offset `6` is out-of-bounds (size: `5`).
|
|
726
|
+
* ```
|
|
727
|
+
*/
|
|
728
|
+
export class SliceOffsetOutOfBoundsError extends Errors.BaseError {
|
|
729
|
+
constructor({ offset, position, size, }) {
|
|
730
|
+
super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \`${offset}\` is out-of-bounds (size: \`${size}\`).`);
|
|
731
|
+
Object.defineProperty(this, "name", {
|
|
732
|
+
enumerable: true,
|
|
733
|
+
configurable: true,
|
|
734
|
+
writable: true,
|
|
735
|
+
value: 'Hex.SliceOffsetOutOfBoundsError'
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* Thrown when the size of the value exceeds the pad size.
|
|
741
|
+
*
|
|
742
|
+
* @example
|
|
743
|
+
* ```ts twoslash
|
|
744
|
+
* import { Hex } from 'ox'
|
|
745
|
+
*
|
|
746
|
+
* Hex.padLeft('0x1a4e12a45a21323123aaa87a897a897a898a6567a578a867a98778a667a85a875a87a6a787a65a675a6a9', 32)
|
|
747
|
+
* // @error: Hex.SizeExceedsPaddingSizeError: Hex size (`43`) exceeds padding size (`32`).
|
|
748
|
+
* ```
|
|
749
|
+
*/
|
|
750
|
+
export class SizeExceedsPaddingSizeError extends Errors.BaseError {
|
|
751
|
+
constructor({ size, targetSize, type, }) {
|
|
752
|
+
super(`${type.charAt(0).toUpperCase()}${type
|
|
753
|
+
.slice(1)
|
|
754
|
+
.toLowerCase()} size (\`${size}\`) exceeds padding size (\`${targetSize}\`).`);
|
|
755
|
+
Object.defineProperty(this, "name", {
|
|
756
|
+
enumerable: true,
|
|
757
|
+
configurable: true,
|
|
758
|
+
writable: true,
|
|
759
|
+
value: 'Hex.SizeExceedsPaddingSizeError'
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
//# sourceMappingURL=Hex.js.map
|