Smart contract DApp is the core technology for decentralized applications(DApp)using blockchain technology.The so-called smart contract refers to a smart contract system that automatically executes computer programs written in the form of digital code,realizing the automatic execution and management of rights and interests between cooperating parties.
In DApp development,smart contracts are an indispensable part.Smart contracts are usually written in Solidity language and run on Ethereum or other blockchain platforms.In smart contracts,developers can write code to define the logic and execution process of the contract.The execution of smart contracts is achieved through the node consensus mechanism of blockchain networks,ensuring their tamper resistance and security.
The development process of smart contract DApp:
Determine the goals and requirements for DApp development;
Design the basic process and information model for DApp operation;
Write smart contracts,using programming languages allowed by the platform(such as Solidity)to write specific rules and logic for contracts;
Deploy smart contracts and use the tools provided by the platform to publish the written smart contracts on the blockchain;
Write the front-end interface of DApp,interact with smart contracts through the front-end interface,and achieve user operation;
Conduct unit testing and performance testing to ensure the reliability and performance of DApp.
from pyuniswap import pyuniswap
bas_address='0xa7ed29b253d8b4e3109ce07c80fc570f81b63696'
my_provider='https://mainnet.infura.io/v3/'
bas=pyuniswap.Token(base_address,my_provider)
bas.connect_wallet('','')
balance=base.balance()
my_token=bas
price_start=my_token.price()
target_price=2*price_start
while True:
price_now=my_token.price()
if price_now>=target_price:
my_token.sell(my_token.balance(),slippage=0.1,speed=1.5)
break
time.sleep(1)
def buy(self,consumed_token_amount,consumed_token_address=ETH_ADDRESS,slippage=0.01,timeout=900,speed=1):
gas_price=int(self.web3.eth.gasPrice*speed)
consumed_token_address=Web3.toChecksumAddress(consumed_token_address)
received_amount=self.received_amount_by_swap(consumed_token_amount,consumed_token_address)
min_out=int(received_amount*(1-slippage))
if consumed_token_address==self.ETH_ADDRESS:
func=self.router.functions.swapExactETHForTokens(min_out,[consumed_token_address,self.address],
self.wallet_address,int(time.time()+timeout))
params=self.create_transaction_params(value=consumed_token_amount,gas_price=gas_price)
else:
if not self.is_approved(consumed_token_address,consumed_token_amount):
self.approve(consumed_token_address,gas_price=gas_price,timeout=timeout)
func=self.router.functions.swapExactTokensForTokens(consumed_token_amount,min_out,
[consumed_token_address,self.address],
self.wallet_address,int(time.time()+timeout))
params=self.create_transaction_params(gas_price=gas_price)
return self.send_transaction(func,params)