From 1e148d28c00e33599f77dae3a02046c882ae3dd5 Mon Sep 17 00:00:00 2001 From: nolash Date: Fri, 12 Feb 2021 17:40:51 +0100 Subject: [PATCH] Remove redundant dev folder --- apps/contract-migration/dev/balance.py | 58 ----- apps/contract-migration/dev/create.py | 47 ---- apps/contract-migration/dev/decode.py | 48 ---- apps/contract-migration/dev/env.sh | 24 -- apps/contract-migration/dev/gas.py | 105 --------- .../dev/js/register_users.js | 101 --------- apps/contract-migration/dev/keys.sh | 26 --- apps/contract-migration/dev/nvm.sh | 4 - .../dev/python/scripts/setup.py | 4 - .../dev/python/scripts/tx_driver.py | 150 ------------- .../dev/python/scripts/tx_seed.py | 51 ----- .../dev/python/scripts/users.py | 212 ------------------ apps/contract-migration/dev/python/setup.cfg | 40 ---- apps/contract-migration/dev/python/setup.py | 4 - apps/contract-migration/dev/requirements.txt | 10 - .../dev/sarafu_declaration.json | 18 -- apps/contract-migration/dev/sarafu_logo.png | Bin 7214 -> 0 bytes apps/contract-migration/dev/setup.sh | 138 ------------ apps/contract-migration/dev/tests/create.py | 31 --- apps/contract-migration/dev/transfer.py | 105 --------- 20 files changed, 1176 deletions(-) delete mode 100644 apps/contract-migration/dev/balance.py delete mode 100644 apps/contract-migration/dev/create.py delete mode 100644 apps/contract-migration/dev/decode.py delete mode 100644 apps/contract-migration/dev/env.sh delete mode 100644 apps/contract-migration/dev/gas.py delete mode 100644 apps/contract-migration/dev/js/register_users.js delete mode 100644 apps/contract-migration/dev/keys.sh delete mode 100644 apps/contract-migration/dev/nvm.sh delete mode 100644 apps/contract-migration/dev/python/scripts/setup.py delete mode 100644 apps/contract-migration/dev/python/scripts/tx_driver.py delete mode 100644 apps/contract-migration/dev/python/scripts/tx_seed.py delete mode 100644 apps/contract-migration/dev/python/scripts/users.py delete mode 100644 apps/contract-migration/dev/python/setup.cfg delete mode 100644 apps/contract-migration/dev/python/setup.py delete mode 100644 apps/contract-migration/dev/requirements.txt delete mode 100644 apps/contract-migration/dev/sarafu_declaration.json delete mode 100644 apps/contract-migration/dev/sarafu_logo.png delete mode 100644 apps/contract-migration/dev/setup.sh delete mode 100644 apps/contract-migration/dev/tests/create.py delete mode 100644 apps/contract-migration/dev/transfer.py diff --git a/apps/contract-migration/dev/balance.py b/apps/contract-migration/dev/balance.py deleted file mode 100644 index 4fa6ba5c..00000000 --- a/apps/contract-migration/dev/balance.py +++ /dev/null @@ -1,58 +0,0 @@ -#!python3 - -"""Gas transfer script - -.. moduleauthor:: Louis Holbrook -.. pgp:: 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 - -""" - -# SPDX-License-Identifier: GPL-3.0-or-later - -# standard imports -import os -import json -import argparse -import logging - -# third-party imports -import web3 - -logging.basicConfig(level=logging.WARNING) -logg = logging.getLogger() - -logging.getLogger('web3').setLevel(logging.WARNING) -logging.getLogger('urllib3').setLevel(logging.WARNING) - -default_abi_dir = os.environ.get('ETH_ABI_DIR', '/usr/share/local/cic/solidity/abi') -default_eth_provider = os.environ.get('ETH_PROVIDER', 'http://localhost:8545') - -argparser = argparse.ArgumentParser() -argparser.add_argument('-p', '--provider', dest='p', default=default_eth_provider, type=str, help='Web3 provider url (http only)') -argparser.add_argument('-t', '--token-address', dest='t', type=str, help='Token address. If not set, will return gas balance') -argparser.add_argument('--abi-dir', dest='abi_dir', type=str, default=default_abi_dir, help='Directory containing bytecode and abi (default {})'.format(default_abi_dir)) -argparser.add_argument('-v', action='store_true', help='Be verbose') -argparser.add_argument('account', type=str, help='Account address') -args = argparser.parse_args() - - -if args.v: - logg.setLevel(logging.DEBUG) - -def main(): - w3 = web3.Web3(web3.Web3.HTTPProvider(args.p)) - - balance = None - if args.t != None: - f = open(os.path.join(args.abi_dir, 'ERC20.json')) - abi = json.load(f) - f.close() - c = w3.eth.contract(abi=abi, address=args.t) - balance = c.functions.balanceOf(args.account).call() - else: - balance =w3.eth.getBalance(args.account) - - print(balance) - -if __name__ == '__main__': - main() diff --git a/apps/contract-migration/dev/create.py b/apps/contract-migration/dev/create.py deleted file mode 100644 index 11851ceb..00000000 --- a/apps/contract-migration/dev/create.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/python -import sys -import os -import logging - -import celery -from cic_eth.api import Api -import confini -import argparse - -logging.basicConfig(level=logging.WARNING) -logg = logging.getLogger('create_account_script') -logging.getLogger('confini').setLevel(logging.WARNING) -logging.getLogger('gnupg').setLevel(logging.WARNING) - -config_dir = os.environ.get('CONFINI_DIR', '/usr/local/etc/cic') - -argparser = argparse.ArgumentParser() -argparser.add_argument('--no-register', dest='no_register', action='store_true', help='Do not register new account in on-chain accounts index') -argparser.add_argument('-v', action='store_true', help='Be verbose') -argparser.add_argument('-vv', action='store_true', help='Be more verbose') -args = argparser.parse_args() - -if args.vv: - logg.setLevel(logging.DEBUG) -if args.v: - logg.setLevel(logging.INFO) - -config = confini.Config(config_dir, os.environ.get('CONFINI_ENV_PREFIX')) -config.process() - -celery_app = celery.Celery(broker=config.get('CELERY_BROKER_URL'), backend=config.get('CELERY_RESULT_URL')) - -api = Api(config.get('CIC_CHAIN_SPEC')) - -registration_account = None -#t = api.create_account(registration_account=registration_account) -if len(sys.argv) > 1: - registration_account = config.get('DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER', None) - -logg.debug('accounts index writer NOT USED {}'.format(registration_account)) - -register = not args.no_register -logg.debug('register {}'.format(register)) -t = api.create_account(register=register) - -print(t.get()) diff --git a/apps/contract-migration/dev/decode.py b/apps/contract-migration/dev/decode.py deleted file mode 100644 index 58b7766b..00000000 --- a/apps/contract-migration/dev/decode.py +++ /dev/null @@ -1,48 +0,0 @@ -#!python3 - -"""Decode raw transaction - -.. moduleauthor:: Louis Holbrook -.. pgp:: 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 - -""" - -# SPDX-License-Identifier: GPL-3.0-or-later - -# standard imports -import os -import json -import argparse -import logging - -# third-party imports -from cic_eth.eth.util import unpack_signed_raw_tx - -logging.basicConfig(level=logging.WARNING) -logg = logging.getLogger() - -default_abi_dir = os.environ.get('ETH_ABI_DIR', '/usr/share/local/cic/solidity/abi') -default_eth_provider = os.environ.get('ETH_PROVIDER', 'http://localhost:8545') - -argparser = argparse.ArgumentParser() -argparser.add_argument('-v', action='store_true', help='Be verbose') -argparser.add_argument('-i', '--chain-id', dest='i', type=int, help='Numeric network id') -argparser.add_argument('tx', type=str, help='hex-encoded signed raw transaction') -args = argparser.parse_args() - - -if args.v: - logg.setLevel(logging.DEBUG) - -def main(): - tx_raw = args.tx - if tx_raw[:2] == '0x': - tx_raw = tx_raw[2:] - tx_raw_bytes = bytes.fromhex(tx_raw) - tx = unpack_signed_raw_tx(tx_raw_bytes, args.i) - for k in tx.keys(): - print('{}: {}'.format(k, tx[k])) - - -if __name__ == '__main__': - main() diff --git a/apps/contract-migration/dev/env.sh b/apps/contract-migration/dev/env.sh deleted file mode 100644 index 55fe4504..00000000 --- a/apps/contract-migration/dev/env.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -cic_data_dir=${CIC_DATA_DIR:-/tmp/cic} -t=${1:-$(mktemp)} -prefix='' -if [ ! -z $2 ]; then - prefix="${2}_" -fi - -echo "#!/bin/bash" > $t -echo "set +a" >> $t -cat $cic_data_dir/.env | sed -e "s/^\([A-Z]\)/export ${prefix}\1/g" >> $t - -#if [ -f $cic_data_dir/.env ]; then -#cat $cic_data_dir/.env | sed -e "s/^\([A-Z]\)/export ${prefix}\1/g" >> $t -#fi -echo "export CONFINI_DIR=$(dirname $(realpath .))/config_template" >> $t -source $t -echo "export CELERY_BROKER_URL=redis://localhost:${HTTP_PORT_REDIS}" >> $t -echo "export CELERY_RESULT_URL=redis://localhost:${HTTP_PORT_REDIS}" >> $t -echo "export ETH_PROVIDER=http://localhost:${HTTP_PORT_ETH}" >> $t -echo "export META_PROVIDER=http://localhost:${HTTP_PORT_CIC_META}" >> $t -echo "set -a" >> $t -echo $t diff --git a/apps/contract-migration/dev/gas.py b/apps/contract-migration/dev/gas.py deleted file mode 100644 index 42c5cc46..00000000 --- a/apps/contract-migration/dev/gas.py +++ /dev/null @@ -1,105 +0,0 @@ -#!python3 - -"""Gas transfer script - -.. moduleauthor:: Louis Holbrook -.. pgp:: 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 - -""" - -# SPDX-License-Identifier: GPL-3.0-or-later - -# standard imports -import os -import json -import argparse -import logging - -# third-party imports -import web3 -from crypto_dev_signer.eth.signer import ReferenceSigner as EIP155Signer -from crypto_dev_signer.keystore import DictKeystore -from crypto_dev_signer.eth.helper import EthTxExecutor - -logging.basicConfig(level=logging.WARNING) -logg = logging.getLogger() - -logging.getLogger('web3').setLevel(logging.WARNING) -logging.getLogger('urllib3').setLevel(logging.WARNING) - -default_abi_dir = '/usr/share/local/cic/solidity/abi' -argparser = argparse.ArgumentParser() -argparser.add_argument('-p', '--provider', dest='p', default='http://localhost:8545', type=str, help='Web3 provider url (http only)') -argparser.add_argument('-w', action='store_true', help='Wait for the last transaction to be confirmed') -argparser.add_argument('-ww', action='store_true', help='Wait for every transaction to be confirmed') -argparser.add_argument('-i', '--chain-spec', dest='i', type=str, default='Ethereum:1', help='Chain specification string') -argparser.add_argument('-a', '--signer-address', dest='a', type=str, help='Signing address') -argparser.add_argument('-y', '--key-file', dest='y', type=str, help='Ethereum keystore file to use for signing') -argparser.add_argument('-v', action='store_true', help='Be verbose') -argparser.add_argument('-vv', action='store_true', help='Be more verbose') -argparser.add_argument('recipient', type=str, help='Ethereum address of recipient') -argparser.add_argument('amount', type=int, help='Amount of tokens to mint and gift') -args = argparser.parse_args() - - -if args.vv: - logg.setLevel(logging.DEBUG) -elif args.v: - logg.setLevel(logging.INFO) - -block_last = args.w -block_all = args.ww - -w3 = web3.Web3(web3.Web3.HTTPProvider(args.p)) - -signer_address = None -keystore = DictKeystore() -if args.y != None: - logg.debug('loading keystore file {}'.format(args.y)) - signer_address = keystore.import_keystore_file(args.y) - logg.debug('now have key for signer address {}'.format(signer_address)) -signer = EIP155Signer(keystore) - -chain_pair = args.i.split(':') -chain_id = int(chain_pair[1]) - -helper = EthTxExecutor( - w3, - signer_address, - signer, - chain_id, - block=args.ww, - ) - - -def build_gas_transaction(recipient, value): - def builder(tx): - tx['to'] = recipient - tx['value'] = value - tx['data'] = '0x' - return tx - return builder - - -def main(): - recipient = args.recipient - value = args.amount - - logg.debug('sender {} balance before: {}'.format(signer_address, w3.eth.getBalance(signer_address))) - logg.debug('recipient {} balance before: {}'.format(recipient, w3.eth.getBalance(recipient))) - (tx_hash, rcpt) = helper.sign_and_send( - [ - build_gas_transaction(recipient, value), - ], - ) - logg.debug('sender {} balance after: {}'.format(signer_address, w3.eth.getBalance(signer_address))) - logg.debug('recipient {} balance after: {}'.format(recipient, w3.eth.getBalance(recipient))) - - if block_last: - helper.wait_for() - - print(tx_hash) - - -if __name__ == '__main__': - main() diff --git a/apps/contract-migration/dev/js/register_users.js b/apps/contract-migration/dev/js/register_users.js deleted file mode 100644 index 60b0f3ad..00000000 --- a/apps/contract-migration/dev/js/register_users.js +++ /dev/null @@ -1,101 +0,0 @@ -const fs = require('fs'); -const path = require('path'); -const cic = require('cic-client-meta'); -const http = require('http'); -const confini = require('confini'); - -console.debug('sorry this script doesnt read cli flags, set all in env vars'); - -let config_data_dir = process.env.CONFINI_DIR; -if (config_data_dir === undefined) { - config_data_dir = '/usr/local/etc/cic'; -} -const config = new confini.Config(config_data_dir, process.env.CONFINI_ENV_PREFIX); -config.process(); -Object.keys(config.store).forEach((k) => { - console.debug(k, config.get(k)); -}); - -// flatten file list from directories recursively -// cheekily though gratefully stolen from https://coderrocketfuel.com/article/recursively-list-all-the-files-in-a-directory-using-node-js -const getAllFiles = function(dirPath, arrayOfFiles) { - files = fs.readdirSync(dirPath) - - arrayOfFiles = arrayOfFiles || [] - - files.forEach(function(file) { - if (fs.statSync(dirPath + "/" + file).isDirectory()) { - arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles) - } else { - arrayOfFiles.push(path.join(dirPath, "/", file)) - } - }) - - return arrayOfFiles -} - -async function sendit(uid, envelope) { - const d = envelope.toJSON(); - - const opts = { - method: 'PUT', - headers: { - 'Content-Type': 'application/json', - 'Content-Length': d.length, - 'X-CIC-AUTOMERGE': 'client', - - }, - }; - let url = config.get('META_PROVIDER'); //['archiveUrl']; - url = url.replace(new RegExp('^(.+://[^/]+)/*$'), '$1/'); - const req = http.request(url + uid, opts, (res) => { - res.on('data', process.stdout.write); - res.on('end', () => { - console.log('result', res.statusCode, res.headers); - }); - }); - - req.write(d); - req.end(); -} - -function doit(keystore) { - dataDir = 'data'; - if (process.argv.length > 2) { - dataDir = process.argv[2]; - } - console.log('argv', process.argv); - console.log('datadir', path.join(dataDir, 'person')); - getAllFiles(path.join(dataDir, 'person')).forEach((filename) => { - console.debug('person file', filename); - const signer = new cic.PGPSigner(keystore); - const parts = filename.split('.'); - const uid = path.basename(parts[0]); - - const d = fs.readFileSync(filename, 'utf-8'); - const o = JSON.parse(d); - - const s = new cic.Syncable(uid, o); - console.log(s); - s.setSigner(signer); - s.onwrap = (env) => { - console.log('env', env); - //console.log('sign', s.m.signature.digest); - sendit(uid, env); - }; - s.sign(); - }); -} - -pk = fs.readFileSync(path.join(config.get('PGP_EXPORTS_DIR'), config.get('PGP_PRIVATEKEY_FILE'))); -pubk = fs.readFileSync(path.join(config.get('PGP_EXPORTS_DIR'), config.get('DEV_PGP_PUBLICKEYS_ACTIVE_FILE'))); - -new cic.PGPKeyStore( - process.env['PGP_PASSPHRASE'], - pk, - pubk, - undefined, - undefined, - doit, -); - diff --git a/apps/contract-migration/dev/keys.sh b/apps/contract-migration/dev/keys.sh deleted file mode 100644 index 64242588..00000000 --- a/apps/contract-migration/dev/keys.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -mkdir -vp .tmp -echo -n '' > .tmp/.env_accounts -account_labels=( - DEV_ETH_ACCOUNT_BANCOR_DEPLOYER - DEV_ETH_ACCOUNT_GAS_PROVIDER - DEV_ETH_ACCOUNT_RESERVE_OWNER - DEV_ETH_ACCOUNT_RESERVE_MINTER - DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_OWNER - DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER - DEV_ETH_ACCOUNT_SARAFU_OWNER - DEV_ETH_ACCOUNT_SARAFU_GIFTER - DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER - DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER -) -bip39gen -n ${#account_labels[@]} "$DEV_MNEMONIC" -i=0 -for a in `bip39gen -n ${#account_labels[@]} "$DEV_MNEMONIC" | jq -r .address[]`; do - exportline=${account_labels[$i]}=$a - export $exportline - echo $exportline >> .tmp/.env_accounts - echo exportline $exportline - i=$(($i+1)) -done - diff --git a/apps/contract-migration/dev/nvm.sh b/apps/contract-migration/dev/nvm.sh deleted file mode 100644 index 60419b7b..00000000 --- a/apps/contract-migration/dev/nvm.sh +++ /dev/null @@ -1,4 +0,0 @@ -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" -[ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion" - diff --git a/apps/contract-migration/dev/python/scripts/setup.py b/apps/contract-migration/dev/python/scripts/setup.py deleted file mode 100644 index bd1da75b..00000000 --- a/apps/contract-migration/dev/python/scripts/setup.py +++ /dev/null @@ -1,4 +0,0 @@ -from setuptools import setup - -setup( - ) diff --git a/apps/contract-migration/dev/python/scripts/tx_driver.py b/apps/contract-migration/dev/python/scripts/tx_driver.py deleted file mode 100644 index c2a79ae4..00000000 --- a/apps/contract-migration/dev/python/scripts/tx_driver.py +++ /dev/null @@ -1,150 +0,0 @@ -# standard imports -import os -import logging -import argparse -import re -import json -import signal -import random -import time - -# third-party imports -import confini -import web3 -from cic_registry.chain import ChainSpec -from cic_registry.chain import ChainRegistry -from cic_registry import CICRegistry -from eth_token_index import TokenUniqueSymbolIndex as TokenIndex -from eth_accounts_index import AccountRegistry - -from cic_eth.api import Api - - -logging.basicConfig(level=logging.WARNING) -logg = logging.getLogger() -logging.getLogger('websockets.protocol').setLevel(logging.CRITICAL) -logging.getLogger('web3.RequestManager').setLevel(logging.CRITICAL) -logging.getLogger('web3.providers.WebsocketProvider').setLevel(logging.CRITICAL) -logging.getLogger('web3.providers.HTTPProvider').setLevel(logging.CRITICAL) - -default_data_dir = '/usr/local/share/cic/solidity/abi' - -argparser = argparse.ArgumentParser() -argparser.add_argument('-c', type=str, default='./config', help='config file') -argparser.add_argument('-i', '--chain-spec', dest='i', type=str, help='chain spec') -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('--abi-dir', dest='abi_dir', type=str, default=default_data_dir, help='Directory containing bytecode and abi (default: {})'.format(default_data_dir)) -argparser.add_argument('-v', action='store_true', help='be verbose') -argparser.add_argument('-vv', action='store_true', help='be more verbose') -argparser.add_argument('--wait-max', dest='wait_max', default=2.0, type=float, help='maximum time in decimal seconds to wait between transactions') -argparser.add_argument('--account-index-address', dest='account_index', type=str, help='Contract address of accounts index') -argparser.add_argument('--token-index-address', dest='token_index', type=str, help='Contract address of token index') -argparser.add_argument('--approval-escrow-address', dest='approval_escrow', type=str, help='Contract address for transfer approvals') -argparser.add_argument('--declarator-address', dest='declarator', type=str, help='Address of declarations contract to perform lookup against') -argparser.add_argument('-a', '--accounts-index-writer', dest='a', type=str, help='Address of account with access to add to accounts index') - -args = argparser.parse_args() - -if args.vv: - logging.getLogger().setLevel(logging.DEBUG) -elif args.v: - logging.getLogger().setLevel(logging.INFO) - -config = confini.Config(args.c, args.env_prefix) -config.process() -args_override = { - 'ETH_ABI_DIR': getattr(args, 'abi_dir'), - 'CIC_CHAIN_SPEC': getattr(args, 'i'), - 'DEV_ETH_ACCOUNTS_INDEX_ADDRESS': getattr(args, 'account_index'), - 'DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER': getattr(args, 'a'), - 'DEV_ETH_ERC20_APPROVAL_ESCROW_ADDRESS': getattr(args, 'approval_escrow'), - 'DEV_ETH_TOKEN_INDEX_ADDRESS': getattr(args, 'token_index'), - } -config.dict_override(args_override, 'cli flag') -config.validate() -config.censor('PASSWORD', 'DATABASE') -config.censor('PASSWORD', 'SSL') -logg.debug('config:\n{}'.format(config)) - -re_websocket = r'^wss?:' -re_http = r'^https?:' -blockchain_provider = None -if re.match(re_websocket, config.get('ETH_PROVIDER')): - blockchain_provider = web3.Web3.WebsocketProvider(config.get('ETH_PROVIDER')) -elif re.match(re_http, config.get('ETH_PROVIDER')): - blockchain_provider = web3.Web3.HTTPProvider(config.get('ETH_PROVIDER')) -w3 = web3.Web3(blockchain_provider) - - -chain_spec = ChainSpec.from_chain_str(config.get('CIC_CHAIN_SPEC')) -CICRegistry.init(w3, config.get('CIC_REGISTRY_ADDRESS'), chain_spec) -CICRegistry.add_path(config.get('ETH_ABI_DIR')) - -chain_registry = ChainRegistry(chain_spec) -CICRegistry.add_chain_registry(chain_registry, True) - -run = True - -def inthandler(name, frame): - logg.warning('got {}, stopping'.format(name)) - global run - run = False - -signal.signal(signal.SIGTERM, inthandler) -signal.signal(signal.SIGINT, inthandler) - -api = Api(str(chain_spec)) - -f = open(os.path.join(config.get('ETH_ABI_DIR'), 'ERC20.json')) -erc20_abi = json.load(f) -f.close() - -def get_tokens(): - tokens = [] - token_index = TokenIndex(w3, config.get('CIC_TOKEN_INDEX_ADDRESS')) - token_count = token_index.count() - for i in range(token_count): - tokens.append(token_index.get_index(i)) - logg.debug('tokens {}'.format(tokens)) - return tokens - -def get_addresses(): - address_index = AccountRegistry(w3, config.get('CIC_ACCOUNTS_INDEX_ADDRESS')) - address_count = address_index.count() - addresses = address_index.last(address_count-1) - logg.debug('addresses {} {}'.format(address_count, addresses)) - return addresses - -random.seed() - -while run: - n = random.randint(0, 255) - - # some of the time do other things than transfers - if n & 0xf8 == 0xf8: - t = api.create_account() - logg.info('create account {}'.format(t)) - - else: - tokens = get_tokens() - addresses = get_addresses() - address_pair = random.choices(addresses, k=2) - sender = address_pair[0] - recipient = address_pair[1] - token = random.choice(tokens) - - c = w3.eth.contract(abi=erc20_abi, address=token) - sender_balance = c.functions.balanceOf(sender).call() - token_symbol = c.functions.symbol().call() - amount = int(random.random() * (sender_balance / 2)) - - n = random.randint(0, 255) - - if n & 0xc0 == 0xc0: - t = api.transfer_request(sender, recipient, config.get('CIC_APPROVAL_ESCROW_ADDRESS'), amount, token_symbol) - logg.info('transfer REQUEST {} {} from {} to {} => {}'.format(amount, token_symbol, sender, recipient, t)) - else: - t = api.transfer(sender, recipient, amount, token_symbol) - logg.info('transfer {} {} from {} to {} => {}'.format(amount, token_symbol, sender, recipient, t)) - - time.sleep(random.random() * args.wait_max) diff --git a/apps/contract-migration/dev/python/scripts/tx_seed.py b/apps/contract-migration/dev/python/scripts/tx_seed.py deleted file mode 100644 index aacb9fab..00000000 --- a/apps/contract-migration/dev/python/scripts/tx_seed.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/python - -import csv -import logging -import argparse -import os -import re - -import web3 -import confini - -from cic_registry import CICRegistry -from cic_eth.api import Api - -logging.basicConfig(level=logging.INFO) -logg = logging.getLogger() - -confini_default_dir = os.environ.get('CONFINI_DIR', '/usr/local/etc/cic') - - -argparser = argparse.ArgumentParser() -argparser.add_argument('-c', type=str, default=confini_default_dir, help='config data dir') -argparser.add_argument('-a', '--token-gifter-address', dest='a', type=str, help='Token gifter address') -argparser.add_argument('-i', '--chain-spec', dest='i', type=str, help='chain spec') -argparser.add_argument('-s', '--token-symbol', dest='s', type=str, help='Token symbol') -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('-v', action='store_true', help='be verbose') -argparser.add_argument('-vv', action='store_true', help='be more verbose') -args = argparser.parse_args() - -if args.vv: - logging.getLogger().setLevel(logging.DEBUG) -elif args.v: - logging.getLogger().setLevel(logging.INFO) - -config = confini.Config(args.c, args.env_prefix) -config.process() -args_override = { - 'CIC_CHAIN_SPEC': getattr(args, 'i'), - } -cic_eth_api = Api(config.get('CIC_CHAIN_SPEC')) - -token_gifter_address = args.a - -if __name__ == '__main__': - f = open('./data/amounts', 'r') - cr = csv.reader(f) - for r in cr: - logg.info('sending {} {} from {} to {}'.format(r[1], args.s, token_gifter_address, r[0])) - cic_eth_api.transfer(token_gifter_address, r[0], int(r[1]), args.s) - f.close() diff --git a/apps/contract-migration/dev/python/scripts/users.py b/apps/contract-migration/dev/python/scripts/users.py deleted file mode 100644 index 035806b6..00000000 --- a/apps/contract-migration/dev/python/scripts/users.py +++ /dev/null @@ -1,212 +0,0 @@ -#!/usr/bin/python - -import json -import time -import datetime -import random -import logging -import os -import base64 -import hashlib -import sys - -import vobject - -import celery -import web3 -from faker import Faker -import cic_registry -import confini -from cic_eth.api import Api - -logging.basicConfig(level=logging.DEBUG) -logg = logging.getLogger() - -fake = Faker(['sl', 'en_US', 'no', 'de', 'ro']) - -#f = open('cic.conf', 'r') -#config = json.load(f) -#f.close() -# - -config_dir = os.environ.get('CONFINI_DIR', '/usr/local/etc/cic') - -config = confini.Config(config_dir, os.environ.get('CONFINI_ENV_PREFIX')) -config.process() -logg.info('loaded config\n{}'.format(config)) - - -w3s = None -w3s = web3.Web3(web3.Web3.IPCProvider(config.get('SIGNER_SOCKET_PATH'))) -#w3s = web3.Web3(web3.Web3.IPCProvider(config['signer']['provider'])) -#w3 = web3.Web3(web3.Web3.WebsocketProvider(config['eth']['provider'])) - -dt_now = datetime.datetime.utcnow() -dt_then = dt_now - datetime.timedelta(weeks=150) -ts_now = int(dt_now.timestamp()) -ts_then = int(dt_then.timestamp()) - -celery_app = celery.Celery(broker=config.get('CELERY_BROKER_URL'), backend=config.get('CELERY_RESULT_URL')) - -api = Api(config.get('CIC_CHAIN_SPEC')) - -gift_max = 10000 -gift_factor = (10**9) - -categories = [ - "food/water", - "fuel/energy", - "education", - "health", - "shop", - "environment", - "transport", - "farming/labor", - "savingsgroup", - ] - -phone_idx = [] - - -def genPhoneIndex(phone): - h = hashlib.new('sha256') - h.update(phone.encode('utf-8')) - h.update(b'cic.msisdn') - return h.digest().hex() - - -def genId(addr, typ): - h = hashlib.new('sha256') - h.update(bytes.fromhex(addr[2:])) - h.update(typ.encode('utf-8')) - return h.digest().hex() - - -def genDate(): - - logg.info(ts_then) - ts = random.randint(ts_then, ts_now) - return datetime.datetime.fromtimestamp(ts).timestamp() - - -def genPhone(): - return fake.msisdn() - - -def genPersonal(phone): - fn = fake.first_name() - ln = fake.last_name() - e = fake.email() - - v = vobject.vCard() - first_name = fake.first_name() - last_name = fake.last_name() - v.add('n') - v.n.value = vobject.vcard.Name(family=last_name, given=first_name) - v.add('fn') - v.fn.value = '{} {}'.format(first_name, last_name) - v.add('tel') - v.tel.typ_param = 'CELL' - v.tel.value = phone - v.add('email') - v.email.value = fake.email() - - vcard_serialized = v.serialize() - vcard_base64 = base64.b64encode(vcard_serialized.encode('utf-8')) - - return vcard_base64.decode('utf-8') - - -def genCats(): - i = random.randint(0, 3) - return random.choices(categories, k=i) - - -def genAmount(): - return random.randint(0, gift_max) * gift_factor - - -def gen(): - old_blockchain_address = '0x' + os.urandom(20).hex() - accounts_index_account = config.get('DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER') - if not accounts_index_account: - accounts_index_account = None - logg.debug('accounts indexwriter {}'.format(accounts_index_account)) - t = api.create_account() - new_blockchain_address = t.get() - gender = random.choice(['female', 'male', 'other']) - phone = genPhone() - v = genPersonal(phone) - o = { - 'date_registered': genDate(), - 'vcard': v, - 'gender': gender, - 'key': { - 'ethereum': [ - old_blockchain_address, - new_blockchain_address, - ], - }, - 'location': { - 'latitude': str(fake.latitude()), - 'longitude': str(fake.longitude()), - 'external': { # add osm lookup - } - }, - 'selling': genCats(), - } - uid = genId(new_blockchain_address, 'cic.person') - - #logg.info('gifting {} to {}'.format(amount, new_blockchain_address)) - - return (uid, phone, o) - - -def prepareLocalFilePath(datadir, address): - parts = [ - address[:2], - address[2:4], - ] - dirs = '{}/{}/{}'.format( - datadir, - parts[0], - parts[1], - ) - os.makedirs(dirs, exist_ok=True) - return dirs - - -if __name__ == '__main__': - - os.makedirs('data/person', exist_ok=True) - os.makedirs('data/phone', exist_ok=True) - - fa = open('./data/amounts', 'w') - fb = open('./data/addresses', 'w') - - #for i in range(10): - for i in range(int(sys.argv[1])): - - (uid, phone, o) = gen() - eth = o['key']['ethereum'][1] - - print(o) - - d = prepareLocalFilePath('./data/person', uid) - f = open('{}/{}'.format(d, uid), 'w') - json.dump(o, f) - f.close() - - pidx = genPhoneIndex(phone) - d = prepareLocalFilePath('./data/phone', uid) - f = open('{}/{}'.format(d, pidx), 'w') - f.write(eth) - f.close() - - amount = genAmount() - fa.write('{},{}\n'.format(eth,amount)) - fb.write('{}\n'.format(eth)) - logg.debug('pidx {}, uid {}, eth {}, amount {}'.format(pidx, uid, eth, amount)) - - fb.close() - fa.close() diff --git a/apps/contract-migration/dev/python/setup.cfg b/apps/contract-migration/dev/python/setup.cfg deleted file mode 100644 index a62eb419..00000000 --- a/apps/contract-migration/dev/python/setup.cfg +++ /dev/null @@ -1,40 +0,0 @@ -[metadata] -name = cic-dev-fake -version = 0.0.1 -description = Fake data generator tools -author = Louis Holbrook -author_email = dev@holbrook.no -url = https://gitlab.com/nolash/simple-multisig -keywords = - ethereum -classifiers = - Programming Language :: Python :: 3 - Operating System :: OS Independent - Development Status :: 3 - Alpha - Environment :: No Input/Output (Daemon) - Intended Audience :: Developers - License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) - Topic :: Internet - #Topic :: Blockchain :: EVM -license = GPL3 -licence_files = - LICENSE - -[options] -python_requires = >= 3.6 -install_requires = - web3==5.12.2 - vobject==0.9.6.1 - faker==4.17.1 -tests_require = - eth-tester==0.5.0b2 - py-evm==0.3.0a20 -scripts = - scripts/users.py - scripts/tx_generator.py - scripts/tx_seed.py - -[options.extras_require] -testing = - eth-tester==0.5.0b2 - py-evm==0.3.0a20 diff --git a/apps/contract-migration/dev/python/setup.py b/apps/contract-migration/dev/python/setup.py deleted file mode 100644 index bd1da75b..00000000 --- a/apps/contract-migration/dev/python/setup.py +++ /dev/null @@ -1,4 +0,0 @@ -from setuptools import setup - -setup( - ) diff --git a/apps/contract-migration/dev/requirements.txt b/apps/contract-migration/dev/requirements.txt deleted file mode 100644 index 72c938fb..00000000 --- a/apps/contract-migration/dev/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -cryptocurrency-cli-tools~=0.0.4 -giftable-erc20-token~=0.0.7b1 -eth-accounts-index~=0.0.10a2 -erc20-single-shot-faucet~=0.2.0a1 -erc20-approval-escrow~=0.3.0a1 -cic-eth==0.10.0a5 -vobject==0.9.6.1 -faker==4.17.1 -eth-address-index~=0.1.0a1 -crypto-dev-signer~=0.4.13b9 diff --git a/apps/contract-migration/dev/sarafu_declaration.json b/apps/contract-migration/dev/sarafu_declaration.json deleted file mode 100644 index ff0745dd..00000000 --- a/apps/contract-migration/dev/sarafu_declaration.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objectType": "ERC20", - "content": { - { - "tokenlists": { - "logoURI": "data:image/svg+xml;base64,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", - "tags": [ - "cic", - "bancor" - ] - }, - "logo": { - "sha256": "6d36122bf05c4ebe483a1be281b5b524e4d2d6df4607fe31e80ccdc430ea981d", - "bzz": "7fa223e40ebdc1691253775abdf96d2289e6fc8ef8f0775e318071744b691e87" - } - } - } -} diff --git a/apps/contract-migration/dev/sarafu_logo.png b/apps/contract-migration/dev/sarafu_logo.png deleted file mode 100644 index 5b9c746b44f94cc2a6ee711bf7fef1b32a420a18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7214 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 diff --git a/apps/contract-migration/dev/setup.sh b/apps/contract-migration/dev/setup.sh deleted file mode 100644 index 2c65a8ae..00000000 --- a/apps/contract-migration/dev/setup.sh +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/bash - -# Debug flag -#debug='-v' -keystore_file=../keystore/UTC--2021-01-08T17-18-44.521011372Z--eb3907ecad74a0013c259d5874ae7f22dcbcc95c - -debug='' -abi_dir=${ETH_ABI_DIR:-/usr/local/share/cic/solidity/abi} - -# Determine token amount -token_amount=${DEV_ETH_RESERVE_AMOUNT:0:-1} - -# Determine gas amount -#gas_amount=20000000000000000000 -gas_amount=2000000000000000000 - -export DATABASE_NAME=$DATABASE_NAME_CIC_ETH -export DATABASE_PORT=$HTTP_PORT_POSTGRES -export DATABASE_HOST=localhost - -set -e -set -a - -old_gas_provider=$DEV_ETH_ACCOUNT_GAS_PROVIDER -DEV_ETH_ACCOUNT_GAS_GIFTER=`python ./create.py --no-register` -echo DEV_ETH_ACCOUNT_GAS_GIFTER=$DEV_ETH_ACCOUNT_GAS_GIFTER -export DEV_ETH_ACCOUNT_GAS_GIFTER=$DEV_ETH_ACCOUNT_GAS_GIFTER -cic-eth-tag GAS_GIFTER $DEV_ETH_ACCOUNT_GAS_GIFTER - -DEV_ETH_ACCOUNT_SARAFU_GIFTER=`python ./create.py --no-register` -echo DEV_ETH_ACCOUNT_SARAFU_GIFTER=$DEV_ETH_ACCOUNT_SARAFU_GIFTER -export DEV_ETH_ACCOUNT_SARAFU_GIFTER=$DEV_ETH_ACCOUNT_SARAFU_GIFTER -cic-eth-tag SARAFU_GIFTER $DEV_ETH_ACCOUNT_SARAFU_GIFTER - - -DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER=`python ./create.py --no-register` -echo DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER=$DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER -export DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER=$DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER -cic-eth-tag TRANSFER_APPROVAL_OWNER $DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER - - -DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER=`python ./create.py --no-register` -echo DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER=$DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER -export DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER=$DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER -cic-eth-tag FAUCET_OWNER $DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER - - -DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER=`python ./create.py --no-register` -echo DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER=$DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER -export DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER=$DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER -cic-eth-tag ACCOUNTS_INDEX_WRITER $DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER - - -# Transfer gas to custodial gas provider adddress -#echo $old_gas_provider ->&2 echo gift gas to gas gifter ->&2 echo "python gas.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_ACCOUNT_GAS_GIFTER $gas_amount" ->&2 python gas.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_ACCOUNT_GAS_GIFTER $gas_amount - ->&2 echo gift gas to sarafu token owner ->&2 echo "python gas.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_ACCOUNT_SARAFU_OWNER $gas_amount" ->&2 python gas.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_ACCOUNT_SARAFU_OWNER $gas_amount - ->&2 echo gift gas to account index owner ->&2 echo "python gas.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_OWNER $gas_amount" ->&2 python gas.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_OWNER $gas_amount - - -# Send reserve to token creator ->&2 giftable-token-gift -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -a $DEV_ETH_RESERVE_ADDRESS --recipient $DEV_ETH_ACCOUNT_SARAFU_OWNER -w $debug $token_amount - - -# Create token -#DEV_ETH_SARAFU_TOKEN_ADDRESS=`cic-bancor-token -p $ETH_PROVIDER -r $CIC_REGISTRY_ADDRESS -z $DEV_ETH_RESERVE_ADDRESS -o $DEV_ETH_ACCOUNT_SARAFU_OWNER -n $DEV_ETH_SARAFU_TOKEN_NAME -s $DEV_ETH_SARAFU_TOKEN_SYMBOL -d $DEV_ETH_SARAFU_TOKEN_DECIMALS -i $CIC_CHAIN_SPEC $debug $token_amount` -DEV_ETH_SARAFU_TOKEN_ADDRESS=$DEV_ETH_RESERVE_ADDRESS -echo DEV_ETH_SARAFU_TOKEN_ADDRESS=$DEV_ETH_SARAFU_TOKEN_ADDRESS -export DEV_ETH_SARAFU_TOKEN_ADDRESS=$DEV_ETH_SARAFU_TOKEN_ADDRESS - - -# Transfer tokens to gifter address ->&2 python transfer.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER --token-address $DEV_ETH_SARAFU_TOKEN_ADDRESS --abi-dir $abi_dir -w $debug $DEV_ETH_ACCOUNT_SARAFU_GIFTER ${token_amount:0:-1} - -# Deploy transfer approval contract -CIC_APPROVAL_ESCROW_ADDRESS=`erc20-approval-escrow-deploy -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER --approver $DEV_ETH_ACCOUNT_APPROVAL_ESCROW_OWNER -w $debug` -echo CIC_APPROVAL_ESCROW_ADDRESS=$CIC_APPROVAL_ESCROW_ADDRESS -export CIC_APPROVAL_ESCROW_ADDRESS=$CIC_APPROVAL_ESCROW_ADDRESS - -# Register transfer approval contract ->&2 cic-registry-set -y $keystore_file -r $CIC_REGISTRY_ADDRESS -k TransferApproval -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $CIC_APPROVAL_ESCROW_ADDRESS - -# Deploy one-time token faucet for newly created token -DEV_ETH_SARAFU_FAUCET_ADDRESS=`erc20-single-shot-faucet-deploy -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER --token-address $DEV_ETH_SARAFU_TOKEN_ADDRESS --editor $DEV_ETH_ACCOUNT_SINGLE_SHOT_FAUCET_OWNER --set-amount 1048576 -w $debug` -echo DEV_ETH_SARAFU_FAUCET_ADDRESS=$DEV_ETH_SARAFU_FAUCET_ADDRESS -export DEV_ETH_SARAFU_FAUCET_ADDRESS=$DEV_ETH_SARAFU_FAUCET_ADDRESS - -# Transfer tokens to faucet contract ->&2 python transfer.py -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER --token-address $DEV_ETH_SARAFU_TOKEN_ADDRESS --abi-dir $abi_dir -w $debug $DEV_ETH_SARAFU_FAUCET_ADDRESS ${token_amount:0:-1} - -# Registry faucet entry ->&2 cic-registry-set -y $keystore_file -r $CIC_REGISTRY_ADDRESS -k Faucet -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $DEV_ETH_SARAFU_FAUCET_ADDRESS - -# Deploy token endorser registry -#DEV_ETH_TOKEN_ENDORSER_ADDRESS=`eth-token-endorser-deploy -p $ETH_PROVIDER -o $DEV_ETH_ACCOUNT_SARAFU_OWNER $debug` -#echo DEV_ETH_TOKEN_ENDORSER_ADDRESS=$DEV_ETH_TOKEN_ENDORSER_ADDRESS -#export DEV_ETH_TOKEN_ENDORSER_ADDRESS=$DEV_ETH_TOKEN_ENDORSER_ADDRESS -#ENDORSEMENT_MSG=`echo -n 'very cool token' | sha256sum | awk '{print $1;}'` -#>&2 eth-token-endorser-add -p $ETH_PROVIDER -a $DEV_ETH_TOKEN_ENDORSER_ADDRESS -t $DEV_ETH_SARAFU_TOKEN_ADDRESS -o $DEV_ETH_ACCOUNT_SARAFU_OWNER $debug $ENDORSEMENT_MSG -CIC_TOKEN_INDEX_ADDRESS=`eth-token-index-deploy -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug` -echo CIC_TOKEN_INDEX_ADDRESS=$CIC_TOKEN_INDEX_ADDRESS -export CIC_TOKEN_INDEX_ADDRESS=$CIC_TOKEN_INDEX_ADDRESS ->&2 eth-token-index-add -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -r $CIC_TOKEN_INDEX_ADDRESS -w $debug $DEV_ETH_SARAFU_TOKEN_ADDRESS - -# Register token registry ->&2 cic-registry-set -y $keystore_file -r $CIC_REGISTRY_ADDRESS -k TokenRegistry -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER $CIC_TOKEN_INDEX_ADDRESS - -# Deploy address declarator registry -declarator_description=0x546869732069732074686520434943206e6574776f726b000000000000000000 -CIC_DECLARATOR_ADDRESS=`eth-address-declarator-deploy -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w $debug $declarator_description` -echo CIC_DECLARATOR_ADDRESS=$CIC_DECLARATOR_ADDRESS -export CIC_DECLARATOR_ADDRESS=$CIC_DECLARATOR_ADDRESS -token_description_one=`sha256sum sarafu_declaration.json | awk '{ print $1; }'` -token_description_two=0x54686973206973207468652053617261667520746f6b656e0000000000000000 ->&2 eth-address-declarator-add -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -r $CIC_DECLARATOR_ADDRESS -w $debug $DEV_ETH_SARAFU_TOKEN_ADDRESS $token_description_one ->&2 eth-address-declarator-add -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -r $CIC_DECLARATOR_ADDRESS -w $debug $DEV_ETH_SARAFU_TOKEN_ADDRESS $token_description_two - - -# Register address declarator ->&2 cic-registry-set -y $keystore_file -r $CIC_REGISTRY_ADDRESS -k AddressDeclarator -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER $CIC_DECLARATOR_ADDRESS - -# We're done with the registry at this point, seal it off ->&2 cic-registry-seal -y $keystore_file -i $CIC_CHAIN_SPEC -r $CIC_REGISTRY_ADDRESS -p $ETH_PROVIDER - - -# Add accounts index writer with key from keystore ->&2 eth-accounts-index-add -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -r $CIC_ACCOUNTS_INDEX_ADDRESS --writer $DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER -w $debug - -set +a -set +e diff --git a/apps/contract-migration/dev/tests/create.py b/apps/contract-migration/dev/tests/create.py deleted file mode 100644 index 7b5f0207..00000000 --- a/apps/contract-migration/dev/tests/create.py +++ /dev/null @@ -1,31 +0,0 @@ -#!python3 - -# Author: Louis Holbrook 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 -# SPDX-License-Identifier: GPL-3.0-or-later -# File-version: 1 -# Description: Smoke test for cic-eth create account api - -# standard imports -import os -import logging - -# third-party imports -import celery -import confini - -# platform imports -from cic_eth import Api - -script_dir = os.path.dirname(__file__) - -logging.basicConfig(level=logging.DEBUG) -logg = logging.getLogger() - -config_dir = os.environ.get('CONFINI_DIR', '/usr/local/etc/cic/') - -config = confini.Config(config_dir) -config.process() - -a = Api() -t = a.create_account() -logg.debug('create account task uuid {}'.format(t)) diff --git a/apps/contract-migration/dev/transfer.py b/apps/contract-migration/dev/transfer.py deleted file mode 100644 index c8ef8fdb..00000000 --- a/apps/contract-migration/dev/transfer.py +++ /dev/null @@ -1,105 +0,0 @@ -#!python3 - -"""Token transfer script - -.. moduleauthor:: Louis Holbrook -.. pgp:: 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 - -""" - -# SPDX-License-Identifier: GPL-3.0-or-later - -# standard imports -import os -import json -import argparse -import logging - -# third-party imports -import web3 -from crypto_dev_signer.eth.signer import ReferenceSigner as EIP155Signer -from crypto_dev_signer.keystore import DictKeystore -from crypto_dev_signer.eth.helper import EthTxExecutor - -logging.basicConfig(level=logging.WARNING) -logg = logging.getLogger() - -logging.getLogger('web3').setLevel(logging.WARNING) -logging.getLogger('urllib3').setLevel(logging.WARNING) - -default_abi_dir = '/usr/share/local/cic/solidity/abi' -argparser = argparse.ArgumentParser() -argparser.add_argument('-p', '--provider', dest='p', default='http://localhost:8545', type=str, help='Web3 provider url (http only)') -argparser.add_argument('-w', action='store_true', help='Wait for the last transaction to be confirmed') -argparser.add_argument('-ww', action='store_true', help='Wait for every transaction to be confirmed') -argparser.add_argument('-i', '--chain-spec', dest='i', type=str, default='Ethereum:1', help='Chain specification string') -argparser.add_argument('--token-address', required='True', dest='t', type=str, help='Token address') -argparser.add_argument('-a', '--sender-address', dest='s', type=str, help='Sender account address') -argparser.add_argument('-y', '--key-file', dest='y', type=str, help='Ethereum keystore file to use for signing') -argparser.add_argument('--abi-dir', dest='abi_dir', type=str, default=default_abi_dir, help='Directory containing bytecode and abi (default {})'.format(default_abi_dir)) -argparser.add_argument('-v', action='store_true', help='Be verbose') -argparser.add_argument('-vv', action='store_true', help='Be more verbose') -argparser.add_argument('recipient', type=str, help='Recipient account address') -argparser.add_argument('amount', type=int, help='Amount of tokens to mint and gift') -args = argparser.parse_args() - - -if args.vv: - logg.setLevel(logging.DEBUG) -elif args.v: - logg.setLevel(logging.INFO) - -block_last = args.w -block_all = args.ww - -w3 = web3.Web3(web3.Web3.HTTPProvider(args.p)) - -signer_address = None -keystore = DictKeystore() -if args.y != None: - logg.debug('loading keystore file {}'.format(args.y)) - signer_address = keystore.import_keystore_file(args.y) - logg.debug('now have key for signer address {}'.format(signer_address)) -signer = EIP155Signer(keystore) - -chain_pair = args.i.split(':') -chain_id = int(chain_pair[1]) - -helper = EthTxExecutor( - w3, - signer_address, - signer, - chain_id, - block=args.ww, - ) - - -def main(): - # TODO: Add pure ERC20 abi to collection - f = open(os.path.join(args.abi_dir, 'ERC20.json'), 'r') - abi = json.load(f) - f.close() - - c = w3.eth.contract(abi=abi, address=args.t) - - recipient = args.recipient - value = args.amount - - logg.debug('sender {} balance before: {}'.format(signer_address, c.functions.balanceOf(signer_address).call())) - logg.debug('recipient {} balance before: {}'.format(recipient, c.functions.balanceOf(recipient).call())) - (tx_hash, rcpt) = helper.sign_and_send( - [ - c.functions.transfer(recipient, value).buildTransaction, - ], - ) - logg.debug('sender {} balance after: {}'.format(signer_address, c.functions.balanceOf(signer_address).call())) - logg.debug('recipient {} balance after: {}'.format(recipient, c.functions.balanceOf(recipient).call())) - - if block_last: - helper.wait_for() - - print(tx_hash) - - -if __name__ == '__main__': - main()