ox 1.0.0-beta.2 → 1.0.0-beta.21
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/core/Abi.d.ts +6 -2
- package/dist/core/Abi.d.ts.map +1 -1
- package/dist/core/Abi.js +6 -3
- package/dist/core/Abi.js.map +1 -1
- package/dist/core/AbiConstructor.d.ts +2 -1
- package/dist/core/AbiConstructor.d.ts.map +1 -1
- package/dist/core/AbiConstructor.js +2 -2
- package/dist/core/AbiConstructor.js.map +1 -1
- package/dist/core/AbiError.d.ts +3 -1
- package/dist/core/AbiError.d.ts.map +1 -1
- package/dist/core/AbiError.js +2 -2
- package/dist/core/AbiError.js.map +1 -1
- package/dist/core/AbiEvent.d.ts +3 -1
- package/dist/core/AbiEvent.d.ts.map +1 -1
- package/dist/core/AbiEvent.js +2 -2
- package/dist/core/AbiEvent.js.map +1 -1
- package/dist/core/AbiFunction.d.ts +3 -1
- package/dist/core/AbiFunction.d.ts.map +1 -1
- package/dist/core/AbiFunction.js +2 -2
- package/dist/core/AbiFunction.js.map +1 -1
- package/dist/core/AbiItem.d.ts +6 -3
- package/dist/core/AbiItem.d.ts.map +1 -1
- package/dist/core/AbiItem.js +9 -7
- package/dist/core/AbiItem.js.map +1 -1
- package/dist/core/AbiParameter.d.ts +88 -0
- package/dist/core/AbiParameter.d.ts.map +1 -0
- package/dist/core/AbiParameter.js +82 -0
- package/dist/core/AbiParameter.js.map +1 -0
- package/dist/core/AbiParameters.d.ts +58 -2
- package/dist/core/AbiParameters.d.ts.map +1 -1
- package/dist/core/AbiParameters.js +60 -6
- package/dist/core/AbiParameters.js.map +1 -1
- package/dist/core/AccountProof.d.ts +3 -1
- package/dist/core/AccountProof.d.ts.map +1 -1
- package/dist/core/AccountProof.js +3 -4
- package/dist/core/AccountProof.js.map +1 -1
- package/dist/core/Authorization.d.ts +6 -2
- package/dist/core/Authorization.d.ts.map +1 -1
- package/dist/core/Authorization.js +3 -2
- package/dist/core/Authorization.js.map +1 -1
- package/dist/core/Block.d.ts +3 -1
- package/dist/core/Block.d.ts.map +1 -1
- package/dist/core/Block.js +12 -13
- package/dist/core/Block.js.map +1 -1
- package/dist/core/BlockOverrides.d.ts +5 -1
- package/dist/core/BlockOverrides.d.ts.map +1 -1
- package/dist/core/BlockOverrides.js +12 -12
- package/dist/core/BlockOverrides.js.map +1 -1
- package/dist/core/Filter.d.ts +3 -1
- package/dist/core/Filter.d.ts.map +1 -1
- package/dist/core/Filter.js +4 -4
- package/dist/core/Filter.js.map +1 -1
- package/dist/core/Log.d.ts +4 -2
- package/dist/core/Log.d.ts.map +1 -1
- package/dist/core/Log.js +4 -4
- package/dist/core/Log.js.map +1 -1
- package/dist/core/Rlp.d.ts +27 -5
- package/dist/core/Rlp.d.ts.map +1 -1
- package/dist/core/Rlp.js +40 -4
- package/dist/core/Rlp.js.map +1 -1
- package/dist/core/RpcSchema.d.ts +2 -2
- package/dist/core/Signature.d.ts +3 -1
- package/dist/core/Signature.d.ts.map +1 -1
- package/dist/core/Signature.js +2 -1
- package/dist/core/Signature.js.map +1 -1
- package/dist/core/StateOverrides.d.ts +5 -1
- package/dist/core/StateOverrides.d.ts.map +1 -1
- package/dist/core/StateOverrides.js +4 -4
- package/dist/core/StateOverrides.js.map +1 -1
- package/dist/core/Transaction.d.ts +3 -1
- package/dist/core/Transaction.d.ts.map +1 -1
- package/dist/core/Transaction.js +26 -26
- package/dist/core/Transaction.js.map +1 -1
- package/dist/core/TransactionReceipt.d.ts +3 -1
- package/dist/core/TransactionReceipt.d.ts.map +1 -1
- package/dist/core/TransactionReceipt.js +8 -8
- package/dist/core/TransactionReceipt.js.map +1 -1
- package/dist/core/TransactionRequest.d.ts +3 -1
- package/dist/core/TransactionRequest.d.ts.map +1 -1
- package/dist/core/TransactionRequest.js +11 -10
- package/dist/core/TransactionRequest.js.map +1 -1
- package/dist/core/TxEnvelope.d.ts +3 -1
- package/dist/core/TxEnvelope.d.ts.map +1 -1
- package/dist/core/TxEnvelope.js.map +1 -1
- package/dist/core/TxEnvelopeEip1559.d.ts +3 -1
- package/dist/core/TxEnvelopeEip1559.d.ts.map +1 -1
- package/dist/core/TxEnvelopeEip1559.js +12 -11
- package/dist/core/TxEnvelopeEip1559.js.map +1 -1
- package/dist/core/TxEnvelopeEip2930.d.ts +3 -1
- package/dist/core/TxEnvelopeEip2930.d.ts.map +1 -1
- package/dist/core/TxEnvelopeEip2930.js +10 -9
- package/dist/core/TxEnvelopeEip2930.js.map +1 -1
- package/dist/core/TxEnvelopeEip4844.d.ts +3 -1
- package/dist/core/TxEnvelopeEip4844.d.ts.map +1 -1
- package/dist/core/TxEnvelopeEip4844.js +16 -13
- package/dist/core/TxEnvelopeEip4844.js.map +1 -1
- package/dist/core/TxEnvelopeEip7702.d.ts +3 -1
- package/dist/core/TxEnvelopeEip7702.d.ts.map +1 -1
- package/dist/core/TxEnvelopeEip7702.js +12 -11
- package/dist/core/TxEnvelopeEip7702.js.map +1 -1
- package/dist/core/TxEnvelopeLegacy.d.ts +7 -1
- package/dist/core/TxEnvelopeLegacy.d.ts.map +1 -1
- package/dist/core/TxEnvelopeLegacy.js +9 -8
- package/dist/core/TxEnvelopeLegacy.js.map +1 -1
- package/dist/core/Withdrawal.d.ts +4 -2
- package/dist/core/Withdrawal.d.ts.map +1 -1
- package/dist/core/Withdrawal.js +4 -4
- package/dist/core/Withdrawal.js.map +1 -1
- package/dist/core/internal/abiParameters.d.ts.map +1 -1
- package/dist/core/internal/abiParameters.js +21 -3
- package/dist/core/internal/abiParameters.js.map +1 -1
- package/dist/core/internal/human-readable/errors.d.ts +103 -0
- package/dist/core/internal/human-readable/errors.d.ts.map +1 -0
- package/dist/core/internal/human-readable/errors.js +142 -0
- package/dist/core/internal/human-readable/errors.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbi.d.ts +19 -0
- package/dist/core/internal/human-readable/formatAbi.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbi.js +18 -0
- package/dist/core/internal/human-readable/formatAbi.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbiItem.d.ts +23 -0
- package/dist/core/internal/human-readable/formatAbiItem.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbiItem.js +25 -0
- package/dist/core/internal/human-readable/formatAbiItem.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameter.d.ts +41 -0
- package/dist/core/internal/human-readable/formatAbiParameter.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameter.js +36 -0
- package/dist/core/internal/human-readable/formatAbiParameter.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameters.d.ts +26 -0
- package/dist/core/internal/human-readable/formatAbiParameters.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameters.js +19 -0
- package/dist/core/internal/human-readable/formatAbiParameters.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbi.d.ts +22 -0
- package/dist/core/internal/human-readable/parseAbi.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbi.js +22 -0
- package/dist/core/internal/human-readable/parseAbi.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbiItem.d.ts +23 -0
- package/dist/core/internal/human-readable/parseAbiItem.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbiItem.js +30 -0
- package/dist/core/internal/human-readable/parseAbiItem.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameter.d.ts +28 -0
- package/dist/core/internal/human-readable/parseAbiParameter.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameter.js +32 -0
- package/dist/core/internal/human-readable/parseAbiParameter.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameters.d.ts +38 -0
- package/dist/core/internal/human-readable/parseAbiParameters.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameters.js +39 -0
- package/dist/core/internal/human-readable/parseAbiParameters.js.map +1 -0
- package/dist/core/internal/human-readable/regex.d.ts +9 -0
- package/dist/core/internal/human-readable/regex.d.ts.map +1 -0
- package/dist/core/internal/human-readable/regex.js +12 -0
- package/dist/core/internal/human-readable/regex.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/cache.d.ts +22 -0
- package/dist/core/internal/human-readable/runtime/cache.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/cache.js +86 -0
- package/dist/core/internal/human-readable/runtime/cache.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/signatures.d.ts +39 -0
- package/dist/core/internal/human-readable/runtime/signatures.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/signatures.js +67 -0
- package/dist/core/internal/human-readable/runtime/signatures.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/structs.d.ts +3 -0
- package/dist/core/internal/human-readable/runtime/structs.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/structs.js +79 -0
- package/dist/core/internal/human-readable/runtime/structs.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/utils.d.ts +205 -0
- package/dist/core/internal/human-readable/runtime/utils.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/utils.js +232 -0
- package/dist/core/internal/human-readable/runtime/utils.js.map +1 -0
- package/dist/core/internal/human-readable/types/signatures.d.ts +38 -0
- package/dist/core/internal/human-readable/types/signatures.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types/signatures.js +2 -0
- package/dist/core/internal/human-readable/types/signatures.js.map +1 -0
- package/dist/core/internal/human-readable/types/structs.d.ts +48 -0
- package/dist/core/internal/human-readable/types/structs.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types/structs.js +2 -0
- package/dist/core/internal/human-readable/types/structs.js.map +1 -0
- package/dist/core/internal/human-readable/types/utils.d.ts +163 -0
- package/dist/core/internal/human-readable/types/utils.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types/utils.js +2 -0
- package/dist/core/internal/human-readable/types/utils.js.map +1 -0
- package/dist/core/internal/human-readable/types.d.ts +29 -0
- package/dist/core/internal/human-readable/types.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types.js +2 -0
- package/dist/core/internal/human-readable/types.js.map +1 -0
- package/dist/core/internal/quantity.d.ts +15 -0
- package/dist/core/internal/quantity.d.ts.map +1 -1
- package/dist/core/internal/quantity.js +23 -0
- package/dist/core/internal/quantity.js.map +1 -1
- package/dist/core/internal/rpcSchemas/eth.d.ts +56 -10
- package/dist/core/internal/rpcSchemas/eth.d.ts.map +1 -1
- package/dist/erc4337/UserOperation.d.ts +3 -1
- package/dist/erc4337/UserOperation.d.ts.map +1 -1
- package/dist/erc4337/UserOperation.js +11 -10
- package/dist/erc4337/UserOperation.js.map +1 -1
- package/dist/erc4337/UserOperationGas.d.ts +5 -1
- package/dist/erc4337/UserOperationGas.d.ts.map +1 -1
- package/dist/erc4337/UserOperationGas.js +8 -8
- package/dist/erc4337/UserOperationGas.js.map +1 -1
- package/dist/erc4337/UserOperationReceipt.d.ts +5 -1
- package/dist/erc4337/UserOperationReceipt.d.ts.map +1 -1
- package/dist/erc4337/UserOperationReceipt.js +4 -4
- package/dist/erc4337/UserOperationReceipt.js.map +1 -1
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -1
- package/dist/tempo/AuthorizationTempo.d.ts +6 -2
- package/dist/tempo/AuthorizationTempo.d.ts.map +1 -1
- package/dist/tempo/AuthorizationTempo.js +3 -2
- package/dist/tempo/AuthorizationTempo.js.map +1 -1
- package/dist/tempo/Channel.d.ts +8 -14
- package/dist/tempo/Channel.d.ts.map +1 -1
- package/dist/tempo/Channel.js +4 -8
- package/dist/tempo/Channel.js.map +1 -1
- package/dist/tempo/KeyAuthorization.d.ts +8 -6
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +10 -8
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/MultisigConfig.d.ts +37 -85
- package/dist/tempo/MultisigConfig.d.ts.map +1 -1
- package/dist/tempo/MultisigConfig.js +39 -83
- package/dist/tempo/MultisigConfig.js.map +1 -1
- package/dist/tempo/PoolId.d.ts +8 -7
- package/dist/tempo/PoolId.d.ts.map +1 -1
- package/dist/tempo/PoolId.js +10 -6
- package/dist/tempo/PoolId.js.map +1 -1
- package/dist/tempo/RpcSchemaTempo.d.ts +1 -1
- package/dist/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +35 -31
- package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.js +56 -51
- package/dist/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/tempo/Transaction.d.ts +19 -6
- package/dist/tempo/Transaction.d.ts.map +1 -1
- package/dist/tempo/Transaction.js +41 -13
- package/dist/tempo/Transaction.js.map +1 -1
- package/dist/tempo/TransactionReceipt.d.ts +5 -3
- package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
- package/dist/tempo/TransactionReceipt.js +8 -1
- package/dist/tempo/TransactionReceipt.js.map +1 -1
- package/dist/tempo/TransactionRequest.d.ts +18 -3
- package/dist/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/tempo/TransactionRequest.js +72 -35
- package/dist/tempo/TransactionRequest.js.map +1 -1
- package/dist/tempo/TxEnvelopeTempo.d.ts +2 -3
- package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/tempo/TxEnvelopeTempo.js +5 -6
- package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
- package/dist/tempo/index.d.ts +6 -26
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +6 -26
- package/dist/tempo/index.js.map +1 -1
- package/dist/zod/Abi.d.ts +214 -0
- package/dist/zod/Abi.d.ts.map +1 -0
- package/dist/zod/Abi.js +5 -0
- package/dist/zod/Abi.js.map +1 -0
- package/dist/zod/AbiConstructor.d.ts +58 -0
- package/dist/zod/AbiConstructor.d.ts.map +1 -0
- package/dist/zod/AbiConstructor.js +18 -0
- package/dist/zod/AbiConstructor.js.map +1 -0
- package/dist/zod/AbiError.d.ts +20 -0
- package/dist/zod/AbiError.d.ts.map +1 -0
- package/dist/zod/AbiError.js +9 -0
- package/dist/zod/AbiError.js.map +1 -0
- package/dist/zod/AbiEvent.d.ts +23 -0
- package/dist/zod/AbiEvent.d.ts.map +1 -0
- package/dist/zod/AbiEvent.js +11 -0
- package/dist/zod/AbiEvent.js.map +1 -0
- package/dist/zod/AbiFallback.d.ts +16 -0
- package/dist/zod/AbiFallback.d.ts.map +1 -0
- package/dist/zod/AbiFallback.js +16 -0
- package/dist/zod/AbiFallback.js.map +1 -0
- package/dist/zod/AbiFunction.d.ts +109 -0
- package/dist/zod/AbiFunction.d.ts.map +1 -0
- package/dist/zod/AbiFunction.js +26 -0
- package/dist/zod/AbiFunction.js.map +1 -0
- package/dist/zod/AbiItem.d.ts +216 -0
- package/dist/zod/AbiItem.d.ts.map +1 -0
- package/dist/zod/AbiItem.js +26 -0
- package/dist/zod/AbiItem.js.map +1 -0
- package/dist/zod/AbiParameter.d.ts +32 -0
- package/dist/zod/AbiParameter.d.ts.map +1 -0
- package/dist/zod/AbiParameter.js +28 -0
- package/dist/zod/AbiParameter.js.map +1 -0
- package/dist/zod/AbiParameters.d.ts +30 -0
- package/dist/zod/AbiParameters.d.ts.map +1 -0
- package/dist/zod/AbiParameters.js +6 -0
- package/dist/zod/AbiParameters.js.map +1 -0
- package/dist/zod/AbiReceive.d.ts +6 -0
- package/dist/zod/AbiReceive.d.ts.map +1 -0
- package/dist/zod/AbiReceive.js +7 -0
- package/dist/zod/AbiReceive.js.map +1 -0
- package/dist/zod/AccountProof.d.ts +20 -0
- package/dist/zod/AccountProof.d.ts.map +1 -1
- package/dist/zod/AccountProof.js +24 -14
- package/dist/zod/AccountProof.js.map +1 -1
- package/dist/zod/Authorization.d.ts +43 -0
- package/dist/zod/Authorization.d.ts.map +1 -1
- package/dist/zod/Authorization.js +36 -16
- package/dist/zod/Authorization.js.map +1 -1
- package/dist/zod/BigInt.d.ts +2 -0
- package/dist/zod/BigInt.d.ts.map +1 -1
- package/dist/zod/BigInt.js +6 -1
- package/dist/zod/BigInt.js.map +1 -1
- package/dist/zod/Block.d.ts +219 -0
- package/dist/zod/Block.d.ts.map +1 -1
- package/dist/zod/Block.js +24 -20
- package/dist/zod/Block.js.map +1 -1
- package/dist/zod/BlockOverrides.d.ts +16 -0
- package/dist/zod/BlockOverrides.d.ts.map +1 -1
- package/dist/zod/BlockOverrides.js +15 -10
- package/dist/zod/BlockOverrides.js.map +1 -1
- package/dist/zod/Filter.d.ts +14 -0
- package/dist/zod/Filter.d.ts.map +1 -1
- package/dist/zod/Filter.js +24 -19
- package/dist/zod/Filter.js.map +1 -1
- package/dist/zod/Log.d.ts +15 -2
- package/dist/zod/Log.d.ts.map +1 -1
- package/dist/zod/Log.js +18 -13
- package/dist/zod/Log.js.map +1 -1
- package/dist/zod/Number.d.ts +2 -0
- package/dist/zod/Number.d.ts.map +1 -1
- package/dist/zod/Number.js +6 -1
- package/dist/zod/Number.js.map +1 -1
- package/dist/zod/RpcSchema.d.ts +318 -112
- package/dist/zod/RpcSchema.d.ts.map +1 -1
- package/dist/zod/RpcSchema.js +30 -82
- package/dist/zod/RpcSchema.js.map +1 -1
- package/dist/zod/Signature.d.ts +6 -0
- package/dist/zod/Signature.d.ts.map +1 -1
- package/dist/zod/Signature.js +9 -1
- package/dist/zod/Signature.js.map +1 -1
- package/dist/zod/Solidity.d.ts +15 -0
- package/dist/zod/Solidity.d.ts.map +1 -0
- package/dist/zod/Solidity.js +41 -0
- package/dist/zod/Solidity.js.map +1 -0
- package/dist/zod/StateOverrides.d.ts +32 -0
- package/dist/zod/StateOverrides.d.ts.map +1 -1
- package/dist/zod/StateOverrides.js +25 -18
- package/dist/zod/StateOverrides.js.map +1 -1
- package/dist/zod/Transaction.d.ts +312 -0
- package/dist/zod/Transaction.d.ts.map +1 -1
- package/dist/zod/Transaction.js +138 -93
- package/dist/zod/Transaction.js.map +1 -1
- package/dist/zod/TransactionEnvelope.d.ts +222 -0
- package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
- package/dist/zod/TransactionEnvelope.js +19 -3
- package/dist/zod/TransactionEnvelope.js.map +1 -1
- package/dist/zod/TransactionReceipt.d.ts +32 -1
- package/dist/zod/TransactionReceipt.d.ts.map +1 -1
- package/dist/zod/TransactionReceipt.js +24 -19
- package/dist/zod/TransactionReceipt.js.map +1 -1
- package/dist/zod/TransactionRequest.d.ts +34 -0
- package/dist/zod/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/TransactionRequest.js +28 -23
- package/dist/zod/TransactionRequest.js.map +1 -1
- package/dist/zod/TxEnvelopeEip1559.d.ts +44 -0
- package/dist/zod/TxEnvelopeEip1559.d.ts.map +1 -1
- package/dist/zod/TxEnvelopeEip1559.js +23 -14
- package/dist/zod/TxEnvelopeEip1559.js.map +1 -1
- package/dist/zod/TxEnvelopeEip2930.d.ts +42 -0
- package/dist/zod/TxEnvelopeEip2930.d.ts.map +1 -1
- package/dist/zod/TxEnvelopeEip2930.js +21 -12
- package/dist/zod/TxEnvelopeEip2930.js.map +1 -1
- package/dist/zod/TxEnvelopeEip4844.d.ts +58 -0
- package/dist/zod/TxEnvelopeEip4844.d.ts.map +1 -1
- package/dist/zod/TxEnvelopeEip4844.js +29 -20
- package/dist/zod/TxEnvelopeEip4844.js.map +1 -1
- package/dist/zod/TxEnvelopeEip7702.d.ts +60 -0
- package/dist/zod/TxEnvelopeEip7702.d.ts.map +1 -1
- package/dist/zod/TxEnvelopeEip7702.js +25 -16
- package/dist/zod/TxEnvelopeEip7702.js.map +1 -1
- package/dist/zod/TxEnvelopeLegacy.d.ts +34 -0
- package/dist/zod/TxEnvelopeLegacy.d.ts.map +1 -1
- package/dist/zod/TxEnvelopeLegacy.js +19 -10
- package/dist/zod/TxEnvelopeLegacy.js.map +1 -1
- package/dist/zod/TypedData.d.ts +226 -0
- package/dist/zod/TypedData.d.ts.map +1 -0
- package/dist/zod/TypedData.js +84 -0
- package/dist/zod/TypedData.js.map +1 -0
- package/dist/zod/Uint.d.ts +4 -0
- package/dist/zod/Uint.d.ts.map +1 -1
- package/dist/zod/Uint.js +14 -1
- package/dist/zod/Uint.js.map +1 -1
- package/dist/zod/Withdrawal.d.ts +7 -0
- package/dist/zod/Withdrawal.d.ts.map +1 -1
- package/dist/zod/Withdrawal.js +11 -6
- package/dist/zod/Withdrawal.js.map +1 -1
- package/dist/zod/internal/Integer.d.ts +15 -0
- package/dist/zod/internal/Integer.d.ts.map +1 -1
- package/dist/zod/internal/Integer.js +39 -0
- package/dist/zod/internal/Integer.js.map +1 -1
- package/dist/zod/internal/TransactionEnvelope.d.ts +38 -28
- package/dist/zod/internal/TransactionEnvelope.d.ts.map +1 -1
- package/dist/zod/internal/TransactionEnvelope.js +22 -15
- package/dist/zod/internal/TransactionEnvelope.js.map +1 -1
- package/dist/zod/internal/rpcSchemas/Eth.d.ts +260 -123
- package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
- package/dist/zod/internal/rpcSchemas/Eth.js +17 -6
- package/dist/zod/internal/rpcSchemas/Eth.js.map +1 -1
- package/dist/zod/internal/rpcSchemas/Wallet.d.ts +1 -1
- package/dist/zod/tempo/AuthorizationTempo.d.ts +405 -12
- package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
- package/dist/zod/tempo/AuthorizationTempo.js +20 -0
- package/dist/zod/tempo/AuthorizationTempo.js.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.d.ts +838 -69
- package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.js +49 -8
- package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +218 -36
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.d.ts +0 -6
- package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.js +0 -2
- package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +2203 -192
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/tempo/Transaction.js +113 -33
- package/dist/zod/tempo/Transaction.js.map +1 -1
- package/dist/zod/tempo/TransactionReceipt.d.ts +34 -1
- package/dist/zod/tempo/TransactionReceipt.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionReceipt.js +26 -21
- package/dist/zod/tempo/TransactionReceipt.js.map +1 -1
- package/dist/zod/tempo/TransactionRequest.d.ts +1049 -57
- package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.js +141 -26
- package/dist/zod/tempo/TransactionRequest.js.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts +225 -18
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.js +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.js.map +1 -1
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +0 -3
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
- package/dist/zod/tempo/z.d.ts +0 -1
- package/dist/zod/tempo/z.d.ts.map +1 -1
- package/dist/zod/tempo/z.js +0 -1
- package/dist/zod/tempo/z.js.map +1 -1
- package/dist/zod/z.d.ts +15 -3
- package/dist/zod/z.d.ts.map +1 -1
- package/dist/zod/z.js +15 -3
- package/dist/zod/z.js.map +1 -1
- package/package.json +66 -11
- package/src/CHANGELOG.md +18 -0
- package/src/core/Abi.bench.ts +30 -0
- package/src/core/Abi.ts +13 -4
- package/src/core/AbiConstructor.ts +3 -2
- package/src/core/AbiError.ts +6 -2
- package/src/core/AbiEvent.ts +6 -2
- package/src/core/AbiFunction.ts +6 -2
- package/src/core/AbiItem.bench.ts +19 -0
- package/src/core/AbiItem.ts +20 -10
- package/src/core/AbiParameter.bench.ts +35 -0
- package/src/core/AbiParameter.ts +126 -0
- package/src/core/AbiParameters.bench.ts +22 -0
- package/src/core/AbiParameters.ts +77 -8
- package/src/core/AccountProof.ts +7 -4
- package/src/core/Authorization.ts +11 -4
- package/src/core/Block.ts +24 -13
- package/src/core/BlockOverrides.ts +18 -13
- package/src/core/Filter.ts +8 -5
- package/src/core/Log.ts +10 -6
- package/src/core/Rlp.ts +66 -3
- package/src/core/RpcSchema.ts +2 -2
- package/src/core/Signature.ts +6 -2
- package/src/core/StateOverrides.ts +10 -5
- package/src/core/Transaction.ts +37 -26
- package/src/core/TransactionReceipt.ts +17 -8
- package/src/core/TransactionRequest.ts +21 -11
- package/src/core/TxEnvelope.ts +9 -2
- package/src/core/TxEnvelopeEip1559.ts +21 -12
- package/src/core/TxEnvelopeEip2930.ts +17 -10
- package/src/core/TxEnvelopeEip4844.ts +25 -14
- package/src/core/TxEnvelopeEip7702.ts +21 -12
- package/src/core/TxEnvelopeLegacy.ts +20 -9
- package/src/core/Withdrawal.ts +9 -5
- package/src/core/_test/Abi.test.ts +4 -0
- package/src/core/_test/AbiItem.test.ts +3 -0
- package/src/core/_test/AbiParameter.test-d.ts +41 -0
- package/src/core/_test/AbiParameter.test.ts +84 -0
- package/src/core/_test/AbiParameters.decode.test.ts +88 -12
- package/src/core/_test/AbiParameters.encode.test.ts +68 -0
- package/src/core/_test/AbiParameters.test.ts +7 -0
- package/src/core/_test/AccountProof.test.ts +56 -0
- package/src/core/_test/Authorization.test.ts +29 -0
- package/src/core/_test/Block.test.ts +98 -0
- package/src/core/_test/BlockOverrides.test.ts +50 -0
- package/src/core/_test/Filter.test.ts +32 -0
- package/src/core/_test/Log.test.ts +42 -0
- package/src/core/_test/Rlp.test.ts +101 -0
- package/src/core/_test/RpcSchema.test-d.ts +12 -0
- package/src/core/_test/Signature.test.ts +14 -0
- package/src/core/_test/StateOverrides.test.ts +51 -0
- package/src/core/_test/Transaction.test.ts +64 -0
- package/src/core/_test/TransactionEnvelopeEip1559.test.ts +41 -0
- package/src/core/_test/TransactionEnvelopeEip2930.test.ts +38 -0
- package/src/core/_test/TransactionEnvelopeEip4844.test.ts +47 -0
- package/src/core/_test/TransactionEnvelopeEip7702.test.ts +71 -0
- package/src/core/_test/TransactionEnvelopeLegacy.test.ts +38 -0
- package/src/core/_test/TransactionReceipt.test.ts +54 -0
- package/src/core/_test/Withdrawal.test.ts +33 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/abiParameters.ts +21 -3
- package/src/core/internal/human-readable/_snap/formatAbi.test.ts.snap +74 -0
- package/src/core/internal/human-readable/_snap/parseAbi.test.ts.snap +2353 -0
- package/src/core/internal/human-readable/errors.test.ts +258 -0
- package/src/core/internal/human-readable/errors.ts +205 -0
- package/src/core/internal/human-readable/formatAbi.test-d.ts +144 -0
- package/src/core/internal/human-readable/formatAbi.test.ts +23 -0
- package/src/core/internal/human-readable/formatAbi.ts +37 -0
- package/src/core/internal/human-readable/formatAbiItem.test-d.ts +115 -0
- package/src/core/internal/human-readable/formatAbiItem.test.ts +102 -0
- package/src/core/internal/human-readable/formatAbiItem.ts +136 -0
- package/src/core/internal/human-readable/formatAbiParameter.test-d.ts +125 -0
- package/src/core/internal/human-readable/formatAbiParameter.test.ts +126 -0
- package/src/core/internal/human-readable/formatAbiParameter.ts +86 -0
- package/src/core/internal/human-readable/formatAbiParameters.test-d.ts +92 -0
- package/src/core/internal/human-readable/formatAbiParameters.test.ts +32 -0
- package/src/core/internal/human-readable/formatAbiParameters.ts +46 -0
- package/src/core/internal/human-readable/human-readable.bench-d.ts +58 -0
- package/src/core/internal/human-readable/integration.test.ts +68 -0
- package/src/core/internal/human-readable/parseAbi.test-d.ts +188 -0
- package/src/core/internal/human-readable/parseAbi.test.ts +82 -0
- package/src/core/internal/human-readable/parseAbi.ts +59 -0
- package/src/core/internal/human-readable/parseAbiItem.test-d.ts +183 -0
- package/src/core/internal/human-readable/parseAbiItem.test.ts +264 -0
- package/src/core/internal/human-readable/parseAbiItem.ts +91 -0
- package/src/core/internal/human-readable/parseAbiParameter.test-d.ts +68 -0
- package/src/core/internal/human-readable/parseAbiParameter.test.ts +207 -0
- package/src/core/internal/human-readable/parseAbiParameter.ts +95 -0
- package/src/core/internal/human-readable/parseAbiParameters.test-d.ts +160 -0
- package/src/core/internal/human-readable/parseAbiParameters.test.ts +80 -0
- package/src/core/internal/human-readable/parseAbiParameters.ts +123 -0
- package/src/core/internal/human-readable/regex.ts +15 -0
- package/src/core/internal/human-readable/runtime/cache.ts +96 -0
- package/src/core/internal/human-readable/runtime/signatures.test.ts +236 -0
- package/src/core/internal/human-readable/runtime/signatures.ts +106 -0
- package/src/core/internal/human-readable/runtime/structs.test.ts +210 -0
- package/src/core/internal/human-readable/runtime/structs.ts +97 -0
- package/src/core/internal/human-readable/runtime/utils.test.ts +717 -0
- package/src/core/internal/human-readable/runtime/utils.ts +344 -0
- package/src/core/internal/human-readable/types/signatures.test-d.ts +255 -0
- package/src/core/internal/human-readable/types/signatures.ts +369 -0
- package/src/core/internal/human-readable/types/structs.test-d.ts +221 -0
- package/src/core/internal/human-readable/types/structs.ts +88 -0
- package/src/core/internal/human-readable/types/utils.test-d.ts +1029 -0
- package/src/core/internal/human-readable/types/utils.ts +392 -0
- package/src/core/internal/human-readable/types.ts +69 -0
- package/src/core/internal/quantity.ts +29 -0
- package/src/core/internal/rpcSchemas/eth.ts +76 -10
- package/src/erc4337/UserOperation.ts +26 -11
- package/src/erc4337/UserOperationGas.ts +19 -8
- package/src/erc4337/UserOperationReceipt.ts +14 -4
- package/src/index.ts +38 -0
- package/src/tempo/AuthorizationTempo.ts +11 -4
- package/src/tempo/Channel.test.ts +2 -23
- package/src/tempo/Channel.ts +10 -22
- package/src/tempo/KeyAuthorization.test.ts +22 -0
- package/src/tempo/KeyAuthorization.ts +20 -14
- package/src/tempo/MultisigConfig.test.ts +54 -37
- package/src/tempo/MultisigConfig.ts +59 -134
- package/src/tempo/PoolId.test.ts +7 -41
- package/src/tempo/PoolId.ts +15 -10
- package/src/tempo/RpcSchemaTempo.ts +1 -1
- package/src/tempo/SignatureEnvelope.test.ts +118 -17
- package/src/tempo/SignatureEnvelope.ts +81 -73
- package/src/tempo/Transaction.test.ts +0 -15
- package/src/tempo/Transaction.ts +78 -19
- package/src/tempo/TransactionReceipt.test.ts +76 -0
- package/src/tempo/TransactionReceipt.ts +19 -5
- package/src/tempo/TransactionRequest.test.ts +174 -1
- package/src/tempo/TransactionRequest.ts +98 -39
- package/src/tempo/TxEnvelopeTempo.test.ts +2 -2
- package/src/tempo/TxEnvelopeTempo.ts +7 -7
- package/src/tempo/e2e.test.ts +228 -50
- package/src/tempo/index.ts +6 -26
- package/src/version.ts +1 -1
- package/src/zod/Abi.ts +5 -0
- package/src/zod/AbiConstructor.ts +24 -0
- package/src/zod/AbiError.ts +9 -0
- package/src/zod/AbiEvent.ts +11 -0
- package/src/zod/AbiFallback.ts +22 -0
- package/src/zod/AbiFunction.ts +32 -0
- package/src/zod/AbiItem.ts +28 -0
- package/src/zod/AbiParameter.ts +36 -0
- package/src/zod/AbiParameters.ts +7 -0
- package/src/zod/AbiReceive.ts +7 -0
- package/src/zod/AccountProof.ts +36 -14
- package/src/zod/Authorization.ts +65 -18
- package/src/zod/BigInt.ts +12 -1
- package/src/zod/Block.ts +68 -26
- package/src/zod/BlockOverrides.ts +24 -10
- package/src/zod/Filter.ts +26 -21
- package/src/zod/Log.ts +23 -13
- package/src/zod/Number.ts +12 -1
- package/src/zod/RpcSchema.ts +123 -29
- package/src/zod/Signature.ts +18 -3
- package/src/zod/Solidity.ts +83 -0
- package/src/zod/StateOverrides.ts +31 -19
- package/src/zod/Transaction.ts +254 -101
- package/src/zod/TransactionEnvelope.ts +27 -3
- package/src/zod/TransactionReceipt.ts +34 -19
- package/src/zod/TransactionRequest.ts +42 -23
- package/src/zod/TxEnvelopeEip1559.ts +34 -13
- package/src/zod/TxEnvelopeEip2930.ts +32 -11
- package/src/zod/TxEnvelopeEip4844.ts +40 -19
- package/src/zod/TxEnvelopeEip7702.ts +46 -15
- package/src/zod/TxEnvelopeLegacy.ts +30 -9
- package/src/zod/TypedData.ts +111 -0
- package/src/zod/Uint.ts +19 -0
- package/src/zod/Withdrawal.ts +18 -6
- package/src/zod/_test/Abi.test-d.ts +46 -0
- package/src/zod/_test/Abi.test.ts +163 -0
- package/src/zod/_test/AccountProof.test.ts +32 -0
- package/src/zod/_test/Authorization.test.ts +42 -0
- package/src/zod/_test/BigInt.test.ts +9 -1
- package/src/zod/_test/Block.test.ts +54 -0
- package/src/zod/_test/BlockOverrides.test.ts +35 -0
- package/src/zod/_test/Filter.test.ts +34 -0
- package/src/zod/_test/Log.test.ts +49 -0
- package/src/zod/_test/Number.test.ts +8 -1
- package/src/zod/_test/RpcSchema.test-d.ts +46 -0
- package/src/zod/_test/RpcSchema.test.ts +70 -0
- package/src/zod/_test/Signature.test.ts +10 -0
- package/src/zod/_test/StateOverrides.test.ts +26 -0
- package/src/zod/_test/Transaction.test.ts +30 -0
- package/src/zod/_test/TransactionEnvelope.test.ts +34 -0
- package/src/zod/_test/TransactionReceipt.test.ts +45 -1
- package/src/zod/_test/TransactionRequest.test.ts +31 -0
- package/src/zod/_test/TxEnvelope.test.ts +32 -0
- package/src/zod/_test/TypedData.test-d.ts +20 -0
- package/src/zod/_test/TypedData.test.ts +87 -0
- package/src/zod/_test/Uint.test.ts +15 -0
- package/src/zod/_test/Withdrawal.test.ts +35 -0
- package/src/zod/_test/z.test-d.ts +6 -0
- package/src/zod/_test/z.test.ts +17 -0
- package/src/zod/internal/Integer.ts +58 -0
- package/src/zod/internal/TransactionEnvelope.ts +33 -17
- package/src/zod/internal/rpcSchemas/Eth.ts +20 -6
- package/src/zod/tempo/AuthorizationTempo.ts +25 -0
- package/src/zod/tempo/KeyAuthorization.ts +58 -8
- package/src/zod/tempo/SignatureEnvelope.ts +0 -2
- package/src/zod/tempo/Transaction.ts +148 -33
- package/src/zod/tempo/TransactionReceipt.ts +36 -21
- package/src/zod/tempo/TransactionRequest.ts +154 -28
- package/src/zod/tempo/TxEnvelopeTempo.ts +1 -1
- package/src/zod/tempo/_test/AuthorizationTempo.test.ts +24 -0
- package/src/zod/tempo/_test/KeyAuthorization.test.ts +85 -0
- package/src/zod/tempo/_test/SignatureEnvelope.test.ts +0 -2
- package/src/zod/tempo/_test/Transaction.test.ts +178 -0
- package/src/zod/tempo/_test/TransactionReceipt.test.ts +26 -0
- package/src/zod/tempo/_test/TransactionRequest.test.ts +73 -0
- package/src/zod/tempo/z.ts +0 -1
- package/src/zod/z.ts +16 -2
- package/dist/tempo/TokenId.d.ts +0 -87
- package/dist/tempo/TokenId.d.ts.map +0 -1
- package/dist/tempo/TokenId.js +0 -123
- package/dist/tempo/TokenId.js.map +0 -1
- package/dist/zod/tempo/TokenId.d.ts +0 -6
- package/dist/zod/tempo/TokenId.d.ts.map +0 -1
- package/dist/zod/tempo/TokenId.js +0 -14
- package/dist/zod/tempo/TokenId.js.map +0 -1
- package/src/tempo/TokenId.bench.ts +0 -36
- package/src/tempo/TokenId.test.ts +0 -79
- package/src/tempo/TokenId.ts +0 -141
- package/src/zod/tempo/TokenId.ts +0 -15
- package/src/zod/tempo/_test/TokenId.test-d.ts +0 -17
- package/src/zod/tempo/_test/TokenId.test.ts +0 -21
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AbiItemType,
|
|
3
|
+
AbiType,
|
|
4
|
+
SolidityArray,
|
|
5
|
+
SolidityBytes,
|
|
6
|
+
SolidityString,
|
|
7
|
+
SolidityTuple,
|
|
8
|
+
} from 'abitype'
|
|
9
|
+
import { bytesRegex, execTyped, integerRegex, isTupleRegex } from '../regex.js'
|
|
10
|
+
import { UnknownSolidityTypeError } from '../errors.js'
|
|
11
|
+
import {
|
|
12
|
+
InvalidFunctionModifierError,
|
|
13
|
+
InvalidModifierError,
|
|
14
|
+
InvalidParameterError,
|
|
15
|
+
SolidityProtectedKeywordError,
|
|
16
|
+
} from '../errors.js'
|
|
17
|
+
import { InvalidSignatureError, UnknownSignatureError } from '../errors.js'
|
|
18
|
+
import { InvalidParenthesisError } from '../errors.js'
|
|
19
|
+
import type { FunctionModifier, Modifier } from '../types/signatures.js'
|
|
20
|
+
import type { StructLookup } from '../types/structs.js'
|
|
21
|
+
import { getParameterCacheKey, parameterCache } from './cache.js'
|
|
22
|
+
import {
|
|
23
|
+
eventModifiers,
|
|
24
|
+
execConstructorSignature,
|
|
25
|
+
execErrorSignature,
|
|
26
|
+
execEventSignature,
|
|
27
|
+
execFallbackSignature,
|
|
28
|
+
execFunctionSignature,
|
|
29
|
+
functionModifiers,
|
|
30
|
+
isConstructorSignature,
|
|
31
|
+
isErrorSignature,
|
|
32
|
+
isEventSignature,
|
|
33
|
+
isFallbackSignature,
|
|
34
|
+
isFunctionSignature,
|
|
35
|
+
isReceiveSignature,
|
|
36
|
+
} from './signatures.js'
|
|
37
|
+
|
|
38
|
+
export function parseSignature(signature: string, structs: StructLookup = {}) {
|
|
39
|
+
if (isFunctionSignature(signature))
|
|
40
|
+
return parseFunctionSignature(signature, structs)
|
|
41
|
+
|
|
42
|
+
if (isEventSignature(signature))
|
|
43
|
+
return parseEventSignature(signature, structs)
|
|
44
|
+
|
|
45
|
+
if (isErrorSignature(signature))
|
|
46
|
+
return parseErrorSignature(signature, structs)
|
|
47
|
+
|
|
48
|
+
if (isConstructorSignature(signature))
|
|
49
|
+
return parseConstructorSignature(signature, structs)
|
|
50
|
+
|
|
51
|
+
if (isFallbackSignature(signature)) return parseFallbackSignature(signature)
|
|
52
|
+
|
|
53
|
+
if (isReceiveSignature(signature))
|
|
54
|
+
return {
|
|
55
|
+
type: 'receive',
|
|
56
|
+
stateMutability: 'payable',
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
throw new UnknownSignatureError({ signature })
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function parseFunctionSignature(
|
|
63
|
+
signature: string,
|
|
64
|
+
structs: StructLookup = {},
|
|
65
|
+
) {
|
|
66
|
+
const match = execFunctionSignature(signature)
|
|
67
|
+
if (!match) throw new InvalidSignatureError({ signature, type: 'function' })
|
|
68
|
+
|
|
69
|
+
const inputParams = splitParameters(match.parameters)
|
|
70
|
+
const inputs = []
|
|
71
|
+
const inputLength = inputParams.length
|
|
72
|
+
for (let i = 0; i < inputLength; i++) {
|
|
73
|
+
inputs.push(
|
|
74
|
+
parseAbiParameter(inputParams[i]!, {
|
|
75
|
+
modifiers: functionModifiers,
|
|
76
|
+
structs,
|
|
77
|
+
type: 'function',
|
|
78
|
+
}),
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const outputs = []
|
|
83
|
+
if (match.returns) {
|
|
84
|
+
const outputParams = splitParameters(match.returns)
|
|
85
|
+
const outputLength = outputParams.length
|
|
86
|
+
for (let i = 0; i < outputLength; i++) {
|
|
87
|
+
outputs.push(
|
|
88
|
+
parseAbiParameter(outputParams[i]!, {
|
|
89
|
+
modifiers: functionModifiers,
|
|
90
|
+
structs,
|
|
91
|
+
type: 'function',
|
|
92
|
+
}),
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
name: match.name,
|
|
99
|
+
type: 'function',
|
|
100
|
+
stateMutability: match.stateMutability ?? 'nonpayable',
|
|
101
|
+
inputs,
|
|
102
|
+
outputs,
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function parseEventSignature(
|
|
107
|
+
signature: string,
|
|
108
|
+
structs: StructLookup = {},
|
|
109
|
+
) {
|
|
110
|
+
const match = execEventSignature(signature)
|
|
111
|
+
if (!match) throw new InvalidSignatureError({ signature, type: 'event' })
|
|
112
|
+
|
|
113
|
+
const params = splitParameters(match.parameters)
|
|
114
|
+
const abiParameters = []
|
|
115
|
+
const length = params.length
|
|
116
|
+
for (let i = 0; i < length; i++)
|
|
117
|
+
abiParameters.push(
|
|
118
|
+
parseAbiParameter(params[i]!, {
|
|
119
|
+
modifiers: eventModifiers,
|
|
120
|
+
structs,
|
|
121
|
+
type: 'event',
|
|
122
|
+
}),
|
|
123
|
+
)
|
|
124
|
+
return { name: match.name, type: 'event', inputs: abiParameters }
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export function parseErrorSignature(
|
|
128
|
+
signature: string,
|
|
129
|
+
structs: StructLookup = {},
|
|
130
|
+
) {
|
|
131
|
+
const match = execErrorSignature(signature)
|
|
132
|
+
if (!match) throw new InvalidSignatureError({ signature, type: 'error' })
|
|
133
|
+
|
|
134
|
+
const params = splitParameters(match.parameters)
|
|
135
|
+
const abiParameters = []
|
|
136
|
+
const length = params.length
|
|
137
|
+
for (let i = 0; i < length; i++)
|
|
138
|
+
abiParameters.push(
|
|
139
|
+
parseAbiParameter(params[i]!, { structs, type: 'error' }),
|
|
140
|
+
)
|
|
141
|
+
return { name: match.name, type: 'error', inputs: abiParameters }
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export function parseConstructorSignature(
|
|
145
|
+
signature: string,
|
|
146
|
+
structs: StructLookup = {},
|
|
147
|
+
) {
|
|
148
|
+
const match = execConstructorSignature(signature)
|
|
149
|
+
if (!match)
|
|
150
|
+
throw new InvalidSignatureError({ signature, type: 'constructor' })
|
|
151
|
+
|
|
152
|
+
const params = splitParameters(match.parameters)
|
|
153
|
+
const abiParameters = []
|
|
154
|
+
const length = params.length
|
|
155
|
+
for (let i = 0; i < length; i++)
|
|
156
|
+
abiParameters.push(
|
|
157
|
+
parseAbiParameter(params[i]!, { structs, type: 'constructor' }),
|
|
158
|
+
)
|
|
159
|
+
return {
|
|
160
|
+
type: 'constructor',
|
|
161
|
+
stateMutability: match.stateMutability ?? 'nonpayable',
|
|
162
|
+
inputs: abiParameters,
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export function parseFallbackSignature(signature: string) {
|
|
167
|
+
const match = execFallbackSignature(signature)
|
|
168
|
+
if (!match) throw new InvalidSignatureError({ signature, type: 'fallback' })
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
type: 'fallback',
|
|
172
|
+
stateMutability: match.stateMutability ?? 'nonpayable',
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const abiParameterWithoutTupleRegex =
|
|
177
|
+
/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/
|
|
178
|
+
const abiParameterWithTupleRegex =
|
|
179
|
+
/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/
|
|
180
|
+
const dynamicIntegerRegex = /^u?int$/
|
|
181
|
+
|
|
182
|
+
type ParseOptions = {
|
|
183
|
+
modifiers?: Set<Modifier>
|
|
184
|
+
structs?: StructLookup
|
|
185
|
+
type?: AbiItemType | 'struct'
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export function parseAbiParameter(param: string, options?: ParseOptions) {
|
|
189
|
+
// optional namespace cache by `type`
|
|
190
|
+
const parameterCacheKey = getParameterCacheKey(
|
|
191
|
+
param,
|
|
192
|
+
options?.type,
|
|
193
|
+
options?.structs,
|
|
194
|
+
)
|
|
195
|
+
if (parameterCache.has(parameterCacheKey))
|
|
196
|
+
return parameterCache.get(parameterCacheKey)!
|
|
197
|
+
|
|
198
|
+
const isTuple = isTupleRegex.test(param)
|
|
199
|
+
const match = execTyped<{
|
|
200
|
+
array?: string
|
|
201
|
+
modifier?: Modifier
|
|
202
|
+
name?: string
|
|
203
|
+
type: string
|
|
204
|
+
}>(
|
|
205
|
+
isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex,
|
|
206
|
+
param,
|
|
207
|
+
)
|
|
208
|
+
if (!match) throw new InvalidParameterError({ param })
|
|
209
|
+
|
|
210
|
+
if (match.name && isSolidityKeyword(match.name))
|
|
211
|
+
throw new SolidityProtectedKeywordError({ param, name: match.name })
|
|
212
|
+
|
|
213
|
+
const name = match.name ? { name: match.name } : {}
|
|
214
|
+
const indexed = match.modifier === 'indexed' ? { indexed: true } : {}
|
|
215
|
+
const structs = options?.structs ?? {}
|
|
216
|
+
let type: string
|
|
217
|
+
let components = {}
|
|
218
|
+
if (isTuple) {
|
|
219
|
+
type = 'tuple'
|
|
220
|
+
const params = splitParameters(match.type)
|
|
221
|
+
const components_ = []
|
|
222
|
+
const length = params.length
|
|
223
|
+
for (let i = 0; i < length; i++) {
|
|
224
|
+
// remove `modifiers` from `options` to prevent from being added to tuple components
|
|
225
|
+
components_.push(parseAbiParameter(params[i]!, { structs }))
|
|
226
|
+
}
|
|
227
|
+
components = { components: components_ }
|
|
228
|
+
} else if (match.type in structs) {
|
|
229
|
+
type = 'tuple'
|
|
230
|
+
components = { components: structs[match.type] }
|
|
231
|
+
} else if (dynamicIntegerRegex.test(match.type)) {
|
|
232
|
+
type = `${match.type}256`
|
|
233
|
+
} else if (match.type === 'address payable') {
|
|
234
|
+
type = 'address'
|
|
235
|
+
} else {
|
|
236
|
+
type = match.type
|
|
237
|
+
if (!(options?.type === 'struct') && !isSolidityType(type))
|
|
238
|
+
throw new UnknownSolidityTypeError({ type })
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (match.modifier) {
|
|
242
|
+
// Check if modifier exists, but is not allowed (e.g. `indexed` in `functionModifiers`)
|
|
243
|
+
if (!options?.modifiers?.has?.(match.modifier))
|
|
244
|
+
throw new InvalidModifierError({
|
|
245
|
+
param,
|
|
246
|
+
type: options?.type,
|
|
247
|
+
modifier: match.modifier,
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
// Check if resolved `type` is valid if there is a function modifier
|
|
251
|
+
if (
|
|
252
|
+
functionModifiers.has(match.modifier as FunctionModifier) &&
|
|
253
|
+
!isValidDataLocation(type, !!match.array)
|
|
254
|
+
)
|
|
255
|
+
throw new InvalidFunctionModifierError({
|
|
256
|
+
param,
|
|
257
|
+
type: options?.type,
|
|
258
|
+
modifier: match.modifier,
|
|
259
|
+
})
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const abiParameter = {
|
|
263
|
+
type: `${type}${match.array ?? ''}`,
|
|
264
|
+
...name,
|
|
265
|
+
...indexed,
|
|
266
|
+
...components,
|
|
267
|
+
}
|
|
268
|
+
parameterCache.set(parameterCacheKey, abiParameter)
|
|
269
|
+
return abiParameter
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// s/o latika for this
|
|
273
|
+
export function splitParameters(
|
|
274
|
+
params: string,
|
|
275
|
+
result: string[] = [],
|
|
276
|
+
current = '',
|
|
277
|
+
depth = 0,
|
|
278
|
+
): readonly string[] {
|
|
279
|
+
const length = params.trim().length
|
|
280
|
+
// biome-ignore lint/correctness/noUnreachable: recursive
|
|
281
|
+
for (let i = 0; i < length; i++) {
|
|
282
|
+
const char = params[i]
|
|
283
|
+
const tail = params.slice(i + 1)
|
|
284
|
+
switch (char) {
|
|
285
|
+
case ',':
|
|
286
|
+
return depth === 0
|
|
287
|
+
? splitParameters(tail, [...result, current.trim()])
|
|
288
|
+
: splitParameters(tail, result, `${current}${char}`, depth)
|
|
289
|
+
case '(':
|
|
290
|
+
return splitParameters(tail, result, `${current}${char}`, depth + 1)
|
|
291
|
+
case ')':
|
|
292
|
+
return splitParameters(tail, result, `${current}${char}`, depth - 1)
|
|
293
|
+
default:
|
|
294
|
+
return splitParameters(tail, result, `${current}${char}`, depth)
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if (current === '') return result
|
|
299
|
+
if (depth !== 0) throw new InvalidParenthesisError({ current, depth })
|
|
300
|
+
|
|
301
|
+
result.push(current.trim())
|
|
302
|
+
return result
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export function isSolidityType(
|
|
306
|
+
type: string,
|
|
307
|
+
): type is Exclude<AbiType, SolidityTuple | SolidityArray> {
|
|
308
|
+
return (
|
|
309
|
+
type === 'address' ||
|
|
310
|
+
type === 'bool' ||
|
|
311
|
+
type === 'function' ||
|
|
312
|
+
type === 'string' ||
|
|
313
|
+
bytesRegex.test(type) ||
|
|
314
|
+
integerRegex.test(type)
|
|
315
|
+
)
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
const protectedKeywordsRegex =
|
|
319
|
+
/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/
|
|
320
|
+
|
|
321
|
+
/** @internal */
|
|
322
|
+
export function isSolidityKeyword(name: string) {
|
|
323
|
+
return (
|
|
324
|
+
name === 'address' ||
|
|
325
|
+
name === 'bool' ||
|
|
326
|
+
name === 'function' ||
|
|
327
|
+
name === 'string' ||
|
|
328
|
+
name === 'tuple' ||
|
|
329
|
+
bytesRegex.test(name) ||
|
|
330
|
+
integerRegex.test(name) ||
|
|
331
|
+
protectedKeywordsRegex.test(name)
|
|
332
|
+
)
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/** @internal */
|
|
336
|
+
export function isValidDataLocation(
|
|
337
|
+
type: string,
|
|
338
|
+
isArray: boolean,
|
|
339
|
+
): type is Exclude<
|
|
340
|
+
AbiType,
|
|
341
|
+
SolidityString | Extract<SolidityBytes, 'bytes'> | SolidityArray
|
|
342
|
+
> {
|
|
343
|
+
return isArray || type === 'bytes' || type === 'string' || type === 'tuple'
|
|
344
|
+
}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { assertType, expectTypeOf, test } from 'vp/test'
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
IsConstructorSignature,
|
|
5
|
+
IsErrorSignature,
|
|
6
|
+
IsEventSignature,
|
|
7
|
+
IsFallbackSignature,
|
|
8
|
+
IsFunctionSignature,
|
|
9
|
+
IsName,
|
|
10
|
+
IsSignature,
|
|
11
|
+
IsSolidityKeyword,
|
|
12
|
+
IsStructSignature,
|
|
13
|
+
IsValidCharacter,
|
|
14
|
+
Signature,
|
|
15
|
+
Signatures,
|
|
16
|
+
SolidityKeywords,
|
|
17
|
+
ValidateName,
|
|
18
|
+
} from './signatures.js'
|
|
19
|
+
|
|
20
|
+
test('IsErrorSignature', () => {
|
|
21
|
+
// basic
|
|
22
|
+
assertType<IsErrorSignature<'error Foo()'>>(true)
|
|
23
|
+
|
|
24
|
+
// params
|
|
25
|
+
assertType<IsErrorSignature<'error Foo(string bar)'>>(true)
|
|
26
|
+
assertType<IsErrorSignature<'error Foo(string bar, string baz)'>>(true)
|
|
27
|
+
assertType<IsErrorSignature<'error Foo(string bar, (string baz))'>>(true)
|
|
28
|
+
|
|
29
|
+
// invalid
|
|
30
|
+
assertType<IsErrorSignature<'error ()'>>(false)
|
|
31
|
+
assertType<IsErrorSignature<'Foo()'>>(false)
|
|
32
|
+
assertType<IsErrorSignature<'error Foo(string bar'>>(false)
|
|
33
|
+
assertType<IsErrorSignature<'event Foo((string) indexed name)'>>(false)
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
test('IsEventSignature', () => {
|
|
37
|
+
// basic
|
|
38
|
+
assertType<IsEventSignature<'event Foo()'>>(true)
|
|
39
|
+
|
|
40
|
+
// params
|
|
41
|
+
assertType<IsEventSignature<'event Foo(string bar)'>>(true)
|
|
42
|
+
assertType<IsEventSignature<'event Foo(string bar, string baz)'>>(true)
|
|
43
|
+
assertType<IsEventSignature<'event Foo(string bar, (string baz))'>>(true)
|
|
44
|
+
|
|
45
|
+
// invalid
|
|
46
|
+
assertType<IsEventSignature<'event ()'>>(false)
|
|
47
|
+
assertType<IsEventSignature<'Foo()'>>(false)
|
|
48
|
+
assertType<IsEventSignature<'event Foo(string bar'>>(false)
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
test('IsFunctionSignature', () => {
|
|
52
|
+
// basic
|
|
53
|
+
assertType<IsFunctionSignature<'function foo()'>>(true)
|
|
54
|
+
assertType<IsFunctionSignature<'function foo() returns (uint256)'>>(true)
|
|
55
|
+
assertType<IsFunctionSignature<'function foo() returns(uint256)'>>(true)
|
|
56
|
+
assertType<IsFunctionSignature<'function foo() view'>>(true)
|
|
57
|
+
assertType<IsFunctionSignature<'function foo() public'>>(true)
|
|
58
|
+
// combinations
|
|
59
|
+
assertType<IsFunctionSignature<'function foo() view returns (uint256)'>>(true)
|
|
60
|
+
assertType<IsFunctionSignature<'function foo() view returns(uint256)'>>(true)
|
|
61
|
+
assertType<IsFunctionSignature<'function foo() public view'>>(true)
|
|
62
|
+
assertType<
|
|
63
|
+
IsFunctionSignature<'function foo() public view returns (uint256)'>
|
|
64
|
+
>(true)
|
|
65
|
+
assertType<
|
|
66
|
+
IsFunctionSignature<'function foo() public view returns(uint256)'>
|
|
67
|
+
>(true)
|
|
68
|
+
// params
|
|
69
|
+
assertType<IsFunctionSignature<'function foo(uint256, uint256)'>>(true)
|
|
70
|
+
assertType<IsFunctionSignature<'function foo(uint256) returns (uint256)'>>(
|
|
71
|
+
true,
|
|
72
|
+
)
|
|
73
|
+
assertType<IsFunctionSignature<'function foo(uint256) returns(uint256)'>>(
|
|
74
|
+
true,
|
|
75
|
+
)
|
|
76
|
+
assertType<IsFunctionSignature<'function foo(uint256) view'>>(true)
|
|
77
|
+
assertType<IsFunctionSignature<'function foo(uint256) public'>>(true)
|
|
78
|
+
assertType<
|
|
79
|
+
IsFunctionSignature<'function foo(uint256) view returns (uint256)'>
|
|
80
|
+
>(true)
|
|
81
|
+
assertType<
|
|
82
|
+
IsFunctionSignature<'function foo(uint256) view returns(uint256)'>
|
|
83
|
+
>(true)
|
|
84
|
+
assertType<IsFunctionSignature<'function foo(uint256) public view'>>(true)
|
|
85
|
+
assertType<
|
|
86
|
+
IsFunctionSignature<'function foo(uint256) public view returns (uint256)'>
|
|
87
|
+
>(true)
|
|
88
|
+
assertType<
|
|
89
|
+
IsFunctionSignature<'function foo(uint256) public view returns(uint256)'>
|
|
90
|
+
>(true)
|
|
91
|
+
assertType<
|
|
92
|
+
IsFunctionSignature<'function foo(uint256) public view returns (uint256 tokenId)'>
|
|
93
|
+
>(true)
|
|
94
|
+
assertType<
|
|
95
|
+
IsFunctionSignature<'function foo(uint256) public view returns(uint256 tokenId)'>
|
|
96
|
+
>(true)
|
|
97
|
+
assertType<
|
|
98
|
+
IsFunctionSignature<'function foo(uint256) public view returns (uint256 tokenId, uint256 balance)'>
|
|
99
|
+
>(true)
|
|
100
|
+
assertType<
|
|
101
|
+
IsFunctionSignature<'function foo(uint256) public view returns(uint256 tokenId, uint256 balance)'>
|
|
102
|
+
>(true)
|
|
103
|
+
|
|
104
|
+
// invalid
|
|
105
|
+
assertType<IsFunctionSignature<'function ()'>>(false)
|
|
106
|
+
assertType<IsFunctionSignature<'function foo() '>>(false)
|
|
107
|
+
assertType<IsFunctionSignature<'function foo() public'>>(false)
|
|
108
|
+
assertType<IsFunctionSignature<'function foo() re turns (uint256)'>>(false)
|
|
109
|
+
assertType<IsFunctionSignature<'function foo() re tur ns (uint256)'>>(false)
|
|
110
|
+
assertType<IsFunctionSignature<'foo()'>>(false)
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
test('IsStructSignature', () => {
|
|
114
|
+
// basic
|
|
115
|
+
assertType<IsStructSignature<'struct Foo {}'>>(true)
|
|
116
|
+
|
|
117
|
+
// properties
|
|
118
|
+
assertType<IsStructSignature<'struct Foo { string bar; }'>>(true)
|
|
119
|
+
assertType<IsStructSignature<'struct Foo { string bar; string baz; }'>>(true)
|
|
120
|
+
assertType<IsStructSignature<'struct Foo { string bar; (string baz) baz; }'>>(
|
|
121
|
+
true,
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
// invalid
|
|
125
|
+
assertType<IsStructSignature<'struct {}'>>(false)
|
|
126
|
+
assertType<IsStructSignature<'Foo {}'>>(false)
|
|
127
|
+
assertType<IsStructSignature<'struct Foo {string bar'>>(false)
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
test('IsConstructorSignature', () => {
|
|
131
|
+
assertType<IsConstructorSignature<'constructor()'>>(true)
|
|
132
|
+
assertType<IsConstructorSignature<'constructor() payable'>>(true)
|
|
133
|
+
assertType<IsConstructorSignature<'constructor(string)'>>(true)
|
|
134
|
+
assertType<IsConstructorSignature<'constructor(string name)'>>(true)
|
|
135
|
+
assertType<IsConstructorSignature<'constructor(string name, string symbol)'>>(
|
|
136
|
+
true,
|
|
137
|
+
)
|
|
138
|
+
assertType<IsConstructorSignature<'constructor(string memory name)'>>(true)
|
|
139
|
+
assertType<IsConstructorSignature<'constructor(string memory name) payable'>>(
|
|
140
|
+
true,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
assertType<IsConstructorSignature<'constructor()payable'>>(false)
|
|
144
|
+
assertType<IsConstructorSignature<'constructor(string'>>(false)
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
test('IsFallbackSignature', () => {
|
|
148
|
+
assertType<IsFallbackSignature<'fallback() external'>>(true)
|
|
149
|
+
assertType<IsFallbackSignature<'fallback() external payable'>>(true)
|
|
150
|
+
|
|
151
|
+
assertType<IsFallbackSignature<'fallback() externalpayable'>>(false)
|
|
152
|
+
assertType<IsFallbackSignature<'fallback() external nonpayable'>>(false)
|
|
153
|
+
assertType<IsFallbackSignature<'fallback()'>>(false)
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
test('IsSignature', () => {
|
|
157
|
+
// basic
|
|
158
|
+
assertType<IsSignature<'function foo()'>>(true)
|
|
159
|
+
assertType<IsSignature<'constructor()'>>(true)
|
|
160
|
+
assertType<IsSignature<'fallback() external'>>(true)
|
|
161
|
+
assertType<IsSignature<'receive() external payable'>>(true)
|
|
162
|
+
assertType<IsSignature<'event Foo()'>>(true)
|
|
163
|
+
assertType<IsSignature<'error Foo()'>>(true)
|
|
164
|
+
assertType<IsSignature<'struct Foo {}'>>(true)
|
|
165
|
+
|
|
166
|
+
// invalid
|
|
167
|
+
assertType<IsSignature<'foo()'>>(false)
|
|
168
|
+
assertType<IsSignature<'function ()'>>(false)
|
|
169
|
+
assertType<IsSignature<'constructor ()'>>(false)
|
|
170
|
+
assertType<IsSignature<'fallback ()'>>(false)
|
|
171
|
+
assertType<IsSignature<'receive() payable'>>(false)
|
|
172
|
+
assertType<IsSignature<'event ()'>>(false)
|
|
173
|
+
assertType<IsSignature<'error ()'>>(false)
|
|
174
|
+
assertType<IsSignature<'struct {}'>>(false)
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
test('Signature', () => {
|
|
178
|
+
assertType<Signature<'function foo()'>>('function foo()')
|
|
179
|
+
assertType<Signature<'function foo ()'>>([
|
|
180
|
+
'Error: Signature "function foo ()" is invalid.',
|
|
181
|
+
])
|
|
182
|
+
// assertType<Signature<'function foo??()'>>([
|
|
183
|
+
// 'Error: Signature "function foo??()" is invalid.',
|
|
184
|
+
// ])
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
test('Signatures', () => {
|
|
188
|
+
assertType<Signatures<['function foo()']>>(['function foo()'])
|
|
189
|
+
assertType<Signatures<['function foo ()']>>([
|
|
190
|
+
['Error: Signature "function foo ()" is invalid at position 0.'],
|
|
191
|
+
])
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
test('IsName', () => {
|
|
195
|
+
expectTypeOf<IsName<''>>().toEqualTypeOf<false>()
|
|
196
|
+
expectTypeOf<IsName<' '>>().toEqualTypeOf<false>()
|
|
197
|
+
expectTypeOf<IsName<'foo'>>().toEqualTypeOf<true>()
|
|
198
|
+
// no whitespace
|
|
199
|
+
expectTypeOf<IsName<' foo'>>().toEqualTypeOf<false>()
|
|
200
|
+
expectTypeOf<IsName<'foo '>>().toEqualTypeOf<false>()
|
|
201
|
+
expectTypeOf<IsName<' foo '>>().toEqualTypeOf<false>()
|
|
202
|
+
// no solidity keywords
|
|
203
|
+
expectTypeOf<IsName<'alias'>>().toEqualTypeOf<false>()
|
|
204
|
+
expectTypeOf<IsName<'copyof'>>().toEqualTypeOf<false>()
|
|
205
|
+
expectTypeOf<IsName<'virtual'>>().toEqualTypeOf<false>()
|
|
206
|
+
// no number strings
|
|
207
|
+
expectTypeOf<IsName<'123'>>().toEqualTypeOf<false>()
|
|
208
|
+
expectTypeOf<IsName<'12foo'>>().toEqualTypeOf<false>()
|
|
209
|
+
// no invalid characters
|
|
210
|
+
// expectTypeOf<IsName<'foo?'>>().toEqualTypeOf<false>()
|
|
211
|
+
// expectTypeOf<IsName<'foo,'>>().toEqualTypeOf<false>()
|
|
212
|
+
})
|
|
213
|
+
|
|
214
|
+
test('ValidateName', () => {
|
|
215
|
+
expectTypeOf<ValidateName<'foo'>>().toEqualTypeOf<'foo'>()
|
|
216
|
+
expectTypeOf<ValidateName<'foo$', true>>().toEqualTypeOf<'foo$'>()
|
|
217
|
+
expectTypeOf<ValidateName<'foo bar'>>().toEqualTypeOf<
|
|
218
|
+
['Error: Identifier "foo bar" cannot contain whitespace.']
|
|
219
|
+
>()
|
|
220
|
+
expectTypeOf<ValidateName<'alias'>>().toEqualTypeOf<
|
|
221
|
+
['Error: "alias" is a protected Solidity keyword.']
|
|
222
|
+
>()
|
|
223
|
+
expectTypeOf<ValidateName<'123'>>().toEqualTypeOf<
|
|
224
|
+
['Error: Identifier "123" cannot be a number string.']
|
|
225
|
+
>()
|
|
226
|
+
expectTypeOf<ValidateName<'12foo'>>().toEqualTypeOf<
|
|
227
|
+
['Error: Identifier "12foo" cannot start with a number.']
|
|
228
|
+
>()
|
|
229
|
+
expectTypeOf<ValidateName<'foo?', true>>().toEqualTypeOf<
|
|
230
|
+
['Error: "foo?" contains invalid character.']
|
|
231
|
+
>()
|
|
232
|
+
})
|
|
233
|
+
|
|
234
|
+
test('IsSolidityKeyword', () => {
|
|
235
|
+
expectTypeOf<IsSolidityKeyword<SolidityKeywords>>().toEqualTypeOf<true>()
|
|
236
|
+
expectTypeOf<IsSolidityKeyword<'calldata'>>().toEqualTypeOf<true>()
|
|
237
|
+
expectTypeOf<IsSolidityKeyword<'byte'>>().toEqualTypeOf<true>()
|
|
238
|
+
expectTypeOf<IsSolidityKeyword<'memory'>>().toEqualTypeOf<true>()
|
|
239
|
+
|
|
240
|
+
expectTypeOf<IsSolidityKeyword<'foo'>>().toEqualTypeOf<false>()
|
|
241
|
+
expectTypeOf<IsSolidityKeyword<'bar'>>().toEqualTypeOf<false>()
|
|
242
|
+
})
|
|
243
|
+
|
|
244
|
+
test('IsValidCharacter', () => {
|
|
245
|
+
expectTypeOf<IsValidCharacter<'A'>>().toEqualTypeOf<true>()
|
|
246
|
+
expectTypeOf<IsValidCharacter<'foobarbaz'>>().toEqualTypeOf<true>()
|
|
247
|
+
expectTypeOf<IsValidCharacter<'123123'>>().toEqualTypeOf<true>()
|
|
248
|
+
expectTypeOf<IsValidCharacter<'___'>>().toEqualTypeOf<true>()
|
|
249
|
+
expectTypeOf<IsValidCharacter<'$$$'>>().toEqualTypeOf<true>()
|
|
250
|
+
expectTypeOf<IsValidCharacter<'foo_123'>>().toEqualTypeOf<true>()
|
|
251
|
+
expectTypeOf<IsValidCharacter<'foo_123?'>>().toEqualTypeOf<false>()
|
|
252
|
+
expectTypeOf<IsValidCharacter<'foo!123'>>().toEqualTypeOf<false>()
|
|
253
|
+
expectTypeOf<IsValidCharacter<''>>().toEqualTypeOf<false>()
|
|
254
|
+
expectTypeOf<IsValidCharacter<' '>>().toEqualTypeOf<false>()
|
|
255
|
+
})
|