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/RpcResponse.ts
ADDED
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import type { Errors, RpcRequest } from './index.js'
|
|
2
|
+
import type {
|
|
3
|
+
Compute,
|
|
4
|
+
IsNarrowable,
|
|
5
|
+
OneOf,
|
|
6
|
+
UnionPartialBy,
|
|
7
|
+
} from './internal/types.js'
|
|
8
|
+
|
|
9
|
+
/** A JSON-RPC response object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#request_object). */
|
|
10
|
+
export type RpcResponse<
|
|
11
|
+
result = unknown,
|
|
12
|
+
error extends ErrorObject = ErrorObject,
|
|
13
|
+
> = Compute<
|
|
14
|
+
{
|
|
15
|
+
id: number
|
|
16
|
+
jsonrpc: '2.0'
|
|
17
|
+
} & OneOf<{ result: result } | { error: error }>
|
|
18
|
+
>
|
|
19
|
+
|
|
20
|
+
/** JSON-RPC error object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#error_object). */
|
|
21
|
+
export type ErrorObject = {
|
|
22
|
+
code: number
|
|
23
|
+
message: string
|
|
24
|
+
data?: unknown | undefined
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A type-safe interface to instantiate a JSON-RPC response object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#response_object).
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ### Instantiating a Response Object
|
|
32
|
+
*
|
|
33
|
+
* ```ts twoslash
|
|
34
|
+
* import { RpcResponse } from 'ox'
|
|
35
|
+
*
|
|
36
|
+
* const response = RpcResponse.from({
|
|
37
|
+
* id: 0,
|
|
38
|
+
* jsonrpc: '2.0',
|
|
39
|
+
* result: '0x69420',
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ### Type-safe Instantiation
|
|
45
|
+
*
|
|
46
|
+
* If you have a JSON-RPC request object, you can use it to strongly-type the response. If a `request` is provided,
|
|
47
|
+
* then the `id` and `jsonrpc` properties will be overridden with the values from the request.
|
|
48
|
+
*
|
|
49
|
+
* ```ts twoslash
|
|
50
|
+
* import { RpcRequest, RpcResponse } from 'ox'
|
|
51
|
+
*
|
|
52
|
+
* const request = RpcRequest.from({ id: 0, method: 'eth_blockNumber' })
|
|
53
|
+
*
|
|
54
|
+
* const response = RpcResponse.from(
|
|
55
|
+
* { result: '0x69420' },
|
|
56
|
+
* { request },
|
|
57
|
+
* )
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @param response - Opaque JSON-RPC response object.
|
|
61
|
+
* @param options - Parsing options.
|
|
62
|
+
* @returns Typed JSON-RPC result, or response object (if `raw` is `true`).
|
|
63
|
+
*/
|
|
64
|
+
export function from<
|
|
65
|
+
request extends RpcRequest.RpcRequest | undefined = undefined,
|
|
66
|
+
const response =
|
|
67
|
+
| (request extends RpcRequest.RpcRequest
|
|
68
|
+
? request['_returnType']
|
|
69
|
+
: RpcResponse)
|
|
70
|
+
| unknown,
|
|
71
|
+
>(
|
|
72
|
+
response: from.Response<request, response>,
|
|
73
|
+
options?: from.Options<request>,
|
|
74
|
+
): Compute<from.ReturnType<response>>
|
|
75
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
76
|
+
export function from(response: RpcResponse, options: any = {}): RpcResponse {
|
|
77
|
+
const { request } = options
|
|
78
|
+
return {
|
|
79
|
+
...response,
|
|
80
|
+
id: response.id ?? request?.id,
|
|
81
|
+
jsonrpc: response.jsonrpc ?? request.jsonrpc,
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export declare namespace from {
|
|
86
|
+
type Response<
|
|
87
|
+
request extends RpcRequest.RpcRequest | undefined = undefined,
|
|
88
|
+
response = unknown,
|
|
89
|
+
> = response &
|
|
90
|
+
(request extends RpcRequest.RpcRequest
|
|
91
|
+
? UnionPartialBy<RpcResponse<request['_returnType']>, 'id' | 'jsonrpc'>
|
|
92
|
+
: RpcResponse)
|
|
93
|
+
|
|
94
|
+
type Options<
|
|
95
|
+
request extends RpcRequest.RpcRequest | undefined =
|
|
96
|
+
| RpcRequest.RpcRequest
|
|
97
|
+
| undefined,
|
|
98
|
+
> = {
|
|
99
|
+
request?: request | RpcRequest.RpcRequest | undefined
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
type ReturnType<response> = IsNarrowable<response, RpcResponse> extends true
|
|
103
|
+
? RpcResponse
|
|
104
|
+
: response & Readonly<{ id: number; jsonrpc: '2.0' }>
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* A type-safe interface to parse a JSON-RPC response object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#response_object), and extract the result.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts twoslash
|
|
112
|
+
* import { RpcRequest, RpcResponse } from 'ox'
|
|
113
|
+
*
|
|
114
|
+
* // 1. Create a request store.
|
|
115
|
+
* const store = RpcRequest.createStore()
|
|
116
|
+
*
|
|
117
|
+
* // 2. Get a request object.
|
|
118
|
+
* const request = store.prepare({
|
|
119
|
+
* method: 'eth_getBlockByNumber',
|
|
120
|
+
* params: ['0x1', false],
|
|
121
|
+
* })
|
|
122
|
+
*
|
|
123
|
+
* // 3. Send the JSON-RPC request via HTTP.
|
|
124
|
+
* const block = await fetch('https://1.rpc.thirdweb.com', {
|
|
125
|
+
* body: JSON.stringify(request),
|
|
126
|
+
* headers: {
|
|
127
|
+
* 'Content-Type': 'application/json',
|
|
128
|
+
* },
|
|
129
|
+
* method: 'POST',
|
|
130
|
+
* })
|
|
131
|
+
* .then((response) => response.json())
|
|
132
|
+
* // 4. Parse the JSON-RPC response into a type-safe result. // [!code focus]
|
|
133
|
+
* .then((response) => RpcResponse.parse(response, { request })) // [!code focus]
|
|
134
|
+
*
|
|
135
|
+
* block // [!code focus]
|
|
136
|
+
* // ^?
|
|
137
|
+
*
|
|
138
|
+
*
|
|
139
|
+
*
|
|
140
|
+
*
|
|
141
|
+
*
|
|
142
|
+
*
|
|
143
|
+
*
|
|
144
|
+
*
|
|
145
|
+
*
|
|
146
|
+
*
|
|
147
|
+
*
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* :::tip
|
|
151
|
+
*
|
|
152
|
+
* If you don't need the return type, you can omit the options entirely.
|
|
153
|
+
*
|
|
154
|
+
* ```ts twoslash
|
|
155
|
+
* // @noErrors
|
|
156
|
+
* import { RpcResponse } from 'ox'
|
|
157
|
+
*
|
|
158
|
+
* const block = await fetch('https://1.rpc.thirdweb.com', {})
|
|
159
|
+
* .then((response) => response.json())
|
|
160
|
+
* .then((response) => RpcResponse.parse(response, { request })) // [!code --]
|
|
161
|
+
* .then(RpcResponse.parse) // [!code ++]
|
|
162
|
+
* ```
|
|
163
|
+
* :::
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ### Raw Mode
|
|
167
|
+
*
|
|
168
|
+
* If `raw` is `true`, the response will be returned as an object with `result` and `error` properties instead of returning the `result` directly and throwing errors.
|
|
169
|
+
*
|
|
170
|
+
* ```ts twoslash
|
|
171
|
+
* import { RpcRequest, RpcResponse } from 'ox'
|
|
172
|
+
*
|
|
173
|
+
* const store = RpcRequest.createStore()
|
|
174
|
+
*
|
|
175
|
+
* const request = store.prepare({
|
|
176
|
+
* method: 'eth_blockNumber',
|
|
177
|
+
* })
|
|
178
|
+
*
|
|
179
|
+
* const response = RpcResponse.parse({}, {
|
|
180
|
+
* request,
|
|
181
|
+
* raw: true, // [!code hl]
|
|
182
|
+
* })
|
|
183
|
+
*
|
|
184
|
+
* response.result
|
|
185
|
+
* // ^?
|
|
186
|
+
*
|
|
187
|
+
*
|
|
188
|
+
* response.error
|
|
189
|
+
* // ^?
|
|
190
|
+
*
|
|
191
|
+
*
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
194
|
+
* @param response - Opaque JSON-RPC response object.
|
|
195
|
+
* @param options - Parsing options.
|
|
196
|
+
* @returns Typed JSON-RPC result, or response object (if `raw` is `true`).
|
|
197
|
+
*/
|
|
198
|
+
export function parse<
|
|
199
|
+
const response extends RpcResponse | unknown,
|
|
200
|
+
returnType,
|
|
201
|
+
raw extends boolean = false,
|
|
202
|
+
>(
|
|
203
|
+
response: response,
|
|
204
|
+
options: parse.Options<returnType, raw> = {},
|
|
205
|
+
): parse.ReturnType<
|
|
206
|
+
unknown extends response
|
|
207
|
+
? returnType
|
|
208
|
+
: response extends RpcResponse
|
|
209
|
+
? response extends { result: infer result }
|
|
210
|
+
? result
|
|
211
|
+
: never
|
|
212
|
+
: returnType,
|
|
213
|
+
raw
|
|
214
|
+
> {
|
|
215
|
+
const { raw = false } = options
|
|
216
|
+
const response_ = response as RpcResponse
|
|
217
|
+
if (raw) return response as never
|
|
218
|
+
if (response_.error) {
|
|
219
|
+
const { code } = response_.error
|
|
220
|
+
const JsonRpcError = (() => {
|
|
221
|
+
if (code === InternalError.code) return InternalError
|
|
222
|
+
if (code === InvalidInputError.code) return InvalidInputError
|
|
223
|
+
if (code === InvalidParamsError.code) return InvalidParamsError
|
|
224
|
+
if (code === InvalidRequestError.code) return InvalidRequestError
|
|
225
|
+
if (code === LimitExceededError.code) return LimitExceededError
|
|
226
|
+
if (code === MethodNotFoundError.code) return MethodNotFoundError
|
|
227
|
+
if (code === MethodNotSupportedError.code) return MethodNotSupportedError
|
|
228
|
+
if (code === ParseError.code) return ParseError
|
|
229
|
+
if (code === ResourceNotFoundError.code) return ResourceNotFoundError
|
|
230
|
+
if (code === ResourceUnavailableError.code)
|
|
231
|
+
return ResourceUnavailableError
|
|
232
|
+
if (code === TransactionRejectedError.code)
|
|
233
|
+
return TransactionRejectedError
|
|
234
|
+
if (code === VersionNotSupportedError.code)
|
|
235
|
+
return VersionNotSupportedError
|
|
236
|
+
return BaseError
|
|
237
|
+
})()
|
|
238
|
+
throw new JsonRpcError(response_.error)
|
|
239
|
+
}
|
|
240
|
+
return response_.result as never
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export declare namespace parse {
|
|
244
|
+
type Options<returnType, raw extends boolean = false> = {
|
|
245
|
+
/**
|
|
246
|
+
* JSON-RPC Method that was used to make the request. Used for typing the response.
|
|
247
|
+
*/
|
|
248
|
+
request?:
|
|
249
|
+
| {
|
|
250
|
+
_returnType: returnType
|
|
251
|
+
}
|
|
252
|
+
| RpcRequest.RpcRequest
|
|
253
|
+
| undefined
|
|
254
|
+
/**
|
|
255
|
+
* Enables raw mode – responses will return an object with `result` and `error` properties instead of returning the `result` directly and throwing errors.
|
|
256
|
+
*
|
|
257
|
+
* - `true`: a JSON-RPC response object will be returned with `result` and `error` properties.
|
|
258
|
+
* - `false`: the JSON-RPC response object's `result` property will be returned directly, and JSON-RPC Errors will be thrown.
|
|
259
|
+
*
|
|
260
|
+
* @default false
|
|
261
|
+
*/
|
|
262
|
+
raw?: raw | boolean | undefined
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
type ReturnType<returnType, raw extends boolean = false> = Compute<
|
|
266
|
+
raw extends true ? RpcResponse<returnType> : returnType
|
|
267
|
+
>
|
|
268
|
+
|
|
269
|
+
type ErrorType =
|
|
270
|
+
| ParseError
|
|
271
|
+
| InvalidInputError
|
|
272
|
+
| ResourceNotFoundError
|
|
273
|
+
| ResourceUnavailableError
|
|
274
|
+
| TransactionRejectedError
|
|
275
|
+
| MethodNotSupportedError
|
|
276
|
+
| LimitExceededError
|
|
277
|
+
| VersionNotSupportedError
|
|
278
|
+
| InvalidRequestError
|
|
279
|
+
| MethodNotFoundError
|
|
280
|
+
| InvalidParamsError
|
|
281
|
+
| InternalError
|
|
282
|
+
| BaseErrorType
|
|
283
|
+
| Errors.GlobalErrorType
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
parse.parseError = (error: unknown) =>
|
|
287
|
+
/* v8 ignore next */
|
|
288
|
+
error as parse.ErrorType
|
|
289
|
+
|
|
290
|
+
export type BaseErrorType = BaseError & { name: 'BaseError' }
|
|
291
|
+
|
|
292
|
+
/** Thrown when a JSON-RPC error has occurred. */
|
|
293
|
+
export class BaseError extends Error {
|
|
294
|
+
override name = 'RpcResponse.BaseError'
|
|
295
|
+
|
|
296
|
+
readonly code: number
|
|
297
|
+
readonly data?: unknown | undefined
|
|
298
|
+
|
|
299
|
+
constructor(errorObject: ErrorObject) {
|
|
300
|
+
const { code, message, data } = errorObject
|
|
301
|
+
super(message)
|
|
302
|
+
this.code = code
|
|
303
|
+
this.data = data
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/** Thrown when the input to a JSON-RPC method is invalid. */
|
|
308
|
+
export class InvalidInputError extends BaseError {
|
|
309
|
+
static readonly code = -32000
|
|
310
|
+
override readonly code = -32000
|
|
311
|
+
override readonly name = 'RpcResponse.InvalidInputError'
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/** Thrown when a JSON-RPC resource is not found. */
|
|
315
|
+
export class ResourceNotFoundError extends BaseError {
|
|
316
|
+
static readonly code = -32001
|
|
317
|
+
override readonly code = -32001
|
|
318
|
+
override readonly name = 'RpcResponse.ResourceNotFoundError'
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/** Thrown when a JSON-RPC resource is unavailable. */
|
|
322
|
+
export class ResourceUnavailableError extends BaseError {
|
|
323
|
+
static readonly code = -32002
|
|
324
|
+
override readonly code = -32002
|
|
325
|
+
override readonly name = 'RpcResponse.ResourceUnavailableError'
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/** Thrown when a JSON-RPC transaction is rejected. */
|
|
329
|
+
export class TransactionRejectedError extends BaseError {
|
|
330
|
+
static readonly code = -32003
|
|
331
|
+
override readonly code = -32003
|
|
332
|
+
override readonly name = 'RpcResponse.TransactionRejectedError'
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/** Thrown when a JSON-RPC method is not supported. */
|
|
336
|
+
export class MethodNotSupportedError extends BaseError {
|
|
337
|
+
static readonly code = -32004
|
|
338
|
+
override readonly code = -32004
|
|
339
|
+
override readonly name = 'RpcResponse.MethodNotSupportedError'
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/** Thrown when a rate-limit is exceeded. */
|
|
343
|
+
export class LimitExceededError extends BaseError {
|
|
344
|
+
static readonly code = -32005
|
|
345
|
+
override readonly code = -32005
|
|
346
|
+
override readonly name = 'RpcResponse.LimitExceededError'
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/** Thrown when a JSON-RPC version is not supported. */
|
|
350
|
+
export class VersionNotSupportedError extends BaseError {
|
|
351
|
+
static readonly code = -32006
|
|
352
|
+
override readonly code = -32006
|
|
353
|
+
override readonly name = 'RpcResponse.VersionNotSupportedError'
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/** Thrown when a JSON-RPC request is invalid. */
|
|
357
|
+
export class InvalidRequestError extends BaseError {
|
|
358
|
+
static readonly code = -32600
|
|
359
|
+
override readonly code = -32600
|
|
360
|
+
override readonly name = 'RpcResponse.InvalidRequestError'
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/** Thrown when a JSON-RPC method is not found. */
|
|
364
|
+
export class MethodNotFoundError extends BaseError {
|
|
365
|
+
static readonly code = -32601
|
|
366
|
+
override readonly code = -32601
|
|
367
|
+
override readonly name = 'RpcResponse.MethodNotFoundError'
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/** Thrown when the parameters to a JSON-RPC method are invalid. */
|
|
371
|
+
export class InvalidParamsError extends BaseError {
|
|
372
|
+
static readonly code = -32602
|
|
373
|
+
override readonly code = -32602
|
|
374
|
+
override readonly name = 'RpcResponse.InvalidParamsError'
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/** Thrown when an internal JSON-RPC error has occurred. */
|
|
378
|
+
export class InternalError extends BaseError {
|
|
379
|
+
static readonly code = -32603
|
|
380
|
+
override readonly code = -32603
|
|
381
|
+
override readonly name = 'RpcResponse.InternalErrorError'
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/** Thrown when a JSON-RPC response is invalid. */
|
|
385
|
+
export class ParseError extends BaseError {
|
|
386
|
+
static readonly code = -32700
|
|
387
|
+
override readonly code = -32700
|
|
388
|
+
override readonly name = 'RpcResponse.ParseError'
|
|
389
|
+
}
|
package/RpcSchema.ts
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import type { ResolvedRegister } from './internal/register.js'
|
|
2
|
+
import type { Compute, IsNarrowable } from './internal/types.js'
|
|
3
|
+
|
|
4
|
+
export type { Eth } from './internal/rpcSchemas/eth.js'
|
|
5
|
+
export type { Wallet } from './internal/rpcSchemas/wallet.js'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Instantiates a statically typed Schema. This is a runtime-noop function, and is purposed
|
|
9
|
+
* to be used as a type-level tag to be used with {@link ox#Provider.(from:function)} or
|
|
10
|
+
* {@link ox#RpcTransport.(fromHttp:function)}.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ### Using with `Provider.from`
|
|
14
|
+
*
|
|
15
|
+
* ```ts twoslash
|
|
16
|
+
* // @noErrors
|
|
17
|
+
* import 'ox/window'
|
|
18
|
+
* import { Provider, RpcSchema } from 'ox'
|
|
19
|
+
*
|
|
20
|
+
* const schema = RpcSchema.from<
|
|
21
|
+
* | RpcSchema.Default
|
|
22
|
+
* | {
|
|
23
|
+
* Request: {
|
|
24
|
+
* method: 'abe_foo',
|
|
25
|
+
* params: [id: number],
|
|
26
|
+
* }
|
|
27
|
+
* ReturnType: string
|
|
28
|
+
* }
|
|
29
|
+
* | {
|
|
30
|
+
* Request: {
|
|
31
|
+
* method: 'abe_bar',
|
|
32
|
+
* params: [id: string],
|
|
33
|
+
* }
|
|
34
|
+
* ReturnType: string
|
|
35
|
+
* }
|
|
36
|
+
* >()
|
|
37
|
+
*
|
|
38
|
+
* const provider = Provider.from(window.ethereum, { schema })
|
|
39
|
+
*
|
|
40
|
+
* const blockNumber = await provider.request({ method: 'e' })
|
|
41
|
+
* // ^|
|
|
42
|
+
*
|
|
43
|
+
*
|
|
44
|
+
*
|
|
45
|
+
*
|
|
46
|
+
*
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export function from<schema extends Generic>(): schema {
|
|
50
|
+
return null as never
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Extracts a schema item from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts twoslash
|
|
58
|
+
* import { RpcSchema } from 'ox'
|
|
59
|
+
*
|
|
60
|
+
* type Item = RpcSchema.ExtractItem<RpcSchema.Eth, 'eth_getBlockByNumber'>
|
|
61
|
+
* // ^?
|
|
62
|
+
*
|
|
63
|
+
*
|
|
64
|
+
*
|
|
65
|
+
*
|
|
66
|
+
*
|
|
67
|
+
*
|
|
68
|
+
*
|
|
69
|
+
*
|
|
70
|
+
*
|
|
71
|
+
*
|
|
72
|
+
*
|
|
73
|
+
*
|
|
74
|
+
*
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export type ExtractItem<
|
|
78
|
+
schema extends Generic,
|
|
79
|
+
methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
|
|
80
|
+
> = Compute<{
|
|
81
|
+
Request: ExtractRequest<schema, methodName>
|
|
82
|
+
ReturnType: ExtractReturnType<schema, methodName>
|
|
83
|
+
}>
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Extracts request from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts twoslash
|
|
90
|
+
* import { RpcSchema } from 'ox'
|
|
91
|
+
*
|
|
92
|
+
* type Request = RpcSchema.ExtractRequest<RpcSchema.Eth, 'eth_getBlockByNumber'>
|
|
93
|
+
* // ^?
|
|
94
|
+
*
|
|
95
|
+
*
|
|
96
|
+
*
|
|
97
|
+
*
|
|
98
|
+
*
|
|
99
|
+
*
|
|
100
|
+
*
|
|
101
|
+
*
|
|
102
|
+
*
|
|
103
|
+
*
|
|
104
|
+
*
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export type ExtractRequest<
|
|
108
|
+
schema extends Generic,
|
|
109
|
+
methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
|
|
110
|
+
> = Extract<schema['Request'], { method: methodName }>
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Type-safe union of all JSON-RPC Method Names.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts twoslash
|
|
117
|
+
* import { RpcSchema } from 'ox'
|
|
118
|
+
*
|
|
119
|
+
* type MethodName = RpcSchema.ExtractMethodName<RpcSchema.Default>
|
|
120
|
+
* // ^?
|
|
121
|
+
*
|
|
122
|
+
*
|
|
123
|
+
*
|
|
124
|
+
*
|
|
125
|
+
*
|
|
126
|
+
*
|
|
127
|
+
*
|
|
128
|
+
*
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export type ExtractMethodName<schema extends Generic> =
|
|
132
|
+
schema['Request']['method']
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Extracts parameters from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts twoslash
|
|
139
|
+
* import { RpcSchema } from 'ox'
|
|
140
|
+
*
|
|
141
|
+
* type Eth_GetBlockByNumber = RpcSchema.ExtractParams<RpcSchema.Eth, 'eth_getBlockByNumber'>
|
|
142
|
+
* // ^?
|
|
143
|
+
*
|
|
144
|
+
*
|
|
145
|
+
*
|
|
146
|
+
*
|
|
147
|
+
*
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
export type ExtractParams<
|
|
151
|
+
schema extends Generic,
|
|
152
|
+
methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
|
|
153
|
+
> = ExtractRequest<schema, methodName>['params']
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Extracts return type from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts twoslash
|
|
160
|
+
* import { RpcSchema } from 'ox'
|
|
161
|
+
*
|
|
162
|
+
* type ReturnType = RpcSchema.ExtractReturnType<RpcSchema.Eth, 'eth_getBlockByNumber'>
|
|
163
|
+
* // ^?
|
|
164
|
+
*
|
|
165
|
+
*
|
|
166
|
+
*
|
|
167
|
+
*
|
|
168
|
+
*
|
|
169
|
+
*
|
|
170
|
+
*
|
|
171
|
+
*
|
|
172
|
+
*
|
|
173
|
+
*
|
|
174
|
+
*
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
export type ExtractReturnType<
|
|
178
|
+
schema extends Generic,
|
|
179
|
+
methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
|
|
180
|
+
> = methodName extends schema['Request']['method']
|
|
181
|
+
? IsNarrowable<schema, Generic> extends true
|
|
182
|
+
? Extract<schema, { Request: { method: methodName } }>['ReturnType']
|
|
183
|
+
: unknown
|
|
184
|
+
: unknown
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Type to define a custom type-safe JSON-RPC Schema.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts twoslash
|
|
191
|
+
* import { RpcSchema, RpcRequest } from 'ox'
|
|
192
|
+
*
|
|
193
|
+
* type Schema = RpcSchema.From<{
|
|
194
|
+
* Request: {
|
|
195
|
+
* method: 'eth_foobar',
|
|
196
|
+
* params: [id: number],
|
|
197
|
+
* }
|
|
198
|
+
* ReturnType: string
|
|
199
|
+
* }>
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
export type From<schema extends Generic> = schema
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Generic type to define a JSON-RPC Method.
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ```ts twoslash
|
|
209
|
+
* import { RpcSchema } from 'ox'
|
|
210
|
+
*
|
|
211
|
+
* type Schema = RpcSchema.Generic
|
|
212
|
+
* // ^?
|
|
213
|
+
*
|
|
214
|
+
*
|
|
215
|
+
*
|
|
216
|
+
*
|
|
217
|
+
*
|
|
218
|
+
*
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
export type Generic<name extends string = string, params = unknown> = {
|
|
222
|
+
Request: {
|
|
223
|
+
method: name
|
|
224
|
+
params?: params | undefined
|
|
225
|
+
}
|
|
226
|
+
ReturnType?: unknown
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Type-safe union of all JSON-RPC Methods.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```ts twoslash
|
|
234
|
+
* import { RpcSchema } from 'ox'
|
|
235
|
+
*
|
|
236
|
+
* type Schema = RpcSchema.Default
|
|
237
|
+
* // ^?
|
|
238
|
+
*
|
|
239
|
+
*
|
|
240
|
+
*
|
|
241
|
+
*
|
|
242
|
+
*
|
|
243
|
+
*
|
|
244
|
+
*
|
|
245
|
+
*
|
|
246
|
+
*
|
|
247
|
+
*
|
|
248
|
+
*
|
|
249
|
+
*
|
|
250
|
+
*
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
export type Default = ResolvedRegister['RpcSchema']
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Generic type to define a JSON-RPC Method Name.
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```ts twoslash
|
|
260
|
+
* import { RpcSchema } from 'ox'
|
|
261
|
+
*
|
|
262
|
+
* type Name = RpcSchema.MethodNameGeneric
|
|
263
|
+
* // ^?
|
|
264
|
+
*
|
|
265
|
+
*
|
|
266
|
+
*
|
|
267
|
+
*
|
|
268
|
+
*
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
export type MethodNameGeneric<schema extends Generic = Generic> =
|
|
272
|
+
| schema['Request']['method']
|
|
273
|
+
| (string & {})
|