Exemplo n.º 1
0
 def make_update(key: MichelsonType,
                 val: Optional[MichelsonType]) -> dict:
     update = {
         'key': key.to_micheline_value(mode=mode),
         'key_hash': forge_script_expr(key.pack(legacy=True))
     }
     if val is not None:
         update['value'] = val.to_micheline_value(mode=mode)
     return update
Exemplo n.º 2
0
 def get(self, key: MichelsonType, dup=True) -> Optional[MichelsonType]:
     self.args[0].assert_type_equal(type(key))
     val = next((v for k, v in self if k == key),
                Undefined)  # search in diff
     if val is Undefined:
         assert self.context, f'context is not attached'
         key_hash = forge_script_expr(key.pack(legacy=True))
         val_expr = self.context.get_big_map_value(self.ptr, key_hash)
         if val_expr is None:
             return None
         else:
             return self.args[1].from_micheline_value(val_expr)
     else:
         return val