Transaction data processing helper for chaind-eth
Go to file
2021-11-26 12:55:20 +01:00
config Add submitter script 2021-06-02 21:51:40 +02:00
scripts Add readme 2021-11-26 12:55:20 +01:00
example.csv Add readme 2021-11-26 12:55:20 +01:00
README.md Add readme 2021-11-26 12:55:20 +01:00
requirements.txt Update scripts to dep changes 2021-11-26 10:56:36 +01:00

cic-batch

Helper scripts for submitting erc20 transfers to chaind-eth queuer.

Currently it contains two scripts:

  • scripts/parse_csv.py - Generate signed ethereum transactions from input data in csv format
  • scripts/submit.py - Submit signed transactions to the chaind-eth socket server

Parsing

The expected CSV input format is:

recipient_address,token_address,value

The value can be an integer or a floating-point value.

Signed transactions will be written as individual files, as hex-encode byte literals. The file name will be prefixed with the transaction's position in the csv.

The output directory will be the concatenation of the --output and --session-id argument flags. If --output is not given, the default folder name will be ./output. If --session-id is not specified, a new uuid will be generated and used as the session id.

To verify the details of the generated transactions, the contents of the generated files can be piped to eth-decode. Note that the same fee price will be used for all generated transactions.

Submitting

Invoke scripts/submit.py on the output of parse_csv.py.

You may specify the input directory (that is, the output location used by parse_csv.py as a single, optional positional argument to submit.py). If omitted, the default value ./output will be used.

The --session-id argument is used both to create the input data path, aswell as the socket file for the chaind-eth server.

For example: If you invoke submit.py [...] --session-id foo ./bar then any files in ./bar/foo will be attempted processed as signed transactions. However, if you invoke submit.py [...] --session-id foo (omitting the positional argument), files in ./output/foo will be parsed.

Caveats

The --session-id argument value should be the same as the corresponding value used when starting the chaind-eth socket server.

The default value of --fee-limit in parse_csv.py is 8000000. If you are issuing transactions against a erc20 contract you do not fully know or trust, you may want to explicitly set this to a lower value.