コード例 #1
0
ファイル: cli.py プロジェクト: chorusmobility/robonomics-tz
def get_contract(path):
    if path is None:
        files = glob('*.tz')
        assert len(files) == 1
        contract = Contract.from_file(abspath(files[0]))

    elif any(map(lambda x: path.startswith(x), ['zeronet', 'babylonnet', 'mainnet'])):
        network, address = path.split(':')
        ptz = pytezos.using(shell=network)
        script = ptz.shell.contracts[address].script()
        contract = Contract.from_micheline(script['code'])

    else:
        contract = Contract.from_file(path)

    return contract
コード例 #2
0
ファイル: helpers.py プロジェクト: juztin/pytezos-1
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)
コード例 #3
0
ファイル: deploy.py プロジェクト: gdsoumya/fischcake-box
def deploy(file: str) -> None:
    """
    Deploy the compiled contract in the file
    """
    print(f"Deploying {file}.py ....")
    contract = Contract.from_file(f"contract/build/{file}_compiled.tz")
    contract_storage = {}

    with open(expanduser(f"contract/build/{file}_storage_init.tz")) as f:
        contract_storage = f.read().replace('\n', '')

    opg = pytezos.origination(
        contract.script(storage=contract.storage.decode(
            contract_storage))).autofill().sign().inject(_async=False)
    return opg['contents'][0]['metadata']['operation_result'][
        'originated_contracts'][0]
コード例 #4
0
ファイル: fa12_route.py プロジェクト: lkazmer/ungrund
    def post(self):

        payload = v.read_requests(request)
        try:
            sess = v.read_session(session)
        except:
            pytz = v.load_keystore()

        if payload['forge'] == True:
            pass

        contract = Contract.from_file('./smart_contracts/fa12.tz')
        op = pytz.origination(script=contract.script(
            storage={
                'ledger': {},
                'admin': payload['admin'],
                'paused': False,
                'totalSupply': payload['total_supply']
            })).autofill().sign().inject(_async=False, num_blocks_wait=2)

        return OperationResult.originated_contracts(op)
コード例 #5
0
    def post(self):

        #try:
        payload = v.read_requests(request)
        pytz = v.read_session(session)

        swap = Contract.from_file('./smart_contracts/atomic_swap.tz')
        op = pytz.origination(script=swap.script(storage= { 
                'admin': pytz.key.public_key_hash(), 
                "interested_party": pytz.key.public_key_hash(), 
                'fa12' : payload['fa12'], 
                'immutable': False, 
                'tk_amount' : payload['tk_amount'], 
                'tz_amount' : payload['tz_amount']})).fill().sign().inject(_async=False, num_blocks_wait=2)

        swapkt = OperationResult.originated_contracts(op)
        fa12 = pytz.contract(payload['fa12'])
        print([pytz.key.public_key_hash(), swapkt[0]])
        r = fa12.transfer({"from" : pytz.key.public_key_hash(), "to" : swapkt[0], 'value' : payload['tk_amount']}).inject()
            
        return [v.filter_response(op), r]
コード例 #6
0
ファイル: auth.py プロジェクト: lkazmer/ungrund
    def post(self):

        print(request.data)
        payload = v.read_requests(request)
        print(payload)

        pytz = pytezos.using(key=payload['tz'], shell="mainnet")

        contract = Contract.from_file('./smart_contracts/transaction2.tz')
        op = pytz.origination(script=contract.script(storage=2)).fill()
        print(op.json_payload())

        print(op.forge())
        # return op.json_payload()['contents'][0]
        res = {
            "code": [op.json_payload()['contents'][0]['script']['code']],
            "storage": op.json_payload()['contents'][0]['script']['storage'],
            "bytes": op.forge(),
            "operation": op.json_payload()
        }
        print(res)
        return res
コード例 #7
0
       { DIP { { DIP { DUP @storage } ; SWAP } } ; SWAP } ;
       CDR %counter ;
       ADD @counter ;
       { DIP { { DIP { DUP @storage } ; SWAP } } ; SWAP } ;
       CAR %records ;
       NOW ;
       { DIP { { DIP { { DIP { DUP @hash } ; SWAP } } ; SWAP } } ; SWAP } ;
       DIP { SOME } ;
       DIP { DIP { DIP { DIP { DROP ; DROP } } } } ;
       UPDATE @records ;
       PAIR %records %counter ;
       NIL operation ;
       PAIR }
"""

contract = Contract.from_michelson(code)

res = pytezos.using(
    shell='http://localhost:18731',
    key='edsk3gUfUPyBSfrS9CCgmCiQsTCHGkviBDusMxDJstFtojtc1zcpsh').origination(
        script=contract.script()).autofill().sign().inject()

input("Bake a block then hit enter.")

opg = pytezos.using(
    shell='http://localhost:18731',
    key='edsk3gUfUPyBSfrS9CCgmCiQsTCHGkviBDusMxDJstFtojtc1zcpsh'
).shell.blocks[-5:].find_operation(res['hash'])

contract_id = opg['contents'][0]['metadata']['operation_result'][
    'originated_contracts'][0]
コード例 #8
0
 def __init__(self):
     self.contract = Contract.from_file('./smart_contracts/protocol.tz')
     self.protocol = 'KT1Q72pNNiCnBamwttWvXGE9N2yuz6c7guSD'
     self.oracle = ''
     self.network = 'mainnet'