コード例 #1
0
def generate_vms_by_range(vm_configuration):
    validate_vm_block_numbers(
        tuple(block_number for block_number, _ in vm_configuration))

    # Organize the Chain classes by their starting blocks.
    vms_by_range = collections.OrderedDict(
        sorted(vm_configuration, key=operator.itemgetter(0)))
    return vms_by_range
コード例 #2
0
ファイル: chain.py プロジェクト: firefox0x/py-evm
def generate_vms_by_range(vm_configuration):
    validate_vm_block_numbers(tuple(
        block_number
        for block_number, _
        in vm_configuration
    ))

    # Organize the Chain classes by their starting blocks.
    vms_by_range = collections.OrderedDict(
        sorted(vm_configuration, key=operator.itemgetter(0))
    )
    return vms_by_range
コード例 #3
0
    def configure(cls, name=None, vm_configuration=None):
        if vm_configuration is None:
            vms_by_range = cls.vms_by_range
        else:
            # Organize the EVM classes by their starting blocks.
            validate_vm_block_numbers(
                tuple(block_number for block_number, _ in vm_configuration))

            vms_by_range = collections.OrderedDict(
                sorted(vm_configuration, key=itemgetter(0)))

        if name is None:
            name = cls.__name__

        props = {
            'vms_by_range': vms_by_range,
        }
        return type(name, (cls, ), props)
コード例 #4
0
    def configure(cls, name, vm_configuration, **overrides):
        if 'vms_by_range' in overrides:
            raise ValueError("Cannot override vms_by_range.")

        for key in overrides:
            if not hasattr(cls, key):
                raise TypeError(
                    "The Chain.configure cannot set attributes that are not "
                    "already present on the base class.  The attribute `{0}` was "
                    "not found on the base class `{1}`".format(key, cls)
                )

        validate_vm_block_numbers(tuple(
            block_number
            for block_number, _
            in vm_configuration
        ))

        # Organize the Chain classes by their starting blocks.
        overrides['vms_by_range'] = collections.OrderedDict(
            sorted(vm_configuration, key=itemgetter(0)))

        return type(name, (cls,), overrides)
コード例 #5
0
ファイル: test_validation.py プロジェクト: firefox0x/py-evm
def test_validate_vm_block_numbers(vm_block_numbers, is_valid):
    if is_valid:
            validate_vm_block_numbers(vm_block_numbers)
    else:
        with pytest.raises(ValidationError):
            validate_vm_block_numbers(vm_block_numbers)
コード例 #6
0
ファイル: test_validation.py プロジェクト: zzzxxxbbb/py-evm
def test_validate_vm_block_numbers(vm_block_numbers, is_valid):
    if is_valid:
        validate_vm_block_numbers(vm_block_numbers)
    else:
        with pytest.raises(ValidationError):
            validate_vm_block_numbers(vm_block_numbers)