Example #1
0
 def new(cls, contract, type_expr):
     assert is_pkh(contract[:36]) or is_kt(
         contract[:36]), f'expected contract, got {contract}'
     if len(contract) > 36:
         assert contract[36] == '%', f'expected contract, got {contract}'
     return cls(val=contract,
                val_expr={'string': contract},
                type_expr={
                    'prim': cls.prim,
                    'args': [type_expr]
                })
Example #2
0
def do_include(ctx: Context, prim, args, annots):
    path = get_string(args[0])

    if isfile(path):
        code = Contract.from_file(path).code
    else:
        parts = path.split(':')
        network = parts[0] if len(parts) > 1 else ctx.get('NETWORK', 'mainnet')
        address = parts[1] if len(parts) > 1 else parts[0]
        assert is_kt(address), f'expected filename or KT address (with network), got {path}'
        script = Interop().using(network).shell.contracts[address].script()
        code = script['code']
        ctx.set('STORAGE', script['storage'])

    do_interpret(ctx, code)
Example #3
0
 def new(cls, address):
     assert is_pkh(address) or is_kt(
         address), f'expected address, got {address}'
     return cls(val=address,
                val_expr={'string': address},
                type_expr={'prim': cls.prim})