发送一笔交易
Posted 江东戏子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发送一笔交易相关的知识,希望对你有一定的参考价值。
根据交易哈希,到去中心化区块浏览器即可查询到这笔交易。
from web3 import Web3
from web3.middleware import geth_poa_middleware
web3 = Web3(Web3.HTTPProvider('https://bsc-dataseed1.binance.org:443'))
web3.middleware_onion.inject(geth_poa_middleware, layer=0)
from_ = 'from_'
from_key = 'from_key'
to_ = 'to_'
# 得到随机数。防止一个人发送交易两次
nonce = web3.eth.getTransactionCount(from_)
# 构建交易信息
tx =
'nonce': nonce,
'to': to,
'value': web3.toWei(0.001, 'ether'),
'gas': 21000,
'gasPrice': web3.toWei('5', 'gwei')
# 签名交易
signed_tx = web3.eth.account.sign_transaction(tx, from_key)
# 发送交易
tx_hash = web3.eth.sendRawTransaction(signed_tx.rawTransaction)
# 获取交易哈希
print(web3.toHex(tx_hash))
交易代币
from web3 import Web3
from json import loads
from web3.middleware import geth_poa_middleware
web3 = Web3(Web3.HTTPProvider('https://bsc-dataseed1.binance.org:443'))
web3.middleware_onion.inject(geth_poa_middleware, layer=0)
from_ = 'from_'
from_key = 'from_key'
to_ = 'to_'
# 得到随机数。防止一个人发送交易两次
nonce = web3.eth.getTransactionCount(from_)
ABI = loads('["inputs":[],"stateMutability":"nonpayable","type":"constructor","anonymous":false,"inputs":["indexed":true,"internalType":"address","name":"owner","type":"address","indexed":true,"internalType":"address","name":"spender","type":"address","indexed":false,"internalType":"uint256","name":"value","type":"uint256"],"name":"Approval","type":"event","anonymous":false,"inputs":["indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"],"name":"MinTokensBeforeSwapUpdated","type":"event","anonymous":false,"inputs":["indexed":true,"internalType":"address","name":"previousOwner","type":"address","indexed":true,"internalType":"address","name":"newOwner","type":"address"],"name":"OwnershipTransferred","type":"event","anonymous":false,"inputs":["indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256","indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256","indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"],"name":"SwapAndLiquify","type":"event","anonymous":false,"inputs":["indexed":false,"internalType":"bool","name":"enabled","type":"bool"],"name":"SwapAndLiquifyEnabledUpdated","type":"event","anonymous":false,"inputs":["indexed":true,"internalType":"address","name":"from","type":"address","indexed":true,"internalType":"address","name":"to","type":"address","indexed":false,"internalType":"uint256","name":"value","type":"uint256"],"name":"Transfer","type":"event","inputs":[],"name":"_liquidityFee","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":[],"name":"_maxTxAmount","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":[],"name":"_taxFee","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":["internalType":"address","name":"owner","type":"address","internalType":"address","name":"spender","type":"address"],"name":"allowance","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":["internalType":"address","name":"spender","type":"address","internalType":"uint256","name":"amount","type":"uint256"],"name":"approve","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"balanceOf","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":[],"name":"decimals","outputs":["internalType":"uint8","name":"","type":"uint8"],"stateMutability":"view","type":"function","inputs":["internalType":"address","name":"spender","type":"address","internalType":"uint256","name":"subtractedValue","type":"uint256"],"name":"decreaseAllowance","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"uint256","name":"tAmount","type":"uint256"],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":[],"name":"geUnlockTime","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"spender","type":"address","internalType":"uint256","name":"addedValue","type":"uint256"],"name":"increaseAllowance","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"isExcludedFromFee","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"view","type":"function","inputs":["internalType":"address","name":"account","type":"address"],"name":"isExcludedFromReward","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"view","type":"function","inputs":["internalType":"uint256","name":"time","type":"uint256"],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":[],"name":"name","outputs":["internalType":"string","name":"","type":"string"],"stateMutability":"view","type":"function","inputs":[],"name":"owner","outputs":["internalType":"address","name":"","type":"address"],"stateMutability":"view","type":"function","inputs":["internalType":"uint256","name":"tAmount","type":"uint256","internalType":"bool","name":"deductTransferFee","type":"bool"],"name":"reflectionFromToken","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"uint256","name":"liquidityFee","type":"uint256"],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"uint256","name":"maxTxPercent","type":"uint256"],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"bool","name":"_enabled","type":"bool"],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"uint256","name":"taxFee","type":"uint256"],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":[],"name":"swapAndLiquifyEnabled","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"view","type":"function","inputs":[],"name":"symbol","outputs":["internalType":"string","name":"","type":"string"],"stateMutability":"view","type":"function","inputs":["internalType":"uint256","name":"rAmount","type":"uint256"],"name":"tokenFromReflection","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":[],"name":"totalFees","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":[],"name":"totalSupply","outputs":["internalType":"uint256","name":"","type":"uint256"],"stateMutability":"view","type":"function","inputs":["internalType":"address","name":"recipient","type":"address","internalType":"uint256","name":"amount","type":"uint256"],"name":"transfer","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"sender","type":"address","internalType":"address","name":"recipient","type":"address","internalType":"uint256","name":"amount","type":"uint256"],"name":"transferFrom","outputs":["internalType":"bool","name":"","type":"bool"],"stateMutability":"nonpayable","type":"function","inputs":["internalType":"address","name":"newOwner","type":"address"],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":[],"name":"uniswapV2Pair","outputs":["internalType":"address","name":"","type":"address"],"stateMutability":"view","type":"function","inputs":[],"name":"uniswapV2Router","outputs":["internalType":"contract IUniswapV2Router02","name":"","type":"address"],"stateMutability":"view","type":"function","inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function","stateMutability":"payable","type":"receive"]')
web3 = Web3(Web3.HTTPProvider('https://bsc-dataseed1.binance.org:443'))
web3.middleware_onion.inject(geth_poa_middleware, layer=0)
# 构建合约
contract = web3.eth.contract(address=web3.toChecksumAddress('0x4afc8c2be6a0783ea16e16066fde140d15979296'), abi=ABI)
# 构建交易信息
tx =
'nonce': nonce,
'chainId': 56,
'gas': 154806,
'gasPrice': web3.toWei('5', 'gwei')
tx = contract.functions.transfer(to_, 100000).buildTransaction(tx)
signed_tx = web3.eth.account.sign_transaction(tx, from_key)
# # 签名交易
signed_tx = web3.eth.account.sign_transaction(tx, from_key)
# # 发送交易
tx_hash = web3.eth.sendRawTransaction(signed_tx.rawTransaction)
# # 获取交易哈希
print(web3.toHex(tx_hash))
以上是关于发送一笔交易的主要内容,如果未能解决你的问题,请参考以下文章