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 select
from multiprocessing import Process
from multiprocessing import Value
from multiprocessing import Pipe
import subprocess
logg = logging.getLogger()
logg.setLevel(logging.DEBUG)
@ -154,6 +154,7 @@ def p_key_create(p):
if len(p) > 4:
o.k = p[4]
p[0] = o
print("PO",p[0])
def p_voucher_mint(p):
@ -299,6 +300,76 @@ class Router:
def noop_handler(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):
return os.popen('eth-info -p https://celo.grassecon.net').read()
@ -367,10 +438,10 @@ class WaitGet:
if __name__ == '__main__':
ifc = None
o = Router()
o.register(CmdId.KEY_CREATE, noop_handler)
o.register(CmdId.VOUCHER_MINT, noop_handler)
o.register(CmdId.VOUCHER_CREATE, noop_handler)
o.register(CmdId.VOUCHER_TRANSFER, foo_handler)
o.register(CmdId.KEY_CREATE,key_create_handler)
o.register(CmdId.VOUCHER_MINT, voucher_mint_handler)
o.register(CmdId.VOUCHER_CREATE, voucher_create_handler)
o.register(CmdId.VOUCHER_TRANSFER, voucher_transfer_handler)
if len(sys.argv) > 1:
ifc = FileGet(o, sys.argv[1])