Skip to content

Commit

Permalink
[Master] Release/v0.2.0 (#439)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
20 people committed Apr 13, 2021
1 parent e5c8646 commit 418af1b
Show file tree
Hide file tree
Showing 763 changed files with 15,209 additions and 7,218 deletions.
33 changes: 11 additions & 22 deletions .github/strategy/adapters.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"image_name": "__ADAPTER__-adapter",
"adapter": [
"1forge",
"agoric",
"alphachain",
"alphavantage",
"amberdata",
Expand All @@ -19,9 +20,9 @@
"blockchain.com",
"blockchair",
"blockcypher",
"blockstream",
"bootstrap",
"bravenewcoin",
"bravenewcoin-vwap",
"coinapi",
"coinbase",
"coincodex",
Expand Down Expand Up @@ -51,7 +52,6 @@
"fixer",
"fmpcloud",
"genesis-volatility",
"google-finance",
"json-rpc",
"kaiko",
"lcx",
Expand Down Expand Up @@ -82,7 +82,13 @@
"dydx-stark",
"iex-cloud",
"cfbenchmarks",
"harmony"
"conflux",
"harmony",
"tiingo",
"ethwrite",
"geodb",
"therundown",
"tradingeconomics-stream"
]
},
"2-step": {
Expand Down Expand Up @@ -116,25 +122,8 @@
"apy-finance",
"crypto-volatility-index",
"bitcoin-json-rpc",
"token-allocation"
]
},
"synth-index": {
"docker": "make docker-synth-index adapter=__ADAPTER__",
"cmd": "make zip-synth-index adapter=__ADAPTER__",
"asset_path": "./synth-index/__ADAPTER__/dist/synth-index-__ADAPTER__-adapter.zip",
"asset_name": "synth-index-__ADAPTER__-adapter.zip",
"image_name": "synth-index-__ADAPTER__-adapter",
"adapter": [
"amberdata",
"bravenewcoin",
"coinapi",
"coingecko",
"coinmarketcap",
"coinpaprika",
"cryptocompare",
"kaiko",
"nomics"
"token-allocation",
"synth-index"
]
}
}
20 changes: 12 additions & 8 deletions .github/workflows/release-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,21 +52,25 @@ jobs:
run: ${{ matrix.adapter.cmd }}
- name: Build Docker containers
run: ${{ matrix.adapter.docker }} repo="public.ecr.aws/${{ env.publicecr-name }}/adapters/"
- name: Configure AWS Credentials
- name: Configure AWS prod Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Upload to prod S3
run: aws s3 cp ${{ matrix.adapter.asset_path }} s3://adaptor-source-cl/${{ matrix.adapter.asset_name }}
- name: Configure staging AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_STAGING }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY_STAGING }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Upload to S3
- name: Upload to staging S3
run: aws s3 cp ${{ matrix.adapter.asset_path }} s3://adaptor-source-cl-staging/${{ matrix.adapter.asset_name }}
- name: Authenticate to public ECR
run: aws ecr-public get-login-password | docker login --username AWS --password-stdin public.ecr.aws
env:
AWS_DEFAULT_REGION: us-east-1 # https://docs.aws.amazon.com/AmazonECR/latest/public/public-registries.html#public-registry-auth
run: aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/${{ env.publicecr-name }}
- name: Create a public ECR repository if does not exist
run: aws ecr-public create-repository --repository-name adapters/${{ matrix.adapter.image_name }} || true
env:
AWS_DEFAULT_REGION: us-east-1
run: aws ecr-public create-repository --region us-east-1 --repository-name adapters/${{ matrix.adapter.image_name }} || true
- name: Push to public ECR
run: docker push public.ecr.aws/${{ env.publicecr-name }}/adapters/${{ matrix.adapter.image_name }}
20 changes: 12 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ name: Release

env:
cache-name: release-ci
publicecr-name: chainlink
publicecr-name: z0b1w9r9

