diff --git a/Dockerfile b/Dockerfile index cefd9dd..c92076b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,25 @@ FROM public.ecr.aws/docker/library/node:20 AS builder +RUN npm install -g typescript@5.4.5 -RUN npm install -g typescript bun WORKDIR /app COPY . . -RUN bun install -WORKDIR /app/drift-common/protocol/sdk -RUN yarn build -WORKDIR /app/drift-common/common-ts -RUN yarn build -WORKDIR /app -RUN bun esbuild.config.js -FROM public.ecr.aws/docker/library/node:20-alpine +WORKDIR /app/drift-common/protocol/sdk +RUN yarn && yarn build + +WORKDIR /app/drift-common/common-ts +RUN yarn && yarn build + +WORKDIR /app +RUN yarn && yarn build + +FROM public.ecr.aws/docker/library/node:20.18.1-alpine +RUN apk add python3 make g++ --virtual .build &&\ + npm install -C /lib bigint-buffer @triton-one/yellowstone-grpc@1.3.0 &&\ + apk del .build + COPY --from=builder /app/lib/ ./lib/ -RUN apk add --virtual .build python3 g++ make &&\ - npm install -C lib bigint-buffer @triton-one/yellowstone-grpc@1.3.0 &&\ - apk del .build &&\ - rm -rf /root/.cache/ /root/.npm /usr/local/lib/node_modules ENV NODE_ENV=production EXPOSE 9464 diff --git a/package.json b/package.json index bb7d68e..d552b89 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ }, "scripts": { "prepare": "husky install", - "build": "yarn clean && tsc", + "build": "node esbuild.config.js", "clean": "rm -rf lib", "start": "node lib/index.js", "dev": "ts-node src/index.ts", @@ -74,9 +74,5 @@ "lint": "eslint . --ext ts --quiet", "lint:fix": "eslint . --ext ts --fix", "playground": "ts-node src/playground.ts" - }, - "workspaces": [ - "drift-common/protocol/sdk", - "drift-common/common-ts" - ] + } } diff --git a/yarn.lock b/yarn.lock index 8de0cfb..f4353ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -371,7 +371,28 @@ resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.30.1.tgz#bdfd3a353131345244546876eb4afc0e125bec30" integrity sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ== -"@coral-xyz/anchor@0.29.0", "@coral-xyz/anchor@^0.29.0": +"@coral-xyz/anchor@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.28.0.tgz#8345c3c9186a91f095f704d7b90cd256f7e8b2dc" + integrity sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw== + dependencies: + "@coral-xyz/borsh" "^0.28.0" + "@solana/web3.js" "^1.68.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/anchor@^0.29.0": version "0.29.0" resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.29.0.tgz#bd0be95bedfb30a381c3e676e5926124c310ff12" integrity sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA== @@ -391,6 +412,14 @@ superstruct "^0.15.4" toml "^3.0.0" +"@coral-xyz/borsh@^0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.28.0.tgz#fa368a2f2475bbf6f828f4657f40a52102e02b6d" + integrity sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@coral-xyz/borsh@^0.29.0": version "0.29.0" resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.29.0.tgz#79f7045df2ef66da8006d47f5399c7190363e71f" @@ -424,39 +453,37 @@ kuler "^2.0.0" "@drift-labs/sdk@file:./drift-common/protocol/sdk", "@drift-labs/sdk@file:drift-common/protocol/sdk": - version "2.104.0-beta.30" + version "2.104.0-beta.0" dependencies: - "@coral-xyz/anchor" "0.29.0" + "@coral-xyz/anchor" "0.28.0" "@coral-xyz/anchor-30" "npm:@coral-xyz/anchor@0.30.1" - "@ellipsis-labs/phoenix-sdk" "1.4.5" + "@ellipsis-labs/phoenix-sdk" "^1.4.2" "@grpc/grpc-js" "^1.8.0" "@openbook-dex/openbook-v2" "0.2.10" - "@project-serum/serum" "0.13.65" + "@project-serum/serum" "^0.13.38" "@pythnetwork/client" "2.5.3" - "@pythnetwork/price-service-sdk" "1.7.1" - "@pythnetwork/pyth-solana-receiver" "0.7.0" + "@pythnetwork/price-service-sdk" "^1.7.1" + "@pythnetwork/pyth-solana-receiver" "^0.7.0" "@solana/spl-token" "0.3.7" "@solana/web3.js" "1.92.3" "@switchboard-xyz/on-demand" "1.2.42" - "@triton-one/yellowstone-grpc" "1.3.0" - anchor-bankrun "0.3.0" - nanoid "3.3.4" - node-cache "5.1.2" + "@triton-one/yellowstone-grpc" "0.6.0" + anchor-bankrun "^0.3.0" + node-cache "^5.1.2" rpc-websockets "7.5.1" - solana-bankrun "0.3.1" - strict-event-emitter-types "2.0.0" + solana-bankrun "^0.3.0" + strict-event-emitter-types "^2.0.0" tweetnacl "1.0.3" - uuid "8.3.2" - yargs "17.7.2" - zstddec "0.1.0" + uuid "^8.3.2" + zstddec "^0.1.0" "@drift/common@file:./drift-common/common-ts": version "1.0.0" dependencies: - "@drift-labs/sdk" "file:../../../Library/Caches/Yarn/v6/npm-@drift-common-1.0.0-01140c44-8536-4871-8ca5-b566580265f6-1734484956666/node_modules/@drift/protocol/sdk" + "@drift-labs/sdk" "file:../Library/Caches/Yarn/v6/npm-@drift-common-1.0.0-4e3c4626-2ccf-4799-8c43-1efe010514e5-1736307402016/node_modules/@drift/protocol/sdk" "@jest/globals" "^29.3.1" "@slack/web-api" "^6.4.0" - "@solana/spl-token" "0.3.8" + "@solana/spl-token" "^0.3.8" "@solana/web3.js" "1.66.2" bcryptjs-react "^2.4.6" cerializr "^3.1.4" @@ -471,7 +498,7 @@ winston "^3.13.0" winston-slack-webhook-transport "^2.3.5" -"@ellipsis-labs/phoenix-sdk@1.4.5": +"@ellipsis-labs/phoenix-sdk@^1.4.2": version "1.4.5" resolved "https://registry.yarnpkg.com/@ellipsis-labs/phoenix-sdk/-/phoenix-sdk-1.4.5.tgz#42cf8de8463b32c910ab8844eae71ca082a6773a" integrity sha512-vEYgMXuV5/mpnpEi+VK4HO8f6SheHtVLdHHlULBiDN1eECYmL67gq+/cRV7Ar6jAQ7rJZL7xBxhbUW5kugMl6A== @@ -1581,7 +1608,7 @@ bn.js "^5.1.2" buffer-layout "^1.2.0" -"@project-serum/serum@0.13.65", "@project-serum/serum@^0.13.65": +"@project-serum/serum@^0.13.38", "@project-serum/serum@^0.13.65": version "0.13.65" resolved "https://registry.yarnpkg.com/@project-serum/serum/-/serum-0.13.65.tgz#6d3cf07912f13985765237f053cca716fe84b0b0" integrity sha512-BHRqsTqPSfFB5p+MgI2pjvMBAQtO8ibTK2fYY96boIFkCI3TTwXDt2gUmspeChKO2pqHr5aKevmexzAcXxrSRA== @@ -1654,14 +1681,21 @@ assert "^2.0.0" buffer "^6.0.1" -"@pythnetwork/price-service-sdk@1.7.1", "@pythnetwork/price-service-sdk@>=1.6.0": +"@pythnetwork/price-service-sdk@>=1.6.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-sdk/-/price-service-sdk-1.7.1.tgz#dbfc8a8c2189f526346c1f79ec3995e89b690700" integrity sha512-xr2boVXTyv1KUt/c6llUTfbv2jpud99pWlMJbFaHGUBoygQsByuy7WbjIJKZ+0Blg1itLZl0Lp/pJGGg8SdJoQ== dependencies: bn.js "^5.2.1" -"@pythnetwork/pyth-solana-receiver@0.7.0": +"@pythnetwork/price-service-sdk@^1.7.1": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-sdk/-/price-service-sdk-1.8.0.tgz#f5f01f654963eb9a0cf12127b4f1a89b60ef008a" + integrity sha512-tFZ1thj3Zja06DzPIX2dEWSi7kIfIyqreoywvw5NQ3Z1pl5OJHQGMEhxt6Li3UCGSp2ooYZS9wl8/8XfrfrNSA== + dependencies: + bn.js "^5.2.1" + +"@pythnetwork/pyth-solana-receiver@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@pythnetwork/pyth-solana-receiver/-/pyth-solana-receiver-0.7.0.tgz#253a0d15a135d625ceca7ba1b47940dd03b9cab6" integrity sha512-OoEAHh92RPRdKkfjkcKGrjC+t0F3SEL754iKFmixN9zyS8pIfZSVfFntmkHa9pWmqEMxdx/i925a8B5ny8Tuvg== @@ -1953,15 +1987,6 @@ "@solana/buffer-layout-utils" "^0.2.0" buffer "^6.0.3" -"@solana/spl-token@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.8.tgz#8e9515ea876e40a4cc1040af865f61fc51d27edf" - integrity sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - buffer "^6.0.3" - "@solana/spl-token@^0.1.6": version "0.1.8" resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.1.8.tgz#f06e746341ef8d04165e21fc7f555492a2a0faa6" @@ -1974,7 +1999,7 @@ buffer-layout "^1.2.0" dotenv "10.0.0" -"@solana/spl-token@^0.3.4": +"@solana/spl-token@^0.3.4", "@solana/spl-token@^0.3.8": version "0.3.11" resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.11.tgz#cdc10f9472b29b39c8983c92592cadd06627fb9a" integrity sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ== @@ -2210,10 +2235,10 @@ js-yaml "^4.1.0" protobufjs "^7.2.6" -"@triton-one/yellowstone-grpc@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@triton-one/yellowstone-grpc/-/yellowstone-grpc-1.3.0.tgz#7caa7006b525149b4780d1295c7d4c34bc6a6ff6" - integrity sha512-tuwHtoYzvqnahsMrecfNNkQceCYwgiY0qKS8RwqtaxvDEgjm0E+0bXwKz2eUD3ZFYifomJmRKDmSBx9yQzAeMQ== +"@triton-one/yellowstone-grpc@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@triton-one/yellowstone-grpc/-/yellowstone-grpc-0.6.0.tgz#9e6376cec8a42284c23dc195df2c3423c87c4f27" + integrity sha512-rgdZM2N3U9/d/QKOI5PP+9rSHUl2oSI5Uwzvuss8y/mtTaHFjbOMpXpQXviIeDkusOa+mef4wLYrbjEZCwTXiw== dependencies: "@grpc/grpc-js" "^1.8.0" @@ -2844,7 +2869,7 @@ ajv@^8.0.1, ajv@^8.1.0: require-from-string "^2.0.2" uri-js "^4.2.2" -anchor-bankrun@0.3.0: +anchor-bankrun@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/anchor-bankrun/-/anchor-bankrun-0.3.0.tgz#3789fcecbc201a2334cff228b99cc0da8ef0167e" integrity sha512-PYBW5fWX+iGicIS5MIM/omhk1tQPUc0ELAnI/IkLKQJ6d75De/CQRh8MF2bU/TgGyFi6zEel80wUe3uRol9RrQ== @@ -5181,11 +5206,6 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5204,7 +5224,7 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-cache@5.1.2: +node-cache@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" integrity sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg== @@ -6124,7 +6144,7 @@ solana-bankrun-linux-x64-musl@0.3.1: resolved "https://registry.yarnpkg.com/solana-bankrun-linux-x64-musl/-/solana-bankrun-linux-x64-musl-0.3.1.tgz#1a044a132138a0084e82406ec7bf4939f06bed68" integrity sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ== -solana-bankrun@0.3.1: +solana-bankrun@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/solana-bankrun/-/solana-bankrun-0.3.1.tgz#13665ab7c1c15ec2b3354aae56980d0ded514998" integrity sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA== @@ -6198,7 +6218,7 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -strict-event-emitter-types@2.0.0: +strict-event-emitter-types@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== @@ -6545,7 +6565,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@8.3.2, uuid@^8.3.2: +uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -6779,7 +6799,7 @@ yargs@16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@17.7.2, yargs@^17.7.2: +yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -6802,7 +6822,7 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zstddec@0.1.0: +zstddec@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.1.0.tgz#7050f3f0e0c3978562d0c566b3e5a427d2bad7ec" integrity sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==