Hey there!
This project is wip.
It provides one DYDXConnector class, handling the communication with the dydx API and providing some convenience in usage
Not all functionality is included yet!
Later the goal will be, to implement different trading strategies for everyone to use.
This will take place in the following project: https://github.com/patpatwithhat/algo_trading_strategies
npm init -y
npm i dydx_nodejs_connector
npm install ts-node //needed for running
Provide all required keys / paths in a .env file. (check .env-template for format)
Eighter add your private eth key or enter your starkkeys for dydx.
npm run build
To retrieve starkkey/api key of dydx, do the following:
- Connect your metamask with dydx (https://trade.stage.dydx.exchange/). Turn on the checkbox "remember me"
- Inspect the webpage with F12
- Go to app>local storage>https://trade.stage.dydx.exchange/
- Find stark key and api keys to copy all into the .env
In addition, you need an Ethereum node like https://moralis.io/, which needs to be entered into the .env
The last step is to copy the ETH Address of your metamask wallet into the .env
import { DYDXConnector, NetworkID } from 'dydx_nodejs_connector'
async function main() {
const connector = await DYDXConnector.build(NetworkID.RopstenTestNet)
console.log(await connector.getAccount())
}
main()
run with:
node --loader ts-node/esm usage-example.ts
import { DYDXConnector, NetworkID } from 'dydx_nodejs_connector'
import { OrderSide, OrderType, TimeInForce, Market } from "@dydxprotocol/v3-client"
async function main() {
const connector = await DYDXConnector.build(NetworkID.RopstenTestNet)
connector.createOrder(
OrderSide.BUY,
OrderType.MARKET,
TimeInForce.IOC,
undefined,
"0.2",
"10000",
undefined,
undefined,
Market.ETH_USD
)
}
main()
Check your order here: https://trade.stage.dydx.exchange
The potential security vulnerabilities in the dependencies are known but remain on dydx side.
Fixing this could lead to new problems in the dydx API.
DYDX https://trade.stage.dydx.exchange/
DYDX Docu: https://docs.dydx.exchange/