def test_entrypoints_exwcsd(self): ep_types = self.program.parameter.list_entrypoints() self.assertEqual(len(self.entrypoints['entrypoints']) + 1, len(ep_types)) for name, ep_type in ep_types.items(): if name not in ['default', 'root']: expected_type = MichelsonType.match(self.entrypoints['entrypoints'][name]) expected_type.assert_type_equal(ep_type)
def test_entrypoints_tezos_israel_and_madfish_solutions_workshop_certificate( self): ep_types = self.program.parameter.list_entrypoints() self.assertEqual( len(self.entrypoints['entrypoints']) + 1, len(ep_types)) for name, ep_type in ep_types.items(): if name not in ['default', 'root']: expected_type = MichelsonType.match( self.entrypoints['entrypoints'][name]) expected_type.assert_type_equal(ep_type)
def test_map_order(self): self.bake_block() random_keys = [(i, get_random_key()) for i in range(100)] payload = {key.public_key(): i for i, key in random_keys} ty_expr = michelson_to_micheline('map key int') ty = MichelsonType.match(ty_expr) val_expr = ty.from_python_object(payload).to_micheline_value() self.client.shell.head.helpers.scripts.typecheck_data.post( dict(data=val_expr, type=ty_expr))
def __init__(self, context: ExecutionContext, name: str, parameter: Optional[Dict[str, Any]], return_type: Dict[str, Any], code: List[Any]): super(OffChainView, self).__init__(context=context) self.name = name self.param_expr = parameter or {'prim': 'unit'} self.rtype_expr = return_type self.code_expr = code self.__doc__ = generate_pydoc(MichelsonType.match(self.param_expr), title=name)
def encode(self, py_obj) -> Dict[str, Any]: """ Encode transaction parameters from the given Python object :param py_obj: Python object :return: {entrypoint, value} """ try: view_param_ty = MichelsonType.match(self.param_expr) view_param_expr = view_param_ty.from_python_object(py_obj).to_micheline_value() storage_expr = self.shell.blocks[self.context.block_id].context.contracts[self.address].storage() return {'entrypoint': 'default', 'value': {'prim': 'Pair', 'args': [view_param_expr, storage_expr]}} except MichelsonRuntimeError as e: logger.info(self.__doc__) raise ValueError(f'Unexpected arguments: {pformat(py_obj)}', *e.args) from e
def test_get_key_hash(self, val_expr, type_expr, expected): ty = MichelsonType.match(type_expr) key = ty.from_micheline_value(val_expr).pack(legacy=True) self.assertEqual(expected, forge_script_expr(key))