diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2017-11-21 05:12:15 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2017-12-13 07:45:22 +0800 |
commit | bbb768c5cfa8bf713670608f859debae42b42898 (patch) | |
tree | 40ae6f11995fa44a1ee58092a8308faac63abec4 /packages/kovan-faucets/src/ts/zrx_request_queue.ts | |
parent | 5678196706a63d27fc5b00b5224c8213510e76f0 (diff) | |
download | dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.gz dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.bz2 dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.lz dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.xz dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.tar.zst dexon-sol-tools-bbb768c5cfa8bf713670608f859debae42b42898.zip |
Add kovan faucet project into the mono repo
Diffstat (limited to 'packages/kovan-faucets/src/ts/zrx_request_queue.ts')
-rw-r--r-- | packages/kovan-faucets/src/ts/zrx_request_queue.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/kovan-faucets/src/ts/zrx_request_queue.ts b/packages/kovan-faucets/src/ts/zrx_request_queue.ts new file mode 100644 index 000000000..e66a2b300 --- /dev/null +++ b/packages/kovan-faucets/src/ts/zrx_request_queue.ts @@ -0,0 +1,38 @@ +import * as _ from 'lodash'; +import {ZeroEx} from '0x.js'; +import BigNumber from 'bignumber.js'; +import promisify = require('es6-promisify'); +import {utils} from './utils'; +import {configs} from './configs'; +import {RequestQueue} from './request_queue'; +import {errorReporter} from './error_reporter'; +import * as Web3 from 'web3'; +// HACK: web3 leaks XMLHttpRequest into the global scope and causes requests to hang +// because they are using the wrong XHR package. +// Issue: https://github.com/trufflesuite/truffle-contract/issues/14 +delete (global as any).XMLHttpRequest; + +const DISPENSE_AMOUNT_ZRX = new BigNumber(0.1); +const QUEUE_INTERVAL_MS = 5000; + +export class ZRXRequestQueue extends RequestQueue { + private zeroEx: ZeroEx; + constructor(web3: Web3) { + super(web3); + this.queueIntervalMs = QUEUE_INTERVAL_MS; + this.zeroEx = new ZeroEx(web3.currentProvider); + } + protected async processNextRequestFireAndForgetAsync(recipientAddress: string) { + utils.consoleLog(`Processing ZRX ${recipientAddress}`); + const baseUnitAmount = ZeroEx.toBaseUnitAmount(DISPENSE_AMOUNT_ZRX, 18); + try { + await this.zeroEx.token.transferAsync( + configs.ZRX_TOKEN_ADDRESS, configs.DISPENSER_ADDRESS, recipientAddress, baseUnitAmount, + ); + utils.consoleLog(`Sent ${DISPENSE_AMOUNT_ZRX} ZRX to ${recipientAddress}`); + } catch (err) { + utils.consoleLog(`Unexpected err: ${err} - ${JSON.stringify(err)}`); + await errorReporter.reportAsync(err); + } + } +} |