Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EA migration - batch #1 #226

Merged
merged 28 commits into from
Feb 4, 2021
Merged

EA migration - batch #1 #226

merged 28 commits into from
Feb 4, 2021

Conversation

justinkaseman
Copy link
Member

@justinkaseman justinkaseman commented Jan 13, 2021

Description

Brings the following External Adapters to TypeScript:

  • 1forge
  • alphavantage
  • amberdata-gasprice
  • anyblock-gasprice
  • binance-dex
  • coinapi
  • coinbase
  • coingecko

Removes alphavantage-sdr

Combines bravenewcoin and bravenewcoin-vwap

Ticket

#176014837

@justinkaseman justinkaseman changed the title [DRAFT] TS EAs batch #1 [DRAFT] EA migration - batch #1 Jan 13, 2021
@github-actions
Copy link
Contributor

I see that you haven't updated any CHANGELOG files. Would it make sense to do so?

@justinkaseman justinkaseman force-pushed the feature/EA-TS-1 branch 2 times, most recently from 5319425 to 671b147 Compare January 16, 2021 00:49
@justinkaseman justinkaseman marked this pull request as ready for review January 20, 2021 01:04
@justinkaseman justinkaseman changed the title [DRAFT] EA migration - batch #1 EA migration - batch #1 Jan 20, 2021
return await price.execute(request, config)

case 'globalMarketCap':
request.data.path = 'total_market_cap'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example of using path in the endpoint for backwards compatibility.

If we move forward on that, path should get added as a param to adapter.ts and global exposed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have thought of a solution similar to this -> https://github.com/smartcontractkit/external-adapters-js/blob/refactor/remove-adapter-duplication/cryptoapis/src/endpoint/bc_info.ts#L5
where different endpoint names can route to the same sub-adapter, and then the endpoint param can used for path-finding or other type of logic inside the sub-adapter. But not completed/accepted yet. What do you think?

Copy link
Contributor

@ebarakos ebarakos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Not sure about endpoint/path yet on coingecko, but this falls into the general solution for tackling this issue.

Also, I am thinking that this is a good opportunity to remove some duplication in remaining gasprice/vwap behaviors.

1forge/package.json Show resolved Hide resolved
1forge/README.md Outdated Show resolved Hide resolved
example/README.md Show resolved Hide resolved
alphavantage/README.md Show resolved Hide resolved

### Input Params

- `market`, `to`, or `quote`: The ticker of the coin to query (required)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potentially some full input examples could be useful? To include endpoint and everything?


export const execute: ExecuteWithConfig<Config> = async (request, config) => {
Requester.logConfig(config)
return await gasprice.execute(request, config)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe merge with the anyblock-uniswap-vwap endpoint as well, as you did with bravenewcoin?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately can't yet because anyblock-gasprice uses endpoint as a param 😞

Copy link
Contributor

@ebarakos ebarakos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good! Too much work here. I left some more comments.

1forge/src/endpoint/price.ts Outdated Show resolved Hide resolved
alphavantage/src/endpoint/price.ts Outdated Show resolved Hide resolved
alphavantage/src/endpoint/price.ts Outdated Show resolved Hide resolved
amberdata-gasprice/src/endpoint/gasprice.ts Outdated Show resolved Hide resolved
anyblock-gasprice/src/endpoint/gasprice.ts Outdated Show resolved Hide resolved
return await price.execute(request, config)

case 'globalMarketCap':
request.data.path = 'total_market_cap'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have thought of a solution similar to this -> https://github.com/smartcontractkit/external-adapters-js/blob/refactor/remove-adapter-duplication/cryptoapis/src/endpoint/bc_info.ts#L5
where different endpoint names can route to the same sub-adapter, and then the endpoint param can used for path-finding or other type of logic inside the sub-adapter. But not completed/accepted yet. What do you think?

coingecko/src/endpoint/global.ts Outdated Show resolved Hide resolved
coingecko/src/endpoint/price.ts Outdated Show resolved Hide resolved
coingecko/src/endpoint/price.ts Outdated Show resolved Hide resolved
coingecko/src/endpoint/price.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@ebarakos ebarakos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good. Added some small changes.

example/package.json Outdated Show resolved Hide resolved

describe('execute', () => {
const jobID = '1'
const execute = makeExecute()
process.env.API_KEY = process.env.API_KEY ?? 'test_api_key'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like this a lot, setting directly the process.env field, and with a value that is not providing any actual functionality...

But we could tackle this separately.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. This would be out of scope of this TS migration though.

There is an issue tracking it @ #245.

CHANGELOG.md Outdated
@@ -64,6 +64,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- `polygon`
- `nomics`
- `openexchangerates`
- `coinmarketcap`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coinmarketcap is going to be merged throught this PR or through #218 ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other PR. This branch was rebased with that one.

@@ -24,6 +24,14 @@ export const toObjectWithNumbers = (obj: any) => {
return Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, toNumber(v)]))
}

// pick a random string from env var after splitting with the delimiter ("a&b&c" "&" -> choice(["a","b","c"]))
export const getRandomEnv = (name: string, delimiter = ',', prefix = '') => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could avoid some duplication with the other method? Like passing a boolean value e.g = (name: string, required = true, delimiter = ',', prefix = '') and use util.getRandomEnv('API_KEY') in all places.

Then we can call util.getRandomEnv('API_KEY', false) in places that we don't want the var to be required.

Or something similar.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking about that, but decided against it because the pattern of getEnv and getRequiredEnv already exists.

And making that change touches most External Adapters. I think we should get this in and open a ticket for that. Maybe it could still sneak in for this release.

@justinkaseman justinkaseman dismissed ebarakos’s stale review February 4, 2021 18:10

Pushing through for acceptance testing

Copy link
Contributor

@ebarakos ebarakos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good. Some of the refactoring issues discussed could be tackled separately.

@justinkaseman justinkaseman merged commit 9cfa19b into develop Feb 4, 2021
@justinkaseman justinkaseman deleted the feature/EA-TS-1 branch February 4, 2021 18:41
thodges-gh added a commit that referenced this pull request Apr 13, 2021
* coinmarketcap ts refactor

* types & lint & package name

* CHANGELOG

* Requested changes: uses generic execute types, base url from config, splits tests

* add conflux adapter

* Remove adapter.js from merge

* Fix: increase test timeout, move marketcap unknown market to error calls, correct typo in baseURL

* getDefaultConfig takes new parameter for required API key

* Brings back dummy API_KEYs for tests

* Uses verbose env var to determine response data

* update changelog: add conflux adapter

* EA migration - batch #1 (#226)

* 1forge to TS

* Add Config type for recent change to generic types

* Utilize ExecuteWithConfig in 1forge

* Adds example README template & remove 'server' script

* Alphavantage adapter to TS

* Remove alphavantage-sdr folder

* Amberdata-gasprice to TS

* Anyblock-gasprice to TS

* Binance-DEX to TS

* Add note to binance-dex's differing use of API_ENDPOINT env var

* Brave New Coin to TS

* Bring Brave New Coin VWAP into Brave New Coin EA

* Coinapi to TS

* Coinbase to TS

* Coingecko to TS

* Move BNC helpers into BNC adapter

* Increase alphavantage test timeout

* Moves alphavantage APIkey param into endpoint - issue open for improvement

* Clean up leftover bravenewcoin-vwap traces

* Remove 1forge's conflicting and not useful endpoint param

* Requested changes: 1forge balance -> price, alphavantage example output

* Re-add server script & spread response data into endpoint responses

* Uses verbose env var to determine response data

* Gets API_KEY from makeConfig

* Add test dummy API_KEY

* Re-add server script to example

