Merge branch 'master' into mainnet-beta

This commit is contained in:
wphan
2023-06-15 12:33:35 -07:00
8 changed files with 1077 additions and 734 deletions

View File

@@ -1,4 +1,3 @@
ANCHOR_PRIVATE_KEY=246,79,83,235,227,63,148,45,236,118,164,3,0,99,197,152,7,161,4,247,132,15,56,14,71,41,175,39,108,68,32,37,233,229,35,89,133,166,36,228,162,196,142,255,237,118,168,210,61,163,132,32,11,89,22,89,116,119,126,116,203,65,29,77
ENDPOINT=https://api.devnet.solana.com ENDPOINT=https://api.devnet.solana.com
ENV=devnet ENV=devnet
PORT=6969 PORT=6969

8
.prettierrc.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
semi: true,
trailingComma: 'es5',
singleQuote: true,
printWidth: 80,
tabWidth: 2,
useTabs: true,
};

16
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Debug",
"port": 2230,
"timeout": 3000,
"restart": true
}
]
}

View File

@@ -1,52 +1,53 @@
{ {
"name": "@drift-labs/dlob-server", "name": "@drift-labs/dlob-server",
"version": "0.1.0", "version": "0.1.0",
"author": "wphan", "author": "wphan",
"main": "lib/index.js", "main": "lib/index.js",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@drift-labs/sdk": "2.31.0-beta.1", "@drift-labs/sdk": "2.31.0-beta.7",
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.1.0",
"@opentelemetry/auto-instrumentations-node": "^0.31.1", "@opentelemetry/auto-instrumentations-node": "^0.31.1",
"@opentelemetry/exporter-prometheus": "^0.31.0", "@opentelemetry/exporter-prometheus": "^0.31.0",
"@opentelemetry/sdk-node": "^0.31.0", "@opentelemetry/sdk-node": "^0.31.0",
"@project-serum/anchor": "^0.19.1-beta.1", "@project-serum/anchor": "^0.19.1-beta.1",
"@project-serum/serum": "^0.13.65", "@project-serum/serum": "^0.13.65",
"@solana/web3.js": "^1.22.0", "@solana/web3.js": "^1.22.0",
"async-mutex": "^0.4.0", "async-mutex": "^0.4.0",
"commander": "^9.4.0", "commander": "^9.4.0",
"compression": "^1.7.4", "compression": "^1.7.4",
"cors": "^2.8.5", "cors": "^2.8.5",
"dotenv": "^10.0.0", "dotenv": "^10.0.0",
"express": "^4.18.2", "express": "^4.18.2",
"express-rate-limit": "^6.7.0", "express-rate-limit": "^6.7.0",
"morgan": "^1.10.0", "morgan": "^1.10.0",
"response-time": "^2.3.2", "response-time": "^2.3.2",
"typescript": "4.5.4", "typescript": "4.5.4",
"winston": "^3.8.1" "winston": "^3.8.1"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/eslint-plugin": "^4.28.0", "@typescript-eslint/eslint-plugin": "^4.28.0",
"@typescript-eslint/parser": "^4.28.0", "@typescript-eslint/parser": "^4.28.0",
"eslint": "^7.29.0", "eslint": "^7.29.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.0", "eslint-plugin-prettier": "^3.4.0",
"husky": "^7.0.4", "husky": "^7.0.4",
"prettier": "^2.4.1", "prettier": "^2.4.1",
"ts-node": "^10.9.1" "ts-node": "^10.9.1"
}, },
"scripts": { "scripts": {
"prepare": "husky install", "prepare": "husky install",
"build": "yarn clean && tsc", "build": "yarn clean && tsc",
"clean": "rm -rf lib", "clean": "rm -rf lib",
"start": "node lib/index.js", "start": "node lib/index.js",
"dev": "ts-node src/index.ts", "dev": "ts-node src/index.ts",
"dev:inspect": "yarn build && node --inspect ./lib/index.js", "dev:inspect": "yarn build && node --inspect ./lib/index.js",
"example": "ts-node example/client.ts", "dev:debug": "yarn build && node --inspect-brk --inspect=2230 ./lib/index.js",
"exampleWithSlot": "ts-node example/clientWithSlot.ts", "example": "ts-node example/client.ts",
"prettify": "prettier --check './src/**/*.ts'", "exampleWithSlot": "ts-node example/clientWithSlot.ts",
"prettify:fix": "prettier --write './src/**/*.ts'", "prettify": "prettier --check './src/**/*.ts'",
"lint": "eslint . --ext ts --quiet", "prettify:fix": "prettier --write './src/**/*.ts'",
"lint:fix": "eslint . --ext ts --fix" "lint": "eslint . --ext ts --quiet",
} "lint:fix": "eslint . --ext ts --fix"
}
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,16 @@
import { createLogger, transports, format } from "winston"; import { createLogger, transports, format } from 'winston';
export const logger = createLogger({ export const logger = createLogger({
transports: [new transports.Console()], transports: [new transports.Console()],
format: format.combine( format: format.combine(
format.colorize(), format.colorize(),
format.timestamp(), format.timestamp(),
format.printf(({ timestamp, level, message }) => { format.printf(({ timestamp, level, message }) => {
return `[${timestamp}] ${level}: ${message}`; return `[${timestamp}] ${level}: ${message}`;
}) })
), ),
}); });
export const setLogLevel = (logLevel: string) => { export const setLogLevel = (logLevel: string) => {
logger.level = logLevel; logger.level = logLevel;
}; };

