From 79b6430530716a4556d017e54ac6d11500f859d4 Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Wed, 7 Oct 2020 17:59:31 +0200 Subject: [PATCH 1/7] Add xDAI contract in env --- .env.example | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.env.example b/.env.example index c269ed4..c85b4fb 100644 --- a/.env.example +++ b/.env.example @@ -70,6 +70,10 @@ NODE_URL=wss://mainnet.infura.io/ws/v3/ # https://github.com/gnosis/dex-contracts/blob/master/networks.json STABLE_COIN_CONTRACT_ADDRESS=0x6F400810b62df8E13fded51bE75fF5393eaa841F +# xDAO Gnosis Protocol +# https://github.com/gnosis/dex-contracts/blob/master/networks.json +STABLE_COIN_CONTRACT_ADDRESS=0x25B06305CC4ec6AfCF3E7c0b673da1EF8ae26313 + # Rinkeby Gnosis Protocol # https://github.com/gnosis/dex-contracts/blob/master/networks.json #STABLE_COIN_CONTRACT_ADDRESS=0xC576eA7bd102F7E476368a5E98FA455d1Ea34dE2 From 0a082f4f3d114849935cafee683ce0c19eebafaa Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Wed, 7 Oct 2020 17:59:50 +0200 Subject: [PATCH 2/7] Upgrade version of dex-js --- package.json | 4 ++-- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index cb2f64e..8685572 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ } }, "dependencies": { - "@gnosis.pm/dex-js": "0.3.0", + "@gnosis.pm/dex-js": "^0.8.0", "bignumber.js": "^9.0.0", "debug": "^4.1.1", "dotenv": "^8.1.0", @@ -69,4 +69,4 @@ "typescript": "^3.7.2", "typescript-transform-paths": "^1.1.13" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index aa647b4..d6fa5a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -401,19 +401,19 @@ "@ethersproject/rlp" "^5.0.0" "@ethersproject/signing-key" "^5.0.0" -"@gnosis.pm/dex-contracts@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-contracts/-/dex-contracts-0.2.0.tgz#1649e2efdb818158db79569e9375d6bf9405c63f" - integrity sha512-9zMT7XaveDJ5L52o0RNRcFL0Vf2nOpX1lGsWimIZCZBnCL1HyvKHvX4W4mfcItkScNVNgvJ9EWSNVXQjS+pK5g== +"@gnosis.pm/dex-contracts@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-contracts/-/dex-contracts-0.4.3.tgz#b887eb543cae039d1e9607870232394cab5c3be7" + integrity sha512-ObyItfEzWRwfwWSSncPFP8aT54+Vi7VzTvqCbNYTwF+Einn9kdJvasTWkFaw5eiZE1ykD//kFB4T8xv80F2lBw== dependencies: - bn.js "^5.1.1" + bn.js "^5.1.3" -"@gnosis.pm/dex-js@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-js/-/dex-js-0.3.0.tgz#7e52af18c73f190418af9b4a5f60b5d44578a09e" - integrity sha512-6kClU2SvOH77Df27k3YVg6Gqro5k2MJQWD0iyaNLlC/nf/igJeLTd3ICEEFukZpnPHDewNkd9xXiX/3amM41hg== +"@gnosis.pm/dex-js@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-js/-/dex-js-0.8.0.tgz#aa96a30d2c17efea121f160f54eca1e82a08dbcd" + integrity sha512-/IjDZOrMGaR2cyzkVGaXSvzkr8EADwEfpvkkVIziSlWVG853xpKK6OKB2lO2et9IOGRwTKniSLEjXnjn3a3K/g== dependencies: - "@gnosis.pm/dex-contracts" "^0.2.0" + "@gnosis.pm/dex-contracts" "^0.4.3" bignumber.js "^9.0.0" "@istanbuljs/load-nyc-config@^1.0.0": @@ -1297,10 +1297,10 @@ bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" - integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== +bn.js@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== body-parser@1.19.0, body-parser@^1.16.0: version "1.19.0" From c25e447146407d87a175f37fb5832c1652e12695 Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Wed, 7 Oct 2020 18:25:53 +0200 Subject: [PATCH 3/7] Go back to dex-js version 0.3 --- package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 8685572..e9e4834 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ } }, "dependencies": { - "@gnosis.pm/dex-js": "^0.8.0", + "@gnosis.pm/dex-js": "0.3.0", "bignumber.js": "^9.0.0", "debug": "^4.1.1", "dotenv": "^8.1.0", diff --git a/yarn.lock b/yarn.lock index d6fa5a0..11361e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -401,19 +401,19 @@ "@ethersproject/rlp" "^5.0.0" "@ethersproject/signing-key" "^5.0.0" -"@gnosis.pm/dex-contracts@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-contracts/-/dex-contracts-0.4.3.tgz#b887eb543cae039d1e9607870232394cab5c3be7" - integrity sha512-ObyItfEzWRwfwWSSncPFP8aT54+Vi7VzTvqCbNYTwF+Einn9kdJvasTWkFaw5eiZE1ykD//kFB4T8xv80F2lBw== +"@gnosis.pm/dex-contracts@^0.2.0": + version "0.2.15" + resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-contracts/-/dex-contracts-0.2.15.tgz#254314c6f8dff33a022a3d2b67035b08f0782c94" + integrity sha512-rvGuiHfl12F70qBiJimUv/uGdn5+Dfao2xAbhiQh9/wJBt5A5nVYONnZ13JFfIoOrSJTRT1n61SEhLfLOlG6dw== dependencies: - bn.js "^5.1.3" + bn.js "^5.1.1" -"@gnosis.pm/dex-js@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-js/-/dex-js-0.8.0.tgz#aa96a30d2c17efea121f160f54eca1e82a08dbcd" - integrity sha512-/IjDZOrMGaR2cyzkVGaXSvzkr8EADwEfpvkkVIziSlWVG853xpKK6OKB2lO2et9IOGRwTKniSLEjXnjn3a3K/g== +"@gnosis.pm/dex-js@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@gnosis.pm/dex-js/-/dex-js-0.3.0.tgz#7e52af18c73f190418af9b4a5f60b5d44578a09e" + integrity sha512-6kClU2SvOH77Df27k3YVg6Gqro5k2MJQWD0iyaNLlC/nf/igJeLTd3ICEEFukZpnPHDewNkd9xXiX/3amM41hg== dependencies: - "@gnosis.pm/dex-contracts" "^0.4.3" + "@gnosis.pm/dex-contracts" "^0.2.0" bignumber.js "^9.0.0" "@istanbuljs/load-nyc-config@^1.0.0": @@ -1297,7 +1297,7 @@ bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.3: +bn.js@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== From c449985c98203b1745eaadcff7a3e688d27f1ef6 Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Wed, 7 Oct 2020 18:26:34 +0200 Subject: [PATCH 4/7] Allow to not provide the TCR --- src/bot.ts | 2 -- src/helpers/contracts.ts | 2 +- src/services/DfusionService.ts | 14 ++++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/bot.ts b/src/bot.ts index c60d32d..9b43e02 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -12,8 +12,6 @@ const WEB_BASE_URL = process.env.WEB_BASE_URL assert(WEB_BASE_URL, 'WEB_BASE_URL is required') const port = parseInt(process.env.API_PORT || '3000') -assert(process.env.TCR_CONTRACT_ADDRESS, 'TCR_CONTRACT_ADDRESS env var is required') - moment.tz.setDefault('Etc/GMT') logUnhandledErrors() diff --git a/src/helpers/contracts.ts b/src/helpers/contracts.ts index 6e491ba..8cf0165 100644 --- a/src/helpers/contracts.ts +++ b/src/helpers/contracts.ts @@ -4,4 +4,4 @@ import { TCR_CONTRACT_ADDRESS } from 'config' export const batchExchangeContract = createBatchExchangeContract(web3) export const erc20Contract = createErc20Contract(web3) -export const tcrContract = createTcrContract(web3, TCR_CONTRACT_ADDRESS) +export const tcrContract = TCR_CONTRACT_ADDRESS ? createTcrContract(web3, TCR_CONTRACT_ADDRESS) : undefined diff --git a/src/services/DfusionService.ts b/src/services/DfusionService.ts index 72820e1..c25e9f1 100644 --- a/src/services/DfusionService.ts +++ b/src/services/DfusionService.ts @@ -16,6 +16,7 @@ import { BigNumber } from 'bignumber.js' import { version as dexJsVersion } from '@gnosis.pm/dex-js/package.json' import { version as contractsVersion } from '@gnosis.pm/dex-contracts/package.json' import { TCR_LIST_ID, TCR_CACHE_TIME, TOKEN_OVERRIDES } from 'config' +import { EventEmitter } from 'events' // declaration merging // to allow for error callback @@ -39,7 +40,7 @@ const log = new Logger('service:dfusion') export interface Params { batchExchangeContract: BatchExchangeContract erc20Contract: Erc20Contract - tcrContract: TcrContract + tcrContract: TcrContract | undefined tokenIdsFilter?: string[] web3: Web3 } @@ -96,7 +97,7 @@ export interface AboutDto { contractsVersion: string dexJsVersion: string batchExchangeAddress: string - tcrContractAddress: string + tcrContractAddress: string | undefined tcrListId: number } @@ -120,7 +121,7 @@ export class DfusionRepoImpl implements DfusionService { private _erc20Contract: Erc20Contract private _tokenIdsFilter?: string[] - private _tcrContract: TcrContract + private _tcrContract: TcrContract | undefined private _networkId: number private _batchTime: BigNumber private _cache: NodeCache @@ -207,7 +208,8 @@ export class DfusionRepoImpl implements DfusionService { public watchOrderPlacement(params: WatchOrderPlacementParams) { const OrderPlacement = this._contract.events.OrderPlacement - const subscriptions: Map> = new Map() + const subscriptions: Map = new Map() + if (this._tokenIdsFilter) { const tokenListDescription = this._tokenIdsFilter.join(', ') subscriptions.set( @@ -315,7 +317,7 @@ export class DfusionRepoImpl implements DfusionService { dexJsVersion, version: packageJson.version, batchExchangeAddress: this._contract.options.address, - tcrContractAddress: this._tcrContract.options.address, + tcrContractAddress: this._tcrContract?.options.address, tcrListId: TCR_LIST_ID, } } @@ -403,7 +405,7 @@ export class DfusionRepoImpl implements DfusionService { return cachedAddresses } - const tcrList = await this._tcrContract.methods + const tcrList = await this._tcrContract?.methods .getTokens(TCR_LIST_ID) .call() .catch(() => []) From 7a0311dcb7accd570e1fba41a49ded814fedeacc Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Wed, 7 Oct 2020 18:26:55 +0200 Subject: [PATCH 5/7] Add TOKEN_OVERRIDES for xDAI --- src/config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/config.ts b/src/config.ts index 84574a7..77ae7fc 100644 --- a/src/config.ts +++ b/src/config.ts @@ -22,4 +22,5 @@ export const TOKEN_OVERRIDES = { forceAddressDisplay: true, // name and symbol are ignored when `forceAddressDisplay` is set }, }, + 100: {}, } From bdcbecf1bbc72a7c003d96a960e789a7f96a0895 Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Thu, 8 Oct 2020 09:09:37 +0200 Subject: [PATCH 6/7] Simplify type --- src/services/DfusionService.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/services/DfusionService.ts b/src/services/DfusionService.ts index c25e9f1..e8b1671 100644 --- a/src/services/DfusionService.ts +++ b/src/services/DfusionService.ts @@ -40,7 +40,7 @@ const log = new Logger('service:dfusion') export interface Params { batchExchangeContract: BatchExchangeContract erc20Contract: Erc20Contract - tcrContract: TcrContract | undefined + tcrContract?: TcrContract tokenIdsFilter?: string[] web3: Web3 } @@ -97,7 +97,7 @@ export interface AboutDto { contractsVersion: string dexJsVersion: string batchExchangeAddress: string - tcrContractAddress: string | undefined + tcrContractAddress?: string tcrListId: number } @@ -121,7 +121,7 @@ export class DfusionRepoImpl implements DfusionService { private _erc20Contract: Erc20Contract private _tokenIdsFilter?: string[] - private _tcrContract: TcrContract | undefined + private _tcrContract?: TcrContract private _networkId: number private _batchTime: BigNumber private _cache: NodeCache @@ -208,7 +208,7 @@ export class DfusionRepoImpl implements DfusionService { public watchOrderPlacement(params: WatchOrderPlacementParams) { const OrderPlacement = this._contract.events.OrderPlacement - const subscriptions: Map = new Map() + const subscriptions: Map> = new Map() if (this._tokenIdsFilter) { const tokenListDescription = this._tokenIdsFilter.join(', ') From 3d3ed6ab48e6412d9c25ae5ae2b1c210bbb543c4 Mon Sep 17 00:00:00 2001 From: Anxo Rodriguez Date: Thu, 8 Oct 2020 09:55:40 +0200 Subject: [PATCH 7/7] Remove unused import --- src/services/DfusionService.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/services/DfusionService.ts b/src/services/DfusionService.ts index e8b1671..b30537d 100644 --- a/src/services/DfusionService.ts +++ b/src/services/DfusionService.ts @@ -16,7 +16,6 @@ import { BigNumber } from 'bignumber.js' import { version as dexJsVersion } from '@gnosis.pm/dex-js/package.json' import { version as contractsVersion } from '@gnosis.pm/dex-contracts/package.json' import { TCR_LIST_ID, TCR_CACHE_TIME, TOKEN_OVERRIDES } from 'config' -import { EventEmitter } from 'events' // declaration merging // to allow for error callback