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] })
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)
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})