| 
					
				 | 
			
			
				@@ -1,6 +1,63 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.shortcuts import render 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.http import HttpResponse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from pathlib import Path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from erdpy import utils 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from django.views.decorators.csrf import csrf_protect, csrf_exempt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from erdpy import cli_shared, testnet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from erdpy.accounts import Account, Address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from erdpy.contracts import CodeMetadata, SmartContract 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from erdpy.proxy.core import ElrondProxy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Create your views here. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def index(request): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return render(request, 'index.html') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return render(request, 'index.html') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@csrf_exempt  # disable this on deploy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def deploy_contract_function(request): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ##Arguments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #--proxy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #--pem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    proxy="https://testnet-gateway.elrond.com" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pem_user="/home/ubuntu-test/Desktop/proj2/backend_dev/Market_Place_NFT/backend/wallet/users/sergiu.pem" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    response_data="asdas" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    proxy = ElrondProxy(proxy) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    network = proxy.get_network_config() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    user = Account(pem_file=pem_user) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    user.sync_nonce(proxy) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    bytecode_path = Path("/home/ubuntu-test/Desktop/proj2/project3/my_contract/output/my_contract.wasm").absolute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    bytecode = utils.read_binary_file(bytecode_path).hex() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    code_metadata = CodeMetadata(upgradeable=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    contract = SmartContract(bytecode=bytecode, metadata=code_metadata) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tx = contract.deploy( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            owner=user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            arguments=[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gas_price=network.min_gas_price, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gas_limit=60000000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            chain=network.chain_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            version=network.min_tx_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tx_on_network = tx.send_wait_result(proxy, 5000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    write_logs_to_file(f"Contract address: {contract.address.bech32()}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    write_logs_to_file(f"Deployment transaction: {tx_on_network.get_hash()}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return HttpResponse( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            json.dumps(f"Contract address: {contract.address.bech32()}"+f"Deployment transaction: {tx_on_network.get_hash()}"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content_type="application/json" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def write_logs_to_file(log_details): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    f = open("logfile.txt", "a") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    f.write(log_details) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    f.close() 
			 |