diff --git a/README.md b/README.md index 8dced2cd..b0996166 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,20 @@ Vault is a cutting-edge tool that transforms how you manage your digital assets on Starknet. It lets you create custom accounts with unique rules and limits, ensuring your transactions are secure and tailored to your needs. Simple, flexible, and secure – Vault puts you in full control of your financial world. +## Vault service + +### Start + +```bash +cd service +bun i +bun start +``` + +## Onchain + +## App + ## Architecture ![Architecture](./resources/architecture.png) diff --git a/backend/.gitkeep b/backend/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/service/.gitignore b/service/.gitignore new file mode 100644 index 00000000..468f82a1 --- /dev/null +++ b/service/.gitignore @@ -0,0 +1,175 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/service/README.md b/service/README.md new file mode 100644 index 00000000..df776d0a --- /dev/null +++ b/service/README.md @@ -0,0 +1,15 @@ +# vault-service + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun run index.ts +``` + +This project was created using `bun init` in bun v1.0.18. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. diff --git a/service/bun.lockb b/service/bun.lockb new file mode 100755 index 00000000..0d2b9650 Binary files /dev/null and b/service/bun.lockb differ diff --git a/service/package.json b/service/package.json new file mode 100644 index 00000000..4fa04ddc --- /dev/null +++ b/service/package.json @@ -0,0 +1,14 @@ +{ + "name": "vault-service", + "module": "index.ts", + "type": "module", + "scripts": { + "start": "bun run src/index.ts" + }, + "devDependencies": { + "bun-types": "latest" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } +} \ No newline at end of file diff --git a/service/src/index.ts b/service/src/index.ts new file mode 100644 index 00000000..fac0d2da --- /dev/null +++ b/service/src/index.ts @@ -0,0 +1,22 @@ +const PORT = Bun.env.PORT || 8080; + +Bun.serve({ + port: PORT, + async fetch(request: Request) { + const { method } = request; + const { pathname } = new URL(request.url); + + if (method === "GET" && pathname === "/status") { + return handleGetStatus(); + } + return new Response("Not Found", { status: 404 }); + }, +}); + +console.log(`Listening on http://localhost:${PORT} ...`); + +function handleGetStatus() { + return new Response(JSON.stringify({ status: "OK" }), { + headers: { "Content-Type": "application/json" }, + }); +} diff --git a/service/tsconfig.json b/service/tsconfig.json new file mode 100644 index 00000000..7556e1d4 --- /dev/null +++ b/service/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "lib": ["ESNext"], + "module": "esnext", + "target": "esnext", + "moduleResolution": "bundler", + "moduleDetection": "force", + "allowImportingTsExtensions": true, + "noEmit": true, + "composite": true, + "strict": true, + "downlevelIteration": true, + "skipLibCheck": true, + "jsx": "react-jsx", + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "allowJs": true, + "types": [ + "bun-types" // add Bun global + ] + } +}