Add faucet disburse to pure eth import, remove eth-abi from verify
This commit is contained in:
@@ -41,6 +41,7 @@ from cic_base.eth.syncer import chain_interface
|
||||
from eth_accounts_index import AccountsIndex
|
||||
from eth_contract_registry import Registry
|
||||
from eth_token_index import TokenUniqueSymbolIndex
|
||||
from erc20_faucet import Faucet
|
||||
|
||||
|
||||
logging.basicConfig(level=logging.WARNING)
|
||||
@@ -55,7 +56,7 @@ argparser.add_argument('-c', type=str, default=config_dir, help='config root to
|
||||
argparser.add_argument('--old-chain-spec', type=str, dest='old_chain_spec', default='evm:oldchain:1', help='chain spec')
|
||||
argparser.add_argument('-i', '--chain-spec', type=str, dest='i', help='chain spec')
|
||||
argparser.add_argument('-r', '--registry-address', type=str, dest='r', help='CIC Registry address')
|
||||
argparser.add_argument('--token-symbol', default='SRF', type=str, dest='token_symbol', help='Token symbol to use for trnsactions')
|
||||
argparser.add_argument('--token-symbol', default='GFT', type=str, dest='token_symbol', help='Token symbol to use for trnsactions')
|
||||
argparser.add_argument('--head', action='store_true', help='start at current block height (overrides --offset)')
|
||||
argparser.add_argument('--env-prefix', default=os.environ.get('CONFINI_ENV_PREFIX'), dest='env_prefix', type=str, help='environment prefix for variables to overwrite configuration')
|
||||
argparser.add_argument('-q', type=str, default='cic-eth', help='celery queue to submit transaction tasks to')
|
||||
@@ -117,12 +118,16 @@ class Handler:
|
||||
|
||||
account_index_add_signature = keccak256_string_to_hex('add(address)')[:8]
|
||||
|
||||
def __init__(self, conn, chain_spec, user_dir, balances, token_address, signer, gas_oracle, nonce_oracle):
|
||||
def __init__(self, conn, chain_spec, user_dir, balances, token_address, faucet_address, signer_address, signer, gas_oracle, nonce_oracle):
|
||||
self.token_address = token_address
|
||||
self.faucet_address = faucet_address
|
||||
self.user_dir = user_dir
|
||||
self.balances = balances
|
||||
self.chain_spec = chain_spec
|
||||
self.tx_factory = ERC20(chain_spec, signer, gas_oracle, nonce_oracle)
|
||||
self.nonce_oracle = nonce_oracle
|
||||
self.gas_oracle = gas_oracle
|
||||
self.signer_address = signer_address
|
||||
self.signer = signer
|
||||
|
||||
|
||||
def name(self):
|
||||
@@ -164,11 +169,14 @@ class Handler:
|
||||
return
|
||||
|
||||
# TODO: store token object in handler ,get decimals from there
|
||||
multiplier = 10**6
|
||||
erc20 = ERC20(self.chain_spec, signer=self.signer, gas_oracle=self.gas_oracle, nonce_oracle=self.nonce_oracle)
|
||||
o = erc20.decimals(self.token_address)
|
||||
r = conn.do(o)
|
||||
decimals = erc20.parse_decimals(r)
|
||||
multiplier = 10 ** decimals
|
||||
balance_full = balance * multiplier
|
||||
logg.info('registered {} originally {} ({}) tx hash {} balance {}'.format(recipient, original_address, u, tx.hash, balance_full))
|
||||
|
||||
(tx_hash_hex, o) = self.tx_factory.transfer(self.token_address, signer_address, recipient, balance_full)
|
||||
(tx_hash_hex, o) = erc20.transfer(self.token_address, self.signer_address, recipient, balance_full)
|
||||
logg.info('submitting erc20 transfer tx {} for recipient {}'.format(tx_hash_hex, recipient))
|
||||
r = conn.do(o)
|
||||
|
||||
@@ -181,6 +189,10 @@ class Handler:
|
||||
f.write(strip_0x(o['params'][0]))
|
||||
f.close()
|
||||
|
||||
faucet = Faucet(self.chain_spec, signer=self.signer, gas_oracle=self.gas_oracle, nonce_oracle=self.nonce_oracle)
|
||||
(tx_hash, o) = faucet.give_to(self.faucet_address, self.signer_address, recipient)
|
||||
r = conn.do(o)
|
||||
|
||||
|
||||
def progress_callback(block_number, tx_index):
|
||||
sys.stdout.write(str(block_number).ljust(200) + "\n")
|
||||
@@ -202,6 +214,13 @@ def main():
|
||||
token_index_address = to_checksum_address(token_index_address)
|
||||
logg.info('found token index address {}'.format(token_index_address))
|
||||
|
||||
# Get Faucet address
|
||||
o = registry.address_of(config.get('CIC_REGISTRY_ADDRESS'), 'Faucet')
|
||||
r = conn.do(o)
|
||||
faucet_address = registry.parse_address_of(r)
|
||||
faucet_address = to_checksum_address(faucet_address)
|
||||
logg.info('found faucet {}'.format(faucet_address))
|
||||
|
||||
# Get Sarafu token address
|
||||
token_index = TokenUniqueSymbolIndex(chain_spec)
|
||||
o = token_index.address_of(token_index_address, token_symbol)
|
||||
@@ -244,7 +263,7 @@ def main():
|
||||
|
||||
syncer_backend.set(block_offset, 0)
|
||||
syncer = HeadSyncer(syncer_backend, chain_interface, block_callback=progress_callback)
|
||||
handler = Handler(conn, chain_spec, user_dir, balances, token_address, signer, gas_oracle, nonce_oracle)
|
||||
handler = Handler(conn, chain_spec, user_dir, balances, token_address, faucet_address, signer_address, signer, gas_oracle, nonce_oracle)
|
||||
syncer.add_filter(handler)
|
||||
syncer.loop(1, conn)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user