voltaire-effect 0.2.23 → 0.2.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/KZGService-B7PJerOb.d.ts +146 -0
- package/dist/ProviderService-BZ5pqDrD.d.ts +319 -0
- package/dist/{X25519Test-DGsk1V9o.d.ts → X25519Test-D5Q-5fL9.d.ts} +4 -143
- package/dist/crypto/index.d.ts +5 -6
- package/dist/crypto/index.js +227 -201
- package/dist/{index-IgkEHjBe.d.ts → index-BCOuszKZ.d.ts} +17634 -11962
- package/dist/index.d.ts +3195 -976
- package/dist/index.js +6994 -4679
- package/dist/native/index.d.ts +25 -16
- package/dist/native/index.js +7020 -4705
- package/dist/primitives/index.d.ts +14 -8
- package/dist/primitives/index.js +4060 -2539
- package/dist/services/index.d.ts +9054 -30
- package/dist/services/index.js +1592 -1331
- package/package.json +2 -2
- package/src/crypto/ERC6492/ERC6492.test.ts +32 -14
- package/src/crypto/ERC6492/verifySignature.ts +4 -5
- package/src/crypto/Keccak256/Keccak256.test.ts +42 -1
- package/src/crypto/Keccak256/hashSync.ts +53 -0
- package/src/crypto/Keccak256/index.ts +2 -0
- package/src/index.ts +7 -2
- package/src/primitives/Abi/decode.test.ts +38 -0
- package/src/primitives/Abi/decode.ts +67 -0
- package/src/primitives/Abi/decodeData.test.ts +37 -0
- package/src/primitives/Abi/decodeData.ts +77 -0
- package/src/primitives/Abi/decodeLog.test.ts +32 -0
- package/src/primitives/Abi/decodeLog.ts +81 -0
- package/src/primitives/Abi/decodeWrappedError.test.ts +41 -0
- package/src/primitives/Abi/decodeWrappedError.ts +68 -0
- package/src/primitives/Abi/encode.test.ts +43 -0
- package/src/primitives/Abi/encode.ts +67 -0
- package/src/primitives/Abi/encodePacked.test.ts +35 -0
- package/src/primitives/Abi/encodePacked.ts +62 -0
- package/src/primitives/Abi/encodeWrappedError.test.ts +21 -0
- package/src/primitives/Abi/encodeWrappedError.ts +64 -0
- package/src/primitives/Abi/findSelectorCollisions.test.ts +50 -0
- package/src/primitives/Abi/findSelectorCollisions.ts +83 -0
- package/src/primitives/Abi/index.ts +33 -7
- package/src/primitives/Abi/parseLogs.test.ts +37 -0
- package/src/primitives/Abi/parseLogs.ts +62 -0
- package/src/primitives/AccessList/AccessList.test.ts +229 -0
- package/src/primitives/AccessList/AccessListTypeSchema.ts +16 -0
- package/src/primitives/AccessList/addressCount.ts +21 -0
- package/src/primitives/AccessList/assertValid.ts +37 -0
- package/src/primitives/AccessList/create.ts +19 -0
- package/src/primitives/AccessList/deduplicate.ts +23 -0
- package/src/primitives/AccessList/from.ts +39 -0
- package/src/primitives/AccessList/fromBytes.ts +36 -0
- package/src/primitives/AccessList/gasCost.ts +22 -0
- package/src/primitives/AccessList/gasSavings.ts +26 -0
- package/src/primitives/AccessList/hasSavings.ts +23 -0
- package/src/primitives/AccessList/includesAddress.ts +25 -0
- package/src/primitives/AccessList/includesStorageKey.ts +28 -0
- package/src/primitives/AccessList/index.ts +99 -19
- package/src/primitives/AccessList/is.ts +23 -0
- package/src/primitives/AccessList/isEmpty.ts +23 -0
- package/src/primitives/AccessList/isItem.ts +22 -0
- package/src/primitives/AccessList/keysFor.ts +29 -0
- package/src/primitives/AccessList/merge.ts +24 -0
- package/src/primitives/AccessList/storageKeyCount.ts +21 -0
- package/src/primitives/AccessList/toBytes.ts +23 -0
- package/src/primitives/AccessList/withAddress.ts +27 -0
- package/src/primitives/AccessList/withStorageKey.ts +30 -0
- package/src/primitives/Address/Address.test.ts +146 -0
- package/src/primitives/Address/assert.ts +51 -0
- package/src/primitives/Address/calculateCreate2Address.ts +33 -0
- package/src/primitives/Address/calculateCreateAddress.ts +30 -0
- package/src/primitives/Address/deduplicateAddresses.ts +20 -0
- package/src/primitives/Address/from.ts +41 -0
- package/src/primitives/Address/fromAbiEncoded.ts +35 -0
- package/src/primitives/Address/fromBase64.ts +25 -0
- package/src/primitives/Address/fromBytes.ts +25 -0
- package/src/primitives/Address/fromHex.ts +31 -0
- package/src/primitives/Address/fromNumber.ts +25 -0
- package/src/primitives/Address/fromPrivateKey.ts +25 -0
- package/src/primitives/Address/fromPublicKey.ts +56 -0
- package/src/primitives/Address/index.ts +99 -35
- package/src/primitives/Address/is.ts +20 -0
- package/src/primitives/Address/isAddress.ts +22 -0
- package/src/primitives/Address/sortAddresses.ts +19 -0
- package/src/primitives/Address/toChecksummed.ts +32 -0
- package/src/primitives/Address/toHex.ts +18 -0
- package/src/primitives/Address/zero.ts +18 -0
- package/src/primitives/Base64/Base64.test.ts +75 -0
- package/src/primitives/Base64/convert.ts +37 -0
- package/src/primitives/Base64/decode.ts +59 -0
- package/src/primitives/Base64/encode.ts +42 -0
- package/src/primitives/Base64/from.ts +39 -0
- package/src/primitives/Base64/index.ts +81 -1
- package/src/primitives/Base64/size.ts +16 -0
- package/src/primitives/Base64/validation.ts +16 -0
- package/src/primitives/Blob/Blob.test.ts +292 -0
- package/src/primitives/Blob/calculateGas.ts +30 -0
- package/src/primitives/Blob/estimateBlobCount.ts +30 -0
- package/src/primitives/Blob/from.ts +38 -0
- package/src/primitives/Blob/fromData.ts +36 -0
- package/src/primitives/Blob/index.ts +99 -12
- package/src/primitives/Blob/isValidVersion.ts +27 -0
- package/src/primitives/Blob/joinData.ts +43 -0
- package/src/primitives/Blob/splitData.ts +36 -0
- package/src/primitives/Blob/toCommitment.ts +43 -0
- package/src/primitives/Blob/toProof.ts +50 -0
- package/src/primitives/Blob/toVersionedHash.ts +35 -0
- package/src/primitives/Blob/verify.ts +49 -0
- package/src/primitives/Blob/verifyBatch.ts +119 -0
- package/src/primitives/BloomFilter/BloomFilter.test.ts +138 -0
- package/src/primitives/BloomFilter/add.ts +23 -0
- package/src/primitives/BloomFilter/combine.ts +21 -0
- package/src/primitives/BloomFilter/contains.ts +26 -0
- package/src/primitives/BloomFilter/create.ts +35 -0
- package/src/primitives/BloomFilter/density.ts +22 -0
- package/src/primitives/BloomFilter/expectedFalsePositiveRate.ts +25 -0
- package/src/primitives/BloomFilter/fromHex.ts +37 -0
- package/src/primitives/BloomFilter/hash.ts +43 -0
- package/src/primitives/BloomFilter/index.ts +59 -37
- package/src/primitives/BloomFilter/isEmpty.ts +22 -0
- package/src/primitives/BloomFilter/merge.ts +24 -0
- package/src/primitives/BloomFilter/toHex.ts +22 -0
- package/src/primitives/Bytecode/analyze.ts +58 -0
- package/src/primitives/Bytecode/detectFusions.ts +10 -0
- package/src/primitives/Bytecode/equals.ts +10 -0
- package/src/primitives/Bytecode/extractRuntime.ts +12 -0
- package/src/primitives/Bytecode/format.ts +16 -0
- package/src/primitives/Bytecode/from.ts +16 -0
- package/src/primitives/Bytecode/fromHex.ts +14 -0
- package/src/primitives/Bytecode/getBlock.ts +12 -0
- package/src/primitives/Bytecode/getNextPc.ts +12 -0
- package/src/primitives/Bytecode/getPushSize.ts +8 -0
- package/src/primitives/Bytecode/hasMetadata.ts +10 -0
- package/src/primitives/Bytecode/hash.ts +9 -0
- package/src/primitives/Bytecode/index.ts +103 -13
- package/src/primitives/Bytecode/isPush.ts +8 -0
- package/src/primitives/Bytecode/isTerminator.ts +8 -0
- package/src/primitives/Bytecode/isValidJumpDest.ts +12 -0
- package/src/primitives/Bytecode/parseInstructions.ts +10 -0
- package/src/primitives/Bytecode/prettyPrint.ts +12 -0
- package/src/primitives/Bytecode/scan.ts +20 -0
- package/src/primitives/Bytecode/size.ts +9 -0
- package/src/primitives/Bytecode/stripMetadata.ts +10 -0
- package/src/primitives/Bytecode/toAbi.ts +10 -0
- package/src/primitives/Bytecode/toHex.ts +10 -0
- package/src/primitives/Bytecode/types.ts +23 -0
- package/src/primitives/Bytecode/validate.ts +9 -0
- package/src/primitives/ContractSignature/ContractSignature.test.ts +1 -13
- package/src/primitives/ContractSignature/verifySignature.ts +88 -62
- package/src/primitives/Ens/Ens.test.ts +71 -0
- package/src/primitives/Ens/convert.ts +13 -0
- package/src/primitives/Ens/from.ts +32 -0
- package/src/primitives/Ens/hash.ts +46 -0
- package/src/primitives/Ens/index.ts +86 -4
- package/src/primitives/Ens/normalize.ts +45 -0
- package/src/primitives/Ens/validation.ts +38 -0
- package/src/primitives/EventLog/accessors.ts +32 -0
- package/src/primitives/EventLog/clone.ts +17 -0
- package/src/primitives/EventLog/create.ts +46 -0
- package/src/primitives/EventLog/filtering.ts +48 -0
- package/src/primitives/EventLog/index.ts +96 -6
- package/src/primitives/EventLog/status.ts +17 -0
- package/src/primitives/EventLog/toRpc.ts +49 -0
- package/src/primitives/Hardfork/HardforkSchema.ts +3 -3
- package/src/primitives/Hardfork/allIds.ts +13 -0
- package/src/primitives/Hardfork/allNames.ts +13 -0
- package/src/primitives/Hardfork/compare.ts +17 -0
- package/src/primitives/Hardfork/comparisons.ts +45 -0
- package/src/primitives/Hardfork/equals.ts +17 -0
- package/src/primitives/Hardfork/features.ts +61 -0
- package/src/primitives/Hardfork/fromString.ts +16 -0
- package/src/primitives/Hardfork/index.ts +128 -18
- package/src/primitives/Hardfork/isValidName.ts +14 -0
- package/src/primitives/Hardfork/minMax.ts +23 -0
- package/src/primitives/Hardfork/range.ts +19 -0
- package/src/primitives/Hardfork/toString.ts +16 -0
- package/src/primitives/Hash/Hash.test.ts +104 -0
- package/src/primitives/Hash/from.ts +47 -0
- package/src/primitives/Hash/fromBytes.ts +46 -0
- package/src/primitives/Hash/fromHex.ts +44 -0
- package/src/primitives/Hash/index.ts +45 -8
- package/src/primitives/Hash/isHash.ts +31 -0
- package/src/primitives/Hash/toHex.ts +29 -0
- package/src/primitives/Hex/Hex.test.ts +327 -153
- package/src/primitives/Hex/assertSize.ts +41 -0
- package/src/primitives/Hex/concat.ts +37 -0
- package/src/primitives/Hex/from.ts +38 -0
- package/src/primitives/Hex/fromBigInt.ts +40 -0
- package/src/primitives/Hex/fromBoolean.ts +29 -0
- package/src/primitives/Hex/fromNumber.ts +41 -0
- package/src/primitives/Hex/fromString.ts +28 -0
- package/src/primitives/Hex/index.ts +68 -37
- package/src/primitives/Hex/pad.ts +40 -0
- package/src/primitives/Hex/padRight.ts +39 -0
- package/src/primitives/Hex/size.ts +29 -0
- package/src/primitives/Hex/slice.ts +42 -0
- package/src/primitives/Hex/toBigInt.ts +27 -0
- package/src/primitives/Hex/toBoolean.ts +38 -0
- package/src/primitives/Hex/toNumber.ts +37 -0
- package/src/primitives/Hex/toStringHex.ts +39 -0
- package/src/primitives/Hex/trim.ts +27 -0
- package/src/primitives/Hex/validate.ts +37 -0
- package/src/primitives/Hex/xor.ts +39 -0
- package/src/primitives/Opcode/OpcodeSchema.ts +1 -1
- package/src/primitives/Opcode/disassemble.ts +15 -0
- package/src/primitives/Opcode/dupPosition.ts +15 -0
- package/src/primitives/Opcode/format.ts +15 -0
- package/src/primitives/Opcode/getters.ts +54 -0
- package/src/primitives/Opcode/index.ts +301 -11
- package/src/primitives/Opcode/info.ts +18 -0
- package/src/primitives/Opcode/jumpDests.ts +15 -0
- package/src/primitives/Opcode/logTopics.ts +15 -0
- package/src/primitives/Opcode/name.ts +15 -0
- package/src/primitives/Opcode/parse.ts +15 -0
- package/src/primitives/Opcode/predicates.ts +72 -0
- package/src/primitives/Opcode/pushBytes.ts +15 -0
- package/src/primitives/Opcode/pushOpcode.ts +15 -0
- package/src/primitives/Opcode/swapPosition.ts +15 -0
- package/src/primitives/Rlp/decodeBatch.ts +46 -0
- package/src/primitives/Rlp/decodeObject.ts +46 -0
- package/src/primitives/Rlp/decodeValue.ts +51 -0
- package/src/primitives/Rlp/encodeBatch.ts +50 -0
- package/src/primitives/Rlp/encodeObject.ts +48 -0
- package/src/primitives/Rlp/encodeVariadic.ts +49 -0
- package/src/primitives/Rlp/equals.ts +22 -0
- package/src/primitives/Rlp/from.ts +44 -0
- package/src/primitives/Rlp/fromJSON.ts +45 -0
- package/src/primitives/Rlp/getEncodedLength.ts +47 -0
- package/src/primitives/Rlp/getLength.ts +44 -0
- package/src/primitives/Rlp/index.ts +67 -14
- package/src/primitives/Rlp/isBytesData.ts +21 -0
- package/src/primitives/Rlp/isCanonical.ts +32 -0
- package/src/primitives/Rlp/isData.ts +21 -0
- package/src/primitives/Rlp/isList.ts +46 -0
- package/src/primitives/Rlp/isListData.ts +21 -0
- package/src/primitives/Rlp/isString.ts +46 -0
- package/src/primitives/Rlp/toJSON.ts +20 -0
- package/src/primitives/Rlp/toRaw.ts +31 -0
- package/src/primitives/Signature/Signature.test.ts +217 -0
- package/src/primitives/Signature/from.ts +38 -0
- package/src/primitives/Signature/fromBytes.ts +31 -0
- package/src/primitives/Signature/fromCompact.ts +33 -0
- package/src/primitives/Signature/fromDER.ts +35 -0
- package/src/primitives/Signature/fromEd25519.ts +24 -0
- package/src/primitives/Signature/fromHex.ts +29 -0
- package/src/primitives/Signature/fromP256.ts +25 -0
- package/src/primitives/Signature/fromRpc.ts +38 -0
- package/src/primitives/Signature/fromSecp256k1.ts +29 -0
- package/src/primitives/Signature/fromTuple.ts +33 -0
- package/src/primitives/Signature/getR.ts +24 -0
- package/src/primitives/Signature/getS.ts +24 -0
- package/src/primitives/Signature/getV.ts +24 -0
- package/src/primitives/Signature/index.ts +61 -11
- package/src/primitives/Signature/toDER.ts +24 -0
- package/src/primitives/Signature/toHex.ts +24 -0
- package/src/primitives/Signature/toRpc.ts +35 -0
- package/src/primitives/Signature/toTuple.ts +29 -0
- package/src/primitives/Signature/verify.ts +31 -0
- package/src/primitives/Siwe/create.ts +56 -0
- package/src/primitives/Siwe/hash.ts +27 -0
- package/src/primitives/Siwe/index.ts +57 -21
- package/src/primitives/Siwe/parse.ts +24 -0
- package/src/primitives/Siwe/verify.ts +47 -0
- package/src/primitives/Transaction/Transaction.test.ts +309 -0
- package/src/primitives/Transaction/index.ts +467 -2
- package/src/primitives/Uint/Uint.test.ts +200 -0
- package/src/primitives/Uint/dividedBy.ts +34 -0
- package/src/primitives/Uint/from.ts +35 -0
- package/src/primitives/Uint/fromAbiEncoded.ts +29 -0
- package/src/primitives/Uint/fromBigInt.ts +30 -0
- package/src/primitives/Uint/fromBytes.ts +32 -0
- package/src/primitives/Uint/fromHex.ts +32 -0
- package/src/primitives/Uint/fromNumber.ts +30 -0
- package/src/primitives/Uint/index.ts +90 -45
- package/src/primitives/Uint/isUint256.ts +25 -0
- package/src/primitives/Uint/isValid.ts +25 -0
- package/src/primitives/Uint/modulo.ts +34 -0
- package/src/primitives/Uint/toHex.ts +31 -0
- package/src/primitives/Uint/tryFrom.ts +30 -0
- package/src/services/Contract/Contract.test.ts +46 -41
- package/src/services/Contract/Contract.ts +25 -29
- package/src/services/Contract/ContractTypes.ts +6 -3
- package/src/services/Contract/estimateGas.test.ts +21 -9
- package/src/services/Contract/estimateGas.ts +21 -23
- package/src/services/Debug/Debug.ts +1 -1
- package/src/services/Debug/DebugService.ts +1 -1
- package/src/services/FeeEstimator/DefaultFeeEstimator.ts +10 -6
- package/src/services/FeeEstimator/FeeEstimator.test.ts +68 -62
- package/src/services/Multicall/BalanceResolver.ts +1 -1
- package/src/services/Multicall/GetBalance.ts +1 -1
- package/src/services/Multicall/Multicall.ts +1 -1
- package/src/services/NonceManager/DefaultNonceManager.ts +4 -7
- package/src/services/NonceManager/NonceManager.test.ts +20 -33
- package/src/services/Provider/Provider.test.ts +155 -349
- package/src/services/Provider/Provider.ts +14 -1180
- package/src/services/Provider/ProviderService.ts +14 -1199
- package/src/services/Provider/actions/multicall.test.ts +29 -39
- package/src/services/Provider/actions/multicall.ts +2 -2
- package/src/services/Provider/actions/readContract.test.ts +45 -50
- package/src/services/Provider/actions/readContract.ts +2 -6
- package/src/services/Provider/actions/simulateContract.test.ts +55 -232
- package/src/services/Provider/actions/simulateContract.ts +2 -3
- package/src/services/Provider/ens/getEnsAddress.ts +11 -14
- package/src/services/Provider/ens/getEnsName.ts +15 -18
- package/src/services/Provider/ens/getEnsResolver.ts +11 -14
- package/src/services/Provider/ens/getEnsText.ts +15 -18
- package/src/services/Provider/functions/backfillBlocks.ts +97 -0
- package/src/services/Provider/functions/call.ts +45 -0
- package/src/services/Provider/functions/createAccessList.ts +61 -0
- package/src/services/Provider/functions/createBlockFilter.ts +41 -0
- package/src/services/Provider/functions/createEventFilter.ts +43 -0
- package/src/services/Provider/functions/createPendingTransactionFilter.ts +41 -0
- package/src/services/Provider/functions/estimateGas.ts +52 -0
- package/src/services/Provider/functions/getAccounts.ts +40 -0
- package/src/services/Provider/functions/getBalance.ts +50 -0
- package/src/services/Provider/functions/getBlobBaseFee.ts +46 -0
- package/src/services/Provider/functions/getBlock.ts +95 -0
- package/src/services/Provider/functions/getBlockNumber.ts +51 -0
- package/src/services/Provider/functions/getBlockReceipts.ts +78 -0
- package/src/services/Provider/functions/getBlockTransactionCount.ts +86 -0
- package/src/services/Provider/functions/getChainId.ts +46 -0
- package/src/services/Provider/functions/getCode.ts +43 -0
- package/src/services/Provider/functions/getCoinbase.ts +40 -0
- package/src/services/Provider/functions/getFeeHistory.ts +85 -0
- package/src/services/Provider/functions/getFilterChanges.ts +42 -0
- package/src/services/Provider/functions/getFilterLogs.ts +44 -0
- package/src/services/Provider/functions/getGasPrice.ts +46 -0
- package/src/services/Provider/functions/getHashrate.ts +46 -0
- package/src/services/Provider/functions/getLogs.ts +45 -0
- package/src/services/Provider/functions/getMaxPriorityFeePerGas.ts +46 -0
- package/src/services/Provider/functions/getMining.ts +40 -0
- package/src/services/Provider/functions/getProof.ts +52 -0
- package/src/services/Provider/functions/getProtocolVersion.ts +40 -0
- package/src/services/Provider/functions/getStorageAt.ts +52 -0
- package/src/services/Provider/functions/getSyncing.ts +56 -0
- package/src/services/Provider/functions/getTransaction.ts +57 -0
- package/src/services/Provider/functions/getTransactionByBlockHashAndIndex.ts +73 -0
- package/src/services/Provider/functions/getTransactionByBlockNumberAndIndex.ts +86 -0
- package/src/services/Provider/functions/getTransactionConfirmations.ts +70 -0
- package/src/services/Provider/functions/getTransactionCount.ts +50 -0
- package/src/services/Provider/functions/getTransactionReceipt.ts +57 -0
- package/src/services/Provider/functions/getUncle.ts +97 -0
- package/src/services/Provider/functions/getUncleCount.ts +86 -0
- package/src/services/Provider/functions/index.ts +73 -0
- package/src/services/Provider/functions/netVersion.ts +40 -0
- package/src/services/Provider/functions/sendRawTransaction.ts +40 -0
- package/src/services/Provider/functions/sendTransaction.ts +48 -0
- package/src/services/Provider/functions/sign.ts +50 -0
- package/src/services/Provider/functions/signTransaction.ts +52 -0
- package/src/services/Provider/functions/simulateV1.ts +95 -0
- package/src/services/Provider/functions/simulateV2.ts +51 -0
- package/src/services/Provider/functions/subscribe.ts +49 -0
- package/src/services/Provider/functions/uninstallFilter.ts +40 -0
- package/src/services/Provider/functions/unsubscribe.ts +41 -0
- package/src/services/Provider/functions/waitForTransactionReceipt.ts +168 -0
- package/src/services/Provider/functions/watchBlocks.ts +98 -0
- package/src/services/Provider/index.ts +29 -178
- package/src/services/Provider/types.ts +780 -0
- package/src/services/Provider/utils.ts +204 -0
- package/src/services/RawProvider/ForkProviderTransport.ts +2 -3
- package/src/services/RawProvider/HttpProviderTransport.ts +3 -3
- package/src/services/RawProvider/InMemoryProviderTransport.ts +3 -3
- package/src/services/RawProvider/WebSocketProviderTransport.ts +3 -3
- package/src/services/Signer/Signer.test.ts +211 -187
- package/src/services/Signer/Signer.ts +26 -16
- package/src/services/Signer/actions/deployContract.test.ts +125 -105
- package/src/services/Signer/actions/deployContract.ts +3 -2
- package/src/services/Signer/actions/prepareAuthorization.test.ts +47 -48
- package/src/services/Signer/actions/prepareAuthorization.ts +3 -3
- package/src/services/Signer/actions/signAuthorization.test.ts +39 -45
- package/src/services/Signer/actions/signAuthorization.ts +3 -3
- package/src/services/Signer/actions/writeContract.test.ts +41 -57
- package/src/services/Transport/FallbackTransport.ts +3 -3
- package/src/services/Transport/HttpTransport.ts +3 -3
- package/src/services/Transport/config.ts +7 -7
- package/src/services/Transport/index.ts +3 -4
- package/src/services/errors.test.ts +3 -8
- package/src/services/index.ts +8 -90
- package/src/services/presets/index.ts +9 -10
- package/src/services/presets/presets.test.ts +14 -29
- package/src/standards/ERC165.test.ts +19 -20
- package/src/standards/ERC165.ts +9 -11
- package/src/type-exports.test.ts +37 -0
- package/dist/AccountService-BetXokad.d.ts +0 -1717
- package/dist/RpcResolver-BpvqybjD.d.ts +0 -6439
- package/src/services/Provider/Account.ts +0 -33
- package/src/services/Provider/AccountService.ts +0 -84
- package/src/services/Provider/Blocks.ts +0 -32
- package/src/services/Provider/BlocksService.ts +0 -73
- package/src/services/Provider/Events.ts +0 -33
- package/src/services/Provider/EventsService.ts +0 -71
- package/src/services/Provider/Network.ts +0 -41
- package/src/services/Provider/NetworkService.ts +0 -114
- package/src/services/Provider/Simulation.ts +0 -34
- package/src/services/Provider/SimulationService.ts +0 -161
- package/src/services/Provider/Streaming.ts +0 -30
- package/src/services/Provider/StreamingService.ts +0 -58
- package/src/services/Provider/Transaction.ts +0 -39
- package/src/services/Provider/TransactionService.ts +0 -83
- package/src/services/Provider/filters.ts +0 -91
- package/src/services/Provider/getBlobBaseFee.ts +0 -170
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module validation
|
|
3
|
+
* @description ENS validation functions
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import { Effect } from "effect";
|
|
7
|
+
import { Ens } from "@tevm/voltaire";
|
|
8
|
+
import type { EnsType } from "./String.js";
|
|
9
|
+
|
|
10
|
+
type EnsError =
|
|
11
|
+
| Ens.DisallowedCharacterError
|
|
12
|
+
| Ens.EmptyLabelError
|
|
13
|
+
| Ens.IllegalMixtureError
|
|
14
|
+
| Ens.InvalidLabelExtensionError
|
|
15
|
+
| Ens.InvalidUtf8Error
|
|
16
|
+
| Ens.WholeConfusableError;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Check if value is valid ENS name (pure)
|
|
20
|
+
*/
|
|
21
|
+
export const isValid = (name: string): boolean => Ens.isValid(name);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Type guard for EnsType
|
|
25
|
+
*/
|
|
26
|
+
export const is = (value: unknown): value is EnsType => Ens.is(value);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Validate ENS name, throwing on error
|
|
30
|
+
*
|
|
31
|
+
* @param name - ENS name to validate
|
|
32
|
+
* @returns Effect that succeeds if valid, fails with EnsError if invalid
|
|
33
|
+
*/
|
|
34
|
+
export const validate = (name: string): Effect.Effect<void, EnsError> =>
|
|
35
|
+
Effect.try({
|
|
36
|
+
try: () => Ens.validate(name),
|
|
37
|
+
catch: (e) => e as EnsError,
|
|
38
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module accessors
|
|
3
|
+
* @description Pure EventLog accessor functions
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as EventLog from "@tevm/voltaire/EventLog";
|
|
7
|
+
import type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
8
|
+
import type { HashType } from "@tevm/voltaire/Hash";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get topic at index 0 (event signature)
|
|
12
|
+
*/
|
|
13
|
+
export const getTopic0 = (log: EventLogType): HashType | undefined =>
|
|
14
|
+
EventLog.getTopic0(log);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Get event signature hash
|
|
18
|
+
*/
|
|
19
|
+
export const getSignature = (log: EventLogType): HashType | undefined =>
|
|
20
|
+
EventLog.getSignature(log);
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Get all indexed topics (topics 1-3)
|
|
24
|
+
*/
|
|
25
|
+
export const getIndexedTopics = (log: EventLogType): readonly HashType[] =>
|
|
26
|
+
EventLog.getIndexedTopics(log);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Get indexed parameters (alias for getIndexedTopics)
|
|
30
|
+
*/
|
|
31
|
+
export const getIndexed = (log: EventLogType): readonly HashType[] =>
|
|
32
|
+
EventLog.getIndexed(log);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module clone
|
|
3
|
+
* @description Pure EventLog clone/copy functions
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as EventLog from "@tevm/voltaire/EventLog";
|
|
7
|
+
import type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Create deep clone of EventLog
|
|
11
|
+
*/
|
|
12
|
+
export const clone = (log: EventLogType): EventLogType => EventLog.clone(log);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Copy EventLog (alias for clone)
|
|
16
|
+
*/
|
|
17
|
+
export const copy = (log: EventLogType): EventLogType => EventLog.copy(log);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module create
|
|
3
|
+
* @description Effect-wrapped EventLog constructors
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import { Effect } from "effect";
|
|
7
|
+
import * as EventLog from "@tevm/voltaire/EventLog";
|
|
8
|
+
import type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
9
|
+
import type { AddressType } from "@tevm/voltaire/Address";
|
|
10
|
+
import type { HashType } from "@tevm/voltaire/Hash";
|
|
11
|
+
|
|
12
|
+
interface EventLogInput {
|
|
13
|
+
address: AddressType;
|
|
14
|
+
topics: HashType[];
|
|
15
|
+
data: Uint8Array;
|
|
16
|
+
blockNumber?: bigint;
|
|
17
|
+
transactionHash?: HashType;
|
|
18
|
+
transactionIndex?: number;
|
|
19
|
+
blockHash?: HashType;
|
|
20
|
+
logIndex?: number;
|
|
21
|
+
removed?: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Create EventLog from raw values
|
|
26
|
+
*
|
|
27
|
+
* @param input - EventLog data
|
|
28
|
+
* @returns Effect yielding EventLogType
|
|
29
|
+
*/
|
|
30
|
+
export const create = (input: EventLogInput): Effect.Effect<EventLogType, Error> =>
|
|
31
|
+
Effect.try({
|
|
32
|
+
try: () => EventLog.create(input),
|
|
33
|
+
catch: (e) => e as Error,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Create EventLog from various input formats
|
|
38
|
+
*
|
|
39
|
+
* @param input - EventLog data or compatible object
|
|
40
|
+
* @returns Effect yielding EventLogType
|
|
41
|
+
*/
|
|
42
|
+
export const from = (input: unknown): Effect.Effect<EventLogType, Error> =>
|
|
43
|
+
Effect.try({
|
|
44
|
+
try: () => EventLog.from(input as EventLogInput),
|
|
45
|
+
catch: (e) => e as Error,
|
|
46
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module filtering
|
|
3
|
+
* @description Pure EventLog filtering functions
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as EventLog from "@tevm/voltaire/EventLog";
|
|
7
|
+
import type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
8
|
+
import type { AddressType } from "@tevm/voltaire/Address";
|
|
9
|
+
import type { HashType } from "@tevm/voltaire/Hash";
|
|
10
|
+
|
|
11
|
+
interface LogFilter {
|
|
12
|
+
address?: AddressType | AddressType[];
|
|
13
|
+
topics?: (HashType | HashType[] | null)[];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Check if log matches given address
|
|
18
|
+
*/
|
|
19
|
+
export const matchesAddress = (
|
|
20
|
+
log: EventLogType,
|
|
21
|
+
address: AddressType | AddressType[],
|
|
22
|
+
): boolean => EventLog.matchesAddress(log, address);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Check if log matches topic filter
|
|
26
|
+
*/
|
|
27
|
+
export const matchesTopics = (
|
|
28
|
+
log: EventLogType,
|
|
29
|
+
topics: (HashType | HashType[] | null)[],
|
|
30
|
+
): boolean => EventLog.matchesTopics(log, topics);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Check if log matches full filter (address + topics)
|
|
34
|
+
*/
|
|
35
|
+
export const matchesFilter = (log: EventLogType, filter: LogFilter): boolean =>
|
|
36
|
+
EventLog.matchesFilter(log, filter);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Filter array of logs by filter criteria
|
|
40
|
+
*/
|
|
41
|
+
export const filterLogs = (logs: EventLogType[], filter: LogFilter): EventLogType[] =>
|
|
42
|
+
EventLog.filterLogs(logs, filter);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Sort logs by block number, transaction index, and log index
|
|
46
|
+
*/
|
|
47
|
+
export const sortLogs = (logs: EventLogType[]): EventLogType[] =>
|
|
48
|
+
EventLog.sortLogs(logs);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module EventLog
|
|
3
|
-
* @description
|
|
3
|
+
* @description Effect-based operations for EVM event logs.
|
|
4
4
|
*
|
|
5
5
|
* ## Type Declarations
|
|
6
6
|
*
|
|
@@ -12,12 +12,102 @@
|
|
|
12
12
|
* }
|
|
13
13
|
* ```
|
|
14
14
|
*
|
|
15
|
+
* ## Schemas
|
|
16
|
+
*
|
|
17
|
+
* | Schema | Input | Output |
|
|
18
|
+
* |--------|-------|--------|
|
|
19
|
+
* | `EventLog.Rpc` | RPC log object | EventLogType |
|
|
20
|
+
* | `EventLog.Schema` | RPC log object | EventLogType |
|
|
21
|
+
*
|
|
22
|
+
* ## Constructors (Effect-wrapped)
|
|
23
|
+
*
|
|
24
|
+
* ```typescript
|
|
25
|
+
* EventLog.create(input) // Effect<EventLogType, Error>
|
|
26
|
+
* EventLog.from(input) // Effect<EventLogType, Error>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* ## Accessors (Pure)
|
|
30
|
+
*
|
|
31
|
+
* ```typescript
|
|
32
|
+
* EventLog.getTopic0(log) // HashType | undefined
|
|
33
|
+
* EventLog.getSignature(log) // HashType | undefined
|
|
34
|
+
* EventLog.getIndexed(log) // readonly HashType[]
|
|
35
|
+
* EventLog.getIndexedTopics(log) // readonly HashType[]
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* ## Filtering (Pure)
|
|
39
|
+
*
|
|
40
|
+
* ```typescript
|
|
41
|
+
* EventLog.matchesAddress(log, address) // boolean
|
|
42
|
+
* EventLog.matchesTopics(log, topics) // boolean
|
|
43
|
+
* EventLog.matchesFilter(log, filter) // boolean
|
|
44
|
+
* EventLog.filterLogs(logs, filter) // EventLogType[]
|
|
45
|
+
* EventLog.sortLogs(logs) // EventLogType[]
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* ## Status (Pure)
|
|
49
|
+
*
|
|
50
|
+
* ```typescript
|
|
51
|
+
* EventLog.isRemoved(log) // boolean
|
|
52
|
+
* EventLog.wasRemoved(log) // boolean
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ## Clone/Copy (Pure)
|
|
56
|
+
*
|
|
57
|
+
* ```typescript
|
|
58
|
+
* EventLog.clone(log) // EventLogType
|
|
59
|
+
* EventLog.copy(log) // EventLogType
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* ## Conversion (Pure)
|
|
63
|
+
*
|
|
64
|
+
* ```typescript
|
|
65
|
+
* EventLog.toRpc(log) // RpcLog
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import * as EventLog from 'voltaire-effect/primitives/EventLog'
|
|
71
|
+
* import * as Schema from 'effect/Schema'
|
|
72
|
+
*
|
|
73
|
+
* const log = Schema.decodeSync(EventLog.Rpc)({
|
|
74
|
+
* address: '0x...',
|
|
75
|
+
* topics: ['0x...'],
|
|
76
|
+
* data: new Uint8Array(32),
|
|
77
|
+
* })
|
|
78
|
+
*
|
|
79
|
+
* const signature = EventLog.getSignature(log)
|
|
80
|
+
* const transfers = EventLog.filterLogs(logs, { topics: [transferTopic] })
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
15
83
|
* @since 0.0.1
|
|
16
84
|
*/
|
|
85
|
+
|
|
86
|
+
// Types
|
|
87
|
+
export type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
88
|
+
|
|
89
|
+
// Schemas
|
|
17
90
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Schema,
|
|
91
|
+
EventLogSchema,
|
|
92
|
+
EventLogTypeSchema,
|
|
93
|
+
Rpc,
|
|
94
|
+
Schema,
|
|
23
95
|
} from "./Rpc.js";
|
|
96
|
+
|
|
97
|
+
// Constructors (Effect-wrapped)
|
|
98
|
+
export { create, from } from "./create.js";
|
|
99
|
+
|
|
100
|
+
// Accessors (Pure)
|
|
101
|
+
export { getTopic0, getSignature, getIndexed, getIndexedTopics } from "./accessors.js";
|
|
102
|
+
|
|
103
|
+
// Filtering (Pure)
|
|
104
|
+
export { matchesAddress, matchesTopics, matchesFilter, filterLogs, sortLogs } from "./filtering.js";
|
|
105
|
+
|
|
106
|
+
// Status (Pure)
|
|
107
|
+
export { isRemoved, wasRemoved } from "./status.js";
|
|
108
|
+
|
|
109
|
+
// Clone/Copy (Pure)
|
|
110
|
+
export { clone, copy } from "./clone.js";
|
|
111
|
+
|
|
112
|
+
// Conversion (Pure)
|
|
113
|
+
export { toRpc } from "./toRpc.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module status
|
|
3
|
+
* @description Pure EventLog status functions
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as EventLog from "@tevm/voltaire/EventLog";
|
|
7
|
+
import type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Check if log was removed due to reorg
|
|
11
|
+
*/
|
|
12
|
+
export const isRemoved = (log: EventLogType): boolean => EventLog.isRemoved(log);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Check if log was removed (alias)
|
|
16
|
+
*/
|
|
17
|
+
export const wasRemoved = (log: EventLogType): boolean => EventLog.wasRemoved(log);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module toRpc
|
|
3
|
+
* @description Convert EventLog to RPC format
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import type { EventLogType } from "@tevm/voltaire/EventLog";
|
|
7
|
+
import * as Hex from "@tevm/voltaire/Hex";
|
|
8
|
+
|
|
9
|
+
interface RpcLog {
|
|
10
|
+
address: string;
|
|
11
|
+
topics: string[];
|
|
12
|
+
data: string;
|
|
13
|
+
blockNumber?: string;
|
|
14
|
+
transactionHash?: string;
|
|
15
|
+
transactionIndex?: string;
|
|
16
|
+
blockHash?: string;
|
|
17
|
+
logIndex?: string;
|
|
18
|
+
removed?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Convert EventLog to RPC response format
|
|
23
|
+
*/
|
|
24
|
+
export const toRpc = (log: EventLogType): RpcLog => {
|
|
25
|
+
const result: RpcLog = {
|
|
26
|
+
address: Hex.fromBytes(log.address),
|
|
27
|
+
topics: log.topics.map((t) => Hex.fromBytes(t)),
|
|
28
|
+
data: Hex.fromBytes(log.data),
|
|
29
|
+
};
|
|
30
|
+
if (log.blockNumber !== undefined) {
|
|
31
|
+
result.blockNumber = `0x${log.blockNumber.toString(16)}`;
|
|
32
|
+
}
|
|
33
|
+
if (log.transactionHash !== undefined) {
|
|
34
|
+
result.transactionHash = Hex.fromBytes(log.transactionHash);
|
|
35
|
+
}
|
|
36
|
+
if (log.transactionIndex !== undefined) {
|
|
37
|
+
result.transactionIndex = `0x${log.transactionIndex.toString(16)}`;
|
|
38
|
+
}
|
|
39
|
+
if (log.blockHash !== undefined) {
|
|
40
|
+
result.blockHash = Hex.fromBytes(log.blockHash);
|
|
41
|
+
}
|
|
42
|
+
if (log.logIndex !== undefined) {
|
|
43
|
+
result.logIndex = `0x${log.logIndex.toString(16)}`;
|
|
44
|
+
}
|
|
45
|
+
if (log.removed !== undefined) {
|
|
46
|
+
result.removed = log.removed;
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
@@ -22,13 +22,13 @@ const HardforkTypeSchema = S.declare<HardforkType>(
|
|
|
22
22
|
* @example
|
|
23
23
|
* ```ts
|
|
24
24
|
* import * as S from 'effect/Schema'
|
|
25
|
-
* import {
|
|
25
|
+
* import { HardforkSchema } from 'voltaire-effect/primitives/Hardfork'
|
|
26
26
|
*
|
|
27
|
-
* const fork = S.decodeSync(
|
|
27
|
+
* const fork = S.decodeSync(HardforkSchema)('london')
|
|
28
28
|
* ```
|
|
29
29
|
* @since 0.0.1
|
|
30
30
|
*/
|
|
31
|
-
export const
|
|
31
|
+
export const HardforkSchema: S.Schema<HardforkType, string> = S.transformOrFail(
|
|
32
32
|
S.String,
|
|
33
33
|
HardforkTypeSchema,
|
|
34
34
|
{
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module allIds
|
|
3
|
+
* @description Get all hardfork IDs (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Get all hardfork IDs in order
|
|
10
|
+
*
|
|
11
|
+
* @returns Array of all hardfork types in chronological order
|
|
12
|
+
*/
|
|
13
|
+
export const allIds = Hardfork.allIds;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module allNames
|
|
3
|
+
* @description Get all hardfork names (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Get all hardfork names in order
|
|
10
|
+
*
|
|
11
|
+
* @returns Array of all hardfork names in chronological order
|
|
12
|
+
*/
|
|
13
|
+
export const allNames = Hardfork.allNames;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module compare
|
|
3
|
+
* @description Compare hardforks (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
import type { HardforkType } from "@tevm/voltaire/Hardfork";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Compare two hardforks chronologically
|
|
11
|
+
*
|
|
12
|
+
* @param a - First hardfork
|
|
13
|
+
* @param b - Second hardfork
|
|
14
|
+
* @returns -1 if a < b, 0 if equal, 1 if a > b
|
|
15
|
+
*/
|
|
16
|
+
export const compare: (a: HardforkType, b: HardforkType) => number =
|
|
17
|
+
Hardfork.compare;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module comparisons
|
|
3
|
+
* @description Hardfork comparison predicates (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
import type { HardforkType } from "@tevm/voltaire/Hardfork";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Check if a > b chronologically
|
|
11
|
+
*/
|
|
12
|
+
export const gt: (a: HardforkType, b: HardforkType) => boolean = Hardfork.gt;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Check if a >= b chronologically
|
|
16
|
+
*/
|
|
17
|
+
export const gte: (a: HardforkType, b: HardforkType) => boolean = Hardfork.gte;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Check if a < b chronologically
|
|
21
|
+
*/
|
|
22
|
+
export const lt: (a: HardforkType, b: HardforkType) => boolean = Hardfork.lt;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Check if a <= b chronologically
|
|
26
|
+
*/
|
|
27
|
+
export const lte: (a: HardforkType, b: HardforkType) => boolean = Hardfork.lte;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Check if fork is after a minimum fork
|
|
31
|
+
*/
|
|
32
|
+
export const isAfter: (fork: HardforkType, minFork: HardforkType) => boolean =
|
|
33
|
+
Hardfork.isAfter;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Check if fork is at least a minimum fork
|
|
37
|
+
*/
|
|
38
|
+
export const isAtLeast: (fork: HardforkType, minFork: HardforkType) => boolean =
|
|
39
|
+
Hardfork.isAtLeast;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Check if fork is before a maximum fork
|
|
43
|
+
*/
|
|
44
|
+
export const isBefore: (fork: HardforkType, maxFork: HardforkType) => boolean =
|
|
45
|
+
Hardfork.isBefore;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module equals
|
|
3
|
+
* @description Check hardfork equality (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
import type { HardforkType } from "@tevm/voltaire/Hardfork";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Check if two hardforks are equal
|
|
11
|
+
*
|
|
12
|
+
* @param a - First hardfork
|
|
13
|
+
* @param b - Second hardfork
|
|
14
|
+
* @returns true if hardforks are the same
|
|
15
|
+
*/
|
|
16
|
+
export const equals: (a: HardforkType, b: HardforkType) => boolean =
|
|
17
|
+
Hardfork.equals;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module features
|
|
3
|
+
* @description Hardfork feature checks (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
import type { HardforkType } from "@tevm/voltaire/Hardfork";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Check if hardfork has EIP-1153 (transient storage)
|
|
11
|
+
*/
|
|
12
|
+
export const hasEIP1153: (fork: HardforkType) => boolean = Hardfork.hasEIP1153;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Check if hardfork has EIP-1559 (fee market)
|
|
16
|
+
*/
|
|
17
|
+
export const hasEIP1559: (fork: HardforkType) => boolean = Hardfork.hasEIP1559;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Check if hardfork has EIP-3855 (PUSH0)
|
|
21
|
+
*/
|
|
22
|
+
export const hasEIP3855: (fork: HardforkType) => boolean = Hardfork.hasEIP3855;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Check if hardfork has EIP-4844 (blobs)
|
|
26
|
+
*/
|
|
27
|
+
export const hasEIP4844: (fork: HardforkType) => boolean = Hardfork.hasEIP4844;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Check if hardfork supports blob transactions
|
|
31
|
+
*/
|
|
32
|
+
export const supportsBlobs: (fork: HardforkType) => boolean =
|
|
33
|
+
Hardfork.supportsBlobs;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Check if hardfork supports EIP-1559 fee market
|
|
37
|
+
*/
|
|
38
|
+
export const supportsEIP1559: (fork: HardforkType) => boolean =
|
|
39
|
+
Hardfork.supportsEIP1559;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Check if hardfork supports PUSH0 opcode
|
|
43
|
+
*/
|
|
44
|
+
export const supportsPUSH0: (fork: HardforkType) => boolean =
|
|
45
|
+
Hardfork.supportsPUSH0;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Check if hardfork supports transient storage
|
|
49
|
+
*/
|
|
50
|
+
export const supportsTransientStorage: (fork: HardforkType) => boolean =
|
|
51
|
+
Hardfork.supportsTransientStorage;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if hardfork is Proof of Stake
|
|
55
|
+
*/
|
|
56
|
+
export const isPoS: (fork: HardforkType) => boolean = Hardfork.isPoS;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Check if hardfork is post-Merge
|
|
60
|
+
*/
|
|
61
|
+
export const isPostMerge: (fork: HardforkType) => boolean = Hardfork.isPostMerge;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module fromString
|
|
3
|
+
* @description Parse hardfork from string (pure)
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Hardfork from "@tevm/voltaire/Hardfork";
|
|
7
|
+
import type { HardforkType } from "@tevm/voltaire/Hardfork";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Parse a hardfork from string name
|
|
11
|
+
*
|
|
12
|
+
* @param name - Hardfork name (case insensitive)
|
|
13
|
+
* @returns HardforkType or undefined if invalid
|
|
14
|
+
*/
|
|
15
|
+
export const fromString: (name: string) => HardforkType | undefined =
|
|
16
|
+
Hardfork.fromString;
|