config | ||
scripts | ||
example.csv | ||
README.md | ||
requirements.txt |
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 formatscripts/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.