* batch adapter TS refactor (#234)

* batch adapter TS refactor

* satisfy linter

* Uses config in generics, removes non-TS server script

* EA endpoints return their own response & use ExecuteWithConfig type

* Capitalize name property

* Use Config for baseURL and API_KEYS, re-add server script, use verbose env var for data response

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* README improvements, fix typo with PRICE_ADAPTER

* networkId type fix

* feed tx gas info

* Read dxFeed config correctly with prefix

* Include config change in secondary adapter

* Use "Quote" for WTI

* Fix case-sensitive endpoint params

* batch requests on coingecko

* DPI readme updated

* removed console

* Update Synthetix for new sDEFI pairs

* docs: additiona to 1forge, amberdata-gasprice, anyblock-gasprice, & binance-dex

* Add API_KEY docs & docs from QA for coinapi, coinbase, cmc, coinpaprika, cryptocompare, currencylayer, and poa-gasprice

* Finish TS migrated adapter QA

* Add dummy API keys for tests

* Use Jonas' fix to non-lowercase endpoint param

* Add dummy API key to openexchangerates test

* Add dummy API key to polygon test

* Requested changes: consistent endpoint title capitalization, tweak API_KEY description, add sample input to example EA

* Fix: balance test helper path

* Remove WrappedResponse

* Merge develop

* CHANGELOG

* Requested Change: remove from CHANGELOG

* Change: Only one Middleware type

* Change: revert change to withCache to remove options param

* Remove util.wrapExecute from all EAs

* Revert result being optional

* Makes Middleware a generic type to allow withCache options & fix test with result in mock data response

* wrap response

* returning result on callback

* removed unused imports

* Update KCS slug on CMC synth-index

* Update KCS slug on CMC

* synthx as composite using TA

* removed old synth adapter and its build steps

* base as default input param

* TA default quote as env var

* TA accepts method as param

* validation on TA

* avoid floating numbers on TA

* removed TA reference from Readme

* readme updated

* negative balance checked easier

* prefix preference on TA make config

* updated adapter name

* added cmc slugs

* updated synthx version

* fix synthx version

* tiingo adapter with tests

* misc tiingo fixes

* updated changelog

* updates

* fix import name error

* Remove synthetix dependency from global package

* Update synthetix package

* Prevent scientific notation of balances

* removed google finance

* filter out auth from logging

* Publish Docker images to SDLC Public ECR instead of Prod Public ECR

* remove old js code

* add ts conflux adaptor code

* remove lock file

* comment example test

* added preset ticker on coinpaprika and coingecko

* update config helper

* Include the "result" key on cached responses

* Include jobRunID in cached response

* added ethwrite JS project and its dependencies

* converted to TS

* working with the new structure

* added hardhat and relevant test setup

* default config + naming convention fix

* changed README, added defaults and test

* review changes; need to check tests

* asserting true values written to contract in test

* small change in config

* made dataType optional, altered tests, added helper file

* removed helper files

* installed fresh dependencies

* README changes and required env vars

* moved private key to hardhat helpers

* yarn install

* json for hardhat exported var

* cleaned comments

* update new ea-bootstrap

* fix lint error

* add unit test

* fix lint

* update tests

* Publish adapters to prod when merging to develop

* basic setup

* geoDB adapter

* updated changelog

* Removed other parts of config that include sensitive values. Removed api key warning

* Add "agoric" adapter (#114)

* feat: add Agoric adapter

* fix: use agoric_oracle_query_id

* fix: make more explicit

* test: remove agoric/test

* fix: another attempt to plumb through the 'Task Run Data'

* fix: use the promise-based API

* fix: make request_id numeric

* fix: cast payment from number to string

* fix: properly export the Agoric async adapter and string queryId

* refactor: separate concerns and add tests

* fix: more robust adapter; send errors to the oracleServer

* feat!: surface errors from the oracle backend

* fix: match with actual POST reply from the ag-solo

* fix: use AdapterErrors to surface errors to the node operator

* test: add integration test

* fix: use Requester instead of axios

* chore: rename package to @chainlink/agoric

* ci: add "agoric" to adapters.json

* refactor: clarify implementation according to review comments

* refactor: use the adapter-test-helpers

* ci: fix the Agoric build process

* fix: address review comments

* refactor: standardize code based on example adapter

* fix: import makeConfig

* fix: correct the default agoric adapter parameters

* chore: remove dependency on bn.js

* Kaiko special case for DIGG/BTC (#336)

* Kaiko special case for DIGG/BTC

* Increase timespan for Kaiko requests

* Add changelog item

* updated geodb url

* Update node version in GCP readme

* Add Amberdata case for DIGG/BTC (#345)

* TheRundown adapter

* updated changelog

* updated therundown readme

* TS EAs #4 batch 0 of 3 (#332)

* Add couple more best practices into example adapter

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* Rename path param --> field

* Move TE stream adapter to monorepo (#346)

* Move TE stream adapter to monorepo

* Add changelog entry

* Make config optional

* Add tests

* Added LINA preset in coingecko

* CMC should prefer IDs over slugs (#343)

* CMC should prefer IDs over slugs

* Add changelog entry

* Add conversion from AMP to AMP2 for Nomics adapter

* parsing c(close price) according to v3

* Add tradermade support to outlier-detection (#357)

* Add tradermade support to outlier-detection

* Fix outdated tests

* Add changelog entry

* Improve Redis connection cleanup

* AlphaChain adapter to TS

* Add postinstall script

* More best practices in the example EA

* Bitex adapter to TS

* Bitso adapter to TS

* Clean up bravenewcoin-vwap fragment

* Coinlore adapter to TS

* Remove postinstall script until entire build process can be refactored

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* COVID-tracker adapter to TS

* Cryptomkt adapter to TS

* Remove google-finance adapter fragment

* Lition adapter to TS

* Add public ecr registry to docker login

* Skip coinlore integration tests

* Add baseurl option (#367)

* Explicitly specify aws region (#370)

* Updated Asset Allocation Interface (#358)

* asset allocation updated

* updated version

* decimals to number

* Fix support for WING on Nomics (#371)

* Add basic prom metrics (#365)

* Messari adapter to TS

* Orchid Bandwidth adapter to TS

* SatoshiTange adapter to TS

* TradingEconomics adapter to TS

* Extra to TradingEconomics README

* Fix to tradingeconomics .eslintrc.js

* Fix: remove no longer relevant test

* Cryptoapis tests and README (#248)

* Update README about metadata (#379)

* Add new ticker conversions

* Overrides Input parameter (#384)

* override format validator. coingecko impl

* price adapter use overrides

* overrides validator test

* override inside validator

* refactor

* more adapters added

* more adapters added

* readmes updated

* lint fix

* preset symbols used

re

* tests updated

* merge with lodash

* fix merge

* Bump elliptic from 3.0.3 to 6.5.4 (#391)

Bumps [elliptic](https://github.com/indutny/elliptic) from 3.0.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](indutny/elliptic@v3.0.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove GOOGL override for dxfeed-secondary (#392)

* fix-format-readme-link (#393)

* Set correct response type on metrics

* Add FB support for dxfeed and dxfeed-secondary (#420)

* bitcoin endpoints (#417)

* bitcoin endpoints

* Fix blockstream and blockchain.com adapters

* Fix height result output

* Fix blockstream README

* Update blockstream/package.json

* Update blockstream/README.md

* Condense endpoints to blocks & use field param

* Blockstream doesn't require an API KEY

* Update Blockstream README

* Add blockstream to github workflow

Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* Update Genesis Volatility README (#422)

* add support for RAI to kaiko, nomics (#425)

* add rai, weth (#424)

* add rai, weth

Added handling of RAI/WETH pair using contract addresses

* Fix formatting

Co-authored-by: Jonas Hals <jonas@smartcontract.com>

* update API key url (#428)

* additional fixes for RAI support on kaiko adapter (#431)

* added includes:['weth'] support to kaiko adapter

* Apply suggestions from code review

Co-authored-by: Jonas Hals <contact@jonashals.me>

* v0.0.4

* Preparing v0.2.0 release: version patch bumps

* Tag changelog

* Bump dependency versions

* Additional CHANGELOG items

Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>
justinkaseman added a commit that referenced this pull request Jul 30, 2021
* [Master] Release/v0.2.0 (#439)

* coinmarketcap ts refactor

* types & lint & package name

* CHANGELOG

* Requested changes: uses generic execute types, base url from config, splits tests

* add conflux adapter

* Remove adapter.js from merge

* Fix: increase test timeout, move marketcap unknown market to error calls, correct typo in baseURL

* getDefaultConfig takes new parameter for required API key

* Brings back dummy API_KEYs for tests

* Uses verbose env var to determine response data

* update changelog: add conflux adapter

* EA migration - batch #1 (#226)

* 1forge to TS

* Add Config type for recent change to generic types

* Utilize ExecuteWithConfig in 1forge

* Adds example README template & remove 'server' script

* Alphavantage adapter to TS

* Remove alphavantage-sdr folder

* Amberdata-gasprice to TS

* Anyblock-gasprice to TS

* Binance-DEX to TS

* Add note to binance-dex's differing use of API_ENDPOINT env var

* Brave New Coin to TS

* Bring Brave New Coin VWAP into Brave New Coin EA

* Coinapi to TS

* Coinbase to TS

* Coingecko to TS

* Move BNC helpers into BNC adapter

* Increase alphavantage test timeout

* Moves alphavantage APIkey param into endpoint - issue open for improvement

* Clean up leftover bravenewcoin-vwap traces

* Remove 1forge's conflicting and not useful endpoint param

* Requested changes: 1forge balance -> price, alphavantage example output

* Re-add server script & spread response data into endpoint responses

* Uses verbose env var to determine response data

* Gets API_KEY from makeConfig

* Add test dummy API_KEY

* Re-add server script to example

* batch adapter TS refactor (#234)

* batch adapter TS refactor

* satisfy linter

* Uses config in generics, removes non-TS server script

* EA endpoints return their own response & use ExecuteWithConfig type

* Capitalize name property

* Use Config for baseURL and API_KEYS, re-add server script, use verbose env var for data response

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* README improvements, fix typo with PRICE_ADAPTER

* networkId type fix

* feed tx gas info

* Read dxFeed config correctly with prefix

* Include config change in secondary adapter

* Use "Quote" for WTI

* Fix case-sensitive endpoint params

* batch requests on coingecko

* DPI readme updated

* removed console

* Update Synthetix for new sDEFI pairs

* docs: additiona to 1forge, amberdata-gasprice, anyblock-gasprice, & binance-dex

* Add API_KEY docs & docs from QA for coinapi, coinbase, cmc, coinpaprika, cryptocompare, currencylayer, and poa-gasprice

* Finish TS migrated adapter QA

* Add dummy API keys for tests

* Use Jonas' fix to non-lowercase endpoint param

* Add dummy API key to openexchangerates test

* Add dummy API key to polygon test

* Requested changes: consistent endpoint title capitalization, tweak API_KEY description, add sample input to example EA

* Fix: balance test helper path

* Remove WrappedResponse

* Merge develop

* CHANGELOG

* Requested Change: remove from CHANGELOG

* Change: Only one Middleware type

* Change: revert change to withCache to remove options param

* Remove util.wrapExecute from all EAs

* Revert result being optional

* Makes Middleware a generic type to allow withCache options & fix test with result in mock data response

* wrap response

* returning result on callback

* removed unused imports

* Update KCS slug on CMC synth-index

* Update KCS slug on CMC

* synthx as composite using TA

* removed old synth adapter and its build steps

* base as default input param

* TA default quote as env var

* TA accepts method as param

* validation on TA

* avoid floating numbers on TA

* removed TA reference from Readme

* readme updated

* negative balance checked easier

* prefix preference on TA make config

* updated adapter name

* added cmc slugs

* updated synthx version

* fix synthx version

* tiingo adapter with tests

* misc tiingo fixes

* updated changelog

* updates

* fix import name error

* Remove synthetix dependency from global package

* Update synthetix package

* Prevent scientific notation of balances

* removed google finance

* filter out auth from logging

* Publish Docker images to SDLC Public ECR instead of Prod Public ECR

* remove old js code

* add ts conflux adaptor code

* remove lock file

* comment example test

* added preset ticker on coinpaprika and coingecko

* update config helper

* Include the "result" key on cached responses

* Include jobRunID in cached response

* added ethwrite JS project and its dependencies

* converted to TS

* working with the new structure

* added hardhat and relevant test setup

* default config + naming convention fix

* changed README, added defaults and test

* review changes; need to check tests

* asserting true values written to contract in test

* small change in config

* made dataType optional, altered tests, added helper file

* removed helper files

* installed fresh dependencies

* README changes and required env vars

* moved private key to hardhat helpers

* yarn install

* json for hardhat exported var

* cleaned comments

* update new ea-bootstrap

* fix lint error

* add unit test

* fix lint

* update tests

* Publish adapters to prod when merging to develop

* basic setup

* geoDB adapter

* updated changelog

* Removed other parts of config that include sensitive values. Removed api key warning

* Add "agoric" adapter (#114)

* feat: add Agoric adapter

* fix: use agoric_oracle_query_id

* fix: make more explicit

* test: remove agoric/test

* fix: another attempt to plumb through the 'Task Run Data'

* fix: use the promise-based API

* fix: make request_id numeric

* fix: cast payment from number to string

* fix: properly export the Agoric async adapter and string queryId

* refactor: separate concerns and add tests

* fix: more robust adapter; send errors to the oracleServer

* feat!: surface errors from the oracle backend

* fix: match with actual POST reply from the ag-solo

* fix: use AdapterErrors to surface errors to the node operator

* test: add integration test

* fix: use Requester instead of axios

* chore: rename package to @chainlink/agoric

* ci: add "agoric" to adapters.json

* refactor: clarify implementation according to review comments

* refactor: use the adapter-test-helpers

* ci: fix the Agoric build process

* fix: address review comments

* refactor: standardize code based on example adapter

* fix: import makeConfig

* fix: correct the default agoric adapter parameters

* chore: remove dependency on bn.js

* Kaiko special case for DIGG/BTC (#336)

* Kaiko special case for DIGG/BTC

* Increase timespan for Kaiko requests

* Add changelog item

* updated geodb url

* Update node version in GCP readme

* Add Amberdata case for DIGG/BTC (#345)

* TheRundown adapter

* updated changelog

* updated therundown readme

* TS EAs #4 batch 0 of 3 (#332)

* Add couple more best practices into example adapter

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* Rename path param --> field

* Move TE stream adapter to monorepo (#346)

* Move TE stream adapter to monorepo

* Add changelog entry

* Make config optional

* Add tests

* Added LINA preset in coingecko

* CMC should prefer IDs over slugs (#343)

* CMC should prefer IDs over slugs

* Add changelog entry

* Add conversion from AMP to AMP2 for Nomics adapter

* parsing c(close price) according to v3

* Add tradermade support to outlier-detection (#357)

* Add tradermade support to outlier-detection

* Fix outdated tests

* Add changelog entry

* Improve Redis connection cleanup

* AlphaChain adapter to TS

* Add postinstall script

* More best practices in the example EA

* Bitex adapter to TS

* Bitso adapter to TS

* Clean up bravenewcoin-vwap fragment

* Coinlore adapter to TS

* Remove postinstall script until entire build process can be refactored

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* COVID-tracker adapter to TS

* Cryptomkt adapter to TS

* Remove google-finance adapter fragment

* Lition adapter to TS

* Add public ecr registry to docker login

* Skip coinlore integration tests

* Add baseurl option (#367)

* Explicitly specify aws region (#370)

* Updated Asset Allocation Interface (#358)

* asset allocation updated

* updated version

* decimals to number

* Fix support for WING on Nomics (#371)

* Add basic prom metrics (#365)

* Messari adapter to TS

* Orchid Bandwidth adapter to TS

* SatoshiTange adapter to TS

* TradingEconomics adapter to TS

* Extra to TradingEconomics README

* Fix to tradingeconomics .eslintrc.js

* Fix: remove no longer relevant test

* Cryptoapis tests and README (#248)

* Update README about metadata (#379)

* Add new ticker conversions

* Overrides Input parameter (#384)

* override format validator. coingecko impl

* price adapter use overrides

* overrides validator test

* override inside validator

* refactor

* more adapters added

* more adapters added

* readmes updated

* lint fix

* preset symbols used

re

* tests updated

* merge with lodash

* fix merge

* Bump elliptic from 3.0.3 to 6.5.4 (#391)

Bumps [elliptic](https://github.com/indutny/elliptic) from 3.0.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](indutny/elliptic@v3.0.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove GOOGL override for dxfeed-secondary (#392)

* fix-format-readme-link (#393)

* Set correct response type on metrics

* Add FB support for dxfeed and dxfeed-secondary (#420)

* bitcoin endpoints (#417)

* bitcoin endpoints

* Fix blockstream and blockchain.com adapters

* Fix height result output

* Fix blockstream README

* Update blockstream/package.json

* Update blockstream/README.md

* Condense endpoints to blocks & use field param

* Blockstream doesn't require an API KEY

* Update Blockstream README

* Add blockstream to github workflow

Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* Update Genesis Volatility README (#422)

* add support for RAI to kaiko, nomics (#425)

* add rai, weth (#424)

* add rai, weth

Added handling of RAI/WETH pair using contract addresses

* Fix formatting

Co-authored-by: Jonas Hals <jonas@smartcontract.com>

* update API key url (#428)

* additional fixes for RAI support on kaiko adapter (#431)

* added includes:['weth'] support to kaiko adapter

* Apply suggestions from code review

Co-authored-by: Jonas Hals <contact@jonashals.me>

* v0.0.4

* Preparing v0.2.0 release: version patch bumps

* Tag changelog

* Bump dependency versions

* Additional CHANGELOG items

Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>

* Adding Intrinio, Twelvedata, Unibit to master (before EAEE changes, after v0.2.0) (#446)

* fix: token-allocation uses getRandomRequiredEnv for multiple keys

* Add RGT and RARI support to Amberdata EA (#443)

* Add RGT and RARI support to Amberdata EA

* add cases to handle RGT and RARI

* formatting changes

* formatting again

* Adapters for Intrinio, Unibit, Twelvedata (#442)

* unibit adapter

* intrinio adapter - untested

* intrinio: tested + update documentation - only iex needed, others untested

* twelvedata rest api adapter

Co-authored-by: Justin Kaseman <justinkaseman@live.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>

* add support for SFI (#447)

* Chore/intrinio tiingo mods (#448)

* mods to intrinio for returning last price, and additional parameter support

* fix(tiingo): endpoint will use default for unknown, added additional params for ticker

* fix: incorrect param naming

* Kaiko RARI & RGT inverse kludge (#452)

* Tiingo IEX endpoint (#458)

* (feat): add iex endpoint (price) to tiingo source EA

* Change endpoint name to stock

* Change default to IEX intraday behavior

* Add kludge for getting dYdX price outside of input 'data' object (#491)

* Adding LDO support (#497)

* Add fake RAI2 symbol to override to Rai Reflex Index (#512)

* feat: add crypto endpoint to tiingo adapter (#510)

* feat: Add block endpoint for BTC.com that supports height and difficulty

* Add Tiingo crypto/prices endpoint and use for CL crypto unified endpoint (#515)

* Composite fixes for DPI/synth-index (#523)

* Force Coingecko to use old KNC ticker

* Make CoinPaprika fetch CREAM directly

* Add Nomics override for new KNC ID

* fix linting

* Add VSP support (#534)

* Add FRAX+BOND support (#546)

* Add FRAX support

* Additional support for BOND

* Update price.ts

* Add TRIBE + FEI support

* add inverse for TRIBE

* Support Pro API keys on Coingecko (#602)

* upgraded version for v1 (#599)

* Update build command (#615)

* Coingecko support API keys on token-allocation (#618)

* Add Linear finance adapter (#620)

* Vesper adapter for v1 (#624)

* Add Tiingo Token-Allocation (#632)

* refactor: remove merge fragments

* chore: bump package versions for v0.3.0-rc1 release

* docs: prep v0.3.0-rc.1 changelog

* refactor: fix merge

* chore: migrate yarn v3 & rebuild deps

* chore: remove merge fragment

* chore: use latest yarn version in checksum ci action"

* chore: update checksums before checking checksums

* chore: remove dependency check

Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>
Co-authored-by: vladi-coti <75608967+vladi-coti@users.noreply.github.com>
justinkaseman added a commit that referenced this pull request Jul 31, 2021
* [Master] Release/v0.2.0 (#439)

* coinmarketcap ts refactor

* types & lint & package name

* CHANGELOG

* Requested changes: uses generic execute types, base url from config, splits tests

* add conflux adapter

* Remove adapter.js from merge

* Fix: increase test timeout, move marketcap unknown market to error calls, correct typo in baseURL

* getDefaultConfig takes new parameter for required API key

* Brings back dummy API_KEYs for tests

* Uses verbose env var to determine response data

* update changelog: add conflux adapter

* EA migration - batch #1 (#226)

* 1forge to TS

* Add Config type for recent change to generic types

* Utilize ExecuteWithConfig in 1forge

* Adds example README template & remove 'server' script

* Alphavantage adapter to TS

* Remove alphavantage-sdr folder

* Amberdata-gasprice to TS

* Anyblock-gasprice to TS

* Binance-DEX to TS

* Add note to binance-dex's differing use of API_ENDPOINT env var

* Brave New Coin to TS

* Bring Brave New Coin VWAP into Brave New Coin EA

* Coinapi to TS

* Coinbase to TS

* Coingecko to TS

* Move BNC helpers into BNC adapter

* Increase alphavantage test timeout

* Moves alphavantage APIkey param into endpoint - issue open for improvement

* Clean up leftover bravenewcoin-vwap traces

* Remove 1forge's conflicting and not useful endpoint param

* Requested changes: 1forge balance -> price, alphavantage example output

* Re-add server script & spread response data into endpoint responses

* Uses verbose env var to determine response data

* Gets API_KEY from makeConfig

* Add test dummy API_KEY

* Re-add server script to example

* batch adapter TS refactor (#234)

* batch adapter TS refactor

* satisfy linter

* Uses config in generics, removes non-TS server script

* EA endpoints return their own response & use ExecuteWithConfig type

* Capitalize name property

* Use Config for baseURL and API_KEYS, re-add server script, use verbose env var for data response

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* README improvements, fix typo with PRICE_ADAPTER

* networkId type fix

* feed tx gas info

* Read dxFeed config correctly with prefix

* Include config change in secondary adapter

* Use "Quote" for WTI

* Fix case-sensitive endpoint params

* batch requests on coingecko

* DPI readme updated

* removed console

* Update Synthetix for new sDEFI pairs

* docs: additiona to 1forge, amberdata-gasprice, anyblock-gasprice, & binance-dex

* Add API_KEY docs & docs from QA for coinapi, coinbase, cmc, coinpaprika, cryptocompare, currencylayer, and poa-gasprice

* Finish TS migrated adapter QA

* Add dummy API keys for tests

* Use Jonas' fix to non-lowercase endpoint param

* Add dummy API key to openexchangerates test

* Add dummy API key to polygon test

* Requested changes: consistent endpoint title capitalization, tweak API_KEY description, add sample input to example EA

* Fix: balance test helper path

* Remove WrappedResponse

* Merge develop

* CHANGELOG

* Requested Change: remove from CHANGELOG

* Change: Only one Middleware type

* Change: revert change to withCache to remove options param

* Remove util.wrapExecute from all EAs

* Revert result being optional

* Makes Middleware a generic type to allow withCache options & fix test with result in mock data response

* wrap response

* returning result on callback

* removed unused imports

* Update KCS slug on CMC synth-index

* Update KCS slug on CMC

* synthx as composite using TA

* removed old synth adapter and its build steps

* base as default input param

* TA default quote as env var

* TA accepts method as param

* validation on TA

* avoid floating numbers on TA

* removed TA reference from Readme

* readme updated

* negative balance checked easier

* prefix preference on TA make config

* updated adapter name

* added cmc slugs

* updated synthx version

* fix synthx version

* tiingo adapter with tests

* misc tiingo fixes

* updated changelog

* updates

* fix import name error

* Remove synthetix dependency from global package

* Update synthetix package

* Prevent scientific notation of balances

* removed google finance

* filter out auth from logging

* Publish Docker images to SDLC Public ECR instead of Prod Public ECR

* remove old js code

* add ts conflux adaptor code

* remove lock file

* comment example test

* added preset ticker on coinpaprika and coingecko

* update config helper

* Include the "result" key on cached responses

* Include jobRunID in cached response

* added ethwrite JS project and its dependencies

* converted to TS

* working with the new structure

* added hardhat and relevant test setup

* default config + naming convention fix

* changed README, added defaults and test

* review changes; need to check tests

* asserting true values written to contract in test

* small change in config

* made dataType optional, altered tests, added helper file

* removed helper files

* installed fresh dependencies

* README changes and required env vars

* moved private key to hardhat helpers

* yarn install

* json for hardhat exported var

* cleaned comments

* update new ea-bootstrap

* fix lint error

* add unit test

* fix lint

* update tests

* Publish adapters to prod when merging to develop

* basic setup

* geoDB adapter

* updated changelog

* Removed other parts of config that include sensitive values. Removed api key warning

* Add "agoric" adapter (#114)

* feat: add Agoric adapter

* fix: use agoric_oracle_query_id

* fix: make more explicit

* test: remove agoric/test

* fix: another attempt to plumb through the 'Task Run Data'

* fix: use the promise-based API

* fix: make request_id numeric

* fix: cast payment from number to string

* fix: properly export the Agoric async adapter and string queryId

* refactor: separate concerns and add tests

* fix: more robust adapter; send errors to the oracleServer

* feat!: surface errors from the oracle backend

* fix: match with actual POST reply from the ag-solo

* fix: use AdapterErrors to surface errors to the node operator

* test: add integration test

* fix: use Requester instead of axios

* chore: rename package to @chainlink/agoric

* ci: add "agoric" to adapters.json

* refactor: clarify implementation according to review comments

* refactor: use the adapter-test-helpers

* ci: fix the Agoric build process

* fix: address review comments

* refactor: standardize code based on example adapter

* fix: import makeConfig

* fix: correct the default agoric adapter parameters

* chore: remove dependency on bn.js

* Kaiko special case for DIGG/BTC (#336)

* Kaiko special case for DIGG/BTC

* Increase timespan for Kaiko requests

* Add changelog item

* updated geodb url

* Update node version in GCP readme

* Add Amberdata case for DIGG/BTC (#345)

* TheRundown adapter

* updated changelog

* updated therundown readme

* TS EAs #4 batch 0 of 3 (#332)

* Add couple more best practices into example adapter

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* Rename path param --> field

* Move TE stream adapter to monorepo (#346)

* Move TE stream adapter to monorepo

* Add changelog entry

* Make config optional

* Add tests

* Added LINA preset in coingecko

* CMC should prefer IDs over slugs (#343)

* CMC should prefer IDs over slugs

* Add changelog entry

* Add conversion from AMP to AMP2 for Nomics adapter

* parsing c(close price) according to v3

* Add tradermade support to outlier-detection (#357)

* Add tradermade support to outlier-detection

* Fix outdated tests

* Add changelog entry

* Improve Redis connection cleanup

* AlphaChain adapter to TS

* Add postinstall script

* More best practices in the example EA

* Bitex adapter to TS

* Bitso adapter to TS

* Clean up bravenewcoin-vwap fragment

* Coinlore adapter to TS

* Remove postinstall script until entire build process can be refactored

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* COVID-tracker adapter to TS

* Cryptomkt adapter to TS

* Remove google-finance adapter fragment

* Lition adapter to TS

* Add public ecr registry to docker login

* Skip coinlore integration tests

* Add baseurl option (#367)

* Explicitly specify aws region (#370)

* Updated Asset Allocation Interface (#358)

* asset allocation updated

* updated version

* decimals to number

* Fix support for WING on Nomics (#371)

* Add basic prom metrics (#365)

* Messari adapter to TS

* Orchid Bandwidth adapter to TS

* SatoshiTange adapter to TS

* TradingEconomics adapter to TS

* Extra to TradingEconomics README

* Fix to tradingeconomics .eslintrc.js

* Fix: remove no longer relevant test

* Cryptoapis tests and README (#248)

* Update README about metadata (#379)

* Add new ticker conversions

* Overrides Input parameter (#384)

* override format validator. coingecko impl

* price adapter use overrides

* overrides validator test

* override inside validator

* refactor

* more adapters added

* more adapters added

* readmes updated

* lint fix

* preset symbols used

re

* tests updated

* merge with lodash

* fix merge

* Bump elliptic from 3.0.3 to 6.5.4 (#391)

Bumps [elliptic](https://github.com/indutny/elliptic) from 3.0.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](indutny/elliptic@v3.0.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove GOOGL override for dxfeed-secondary (#392)

* fix-format-readme-link (#393)

* Set correct response type on metrics

* Add FB support for dxfeed and dxfeed-secondary (#420)

* bitcoin endpoints (#417)

* bitcoin endpoints

* Fix blockstream and blockchain.com adapters

* Fix height result output

* Fix blockstream README

* Update blockstream/package.json

* Update blockstream/README.md

* Condense endpoints to blocks & use field param

* Blockstream doesn't require an API KEY

* Update Blockstream README

* Add blockstream to github workflow

Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* Update Genesis Volatility README (#422)

* add support for RAI to kaiko, nomics (#425)

* add rai, weth (#424)

* add rai, weth

Added handling of RAI/WETH pair using contract addresses

* Fix formatting

Co-authored-by: Jonas Hals <jonas@smartcontract.com>

* update API key url (#428)

* additional fixes for RAI support on kaiko adapter (#431)

* added includes:['weth'] support to kaiko adapter

* Apply suggestions from code review

Co-authored-by: Jonas Hals <contact@jonashals.me>

* v0.0.4

* Preparing v0.2.0 release: version patch bumps

* Tag changelog

* Bump dependency versions

* Additional CHANGELOG items

Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>

* Adding Intrinio, Twelvedata, Unibit to master (before EAEE changes, after v0.2.0) (#446)

* fix: token-allocation uses getRandomRequiredEnv for multiple keys

* Add RGT and RARI support to Amberdata EA (#443)

* Add RGT and RARI support to Amberdata EA

* add cases to handle RGT and RARI

* formatting changes

* formatting again

* Adapters for Intrinio, Unibit, Twelvedata (#442)

* unibit adapter

* intrinio adapter - untested

* intrinio: tested + update documentation - only iex needed, others untested

* twelvedata rest api adapter

Co-authored-by: Justin Kaseman <justinkaseman@live.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>

* add support for SFI (#447)

* Chore/intrinio tiingo mods (#448)

* mods to intrinio for returning last price, and additional parameter support

* fix(tiingo): endpoint will use default for unknown, added additional params for ticker

* fix: incorrect param naming

* Kaiko RARI & RGT inverse kludge (#452)

* Tiingo IEX endpoint (#458)

* (feat): add iex endpoint (price) to tiingo source EA

* Change endpoint name to stock

* Change default to IEX intraday behavior

* Add kludge for getting dYdX price outside of input 'data' object (#491)

* Adding LDO support (#497)

* Add fake RAI2 symbol to override to Rai Reflex Index (#512)

* feat: add crypto endpoint to tiingo adapter (#510)

* feat: Add block endpoint for BTC.com that supports height and difficulty

* Add Tiingo crypto/prices endpoint and use for CL crypto unified endpoint (#515)

* Composite fixes for DPI/synth-index (#523)

* Force Coingecko to use old KNC ticker

* Make CoinPaprika fetch CREAM directly

* Add Nomics override for new KNC ID

* fix linting

* Add VSP support (#534)

* Add FRAX+BOND support (#546)

* Add FRAX support

* Additional support for BOND

* Update price.ts

* Add TRIBE + FEI support

* add inverse for TRIBE

* Support Pro API keys on Coingecko (#602)

* upgraded version for v1 (#599)

* Update build command (#615)

* Coingecko support API keys on token-allocation (#618)

* Add Linear finance adapter (#620)

* Vesper adapter for v1 (#624)

* Add Tiingo Token-Allocation (#632)

* Update synth-index to v2.45.3 (#658)

Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>
Co-authored-by: vladi-coti <75608967+vladi-coti@users.noreply.github.com>
justinkaseman added a commit that referenced this pull request Jul 31, 2021
* feat: cleanup schemas and add docker-compose env generation support

* chore: remove unused scripts

* refactor: remove unused swagger defs

* refactor: remove unused oas.json files

* chore: remove fragments of oas scripts

* fix: address PR feedback

* test(scripts): update env snapshots

* fix: burst connection handling (#476)

* fix: burst connection handling

* fix: loading connection starts at 1

* perf: removed message in subscription payload (#479)

* style: wS impl style tweaks

* refactor(ws): clean up WS logging

* refactor(ws): Move WS handlers to adapter.ts

* refactor(ws): remove heartbeat ws action

* fix: validator does not mutate its input values (#482)

* fix: connecting status if no active connection exists

* refactor: improved readability

* fix: unsubscribe due to unresponsive channel only on active subscriptions

* fix(boostrap-metrics): fixed parameter for metrics on ubuntu

* Update packages/core/bootstrap/prometheus.yml

* perf: added metrics at unresponsive subscriptions (#488)

* perf: added metrics at unresponsive subscriptions

* perf: metric subs error on every message

* perf: error reason message as string

* perf: non undefined metric labels

* fix: subscription loading check added

* fix: unsubscription metric happens only if the subs was active (#493)

* fix(tradingeconomics): fix missing overrides for websocket

* feat(augur): augur adapters and changes (#492)

* feat(augur): augur adapters and changes

* fix(augur): fixes, tests and documentation

* fix(augur): fix issue if homeSpread is a float

* feat(augur): allow affiliate ids to be defined in job spec

* fix(augur): right pad instead of left padding bytes32 data

* fix(augur): all scores should be rounded fixed point

* fix(augur): fix references failing ts build

* fix(augur): use clarified value for totalScore

* refactor(augur): organize tests as e2e

* feat: warmer and ws play together (#500)

* feat: warmer and ws play together

* perf: warmer middleware needs a raw execute fn

* fix(bootstrap-ws): handle state + metrics when TTL parameter is too short (#502)

* feat(eod): added support for EOD close prices (#507)

* fix(therundown): fix date formatting when requesting events for a date (#513)

* fix(augur): fix nonce management (#514)

* fix(augur): fix nonce management

* fix(augur): expect isEventResolved() to possibly fail

* fix(augur): use normalized team ids (#519)

* fix(augur): fix typo (#520)

* Adapter for expert car broker (#516)

* feat(expert-car-broker): adapter for expert car broker

* Update packages/sources/expert-car-broker/package.json

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* fix(example): set default version to 0.0.1

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* docs: additional docs for EAEE & EAs directories (#517)

* docs: additional docs for EAEE & EAs directories

* Update packages/core/bootstrap/README.md

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* Update packages/core/bootstrap/README.md

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* fix: unsubscriptions metrics when ws disconnection happens (#522)

* Refactor connections state to be similar to subscriptions state (#509)

* refactor(bootstrap-ws): refactor connections state to match subscriptions state

* feat(bootstrap-ws): adding active total to connections state

* feat(bootstrap-ws): add total counter in state for subscriptions + auto update using reducer

* refactor(bootstrap-ws): insert ternary operator for potentially undefined parameters

* chore(yarn): update yarn cache and lockfile

* feat(scripts): add healthcheck payload generation script

* feat: add test payloads

* feat: add health endpoint implementation for adapters

* fix(intrinio): calling destroy in SDK to prevent zombie connections (#496)

* Switch out logging package (#524)

* refactor(bootstrap-logging): switched out Winston for Pino logging

* feat(bootstrap-logging): added redact functionality for logging, WS logging + metrics

* refactor(bootstrap-logging): removed extraneous parameter

* refactor(bootstrap-logging): moved WS redact parameters to WS module

* Fix augur encoding (#529)

* augur encoding change

(cherry picked from commit 79ab8298ca005daf99b5939c4c9f4e7fda18414e)

* fix(augur): refactor and support missing teams object

* fix(augur): use `teams_normalized` instead of `teams`

Co-authored-by: robert <robert.davidson@forecastfoundation.org>

* Batch requests (#460)

* perf: bring back batch requests for price endpoint symbols of TA source adapters

* feat(coinapi): add new endpoint assets that supports batch quotes in USD

* Update packages/core/bootstrap/src/lib/external-adapter/requester.ts

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* Update packages/core/bootstrap/src/lib/external-adapter/requester.ts

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* refactor: requested changes

* test(requester.ts): add withResult unit tests & additional requested changes

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* fix(augur): expect `getEventMarkets()` to return BigNumbers (#530)

* Feature/coins calls (#487)

* perf: bring back batch requests for price endpoint symbols of TA source adapters

* refactor: requested changes

* perf: bring back batch requests for price endpoint symbols of TA source adapters

* feat(coingecko): use cache-able coins list call

* feat(coinpaprika): add coins endpoints and util for cached coins request

* refactor: requested changes

* fix: correctly catches getCoinIds errors

* conflux send tx optimization (#533)

* conflux send tx optimization

* style: fix lint

Co-authored-by: PanaW <wangpan@conflux-chain.org>

* Chore/prep v0.3.0 rc.1 (#535)

* Adding Intrinio, Twelvedata, Unibit to master (before EAEE changes, after v0.2.0) (#446)

* fix: token-allocation uses getRandomRequiredEnv for multiple keys

* Add RGT and RARI support to Amberdata EA (#443)

* Add RGT and RARI support to Amberdata EA

* add cases to handle RGT and RARI

* formatting changes

* formatting again

* Adapters for Intrinio, Unibit, Twelvedata (#442)

* unibit adapter

* intrinio adapter - untested

* intrinio: tested + update documentation - only iex needed, others untested

* twelvedata rest api adapter

Co-authored-by: Justin Kaseman <justinkaseman@live.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>

* add support for SFI (#447)

* Chore/intrinio tiingo mods (#448)

* mods to intrinio for returning last price, and additional parameter support

* fix(tiingo): endpoint will use default for unknown, added additional params for ticker

* fix: incorrect param naming

* Kaiko RARI & RGT inverse kludge (#452)

* Tiingo IEX endpoint (#458)

* (feat): add iex endpoint (price) to tiingo source EA

* Change endpoint name to stock

* Change default to IEX intraday behavior

* Add kludge for getting dYdX price outside of input 'data' object (#491)

* Adding LDO support (#497)

* Add fake RAI2 symbol to override to Rai Reflex Index (#512)

* feat: add crypto endpoint to tiingo adapter (#510)

* feat: Add block endpoint for BTC.com that supports height and difficulty

* Add Tiingo crypto/prices endpoint and use for CL crypto unified endpoint (#515)

* Composite fixes for DPI/synth-index (#523)

* Force Coingecko to use old KNC ticker

* Make CoinPaprika fetch CREAM directly

* Add Nomics override for new KNC ID

* fix linting

* Add VSP support (#534)

* chore: merge master

Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>

* fix(bootstrap): add missing provider limits config (#537)

* feat(tiingo): add crypto WS handler (#532)

* feat(tiingo): add crypto WS handler

* refactor(tiingo): move defaultConfig inside return function

* feat(ws): improve logging (#505)

* fix(augur): treat `0.0001` as a special case (#531)

* fix(augur): treat `0.0001` as a special case

* refactor(augur): document `transformSpecialNone`

* fix(bootstrap): re-add try/finally logic to cache connection

* fix(iex-cloud): brings back 'eod' endpoint

* fix(bootstrap): add missing tiingo WS api tier configuration

* feat(bootstrap-ws): added env var to enable ws connections (#536)

* fix: fix unbounded labels from unstable keys in metrics

* feat(metric): include 'isCacheWarming' label to http requests metric

* fix: increase TTL of coin list calls to an hour (#538)

* feat(augur): add more detailed debug logging (#545)

* fix(bootstrap): correct Tiingo api tiers (#549)

* Augur head2head no affiliates (#551)

* create head to head markets when there is no affiliate

(cherry picked from commit 1c344872a2186b71c4e31a1ed411047ac484f06c)

* refactor(augur): clarify debug logging with changes

Co-authored-by: robert <robert.davidson@forecastfoundation.org>

* [Chore] Semantic release dependency & Yarn 2 PnP workflow check (#548)

* chore: add missing dependency: @semantic-release/commit-analyzer

* chore: add check for dependency checksums

* docs: add section for common dev problems. Document Ubuntu sh => dash problem

* fix: re-add yarn install for lint/unit test

* chore: add missing @semantic-release/release-notes-generator dependency

* fix: amend install of missing     "@semantic-release/release-notes-generator": "^9.0.2",

* chore: add @semantic-release/npm

* chore: add @semantic-release/github

* Add jsonnet lib for grafana

* Setup grizzly MVP

* Replicate EA staging dashboard in grafana

* Add grafana previews

* Update gitignore

* Clean up grafana action

* feat(grafana): extract constants into extVars

* feat(grafana): add websocket metrics

* feat(grafana): add service with metrics composition

* Add context to validator messages

* Update dev env

* Fix typo

* Update dashboards

* Add redis metrics and contextual errors

* Memoize cache creation

* Remove broken workflow

* Remove context change

* fix(bootstrap): add check when initializing cache warmer for using WS_ENABLED (#557)

* fix(bootstrap): rate limiter's cache warmer request id (#550)

* fix: participant hashing was not ignoring rateLimiMaxAge prop

* test(bootstrap): fix rate-limit test for moved rateLimitMaxAge

Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>

* performance/EAEE (#558)

* Handle invalid state

* Drop stack trace generation

* Add error logging for resubscriptions

* Share key hashing configuration

* Add missing codepaths

* Add code comments

* Update tests

* Add more error logging

* fix: rate limit: removed sec and day intervals

* perf: removed minute interval. shorter names on redux state

* perf: shortened state keys

* fix: fixed tests

* Add more logging

* fix: dont log validation errors on WS subscription

* Make cache-warmer subscriptions instant

* Set cache logs to trace

* Have redis timeout error more verbose

* Move ws cache log to trace

* Blacklist WS messages from devtools

* Reduce cache-warmer spam when paired with WS feed

* Fix cache warmer tests

* feat(binance): add binance adapter (#569)

* fix: normalize batch request results keys

* fix(unibit): reflect Unibit historical endpoint cost of 10 credits/request

* fix(token-allocation): batched response keys in by symbol, not quote

* fix: coingecko and Coinpaprika correctly use overrides for batch requests (#574)

* Fix undefined property access

* Augur Sportsdataio (#563)

* Skip markets with TBD teams

(cherry picked from commit 188947d4d488f63d3fbad007091625693b29d8d2)

* AUGUR: resolve markets with delay

(cherry picked from commit 5e66627ebc464a116dfef3cdc2fb8283711a04c2)

* only increment nonce on tx success; remove resolution buffer code

(cherry picked from commit 5e733e665bfb5ab58cb35c11118a9b62a9a8de4c)

* feat(augur): add logging of failed market resolving

* feat(augur): more debug logging around resolving markets

* fix(augur): be consistent around adding/removing days from dates

* fix(augur): fix nonce management on resolve markets

* feat(augur): log tx hashes on resolve market

* fix(augur): allow market creation to proceed with failed txs

* augur: resolve markets going back until the day before yesterday

(cherry picked from commit 460b7055cb1d20fe1e14650ac151facb6191e394)

* augur: use new event resolution list

(cherry picked from commit 53ef02d6cba64bc4c73c45b135146c3bc2792c84)

* refactor(augur): cleanup

* feat(augur): get a single event from theRundown

* feat(sportsdataio): new adapter for sportsdataio

* feat(augur): refactor and additional endpoints/dataproviders

* refactor(augur): refactor to fit new resolve model

Co-authored-by: robert <robert.davidson@forecastfoundation.org>

* fix(bootstrap): correct cryptocompare tier config. Month should be denoted with 'mo'

* feat(vesper): add vesper tvl adapter (#578)

* feat(vesper): add vesper tvl adapter

* refactor(vesper): apply suggestions from code review

* feat(bootstrap): add api tier config for CryptoCompare enterprise-lite

* Optimize RL performance

* chore(scripts): add k6 12 soak test

* feat(bootstrap): add BNB/ETH to load test

* Begin migration of k6 to TS

* Enable module imports with TS

* fix(k6): fix linting errors

* feat(bootstrap): add minimum TTL

* feat(bootstrap): raise default max age to 2 minutes

* feat(bootstrap): label cache max age warnings with feedId

* refactor(bootstrap): modify remote dev script

* test(bootstrap): modify tests for min and new max TTL

* refactor(bootstrap): increase websocket subscription timeouts to 2 minutes

* refactor(bootstrap): requested changes

* refactor(bootstrap): omit debug and rateLimitMaxAge fields from cache-warmer request body

* test(bootstrap): fix cache-warmer test from additional ms added to cache warm poll

* refactor: remove log

* add test for cryptocompare

* Add missing ethersjs deps (#586)

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* feat(binance): add provider limits (#588)

* fix(augur): update documentation (#589)

* Update CVI (#499)

* upgraded version

* sigma calculation

* PR fixes

* removed hardcoded env var

Co-authored-by: Jonas Hals <contact@jonashals.me>

* removed hardcoded test var

Co-authored-by: Jonas Hals <contact@jonashals.me>

Co-authored-by: Jonas Hals <contact@jonashals.me>

* docs(ws): add documentation about ws_enabled (#591)

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* fix(metrics): should support BASE_URL (#594)

* chore/cleanup ws (#590)

* Add feedId to WS

* Make action naming more consistent

* Add label to determine if cache execution came from ws

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* Make metrics base url optional (#597)

* Make metrics base url optional

* Use bash for precommit

* Make documentation more clear

* Allow rate adjustment independent of vus (#596)

* Allow rate adjustment independent of vus

* Reconfigure tests

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* feat(proof of reserves): add ability to provide list of addresses directly (#598)

* Support Pro API keys on Coingecko (#603)

* refactor(to refactor and update the old bob (chain reader) adapter) (#567)

* refactor(to refactor and update the old bob adapter): updated Bob adapter

* refactor: refactored Bob external adapter and cleaned up code

* refactor: created endpoint, updated readme, cleaned up

* refactor: fixed makeExecute to be in line with standard

* refactor(to refactor and update the old bob adapter): updated Bob adapter

* refactor: refactored Bob external adapter and cleaned up code

* refactor: created endpoint, updated readme, cleaned up

* refactor: fixed makeExecute to be in line with standard

* fix: updated Config

* fix: fix config

* fix: created ExtendedConfig type and implemented it

* fix: fix

* style: clean up

* fix: fixed merge issues and created ResponseSchema for Bob adapter

* fix: type fix

* fix: fixed ResponseSchema

Co-authored-by: Silas Lenihan <sjl58@duke.edu>

* Make metrics base url optional

* Make documentation more clear

* Add feed id to http requests metric

* Add cache panels

* Cleanup TS coverage, add more cache metrics

* Add more sane defaults for grafana local setup

* Configure docker-compose for linux hosts

* Update metrics

* Script grid layout

* Add overview dashboard

* Move feedId fields to "metricsMeta"

* Remove missing fields from ws_message_total metric

* Touch up panels with units and tables

* Remove total column from http/m/feed overview

* Add missing table legend

* Augur theRundown filter TBD (#608)

* Don't create events with TBD status

* docs(augur): update underlying source documentation

* fix(apy-finance): change test payload to coinmarketcap source (#607)

* Add cache overview metrics

* Update dashboard naming

* Extract shared metrics functionality

* fix(bootstrap): ignore metricsMeta from cache key generation

* feat: add Linear Finance composite adapter (#619)

* feat: add Linear Finance composite adapter

* Update docs

Co-authored-by: Thomas <thomas@smartcontract.com>

Co-authored-by: Thomas <thomas@smartcontract.com>

* Reduce buckets for cache execution duration

* [Fix] Bitex API key (#623)

* fix(bitex): mark Bitex API key as optional

* feat(bootstrap): add additional trademade API plans

* Refactored gas price for amberdata (#593)

* refactor: refactored gas price for amberdata

* fix: fixed issues with dependenices and added readme

* fix: small fixes

* fix: rebased to develop, updated test and package.json

Co-authored-by: Silas Lenihan <sjl58@duke.edu>

* Setup documents for deploying grafana dashboards

* feat(token-allocation): add Tiingo support (#633)

* [Feature] Dynamic test fixtures (#635)

* feat(bootstrap): adds the ability to use variables & read from the environment in test fixtures

* refactor(bootstrap): re-work dynamic test payloads to be built from a loaded js file

* refactor(apy-finance): clean up from code review comments

* fix(apy-finance): fix syntax

* feat: add test payload for the remaining composite adapters

* fix(reference-transform): remove console log

* Update packages/composites/outlier-detection/test-payload.js

Co-authored-by: Jonas Hals <contact@jonashals.me>

* Update packages/composites/market-closure/test-payload.js

Co-authored-by: Jonas Hals <contact@jonashals.me>

Co-authored-by: Jonas Hals <contact@jonashals.me>

* [Feat] Smart Cache Warming (#583)

* feat(bootstrap): batch requests are cached as split individual requests

* feat(bootstrap): cache warmer breaks out batch requests into individual subs

* feat(bootstrap): cache warmer stops polling on subs who have a batch parent come in

* feat: eA endpoints with batch support pass batchable input param key through debug

* feat(bootstrap): introduces batch warmers to cache warmer

* fix epic's dispatching of actions

* fix(bootstrap): qA

* fix: add batchable key to source batch request handlers

* test(bootstrap): add executeHandler epic unit tests

* chore: re-build dependencies

* test: add warmupJoinGroup unit test, add mock Date.now(), type Request data

* refactor(bootstrap): rename children -> childLastSeenById & batchable -> batchKey

* feat(bootstrap): a stopped batch warmer will remove its children

* feat(bootstrap): use MIN_CACHE_AGE for poll interval, add consistent cache getTTL util

n

* test(bootstrap): modify tests from previous MIN_TTL commit

* feat(bootstrap): cache-Warmer polls on min-TTL and skips over cache to leave no gaps in warmed data

* feat(bootstrap): cache Warmer uses TTL calculated by Rate Limit middleware if available

* test(bootstrap): update tests for result on WarmupSubscribedPayload and poll interval from min TTL

* feat(bootstrap): using WS with an active cache warmer subscription will remove from batch warmer

* test(bootstrap): fix cache warmer test by adding batchKey

* Add source maps

* fix(bootstrap): clean up cache TTL warnings

* refactor(bootstrap): rename batchKey -> batchablePropertyPath

* feat(bootstrap): add support for multiple batchablePropertyPaths

* chore: bump source adapter versions

* feat(coinmarketcap): add multiple batch paths

* fix(coingecko): correctly comma delimit join batch path for vs_currencies

* fix(bootstrap): make logger addition of instanceId immutable to avoid side effects on response data

* refactor(k6): modify for batch warmer soaks

* chore: add missing dep

* refactor(bootstrap): extract TTL helper functions & use in cache warmer

* perf(bootstrap): use subscription key to determine existing batch warmer

* refactor(bootstrap): move TTL calculation below cache hit to prevent excess logs

* fix(bootstrap): add extra guard cases to cache warmer subscription reducer

* fix(bootstrap): add guard for nullable childLastSeenById in subscriptionsReducer warmupSubscribed

* fix(bootstrap): add error logs to subscription reducer

* Update packages/core/bootstrap/src/lib/cache-warmer/reducer.ts

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* refactor(bootstrap): requested changes - removes debugging logs, adds comments to warmupLeaveGroup

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* fix(bootstrap): add LINK override to Coingecko (#639)

* fix(coingecko): getSymbolsToIds should favor searching by symbol first (#640)

* Merge CD pipeline

* Add documentation to release file

* Add workflow dispatch trigger

* Update alias

* Remove nonexistant job requirement

* Fix fromJson conditional logic in gha

* Fix fromJson conditional logic in matrix-adpaters

* Fix job deps in gha

* perf(bootstrap): lower `maxTTL` (#647)

* perf(bootstrap): lower 'maxTTL` from 2 mins to 1.5 mins to improve data freshness

* test(bootstrap): modify cache test for lowered default max TTL

* Invert CD logic for master test

* Revert "Invert CD logic for master test"

This reverts commit 6d7a9d150f24d0f4156d361efa2b9cee1858f1d2.

* fix(token-allocation): allow default source to be set with env vars (#653)

* chore/synth index integration testing (#636)

* Update pnpify config

* Add type fest

* Cleanup types

* Test toFixedMax

* Add supertest

* Add jest-runner settings to vscode

* Return server object on init

* Fix typeguard logic

* Add 'base' var to not-found message

* Remove unneeded exports

* Migrate e2e tests to their own package

* Strip out e2e tests

* Add synth-index X coingecko tests

* Update yarn cache

* Cleanup tests

* Add integration tests to CI

* Add integration test docs

* Fix gha

* fix(coingecko): coingecko id map should be { id: symbol } to allow converting back to symbol

* test(synth-index): increase timeout of 'should try 3 times and then fail' test

* test(synth-index): temporarily disable retry and fail test

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* fix(bootstrap): payload loader (#656)

* fix(bootstrap): amend payload loader to work from docker

* refactor: remove redundant Docker copying of test-payload

* Update synthetix to v2.45.3 (#659)

* chore(synth-index): update synthetix to v2.45.3

* test(synth-index): update fixtures and snapshots for synthetix v2.45.3

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* chore: migrate to yarn v2.4.2

* The graph adapter (#652)

* Create skeleton for graphql adapter

* Implement general purpose graphql adapter

* Create skeleton for the graph adapter

* Implement the graph adapter

* Rename token0 and token1 to base and quote coins

* Validate that base and quote coins are different

* Allows switching base and quote tickers as USD

* add test json payload file

* remove graphql dependencies

* Convert USDT to USD using feeds

* Add better error handling for when request to fetch token information fails

* Refactor code to support fetching from multiple dexs in the future

* Set the graph adapter name

* Address MR feedback

* Fill in the graph and graphql adapter ReadMe files and test payload files

* Add tests for new adapters

* Rename reference variables

* Reference reference-data-reader in the graph adapter

* Address MR feedback

* Fix indentation in the graph test payload file

* Fix TheGraph adapter ReadMe

* Remove extra new lines

* Add missing newlines in files

* Make uniswap api endpoint configurable

* Update the way uniswap v2 subgraph endpoint is being read

Co-authored-by: Jonas Hals <contact@jonashals.me>

* Fix incorrect uniswap endpoint environment variable description in ReadMe

Co-authored-by: Jonas Hals <contact@jonashals.me>

* Make dex parameter required in the graph adapter (#664)

* fix(coinapi): batch requests correctly forward to assets endpoint (#661)

* feat(bootstrap): separate /health endpoint from /smoke endpoint

* feat(coinranking): refactor and add marketcap support (#662)

* feat(coinranking): refactor and add marketcap support

* feat(coinranking): add types

* refactor(outlier-detection): switch to using lowercase input parameters

* Query bitcoin balances from local node (#655)

* Refactor bitcoin-json-rpc and json-rpc adapters for general use

* Add scantxoutset endpoint to bitcoin-json-rpc adapter

* Bump versions

* build: bump JSON rpc dependencies to 0.0.5

* feat(proof-of-reserves): add BTC JSON RPC as a source (#663)

* fix: bitcoin JSON rpc scantxoutset returns a string and JSON RPC uses timeout from config

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* fix(wbtc-address-set): remove filter for "chain === 'btc'"

* feat(bootstrap): normalize input parameters in batch warmer

* fix(coinmarketcap): fix batchablePropertyPath name and handling of multiple values (#676)

* docs(cvi): clarify use of isAdaptive param (#677)

* fix(coinapi): use 'from' instead of 'base' as input parameter name

* fix(finage): disable 'crypto' endpoint and update README

* refactor(bootstrap): add connect_timeout and socket_initial_delay (#679)

* Refactor adapters to meet example (#604)

* refactor: refactor

* refactor: refactor external adapters

* parent 63cd8c8bb907a84e5a19736f4b46e373322c3ec8
author Silas Lenihan <sjl58@duke.edu> 1623337257 -0400
committer Silas Lenihan <sjl58@duke.edu> 1626185838 -0400

fix(fixed small issue): fixed small issue

fix: attempting to update yarn

fixed yarn cache and made RPC URL optional

Update packages/sources/coincodex/src/config.ts

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

fix: updated adapters from PR feedback"

Update packages/sources/coinranking/src/adapter.ts

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

fix: fixed paxos error

trying to fix checksum

small fix to Bob adapter

refactor: refactor external adapters

fix(fixed small issue): fixed small issue

fix: attempting to update yarn

fixed yarn cache and made RPC URL optional

Update packages/sources/coincodex/src/config.ts

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

fix: updated adapters from PR feedback"

* Update packages/sources/coinranking/src/adapter.ts

Co-authored-by: Justin Kaseman <justinkaseman@live.com>
SQUASH COMMIT

* fix

* trying to fix checksum

* fix: fixing errors w/ merges

* fix: attempting to fix merge issues

* fix: attempting to fix merge issues

* Build selector refactor (#634)

* refactor: refactor external adapters

* fix: attempting to update yarn

* fixed yarn cache and made RPC URL optional

* fix: updated adapters from PR feedback"

* trying to fix checksum

* [Feat] Smart Cache Warming (#583)

* feat(bootstrap): batch requests are cached as split individual requests

* feat(bootstrap): cache warmer breaks out batch requests into individual subs

* feat(bootstrap): cache warmer stops polling on subs who have a batch parent come in

* feat: eA endpoints with batch support pass batchable input param key through debug

* feat(bootstrap): introduces batch warmers to cache warmer

* fix epic's dispatching of actions

* fix(bootstrap): qA

* fix: add batchable key to source batch request handlers

* test(bootstrap): add executeHandler epic unit tests

* chore: re-build dependencies

* test: add warmupJoinGroup unit test, add mock Date.now(), type Request data

* refactor(bootstrap): rename children -> childLastSeenById & batchable -> batchKey

* feat(bootstrap): a stopped batch warmer will remove its children

* feat(bootstrap): use MIN_CACHE_AGE for poll interval, add consistent cache getTTL util

n

* test(bootstrap): modify tests from previous MIN_TTL commit

* feat(bootstrap): cache-Warmer polls on min-TTL and skips over cache to leave no gaps in warmed data

* feat(bootstrap): cache Warmer uses TTL calculated by Rate Limit middleware if available

* test(bootstrap): update tests for result on WarmupSubscribedPayload and poll interval from min TTL

* feat(bootstrap): using WS with an active cache warmer subscription will remove from batch warmer

* test(bootstrap): fix cache warmer test by adding batchKey

* Add source maps

* fix(bootstrap): clean up cache TTL warnings

* refactor(bootstrap): rename batchKey -> batchablePropertyPath

* feat(bootstrap): add support for multiple batchablePropertyPaths

* chore: bump source adapter versions

* feat(coinmarketcap): add multiple batch paths

* fix(coingecko): correctly comma delimit join batch path for vs_currencies

* fix(bootstrap): make logger addition of instanceId immutable to avoid side effects on response data

* refactor(k6): modify for batch warmer soaks

* chore: add missing dep

* refactor(bootstrap): extract TTL helper functions & use in cache warmer

* perf(bootstrap): use subscription key to determine existing batch warmer

* refactor(bootstrap): move TTL calculation below cache hit to prevent excess logs

* fix(bootstrap): add extra guard cases to cache warmer subscription reducer

* fix(bootstrap): add guard for nullable childLastSeenById in subscriptionsReducer warmupSubscribed

* fix(bootstrap): add error logs to subscription reducer

* Update packages/core/bootstrap/src/lib/cache-warmer/reducer.ts

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* refactor(bootstrap): requested changes - removes debugging logs, adds comments to warmupLeaveGroup

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* fix: attempting to update yarn

* feat: created Builder and began implementing with AmberData

* feat: wIP

* feat: started replacing endpoitns w/ buildSelector

* refactor: migrated to buildSelector for more adapters

* refactor: added more adapters

* refactor: final buildSelector updates

* fix: small fixes

* fix: fixed failing unit tests

* potential fix to checksum

* fix: fixed yarn issue, updated twelvedata and coinapi

* fix: implemented feedback from PR

* fix: started fixing endpoint handling

* fix: fixed Paths and Endpoints issues, readied for re-review

* fix: fixed yarnlock

* Price endpoint refactor (#641)

* refactor: refactor

* refactor: refactor external adapters

* fix: attempting to update yarn

* fixed yarn cache and made RPC URL optional

* feat: wIP

* refactor: migrated to buildSelector for more adapters

* refactor: added more adapters

* potential fix to checksum

* fix: fixed yarn issue, updated twelvedata and coinapi

* refactor: refactoring price endpoint

* refactor: finished price refactor

* Update package.json

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>

* refactor: combine anyblock adapters & rename poa-gasprice to poa (#682)

* refactor: combine anyblock adapters & rename poa-gasprice to poa

* refactor(anyblock): use buildSelector in anyblock

* Implement cryptoapis-v2 adapter (#683)

* Implement cryptoapis-v2 adapter

* Update pnp js and yarn lock files

* Update crypto api v2 read me

Co-authored-by: Jonas Hals <contact@jonashals.me>

* [Fix] Cache key normalization #1 (#684)

* fix: revert input normalization within cache warmer

* feat(bootstrap): normalize input going into middlewares and the cache

* fix(coinmarketcap): use endpointSelector to normalize input

* test: fix test that needs endpointSelector parameter handled

* Cache normalization #2 (#685)

* feat(coinapi): add endpoint override & add normalization to coinapi input params

* feat: input normalization across other adapters that use the batch warmer

* fix(coinapi): cached batch data includes input parameters for both price and assets endpoints

* fix(bootstrap): re-order Redis retry function & increase connection timeout (#687)

* [Fix] endpoints (#686)

* refactor: bring input normalization to all adapters using buildSelector. Update example source

* feat(bootstrap): use object-path package for parsing result paths

* fix(bootstrap): warmer and WS use same normalized cache key

* chore(cache.gold): add cache.gold EA (#681)

* chore(cache.gold): add cache.gold EA

- add EA documentation
- add EA tests
- add data consumption from cache.gold endpoint

* fix(cache.gold): fix PR request problems

- Fix problem with CI, use new source
- Update package name
- Add missing newline in cache.gold/tsconfig file
- Remove code repeated in lockedGoldtest

Co-authored-by: Jonas Hals <contact@jonashals.me>

* fix token one-off overrides (#646)

* fix token one-off overrides

* fix: fixed override support for amberdata and kaiko; added tests

* fix: fixed unit tests for validator

* Implemented feedback from PR Review

Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: silaslenihan <32529249+silaslenihan@users.noreply.github.com>

* revert(bootstrap): revert Redis changes

* fix(coinapi): correct assets endpoint path

* Tiingo overrides (#690)

* Added overrides support for tiingo

* Added overrides support for tiingo

Co-authored-by: Silas Lenihan <sjl58@duke.edu>

* revert(bootstrap): re-do redis changes (#692)

* Removed requirement of API Key for deribit adapter (#694)

Co-authored-by: Silas Lenihan <sjl58@duke.edu>

* revert(bootstrap): revert connection_timeout

* revert(bootstrap): revert initial timeout

* revert(bootstrap): revert connection refused retry time

* fix(bootstrap): remove includes from input normalization

* Added support for stock endpoint in eodhistoricaldata

* fix(stasis): remove requirement of API key

* fix(bitex): make API key optional

* DXDao Adapter (#680)

* Implement DxDao adapter

* Calculate TVL using eth usd price feed

* Update ReadMe and add test payload json file

* Add tests for dx dao tvl adapter

* Tidy up tvl endpoint

* Fix test payload json file

* Fix integration tests for dxdao adapter

* Set proper dependency versions in dx dao adapter

* Update DxDao adapter ReadME and env json files

* Update ReadMe and remove shouldReturnInUSD variable

* Add integration test case for when request is missing price feed address

* Move reading json rpc url from required environment variable from config file to tvl endpoint

* Refactor tests for dxdao adapter

* Use number directly in BigNumber operations instead of creating new BigNumber instances

* Add missing newlines in dxdao adapter

* Move dxdao source adapter to composite adapter

* Use tokan allocations to get USD price of WETH

* Address PR comments

* Prevent reassigning tiingo data provider url in dxdao e2e test

* Use token allocation adapter to convert eth value to fiat currency value

* Set weth contract address as environment variable

* Update dxdao adapter test payload

* Update dxdao adapter schema and read me

* Update DxDao adapter tests

* Remove wethContractAddress from example dxdao adapter input

* Update packages/composites/dxdao/schemas/env.json

Co-authored-by: Jonas Hals <contact@jonashals.me>

* Update packages/composites/dxdao/README.md

Co-authored-by: Jonas Hals <contact@jonashals.me>

* Fix dxdao unit tests

* Update packages/composites/dxdao/schemas/env.json

Co-authored-by: Jonas Hals <contact@jonashals.me>

* Directly use tvlInWei as big number when calculating dxdao tvl

Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* feat: add Coinmetrics adapter (#701)

* feat: add Coinmetrics adapter

* feat(coinmetrics): add provider limits

* docs(coinmetrics): document WS needing unique connections per pair

* [Feat] NCFX External Adapter (#622)

* build(scripts): new script adds to .github strategy

* chore: add additional prettier rule for consistency

* feat(ncfx): add NCFX adapter with WS handler

* Bugfixes for NCFX adapter

* Notify user that nfcx adapter does not support http requests

* Address PR feedback

* Update NCFX ReadMe file

* Add NCFX unit tests

* Update schema for ncfx adapter

* Revert "build(scripts): new script adds to .github strategy"

This reverts commit bd269d73c8b77e7d9e601284ab7900dce6211328.

* Normalize request parameters for NCFX adapter

* Handle verbose output for ncfx adapter

* Delete adapters.json

* chore: regenerate yarn.lock

Co-authored-by: Christopher Dimitri Sastropranoto <c.sastropranoto@gmail.com>

* [Refactor]  Adapter Context (#703)

* refactor: add AdapterContext & refactor to more server-like core - only init middleware once

* feat(bootstrap): add Redis watchdog

* test(bootstrap): fix cache tests for added context

* fix(bootstrap): cache middleware allows failing connections through without caching

* refactor: add context to new adapters

* test(bootstrap): re-disable 1h cache test

* fix(tiingo): add missing endpointSelector

* refactor: add endpointSelector to remaining adapters using Builder

* feat(bootstrap): add configuration for retry amount

* fix(nomics): correction to typo in marketcap endpoint's result path

* Fixed error in Cryptocompare WS adapter (#707)

Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* created master list of all adapters (#705)

Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* feat(tiingo): put WS behind development flag (#714)

* fix(coinpaprika): correct marketcap result path

* [Feat] Burst Back-off (#713)

* fix: coingecko & Coinpaprika inner coin list calls no longer stifle errors

* fix(bootstrap): withCache no longer does a repeated execution on cache error

* feat(bootstrap): add new middleware: burst-limiter

* fix(bootstrap): squash bug with cache warmer not ignoring cache because of normalizing away maxAge

* chore(k6): add price pairs from RDD for soak testing

* [Feat] Rate limit defaults (#718)

* feat(bootstrap): rate Limit tiers default to the lowest tier

* feat: add NAME to adapterContext and use as a default in Rate Limit

* fix(bootstrap): fix rate-limit test with context changes

* fix(bootstrap): lowercase adapter name when using it to access Rate Limit tier

* test(bootstrap): modfify provider limit tests for unknown tier defaulting to lowest tier

* Layer 2 Sequencer Status Check adapter (#711)

* feat: draft first version

* feat: sequencer direct check

* feat: refactor and tests

* feat: endpoints available through env vars

* feat: blocks as numbers. Handle more exceptions

* feat: every method have to succeed to be healthy

* feat: delta lowered to 2 min by default

* fix: exposing adapter name

* Renaming

* refactor: response is feed expected answer instead of boolean (#719)

* check to see whether result quote or convert field matches target quote (#720)

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* feat: check Redis connection on health check

* refactor: added more detailed logs (#723)

* [Fix] batch warmer cached start (#724)

* fix(bootstrap): amend Coingecko per minute rate limit based on their updated docs

* fix(bootstrap): cache batchablePropertyPath. Fixes batch warmer not rebuilding correctly w/ a cache

* refactor(k6): add more test requests

* Bugfix for parent cache warmer batched requests (#726)

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* refactor(token-allocations): remove batching of source adapters to let them handle it themselves

* refactor(bootstrap): increase burst limit buffer

* test(synth-index): update fixtures for non-batched requests

* refactor(bootstrap): only use explicitly defined per minute rate limits for burst limiting

* refactor(bootstrap): throw 429 from burst limiter

* refactor(bootstrap): increase burst cap

* fix: blocks can fall behind delta blocks (#729)

* Cherrypicked Case Normalization changes

* V0.3.0 rc1 (#651)

* [Master] Release/v0.2.0 (#439)

* coinmarketcap ts refactor

* types & lint & package name

* CHANGELOG

* Requested changes: uses generic execute types, base url from config, splits tests

* add conflux adapter

* Remove adapter.js from merge

* Fix: increase test timeout, move marketcap unknown market to error calls, correct typo in baseURL

* getDefaultConfig takes new parameter for required API key

* Brings back dummy API_KEYs for tests

* Uses verbose env var to determine response data

* update changelog: add conflux adapter

* EA migration - batch #1 (#226)

* 1forge to TS

* Add Config type for recent change to generic types

* Utilize ExecuteWithConfig in 1forge

* Adds example README template & remove 'server' script

* Alphavantage adapter to TS

* Remove alphavantage-sdr folder

* Amberdata-gasprice to TS

* Anyblock-gasprice to TS

* Binance-DEX to TS

* Add note to binance-dex's differing use of API_ENDPOINT env var

* Brave New Coin to TS

* Bring Brave New Coin VWAP into Brave New Coin EA

* Coinapi to TS

* Coinbase to TS

* Coingecko to TS

* Move BNC helpers into BNC adapter

* Increase alphavantage test timeout

* Moves alphavantage APIkey param into endpoint - issue open for improvement

* Clean up leftover bravenewcoin-vwap traces

* Remove 1forge's conflicting and not useful endpoint param

* Requested changes: 1forge balance -> price, alphavantage example output

* Re-add server script & spread response data into endpoint responses

* Uses verbose env var to determine response data

* Gets API_KEY from makeConfig

* Add test dummy API_KEY

* Re-add server script to example

* batch adapter TS refactor (#234)

* batch adapter TS refactor

* satisfy linter

* Uses config in generics, removes non-TS server script

* EA endpoints return their own response & use ExecuteWithConfig type

* Capitalize name property

* Use Config for baseURL and API_KEYS, re-add server script, use verbose env var for data response

Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* README improvements, fix typo with PRICE_ADAPTER

* networkId type fix

* feed tx gas info

* Read dxFeed config correctly with prefix

* Include config change in secondary adapter

* Use "Quote" for WTI

* Fix case-sensitive endpoint params

* batch requests on coingecko

* DPI readme updated

* removed console

* Update Synthetix for new sDEFI pairs

* docs: additiona to 1forge, amberdata-gasprice, anyblock-gasprice, & binance-dex

* Add API_KEY docs & docs from QA for coinapi, coinbase, cmc, coinpaprika, cryptocompare, currencylayer, and poa-gasprice

* Finish TS migrated adapter QA

* Add dummy API keys for tests

* Use Jonas' fix to non-lowercase endpoint param

* Add dummy API key to openexchangerates test

* Add dummy API key to polygon test

* Requested changes: consistent endpoint title capitalization, tweak API_KEY description, add sample input to example EA

* Fix: balance test helper path

* Remove WrappedResponse

* Merge develop

* CHANGELOG

* Requested Change: remove from CHANGELOG

* Change: Only one Middleware type

* Change: revert change to withCache to remove options param

* Remove util.wrapExecute from all EAs

* Revert result being optional

* Makes Middleware a generic type to allow withCache options & fix test with result in mock data response

* wrap response

* returning result on callback

* removed unused imports

* Update KCS slug on CMC synth-index

* Update KCS slug on CMC

* synthx as composite using TA

* removed old synth adapter and its build steps

* base as default input param

* TA default quote as env var

* TA accepts method as param

* validation on TA

* avoid floating numbers on TA

* removed TA reference from Readme

* readme updated

* negative balance checked easier

* prefix preference on TA make config

* updated adapter name

* added cmc slugs

* updated synthx version

* fix synthx version

* tiingo adapter with tests

* misc tiingo fixes

* updated changelog

* updates

* fix import name error

* Remove synthetix dependency from global package

* Update synthetix package

* Prevent scientific notation of balances

* removed google finance

* filter out auth from logging

* Publish Docker images to SDLC Public ECR instead of Prod Public ECR

* remove old js code

* add ts conflux adaptor code

* remove lock file

* comment example test

* added preset ticker on coinpaprika and coingecko

* update config helper

* Include the "result" key on cached responses

* Include jobRunID in cached response

* added ethwrite JS project and its dependencies

* converted to TS

* working with the new structure

* added hardhat and relevant test setup

* default config + naming convention fix

* changed README, added defaults and test

* review changes; need to check tests

* asserting true values written to contract in test

* small change in config

* made dataType optional, altered tests, added helper file

* removed helper files

* installed fresh dependencies

* README changes and required env vars

* moved private key to hardhat helpers

* yarn install

* json for hardhat exported var

* cleaned comments

* update new ea-bootstrap

* fix lint error

* add unit test

* fix lint

* update tests

* Publish adapters to prod when merging to develop

* basic setup

* geoDB adapter

* updated changelog

* Removed other parts of config that include sensitive values. Removed api key warning

* Add "agoric" adapter (#114)

* feat: add Agoric adapter

* fix: use agoric_oracle_query_id

* fix: make more explicit

* test: remove agoric/test

* fix: another attempt to plumb through the 'Task Run Data'

* fix: use the promise-based API

* fix: make request_id numeric

* fix: cast payment from number to string

* fix: properly export the Agoric async adapter and string queryId

* refactor: separate concerns and add tests

* fix: more robust adapter; send errors to the oracleServer

* feat!: surface errors from the oracle backend

* fix: match with actual POST reply from the ag-solo

* fix: use AdapterErrors to surface errors to the node operator

* test: add integration test

* fix: use Requester instead of axios

* chore: rename package to @chainlink/agoric

* ci: add "agoric" to adapters.json

* refactor: clarify implementation according to review comments

* refactor: use the adapter-test-helpers

* ci: fix the Agoric build process

* fix: address review comments

* refactor: standardize code based on example adapter

* fix: import makeConfig

* fix: correct the default agoric adapter parameters

* chore: remove dependency on bn.js

* Kaiko special case for DIGG/BTC (#336)

* Kaiko special case for DIGG/BTC

* Increase timespan for Kaiko requests

* Add changelog item

* updated geodb url

* Update node version in GCP readme

* Add Amberdata case for DIGG/BTC (#345)

* TheRundown adapter

* updated changelog

* updated therundown readme

* TS EAs #4 batch 0 of 3 (#332)

* Add couple more best practices into example adapter

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* Rename path param --> field

* Move TE stream adapter to monorepo (#346)

* Move TE stream adapter to monorepo

* Add changelog entry

* Make config optional

* Add tests

* Added LINA preset in coingecko

* CMC should prefer IDs over slugs (#343)

* CMC should prefer IDs over slugs

* Add changelog entry

* Add conversion from AMP to AMP2 for Nomics adapter

* parsing c(close price) according to v3

* Add tradermade support to outlier-detection (#357)

* Add tradermade support to outlier-detection

* Fix outdated tests

* Add changelog entry

* Improve Redis connection cleanup

* AlphaChain adapter to TS

* Add postinstall script

* More best practices in the example EA

* Bitex adapter to TS

* Bitso adapter to TS

* Clean up bravenewcoin-vwap fragment

* Coinlore adapter to TS

* Remove postinstall script until entire build process can be refactored

* TrueUSD adapter to TS

* Reverts change to TrueUSD param name

* COVID-tracker adapter to TS

* Cryptomkt adapter to TS

* Remove google-finance adapter fragment

* Lition adapter to TS

* Add public ecr registry to docker login

* Skip coinlore integration tests

* Add baseurl option (#367)

* Explicitly specify aws region (#370)

* Updated Asset Allocation Interface (#358)

* asset allocation updated

* updated version

* decimals to number

* Fix support for WING on Nomics (#371)

* Add basic prom metrics (#365)

* Messari adapter to TS

* Orchid Bandwidth adapter to TS

* SatoshiTange adapter to TS

* TradingEconomics adapter to TS

* Extra to TradingEconomics README

* Fix to tradingeconomics .eslintrc.js

* Fix: remove no longer relevant test

* Cryptoapis tests and README (#248)

* Update README about metadata (#379)

* Add new ticker conversions

* Overrides Input parameter (#384)

* override format validator. coingecko impl

* price adapter use overrides

* overrides validator test

* override inside validator

* refactor

* more adapters added

* more adapters added

* readmes updated

* lint fix

* preset symbols used

re

* tests updated

* merge with lodash

* fix merge

* Bump elliptic from 3.0.3 to 6.5.4 (#391)

Bumps [elliptic](https://github.com/indutny/elliptic) from 3.0.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v3.0.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove GOOGL override for dxfeed-secondary (#392)

* fix-format-readme-link (#393)

* Set correct response type on metrics

* Add FB support for dxfeed and dxfeed-secondary (#420)

* bitcoin endpoints (#417)

* bitcoin endpoints

* Fix blockstream and blockchain.com adapters

* Fix height result output

* Fix blockstream README

* Update blockstream/package.json

* Update blockstream/README.md

* Condense endpoints to blocks & use field param

* Blockstream doesn't require an API KEY

* Update Blockstream README

* Add blockstream to github workflow

Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: Justin Kaseman <justinkaseman@live.com>

* Update Genesis Volatility README (#422)

* add support for RAI to kaiko, nomics (#425)

* add rai, weth (#424)

* add rai, weth

Added handling of RAI/WETH pair using contract addresses

* Fix formatting

Co-authored-by: Jonas Hals <jonas@smartcontract.com>

* update API key url (#428)

* additional fixes for RAI support on kaiko adapter (#431)

* added includes:['weth'] support to kaiko adapter

* Apply suggestions from code review

Co-authored-by: Jonas Hals <contact@jonashals.me>

* v0.0.4

* Preparing v0.2.0 release: version patch bumps

* Tag changelog

* Bump dependency versions

* Additional CHANGELOG items

Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>

* Adding Intrinio, Twelvedata, Unibit to master (before EAEE changes, after v0.2.0) (#446)

* fix: token-allocation uses getRandomRequiredEnv for multiple keys

* Add RGT and RARI support to Amberdata EA (#443)

* Add RGT and RARI support to Amberdata EA

* add cases to handle RGT and RARI

* formatting changes

* formatting again

* Adapters for Intrinio, Unibit, Twelvedata (#442)

* unibit adapter

* intrinio adapter - untested

* intrinio: tested + update documentation - only iex needed, others untested

* twelvedata rest api adapter

Co-authored-by: Justin Kaseman <justinkaseman@live.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>

* add support for SFI (#447)

* Chore/intrinio tiingo mods (#448)

* mods to intrinio for returning last price, and additional parameter support

* fix(tiingo): endpoint will use default for unknown, added additional params for ticker

* fix: incorrect param naming

* Kaiko RARI & RGT inverse kludge (#452)

* Tiingo IEX endpoint (#458)

* (feat): add iex endpoint (price) to tiingo source EA

* Change endpoint name to stock

* Change default to IEX intraday behavior

* Add kludge for getting dYdX price outside of input 'data' object (#491)

* Adding LDO support (#497)

* Add fake RAI2 symbol to override to Rai Reflex Index (#512)

* feat: add crypto endpoint to tiingo adapter (#510)

* feat: Add block endpoint for BTC.com that supports height and difficulty

* Add Tiingo crypto/prices endpoint and use for CL crypto unified endpoint (#515)

* Composite fixes for DPI/synth-index (#523)

* Force Coingecko to use old KNC ticker

* Make CoinPaprika fetch CREAM directly

* Add Nomics override for new KNC ID

* fix linting

* Add VSP support (#534)

* Add FRAX+BOND support (#546)

* Add FRAX support

* Additional support for BOND

* Update price.ts

* Add TRIBE + FEI support

* add inverse for TRIBE

* Support Pro API keys on Coingecko (#602)

* upgraded version for v1 (#599)

* Update build command (#615)

* Coingecko support API keys on token-allocation (#618)

* Add Linear finance adapter (#620)

* Vesper adapter for v1 (#624)

* Add Tiingo Token-Allocation (#632)

* refactor: remove merge fragments

* chore: bump package versions for v0.3.0-rc1 release

* docs: prep v0.3.0-rc.1 changelog

* refactor: fix merge

* chore: migrate yarn v3 & rebuild deps

* chore: remove merge fragment

* chore: use latest yarn version in checksum ci action"

* chore: update checksums before checking checksums

* chore: remove dependency check

Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: RodrigoAD <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Thomas Hodges <thomas@smartcontract.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>
Co-authored-by: vladi-coti <75608967+vladi-coti@users.noreply.github.com>

* D/v0.3.0 rc.1 (#732)

Bringing branches in sync

Co-authored-by: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com>
Co-authored-by: Rodrigo Ariza <15104916+RodrigoAD@users.noreply.github.com>
Co-authored-by: Kristijan Rebernisak <kristijan.rebernisak@gmail.com>
Co-authored-by: aalu1418 <aalu1418@gmail.com>
Co-authored-by: Jonas Hals <contact@jonashals.me>
Co-authored-by: aalu1418 <50029043+aalu1418@users.noreply.github.com>
Co-authored-by: robert <robert.davidson@forecastfoundation.org>
Co-authored-by: W <pana.wang@outlook.com>
Co-authored-by: PanaW <wangpan@conflux-chain.org>
Co-authored-by: Brendon Van Essen <42727620+nzleet@users.noreply.github.com>
Co-authored-by: vladi-coti <75608967+vladi-coti@users.noreply.github.com>
Co-authored-by: silaslenihan <32529249+silaslenihan@users.noreply.github.com>
Co-authored-by: Silas Lenihan <sjl58@duke.edu>
Co-authored-by: Thomas <thomas@smartcontract.com>
Co-authored-by: Christopher Dimitri Sastropranoto <c.sastropranoto@gmail.com>
Co-authored-by: AndrN <andre.neyra@gmail.com>
Co-authored-by: Jonas Hals <jonas@smartcontract.com>
Co-authored-by: ryan <ryanemmick4@gmail.com>
Co-authored-by: christianagnew <christian.agnew@outlook.com>
Co-authored-by: Evangelos Barakos <e.mparakos@gmail.com>
Co-authored-by: Edward Medvedev <edward.medvedev@gmail.com>
Co-authored-by: Michael FIG <michael+github@fig.org>
Co-authored-by: Peter van Mourik <tyrion70@users.noreply.github.com>
Co-authored-by: Evangelos Barakos <evangelos@smartcontract.com>
Co-authored-by: Connor Stein <connor.stein@mail.mcgill.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants