Remove cic-base from cic-cache-tracker, replace with chainlib cli
This commit is contained in:
parent
290be3e15a
commit
69d00f9a5a
1
apps/cic-cache/MANIFEST.in
Normal file
1
apps/cic-cache/MANIFEST.in
Normal file
@ -0,0 +1 @@
|
|||||||
|
include *requirements.txt cic_cache/data/config/*
|
15
apps/cic-cache/cic_cache/cli/__init__.py
Normal file
15
apps/cic-cache/cic_cache/cli/__init__.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# local imports
|
||||||
|
from .base import *
|
||||||
|
from .chain import (
|
||||||
|
EthChainInterface,
|
||||||
|
chain_interface,
|
||||||
|
)
|
||||||
|
from .rpc import RPC
|
||||||
|
from .arg import ArgumentParser
|
||||||
|
from .config import Config
|
||||||
|
from .celery import CeleryApp
|
||||||
|
from .registry import (
|
||||||
|
connect_registry,
|
||||||
|
connect_token_registry,
|
||||||
|
connect_declarator,
|
||||||
|
)
|
20
apps/cic-cache/cic_cache/cli/arg.py
Normal file
20
apps/cic-cache/cic_cache/cli/arg.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# external imports
|
||||||
|
from chainlib.eth.cli import ArgumentParser as BaseArgumentParser
|
||||||
|
|
||||||
|
# local imports
|
||||||
|
from .base import (
|
||||||
|
CICFlag,
|
||||||
|
Flag,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ArgumentParser(BaseArgumentParser):
|
||||||
|
|
||||||
|
def process_local_flags(self, local_arg_flags):
|
||||||
|
if local_arg_flags & CICFlag.CELERY:
|
||||||
|
self.add_argument('-q', '--celery-queue', dest='celery_queue', type=str, default='cic-eth', help='Task queue')
|
||||||
|
if local_arg_flags & CICFlag.SYNCER:
|
||||||
|
self.add_argument('--offset', type=int, default=0, help='Start block height for initial history sync')
|
||||||
|
self.add_argument('--no-history', action='store_true', dest='no_history', help='Skip initial history sync')
|
||||||
|
if local_arg_flags & CICFlag.CHAIN:
|
||||||
|
self.add_argument('-r', '--registry-address', type=str, dest='registry_address', help='CIC registry contract address')
|
31
apps/cic-cache/cic_cache/cli/base.py
Normal file
31
apps/cic-cache/cic_cache/cli/base.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# standard imports
|
||||||
|
import enum
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
from chainlib.eth.cli import (
|
||||||
|
argflag_std_read,
|
||||||
|
argflag_std_write,
|
||||||
|
argflag_std_base,
|
||||||
|
Flag,
|
||||||
|
)
|
||||||
|
|
||||||
|
class CICFlag(enum.IntEnum):
|
||||||
|
|
||||||
|
# celery - nibble 1
|
||||||
|
CELERY = 1
|
||||||
|
|
||||||
|
# redis - nibble 2
|
||||||
|
# REDIS = 16
|
||||||
|
# REDIS_CALLBACK = 32
|
||||||
|
|
||||||
|
# chain - nibble 3
|
||||||
|
CHAIN = 256
|
||||||
|
|
||||||
|
# sync - nibble 4
|
||||||
|
SYNCER = 4096
|
||||||
|
|
||||||
|
|
||||||
|
argflag_local_task = CICFlag.CELERY
|
||||||
|
#argflag_local_taskcallback = argflag_local_task | CICFlag.REDIS | CICFlag.REDIS_CALLBACK
|
||||||
|
argflag_local_chain = CICFlag.CHAIN
|
||||||
|
argflag_local_sync = CICFlag.SYNCER | CICFlag.CHAIN
|
24
apps/cic-cache/cic_cache/cli/celery.py
Normal file
24
apps/cic-cache/cic_cache/cli/celery.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# standard imports
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
import celery
|
||||||
|
|
||||||
|
logg = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class CeleryApp:
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_config(cls, config):
|
||||||
|
backend_url = config.get('CELERY_RESULT_URL')
|
||||||
|
broker_url = config.get('CELERY_BROKER_URL')
|
||||||
|
celery_app = None
|
||||||
|
if backend_url != None:
|
||||||
|
celery_app = celery.Celery(broker=broker_url, backend=backend_url)
|
||||||
|
logg.info('creating celery app on {} with backend on {}'.format(broker_url, backend_url))
|
||||||
|
else:
|
||||||
|
celery_app = celery.Celery(broker=broker_url)
|
||||||
|
logg.info('creating celery app without results backend on {}'.format(broker_url))
|
||||||
|
|
||||||
|
return celery_app
|
21
apps/cic-cache/cic_cache/cli/chain.py
Normal file
21
apps/cic-cache/cic_cache/cli/chain.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# external imports
|
||||||
|
from chainlib.eth.block import (
|
||||||
|
block_by_number,
|
||||||
|
Block,
|
||||||
|
)
|
||||||
|
from chainlib.eth.tx import (
|
||||||
|
receipt,
|
||||||
|
Tx,
|
||||||
|
)
|
||||||
|
from chainlib.interface import ChainInterface
|
||||||
|
|
||||||
|
|
||||||
|
class EthChainInterface(ChainInterface):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self._tx_receipt = receipt
|
||||||
|
self._block_by_number = block_by_number
|
||||||
|
self._block_from_src = Block.from_src
|
||||||
|
self._src_normalize = Tx.src_normalize
|
||||||
|
|
||||||
|
chain_interface = EthChainInterface()
|
63
apps/cic-cache/cic_cache/cli/config.py
Normal file
63
apps/cic-cache/cic_cache/cli/config.py
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# standard imports
|
||||||
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
from chainlib.eth.cli import (
|
||||||
|
Config as BaseConfig,
|
||||||
|
Flag,
|
||||||
|
)
|
||||||
|
|
||||||
|
# local imports
|
||||||
|
from .base import CICFlag
|
||||||
|
|
||||||
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
logg = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class Config(BaseConfig):
|
||||||
|
|
||||||
|
local_base_config_dir = os.path.join(script_dir, '..', 'data', 'config')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, args, arg_flags, local_arg_flags, extra_args={}, default_config_dir=None, base_config_dir=None, default_fee_limit=None):
|
||||||
|
expanded_base_config_dir = [cls.local_base_config_dir]
|
||||||
|
if base_config_dir != None:
|
||||||
|
if isinstance(base_config_dir, str):
|
||||||
|
base_config_dir = [base_config_dir]
|
||||||
|
for d in base_config_dir:
|
||||||
|
expanded_base_config_dir.append(d)
|
||||||
|
config = BaseConfig.from_args(args, arg_flags, extra_args=extra_args, default_config_dir=default_config_dir, base_config_dir=expanded_base_config_dir, load_callback=None)
|
||||||
|
|
||||||
|
local_args_override = {}
|
||||||
|
# if local_arg_flags & CICFlag.REDIS:
|
||||||
|
# local_args_override['REDIS_HOST'] = getattr(args, 'redis_host')
|
||||||
|
# local_args_override['REDIS_PORT'] = getattr(args, 'redis_port')
|
||||||
|
# local_args_override['REDIS_DB'] = getattr(args, 'redis_db')
|
||||||
|
# local_args_override['REDIS_TIMEOUT'] = getattr(args, 'redis_timeout')
|
||||||
|
|
||||||
|
if local_arg_flags & CICFlag.CHAIN:
|
||||||
|
local_args_override['CIC_REGISTRY_ADDRESS'] = getattr(args, 'registry_address')
|
||||||
|
|
||||||
|
if local_arg_flags & CICFlag.CELERY:
|
||||||
|
local_args_override['CELERY_QUEUE'] = getattr(args, 'celery_queue')
|
||||||
|
|
||||||
|
if local_arg_flags & CICFlag.SYNCER:
|
||||||
|
local_args_override['SYNCER_OFFSET'] = getattr(args, 'offset')
|
||||||
|
local_args_override['SYNCER_NO_HISTORY'] = getattr(args, 'no_history')
|
||||||
|
|
||||||
|
config.dict_override(local_args_override, 'local cli args')
|
||||||
|
|
||||||
|
# if local_arg_flags & CICFlag.REDIS_CALLBACK:
|
||||||
|
# config.add(getattr(args, 'redis_host_callback'), '_REDIS_HOST_CALLBACK')
|
||||||
|
# config.add(getattr(args, 'redis_port_callback'), '_REDIS_PORT_CALLBACK')
|
||||||
|
|
||||||
|
if local_arg_flags & CICFlag.CELERY:
|
||||||
|
config.add(config.true('CELERY_DEBUG'), 'CELERY_DEBUG', exists_ok=True)
|
||||||
|
|
||||||
|
logg.debug('config loaded:\n{}'.format(config))
|
||||||
|
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
33
apps/cic-cache/cic_cache/cli/registry.py
Normal file
33
apps/cic-cache/cic_cache/cli/registry.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# standard imports
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
from cic_eth_registry import CICRegistry
|
||||||
|
from cic_eth_registry.lookup.declarator import AddressDeclaratorLookup
|
||||||
|
from cic_eth_registry.lookup.tokenindex import TokenIndexLookup
|
||||||
|
from chainlib.eth.constant import ZERO_ADDRESS
|
||||||
|
|
||||||
|
logg = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
|
def connect_token_registry(self, conn, chain_spec, sender_address=ZERO_ADDRESS):
|
||||||
|
registry = CICRegistry(chain_spec, conn)
|
||||||
|
token_registry_address = registry.by_name('TokenRegistry', sender_address=sender_address)
|
||||||
|
logg.debug('using token registry address {}'.format(token_registry_address))
|
||||||
|
lookup = TokenIndexLookup(chain_spec, token_registry_address)
|
||||||
|
CICRegistry.add_lookup(lookup)
|
||||||
|
|
||||||
|
|
||||||
|
def connect_declarator(self, conn, chain_spec, trusted_addresses, sender_address=ZERO_ADDRESS):
|
||||||
|
registry = CICRegistry(chain_spec, conn)
|
||||||
|
declarator_address = registry.by_name('AddressDeclarator', sender_address=sender_address)
|
||||||
|
logg.debug('using declarator address {}'.format(declarator_address))
|
||||||
|
lookup = AddressDeclaratorLookup(chain_spec, declarator_address, trusted_addresses)
|
||||||
|
CICRegistry.add_lookup(lookup)
|
||||||
|
|
||||||
|
|
||||||
|
def connect_registry(conn, chain_spec, registry_address, sender_address=ZERO_ADDRESS):
|
||||||
|
CICRegistry.address = registry_address
|
||||||
|
registry = CICRegistry(chain_spec, conn)
|
||||||
|
registry_address = registry.by_name('ContractRegistry', sender_address=sender_address)
|
||||||
|
return registry
|
43
apps/cic-cache/cic_cache/cli/rpc.py
Normal file
43
apps/cic-cache/cic_cache/cli/rpc.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# standard imports
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
from chainlib.connection import (
|
||||||
|
RPCConnection,
|
||||||
|
ConnType,
|
||||||
|
)
|
||||||
|
from chainlib.eth.connection import EthUnixSignerConnection
|
||||||
|
from chainlib.chain import ChainSpec
|
||||||
|
|
||||||
|
logg = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class RPC:
|
||||||
|
|
||||||
|
def __init__(self, chain_spec, rpc_provider, signer_provider=None):
|
||||||
|
self.chain_spec = chain_spec
|
||||||
|
self.rpc_provider = rpc_provider
|
||||||
|
self.signer_provider = signer_provider
|
||||||
|
|
||||||
|
|
||||||
|
def get_default(self):
|
||||||
|
return RPCConnection.connect(self.chain_spec, 'default')
|
||||||
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def from_config(config):
|
||||||
|
chain_spec = ChainSpec.from_chain_str(config.get('CHAIN_SPEC'))
|
||||||
|
RPCConnection.register_location(config.get('RPC_HTTP_PROVIDER'), chain_spec, 'default')
|
||||||
|
if config.get('SIGNER_PROVIDER'):
|
||||||
|
RPCConnection.register_constructor(ConnType.UNIX, EthUnixSignerConnection, tag='signer')
|
||||||
|
RPCConnection.register_location(config.get('SIGNER_PROVIDER'), chain_spec, 'signer')
|
||||||
|
rpc = RPC(chain_spec, config.get('RPC_HTTP_PROVIDER'), signer_provider=config.get('SIGNER_PROVIDER'))
|
||||||
|
logg.info('set up rpc: {}'.format(rpc))
|
||||||
|
return rpc
|
||||||
|
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return 'RPC factory, chain {}, rpc {}, signer {}'.format(self.chain_spec, self.rpc_provider, self.signer_provider)
|
||||||
|
|
||||||
|
|
||||||
|
|
5
apps/cic-cache/cic_cache/data/config/celery.ini
Normal file
5
apps/cic-cache/cic_cache/data/config/celery.ini
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[celery]
|
||||||
|
broker_url = redis://localhost:6379
|
||||||
|
result_url =
|
||||||
|
queue = cic-eth
|
||||||
|
debug = 0
|
4
apps/cic-cache/cic_cache/data/config/cic.ini
Normal file
4
apps/cic-cache/cic_cache/data/config/cic.ini
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[cic]
|
||||||
|
registry_address =
|
||||||
|
trust_address =
|
||||||
|
health_modules = cic_eth.check.db,cic_eth.check.redis,cic_eth.check.signer,cic_eth.check.gas
|
10
apps/cic-cache/cic_cache/data/config/database.ini
Normal file
10
apps/cic-cache/cic_cache/data/config/database.ini
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[database]
|
||||||
|
engine =
|
||||||
|
driver =
|
||||||
|
host =
|
||||||
|
port =
|
||||||
|
name = cic-cache
|
||||||
|
user =
|
||||||
|
password =
|
||||||
|
debug = 0
|
||||||
|
pool_size = 0
|
2
apps/cic-cache/cic_cache/data/config/signer.ini
Normal file
2
apps/cic-cache/cic_cache/data/config/signer.ini
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[signer]
|
||||||
|
provider =
|
4
apps/cic-cache/cic_cache/data/config/syncer.ini
Normal file
4
apps/cic-cache/cic_cache/data/config/syncer.ini
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[syncer]
|
||||||
|
loop_interval = 1
|
||||||
|
offset = 0
|
||||||
|
no_history = 0
|
@ -7,7 +7,7 @@ Create Date: 2021-04-01 08:10:29.156243
|
|||||||
"""
|
"""
|
||||||
from alembic import op
|
from alembic import op
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from chainsyncer.db.migrations.sqlalchemy import (
|
from chainsyncer.db.migrations.default.export import (
|
||||||
chainsyncer_upgrade,
|
chainsyncer_upgrade,
|
||||||
chainsyncer_downgrade,
|
chainsyncer_downgrade,
|
||||||
)
|
)
|
||||||
|
@ -9,7 +9,6 @@ import re
|
|||||||
|
|
||||||
# external imports
|
# external imports
|
||||||
import sqlalchemy
|
import sqlalchemy
|
||||||
from cic_base.eth.syncer import chain_interface
|
|
||||||
from cic_eth_registry import CICRegistry
|
from cic_eth_registry import CICRegistry
|
||||||
from cic_eth_registry.error import UnknownContractError
|
from cic_eth_registry.error import UnknownContractError
|
||||||
from chainlib.chain import ChainSpec
|
from chainlib.chain import ChainSpec
|
||||||
@ -27,6 +26,7 @@ from chainsyncer.driver.history import HistorySyncer
|
|||||||
from chainsyncer.db.models.base import SessionBase
|
from chainsyncer.db.models.base import SessionBase
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
|
import cic_cache.cli
|
||||||
from cic_cache.db import (
|
from cic_cache.db import (
|
||||||
dsn_from_config,
|
dsn_from_config,
|
||||||
add_tag,
|
add_tag,
|
||||||
@ -36,32 +36,36 @@ from cic_cache.runnable.daemons.filters import (
|
|||||||
FaucetFilter,
|
FaucetFilter,
|
||||||
)
|
)
|
||||||
|
|
||||||
script_dir = os.path.realpath(os.path.dirname(__file__))
|
logging.basicConfig(level=logging.WARNING)
|
||||||
|
logg = logging.getLogger()
|
||||||
|
|
||||||
def add_block_args(argparser):
|
# process args
|
||||||
argparser.add_argument('--history-start', type=int, default=0, dest='history_start', help='Start block height for initial history sync')
|
arg_flags = cic_cache.cli.argflag_std_read
|
||||||
argparser.add_argument('--no-history', action='store_true', dest='no_history', help='Skip initial history sync')
|
local_arg_flags = cic_cache.cli.argflag_local_sync
|
||||||
return argparser
|
argparser = cic_cache.cli.ArgumentParser(arg_flags)
|
||||||
|
argparser.process_local_flags(local_arg_flags)
|
||||||
|
args = argparser.parse_args()
|
||||||
|
|
||||||
|
# process config
|
||||||
|
config = cic_cache.cli.Config.from_args(args, arg_flags, local_arg_flags)
|
||||||
|
|
||||||
logg = cic_base.log.create()
|
# connect to database
|
||||||
argparser = cic_base.argparse.create(script_dir, cic_base.argparse.full_template)
|
|
||||||
argparser = cic_base.argparse.add(argparser, add_block_args, 'block')
|
|
||||||
args = cic_base.argparse.parse(argparser, logg)
|
|
||||||
config = cic_base.config.create(args.c, args, args.env_prefix)
|
|
||||||
|
|
||||||
config.add(args.history_start, 'SYNCER_HISTORY_START', True)
|
|
||||||
config.add(args.no_history, '_NO_HISTORY', True)
|
|
||||||
|
|
||||||
cic_base.config.log(config)
|
|
||||||
|
|
||||||
dsn = dsn_from_config(config)
|
dsn = dsn_from_config(config)
|
||||||
|
|
||||||
SessionBase.connect(dsn, debug=config.true('DATABASE_DEBUG'))
|
SessionBase.connect(dsn, debug=config.true('DATABASE_DEBUG'))
|
||||||
|
|
||||||
chain_spec = ChainSpec.from_chain_str(config.get('CIC_CHAIN_SPEC'))
|
# set up rpc
|
||||||
|
rpc = cic_cache.cli.RPC.from_config(config)
|
||||||
|
conn = rpc.get_default()
|
||||||
|
|
||||||
cic_base.rpc.setup(chain_spec, config.get('ETH_PROVIDER'))
|
# set up chain provisions
|
||||||
|
chain_spec = ChainSpec.from_chain_str(config.get('CHAIN_SPEC'))
|
||||||
|
registry = None
|
||||||
|
try:
|
||||||
|
registry = cic_cache.cli.connect_registry(conn, chain_spec, config.get('CIC_REGISTRY_ADDRESS'))
|
||||||
|
except UnknownContractError as e:
|
||||||
|
logg.exception('Registry contract connection failed for {}: {}'.format(config.get('CIC_REGISTRY_ADDRESS'), e))
|
||||||
|
sys.exit(1)
|
||||||
|
logg.info('connected contract registry {}'.format(config.get('CIC_REGISTRY_ADDRESS')))
|
||||||
|
|
||||||
|
|
||||||
def register_filter_tags(filters, session):
|
def register_filter_tags(filters, session):
|
||||||
@ -88,14 +92,12 @@ def main():
|
|||||||
|
|
||||||
syncers = []
|
syncers = []
|
||||||
|
|
||||||
#if SQLBackend.first(chain_spec):
|
|
||||||
# backend = SQLBackend.initial(chain_spec, block_offset)
|
|
||||||
syncer_backends = SQLBackend.resume(chain_spec, block_offset)
|
syncer_backends = SQLBackend.resume(chain_spec, block_offset)
|
||||||
|
|
||||||
if len(syncer_backends) == 0:
|
if len(syncer_backends) == 0:
|
||||||
initial_block_start = config.get('SYNCER_HISTORY_START')
|
initial_block_start = config.get('SYNCER_OFFSET')
|
||||||
initial_block_offset = block_offset
|
initial_block_offset = block_offset
|
||||||
if config.get('_NO_HISTORY'):
|
if config.get('SYNCER_NO_HISTORY'):
|
||||||
initial_block_start = block_offset
|
initial_block_start = block_offset
|
||||||
initial_block_offset += 1
|
initial_block_offset += 1
|
||||||
syncer_backends.append(SQLBackend.initial(chain_spec, initial_block_offset, start_block_height=initial_block_start))
|
syncer_backends.append(SQLBackend.initial(chain_spec, initial_block_offset, start_block_height=initial_block_start))
|
||||||
@ -105,10 +107,10 @@ def main():
|
|||||||
logg.info('resuming sync session {}'.format(syncer_backend))
|
logg.info('resuming sync session {}'.format(syncer_backend))
|
||||||
|
|
||||||
for syncer_backend in syncer_backends:
|
for syncer_backend in syncer_backends:
|
||||||
syncers.append(HistorySyncer(syncer_backend, chain_interface))
|
syncers.append(HistorySyncer(syncer_backend, cic_cache.cli.chain_interface))
|
||||||
|
|
||||||
syncer_backend = SQLBackend.live(chain_spec, block_offset+1)
|
syncer_backend = SQLBackend.live(chain_spec, block_offset+1)
|
||||||
syncers.append(HeadSyncer(syncer_backend, chain_interface))
|
syncers.append(HeadSyncer(syncer_backend, cic_cache.cli.chain_interface))
|
||||||
|
|
||||||
trusted_addresses_src = config.get('CIC_TRUST_ADDRESS')
|
trusted_addresses_src = config.get('CIC_TRUST_ADDRESS')
|
||||||
if trusted_addresses_src == None:
|
if trusted_addresses_src == None:
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
[bancor]
|
|
||||||
dir =
|
|
@ -1,4 +1,3 @@
|
|||||||
[cic]
|
[cic]
|
||||||
registry_address =
|
registry_address =
|
||||||
chain_spec =
|
|
||||||
trust_address =
|
trust_address =
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
[bancor]
|
|
||||||
registry_address =
|
|
||||||
dir = /usr/local/share/bancor
|
|
@ -1,4 +1,3 @@
|
|||||||
[cic]
|
[cic]
|
||||||
chain_spec =
|
|
||||||
registry_address =
|
registry_address =
|
||||||
trust_address = 0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C
|
trust_address = 0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
[eth]
|
|
||||||
provider = http://localhost:63545
|
|
@ -1,3 +1,4 @@
|
|||||||
[syncer]
|
[syncer]
|
||||||
loop_interval = 1
|
loop_interval = 1
|
||||||
history_start = 0
|
offset = 0
|
||||||
|
no_history = 0
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
[eth]
|
|
||||||
provider = ws://localhost:8545
|
|
@ -1,3 +0,0 @@
|
|||||||
[syncer]
|
|
||||||
loop_interval = 5
|
|
||||||
history_start = 0
|
|
@ -1,12 +1,14 @@
|
|||||||
alembic==1.4.2
|
alembic==1.4.2
|
||||||
confini>=0.3.6rc3,<0.5.0
|
confini>=0.3.6rc4,<0.5.0
|
||||||
uwsgi==2.0.19.1
|
uwsgi==2.0.19.1
|
||||||
moolb~=0.1.0
|
moolb~=0.1.0
|
||||||
cic-eth-registry~=0.5.6a2
|
cic-eth-registry~=0.5.7a1
|
||||||
SQLAlchemy==1.3.20
|
SQLAlchemy==1.3.20
|
||||||
semver==2.13.0
|
semver==2.13.0
|
||||||
psycopg2==2.8.6
|
psycopg2==2.8.6
|
||||||
celery==4.4.7
|
celery==4.4.7
|
||||||
redis==3.5.3
|
redis==3.5.3
|
||||||
chainsyncer[sql]~=0.0.3a5
|
chainsyncer[sql]>=0.0.5a1,<0.1.0
|
||||||
erc20-faucet~=0.2.2a2
|
erc20-faucet~=0.2.3a1
|
||||||
|
chainlib>=0.0.6a3,<0.1.0
|
||||||
|
eth-address-index>=0.1.3a1,<0.2.0
|
||||||
|
@ -23,11 +23,13 @@ licence_files =
|
|||||||
|
|
||||||
[options]
|
[options]
|
||||||
python_requires = >= 3.6
|
python_requires = >= 3.6
|
||||||
|
include_package_data = True
|
||||||
packages =
|
packages =
|
||||||
cic_cache
|
cic_cache
|
||||||
cic_cache.tasks
|
cic_cache.tasks
|
||||||
cic_cache.db
|
cic_cache.db
|
||||||
cic_cache.db.models
|
cic_cache.db.models
|
||||||
|
cic_cache.cli
|
||||||
cic_cache.runnable
|
cic_cache.runnable
|
||||||
cic_cache.runnable.daemons
|
cic_cache.runnable.daemons
|
||||||
cic_cache.runnable.daemons.filters
|
cic_cache.runnable.daemons.filters
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
include *requirements.txt config/test/*
|
include *requirements.txt config/test/* cic_eth/data/config/*
|
||||||
|
|
||||||
|
@ -24,8 +24,10 @@ licence_files =
|
|||||||
|
|
||||||
[options]
|
[options]
|
||||||
python_requires = >= 3.6
|
python_requires = >= 3.6
|
||||||
|
include_package_data = True
|
||||||
packages =
|
packages =
|
||||||
cic_eth
|
cic_eth
|
||||||
|
cic_eth.cli
|
||||||
cic_eth.admin
|
cic_eth.admin
|
||||||
cic_eth.eth
|
cic_eth.eth
|
||||||
cic_eth.api
|
cic_eth.api
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
sarafu-faucet==0.0.4a3
|
sarafu-faucet==0.0.5a1
|
||||||
cic-eth[tools]==0.12.1a1
|
cic-eth[tools]==0.12.2a3
|
||||||
cic-types==0.1.0a13
|
cic-types==0.1.0a14
|
||||||
crypto-dev-signer==0.4.14b7
|
crypto-dev-signer==0.4.14rc1
|
||||||
faker==4.17.1
|
faker==4.17.1
|
||||||
chainsyncer~=0.0.3a3
|
chainsyncer~=0.0.5a1
|
||||||
chainlib-eth~=0.0.5a1
|
chainlib-eth~=0.0.6a3
|
||||||
eth-address-index~=0.1.2a1
|
eth-address-index~=0.1.3a1
|
||||||
eth-contract-registry~=0.5.6a1
|
eth-contract-registry~=0.5.7a1
|
||||||
eth-accounts-index~=0.0.12a1
|
eth-accounts-index~=0.0.13a1
|
||||||
eth-erc20~=0.0.10a3
|
eth-erc20~=0.0.11a1
|
||||||
erc20-faucet~=0.2.2a1
|
erc20-faucet~=0.2.3a1
|
||||||
psycopg2==2.8.6
|
psycopg2==2.8.6
|
||||||
|
@ -131,9 +131,11 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: apps/cic-cache
|
context: apps/cic-cache
|
||||||
dockerfile: docker/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
|
args:
|
||||||
|
EXTRA_INDEX_URL: ${EXTRA_INDEX_URL:-https://pip.grassrootseconomics.net:8433}
|
||||||
environment:
|
environment:
|
||||||
CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS # supplied at contract-config after contract provisioning
|
CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS # supplied at contract-config after contract provisioning
|
||||||
ETH_PROVIDER: ${ETH_PROVIDER:-http://eth:8545}
|
RPC_HTTP_PROVIDER: ${ETH_PROVIDER:-http://eth:8545}
|
||||||
DATABASE_USER: ${DATABASE_USER:-grassroots}
|
DATABASE_USER: ${DATABASE_USER:-grassroots}
|
||||||
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-tralala} # this is is set at initdb see: postgres/initdb/create_db.sql
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-tralala} # this is is set at initdb see: postgres/initdb/create_db.sql
|
||||||
DATABASE_HOST: ${DATABASE_HOST:-postgres}
|
DATABASE_HOST: ${DATABASE_HOST:-postgres}
|
||||||
@ -142,9 +144,8 @@ services:
|
|||||||
DATABASE_ENGINE: ${DATABASE_ENGINE:-postgres}
|
DATABASE_ENGINE: ${DATABASE_ENGINE:-postgres}
|
||||||
DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2}
|
DATABASE_DRIVER: ${DATABASE_DRIVER:-psycopg2}
|
||||||
DATABASE_DEBUG: 1
|
DATABASE_DEBUG: 1
|
||||||
ETH_ABI_DIR: ${ETH_ABI_DIR:-/usr/local/share/cic/solidity/abi}
|
|
||||||
CIC_TRUST_ADDRESS: ${DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER:-0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C}
|
CIC_TRUST_ADDRESS: ${DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER:-0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C}
|
||||||
CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996}
|
CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996}
|
||||||
CELERY_BROKER_URL: redis://redis:6379
|
CELERY_BROKER_URL: redis://redis:6379
|
||||||
CELERY_RESULT_URL: redis://redis:6379
|
CELERY_RESULT_URL: redis://redis:6379
|
||||||
deploy:
|
deploy:
|
||||||
|
Loading…
Reference in New Issue
Block a user