智能合约(Smart Contract)是以计算机为主要工具,将数学算法嵌入到程序中,用以证明某个事件是否符合约定条件,并保证各方在约定时间内按照约定条件达成一致,以验证和执行合同条款的计算机文本。
智能合约在区块链上的可执行代码是一种类似汇编语言的指令集,这些指令集通过EVM的解释和执行,对区块链的状态进行读写,实现合约规定的业务逻辑。因此通过Solidity这种高级编程语言,加上Solidity编译器,可以将高级语言编译成汇编指令集码,再将其部署到区块链上执行。
from web3 import Web3,HTTPProvider
import json
address='0xxxx'
rpc='https://bsc-dataseed1.binance.org:443'
CAKE_BSC_ADDRESS=Web3.toChecksumAddress('合约地址')
CAKE_BSC_ABI=json.loads('这里需要粘贴一大段ABI')
web3=Web3(HTTPProvider(rpc))
token_contract=web3.eth.contract(address=CAKE_BSC_ADDRESS,abi=CAKE_BSC_ABI)
balance=web3.fromWei(token_contract.functions.balanceOf(address).call(),"ether")
print(balance)
def transfer_eth(target_address,amount,gas_price=5,gas_limit=21000):
nonce=web3.eth.getTransactionCount(address)
params={
'nonce':nonce,
'to':target_address,
'value':web3.toWei(amount,'ether'),
'gas':gas_limit,
'gasPrice':web3.toWei(gas_price,'gwei'),
'from':address,
}
signed_tx=web3.eth.account.signTransaction(params,private_key=private_key)
tx_hash=web3.eth.sendRawTransaction(signed_tx.rawTransaction)
return tx_hash