Beispiel #1
0
 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)
Beispiel #3
0
    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))
Beispiel #4
0
 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)
Beispiel #5
0
    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
Beispiel #6
0
 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))