diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-01-24 02:10:43 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-01-24 02:10:43 +0800 |
commit | d965fdb11dfba5631c1f98ad3e309876c199999a (patch) | |
tree | ec10b7341707cfcc6841d1b5fcbf0d3852536a79 /packages/testnet-faucets/src/ts/zrx_request_queue.ts | |
parent | 8a858501f2b633f47cec9576b25e6f99911bbc09 (diff) | |
download | dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.tar dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.tar.gz dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.tar.bz2 dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.tar.lz dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.tar.xz dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.tar.zst dexon-sol-tools-d965fdb11dfba5631c1f98ad3e309876c199999a.zip |
Rename to testnet-faucets
Diffstat (limited to 'packages/testnet-faucets/src/ts/zrx_request_queue.ts')
-rw-r--r-- | packages/testnet-faucets/src/ts/zrx_request_queue.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/packages/testnet-faucets/src/ts/zrx_request_queue.ts b/packages/testnet-faucets/src/ts/zrx_request_queue.ts new file mode 100644 index 000000000..bbc06f1de --- /dev/null +++ b/packages/testnet-faucets/src/ts/zrx_request_queue.ts @@ -0,0 +1,45 @@ +import { ZeroEx } from '0x.js'; +import { BigNumber } from '@0xproject/utils'; +import * as _ from 'lodash'; + +import { configs } from './configs'; +import { errorReporter } from './error_reporter'; +import { RequestQueue } from './request_queue'; +import { utils } from './utils'; + +// HACK: web3 leaks XMLHttpRequest into the global scope and causes requests to hang +// because they are using the wrong XHR package. +// Filed issue: https://github.com/ethereum/web3.js/issues/844 +// tslint:disable-next-line:ordered-imports +import * as Web3 from 'web3'; + +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; + const zeroExConfig = { + networkId: configs.KOVAN_NETWORK_ID, + }; + this._zeroEx = new ZeroEx(web3.currentProvider, zeroExConfig); + } + 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); + } + } +} |