View File

@@ -1,36 +0,0 @@
import fs from "fs";
import { Keypair } from "@solana/web3.js";
import { bs58 } from "@project-serum/anchor/dist/cjs/utils/bytes";
import { Wallet } from "@drift-labs/sdk";
import { logger } from "./logger";
export function getWallet(): Wallet {
const privateKey = process.env.ANCHOR_PRIVATE_KEY;
if (!privateKey) {
throw new Error(
"Must set environment variable ANCHOR_PRIVATE_KEY with the path to a id.json or a list of commma separated numbers"
);
}
// try to load privateKey as a filepath
let loadedKey: Uint8Array;
if (fs.existsSync(privateKey)) {
logger.info(`loading private key from ${privateKey}`);
loadedKey = new Uint8Array(
JSON.parse(fs.readFileSync(privateKey).toString())
);
} else {
if (privateKey.includes(",")) {
logger.info(`Trying to load private key as comma separated numbers`);
loadedKey = Uint8Array.from(
privateKey.split(",").map((val) => Number(val))
);
} else {
logger.info(`Trying to load private key as base58 string`);
loadedKey = new Uint8Array(bs58.decode(privateKey));
}
}
const keypair = Keypair.fromSecretKey(Uint8Array.from(loadedKey));
return new Wallet(keypair);
}

View File

@@ -80,10 +80,10 @@
enabled "2.0.x" enabled "2.0.x"
kuler "^2.0.0" kuler "^2.0.0"
"@drift-labs/sdk@2.31.0-beta.1": "@drift-labs/sdk@2.31.0-beta.7":
version "2.31.0-beta.1" version "2.31.0-beta.7"
resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.31.0-beta.1.tgz#60e14806430fdcd427e9949ab511ab659c8a83fc" resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.31.0-beta.7.tgz#d7337d80d7ed9bd8a660cfd5280d660987e42f37"
integrity sha512-GQENFRU+qNIeFlC0k/JaaluTtgAQ4t6a9EHWfa4sIC6T+2KhBu2e6zZ0QiCSDYFm5cJleqE9z3EHEW3T2o5Exg== integrity sha512-+SpE4gv8BXvr/y/Gdjk7VS96Qg7u8SCMM8cB+WyI8KrJJsz569ORSEUu4FE2PVcu5HeypzUosiphLfDmZuXDIA==
dependencies: dependencies:
"@coral-xyz/anchor" "0.26.0" "@coral-xyz/anchor" "0.26.0"
"@ellipsis-labs/phoenix-sdk" "^1.4.2" "@ellipsis-labs/phoenix-sdk" "^1.4.2"