For using Web3.py
, we should write private key
to script or .env. it's dangerous to operating Live Service. Instead of using private key direct, passwordTx
encrypt private key
using password
. At the moment when you need to send a transaction, A prompt window appears to confirm the password.
It is designed for use in interactive environments such as Jupyter notebooks.
from passwordTx import PasswordTx
from web3 import Web3
web3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545"))
passwordTx = PasswordTx("developer", web3)
>> NEW PASSWORD : ******
>> PRIVATE KEY : ******
from passwordTx import PasswordTx
from web3 import Web3
web3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545"))
erc20 = web3.eth.contract(
address="0x10cc453eA2d3d8C89Efb9EDf1Df7c237CC9b25Da",
abi=[
{
"inputs": [
{"internalType": "address","name": "to","type": "address"},
{"internalType": "uint256","name": "amount","type": "uint256"}
],
"name": "transfer",
"outputs": [
{"internalType": "bool", "name": "", "type": "bool"}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
)
with PasswordTx("developer", web3) as passwordTx:
passwordTx.send(
erc20.functions.transfer(web3.toChecksumAddress("0x70997970c51812dc3a010c7d01b50e0d17dc79c8"), 120 * 10 **18)
)