python blockchain

https://www.youtube.com/watch?v=qakRb4zvZNo

https://www.youtube.com/watch?v=Qu6GloG0dQk&t=307s

truffle , hardhat

ganache

sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_16.15.1-deb-1nodesource1_amd64.deb

https://blogs.cleverse.com/solidity-hardhat-101-6ccbfa493b11

https://gist.github.com/aikdanai

etherscan.io  , token , erc-20

blockchain.com

https://web3js.readthedocs.io/en/v1.8.2/

sudo apt install nodejs

sudo apt  install npm

npm install web3


var Web3=require('web3')

var url="https://mainnet.infura.io/v3/45408e2fb6234fb3baeba9325eac4349"

var web3=new Web3(url)

address="0xdAC17F958D2ee523a2206206994597C13D831ec7"

web3.eth.getBalance(address,(err,bal)=>{balance=bal})

balance

web3.utils.formWei(balance,'ether')



https://app.infura.io/dashboard/ethereum/45408e2fb6234fb3baeba9325eac4349/settings/endpoints

https://thannob.com/articles/%E0%B8%97%E0%B8%94%E0%B8%A5%E0%B8%AD%E0%B8%87-Hello-World-%E0%B8%9A%E0%B8%99-xCHAIN/

sudo apt install python3.10-venv

python3 -m venv /home/kri/envkri

source /home/kri/envkri/bin/activate

if want to exit env

deactivate

#python3.7 -m pip install --upgrade pip

sudo apt install software-properties-common

add python3.9 : sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt install python3.9 -y

sudo apt-get install python3-distutils

python3.9 -m pip install web3


# Install pip if it is not available:

$ which pip || curl https://bootstrap.pypa.io/get-pip.py | python

# Install virtualenv if it is not available:

$ which virtualenv || pip install --upgrade virtualenv

# *If* the above command displays an error, you can try installing as root:

$ sudo pip install virtualenv

# Create a virtual environment:

$ virtualenv -p python3 ~/.venv-py3

# Activate your new virtual environment:

$ source ~/.venv-py3/bin/activate

# With virtualenv active, make sure you have the latest packaging tools

$ pip install --upgrade pip setuptools

# Now we can install web3.py...

$ pip install --upgrade web3

Remember that each new terminal session requires you to reactivate your virtualenv, like: $ source ~/.venv-py3/bin/activate

from web3 import Web3

infura_url = "https://goerli.infura.io/v3/45408e2fb6234fb3baeba9325eakric4349"

web3 = Web3(Web3.HTTPProvider(infura_url))

print(web3.isConnected())

print(web3.eth.blockNumber)

account = "0x880B5B6D8f391376F4c6d9A1849akkkfC92B37916e0"

balance = web3.eth.getBalance(account)

print(web3.fromWei(balance,"ether"))


mport json

from web3 import Web3

infura_url = "https://goerli.infura.io/v3/45408e2fb6234fb3baeba9325eac4349"

web3 = Web3(Web3.HTTPProvider(infura_url))

print(web3.is_connected())

print(web3.eth.block_number)

account = "0x880B5B6D8f391376F4c6d9A1849afC92B37916e0"

balance = web3.eth.get_balance(account)

print(web3.from_wei(balance,"ether"))



import json

from web3 import Web3

infura_url = "https://goerli.infura.io/v3/45408e2fb6234fb3baeba9325eac4349"

web3 = Web3(Web3.HTTPProvider(infura_url))

print(web3.isConnected())

print(web3.eth.blockNumber)

account = "0x880B5B6D8f391376F4c6d9A1849afC92B37916e0"

balance = web3.eth.getBalance(account)

print(web3.fromWei(balance,"ether"))


infura_url = "https://mainnet.infura.io/v3/45408e2fb6234fb3baeba9325eac4349"

web3 = Web3(Web3.HTTPProvider(infura_url))

print(web3.isConnected())

print(web3.eth.blockNumber)

address="0xdAC17F958D2ee523a2206206994597C13D831ec7"

address=Web3.toChecksumAddress("0xdAC17F958D2ee523a2206206994597C13D831ec7")

abi='[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"}],"name":"setParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_initialSupply","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maxFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]'

contract=web3.eth.contract(address=address,abi=abi)

totalSupply=contract.functions.totalSupply().call()

print(web3.fromWei(totalSupply,'ether'))

print(contract.functions.name().call())

print(contract.functions.symbol().call())


import json

from hexbytes import HexBytes

from web3 import Web3

infura_url = "https://mainnet.infura.io/v3/45408e2fb6234fb3baeba9325eac4349"

web3 = Web3(Web3.HTTPProvider(infura_url))

print(web3.isConnected())

print(web3.eth.blockNumber)

# address from etherscan

account = web3.eth.account.create()

print(account.address)

print(HexBytes.hex(account.privateKey))

keystore = account.encrypt('kriengxxx')

print(keystore)

keyrestore = web3.eth.account.decrypt(keystore,'kriengxxx')

print(HexBytes.hex(keyrestore))