Compare commits
4 Commits
lash/mux-i
...
d1a4f2ee5d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1a4f2ee5d
|
||
|
|
083e3e6b69
|
||
|
|
baf21fca96
|
||
|
|
a3d149a659
|
4
.env.example
Normal file
4
.env.example
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
PRIVATE_KEY=PRIVATE_KEY=1e1d0c151ajjajajsanakaka54ba
|
||||||
|
CHAIN_ID = 44787
|
||||||
|
RPC = https://alfajores-forno.celo-testnet.org
|
||||||
|
GAS_FEE_CAP = 35000000000
|
||||||
98
parse.py
98
parse.py
@@ -7,8 +7,9 @@ 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
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
logg = logging.getLogger()
|
logg = logging.getLogger()
|
||||||
logg.setLevel(logging.DEBUG)
|
logg.setLevel(logging.DEBUG)
|
||||||
@@ -51,6 +52,17 @@ def t_error(t):
|
|||||||
t.lexer.skip(1)
|
t.lexer.skip(1)
|
||||||
|
|
||||||
lexer = lex.lex()
|
lexer = lex.lex()
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
#Chain params
|
||||||
|
privatekey = os.getenv("PRIVATE_KEY")
|
||||||
|
chainId = os.getenv("CHAIN_ID")
|
||||||
|
rpc = os.getenv("RPC")
|
||||||
|
gasCap = os.getenv("GAS_FEE_CAP")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#data = '''
|
#data = '''
|
||||||
#FOOBAR uf-2etg 0xa3bdefa momo 123
|
#FOOBAR uf-2etg 0xa3bdefa momo 123
|
||||||
@@ -154,6 +166,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):
|
||||||
@@ -300,6 +313,81 @@ def noop_handler(cmd):
|
|||||||
return str(cmd)
|
return str(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
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 {privatekey} ' \
|
||||||
|
f'--rpc {rpc} --gas-fee-cap {gasCap} --chainid {chainId} ' \
|
||||||
|
f'p erc20 --name "{name}" --symbol "{symbol}"'
|
||||||
|
|
||||||
|
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)
|
||||||
|
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]
|
||||||
|
print("Voucher created with Address:",contract_address)
|
||||||
|
return contract_address
|
||||||
|
|
||||||
|
def voucher_transfer_handler(cmd):
|
||||||
|
value = cmd.v # Amount to transfer
|
||||||
|
s = "0x" + str(cmd.a).split(":")[1]
|
||||||
|
to = "0x" + str(cmd.t).split(":")[1]
|
||||||
|
|
||||||
|
command = (
|
||||||
|
f'cast send --private-key {privatekey} '
|
||||||
|
f'--rpc-url {rpc} '
|
||||||
|
f'{s} '
|
||||||
|
f'"transfer(address,uint256)" {to} {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
|
||||||
|
s = "0x" + str(cmd.a).split(":")[1]
|
||||||
|
to = "0x" + str(cmd.t).split(":")[1]
|
||||||
|
command = (
|
||||||
|
f'cast send --private-key {privatekey}'
|
||||||
|
f'--rpc-url {rpc} '
|
||||||
|
f' {s} '
|
||||||
|
f'"mintTo(address,uint256)" {to} {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 +455,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_CREATE, voucher_create_handler)
|
||||||
o.register(CmdId.VOUCHER_CREATE, noop_handler)
|
o.register(CmdId.VOUCHER_MINT, voucher_mint_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])
|
||||||
|
|||||||
4
seed_commands.txt
Normal file
4
seed_commands.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
KEY_CREATE - lockkey custodialstore
|
||||||
|
VOUCHER_CREATE - stm stopcoin 6
|
||||||
|
VOUCHER_TRANSFER - 0x0d3D8A97f970fbdf7486274b02A8308d8aCcE6a1 5000000 0x74096A72495FE95710C675E78bd4A10f2BfE08BC 0xEef7Ad2cCCB317E6898F43eA2B5b1BD1E9C13b1A
|
||||||
|
VOUCHER_MINT - 0x2e8ce655BEfBee9b29A34fcecb3193462e4d0999 5000000 0x74096a72495fe95710c675e78bd4a10f2bfe08bc
|
||||||
Reference in New Issue
Block a user