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/P256.ts
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { secp256r1 } from '@noble/curves/p256'
|
|
2
|
+
import * as Bytes from './Bytes.js'
|
|
3
|
+
import type * as Errors from './Errors.js'
|
|
4
|
+
import * as Hex from './Hex.js'
|
|
5
|
+
import * as PublicKey from './PublicKey.js'
|
|
6
|
+
import type * as Signature from './Signature.js'
|
|
7
|
+
|
|
8
|
+
/** Re-export of noble/curves P256 utilities. */
|
|
9
|
+
export const noble = secp256r1
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Computes the P256 ECDSA public key from a provided private key.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts twoslash
|
|
16
|
+
* import { P256 } from 'ox'
|
|
17
|
+
*
|
|
18
|
+
* const publicKey = P256.getPublicKey({ privateKey: '0x...' })
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param options - The options to compute the public key.
|
|
22
|
+
* @returns The computed public key.
|
|
23
|
+
*/
|
|
24
|
+
export function getPublicKey(
|
|
25
|
+
options: getPublicKey.Options,
|
|
26
|
+
): PublicKey.PublicKey {
|
|
27
|
+
const { privateKey } = options
|
|
28
|
+
const point = secp256r1.ProjectivePoint.fromPrivateKey(
|
|
29
|
+
typeof privateKey === 'string'
|
|
30
|
+
? privateKey.slice(2)
|
|
31
|
+
: Hex.fromBytes(privateKey).slice(2),
|
|
32
|
+
)
|
|
33
|
+
return PublicKey.from(point)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export declare namespace getPublicKey {
|
|
37
|
+
type Options = {
|
|
38
|
+
/**
|
|
39
|
+
* Private key to compute the public key from.
|
|
40
|
+
*/
|
|
41
|
+
privateKey: Hex.Hex | Bytes.Bytes
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
type ErrorType = Errors.GlobalErrorType
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Generates a random P256 ECDSA private key.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts twoslash
|
|
52
|
+
* import { P256 } from 'ox'
|
|
53
|
+
*
|
|
54
|
+
* const privateKey = P256.randomPrivateKey()
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @param options - The options to generate the private key.
|
|
58
|
+
* @returns The generated private key.
|
|
59
|
+
*/
|
|
60
|
+
export function randomPrivateKey<as extends 'Hex' | 'Bytes' = 'Hex'>(
|
|
61
|
+
options: randomPrivateKey.Options<as> = {},
|
|
62
|
+
): randomPrivateKey.ReturnType<as> {
|
|
63
|
+
const { as = 'Hex' } = options
|
|
64
|
+
const bytes = secp256r1.utils.randomPrivateKey()
|
|
65
|
+
if (as === 'Hex') return Hex.fromBytes(bytes) as never
|
|
66
|
+
return bytes as never
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export declare namespace randomPrivateKey {
|
|
70
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
71
|
+
/**
|
|
72
|
+
* Format of the returned private key.
|
|
73
|
+
* @default 'Hex'
|
|
74
|
+
*/
|
|
75
|
+
as?: as | 'Hex' | 'Bytes' | undefined
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> =
|
|
79
|
+
| (as extends 'Bytes' ? Bytes.Bytes : never)
|
|
80
|
+
| (as extends 'Hex' ? Hex.Hex : never)
|
|
81
|
+
|
|
82
|
+
type ErrorType = Hex.fromBytes.ErrorType | Errors.GlobalErrorType
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Recovers the signing public key from the signed payload and signature.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts twoslash
|
|
90
|
+
* import { P256 } from 'ox'
|
|
91
|
+
*
|
|
92
|
+
* const signature = P256.sign({ payload: '0xdeadbeef', privateKey: '0x...' })
|
|
93
|
+
*
|
|
94
|
+
* const publicKey = P256.recoverPublicKey({ // [!code focus]
|
|
95
|
+
* payload: '0xdeadbeef', // [!code focus]
|
|
96
|
+
* signature, // [!code focus]
|
|
97
|
+
* }) // [!code focus]
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @param options - The recovery options.
|
|
101
|
+
* @returns The recovered public key.
|
|
102
|
+
*/
|
|
103
|
+
export function recoverPublicKey(
|
|
104
|
+
options: recoverPublicKey.Options,
|
|
105
|
+
): PublicKey.PublicKey {
|
|
106
|
+
const { payload, signature } = options
|
|
107
|
+
const { r, s, yParity } = signature
|
|
108
|
+
const signature_ = new secp256r1.Signature(
|
|
109
|
+
BigInt(r),
|
|
110
|
+
BigInt(s),
|
|
111
|
+
).addRecoveryBit(yParity)
|
|
112
|
+
const payload_ =
|
|
113
|
+
payload instanceof Uint8Array ? Hex.fromBytes(payload) : payload
|
|
114
|
+
const point = signature_.recoverPublicKey(payload_.substring(2))
|
|
115
|
+
return PublicKey.from(point)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export declare namespace recoverPublicKey {
|
|
119
|
+
type Options = {
|
|
120
|
+
/** Payload that was signed. */
|
|
121
|
+
payload: Hex.Hex | Bytes.Bytes
|
|
122
|
+
/** Signature of the payload. */
|
|
123
|
+
signature: Signature.Signature
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
type ErrorType =
|
|
127
|
+
| PublicKey.from.ErrorType
|
|
128
|
+
| Hex.fromBytes.ErrorType
|
|
129
|
+
| Errors.GlobalErrorType
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
recoverPublicKey.parseError = (error: unknown) =>
|
|
133
|
+
/* v8 ignore next */
|
|
134
|
+
error as recoverPublicKey.ErrorType
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Signs the payload with the provided private key and returns a P256 signature.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts twoslash
|
|
141
|
+
* import { P256 } from 'ox'
|
|
142
|
+
*
|
|
143
|
+
* const signature = P256.sign({ // [!code focus]
|
|
144
|
+
* payload: '0xdeadbeef', // [!code focus]
|
|
145
|
+
* privateKey: '0x...' // [!code focus]
|
|
146
|
+
* }) // [!code focus]
|
|
147
|
+
* ```
|
|
148
|
+
*
|
|
149
|
+
* @param options - The signing options.
|
|
150
|
+
* @returns The ECDSA {@link ox#Signature.Signature}.
|
|
151
|
+
*/
|
|
152
|
+
export function sign(options: sign.Options): Signature.Signature {
|
|
153
|
+
const { hash, payload, privateKey } = options
|
|
154
|
+
const { r, s, recovery } = secp256r1.sign(
|
|
155
|
+
payload instanceof Uint8Array ? payload : Bytes.fromHex(payload),
|
|
156
|
+
privateKey instanceof Uint8Array ? privateKey : Bytes.fromHex(privateKey),
|
|
157
|
+
...(hash ? [{ prehash: true, lowS: true }] : []),
|
|
158
|
+
)
|
|
159
|
+
return {
|
|
160
|
+
r,
|
|
161
|
+
s,
|
|
162
|
+
yParity: recovery,
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export declare namespace sign {
|
|
167
|
+
type Options = {
|
|
168
|
+
/** If set to `true`, the payload will be hashed (sha256) before being signed. */
|
|
169
|
+
hash?: boolean | undefined
|
|
170
|
+
/** Payload to sign. */
|
|
171
|
+
payload: Hex.Hex | Bytes.Bytes
|
|
172
|
+
/** ECDSA private key. */
|
|
173
|
+
privateKey: Hex.Hex | Bytes.Bytes
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
type ErrorType = Bytes.fromHex.ErrorType | Errors.GlobalErrorType
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* v8 ignore next */
|
|
180
|
+
sign.parseError = (error: unknown) => error as sign.ErrorType
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Verifies a payload was signed by the provided public key.
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
*
|
|
187
|
+
* ```ts twoslash
|
|
188
|
+
* import { P256 } from 'ox'
|
|
189
|
+
*
|
|
190
|
+
* const privateKey = P256.randomPrivateKey()
|
|
191
|
+
* const publicKey = P256.getPublicKey({ privateKey })
|
|
192
|
+
* const signature = P256.sign({ payload: '0xdeadbeef', privateKey })
|
|
193
|
+
*
|
|
194
|
+
* const verified = P256.verify({ // [!code focus]
|
|
195
|
+
* publicKey, // [!code focus]
|
|
196
|
+
* payload: '0xdeadbeef', // [!code focus]
|
|
197
|
+
* signature, // [!code focus]
|
|
198
|
+
* }) // [!code focus]
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* @param options - The verification options.
|
|
202
|
+
* @returns Whether the payload was signed by the provided public key.
|
|
203
|
+
*/
|
|
204
|
+
export function verify(options: verify.Options): boolean {
|
|
205
|
+
const { hash, payload, publicKey, signature } = options
|
|
206
|
+
return secp256r1.verify(
|
|
207
|
+
signature,
|
|
208
|
+
payload instanceof Uint8Array ? payload : Bytes.fromHex(payload),
|
|
209
|
+
PublicKey.toHex(publicKey).substring(2),
|
|
210
|
+
...(hash ? [{ prehash: true, lowS: true }] : []),
|
|
211
|
+
)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export declare namespace verify {
|
|
215
|
+
type Options = {
|
|
216
|
+
/** If set to `true`, the payload will be hashed (sha256) before being verified. */
|
|
217
|
+
hash?: boolean | undefined
|
|
218
|
+
/** Payload that was signed. */
|
|
219
|
+
payload: Hex.Hex | Bytes.Bytes
|
|
220
|
+
/** Public key that signed the payload. */
|
|
221
|
+
publicKey: PublicKey.PublicKey<boolean>
|
|
222
|
+
/** Signature of the payload. */
|
|
223
|
+
signature: Signature.Signature<boolean>
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
type ErrorType = Errors.GlobalErrorType
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* v8 ignore next */
|
|
230
|
+
verify.parseError = (error: unknown) => error as verify.ErrorType
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type * as Bytes from './Bytes.js'
|
|
2
|
+
import type * as Errors from './Errors.js'
|
|
3
|
+
import * as Hash from './Hash.js'
|
|
4
|
+
import * as Hex from './Hex.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Encodes a personal sign message in [ERC-191 format](https://eips.ethereum.org/EIPS/eip-191#version-0x45-e): `0x19 ‖ "Ethereum Signed Message:\n" + message.length ‖ message`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts twoslash
|
|
11
|
+
* import { Hex, PersonalMessage } from 'ox'
|
|
12
|
+
*
|
|
13
|
+
* const data = PersonalMessage.encode(Hex.fromString('hello world'))
|
|
14
|
+
* // @log: '0x19457468657265756d205369676e6564204d6573736167653a0a313168656c6c6f20776f726c64'
|
|
15
|
+
* // @log: (0x19 ‖ 'Ethereum Signed Message:\n11' ‖ 'hello world')
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param data - The data to encode.
|
|
19
|
+
* @returns The encoded personal sign message.
|
|
20
|
+
*/
|
|
21
|
+
export function encode(data: Hex.Hex | Bytes.Bytes): Hex.Hex {
|
|
22
|
+
const message = Hex.from(data)
|
|
23
|
+
return Hex.concat(
|
|
24
|
+
// Personal Sign Format: `0x19 ‖ "Ethereum Signed Message:\n" ‖ message.length ‖ message`
|
|
25
|
+
'0x19',
|
|
26
|
+
Hex.fromString('Ethereum Signed Message:\n' + Hex.size(message)),
|
|
27
|
+
message,
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export declare namespace encode {
|
|
32
|
+
type ErrorType =
|
|
33
|
+
| Hex.concat.ErrorType
|
|
34
|
+
| Hex.from.ErrorType
|
|
35
|
+
| Hex.fromString.ErrorType
|
|
36
|
+
| Errors.GlobalErrorType
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* v8 ignore next */
|
|
40
|
+
encode.parseError = (error: unknown) => error as encode.ErrorType
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Gets the payload to use for signing an [ERC-191 formatted](https://eips.ethereum.org/EIPS/eip-191#version-0x45-e) personal message.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts twoslash
|
|
47
|
+
* import { Hex, PersonalMessage, Secp256k1 } from 'ox'
|
|
48
|
+
*
|
|
49
|
+
* const payload = PersonalMessage.getSignPayload(Hex.fromString('hello world')) // [!code focus]
|
|
50
|
+
*
|
|
51
|
+
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @param data - The data to get the sign payload for.
|
|
55
|
+
* @returns The payload to use for signing.
|
|
56
|
+
*/
|
|
57
|
+
export function getSignPayload(data: Hex.Hex | Bytes.Bytes): Hex.Hex {
|
|
58
|
+
return Hash.keccak256(encode(data))
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export declare namespace getSignPayload {
|
|
62
|
+
type ErrorType =
|
|
63
|
+
| Hash.keccak256.ErrorType
|
|
64
|
+
| encode.ErrorType
|
|
65
|
+
| Errors.GlobalErrorType
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* v8 ignore next */
|
|
69
|
+
getSignPayload.parseError = (error: unknown) =>
|
|
70
|
+
error as getSignPayload.ErrorType
|
package/Provider.ts
ADDED
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3'
|
|
2
|
+
import type * as Address from './Address.js'
|
|
3
|
+
import * as Errors from './Errors.js'
|
|
4
|
+
import * as RpcResponse from './RpcResponse.js'
|
|
5
|
+
import type * as RpcSchema from './RpcSchema.js'
|
|
6
|
+
import type * as RpcSchema_internal from './internal/rpcSchema.js'
|
|
7
|
+
import type { Compute } from './internal/types.js'
|
|
8
|
+
|
|
9
|
+
/** Options for a {@link ox#Provider.Provider}. */
|
|
10
|
+
export type Options = {
|
|
11
|
+
/**
|
|
12
|
+
* Whether to include event functions (`on`, `removeListener`) on the Provider.
|
|
13
|
+
*
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
includeEvents?: boolean | undefined
|
|
17
|
+
/**
|
|
18
|
+
* RPC Schema to use for the Provider's `request` function.
|
|
19
|
+
* See {@link ox#RpcSchema.(from:function)} for more.
|
|
20
|
+
*
|
|
21
|
+
* @default `RpcSchema.Generic`
|
|
22
|
+
*/
|
|
23
|
+
schema?: RpcSchema.Generic | undefined
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Root type for an EIP-1193 Provider. */
|
|
27
|
+
export type Provider<
|
|
28
|
+
options extends Options | undefined = undefined,
|
|
29
|
+
///
|
|
30
|
+
_schema extends RpcSchema.Generic = options extends {
|
|
31
|
+
schema: infer schema extends RpcSchema.Generic
|
|
32
|
+
}
|
|
33
|
+
? schema
|
|
34
|
+
: RpcSchema.Default,
|
|
35
|
+
> = Compute<
|
|
36
|
+
{
|
|
37
|
+
request: RequestFn<_schema>
|
|
38
|
+
} & (options extends { includeEvents: true } | undefined
|
|
39
|
+
? {
|
|
40
|
+
on: EventListenerFn
|
|
41
|
+
removeListener: EventListenerFn
|
|
42
|
+
}
|
|
43
|
+
: {})
|
|
44
|
+
>
|
|
45
|
+
|
|
46
|
+
/** Type for an EIP-1193 Provider's event emitter. */
|
|
47
|
+
export type Emitter = Compute<EventEmitter<EventMap>>
|
|
48
|
+
|
|
49
|
+
/** EIP-1193 Provider's `request` function. */
|
|
50
|
+
export type RequestFn<schema extends RpcSchema.Generic = RpcSchema.Generic> = <
|
|
51
|
+
methodName extends RpcSchema.MethodNameGeneric,
|
|
52
|
+
>(
|
|
53
|
+
parameters: RpcSchema_internal.ExtractRequestOpaque<schema, methodName>,
|
|
54
|
+
) => Promise<RpcSchema.ExtractReturnType<schema, methodName>>
|
|
55
|
+
|
|
56
|
+
/** Type for an EIP-1193 Provider's event listener functions (`on`, `removeListener`, etc). */
|
|
57
|
+
export type EventListenerFn = <event extends keyof EventMap>(
|
|
58
|
+
event: event,
|
|
59
|
+
listener: EventMap[event],
|
|
60
|
+
) => void
|
|
61
|
+
|
|
62
|
+
export type ConnectInfo = {
|
|
63
|
+
chainId: string
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export type Message = {
|
|
67
|
+
type: string
|
|
68
|
+
data: unknown
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export class ProviderRpcError extends Error {
|
|
72
|
+
override readonly name = 'ProviderRpcError'
|
|
73
|
+
|
|
74
|
+
code: number
|
|
75
|
+
details: string
|
|
76
|
+
|
|
77
|
+
constructor(code: number, message: string) {
|
|
78
|
+
super(message)
|
|
79
|
+
this.code = code
|
|
80
|
+
this.details = message
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export type EventMap = {
|
|
85
|
+
accountsChanged: (accounts: Address.Address[]) => void
|
|
86
|
+
chainChanged: (chainId: string) => void
|
|
87
|
+
connect: (connectInfo: ConnectInfo) => void
|
|
88
|
+
disconnect: (error: ProviderRpcError) => void
|
|
89
|
+
message: (message: Message) => void
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Creates an EIP-1193 flavored event emitter to be injected onto a Provider.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts twoslash
|
|
97
|
+
* import { Provider, RpcRequest, RpcResponse } from 'ox' // [!code focus]
|
|
98
|
+
*
|
|
99
|
+
* // 1. Instantiate a Provider Emitter. // [!code focus]
|
|
100
|
+
* const emitter = Provider.createEmitter() // [!code focus]
|
|
101
|
+
*
|
|
102
|
+
* const store = RpcRequest.createStore()
|
|
103
|
+
*
|
|
104
|
+
* const provider = Provider.from({
|
|
105
|
+
* // 2. Pass the Emitter to the Provider. // [!code focus]
|
|
106
|
+
* ...emitter, // [!code focus]
|
|
107
|
+
* async request(args) {
|
|
108
|
+
* return await fetch('https://1.rpc.thirdweb.com', {
|
|
109
|
+
* body: JSON.stringify(store.prepare(args)),
|
|
110
|
+
* method: 'POST',
|
|
111
|
+
* headers: {
|
|
112
|
+
* 'Content-Type': 'application/json',
|
|
113
|
+
* },
|
|
114
|
+
* })
|
|
115
|
+
* .then((res) => res.json())
|
|
116
|
+
* .then(RpcResponse.parse)
|
|
117
|
+
* },
|
|
118
|
+
* })
|
|
119
|
+
*
|
|
120
|
+
* // 3. Emit Provider Events. // [!code focus]
|
|
121
|
+
* emitter.emit('accountsChanged', ['0x...']) // [!code focus]
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* @returns An event emitter.
|
|
125
|
+
*/
|
|
126
|
+
export function createEmitter(): Emitter {
|
|
127
|
+
const emitter = new EventEmitter<EventMap>()
|
|
128
|
+
|
|
129
|
+
return {
|
|
130
|
+
get eventNames() {
|
|
131
|
+
return emitter.eventNames.bind(emitter)
|
|
132
|
+
},
|
|
133
|
+
get listenerCount() {
|
|
134
|
+
return emitter.listenerCount.bind(emitter)
|
|
135
|
+
},
|
|
136
|
+
get listeners() {
|
|
137
|
+
return emitter.listeners.bind(emitter)
|
|
138
|
+
},
|
|
139
|
+
addListener: emitter.addListener.bind(emitter),
|
|
140
|
+
emit: emitter.emit.bind(emitter),
|
|
141
|
+
off: emitter.off.bind(emitter),
|
|
142
|
+
on: emitter.on.bind(emitter),
|
|
143
|
+
once: emitter.once.bind(emitter),
|
|
144
|
+
removeAllListeners: emitter.removeAllListeners.bind(emitter),
|
|
145
|
+
removeListener: emitter.removeListener.bind(emitter),
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export declare namespace createEmitter {
|
|
150
|
+
type ErrorType = Errors.GlobalErrorType
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
createEmitter.parseError = (error: unknown) =>
|
|
154
|
+
/* v8 ignore next */
|
|
155
|
+
error as createEmitter.ErrorType
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Instantiates an [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) {@link ox#Provider.Provider}
|
|
159
|
+
* from an arbitrary [EIP-1193 Provider](https://eips.ethereum.org/EIPS/eip-1193) interface.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ### Instantiating with RPC Transport
|
|
163
|
+
*
|
|
164
|
+
* Ox's {@link ox#RpcTransport} is EIP-1193 compliant, and can be used to instantiate an EIP-1193 Provider. This means you can use any HTTP RPC endpoint as an EIP-1193 Provider.
|
|
165
|
+
*
|
|
166
|
+
* ```ts twoslash
|
|
167
|
+
* import { Provider, RpcTransport } from 'ox'
|
|
168
|
+
*
|
|
169
|
+
* const transport = RpcTransport.fromHttp('https://1.rpc.thirdweb.com')
|
|
170
|
+
* const provider = Provider.from(transport)
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ### Instantiating with External Providers
|
|
175
|
+
*
|
|
176
|
+
* The example below demonstrates how we can instantiate a typed EIP-1193 Provider from an
|
|
177
|
+
* external EIP-1193 Provider like `window.ethereum`.
|
|
178
|
+
*
|
|
179
|
+
* ```ts twoslash
|
|
180
|
+
* import 'ox/window'
|
|
181
|
+
* import { Provider } from 'ox'
|
|
182
|
+
*
|
|
183
|
+
* const provider = Provider.from(window.ethereum)
|
|
184
|
+
*
|
|
185
|
+
* const blockNumber = await provider.request({ method: 'eth_blockNumber' })
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* :::tip
|
|
189
|
+
*
|
|
190
|
+
* There are also libraries that distribute EIP-1193 Provider objects that you can use with `Provider.from`:
|
|
191
|
+
*
|
|
192
|
+
* - [`@walletconnect/ethereum-provider`](https://www.npmjs.com/package/\@walletconnect/ethereum-provider)
|
|
193
|
+
*
|
|
194
|
+
* - [`@coinbase/wallet-sdk`](https://www.npmjs.com/package/\@coinbase/wallet-sdk)
|
|
195
|
+
*
|
|
196
|
+
* - [`@metamask/detect-provider`](https://www.npmjs.com/package/\@metamask/detect-provider)
|
|
197
|
+
*
|
|
198
|
+
* - [`@safe-global/safe-apps-provider`](https://github.com/safe-global/safe-apps-sdk/tree/main/packages/safe-apps-provider)
|
|
199
|
+
*
|
|
200
|
+
* - [`mipd`](https://github.com/wevm/mipd): EIP-6963 Multi Injected Providers
|
|
201
|
+
*
|
|
202
|
+
* :::
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ### Instantiating a Custom Provider
|
|
206
|
+
*
|
|
207
|
+
* The example below demonstrates how we can instantiate a typed EIP-1193 Provider from a
|
|
208
|
+
* HTTP `fetch` JSON-RPC request. You can use this pattern to integrate with any asynchronous JSON-RPC
|
|
209
|
+
* transport, including WebSockets and IPC.
|
|
210
|
+
*
|
|
211
|
+
* ```ts twoslash
|
|
212
|
+
* import { Provider, RpcRequest, RpcResponse } from 'ox'
|
|
213
|
+
*
|
|
214
|
+
* const store = RpcRequest.createStore()
|
|
215
|
+
*
|
|
216
|
+
* const provider = Provider.from({
|
|
217
|
+
* async request(args) {
|
|
218
|
+
* return await fetch('https://1.rpc.thirdweb.com', {
|
|
219
|
+
* body: JSON.stringify(store.prepare(args)),
|
|
220
|
+
* method: 'POST',
|
|
221
|
+
* headers: {
|
|
222
|
+
* 'Content-Type': 'application/json',
|
|
223
|
+
* },
|
|
224
|
+
* })
|
|
225
|
+
* .then((res) => res.json())
|
|
226
|
+
* .then(RpcResponse.parse)
|
|
227
|
+
* },
|
|
228
|
+
* })
|
|
229
|
+
*
|
|
230
|
+
* const blockNumber = await provider.request({ method: 'eth_blockNumber' })
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ### Type-safe Custom Schemas
|
|
235
|
+
*
|
|
236
|
+
* It is possible to define your own type-safe schema by using the {@link ox#RpcSchema.(from:function)} type.
|
|
237
|
+
*
|
|
238
|
+
* ```ts twoslash
|
|
239
|
+
* // @noErrors
|
|
240
|
+
* import 'ox/window'
|
|
241
|
+
* import { Provider, RpcSchema } from 'ox'
|
|
242
|
+
*
|
|
243
|
+
* const schema = RpcSchema.from<
|
|
244
|
+
* | RpcSchema.Default
|
|
245
|
+
* | {
|
|
246
|
+
* Request: {
|
|
247
|
+
* method: 'abe_foo',
|
|
248
|
+
* params: [id: number],
|
|
249
|
+
* }
|
|
250
|
+
* ReturnType: string
|
|
251
|
+
* }
|
|
252
|
+
* | {
|
|
253
|
+
* Request: {
|
|
254
|
+
* method: 'abe_bar',
|
|
255
|
+
* params: [id: string],
|
|
256
|
+
* }
|
|
257
|
+
* ReturnType: string
|
|
258
|
+
* }
|
|
259
|
+
* >()
|
|
260
|
+
*
|
|
261
|
+
* const provider = Provider.from(window.ethereum, { schema })
|
|
262
|
+
*
|
|
263
|
+
* const blockNumber = await provider.request({ method: 'e' })
|
|
264
|
+
* // ^|
|
|
265
|
+
*
|
|
266
|
+
*
|
|
267
|
+
*
|
|
268
|
+
*
|
|
269
|
+
*
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ### Instantiating a Provider with Events
|
|
274
|
+
*
|
|
275
|
+
* The example below demonstrates how to instantiate a Provider with your own EIP-1193 flavored event emitter.
|
|
276
|
+
*
|
|
277
|
+
* This example is useful for Wallets that distribute an EIP-1193 Provider (e.g. webpage injection via `window.ethereum`).
|
|
278
|
+
*
|
|
279
|
+
* ```ts twoslash
|
|
280
|
+
* import { Provider, RpcRequest, RpcResponse } from 'ox'
|
|
281
|
+
*
|
|
282
|
+
* // 1. Instantiate a Provider Emitter.
|
|
283
|
+
* const emitter = Provider.createEmitter() // [!code ++]
|
|
284
|
+
*
|
|
285
|
+
* const store = RpcRequest.createStore()
|
|
286
|
+
*
|
|
287
|
+
* const provider = Provider.from({
|
|
288
|
+
* // 2. Pass the Emitter to the Provider.
|
|
289
|
+
* ...emitter, // [!code ++]
|
|
290
|
+
* async request(args) {
|
|
291
|
+
* return await fetch('https://1.rpc.thirdweb.com', {
|
|
292
|
+
* body: JSON.stringify(store.prepare(args)),
|
|
293
|
+
* method: 'POST',
|
|
294
|
+
* headers: {
|
|
295
|
+
* 'Content-Type': 'application/json',
|
|
296
|
+
* },
|
|
297
|
+
* })
|
|
298
|
+
* .then((res) => res.json())
|
|
299
|
+
* .then(RpcResponse.parse)
|
|
300
|
+
* },
|
|
301
|
+
* })
|
|
302
|
+
*
|
|
303
|
+
* // 3. Emit Provider Events.
|
|
304
|
+
* emitter.emit('accountsChanged', ['0x...']) // [!code ++]
|
|
305
|
+
* ```
|
|
306
|
+
*
|
|
307
|
+
* @param provider - The EIP-1193 provider to convert.
|
|
308
|
+
* @returns An typed EIP-1193 Provider.
|
|
309
|
+
*/
|
|
310
|
+
export function from<
|
|
311
|
+
const provider extends Provider | unknown,
|
|
312
|
+
options extends Options | undefined = undefined,
|
|
313
|
+
>(
|
|
314
|
+
provider: provider | Provider<{ schema: RpcSchema.Generic }>,
|
|
315
|
+
options?: options | Options,
|
|
316
|
+
): Provider<options>
|
|
317
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
318
|
+
export function from(provider: any, options: Options = {}): Provider<Options> {
|
|
319
|
+
const { includeEvents = true } = options
|
|
320
|
+
if (!provider) throw new IsUndefinedError()
|
|
321
|
+
return {
|
|
322
|
+
...(includeEvents
|
|
323
|
+
? {
|
|
324
|
+
on: provider.on?.bind(provider),
|
|
325
|
+
removeListener: provider.removeListener?.bind(provider),
|
|
326
|
+
}
|
|
327
|
+
: {}),
|
|
328
|
+
async request(args) {
|
|
329
|
+
const result = await provider.request(args)
|
|
330
|
+
if (
|
|
331
|
+
typeof result === 'object' &&
|
|
332
|
+
'jsonrpc' in (result as { jsonrpc?: unknown })
|
|
333
|
+
)
|
|
334
|
+
return RpcResponse.parse(result) as never
|
|
335
|
+
return result
|
|
336
|
+
},
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export declare namespace from {
|
|
341
|
+
type ErrorType = IsUndefinedError | Errors.GlobalErrorType
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/* v8 ignore next */
|
|
345
|
+
from.parseError = (error: unknown) => error as from.ErrorType
|
|
346
|
+
|
|
347
|
+
/** Thrown when the provider is undefined. */
|
|
348
|
+
export class IsUndefinedError extends Errors.BaseError {
|
|
349
|
+
override readonly name = 'Provider.IsUndefinedError'
|
|
350
|
+
|
|
351
|
+
constructor() {
|
|
352
|
+
super('`provider` is undefined.')
|
|
353
|
+
}
|
|
354
|
+
}
|