示例#1
0
文件: abi.py 项目: pratik-vii/web3.py
def build_strict_registry() -> ABIRegistry:
    registry = default_registry.copy()

    registry.unregister('address')
    registry.unregister('bytes<M>')
    registry.unregister('bytes')
    registry.unregister('string')

    registry.register(
        BaseEquals('address'),
        AddressEncoder,
        decoding.AddressDecoder,
        label='address',
    )
    registry.register(
        BaseEquals('bytes', with_sub=True),
        ExactLengthBytesEncoder,
        BytesDecoder,
        label='bytes<M>',
    )
    registry.register(
        BaseEquals('bytes', with_sub=False),
        StrictByteStringEncoder,
        decoding.ByteStringDecoder,
        label='bytes',
    )
    registry.register(
        BaseEquals('string'),
        TextStringEncoder,
        decoding.StringDecoder,
        label='string',
    )
    return registry
示例#2
0
文件: abi.py 项目: pratik-vii/web3.py
def build_default_registry() -> ABIRegistry:
    # We make a copy here just to make sure that eth-abi's default registry is not
    # affected by our custom encoder subclasses
    registry = default_registry.copy()

    registry.unregister('address')
    registry.unregister('bytes<M>')
    registry.unregister('bytes')
    registry.unregister('string')

    registry.register(
        BaseEquals('address'),
        AddressEncoder,
        decoding.AddressDecoder,
        label='address',
    )
    registry.register(
        BaseEquals('bytes', with_sub=True),
        BytesEncoder,
        decoding.BytesDecoder,
        label='bytes<M>',
    )
    registry.register(
        BaseEquals('bytes', with_sub=False),
        ByteStringEncoder,
        decoding.ByteStringDecoder,
        label='bytes',
    )
    registry.register(
        BaseEquals('string'),
        TextStringEncoder,
        decoding.StringDecoder,
        label='string',
    )
    return registry
示例#3
0
文件: abi.py 项目: rsksmart/web3.py
    def validate_value(cls, value):
        if is_bytes(value):
            try:
                value = to_text(value)
            except UnicodeDecodeError:
                cls.invalidate_value(
                    value,
                    msg='not decodable as unicode string',
                )

        super().validate_value(value)


# We make a copy here just to make sure that eth-abi's default registry is not
# affected by our custom encoder subclasses
registry = default_registry.copy()

registry.unregister('address')
registry.unregister('bytes<M>')
registry.unregister('bytes')
registry.unregister('string')

registry.register(
    BaseEquals('address'),
    AddressEncoder, decoding.AddressDecoder,
    label='address',
)
registry.register(
    BaseEquals('bytes', with_sub=True),
    BytesEncoder, decoding.BytesDecoder,
    label='bytes<M>',