Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 1.57 KB

README.md

File metadata and controls

52 lines (41 loc) · 1.57 KB

passwordTx : sending Transaction Safe With Password

Objective

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.

Usages

1. register private key

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 : ******

2. send Tx with PasswordTx

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)
    )