Skip to content

Commit

Permalink
clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
tserg committed Oct 25, 2023
1 parent a3f7406 commit 4278e06
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 52 deletions.
4 changes: 2 additions & 2 deletions tests/parser/types/value/test_as_wei_value.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ def foo(a: {data_type}) -> uint256:
assert_tx_failed(lambda: c.foo(value))


@pytest.mark.parametrize("denom,multiplier", wei_denoms.items())
@pytest.mark.parametrize("denom", wei_denoms.keys())
@pytest.mark.parametrize("data_type", ["decimal", "int128", "uint256"])
def test_zero_value(get_contract, assert_tx_failed, denom, multiplier, data_type):
def test_zero_value(get_contract, denom, data_type):
code = f"""
@external
def foo(a: {data_type}) -> uint256:
Expand Down
67 changes: 17 additions & 50 deletions vyper/builtins/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,7 @@ def evaluate(self, node):
raise UnfoldableNode

value = math.floor(input_val)
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand Down Expand Up @@ -180,9 +178,7 @@ def evaluate(self, node):
raise UnfoldableNode

value = math.ceil(input_val)
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand Down Expand Up @@ -478,9 +474,7 @@ def evaluate(self, node):
else:
raise UnfoldableNode

node = vy_ast.Int.from_node(node, value=length)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=length)

def infer_arg_types(self, node, *args, **kwargs):
self._validate_arg_types(node)
Expand Down Expand Up @@ -622,9 +616,7 @@ def evaluate(self, node):
value = int(value, 16).to_bytes(length, "big")

hash_ = f"0x{keccak256(value).hex()}"
node = vy_ast.Hex.from_node(node, value=hash_)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Hex.from_node(node, value=hash_)

def infer_arg_types(self, node, *args, **kwargs):
self._validate_arg_types(node)
Expand Down Expand Up @@ -675,9 +667,7 @@ def evaluate(self, node):
value = int(value, 16).to_bytes(length, "big")

hash_ = f"0x{hashlib.sha256(value).hexdigest()}"
node = vy_ast.Hex.from_node(node, value=hash_)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Hex.from_node(node, value=hash_)

def infer_arg_types(self, node, *args, **kwargs):
self._validate_arg_types(node)
Expand Down Expand Up @@ -747,12 +737,9 @@ def evaluate(self, node):
value = method_id_int(args[0].value)

if return_type.compare_type(BYTES4_T):
node = vy_ast.Hex.from_node(node, value=hex(value))
return vy_ast.Hex.from_node(node, value=hex(value))
else:
node = vy_ast.Bytes.from_node(node, value=value.to_bytes(4, "big"))

#node._metadata["type"] = self.infer_kwarg_types()
return node
return vy_ast.Bytes.from_node(node, value=value.to_bytes(4, "big"))

def fetch_call_return(self, node):
validate_call_args(node, 1, ["output_type"])
Expand Down Expand Up @@ -1027,9 +1014,7 @@ def evaluate(self, node):
if isinstance(value, Decimal) and value > SizeLimits.MAX_AST_DECIMAL:
raise InvalidLiteral("Value out of range for decimal", node.args[0])

node = vy_ast.Int.from_node(node, value=int(value * denom))
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=int(value * denom))

def fetch_call_return(self, node):
self.infer_arg_types(node)
Expand Down Expand Up @@ -1377,9 +1362,7 @@ def evaluate(self, node):
raise InvalidLiteral("Value out of range for uint256", arg)

value = values[0] & values[1]
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return = vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand All @@ -1406,9 +1389,7 @@ def evaluate(self, node):
raise InvalidLiteral("Value out of range for uint256", arg)

value = values[0] | values[1]
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand All @@ -1435,9 +1416,7 @@ def evaluate(self, node):
raise InvalidLiteral("Value out of range for uint256", arg)

value = values[0] ^ values[1]
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand All @@ -1464,9 +1443,7 @@ def evaluate(self, node):
raise InvalidLiteral("Value out of range for uint256", node.args[0])

value = (2**256 - 1) - value
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand Down Expand Up @@ -1500,9 +1477,7 @@ def evaluate(self, node):
value = value >> -shift
else:
value = (value << shift) % (2**256)
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

def fetch_call_return(self, node):
# return type is the type of the first argument
Expand Down Expand Up @@ -1545,9 +1520,7 @@ def evaluate(self, node):
raise InvalidLiteral("Value out of range for uint256", arg)

value = self._eval_fn(values[0], values[1]) % values[2]
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

@process_inputs
def build_IR(self, expr, args, kwargs, context):
Expand Down Expand Up @@ -1589,9 +1562,7 @@ def evaluate(self, node):
raise UnfoldableNode

value = pow(left, right, 2**256)
node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

def build_IR(self, expr, context):
left = Expr.parse_value_expr(expr.args[0], context)
Expand All @@ -1616,9 +1587,7 @@ def evaluate(self, node):
if not SizeLimits.MIN_INT256 <= value <= SizeLimits.MAX_INT256:
raise OverflowException("Absolute literal value is outside allowable range for int256")

node = vy_ast.Int.from_node(node, value=value)
#node._metadata["type"] = self._return_type
return node
return vy_ast.Int.from_node(node, value=value)

def build_IR(self, expr, context):
value = Expr.parse_value_expr(expr.args[0], context)
Expand Down Expand Up @@ -2666,9 +2635,7 @@ def evaluate(self, node):
if not input_type.compare_type(DecimalT()):
raise InvalidType(f"Expected decimal type but got {input_type} instead", node)

node = vy_ast.Decimal.from_node(node, value=input_type.epsilon)
#node._metadata = DecimalT()
return node
return vy_ast.Decimal.from_node(node, value=input_type.epsilon)


DISPATCH_TABLE = {
Expand Down

0 comments on commit 4278e06

Please sign in to comment.