jobs:
release:
Expand Down Expand Up @@ -90,21 +90,25 @@ jobs:
asset_path: ${{ matrix.adapter.asset_path }}
asset_name: ${{ needs.release.outputs.asset_prefix }}-${{ matrix.adapter.asset_name }}
asset_content_type: application/zip
- name: Configure AWS Credentials
- name: Configure AWS Credentials for Prod S3
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Upload to S3
run: aws s3 cp ${{ matrix.adapter.asset_path }} s3://adaptor-source-cl/${{ matrix.adapter.asset_name }}
- name: Configure AWS Credentials for SDLC Public ECR
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_PUBLICECR_ACCESSKEY }}
aws-secret-access-key: ${{ secrets.AWS_PUBLICECR_SECRETKEY }}
aws-region: ${{ secrets.AWS_REGION }}
role-to-assume: ${{ secrets.AWS_PUBLICECR_ROLE_ARN }}
role-duration-seconds: 1200
- name: Authenticate to public ECR
run: aws ecr-public get-login-password | docker login --username AWS --password-stdin public.ecr.aws
env:
AWS_DEFAULT_REGION: us-east-1 # https://docs.aws.amazon.com/AmazonECR/latest/public/public-registries.html#public-registry-auth
run: aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/${{ env.publicecr-name }}
- name: Create a public ECR repository if does not exist
run: aws ecr-public create-repository --repository-name adapters/${{ matrix.adapter.image_name }} || true
env:
AWS_DEFAULT_REGION: us-east-1
run: aws ecr-public create-repository --region us-east-1 --repository-name adapters/${{ matrix.adapter.image_name }} || true
- name: Push to public ECR
run: docker push public.ecr.aws/${{ env.publicecr-name }}/adapters/${{ matrix.adapter.image_name }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules/
*.zip
dist
.DS_Store
cache
4 changes: 3 additions & 1 deletion 1forge/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
module.exports = require('../.eslintrc.js')
module.exports = {
...require('../.eslintrc.ts.js'),
}
54 changes: 39 additions & 15 deletions 1forge/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,47 @@
# Chainlink 1Forge External Adapter
# Chainlink External Adapter for 1forge

## Input Params
### Environment Variables

- `base` or `to`: The target currency to query (required)
- `quote` or `from`: The currency to convert to (required)
- `endpoint`: The endpoint to call (optional)
| Required? | Name | Description | Options | Defaults to |
| :-------: | :-----: | :-------------------------------------------------------: | :-----: | :---------: |
|| API_KEY | An API key that can be obtained from the 1forge dashboard | | |

## Output
---

### Input Parameters

| Required? | Name | Description | Options | Defaults to |
| :-------: | :------: | :-----------------: | :----------------------: | :---------: |
| | endpoint | The endpoint to use | [price](#Price-Endpoint) | price |

---

## Price Endpoint

[`/convert`](https://1forge.com/api#convert) - Convert from one currency to another

### Input Params

| Required? | Name | Description | Options | Defaults to |
| :-------: | :------------: | :-------------------------------------------: | :--------------------------------------: | :---------: |
|| `base`, `from` | The symbol of the currency to query | [List](https://1forge.com/currency-list) | |
|| `quote`, `to` | The symbol of the currency to convert to | [List](https://1forge.com/currency-list) | |
| 🟡 | `quantity` | An additional amount of the original currency | | |
| 🟡 | `overrides` | If base provided is found in overrides, that will be used | [Format](../external-adapter/src/overrides/presetSymbols.json)| |


### Output

```json
{
"jobRunID": "1",
"data": {
"value": 1.22687,
"text": "1.0 GBP is worth 1.22687 USD",
"timestamp": 1587489920,
"result": 1.22687
},
"result": 1.22687,
"statusCode": 200
"jobRunID": "1",
"data": {
"value": 1.22687,
"text": "1.0 GBP is worth 1.22687 USD",
"timestamp": 1587489920,
"result": 1.22687
},
"result": 1.22687,
"statusCode": 200
}
```
43 changes: 0 additions & 43 deletions 1forge/adapter.js

This file was deleted.

4 changes: 0 additions & 4 deletions 1forge/index.js

This file was deleted.

31 changes: 25 additions & 6 deletions 1forge/package.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,34 @@
{
"name": "@chainlink/1forge-adapter",
"version": "0.0.3",
"version": "0.0.4",
"license": "MIT",
"main": "index.js",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"server": "node -e 'require(\"./index.js\").server()'",
"prepublishOnly": "yarn build && yarn test:unit",
"setup": "yarn build",
"build": "tsc -b",
"lint": "eslint --ignore-path ../.eslintignore . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "eslint --ignore-path ../.eslintignore . --ext .js,.jsx,.ts,.tsx --fix",
"test": "yarn _mocha --timeout 0",
"test:unit": "yarn _mocha --grep @integration --invert --timeout 0",
"test:integration": "yarn _mocha --grep @integration --timeout 0"
"test": "mocha --exit --timeout 15000 -r ts-node/register 'test/**/*.test.ts'",
"test:unit": "mocha --exit --grep @integration --invert -r ts-node/register 'test/**/*.test.ts'",
"test:integration": "mocha --exit --timeout 15000 --grep @integration -r ts-node/register 'test/**/*.test.ts'",
"server": "node -e 'require(\"./index.js\").server()'",
"server:dist": "node -e 'require(\"./dist/index.js\").server()'",
"start": "yarn server:dist"
},
"devDependencies": {
"@types/chai": "^4.2.11",
"@types/express": "^4.17.6",
"@types/mocha": "^7.0.2",
"@types/node": "^14.0.13",
"@typescript-eslint/eslint-plugin": "^3.9.0",
"@typescript-eslint/parser": "^3.9.0",
"ts-node": "^8.10.2",
"typescript": "^3.9.7"
},
"dependencies": {}
}
35 changes: 35 additions & 0 deletions 1forge/src/adapter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { Requester, Validator, AdapterError } from '@chainlink/external-adapter'
import { Config, ExecuteWithConfig, ExecuteFactory } from '@chainlink/types'
import { makeConfig, DEFAULT_ENDPOINT } from './config'
import { price } from './endpoint'

const inputParams = {
endpoint: false,
}

export const execute: ExecuteWithConfig<Config> = async (request, config) => {
const validator = new Validator(request, inputParams)
if (validator.error) throw validator.error

Requester.logConfig(config)

const jobRunID = validator.validated.id
const endpoint = validator.validated.data.endpoint || DEFAULT_ENDPOINT

switch (endpoint) {
case price.NAME: {
return await price.execute(request, config)
}
default: {
throw new AdapterError({
jobRunID,
message: `Endpoint ${endpoint} not supported.`,
statusCode: 400,
})
}
}
}

export const makeExecute: ExecuteFactory<Config> = (config) => {
return async (request) => execute(request, config || makeConfig())
}
19 changes: 19 additions & 0 deletions 1forge/src/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Requester } from '@chainlink/external-adapter'
import { Config } from '@chainlink/types'

export const NAME = '1FORGE'

export const DEFAULT_ENDPOINT = 'price'
export const DEFAULT_API_ENDPOINT = 'https://api.1forge.com/'

export const makeConfig = (prefix?: string): Config => {
const config = Requester.getDefaultConfig(prefix, true)
config.api = {
...config.api,
baseURL: config.api.baseUrl || DEFAULT_API_ENDPOINT,
params: {
api_key: config.apiKey,
},
}
return config
}
1 change: 1 addition & 0 deletions 1forge/src/endpoint/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * as price from './price'
Loading

0 comments on commit 418af1b

Please sign in to comment.