add handlers

This commit is contained in:
Carlosokumu 2024-11-19 19:03:58 +03:00
parent f25d45af4c
commit a3d149a659
Signed by: carlos
GPG Key ID: 7BD6BC8160A5C953

View File

@ -7,8 +7,8 @@ import logging
import sys import sys
import select import select
from multiprocessing import Process from multiprocessing import Process
from multiprocessing import Value
from multiprocessing import Pipe from multiprocessing import Pipe
import subprocess
logg = logging.getLogger() logg = logging.getLogger()
logg.setLevel(logging.DEBUG) logg.setLevel(logging.DEBUG)
@ -154,6 +154,7 @@ def p_key_create(p):
if len(p) > 4: if len(p) > 4:
o.k = p[4] o.k = p[4]
p[0] = o p[0] = o
print("PO",p[0])
def p_voucher_mint(p): def p_voucher_mint(p):
@ -299,6 +300,76 @@ class Router:
def noop_handler(cmd): def noop_handler(cmd):
return str(cmd) return str(cmd)
#NOTE:
#For testing the handlers,am using my hard-coded private key for the cast commands,replace with your actual private key.
#I have added random characters to the existing.
def key_create_handler(cmd):
mnemonic = cmd.i.replace('-', ' ')
command = f'cast wallet pk -v "{mnemonic}" 2 | cut -c 16-'
result = subprocess.run(command, shell=True, capture_output=True, text=True)
if result.returncode != 0:
raise subprocess.CalledProcessError(result.returncode, command, output=result.stdout, stderr=result.stderr)
if result.stderr:
raise ValueError(f"Command failed with error: {result.stderr}")
else:
privatekey = result.stdout.strip().split("\n")[1]
return privatekey
def voucher_create_handler(cmd):
name = cmd.n
symbol = cmd.s
command = f'ge-publish --private-key 1e1d0c1519479f68d9c8d07352a8e7e7cb9e2c676bce422f84502412cf39S4Ca ' \
f'--rpc https://alfajores-forno.celo-testnet.org --gas-fee-cap 35000000000 --chainid 44787 ' \
f'p erc20 --name "{name}" --symbol "{symbol}"'
result = subprocess.run(command, shell=True, capture_output=True, text=True)
output = result.stderr.strip().split("\n")
contract_address = None
for word in output[1].split():
if "contract_address=" in word:
contract_address = word.split("=")[1]
return contract_address
def voucher_transfer_handler(cmd):
value = cmd.v
command = (
f'cast send --private-key 1e1d0c1519479f68d9c8d07352a8e7e7cb9e2c676bce422f84502412cfsarw54ba '
f'--rpc-url https://alfajores-forno.celo-testnet.org/ '
f'0x93bb5f14464A9b7E5D5487DAB12d100417f23323 '
f'"transfer(address,uint256)" 0x7c9eCcC1de442911954e36e6092DFb10373090a6 {value}'
)
result = subprocess.run(command, shell=True, capture_output=True, text=True)
if result.returncode != 0:
raise subprocess.CalledProcessError(result.returncode, command, output=result.stdout, stderr=result.stderr)
if result.stderr:
raise ValueError(f"Command failed with error: {result.stderr}")
return result.stdout
def voucher_mint_handler(cmd):
value = cmd.v
command = (
f'cast send --private-key 1e1d0c1519479f68d9c8d07352a8e7e7cb9e2c676bce422f84502412cf39ASCa '
f'--rpc-url https://alfajores-forno.celo-testnet.org/ '
f'0x3feCC87C2c102984865B996de340bb2C6AdCF01E '
f'"mintTo(address,uint256)" 0xEef7Ad2cCCB317E6898F43eA2B5b1BD1E9C13b1A {value}'
)
result = subprocess.run(command, shell=True, capture_output=True, text=True)
if result.returncode != 0:
raise subprocess.CalledProcessError(result.returncode, command, output=result.stdout, stderr=result.stderr)
if result.stderr:
raise ValueError(f"Command failed with error: {result.stderr}")
return result.stdout
def foo_handler(cmd): def foo_handler(cmd):
return os.popen('eth-info -p https://celo.grassecon.net').read() return os.popen('eth-info -p https://celo.grassecon.net').read()
@ -367,10 +438,10 @@ class WaitGet:
if __name__ == '__main__': if __name__ == '__main__':
ifc = None ifc = None
o = Router() o = Router()
o.register(CmdId.KEY_CREATE, noop_handler) o.register(CmdId.KEY_CREATE,key_create_handler)
o.register(CmdId.VOUCHER_MINT, noop_handler) o.register(CmdId.VOUCHER_MINT, voucher_mint_handler)
o.register(CmdId.VOUCHER_CREATE, noop_handler) o.register(CmdId.VOUCHER_CREATE, voucher_create_handler)
o.register(CmdId.VOUCHER_TRANSFER, foo_handler) o.register(CmdId.VOUCHER_TRANSFER, voucher_transfer_handler)
if len(sys.argv) > 1: if len(sys.argv) > 1:
ifc = FileGet(o, sys.argv[1]) ifc = FileGet(o, sys.argv[1])